On this site there are many variants on the question whether TMs can decide the halting problem, whether for all other TMs or certain subsets. This question is somewhat different.

It asks whether the fact the halting problem applies to all TMs can be decided by a TM. I believe the answer is no, and wish to check my reasoning.

  1. Define the meta-halting language $L_{MH}$ as the language composed of TMs that decide whether a TM halts.

$$L_{MH} = \{ M : \forall_{M',w} M(M', w) \text{ accepts if $M'(w)$ halts, rejects otherwise}\}$$

  1. $L_{MH}= \emptyset$ due to the halting problem.

Thus, the title question more precisely stated: is it decidable whether $L_{MH} = \emptyset$?

  1. Per Rice's theorem, it is undecidable whether an r.e. language is empty.
    In both cases, if $L_{MH}$ is or is not r.e., it is undecidable whether $L_{MH} = \emptyset$.

  2. Therefore, it is undecidable whether $L_{MH} = \emptyset$.

This proves a TM cannot decide whether the halting problem applies to all TMs.

Is my understanding correct?

UPDATE: I am trying to show that a TM cannot "prove the halting problem" for some definition of "prove" that seems intuitively correct. Below is an illustration of why I think this is correct.

We can create a TM $M_{MH}$ that generates $L_{MH}$ in the following way. The TM takes a tuple $(M_i,M_j,w_k,steps)$. It simulates $M_i(M_j, w_k)$ for $steps$ iterations. If $M_i$ accepts all $(M_j, w_k)$ pairs that halt, and rejects all others then $M_{MH}$ accepts $M_i$. Otherwise, it rejects $M_i$ if $M_i$ decides incorrectly or fails to halt.

$M_{MH}$ does not halt, because it must evaluate an infinite number of pairs for each $M_i$. Additionally, all the $M_i$s will fail to halt. $M_{MH}$ will be unable to accept or reject any $M_i$ as it will not know from the simulation that all $M_i$s will fail to halt. Thus, the language it defines is not r.e. and not decidable.

$M_{MH}$ captures my intuition of what I think it means for a TM to prove the halting problem. Other suggestions, such as $M_{MH}$ rejecting all $M_i$ or outputting a known proof give $M_{MH}$ prior knowledge that the halting problem applies to all $M_i$. This cannot count as $M_{MH}$ proving something since the $M_{MH}$'s premise is the conclusion it is proving, and thus is circular.

  • 3
    $\begingroup$ Your fix doesn't help. A problem with no parameters is always decidable, either by a Turing machine that always outputs YES, or by one that always outputs NO. Your line of argument just doesn't work, unfortunately. The real analog of Gödel's theorem is Rice's theorem. $\endgroup$ Jul 27, 2016 at 7:03
  • 5
    $\begingroup$ "It asks whether the fact the halting problem applies to all TMs can be decided by a TM." -- that query does not make sense as the halting problem does not "apply" to a set of TMs. At least, I don't know what that's supposed to mean. $\endgroup$
    – Raphael
    Jul 27, 2016 at 9:54
  • 4
    $\begingroup$ You have misunderstood Rice's theorem. Rice's theorem states (in a special case) that the language $\{ M : L(M) = \emptyset \}$ is undecidable. It doesn't state that $\emptyset$ is undecidable; in fact, $\emptyset$ is decidable. $\endgroup$ Jul 27, 2016 at 11:34
  • 7
    $\begingroup$ I think the misunderstanding is in what the expression "deciding X" means. Formally, X should be a predicate on strings, and then a machine deciding X is one that on input s outputs the truth value of X(s). What is the predicate in your case? What is its input, and when is it true? $\endgroup$ Jul 27, 2016 at 12:40
  • 5
    $\begingroup$ The question is a category error. Decidability is a property of languages (sets of strings), not mathematical propositions. Any question of the form "Is $X$ decidable?" where $X$ is not a set of strings just doesn't make sense. $\endgroup$ Jul 27, 2016 at 21:24

4 Answers 4


Another viewpoint: let $\varphi$ be a formalization of the statement "$L_{MH} = \emptyset$" in ZFC; (trivially) we have:

  • the set $P = \{ x \mid x \mbox{ is a valid proof of } \varphi \mbox{ in ZFC}\}$ is decidable;

  • you can also build a TM $M$ that enumerates the proofs in ZFC and halts if it founds a proof of $\varphi$ or a proof of $\neg \varphi$; clearly $M$ halts;

  • the set $\{ M \mid M \mbox{ decides } P \}$ is undecidable


The language of Turing machines deciding the halting problem is decidable. A Turing machine that decides it simply always outputs NO.

In other words, $\emptyset$ is decidable.

You might be confused with the fact that the language of Turing machines whose language is empty is undecidable. That is, there is no Turing machine that, on input $T$, decides whether $L(T) = \emptyset$.

  • 8
    $\begingroup$ The empty language is decidable. Deal with it. $\endgroup$ Jul 27, 2016 at 6:51
  • 15
    $\begingroup$ The language of Turing machines deciding the halting problem is empty. The empty language is decidable. Hence the language of Turing machines deciding the halting problem is decidable. $\endgroup$ Jul 27, 2016 at 6:54
  • 1
    $\begingroup$ The question is whether a TM can decide the language of Turing machines deciding the halting problem is empty. A TM cannot do this as I have shown above. $\endgroup$
    – yters
    Jul 27, 2016 at 12:40
  • 1
    $\begingroup$ @yters Are you asking whether a TM can prove that that language is empty? It can easily do so, by simply outputting an existing known proof. $\endgroup$ Jul 27, 2016 at 20:33
  • 3
    $\begingroup$ What does it even mean for a TM to prove something? $\endgroup$ Jul 27, 2016 at 20:36

You misunderstand Rice's theorem.

Rice's theorem, in this context, says that you can't decide the problem "Does T decide the empty language?".

Your problem is not about deciding whether an arbitrary Turing machine decides the empty language. Your problem is whether or not there exists an M that decides the empty language.

And such M do exist. You can do even better than that: you can actually construct such an M and provide a proof that it decides the empty language.

The general problem not being decidable does not mean you cannot solve specific instances. In fact, by the usual device of enumerating all proofs, there exists a turing machine that:

  • Accepts every turing machine for which a proof exists that it decides the empty language
  • Rejects every turing machine for which a proof exists that it does not decide the empty language
  • Does not halt if it cannot be proven either way.

The definition about decidability from Wikipedia:

A recursive language is a formal language for which there exists a Turing machine that, when presented with any finite input string, halts and accept if the string is in the language, and halts and rejects otherwise. The Turing machine always halts: it is known as a decider and is said to decide the recursive language.

In other words, it is decidable iff there is a Turing machine that decides all input strings. It is undecidable iff for each Turing machine, it doesn't decide all input strings, which means it could decide none or some strings, but there is at least one (but practically at least infinite of them) it cannot decide.

In your case, the trivial Turing machine doesn't decide for every input $L$, whether $L = \emptyset$, but it happens to know specifically whether $L_{MH} = \emptyset$.


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.