The sequencer: heterogeneous stages in a row #
The matrix of a step formula is evaluated atom by atom, and the gates block
by block: a sequence of machineries of different shapes – a stage
atom's random access here, a tag-branched element loop there – with a
checkpoint between consecutive ones and an exit after the last. The chain
combinator of DescriptiveComplexity.Problems.Wide.DrawChain fixes a single
stage family; this file is its dependent sibling: n stages with their own
phase and shape types (PA/SA-indexed families), n + 1 checkpoints,
the k-th dispatching into stage k's entry and the last leaving.
The per-stage machineries and their separation are parameters, so the matrix instantiates this with the kind-dependent atom machineries and the gates with the per-block gate machinery, and neither needs a new checkpoint proof.
The shapes #
The phases of a sequence: n + 1 checkpoints and the stages'.
- chk
{n : ℕ}
{PA : Fin n → Type}
: Fin (n + 1) → SeqPh n PA
The checkpoint before stage
k(atk = n: after the last). - sub
{n : ℕ}
{PA : Fin n → Type}
(a : Fin n)
: PA a → SeqPh n PA
A phase of stage
a.
Instances For
Dependency graph
The sites of a sequence.
- chk
{n : ℕ}
{SA : Fin n → Type}
: Fin (n + 1) → SeqSite n SA
A checkpoint site.
- sub
{n : ℕ}
{SA : Fin n → Type}
(a : Fin n)
: SA a → SeqSite n SA
A site of stage
a.
Instances For
Dependency graph
The rule shape of each sequence site.
Equations
Instances For
Dependency graph
The owner of each phase of a sequence, over the stages' owners.
Equations
Instances For
Dependency graph
The rules of a sequence: per checkpoint the walk back and the dispatch – into the next stage's entry, or out after the last.
Equations
- One or more equations did not get rendered due to their size.
- DescriptiveComplexity.Draw.seqRule one wk rg emb ruleA entry enterSt exitPh (DescriptiveComplexity.Draw.SeqSite.sub a s) ρ = ruleA a s ρ
Instances For
Dependency graph
A property of a sequence's phases and its exit holds of every phase it can move to, given it holds of every phase a stage can move to.
Dependency graph
Every rule of a sequence fires from a phase its site owns; the stages' obligation is the parameter.
Dependency graph
A sequence separates in-shape: the checkpoints by the gadget's guards, the stages by their parameter.