Pointwise output semantics for deterministic Turing machines #
This definitions layer treats the input string as a program and records the complete binary string produced by a deterministic machine. The definitions are machine-relative: no universality assumption is built into them.
runCfg is a total bounded evaluator on configurations. It performs the
requested number of transitions and stands still after reaching the halt state.
ProducesInTime nevertheless records the actual number of transitions before
halting, so its clock agrees with the exact-step semantics of TM.reachesIn.
Main definitions #
TM.runCfg-- total bounded execution, frozen after haltingTM.Halts,TM.HaltsInTime-- raw halting semantics for a programTM.Produces-- a program eventually halts with an exact string outputTM.ProducesInTime-- the same relation with an explicit transition budget
Machine tm, run on program program, reaches its halt state within
time transitions. The witness steps is the actual number of transitions.
Equations
- tm.HaltsInTime program time = ∃ (c : Complexity.Cfg n tm.Q), ∃ steps ≤ time, tm.reachesIn steps (tm.initCfg program) c ∧ tm.halted c
Instances For
Machine tm, run on program program, eventually halts with exact output output.
Equations
Instances For
Machine tm, run on program program, halts within time transitions with
exact output output. The witness steps is the actual number of transitions.