The sentinel step moves heads and nothing else #
Every machine begins with all heads on ▷, and TM.δ_right_of_start forces that first
transition to move each of them right. Since cell zero is immutable, the transition's writes are
no-ops, so the step's whole effect is to move every head from cell zero to cell one — the control
state it lands in, TM.retargetInputStartState, being determined by the machine alone.
TM.startedCfg records this for the canonical initial configuration, where every work tape is
blank. But the reads are ▷ on every tape whatever the tapes hold beyond cell zero, so the same
description holds from any configuration with its heads at zero. That generality is what lets a
composed machine hand a simulation an already-loaded work tape — a counter, say — and still enter
it at the state TM.retargetInputStarted expects.
Main results #
TM.step_of_heads_zero— the sentinel step from any all-heads-at-zero configurationTM.startedTM— a machine resumed after that step, ready to be a stage of a composed machineTM.reachesIn_of_startedTM,TM.reachesIn_startedTM— the two machines reach the same configurationsTM.reachesIn_succ_of_startedTM— a run of the resumed machine is a run of the originalTM.step_input_cells,TM.reachesIn_input_cells— the input tape is read-onlyTM.startInvariant_reachesIn— the left-marker invariant survives a whole runTM.step_work_cells_ne— a step writes only under its headTM.head_transitionTape_le_max,TM.head_transitionInput_le_max— a phase transition never pushes a head outwardTM.startInvariant_transitionTape,TM.startInvariant_transitionInput— and preserves the left-marker invariant
The sentinel step, from any configuration whose heads are at cell zero. Only the heads
move; every tape keeps its contents, and the state reached is the machine's own
TM.retargetInputStartState.
A machine resumed after its sentinel step. Same transition function, same halt state;
only the start state is moved forward to where the compulsory ▷-step lands. This is the form a
machine has to take to be run as a stage of a composed machine, which can never hand it a head at
cell zero.
Unlike TM.retargetInputStarted this leaves the input tape alone. That is the right choice when
the composed machine's own input tape already carries what the stage should read: it is parked at
cell one, which is exactly where the sentinel step would have left it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
What the resumed machine's start state is worth. A configuration with every head at cell zero steps, in one move, to the resumed machine's own start configuration on the same tapes with every head at cell one. So a run of the resumed machine from there is a run of the original, one step in — with whatever the tapes were carrying still on them.
The input tape is read-only. A transition moves its head and nothing else, so its contents survive any run — which is what lets a stage rewind the real input and hand the next stage the tape it started with.
The left-marker invariant survives a whole run, not just one step. Every transition
writes symbols drawn from Γw, and cell zero is immutable, so a machine can neither erase a
marker nor create one.
A phase transition never pushes a head outward. On a tape carrying its marker only at
cell zero it moves a head sitting on the marker to cell one and leaves every other head alone, so
the head ends at max head 1. The library's bound of head + 1 is too weak to survive a loop.
The same for the input tape, which a transition only moves.
A phase transition preserves the left-marker invariant.
…and so does the input tape's.
Runs from the same configuration are prefixes of one another. A deterministic machine has only one future, so a shorter run is an initial segment of a longer one. This is what lets a loop's space argument work one iteration at a time: any configuration a run passes through either lies inside the current iteration or is reached through the next iteration's start.