np hard
1936 United Kingdom undecidable
01

On Computable Numbers

Alan Turing, 1936 — there is no general procedure to decide whether an arbitrary program halts. The first wall any solver hits.

Alan Turing, working at Cambridge and soon to leave for Princeton, defined a universal computing machine and proved that the Halting Problem — given a program and an input, decide whether the program eventually stops — has no algorithmic solution. The proof is a diagonal argument: assume a halting decider exists, construct a program that consults the decider on itself and does the opposite, and contradiction follows. The result predates electronic computers. It is the foundational impossibility result of computer science, and the ceiling above which no software-verification tool, no AI system, no formal method can ever rise. Every later impossibility result in this book — Rice 1953, the NP-completeness barrier, the limits of static analysis — descends from this one paper.

Turing, A. M. (1937). On Computable Numbers, with an Application to the Entscheidungsproblem. Proceedings of the London Mathematical Society, s2-42(1), 230–265. Source →