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 two boundary pieces of a round #
The post-sweep reset and mirror clear #
One round of the sweep #
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 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.
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.
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.