I'm wondering if anyone is aware of a proof of the Halting Problem that is not just a permutation of the "standard" proof. Since there are so many formulations of this proof, rather than pick a specific one, I will sketch out the general outline that every proof I've seen follows (at least, I honestly don't remember one that doesn't follow this pattern):

  1. Assume that there is a function halt() that can decide whether or not a given Turing Machine halts or not.
  2. Construct a Turing Machine that embeds halt(), but "does the exact opposite".
  3. ...
  4. Proof by contradiction that because we have constructed a program that embeds halt(), but does the exact opposite, this proves that halt() can not exist.

I believe the above is "sufficiently accurate" for the purposes of this question. Please feel free to speak up if you feel it misses some nuance of the problem and / or proof.

My objection with this entire class of proofs is:

  • Every formulation of the problem / proof begins by assuming that halt() exists and is capable of deciding whether or not a given Turning Machine halts or not.

At this point in the proof, there are really only two possibilities:

  1. halt() does not, or can not, decide whether a Turing Machine halts or not.
  2. halt() can, and does, decide whether or not a Turing Machine halts.

The problem is this: If we choose the first possibility, that is to say that for some unspecified reason halt() does not "work as advertised", the proof comes to an end. There is literally no point in proving halt() can not decide whether a Turing Machine halts or not if we handicap it from the start- we already know the answer.

I'm not aware of any proof that places qualifications on halt() at this point in the proof, therefore the only reasonable choice is the second possibility. This means that we axiomatically define halt() in order to "bring it in to existence". The problem with this is- halt() is axiomatically defined, and therefore is guaranteed to decide whether or a Turing Machine halts or not.

Since halt() is axiomatically defined as being able to decide whether a Turing Machine halts, any analysis that arrives at a result that contradicts this behavior can not, by definition, prove that halt() is undecidable. The axiomatic definition of halt() is so strong that any result that causes, or results in, a contradiction of halt() is proof that the hypothesis is invalid. Basically, just like the first possibility, there's no point in continuing on with the proof with this choice either because we have our answer- it is impossible to prove that the Halting Problem is undecidable using this technique because it is axiomatically guaranteed to be decidable.

Therefore, I personally consider this family of Halting Problem proofs to be invalid.

So, I'm wondering if anyone is aware of a proof of the Halting Problem that is "independent" of this style and family of proof. I have a strong preference for a proof that does not rely on "diagonalization" or "recursion" in any way. My preference is for something rooted in graph theory.

Which raises a different problem: So far, I have been unable to arrive at a zero-order approximation of a Halting Problem proof using other means. In fact, every back of the envelope attempt has completely failed to arrive at the same conclusion.

The strongest one I've managed to come up with is roughly: The $\delta$ transition table is finite, with a finite number of symbols. An appeal to König's lemma seems to be enough to justify that there is no infinite path, and therefore it must be possible to find a path from the start state to a halting state, if one exists. Not intended as proof, but a result from graph theory, whatever it is, would be much stronger than the current "Say something is true, then do the exact opposite, and then claim that by doing the exact opposite of what you first claimed, you've proved that it was never true to begin with" proof.

Does anyone:

  1. Have a Halting Problem proof that is significantly different than the current "standard" proof? My preference is for a proof that gives the same result using completely different techniques and / or approach. So far, I have only been able to find derivatives of the "standard" proof.
  2. See a problem with the analysis above?


@Kaveh stated Note that undecidability of H is usually stated negatively. To be clear, from Turings On computable numbers, with an application to the Entscheidungsproblem paper that established the proof:

It may be thought that arguments which prove that the real numbers are not enumerable would also prove that the computable numbers and sequences cannot be enumerable. It might, for instance, be thought that the limit of a sequence of computable numbers must be computable. This is clearly only true if the sequence of computable numbers is defined by some rule.

Or we might apply the diagonal process. "If the computable sequences are enumerable, let $a_n$ be the $n$-th computable sequence, and let $\phi_n\left(m\right)$ be the $m$-th figure in $a_n$. Let $\beta$ be the sequence with $1 - \phi_n\left(n\right)$ as its $n$-th figure. Since $\beta$ is computable, there exists a number $K$ such that $1 - \phi_n\left(n\right) = \phi_K\left(n\right)$ all $n$. Putting $n = K$, we have $1 = 2\phi_K\left(K\right)$, i.e. $1$ is even. This is impossible. The computable sequences are therefore not enumerable".

The fallacy in this argument lies in the assumption that $\beta$ is computable. It would be true if we could enumerate the computable sequences by finite means, but the problem of enumerating computable sequences is equivalent to the problem of finding out whether a given number is the D.N of a circle-free machine, and we have no general process for doing this in a finite number of steps. In fact, by applying the diagonal process argument correctly, we can show that there cannot be any such general process.

The simplest and most direct proof of this is by showing that, if this general process exists, then there is a machine which computes $\beta$. This proof, although perfectly sound, has the disadvantage that it may leave the reader with a feeling that "there must be something wrong". The proof which I shall give has not this disadvantage, and gives a certain insight into the significance of the idea "circle-free". It depends not on constructing $\beta$, but on constructing $\beta'$, whose $n$-th figure is $\phi_n\left(n\right)$.

Let us suppose that there is such a process; that is to say, that we can invent a machine $\mathcal{D}$ which, when supplied with the S.D of any computing machine $\mathcal{M}$ will test this S.D and if $\mathcal{M}$ is circular will mark the S.D with the symbol "$u$" and if it is circle-free will mark it with "$s$". By combining the machines $\mathcal{D}$ and $\mathcal{U}$ we could construct a machine $\mathcal{M}$ to compute the sequence $\beta'$. The machine $\mathcal{D}$ may require a tape. We may suppose that it uses the $E$-squares beyond all symbols on $F$-squares, and that when it has reached its verdict all the rough work done by $\mathcal{D}$ is erased.


It is clear the original proof "assumes that there is a function halt() that can decide whether or not a given Turing Machine halts or not."


The machine $\mathcal{H}$ has its motion divided into sections. In the first $N - 1$ sections, among other things, the integers $1, 2, \ldots, N - 1$ have been written down and tested by the machine $\mathcal{D}$. A certain number, say $R\left(N - 1\right)$, of them have been found to be the D.N's of circle-free machines. In the $N$-th section the machine $\mathcal{D}$ tests the number $N$. If $N$ is satisfactory, i.e., if it is the D.N of a circle-free machine, then $R\left(N\right) = 1 + R\left(N - 1\right)$ and the first. $R\left(N\right)$ figures of the sequence of which a D.N is $N$ are calculated. The $R\left(N\right)$-th figure of this sequence is written down as one of the figures of the sequence $\beta'$ computed by $\mathcal{H}$. If $N$ is not satisfactory, then $R\left(N\right) = R\left(N - 1\right)$ and the machine goes on to the $\left(N + 1\right)$-th section of its motion.

From the construction of $\mathcal{H}$ we can see that $\mathcal{H}$ is circle-free. Each section of the motion of $\mathcal{H}$ comes to an end after a finite number of steps. For, by our assumption about $\mathcal{D}$, the decision as to whether $N$ is satisfactory is reached in a finite number of steps. If $N$ is not satisfactory, then the $N$-th section is finished. If $N$ is satisfactory, this means that the machine $\mathcal{M}\left(N\right)$ whose D.N is $N$ is circle-free, and therefore its $R\left(N\right)$-th figure can be calculated in a finite number of steps. When this figure has been calculated and written down as the $R\left(N\right)$-th figure of $\beta'$, the $N$-th section is finished. Hence $\mathcal{H}$ is circle-free.


At this point, Turing has explicitly stated that $\mathcal{H}$ is "circle-free" and can be, and in fact is, constructed using a finite number of steps.


Now let $K$ be the D.N of $\mathcal{H}$. What does $\mathcal{H}$ do in the $K$-th section of its motion? It must test whether $K$ is satisfactory, giving a verdict "$s$" or "$u$". Since $K$ is the D.N of $\mathcal{H}$ and since $\mathcal{H}$ is circle-free, the verdict cannot be "$u$". On the other hand the verdict cannot be "$s$". For if it were, then in the $K$-th section of its motion $\mathcal{H}$ would be bound to compute the first $R\left(K - 1\right) + 1 = R\left(K\right)$ figures of the sequence computed by the machine with $K$ as its D.N and to write down the $R\left(K\right)$-th as a figure of the sequence computed by $\mathcal{H}$. The computation of the first $R\left(K\right) - 1$ figures would be carried out all right, but the instructions for calculating the $R\left(K\right)$-th would amount to "calculate the first $R\left(K\right)$ figures computed by $\mathcal{H}$ and write down the $R\left(K\right)$-th". This $R\left(K\right)$-th figure would never be found. I.e., $\mathcal{H}$ is circular, contrary both to what we have found in the last paragraph and to the verdict "$s$". Thus both verdicts are impossible and we conclude that there can be no machine $\mathcal{D}$.


And here is part of the problem- after Turing has just finished showing that $\mathcal{H}$ must be circle-free, and we are only constructing a machine made up of circle-free machines, the proof then immediately states that $\mathcal{H}$ can not be circle-free, even though we've shown that the machine we have constructed must be circle-free by definition.

The fact of the matter is this- the alleged issue that is being used to assert that the halting problem is undecidable has already been resolved by this point. If it were truly a problem that would cause the Turing Machine to be "circular" it never would have been written out as a circle-free machine. At this point we are executing the circle-free machines, so the alleged problem being discussed has already been filtered out along with all the other "circular" machines by halt(). The fallacy here is "denying the antecedent".


closed as off topic by Kaveh, M.S. Dousti, Tsuyoshi Ito, Suresh Venkat Dec 16 '10 at 8:49

Questions on Theoretical Computer Science Stack Exchange are expected to relate to research-level theoretical computer science within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 11
    $\begingroup$ The standard proof of the Halting Problem is not invalid. It sounds as though you are uncomfortable with the notion of proof by contradiction. Also, see this question for other proofs of the Halting Problem: cstheory.stackexchange.com/questions/2853/… $\endgroup$ – Philip White Dec 15 '10 at 21:30
  • 4
    $\begingroup$ Tim Gowers had a post on a related question on his blog a while ago. Also see this post of Anrej Bauer. Note that undecidability of $H$ is usually stated negatively, i.e. $\lnot \exists A\in Algorithms \forall x. A(x) = H(x)$, but it can be stated positively as $\forall A\in Algorithms \exists x. A(x) \neq H(x)$, and the diagonalization proof gives you a (computable) function that finds an $x$ for each given algorithm $A$. $\endgroup$ – Kaveh Dec 15 '10 at 21:59
  • 11
    $\begingroup$ I have to agree to Philip. Moreover, when someone claims a well-established mathematical fact to be a mathematical fallacy, it is usually because he/she just does not understand the fact or its proof. Your case does not seem to be an exception. $\endgroup$ – Tsuyoshi Ito Dec 16 '10 at 1:39
  • 4
    $\begingroup$ johne, I think that question is exactly asking the same thing, i.e. an alternative proof of undecidability of halting. I also agree with Tsuyoshi and in the past have seen a number of students having trouble in understanding the argument, but they are usually humbler and ask us to help them clarify their misunderstanding and don't claim that the theorem is a fallacy. This also happens a lot with Godel's incompleteness theorem. When someone claims that a well known mathematical theorem is a fallacy it is usually that person who is misunderstanding something. $\endgroup$ – Kaveh Dec 16 '10 at 5:37
  • 3
    $\begingroup$ I'm really not seeing how there's a useful Q&A to be had here. A discussion on perceived "holes" in the Halting problem is best left to a discussion forum, not a site for clearly defined questions and answers. Closing now... $\endgroup$ – Suresh Venkat Dec 16 '10 at 8:48

This was too long to post as a comment (in response to your comment), so I'm posting it as an answer.

Turing's proof of the Halting Problem is not mathematically fallacious. Here is the paragraph in which you explain why the proof bothers you:

Since halt() is axiomatically defined as being able to decide whether a Turing Machine halts, any analysis that arrives at a result that contradicts this behavior can not, by definition, prove that halt() is undecidable. The axiomatic definition of halt() is so strong that any result that causes, or results in, a contradiction of halt() is proof that the hypothesis is invalid. Basically, just like the first possibility, there's no point in continuing on with the proof with this choice either because we have our answer- it is impossible to prove that the Halting Problem is undecidable using this technique because it is axiomatically guaranteed to be decidable.

I think I can summarize your objection as follows: You are saying, "once we've contradicted the initial assumption that HALT exists, it is impossible to continue with a proof, because we've encountered an absurdity."

I'm not sure that it's quite right to say that the halting problem is axiomatically guaranteed to be decidable, but the point is that we've assumed that it is decidable, for no reason other than that we want to show that it isn't. I'm not sure what you think a proof by contradiction (or negation--I admit I use the two interchangeably, even if I shouldn't) is if not this.

This may be qualify as decidedly "non-research level" mathematics, but in the interest of giving you a metaphor that may help I'll say this anyway. Suppose I claim that I can build a spaceship that will fly to Alpha Centauri and back within ten seconds. You could say, "Well, let's assume that that's the case. Then you would have built a spaceship that is capable of traveling faster than the speed of light, which is impossible. Thus, no such spaceship can exist." This is (vaguely) similar logic to what is being used in the proof; we claim something can exist, then demonstrate an absurdity, and conclude that this indicates that it cannot exist.

If there's anything unclear about this, let me know and I'll try to re-explain. Also please see the link I gave in the comments for alternate proofs of the Halting Problem.

  • $\begingroup$ Phillip, the problem lies in the pedantic details in the way the proof is given. On one side, say A, we have the axiomatic definition "the halting problem is decidable." Then, through a series of complicated steps, we finally arrive at a different result, B: "The halting problem is undecidable." This is a contradiction, so we need to resolve it. We could have gone wrong somewhere in A, or possibly in B. My point is this: In this particular case, it simply is not possible to "go wrong in A" because of the way it was defined. $\endgroup$ – johne Dec 16 '10 at 2:00
  • $\begingroup$ In fact, your spacecraft analogy is precisely why I want an alternative proof that is maximally orthogonal to the original. In your spacecraft analogy, there are numerous other disciplines that can be used to arrive at "That's impossible." The same should be true here. Interestingly, König's lemma would seem to suggest that the finite nature of the $\delta$ transition table means there is no infinite, acyclic path, and therefore would seem to indicate that the Halting Problem is decidable. This is why I want a vetted proof via different means. $\endgroup$ – johne Dec 16 '10 at 2:08
  • 7
    $\begingroup$ "The series of complicated steps" that you allude to is mathematically valid; thus, we know that the only thing that could have "gone wrong" is the assumption A. If you can reach a contradiction as a logical consequence from some premise X, this means that the negation of X is valid and X is not. I get the sense I could talk myself blue in the face and still not convince you, though. Also, take a look at the proofs in the question I linked to above; I don't have the expertise to follow the first proof there, but it might be what you're looking for. I'm not sure what else to say. $\endgroup$ – Philip White Dec 16 '10 at 2:15
  • $\begingroup$ Philip, we'll just have to disagree as to whether or not it is mathematically valid. Regardless, I think you can agree that a second proof that is completely orthogonal and independent is always useful. THIS is what I'm asking for, I'm not making claims (in the strong, formally proven sense, they are a personal opinion) that I have formally shown the proof is invalid. I looked at your links, but unfortunately it's "more of the same". I'm actually surprised that no one has put forward a link to an alternate proof. $\endgroup$ – johne Dec 16 '10 at 4:35
  • $\begingroup$ What about the one that refers to the Low Basis theorem? I don't think that one is "more of the same." $\endgroup$ – Philip White Dec 16 '10 at 22:26

Although your reasoning is flawed, I believe it is educational to see why. First of all, I have a rule of thumb when I am trying to prove something that seems extraordinary or difficult: "Assume that your approach is wrong and try to find out why". Arguing against yourself is not an easy task, but it is very important.

One technique I use very often is trying to apply the same argument to different situations. In other words, I'm trying to find a counterexample. Assume that your reasoning is perfect. Then, apart from computability, you are disproving a good part of mathematic knowledge, which is based on contradiction proofs. For example, the statement that there is no natural number such that no other natural number is greater than it, uses contradiction. This result is much more intuitive than the undecidability of halting.

Perhaps the notion of contradiction could be better understood if you think of every person trying to prove a statement as a little God: Assume that you have a theory, i.e. a number of axioms and theorems. Assume also that you have a universe that instead of physical laws, obeys only this theory. Now , if you wanted to prove that statement S is false,you could work in the following way (an analogy to the physical world and a statement such as the conservation of energy is highly educational):

  1. Split the original universe U into two parts, A and B, that are equal to U and obey its theory.Then make an addition that is unique to every part: Assume that in part A S holds, while in part B of the universe S is false. This is not the same as saying that S or its denial is an axiom in the respective part. It might be possible that a proof exists, however you are not aware of it (yet).

  2. If S is false in both parts, then it must be also false in the whole universe. In the part B of universe that it is false (proven so by an unknown proof) you don't have to worry about it. If this argument does not sound very convincing, you can consider part B as small as you like: for example, if B consisted of only 2 atoms, you could easily verify the law of energy conservation.

  3. Now, consider the part A. If you could show that A does not obey its own theory,that is the original theory and the theorem that S is true, it could not exist. However, you know that the original theory is true, therefore it must be that last theorem that does not allow part A to exist. Therefore, since part A does exist, S must be false.

  4. Now you have that S is false in both parts of your universe, so it is false for the whole universe as well.

I would also highly recommend reading the following posts from Terence Tao's blog. I found them very instructive. He talks about contradiction and how to create objects that are so powerful, that contradict their own existence:

The “no self-defeating object” argument

The “no self-defeating object” argument, revisited

The “no self-defeating object” argument, and the vagueness paradox

  • $\begingroup$ Look, there is nothing wrong with the "proof by contradiction" technique, nor am I claiming that. I am claiming that there is a serious problem with the way that the technique has been employed in Turings proof. The proof forms a series of "if / then" conditionals and then uses "Denying the antecedent" to form the contradiction. But due to the conditional chaining, it is not possible to get to halt() is "undecidable" without first explicitly passing through halt() is "decidable" for the very case being reasoned about. $\endgroup$ – johne Dec 16 '10 at 3:18
  • $\begingroup$ @johne I can't understand how your criticism doesn't hold for proofs by contradiction in general. The halting proof is trying to show $\neg\exists M$ s.t $L(M)=H$, so it proceeds by assuming $\exists M$ s.t. $L(M)=H$. It then shows that in fact $L(M)\neq H$. From this we conclude that our assumption of $\exists M$ s.t. $L(M)=H$ is flawed. Thus, classically, we can conclude that $\neg\exists M$ s.t. $L(M)=H$. Where in there do you have a problem? $\endgroup$ – Mark Reitblatt Dec 16 '10 at 3:35
  • $\begingroup$ In the proof given by Turing, it's not a question of "If this is true, then it would imply.." The way the proof is constructed is that halt() MUST have been decidable at some point in the past and at the point of contradiction it has become undecidable for a case that we could have reached if, and only if, halt() was decidable in the past for this specific case. The fact that "for some reason" it is undecidable now can not change the fact that it was decidable in this results causal past. $\endgroup$ – johne Dec 16 '10 at 3:37
  • 2
    $\begingroup$ @johne Mathematical proofs do not deal with "time" in that way. Proof and truth are time invariant. It's not showing that halt() "becomes" undecidable. It's showing that if we think we have a TM that solves the halting problem, then we can always break it. So, it must be the case that we don't have a TM that solves the halting problem. $\endgroup$ – Mark Reitblatt Dec 16 '10 at 3:44
  • $\begingroup$ @mark: Because the proof given by Turing "shows that in fact $L(M) \ne H$" by explicitly, conditionally, and causally requiring $L(M)=H$ to be true in order to show "$L(M) \ne H$". But it's not $L(M) \ne H$ that is proven, it must be $\lnot(L(M)=H)$, because thats what was true in the past. These are two radically different things: $\lnot(L(M)=H)$ means it is still possible to decide the Halting Problem, the fact that you ignored or negated the result does not, and can not, change that fact. $\endgroup$ – johne Dec 16 '10 at 3:51

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