The two scratch registers are parked at the marker #
DescriptiveComplexity.Draw.Data.ixLegStB_fields says a leg of the spine
leaves the mirror, the working register, the bottom mark, the stage tracks and
the last-pass flag alone. It says nothing about the two scratch registers, SAV
and TARGET, because a leg does write them – and the evaluation's exit asks that
they be back at the marker when the spine is over (hsavL, htgtL).
This file closes that: an atom parks both at the marker when it is a stage atom
and touches neither otherwise (ixKindEndSt), so a state entered with them
parked leaves with them parked, and the property rides the matrix's chain, the
round, the VAL loop's thread and the whole branched spine. The marker being the
empty address, the entry state has them parked for free.
Both scratch registers are parked at the marker.
Equations
- dt.Parked st elt v = (st.sav = DescriptiveComplexity.ixMark elt v ∧ st.tgt = DescriptiveComplexity.ixMark elt v)
Instances For
Dependency graph
An atom leaves the scratch parked: a stage atom parks both registers at the marker, and every other kind touches neither.
Dependency graph
The matrix's chain leaves the scratch parked.
Dependency graph
A round leaves the scratch parked: it is the matrix's chain when the gates pass and the identity when they do not.
Dependency graph
Up the tower: the VAL loop, the leg and the spine #
The VAL loop's thread leaves the scratch parked: the pair it carries is the round's, and a round parks both registers.
Dependency graph
A VAL round's exit state leaves the scratch parked.
Dependency graph
A leg leaves the scratch parked: gated, it is the VAL loop's exit state with the stage bit written; ungated, it writes nothing but that bit.
Dependency graph
The branched spine leaves the scratch parked, position by position: the
hsavL and htgtL an evaluation's exit asks for, at any file.