Lax251941.TapeAcceptanceUndecidable
The acceptance problem for Turing machines is undecidable
concepts/Lax251941/TapeAcceptanceUndecidable.lean · lax-251941
No public endorsements yet.
Loading review…
Sign in with ORCIDConcept map
Theorem
No algorithm decides, given a single-tape Turing machine and an input word , whether accepts . This is Sipser's Theorem 4.11 for the tape machines of Section 5.2: a decision procedure for their acceptance problem would, through the Turing-completeness of the tape machines (), decide the acceptance problem of , which the diagonalisation argument rules out. One simulation suffices, since a decision procedure is uniform in the machine: the machine simulating a fixed universal function is held fixed and only its input varies.
Lean source view on GitHub
| 1 | import Mathlib.Computability.Halting |
| 2 | import Lax251941.TuringMachines |
| 3 | |
| 4 | /-! |
| 5 | --- |
| 6 | title: The acceptance problem for Turing machines is undecidable |
| 7 | type: theorem |
| 8 | --- |
| 9 | No algorithm decides, given a single-tape Turing machine and an input word |
| 10 | , whether accepts . This is Sipser's Theorem 4.11 for the tape |
| 11 | machines of Section 5.2: a decision procedure for their acceptance problem |
| 12 | would, through the Turing-completeness of the tape machines |
| 13 | (`TuringCompleteness`), decide the acceptance problem of |
| 14 | `Acceptance`, which the diagonalisation argument rules out. One simulation |
| 15 | suffices, since a decision procedure is uniform in the machine: the machine |
| 16 | simulating a fixed universal function is held fixed and only its input varies. |
| 17 | |
| 18 | # Formalization notes |
| 19 | |
| 20 | Decidability of a problem on pairs `(M, w)` is mathlib's `ComputablePred` on the |
| 21 | type `TM × List ℕ`, with machines encoded by their tables (the `Primcodable` |
| 22 | instance of `TuringMachines`). |
| 23 | -/ |
| 24 | |
| 25 | namespace Lax251941.TapeAcceptanceUndecidable |
| 26 | |
| 27 | open Lax251941.TuringMachines |
| 28 | |
| 29 | /-- The acceptance problem for single-tape Turing machines is undecidable. -/ |
| 30 | axiom not_computablePred_accepts : |
| 31 | ¬ ComputablePred fun p : TM × List ℕ => p.1.Accepts p.2 |
| 32 | |
| 33 | end Lax251941.TapeAcceptanceUndecidable |
| 34 |
Formalization notes
Decidability of a problem on pairs is mathlib's on the type , with machines encoded by their tables (the instance of ).
Community review
Discussion
Ask a question or add context. Endorsements and structured flags are kept in the review panel above; your ORCID profile must share a public name.
0 comments