ADVANCE: moving the working cell one address, mirror in tow #
The round every sweep of the EXPSPACE program repeats: erase the working-cell
marker and step right; write it
at the next address and step on; scan up to the top of the register file;
bounce – the scan cannot overshoot the maximal cell, so entering the
downward pass costs two steps, left to the top's predecessor and back right,
changing phase; run the mirror increment down the file
(DescriptiveComplexity.Draw.Prog.reaches_fileIncr); scan back down to the marker.
DescriptiveComplexity.Draw.Prog.reaches_fileAdvance is the whole round, and the
first composite of the layer: two Prog.step_moves, a
Prog.reaches_toCell, two bounce steps, a pass and a
Prog.reaches_toCellBack, chained by Relation.ReflTransGen. Its hypotheses
are the six rule families of the phases it visits plus the background's slot
equations, and nothing else – which is the evidence the pass layer's
interfaces (the element-valued background, the cell-coupled walking rules, the
stop-ahead bounds) are the right ones: every one of them is consumed here.
The working cell and its successor lie strictly below the register file, so the cell-coupled walking hypotheses – whose cells are all at or above a register – never meet the marker, and one rule family per walking phase serves both the pass's descent and the return scan.
One round of a sweep: the working-cell marker moves from v to its
increment v', the mirror track from m to its increment m', and the head
comes back to the marker. See the module docstring for the itinerary; the
hypotheses are the rule families of the six phases visited and the slot
equations of the three backgrounds (marker at v, marker nowhere, marker at
v').
Dependency graph
One round of a sweep, the budget forgotten.