# Proof (by contradiction) of the emptiness problem

I fail to understand the proof of the Emptiness Problem

$E_{TM} = \{\langle M \rangle | M$ is a TM and $L(M) = \emptyset\}$

1) Use the description of $M$ and $w$ to construct $M_1$, which on Input $x$ behaves as follows:

1. If $x \neq w$, reject
2. 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

I do understand the basic idea of a reduction and in particular the reduction of $A_{TM}$ to $Halt_{TM}$, however,

• I do not see how $E_{TM}$ could be used as a subroutine to solve $A_{TM}$. The whole construction of $M_1$ confuses me a lot. To me it looks like $M_1$ is just like a filter that rejects everything except $w$

• But why does $M_1$ even have to check if $x$ equals $w$? As soon as $S$ is fed with a particular pair $\langle M,w\rangle$, $x$ will be equal to $w$, no? how can it be anything different than $w$?

• This is not proof by contradiction. It is a proof of negation. – Andrej Bauer Nov 22 '16 at 7:30

1. $$M_1$$ rejects everything, including $$w$$, unless $$M$$ accepts it (crucial). $$M_1$$ will then be a machine that always rejects, if and only if $$M$$ rejects $$w$$.
2. The white box treats $$M$$ and $$w$$ as constants. They are still something that $$S$$ received as input, and we know that.
3. $$R$$ is a hypothetical machine that decides if its input is a machine that always rejects.
4. $$S$$ will receive unknown $$\langle M,w \rangle$$ as its input. Should $$R$$ work as intended, then $$S$$ in fact solves the general problem of deciding if $$M$$ accepts $$w$$, which is exactly $$A_{TM}$$.
5. It has been proven that $$A_{TM}$$ is not decidable.

Therefore,

1. $$R$$ cannot exist.

Our reference question has more information on the subject. You may find particularly interesting to see how this kind of proof can be generalized (look for Rice's theorem).

The work flow is as following:

1. $$A_{TM}$$ is a turing machine, w is its input.

2. Modified $$A_{TM}$$: add condition logic in front of it to construct a new turing machine $$E_{TM}$$.

3. $$E_{TM}$$ takes input x, then the condition logic inside $$E_{TM}$$ first check if(w!=x) reject.

4. If (w==x), let w = x, then feed w to $$A_{TM}$$.

5. $$A_{TM}$$ may have three possible behavior: accept on w; reject on w; loop forever(not halt).

6. Assume we have a turing machine $$R_{TM}$$ which decide $$E_{TM}$$:

• If $$R_{TM}$$ rejects on <$$E_{TM}$$, x>, which means the language of $$E_{TM}$$ is NOT ∅. then $$E_{TM}$$ must accepted on input x. Which means w==x AND $$A_{TM}$$ accepts w.

• If $$R_{TM}$$ accepts on <$$E_{TM}$$, x>, which means the language of $$E_{TM}$$ is ∅. then $$E_{TM}$$ must reject on input x. Which means ω != x OR w==x and $$A_{TM}$$ rejects w too.

7. Now let's construct another new turing machine $$S_{TM}$$:

• Let $$S_{TM}$$ accepts If $$R_{TM}$$ rejects on <$$E_{TM}$$, w> (NOTE: the input is w, not x).Which means $$A_{TM}$$ accepts on input w.

• Let $$S_{TM}$$ rejects If $$S_{TM}$$ accepts on <$$E_{TM}$$, w> (NOTE: the input is w, not x).Which means $$A_{TM}$$ rejects on input w.

Then we have: $$S_{TM}$$ decide $$A_{TM}$$ on input w.

So $$E_{TM}$$ is undecidable.