Outline of the Proof that the Halting Problem is Unsolvable

Suppose we have a solution S to the Halting Problem:

Solution S

In what follows, we include S into a larger program and then analyze how that larger program works.

Step 1: Adjust Inputs

Although the Halting Problem treats P and I as separate, we observe that both P and I are characters (or files). Thus, we could consider giving S the same characters as both P and I.

Add a step, so that the input will be a program, and that input is also fed to the program. The resulting expanded solution S' will determine whether or not any program P halts when given itself as input.

Copy Input

Step 2: Adjust Output

We add a stage at the end of processing to get a new program S", based on the output of Solution S.

Putting these pieces together, we obtain an expanded program with S at its core.

Expansion of Program S

Summary:

Given a solutions S of the Halting Problem, we have constructed a new program S".

What happens when S" is given itself as input?

We base our analysis on our Solution S to the Halting Problem:

Conclusion: Program S contains an error; S does not always produce a correct result for the Halting Problem, so S does not actually solve that problem.

Since this result follows for any claimed solution of the Halting Problem, we conclude there are no solutions to the Halting Problem;
The Halting Problem is Unsolvable

created: 3 January 2007
last revised: 7 January 2007
previous  next Valid HTML 4.01! Valid CSS!