Chapter 12: The Machine That Reads Its Own Tape
Ground floor
Before computers existed, a young English mathematician asked what a person following instructions actually does, and stripped the answer to the bone: a strip of paper divided into squares, a pencil, a finite rulebook, and a finger keeping place. Read a symbol; consult the rulebook; write, move, repeat. Alan Turing proposed that skeleton in 1936, and the audacious claim, never yet refuted, is that the skeleton is the whole animal: everything any digital computer has ever done or will do is that, faster.
Then one machine changed everything: the universal machine, a rulebook for reading other rulebooks. Feed it a description of any machine, and it becomes that machine. In that move, the gap between a machine and a description of a machine collapsed; programs became data, data became programs, and every computer ever built since is that one idea, in a box, warm.
And then Turing asked the fatal, childlike question. If programs are just data, can a program read another program and answer questions about it? For instance, the most practical question in the world: will this program ever finish, or will it run forever?
The stairs
The answer is no, the proof fits in a breath, and it is the card from the last chapter wearing a machine’s body. Suppose a perfect oracle HALTS existed: give it any program and it truthfully answers “halts” or “runs forever.” Build a spiteful program S that does the following: ask HALTS about S itself, and then do the opposite of the verdict, halting if the oracle says forever, looping if the oracle says halts. Run S. Whatever the oracle answered, S has made it wrong. So the oracle stands contradicted, and therefore never existed. Not “we have not found one yet.” Cannot exist, the way a largest prime cannot. Straight pieces; strange loop; hard wall.
From that wall a whole coastline of impossibility follows, but the working skill is not reciting impossibilities. It is sorting them, because three very different creatures wear the same “it can’t be done” costume, and an engineer’s judgment consists largely of telling them apart.
Undecidable: forbidden in principle, provably, forever. No budget, no genius, no decade of Moore’s law helps, any more than they help find the largest prime. Intractable: possible in principle, but the cost curve, exponential blowups, combinatorial explosions, means the sun burns out first. Budgets help, but only polynomially, and the problem laughs at polynomials. Unengineered: merely not built yet. The only category in which effort is the answer.
Misfiling in either direction is expensive in its own currency. File a category-three problem as one or two and you have manufactured cowardice: a solvable thing abandoned with a proof-shaped excuse. File a category-one or category-two problem as three and you have manufactured the specific hell of a roadmap item that can never close, burning quarters of a working life against a wall that had a theorem posted on it the whole time.
Practice the sort on a live case, the industry this book opened with. Any product that measures minds remotely will be asked, sooner or later, for three guarantees. Perfect cheat detection: undecidable in spirit, adversarial in practice; a determined opponent controls the entire channel between their mind and your server, so costs can be raised forever and certainty purchased never. File it, price it, and stop promising it. Perfect inference of a user’s inner state from behavioral traces: not formally undecidable, but Strand One built a floor of error variance and within-person wobble beneath it that no model digs through; the honest design assumes graceful uncertainty rather than promised omniscience. Ordinary reliability of one’s own pipelines: category three, always was, and this chapter offers it no excuses.
And notice what the halting wall did, on its way past, to the dream of self-verification. A machine cannot, in general, decide the properties of programs, including the program that is itself. The guarantee must come from outside: tests, proofs in a stronger system, a second pair of eyes. Gödel said no fortress certifies itself; Turing said no machine audits itself. They are the same theorem clearing its throat, twice, before a later chapter says it about a person.
The locked door
Behind the door: Rice’s theorem, the brutal generalization that essentially no nontrivial question about what a program does is decidable in general; the Church-Turing thesis and its physical variants, the open question of whether the universe itself computes within these bounds; computational complexity and P versus NP, where “intractable” gets its exact teeth; and Charles Petzold twice, Code for this entire chapter rebuilt from telegraph relays upward, and The Annotated Turing, which walks the 1936 paper line by line and is the rare annotation better than a textbook.