Halting of machines and of their descriptions #
A deterministic multi-tape machine halts on an input when its run from the initial configuration
is halted after some number of steps (Turing.MultiTapeTM.Halts). It then halts with exactly one
output (Turing.MultiTapeTM.Computes.unique); cslib's Turing.MultiTapeTM.Computes records that
output, without a bound on the number of steps. A halted run neither moves nor visits new cells, so
a machine halting with an output computes it within the time at which it halts and the space it
has used by then (Turing.MultiTapeTM.Computes.exists_computesInTimeAndSpace).
The same notions for the machines described by a description
(Turing.MultiTapeTM.Universal.Desc) are read off the simulation
Turing.MultiTapeTM.Universal.simulate, which the universal machine computes: the described machine
halts when the simulation reports a halted run after some number of steps
(Turing.MultiTapeTM.Universal.Desc.Halts), with the output collected by then
(Turing.MultiTapeTM.Universal.Desc.Computes). On the description of a machine with finitely many
states and symbols they are the notions of the machine itself, under the renaming of its symbols.
Main definitions #
Turing.MultiTapeTM.Halts: a machine halts on an input.Turing.MultiTapeTM.Universal.Desc.Halts,Turing.MultiTapeTM.Universal.Desc.Computes: the machine described by a description halts on an input, with a given output.
Main results #
Turing.MultiTapeTM.Computes.unique: a machine halts with at most one output.Turing.MultiTapeTM.halts_iff_exists_computes: a machine halts exactly when it halts with some output.Turing.MultiTapeTM.Computes.exists_computesInTimeAndSpace: an output computed without bounds is computed within some time and space bounds.Turing.MultiTapeTM.Universal.Desc.halts_desc,Turing.MultiTapeTM.Universal.Desc.computes_desc: on descriptions of machines, halting and outputs are those of the machines.Turing.MultiTapeTM.Universal.Desc.halts_iff_exists_computes: a described machine halts exactly when it halts with some output.
References #
The machine halts on input: its run from the initial configuration is halted after some
number of steps.
Instances For
A machine that halts with an output halts.
A machine halts with at most one output.
An output computed without bounds is computed within bounds: the time at which the machine halts, and the space it has used by then.
The machine described by the description of tm halts on the renamed input with the renamed
output exactly when tm halts on the input with the output.