Skip to main content
added 818 characters in body
Source Link
user21820
  • 61.4k
  • 9
  • 110
  • 283

Another fact for classical T is that T is consistent iff Q' is trueD(D) does not halt. We have already shown that if T is consistent then Q' is trueD(D) does not halt. If T is inconsistent and classical then by the principle of explosion T proves both QW and Q'W', and so HG(CD,CD) halts, and hence Cso D(CD) doeshalts.

We do not even need T to be classical if we modify G to halt. Similarly if at some point it has found proofs within T of opposite statements. With this, it suffices to have the following extra condition on T (which is classical thencompatible with T being intuitionistic):
  If T proves "It is not true that the program P halts on input X.":
    T proves "It is not true that the program P halts on input X and outputs Y.".
If T is inconsistent:
  G(D,D) halts (due to the modification).
  Thus D(D) halts.
If T is consistent iff:
  G behaves exactly as before.
  Thus D(D) does not halt.
  And T does not prove "It is not true that the program D halts on input D and outputs 0.".
  Thus T does not prove "It is not true that the program D halts on input D.".
  Thus T does not prove something equivalent to its own consistency!

Another fact for classical T is that T is consistent iff Q' is true. We have already shown that if T is consistent then Q' is true. If T is inconsistent and classical then by the principle of explosion T proves both Q and Q', and so H(C,C) halts, and hence C(C) does not halt. Similarly if T is classical then T is consistent iff D(D) does not halt.

Another fact for classical T is that T is consistent iff D(D) does not halt. We have already shown that if T is consistent then D(D) does not halt. If T is inconsistent and classical then by the principle of explosion T proves both W and W', and so G(D,D) halts, and so D(D) halts.

We do not even need T to be classical if we modify G to halt if at some point it has found proofs within T of opposite statements. With this, it suffices to have the following extra condition on T (which is compatible with T being intuitionistic):
  If T proves "It is not true that the program P halts on input X.":
    T proves "It is not true that the program P halts on input X and outputs Y.".
If T is inconsistent:
  G(D,D) halts (due to the modification).
  Thus D(D) halts.
If T is consistent:
  G behaves exactly as before.
  Thus D(D) does not halt.
  And T does not prove "It is not true that the program D halts on input D and outputs 0.".
  Thus T does not prove "It is not true that the program D halts on input D.".
  Thus T does not prove something equivalent to its own consistency!

added 753 characters in body
Source Link
user21820
  • 61.4k
  • 9
  • 110
  • 283

Given any program H:
  Let C be the program that does the following on input P:
    If H(P,P) = "false" then output "haha" (and halt) otherwise infinite-loop (not halting).
ThenIf H solves the halting problem:
    H(C,C) halts, and hence C(C) halts iff H(C,C) = "false", by definition of C.
    Contradiction with definition of H.
  Thus H does not solve the halting problem.

Given any program G :
  Let D be the program that does the following on input P:
    If G(P,P) = 0 then output 1 otherwise output 0.
  If D(D) haltsG solves the zero-guessing problem:
    G(D,D) halts, and hence D(D) ≠ 0 iff G(D,D) = 0, by definition of D.
    Contradiction with definition of G.
  Therefore G does not solve the zero-guessing problem.

Generalization to uncomputable formal systems

One nice aspect of this computability-based viewpoint is that it automatically relativizes to any kind of class Ω of oracle programs. In particular, the same proof yields the incompleteness theorems for formal systems whose proof verifier is a program in Ω and that can reason about programs in Ω. This result can be used to prove that the arithmetical hierarchy does not collapse to any level, like shown in this post.

Given any program H:
  Let C be the program that does the following on input P:
    If H(P,P) = "false" then output "haha" (and halt) otherwise infinite-loop (not halting).
Then C(C) halts iff H(C,C) = "false", by definition of C.
  Thus H does not solve the halting problem.

Given any program G :
  Let D be the program that does the following on input P:
    If G(P,P) = 0 then output 1 otherwise output 0.
  If D(D) halts:
    D(D) ≠ 0 iff G(D,D) = 0, by definition of D.
  Therefore G does not solve the zero-guessing problem.

Given any program H:
  Let C be the program that does the following on input P:
    If H(P,P) = "false" then output "haha" (and halt) otherwise infinite-loop (not halting).
If H solves the halting problem:
    H(C,C) halts, and hence C(C) halts iff H(C,C) = "false", by definition of C.
    Contradiction with definition of H.
  Thus H does not solve the halting problem.

Given any program G :
  Let D be the program that does the following on input P:
    If G(P,P) = 0 then output 1 otherwise output 0.
  If G solves the zero-guessing problem:
    G(D,D) halts, and hence D(D) ≠ 0 iff G(D,D) = 0, by definition of D.
    Contradiction with definition of G.
  Therefore G does not solve the zero-guessing problem.

Generalization to uncomputable formal systems

One nice aspect of this computability-based viewpoint is that it automatically relativizes to any kind of class Ω of oracle programs. In particular, the same proof yields the incompleteness theorems for formal systems whose proof verifier is a program in Ω and that can reason about programs in Ω. This result can be used to prove that the arithmetical hierarchy does not collapse to any level, like shown in this post.

Added Philip White's reference.
Source Link
user21820
  • 61.4k
  • 9
  • 110
  • 283
Added a link to an archive of the reference cited by Scott's blog post.
Source Link
user21820
  • 61.4k
  • 9
  • 110
  • 283
Loading
added 679 characters in body
Source Link
user21820
  • 61.4k
  • 9
  • 110
  • 283
Loading
Source Link
user21820
  • 61.4k
  • 9
  • 110
  • 283
Loading