It is an unfortunate fact that there are some problems that cannot be solved by any algorithm. These problems are undecidable. The most famous example of an undecidable problem is the Halting Problem, which states that there is no algorithm that can determine whether a given program will halt or run forever.


Undecidable Languages

Turing machines are the most powerful computational model we have, and they can recognize a wide variety of languages. However, there are some languages that Turing machines cannot recognize. These languages are called undecidable languages.

We will look at:

  • Countability & Uncountability
  • Cantors diagonalization
  • proofs that undecidable languages must exist
  • example of undecidable languages

And remember:

Important

A language is a set of strings

and that Descriptions of machines are strings

Notation

or is a string representation of some object

And for a tree:

stateDiagram-v2
	A --> B
	B --> C
	C --> A

Wet a string of the sort:

And also remember:

  • where is an undirected

Building Inventory of Decidable Languages

is decidable when we know some machine exists that decides :

Our theorem right now is that is decidable