Kits for the plain sweeps #
The kits wrapping the two plain-sweep composites of
DescriptiveComplexity.Problems.Wide.DrawSweep – one step per address of a
stretch, no register visits. DescriptiveComplexity.Draw.FlagSweepKit asks
one question per cell with the verdict in the phase (COMPARE);
DescriptiveComplexity.Draw.WriteSweepKit rewrites each cell once (COPY).
Both composites take their rules bounded to the stretch, and the kits
realize the bound the way the program does: a
permanent end marker ltp planted at the top of the stretch once, at
startup. Every stepping rule is guarded ltp ≠ one, so the sweep has no
rule at the marked cell and stops there; the caller's exit rule at
ltp = one is disjoint from every rule here.
The flag sweep's shapes #
The phases of a flag sweep: still passing, or failed.
Instances For
Dependency graph
Dependency graph
Dependency graph
The rule families of a flag sweep.
- yGo : SweepRule
The cell passes: step on in the passing phase.
- yFail : SweepRule
The cell fails: step on in the failing phase.
- nGo : SweepRule
Cruise in the failing phase.
Instances For
Dependency graph
Dependency graph
Dependency graph
A flag-sweep kit: the walked track, the end-marker slot, the per-cell question, and the phases.
- t : W
The walked track.
- ltp : W
The end-marker slot: set exactly at the top of the stretch.
- TestG : (W → A) → Prop
The per-cell question, decided by the tracks.
- emb : SweepPh → P
The kit's phases in the program.
Instances For
Dependency graph
The kit's rules.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
In-shape separation.
Dependency graph
Exit disjointness: no kit rule fires at the end-marked cell, in any
phase – the caller's exit rules there, guarded ltp = one, are disjoint from
the whole kit.
Dependency graph
The discharge #
The kit runs its sweep: one step per address of the stretch, the
verdict in the phase via DescriptiveComplexity.sweepState. The stretch's
top must sit at or below the end marker's address.
Dependency graph
The kit runs its sweep, the budget forgotten.
Dependency graph
The write sweep's shape #
The rule of a write sweep: one family, rewriting each cell as the head leaves it.
- put : WSweepRule
Rewrite the cell and step on.
Instances For
Dependency graph
Dependency graph
Dependency graph
A write-sweep kit: the walked track, the end-marker slot, the per-cell rewrite as a function of the tracks, and the one phase.
- t : W
The walked track.
- ltp : W
The end-marker slot: set exactly at the top of the stretch.
- wrG : (W → A) → W → A
The per-cell rewrite, computed from the tracks.
- ph : P
The kit's phase in the program.
Instances For
Dependency graph
The kit's rule.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
In-shape separation: one rule, nothing to separate.
Dependency graph
Exit disjointness: the single rule never fires at the end-marked cell.
Dependency graph
The discharge #
The kit runs its sweep: one rewrite per address, the background a function of the frontier. The rewrite the kit's rule computes must match the background's change at each cell, which is the one semantic hypothesis.
Dependency graph
The kit runs its sweep, the budget forgotten.