Lecture 22 (Undecidability), 4/12/06
Concepts, definitions (in italics):
Reading:
Skills:
Notes:
Proof of undecidability of ATM (by contradiction):
- Assume there is an algorithm A_TM_DECIDER(M,w)
- Then we can create another algorithm D(M) which consists of the following 2 steps:
1) bool b = A_TM_DECIDER(M,M)
2) return (!b)
- Since D is an algorithm, there must exist a TM MD implementing D.
- What should D(MD) return?? Either YES or NO gives a contradiction.
- Therefore, the algorithm A_TM_DECIDER(M,w) does not exist.
Proving that some language B is not decidable proceeds by contradiction, as follows:
Assume that B is decidable. Construct a reduction from A to AB where A is some non-decidable language.
Use a table-based approach to show that the construction is correct.
Argue that if B were decidable, then A would also be decidable. But A is not decidable, so B cannot be decidable either.
For the proofs by negative reduction, we use a 2-row table to figure out what's going on. The top row is for input in the language; the second is for input that is not. The algorithm should behave correctly for both types of inputs.
Here is the reduction from ATM to REGULARTM:
ATM-DECIDER(M,w) {
1. construct a description of the following machine M2:
M2(x) {
if x is of the form 0n1n, accept;
otherwise, run M on w and accept only if M accepts w.
}
2. return REGULARTM-DECIDER(M2);
}
Here is the table for proving that the reduction above is correct
|
|
What we want |
M2's behavior |
L(M2) |
REGULARTM(M2) |
|
M accepts |
accept |
Accept strings of the form 0n1n ; accepts all others too |
∑* |
accept |
|
M does not accepts W |
reject |
Accepts strings of the form 0n1n; |
0n1n
|
reject |
Here is the reduction from ATM to ETM:
ATM-DECIDER(M,w) {
1. construct a description of the following machine M1:
M1(x) {
if x ≠ w, reject;
otherwise, run M on w and accept only if M accepts w.
}
2. return ØETM-DECIDER(M1); // note that the output is negated
}
Here is the table for proving that the reduction above is correct:
|
|
What we want ATM to return |
M1's behavior |
L(M1) |
ETM (M1) |
We return |
|
M accepts W |
accept |
Reject all x
≠ w, |
{w} |
Reject |
Accept |
|
M does not accepts W |
reject |
Reject all x
≠w, |
 |
Accept |
Reject |
Here is the reduction from ETM
to EQTM:
ETM-DECIDER(M) {
1. construct a description of the following machine M3:
M3(x) {
reject(x);
}
2. return EQTM-DECIDER(M, M3);
}
Here is the table for proving that the reduction above is correct:
|
|
What we want ETM to return |
L(M3) |
EQTM (M, M3) |
|
L(M) = Â |
accept |
 |
accept |
|
L(M) ≠ Â |
reject |
 |
reject |