A defining formula of an interpretation, with its arguments pinned to rounds #
DescriptiveComplexity.ExpExpansion.exists_transl translates a prenex formula
over an exponential expansion into a kernel quantified by the rounds that remain
above c, the rounds below c holding the values of its free variables. What an
interpretation hands over is not that: it is a
FirstOrder.Language.Formula (Fin k × Fin dim), one free variable per coordinate
of each argument tuple.
This file closes the gap once and for all, for the two-argument case that covers
every relation symbol of FirstOrder.Language.andOrGraph (a unary
symbol simply ignores the second argument):
DescriptiveComplexity.ExpExpansion.exists_paramKernel– for everyφ : (X.E + ≤).Formula (Fin 2 × Fin d)there is a round countDsuch that, at any layout with at least2 * dparameter rounds and exactlyDplay rounds, a kernelKexists whose alternating value over the play rounds isφ, its argument(a, b)read at the roundDescriptiveComplexity.ExpExpansion.paramIx a b– that is, at rounda * d + b, so that the first argument occupies the rounds belowdand the second the rounds below2 * d.
The bookkeeping is three renamings and nothing else: the free variables become
bound slots (FirstOrder.Language.BoundedFormula.relabel), the result is put in
prenex form (FirstOrder.Language.BoundedFormula.toPrenex, whose proof is what
exists_transl recurses on), and the slots are sent to their rounds by the hv
argument of exists_transl.
Where an argument coordinate sits #
Coordinate b of argument a sits at round a * d + b: the first
argument's points occupy the rounds below d, the second's the next d.
Instances For
Dependency graph
Dependency graph
The formula, with its arguments freed into slots #
The defining formula of an interpretation, its free variables pushed into
bound slots so that DescriptiveComplexity.ExpExpansion.exists_transl can
consume it.
Equations
Instances For
Dependency graph
Dependency graph
Freeing the arguments changes nothing: read at any tuple of points, the freed formula says what the original said of the points its coordinates name.
Dependency graph
The kernel #
A defining formula, played as an alternating prefix. The round count D
depends on the formula alone; the layout – how many parameter rounds sit below
the play rounds – is free, so that finitely many formulas can share one block by
padding the short ones.