The translation lemma #
A first-order sentence over an exponential expansion is a second-order
sentence over the base. This is the type-lowering reading of
Henkin 1950 made into a theorem, and the honest
statement of the obstruction that keeps an interpretation from being composed
after an expansion: a quantifier ranging over the points of X.Map A ranges
over block assignments, so it is a second-order quantifier over A. The
translation writes that down rather than avoiding it.
The construction is the standard one, with everything it needs already built.
- Prenex first.
FirstOrder.Language.BoundedFormula.toPrenexputs the sentence in prenex form, so the quantifiers can be peeled from the outside. The recursion runs on theFirstOrder.Language.BoundedFormula.IsPrenexproof, not on the formula:∃is encoded as∼(∼φ).all, which no structural recursion can match, whileIsPrenexcarriesallandexas genuine constructors. - One quantifier, two rounds.
DescriptiveComplexity.SORealizealternates strictly, while a prenex prefix has runs of the same quantifier. Each quantifier therefore takes two rounds – one∃, one∀– of which one is real and the other vacuous. Every round is guarded to hold a point (DescriptiveComplexity.ExpExpansion.stepF), so a vacuous round is discharged byDescriptiveComplexity.ExpExpansion.mapNonemptyrather than by a syntactic independence argument, and the matrix may read every round. - The rounds are addressed absolutely. The matrix mentions the outermost
quantifiers, so a round is named by its index in the merged block rather than
relative to the quantifier being peeled. Peeling then instantiates the outer
rounds one at a time, which is what the
extparameter ofDescriptiveComplexity.ExpExpansion.exists_transltracks: it places the rounds that remain at their absolute positions and fills the positions below with the points already chosen.
The sentence is produced existentially, not by a total recursive
definition. That is what keeps the round arithmetic honest: the inequalities
saying that the rounds a subformula needs exist are in scope exactly where the
Fin-indices are built, so no fallback round and no cast is needed anywhere.
The number of rounds is likewise produced by the induction (the d of
DescriptiveComplexity.ExpExpansion.exists_transl) instead of by a second
recursion counting quantifiers.
The kernel, read at an arbitrary family of rounds #
The structure the kernel of the translation is realized against: the base,
expanded by one copy of the point block per round. It is
DescriptiveComplexity.ExpExpansion.prefixStructure with the rounds allowed to
hold assignments not (yet) known to be points.
Equations
- X.roundStructure ρs = (DescriptiveComplexity.repMerged X.pointBlock n).structure₁ (DescriptiveComplexity.repBlockAssign X.pointBlock A n ρs)
Instances For
Dependency graph
Freeing the bound variables of the matrix #
Turning the bound variables of a quantifier-free formula into free ones keeps it quantifier-free.
Dependency graph
The matrix of the prefix: the quantifier-free matrix of a prenex sentence, its bound variables freed and each sent to the round holding its point.
Equations
- X.matrixF hv ψ = X.translQF n finZeroElim (FirstOrder.Language.Formula.relabel (Sum.elim Empty.elim hv) ψ.toFormula)
Instances For
Dependency graph
The matrix says what it should: read against the rounds, it holds exactly when the formula holds of the points they carry.
Dependency graph
One quantifier, two rounds #
The kernel contributed by one quantifier: its two rounds, each guarded to hold a point – the first existentially, as a conjunct, the second universally, as a hypothesis.
Equations
- X.stepF i₀ i₁ K = X.roundPointGuardF n i₀ ⊓ FirstOrder.Language.BoundedFormula.imp (X.roundPointGuardF n i₁) K
Instances For
Dependency graph
Peeling a quantifier: its two rounds become a point chosen existentially and a point chosen universally, of which the kernel that remains uses one.
Dependency graph
The bookkeeping shared by the two quantifier cases: once the two rounds of
a quantifier have been peeled into the points p and q, the induction
hypothesis applies at the round c + 2, its variables read at the family of
points updated at those two rounds.
Dependency graph
The translation #
The translation lemma, by induction on the prenex proof. A prenex
formula with j bound variables, each already held by a round below c, is
translated into a sentence of the prefix quantified by the r rounds that
remain: d rounds are needed, two per quantifier.
Dependency graph
An FO sentence over an expansion is a second-order sentence over the
base. The obstruction the exponential classes are built around, stated rather
than avoided: the quantifiers of a sentence read on the expanded universe become
second-order quantifier blocks over the base, two blocks per quantifier.