TheĀ HaltingĀ Problem

MatrixDune

What Is It?

The halting problem asks: Can we determine, for any arbitrary program and input, whether the program will eventually halt (terminate) or run forever?

Alan Turing proved in 1936 that no such algorithm can exist.

This interactive demo walks through the brilliant proof by contradiction that shows why the halting problem is undecidable.

The Assumption
The Paradox Program
The Contradiction

Let's assume there exists a function called willHalt(program, input) that can determine if any program will halt on a given input:

function willHalt(program, input) {
  // This magical function returns:
  // true if program(input) eventually halts
  // false if program(input) runs forever
}

Key Steps of the Proof

  1. The Assumption

    Assume a program exists that can solve the halting problem for any input

  2. The Paradox Program

    Create a program that does the opposite of what the halting detector predicts

  3. The Contradiction

    When the paradox program analyzes itself, it creates a logical contradiction

  4. The Conclusion

    Since we reach a contradiction, our initial assumption must be false

Key Insights

  • Halting problem shows no algorithm universally decides program halting.
  • Computational limits mean optimal solutions are often unattainable practically.
  • Accepting good enough is good enough avoids prolonged indecision loops.
  • Good enough solutions enable timely stopping points for progress.