The outer composition: the sweep's rounds #
One round of the outer sweep, at the concrete program: the whole per-address
evaluation (DescriptiveComplexity.Draw.Data.evalSpine_run), the boundary
dispatch into ADVANCE (the last checkpoint's erasing rule, off the ltp
cell), the advance itself
(DescriptiveComplexity.Draw.Data.reaches_sweepAdv), the exit dispatch
into the next address's first checkpoint and its walk back. The walk is
handed between the VAL track (the evaluation's presentation) and the MIRROR
track (the advance's) by
DescriptiveComplexity.Draw.Data.trackTape_back_swap, which costs
nothing because the background carries every register's digits at its own
slot.
The evaluation's rules, at the program #
The program's rule at an evaluation site is the evaluation's.
Dependency graph
An evaluation rule with a true guard is a HasRight witness of the
program.
Dependency graph
An evaluation rule with a true guard is a HasLeft witness of the
program.
Dependency graph
The two boundary pieces of a round #
The walk back into a checkpoint: an entering dispatch lands one cell right of the marker; the checkpoint's stay rule steps back to it.
Dependency graph
The erasing dispatch into the advance, as the HasRight the
advance's round theorem consumes: at the last checkpoint below the ltp
cell, erase the marker and enter the advance – stated at the MIRROR-walked
presentation the advance runs on.
Dependency graph
The erasing dispatch into the post-sweep reset: at the last
checkpoint on the ltp cell, erase the marker and enter the reset.
Dependency graph
The post-sweep reset and mirror clear #
The reset's leg after a completed sweep, the last checkpoint's
erasing exit included: from the ltp cell to the reset's landing phase at
the empty address, the bottom marker rewritten.
Dependency graph
The post-sweep reset's exit: off the marker, rightwards, into the mirror clear.
Dependency graph
The pre-compare mirror clear's leg: the trip that empties the mirror register, returning to the marker at the empty address.
Dependency graph
One round of the sweep #
One round of the outer sweep, with its evaluation: from the first
checkpoint at the marker, through the whole per-address evaluation (given
as a hypothesis – the caller instantiates it by
DescriptiveComplexity.Draw.Data.evalSpine_run), out through the erasing
boundary dispatch, the advance, and back into the first checkpoint at the
next address. The marker, the mirror and the head all step on in
lockstep.
Dependency graph
The whole sweep #
The outer sweep: from the first checkpoint at the bottom of the
stretch to the first checkpoint at its top, one round per address – each
round the per-address evaluation and the advance, glued by
DescriptiveComplexity.Draw.Data.sweepRound. The evaluation runs, the
end-state facts and the two cover equations (the tape and control threads
across addresses) are per-address hypotheses; everything else is
DescriptiveComplexity.reaches_of_wideRounds.
Dependency graph
Entering the convergence sweep #
A plain sweep cannot be entered from the left of the empty address, so
clearMir2's verdict exit is COMPARE's first step: it tests the empty
address's cell and lands at its successor, in exactly the sweep's state
there. The sweep then continues from the successor
(DescriptiveComplexity.Draw.FlagSweepKit.reaches is general in its
stretch, which reaches_compareFrom exposes).
The convergence sweep from an arbitrary start: the generalization
of DescriptiveComplexity.Draw.Data.reaches_compare the folded first
step needs.
Dependency graph
COMPARE's folded first step: clearMir2's verdict exit tests the
empty address's cell and lands at its successor, in the sweep's state
there.
Dependency graph
The compare verdicts, and the copy-back ring #
At the ltp cell the sweep's verdict dispatches: passing to the output's
walk home, failing to the copy-back's. The copy-back has the same folded
entry as the sweep it corrects: homeCmp's exit rewrites the empty
address's cell and lands at its successor, and the copy exits at the ltp
cell into its own walk home, whose exit re-enters the evaluation.
The passing verdict: at the ltp cell with every address below
agreed, step off it into the output's walk home.
Dependency graph
The failing verdict: at the ltp cell with some address below
disagreed, step off it into the copy-back's walk home.
Dependency graph
COPY's folded first step: homeCmp's exit rewrites the empty
address's cell – every old track taking its new digit – and lands at
its successor, in the copy-back's frontier presentation there.
Dependency graph
The copy-back from an arbitrary start: the generalization of
DescriptiveComplexity.Draw.Data.reaches_copy the folded first step
needs.
Dependency graph
The copy-back's exit: at the ltp cell, step off it into its walk
home.
Dependency graph
The copy-back's walk home exits into the next sweep: off the marker, rightwards, into the first checkpoint.
Dependency graph
The output's walk home exits into the out machinery: off the marker, rightwards, into its entry checkpoint.
Dependency graph
Closing a stage #
After the sweep's last round the machine stands at the first checkpoint on
the ltp cell. One more evaluation runs there (its writes are junk the
copy never propagates and nothing reads), then the erasing .dspB exit,
the reset, the mirror clear and the convergence sweep. Its verdict closes
the stage: failing, the copy-back rewrites every old track and the walk
home re-enters the evaluation – the next stage's entry; passing, the walk
home enters the out machinery.
A failed stage closes into the next: from the first checkpoint on
the ltp cell (the evaluation there a hypothesis) to the first checkpoint
at the empty address, every old track below the top rewritten to its
new digit.
Dependency graph
A passed stage closes into the output: the same ring up to the verdict, then the walk home and the dispatch into the out machinery's entry checkpoint.
Dependency graph
MAIN #
The loop: one sweep and one stage-closing ring per stage, iterated while the convergence sweep fails, and the passing ring at the first stage that stabilizes. Everything semantic – the per-stage tape and control families and the runs themselves – is a hypothesis family; the loop is a plain induction on the first converged index.
The MAIN loop: from the first stage's entry at the empty address, through one sweep and one closing ring per stage, to the out machinery's entry checkpoint at the first stage whose convergence sweep passes.