# The consistent guessing problem is easier than the halting problem

The halting problem is the problem of taking as input a Turing machine M, returning true if it halts, false if it doesn't halt. This is known to be uncomputable. The [consistent guessing problem](https://scottaaronson.blog/?p=710) (named by Scott Aaronson) is the problem of taking as input a Turing machine M (which either returns a Boolean or never halts), and returning true or false; if M ever returns true, the oracle's answer must be true, and likewise for false. This is also known to be uncomputable.

Scott Aaronson [inquires](https://scottaaronson.blog/?p=710#comment-25548) as to whether the consistent guessing problem is strictly easier than the halting problem. This would mean there is no Turing machine that, when given access to a consistent guessing oracle, solves the halting problem, no matter which consistent guessing oracle (of which there are many) it has access too. As prior work, Andrew Drucker has written [a paper describing a proof of this](https://people.csail.mit.edu/andyd/cg.pdf), although I find the proof hard to understand and have not checked it independently. In this post, I will prove this fact in a way that I at least find easier to understand. (Note that the other direction, that a Turing machine with access to a halting oracle can be a consistent guessing oracle, is trivial.)

First I will show that a Turing machine with access to a halting oracle cannot in general determine whether another machine with access to a halting oracle will halt. Suppose M(O, N) is a Turing machine that returns true if N(O) halts, false otherwise, when O is a halting oracle. Let T(O) be a machine that runs M(O, T), halting if it returns false, running forever if it returns true. Now M(O, T) must be its own negation, a contradiction.

In particular, this implies that the problem of deciding whether a Turing machine with access to a halting oracle halts cannot be a $\Sigma^0_1$ statement in the [arithmetic hierarchy](https://en.wikipedia.org/wiki/Arithmetical_hierarchy), since these statements can be decided by a machine with access to a halting oracle.

Now consider the problem of deciding whether a Turing machine with access to a consistent guessing oracle halts for all possible consistent guessing oracles. If this is a $\Sigma^0_1$ statement, then consistent guessing oracles must be strictly weaker than halting oracles. Since, if there were a reliable way to derive a halting oracle from a consistent guessing oracle, then any machine with access to a halting oracle can be translated to one making use of a consistent guessing oracle, that halts for all consistent guessing oracles if and only if the original halts when given access to a halting oracle. That would make the problem of deciding whether a Turing machine with access to a halting oracle halts a $\Sigma^0_1$ statement, which we have shown to be impossible.

What remains to be shown is that the problem of deciding whether a Turing machine with access to a consistent guessing oracle halts for all consistent guessing oracles, is a $\Sigma^0_1$ statement.

To do this, I will construct a recursively enumerable propositional theory T that depends on the Turing machine. Let M be a Turing machine that takes an oracle as input (where an oracle maps encodings of Turing machines to Booleans). Add to the T the following propositional variables:

-   $O_N$ for each Turing machine encoding N, representing the oracle's answer about this machine.
-   H, representing that M(O) halts.
-   $R_s$ for each possible state *s* of the Turing machine, where the state includes the head state and the state of the tape, representing that *s* is reached by the machine's execution.

Clearly, these variables are recursively enumerable and can be computably mapped to the natural numbers.

We introduce the following axiom schemas:\
(a) For any machine N that halts and returns true, $O_N$.\
(b) For any machine N that halts and returns false, $\neg O_N$.\
(c) For any Turing machine state *s* whose next step is to halt, $R_s \rightarrow H$.\
(d) For any Turing machine state *s* whose next step is to go to state *s'* without querying the oracle, $R_s \rightarrow R_{s'}$.\
(e) For any Turing machine state *s* whose next step is to query the oracle on N and go to state *s'* if O(N) is true, and state *s''* otherwise, $(R_s \wedge O_N \rightarrow R_{s'}) \wedge (R_S \wedge \neg O_N \rightarrow R_{s''})$.\
(f) For the initial state $s_0$, $R_{s_0}$.

These axiom schemas are all recursively enumerable. For the first two schemas, note that Turing machines that halt and return true are recursively enumerable, and likewise for Turing machines that halt and return false.

Suppose M halts for any consistent guessing oracle input. We wish to show that H is true in all models of T. For contradiction, assume some model of T in which H is false. In this model, the $O_N$ variables must represent a consistent guessing oracle due to schemas (a) and (b). Let $s_0, \ldots, s_n$ be the execution trace of M when given the oracle represented by the $O_N$ variables; this trace must be finite because M halts for any consistent guessing oracle input. $R_{s_0}$ is an axiom (so must be true in the model), and by induction each $R_{s_i}$ must be true in the model, using axiom schemas (d) and (e). Since $R_{s_n}$ is true in the model and $s_n$ is a final state, H must also be true in the model due to the axiom schema (c). This is a contradiction.

Suppose M fails to halt for some consistent guessing oracle input. We wish to show that H is false in some model of T (even if it is true in others). Set the $O_N$ variables according to the consistent guessing oracle on which M fails to halt. Let $s_0, s_1, \ldots$ be the (infinite) execution trace of M on this oracle. We set $R_{s_i}$ to true for any non-negative integer *i*, and $R_s$ to false for all other *s*. Finally, we set H to false. This model satisfies all axiom schemas:

-   (a) and (b) are assured since $O_N$ are set according to a consistent guessing oracle.
-   (c) is assured since $R_s$ is only true when $s = s_i$ for some *i*, and none of these states are final.
-   (d) and (e) are assured since $R_s$ is only true when $s = s_i$, and in these cases we also have $R_{s_{i+1}}$.
-   (f) is assured since $R_{s_0}$ is true in the model.

Therefore, H is true in all models of T if and only if M halts for all consistent guessing oracle inputs. By the [completeness theorem for propositional logic](https://akaposi.github.io/proplogic.pdf), H is true in all models of T if and only if T proves H. So T proves H if and only if M halts for all consistent guessing oracle inputs. Since T's axioms are recursively enumerable, all theorems of T can be recursively enumerated. We can therefore recursively enumerate all machines for which the corresponding theory entails H. So, the question of whether a Turing machine M halts on all consistent guessing oracle inputs can be computably translated to a $\Sigma^0_1$ statement.

As we have shown earlier, this implies that the consistent guessing problem is strictly easier than the halting problem, that is, there is no Turing machine that reliably solves the halting problem when given access to a consistent guessing oracle.