Pointwise output semantics for deterministic Turing machines #
This module exposes total bounded execution and machine-relative relations for programs that produce complete binary strings. These definitions make no universality assumption, so they can be reused both for arbitrary description machines and for later universal-machine invariance theorems.
Main results #
TM.runCfg_reachesIn-- bounded evaluation agrees with relational executionTM.HaltsInTime.iff_runCfg-- executable bounded haltingTM.ProducesInTime.iff_runCfg-- an executable characterizationTM.ProducesInTime.take_time-- unread program suffixes can be truncatedTM.ProducesInTime.mono-- increasing the clock preserves productionTape.HasOutput.eq-- a tape has at most one exact binary-string outputTM.computes_iff_forall_produces-- pointwise production uniformizes by lengthTM.produces_iff_exists_producesInTime-- bounded and unbounded agreement
Bounded halting is decidable by executing the advertised clock.
Equations
- tm.instDecidableHaltsInTime program time = decidable_of_iff (tm.halted (tm.runCfg (tm.initCfg program) time)) ⋯
Increasing the clock preserves bounded halting.
Forgetting a clock turns bounded halting into eventual halting.
Eventual halting is equivalent to halting under some finite clock.
Bounded runs on two inputs stay synchronized in state, work, and output when the initialized input tapes agree on every cell reachable by the clock.
Pointwise bounded production is decidable by running the machine for its clock and checking the resulting finite output claim.
No bounded computation can inspect more than the first time program
bits: truncating there preserves exact production within the same clock.
Increasing the clock preserves pointwise production.
Forgetting a clock turns bounded production into eventual production.
Producing an output within a clock entails halting within that clock.
Eventual production is equivalent to production under some finite clock.
A deterministic program cannot produce two different outputs, even when the two production claims use different clocks.
Whole-function bounded computation is exactly pointwise bounded production under the same length-indexed clock.
A bounded whole-function computation produces the requested output on a particular input.
Eventual whole-function computation is equivalent to eventual pointwise production. The reverse implication uniformizes halting times over the finite set of Boolean strings at each input length.