MIT 18.404 — Lecture 9
Reducibility
§ Reducibility
Theorem. (Halting Problem) The language is undecidable.
Proof: Our strategy will be to use the undecidability of from Lecture 8.
Suppose FTSOC that there is a TM that decides . Then one can construct that does the following on .
Run on , which, in finite time, must determine whether halts on .
If is known to halt on , then should just run on and return the result.
If is known not to halt on , then should just return Reject.
So the decidability of implies the decidability of , contradiction.
The above proof is an example of a broader proof technique: reduction.
Definition. We say that a language is reducible to a language if we can decide using a decider for .
Theorem. (Reducibility and Decidability) Suppose language is reducible to language . Then the following are true:
If is decidable, then is decidable.
If is undecidable, then is undecidable.
None of this is particularly nonobvious.
Theorem. () The language is undecidable.
Proof: Recall from Lecture 8 that is undecidable. It therefore suffices to prove that reduces to .
Suppose we have a decider for . Then we can construct a decider for that does the following on .
Construct a Turing machine that does the following on input .
If , instantly Reject.
If , run the instructions of (on input ).
Now just returns the opposite of the result of on input .
§ Mapping Reducibility
Definition. We say that a language is mapping reducible to a language (denoted ) if there is a computable function (i.e., computable via Turing machine) such that if and only if for all .
Theorem. (Mapping Reducibility and Turing-Recognizability) If , then the following are true.
If is Turing-recognizable, then is Turing-recognizable.
If is Turing-unrecognizable, then is Turing-unrecognizable.
If is decidable, then is decidable.
Again, none of this is particularly nonobvious.
Theorem. () The language is not Turing-recognizable.
Proof: Recall from Lecture 8 that is Turing-unrecognizable.
It therefore suffices to prove that . In other words, we seek a map such that:
We'll define the image of on like so.
Take to always return Reject.
Take to be the Turing machine that just runs on (independent of the input ).
Note that might Accept, or Reject, or even loop.
You can check for yourself that the boxed equivalence () holds for this .
And one more example.
Theorem. () The language is not Turing-recognizable.
Proof: Again, it suffices to prove that . In other words, we seek a map such that:
The image of under is almost entirely the same as before.
Take to always return Accept.
Take to be the Turing machine that just runs on (independent of the input ).
Note that might Accept, or Reject, or even loop.
The only thing that changed is that now always returns Accept instead of Reject. Check for yourself that this works.