The tuple loop: copying a block bit by bit #
The stage atoms of the EXPSPACE program build their TARGET register by copying a block of VAL or MIRROR into a block of TARGET, one bit per named cell: a loop over the tuples the control enumerates in its loop-variable slots, each round a read trip at the source cell, a write trip at the destination cell, and an advance-or-exit dispatch.
This is the first client of the chain combinator
(DescriptiveComplexity.Problems.Wide.DrawChain): three checkpoints around
two stages – a DescriptiveComplexity.Draw.ReadKit whose verdict exits store
the bit into the control, and a DescriptiveComplexity.Draw.WriteKit whose
written bit reads it back – with the loop's back edge a plain descriptor
(the combinator's dispatches may target any phase). The loop-variable
updates (initLv, advLv) and the exhaustion guard (IsMaxLv) stay
parameters: their content – the lexicographic enumeration, tied to
DescriptiveComplexity.Draw.reflTransGen_of_tupLoop – is fixed with the
runs.
The shapes #
The stage phases of a tuple loop: the read trip's and the write trip's.
Equations
Instances For
Dependency graph
The stage sites: false the read trip, true the write trip.
Equations
Instances For
Dependency graph
The stage shapes: each kit's rules with its verdict exits.
Equations
Instances For
Dependency graph
The owner of each phase of a tuple loop.
Equations
- DescriptiveComplexity.Draw.tupleOwn (DescriptiveComplexity.Draw.ChainPh.chk k) = DescriptiveComplexity.Draw.ChainSite.chk k
- DescriptiveComplexity.Draw.tupleOwn (DescriptiveComplexity.Draw.ChainPh.sub (Sum.inl val)) = DescriptiveComplexity.Draw.ChainSite.sub false
- DescriptiveComplexity.Draw.tupleOwn (DescriptiveComplexity.Draw.ChainPh.sub (Sum.inr val)) = DescriptiveComplexity.Draw.ChainSite.sub true
Instances For
Dependency graph
The stage rules: the read kit with its bit-storing verdict exits, the write kit with its return exit.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The dispatch descriptors: begin the first round (initializing the loop variables), hand the stored bit to the write trip, and advance or leave.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The rules of a tuple loop, assembled by the chain combinator.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Every rule of a tuple loop fires from a phase its site owns.
Dependency graph
A property of a tuple loop's phases and its exit holds of every phase it can move to: the two trips stay inside their own, the checkpoints stay where they are, and only the last dispatch leaves.
Dependency graph
A tuple loop separates in-shape.