The rule names of the EXPSPACE program are finitely many #
DescriptiveComplexity.Problems.Wide.DrawTower gives every site type of the
program's tower a Finite instance, and every leaf kit's rule type has one where
it is defined; what was missing is the tower's shapes – the rules each site
contributes – and hence the rule names themselves, which the run layer asks for
as the hypothesis Finite (dt.RIx …) and which an interpretation needs of its
tag type.
There is no mathematics here: a shape is a match on a site whose leaves are a
kit's rules, a sum of them with a verdict, or the shape one level down, so each
instance is one line per constructor. They are stated at the abstract
machineries first (ChainSh, SeqSh, ElemSh, StageSh, TagSh, RoundSh,
VarSh, EvalSh, OuterSh), then read up the concrete tower to
DescriptiveComplexity.Draw.Data.SFSh, and the file ends at
DescriptiveComplexity.Draw.Data.finite_RIx.
The branch rules of a tag dispatch #
Dependency graph
The shapes of the abstract machineries #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
And of the concrete tower #
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
Dependency graph
The rule shapes of the clocked evaluation are finite too: two rules at a checkpoint, the shared tower's at a machinery site.
Dependency graph
Dependency graph
The rule names #
The rule names of the program are finitely many: a site and one of its rules, both of finitely many. This is the hypothesis the run layer carries and the finiteness an interpretation needs of its tag type.