Idea
The halting problem is a decision procedure for deciding whether a Turing machines halts on an input string . It was proven by Turing that such a problem is undecidable.
Definition
be defined as iff terminates on input , where is the set of Turing machines on an input language .
Undecidability
is recursively enumerable but not decidable.
The proof essentially goes:
- Fix to be an injective computable encoding.
- Suppose for a contradiction that you have a decider for the language .
- Construct a TM that given an input machine runs on .
- If returns then loop, otherwise halt (it doesn’t matter what is returned).
- Now run on . This terminates iff iff doesn’t terminate.
- Contradiction. Hence no such deciding TM can exist.
This proves that the set of decidable problems is a strict subset of the recursively enumerable languages.