Runs one step at a time, the halting step, and machines computing in zero space #
The additions of Christian Reitwiessner's branch crei/tidy-universal to
Cslib.Computability.Machines.Turing.MultiTape.Deterministic, together with the addition of cslib
PR #1138: runs one step or one phase at a time, the time bound of a deterministic machine as a
halted run, the step at which a run halts, the output emitted in t steps, and machines computing
in zero space.
Main definitions #
Turing.MultiTapeTM.HaltsAt: the run from a configuration halts at exactly a given step.
Main results #
Turing.MultiTapeTM.runFrom_succ,Turing.MultiTapeTM.runFrom_add: a run, one step or one phase at a time.Turing.MultiTapeTM.runsInTime_iff_halted: a deterministic machine runs in timetexactly when it has halted aftertsteps.Turing.MultiTapeTM.exists_haltsAt: a halted run halts at some step.Turing.MultiTapeTM.length_output_runFrom_le: intsteps a machine emits at mosttsymbols.Turing.MultiTapeTM.ComputableInTimeAndSpace.exists_no_work_tapes: a function computable in zero space is computable by a machine without work tapes.
A deterministic machine runs in time t exactly when it has halted after t steps.
The machine tm started in cfg halts at step t: it is halted after t steps and not
halted after any smaller number of steps.
Instances For
The halting step is the first step at which the machine is halted.
From the halting step on, the configuration does not change.
A run that is halted after t steps halts at some step u ≤ t.
A run that is halted after some number of steps halts at exactly one step.
In t steps the machine emits at most t symbols.
A function computable in zero space is computable by a machine without work tapes, within the
same bounds, since every work tape costs at least one cell (MultiTapeNTM.RunsInSpace.le). The
domain must be nonempty: otherwise the machine is never run and its number of tapes is arbitrary.