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):
- Assume that there is a function
halt()
that can decide whether or not a given Turing Machine halts or not. - Construct a Turing Machine that embeds
halt()
, but "does the exact opposite". - ...
- Proof by contradiction that because we have constructed a program that embeds
halt()
, but does the exact opposite, this proves thathalt()
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:
halt()
does not, or can not, decide whether a Turing Machine halts or not.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:
- 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.
- See a problem with the analysis above?
edit
@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."