2
$\begingroup$

The proof that $E_{TM}$ is unsatisfiable (Theorem 5.2) from Sipser's Introduction to the Theory of Computation constructs a decider for $A_{TM}$ that simulates an arbitrary Turing machine $M$. To me, it seems like this construction is only a decider if we assume that $M$ is also a decider, which we cannot do.

I'm restating the proof as follows to make my questions more concrete (apologies if the proof is not rigorous enough, but hopefully it suffices to make the question clear)

$\textbf{Theorem:}$ $E_{TM}$ is undecidable where $$E_{TM} = \{\langle M \rangle\ |\ M\text{ is a TM and }L(M) = \phi\}$$

$\textbf{Proof:}$ Given $$A_{TM} = \{\langle M, w\rangle\ |\ \text{$M$ is a TM and $M$ accepts $w$}\}$$ Assume that $R$ decides $E_{TM}$ and construct $S$ that decides $A_{TM}$ as follows.

$S = $"On input $\langle M, w\rangle$,

  1. Using the encoding of $M$ and $w$ construct $M_1$ that works like $M$ for $w$ and rejects all other strings. $M_1 = $"On input $x$: (a) If $x \neq w$, reject. (b) If $x = w$, run $M$ on input $w$ and accept if $M$ does."
  2. Run $R$ on input $\langle M_1\rangle$.
  3. If $R$ accepts, reject. If $R$ rejects, accept. Since $R$ decides $E_{TM}$, $S$ decides $A_{TM}$. Because $A_{TM}$ is undecidable, $E_{TM}$ must be undecidable.

Here's my question in terms of the proof above: $R$ is a decider. We're constructing a decider $S$. $S$ creates $M_1$ that runs $M$ on $w$ and accepts if $M$ does. However, we can't make any assumptions about $M$. So although steps 1(a), 2 and 3 halt, step 1(b) is not guaranteed to halt. So we haven't successfully built a decider for $A_{TM}$. We cannot complete the proof by contradiction.

What am I missing here?

$\endgroup$
0

1 Answer 1

2
$\begingroup$

As is already stated by a user on your cross post, in the first step you are just creating the encoding of a machine $M_1$ which behaves a certain way (and then you feed the encoding of this machine to $S$).

To be more precise given encoding of $M$ and string $w$ you are required to produce encoding of another machine ($M_1$) which on input $x$ first checks if $x=w$, if yes it is suppose to run $M$ on $x$; otherwise it rejects. You need not run $M$ on anything to get this encoding.

$\endgroup$
2
  • 1
    $\begingroup$ Thanks for the pointers - I've followed up on them - and thanks for the answer. I think I understand: so the way $M_1$ works when $x \neq w$ is that it uses the transition function of $M$ which can be copied over to $M_1$'s tape? I'm sure I'm oversimplifying here but essentially, programming $M_1$ to behave like $M$ on an input can be done in a finite number of steps (as opposed to running it on a string which may or may not terminate), which is what's happening? $\endgroup$ Commented May 29 at 17:31
  • 1
    $\begingroup$ Basically we "incorporate" $w$ and description/transition function of $M$ into that of $M_1$. $\endgroup$ Commented May 29 at 18:49

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.