# Halting problem proofs that do not utilise self-reference or diagonalization

Are there any proofs of the Halting problem that do not involve any self-reference, and diagonalization (or any diagonal argument) whatsoever?

All the duplicate questions I have come across end up either in arguments, or not providing answers that satisfy the conditions put forth. As a result, the few answers that do satisfy the conditions above are scattered across different questions.

To be clear, I'm not bothered with the standard proof (or its variants). I'm only looking for those that match the above conditions.

• I don't see how one can avoid "proof by contradiction": you want to show that something does not exists (namely an algorithm for the Halting problem) and as far as I know the only way to do that is to show that the existence of such an algorithm gives you a contradiction. Mar 31 at 16:15
• @ReijoJaakkola Even then, it does not rule out the possibility of such a proof existing. Maybe such an algorithm must have properties that cannot be held simultaneously by any algorithm. I do understand the issue however, and I have edited the question accordingly. Mar 31 at 17:32
• Possibly related: Chaitin's incompleteness theorem Mar 31 at 19:49
• @ReijoJaakkola a bit of nitpicking: what you are referring to is not a "proof by contradiction", it is just a "proof of negation": in order to prove $\lnot A$, you assume $A$ and derive a contradiction. A "proof by contradiction", instead, assumes $\lnot A$, derives a contradiction, and concludes $A$ (rather than $\lnot\lnot A$, as "proof of negation" would allow you to do). Many confuse the two, the difference is subtle but it's fundamental for those who are interested in constructive logic. Of course all this has no bearing on the OP's question. Apr 1 at 7:38
• @DamianoMazza Fair point, although I guess this distinction is useful only in the context of logics such as the constructive logic. E.g., to prove $A=$ "there is no algorithm for the Halting problem" using "proof by a contradiction", you derivate a contradiction from the assumption $\neg A$ which is in classical logic equivalent to "there exists an algorithm for the Halting problem". Of course, if OP wants a constructive proof, then this distinction applies and your point is a valid one. Apr 1 at 8:21

P1 Perhaps you can somewhat avoid self reference in this way.

Let $$S_k$$ be the total number of steps performed by the halting Turing machines of size $$\leq k$$ in their computation.

Suppose the Halting problem is solvable, then $$S_k$$ is computable and exists a TM $$M_S$$ that on input $$k$$ enumerates the Turing machines of size $$\leq k$$, for each one of them check if it halts, if it halts simulate it step by step and keep track of the total sum of steps.

You can build a "small" $$M$$ that:

• embeds a number $$n$$ in binary format
• calculatate $$2^n$$
• apply the $$M_S$$ "function" on $$2^n$$ and calculate $$S_{2^n}$$ using the method above

For large enough $$n$$ we have $$|M| < 2^n$$, but this is a contradiction because there is a Turing machine of size $$<2^n$$ that halts after a number of steps greater than $$S_{2^n}$$.

P2 Another somewhat obscure proof could be:

You can build a TM $$M$$ that checks if there is a proof of $$A \land \lnot A$$ in Peano Arithmetic (enumerating the valid proofs), and if it founds one then it halts. If the Halting problem is solvable, you could be able to prove the consistency of PA within PA itself, which is a contradiction of the second Godel's incompleteness theorem.