Follow your curiosity

What discovery has been shared with you?

Start with one fact. Explore it, go deeper, then follow whichever branch catches your imagination.

Choose subjects for a surprise

Exploring any topic

Begin your discovery

Your next discovery is one click away.

Choose one or more subjects above, or leave Any Topic selected and let curiosity decide.

Mathematics

The Halting Problem and the Limits of Computation

Quick fact

Alan Turing proved the halting problem is undecidable in 1936, a year before the first electronic computers were even built.

Why this is interesting

Imagine you could write a program that checks any other program and tells you whether it will ever stop running. Sounds useful, right? But what if that program is impossible to build — even in theory?

Read the full explanation

Understanding The Halting Problem and the Limits of Computation

We often think of computers as all-powerful, capable of solving any problem if given enough time and memory. But the halting problem shows this is false. It asks: is there a program 'H' that can take as input any program P and any input x, and always correctly decide whether P(x) halts or runs forever? Turing's answer was 'no'. To see why, imagine such an H exists. We can then create a new program 'Q' that uses H to do the opposite: if H says P will halt, then Q runs forever; if H says P will loop, Q halts. Now, what happens when we run Q on itself? If Q halts, H says it loops, causing Q to halt — a contradiction. If Q loops, H says it halts, causing Q to loop. Either way, we get an impossible situation. This self-referential trick is similar to the familiar barber paradox: a barber who shaves all those who don't shave themselves — who shaves the barber? Just as the barber can't exist, a perfect halting-detector can't exist either.

A deeper explanation

The halting problem is not just a tricky puzzle; it reveals a fundamental feature of any sufficiently powerful computational system. Turing's proof uses a powerful technique called diagonalization, where we assume the existence of a machine, then construct a case that defies it. The idea of self-reference is central: the program Q essentially asks, 'What does H say about me?' and then does the opposite, creating an unavoidable contradiction. This shows that the halting problem is undecidable — not just hard to solve, but logically impossible for any algorithm to solve. The implications extend beyond computing: because many real-world questions can be reduced to the halting problem, they are also undecidable. For example, determining whether a piece of code contains a loop that never ends, or whether a mathematical statement is provable, can be framed as halting questions. Turing's work parallels Gödel's incompleteness theorems, which showed that no consistent formal system can prove all truths. Together, they mark the boundary of what computation and formal reasoning can achieve.

Keep FACTREE close

Internet access is required. Updates arrive when you reopen or reload the app. You may need to sign in again in the installed app.