The simulation is correct #
A configuration of the simulation, together with the output so far, is a configuration of a
machine over ℕ (Turing.MultiTapeTM.Universal.SCfg.toCfg), the zippers holding the symbols of
the work tapes. If the description holds the transition of the machine for the current key, a step
of the simulation is a step of the machine, and emits the same symbol
(Turing.MultiTapeTM.Universal.toCfg_step).
A machine with finitely many states and symbols, renamed into ℕ by Turing.MultiTapeTM.map, has a
description listing its transitions (Turing.MultiTapeTM.Universal.desc). Since runs commute with
renaming, simulating the description yields the renamed output of the machine.
Main definitions #
Turing.MultiTapeTM.Universal.desc: the description of a machine.
Main results #
Turing.MultiTapeTM.Universal.simulate_desc: the simulation agrees with the machine.
Configurations of the simulation as configurations #
The empty work tape, for missing work tapes.
Instances For
The configuration of a machine with k work tapes on the input x that s represents, with
the output out: the work tapes hold the symbols of the zippers. Missing work tapes are blank and
an input head beyond the input is clamped; on well-shaped configurations neither happens.
Instances For
The key of a well-shaped configuration of the simulation is the key of the configuration it represents.
A step of the simulation is a step of the machine, emitting the same symbol, if the description holds the transition for the current key.
An action applied to a running configuration of the simulation is the action applied to the configuration it represents, and the symbol it emits is appended to the output.
Descriptions of machines #
The description of a machine with finitely many states and symbols, renamed into ℕ by eS
and eY: a transition for every state and every choice of read symbols.
Instances For
Renamed keys determine the state and the read symbols.
The run of the simulation of the description of tm, read as configurations, is the renamed
run of tm.
The simulation is correct: simulating the description of tm on the renamed input for
t steps yields the renamed output of tm after t steps, and whether tm has halted.