The stage atoms, instantiated: the copy loops #
The second semantic instantiation: the tuple loops of a stage atom's
machinery, at the pack DescriptiveComplexity.Draw.Data.stageArgs. Each
argument position runs one copy loop – a read at the source block's cell, the
bit through the control's copy flag, a write at the TARGET block's cell – and
this file proves its three invariants and its run:
DescriptiveComplexity.Draw.Data.readLv_stageIter0/_stageIter1– the loop element is the round's tuple, before and after the store;DescriptiveComplexity.Draw.Data.stageIterD_iff– the closed form of the destination track: a cell holds a bit exactly when some round already wrote it – the round's source bit – or it held one from the start and no round has touched it;DescriptiveComplexity.Draw.Data.stageTuple_run– the copy loop's run at the generated families, byDescriptiveComplexity.Draw.tuple_run_iterwith the name guards discharged throughDescriptiveComplexity.Draw.Data.nameG_iff.
The chaining of the k loops and the whole stage atom's run assemble on
top, with DescriptiveComplexity.Draw.Data.stage_run.
The source cell of a copy round: the padded cell of the round's tuple in the position's source block.
Equations
Instances For
Dependency graph
The destination cell of a copy round: the padded cell of the round's tuple in the TARGET block of the position.
Equations
- dt.stageXD zero iv ℓ b = dt.blkElt (Sum.inl (Fin.castLE ⋯ ℓ)) (DescriptiveComplexity.Draw.pad zero (ofLex b))
Instances For
Dependency graph
The background of a copy loop, as a function of the destination content: the state with the TARGET register at the given track.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The destination-dependent background moves only at the TARGET slot.
Dependency graph
The loop element through the copy's operations #
The loop element rides along the copied bit's store.
Dependency graph
The copy loop's generated round tuples: the pre-store control's loop element is the round's tuple.
Dependency graph
The post-store control's loop element is still the round's tuple.
Dependency graph
The built TARGET, in closed form #
The destination cells are distinct: the padded cell of a tuple determines the tuple.
Dependency graph
The built TARGET block, in closed form: a cell of the copy loop's destination holds a bit exactly when it is the destination cell of some tuple whose source bit is set – the loop having visited every tuple – or it held one from the start, off the loop's cells.
Dependency graph
The copy loop's run #
One copy loop's run: from its entry checkpoint at the marker to the exit phase one cell to its right, the TARGET block of the position holding the source block's bits at every tuple's cell.
Dependency graph
The copy loops, chained: the TARGET built position by position #
Position ℓ's loop copies its source block over what the earlier positions
built. The composed content and the control each thread through by one
recursion, DescriptiveComplexity.Draw.Data.stage_loops_run chains the
runs – every handover a backed-track equality – and
DescriptiveComplexity.Draw.Data.stage_run closes the whole random
access over the chain.
The TARGET after the first n copy loops: each position's loop
writes its source bits at its destination cells over what the earlier
positions built.
Equations
Instances For
Dependency graph
The target of a random access is an address of argument cells alone:
every cell it holds was written by a copy round, at that round's destination
(stageXD, in an argument block), over the empty address. This is
wmSetLe_logicalTop's hypothesis, and so the first half of «the address a
stage atom reads lies in the logical interval».
Dependency graph
The target of a random access is padded: every cell it holds is a
destination cell, and those carry the round's tuple in the name slots and
zero beyond them (stageXD writes pad). With stageTgtD_arg this is what
places the address strictly below the logical top, whose blocks are full.
Dependency graph
The address a stage atom reads lies in the logical interval: it is
built from padded destination cells in argument blocks alone
(stageTgtD_arg, stageTgtD_isPad), which is exactly
wmSetLt_logicalTop_of_isPad. This is the hbelow the dictionary invariant
of DescriptiveComplexity.Draw.Data.stageSt_old is owed: the invariant is an
equivalence over the interval and nowhere else, so an address that is read has
to be shown to lie there.
Dependency graph
The control after the first n copy loops.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The TARGET a random access builds is blind to the two scratch registers: every copy round reads a level's register set, and the loop pins SAV at the home address itself.
Dependency graph
The control of the copy loops is blind to them too – the destination-dependent background overwrites TARGET, and the loop reads it at the home cell alone.
Dependency graph
Distinct positions write distinct blocks: the cell of a copy round names the position that wrote it.
Dependency graph
The composed TARGET, in closed form: after the first n loops a
cell holds a bit exactly when some position below n copied it there – the
source block's bit at the same tuple. Distinct positions write distinct
blocks, so the loops never collide and the disjunction is honest.
Dependency graph
Every cell of the composed TARGET is some position's destination cell.
Dependency graph
The copy loops of a stage atom, chained and instantiated: from the
phase entering the first loop to the first reset's checkpoint, the TARGET
holding the composed content of every position – exactly the hLoops leg
of DescriptiveComplexity.Draw.Data.stage_run.
Dependency graph
The stage atom's run, fully instantiated: from its entry phase to
the exit phase, the verdict – the old track's bit at the cell the built
TARGET addresses – stored in the atom's control slot, the marker, mirror
and save restored at the home address. Every leg of the random access is
closed: the save, the clear, the copy loops with their composed content,
the seek out, the read under the head, the restore and the seek home.