One variable's machinery at an arbitrary file #
DescriptiveComplexity.Problems.Wide.DrawInstVar read at a coarse file: the
gates' leg and the matrix leg of one variable's machinery, the VAL loop's
thread and the capstone runs. Everything below it is already at the file, so
this is the last layer before the evaluation.
What the gates' leg of one variable's machinery is charged: the walk-back into the sequence, the gate sequence itself, and the walk-back at the verdict checkpoint.
Equations
- dt.ixVarGatesCost A vi w wP = 1 + ((dt.ixGateCost A w wP + 2) * dt.arOf vi + 1) + 1
Instances For
Dependency graph
The control after a failing gate sequence: the fail store at the failing block's entry, the flag clear.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The control after a completed but failing gate sequence: the whole gates' thread – every block's file test passed and every block's machinery ran – with the flag clear because some block encoded no point.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The whole variable machinery, run #
What one variable's machinery is charged: the gates' leg, one round, the three sweeps of the entry and the exhaustion test, and then one round and two sweeps per VAL content the loop enumerates.
Equations
- dt.ixVarCost A vi w wP wR wK n = dt.ixVarGatesCost A vi w wP + dt.ixRoundCost A vi w wP wR wK + 3 * wP + 6 + (2 * wP + dt.ixRoundCost A vi w wP wR wK + 3) * n
Instances For
Dependency graph
The state of one VAL-loop round: the entry state with the round's VAL content.
Equations
Instances For
Dependency graph
The carry of a VAL round at a coarse file: the greatest register the
mark is clear at, every register above it set – what the increment's landing
phase names. A file need not have one (an empty file has none), so this is an
Option; at the elementwise file it is always some.
Equations
- dt.ixValCarry F m = if h : ∃ (u : I), ¬m u ∧ ∀ (w : I), DescriptiveComplexity.WMLt F.le u w → m w then some h.choose else none
Instances For
Dependency graph
The block the carry lies in: what a round's store is indexed by.
Equations
- dt.ixCarryBlk F m = (dt.ixValCarry F m).bind F.blk
Instances For
Dependency graph
The exit control of one VAL round, at an entry control: the inner gates' thread over the round's register, then – at a passing round only, both flags set – the matrix thread on its output.
Equations
- DescriptiveComplexity.Draw.Data.ixRoundFX F hinj hhasP heltP vi st v mV semOf q a = dt.ixRoundCtl F hinj hhasP heltP ⋯ vi (dt.ixRoundSt st (mV a)) v (semOf a) q
Instances For
Dependency graph
The VAL loop's entry-control thread: the fold's start at the cleared register, each round the matrix pass folded and stored at the carry's block.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The fold invariant of the VAL loop #
The leaf, discharged #
The threaded twins of the VAL loop's two threads #
A round's exit state is its entry state unless the round's matrix ran a
stage atom, which normalizes SAV and TARGET
(DescriptiveComplexity.Draw.Data.ixRoundEndSt). Whether it ran at all is
the gates' verdict, read off the control entering the round – so the two
have to be iterated together, one pair per round, exactly as the
spine's nodes are one scale up.
What is threaded is not the state but the two scratch registers
(DescriptiveComplexity.Draw.Data.ixRoundEndSt_eq): every other register
is the machinery's entry state's, definitionally. That is what keeps the
semantic packs available – a pack reads the tape state through the levels'
register sets, i.e., through the mirror and VAL alone, so one family
indexed by the two registers serves every round, and it can actually be
built, which a family over arbitrary states could not be.
The two registers one round of the VAL loop can change.
Instances For
Dependency graph
The state a round is entered in: the machinery's entry state with the round's two scratch registers and the register it enumerates.
Equations
Instances For
Dependency graph
The VAL loop's thread: the two scratch registers beside the control, the fold's start at the cleared register, and at each cover the round's exit – the store taken against the background the round ends in.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The scratch family of the VAL loop.
Equations
- DescriptiveComplexity.Draw.Data.ixVarSTT F hinj hhasP heltP vi st v mV semT fG a = (DescriptiveComplexity.Draw.Data.ixVarPairT F hinj hhasP heltP vi st v mV semT fG a).1
Instances For
Dependency graph
The tape family of the VAL loop – the state each round is entered in.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The control family of the VAL loop, threaded – the twin of
DescriptiveComplexity.Draw.Data.ixVarFM.
Equations
- DescriptiveComplexity.Draw.Data.ixVarFMT F hinj hhasP heltP vi st v mV semT fG a = (DescriptiveComplexity.Draw.Data.ixVarPairT F hinj hhasP heltP vi st v mV semT fG a).2
Instances For
Dependency graph
The state one round ends in – the next round's entry state at a cover, and the loop's exit state at the top.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The exit control of one VAL round, threaded – the twin of
DescriptiveComplexity.Draw.Data.ixRoundFX, at the state the round's
atoms actually run at.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
The threaded loop is the unthreaded one #
The VAL loop's rounds run at states that differ from the machinery's entry
state in SAV and TARGET alone, and every control they compute is blind to
that difference (DescriptiveComplexity.Draw.Data.ixRoundCtlT_eq_ixRoundCtl,
DescriptiveComplexity.Draw.Data.ixRoundCtl_congr_scratch). What the
threading can change is the semantic pack, since a family indexed by the
scratch registers may pick different points at different registers; so the
bridge is stated at a pack that is one unthreaded pack transported
(ixSemCastT), which is what a reduction supplies
(DescriptiveComplexity.Draw.Data.gatedSem, whose points are the
address's blocks and nothing else).
The control the gates leave, at the reduction's own budgets – what both forms of the machinery's run start their VAL loop from.
Equations
- One or more equations did not get rendered due to their size.