Peeling the blocks of the prefix #
The prefix of the constructed instance is read block by block: the two endpoints
(DescriptiveComplexity.tEnds), then for each level in increasing order its
midpoint (DescriptiveComplexity.tZ), its universal bit
(DescriptiveComplexity.tB) and the pair it passes below
(DescriptiveComplexity.tUV), and finally the auxiliary variables
(DescriptiveComplexity.tAux).
The whole of that reading is the five transition lemmas below
(DescriptiveComplexity.step_ends, DescriptiveComplexity.step_z,
DescriptiveComplexity.step_b, DescriptiveComplexity.step_uv,
DescriptiveComplexity.step_last), each an instance of
DescriptiveComplexity.qPlayed_step: recognizing which block comes next is a
computation on block coordinates, and every variable's block coordinates are one
of three shapes (DescriptiveComplexity.keyTriple_cases).
The block coordinates of a variable are those of the endpoints, of a slot of a level, or of the auxiliary variables.
Dependency graph
Comparing block coordinates #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The five transitions #
Before the endpoints nothing has been quantified.
Dependency graph
After the endpoints comes the midpoint of the first level.
Dependency graph
After the midpoint of a level comes its universal bit.
Dependency graph
After the universal bit of a level comes the pair it passes below.
Dependency graph
After the pair of a level comes the midpoint of the next one.
Dependency graph
After the pair of the last level come the auxiliary variables.
Dependency graph
Once the auxiliary variables are quantified, everything is.