I fail to understand the proof of the Emptiness Problem

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

enter image description here

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$?

  • $\begingroup$ This is not proof by contradiction. It is a proof of negation. $\endgroup$ Nov 22, 2016 at 7:30

2 Answers 2

  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.


  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).


enter image description here

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.

Contradiction happens.

So $E_{TM}$ is undecidable.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.