≡ᵏ-invariance of the fixed-point stages #
The stages of a simultaneous first-order induction cannot separate
≡ᵏ-equivalent tuples, when k covers the induction's variable budget
(DescriptiveComplexity.StepDef.VarBound: each variable's arity plus the
quantifier depth of its step formula) and the equivalence is taken relative
to a family of relation symbols covering those of the induction
(DescriptiveComplexity.StepDef.UsesRels; every induction has a finite such
family, DescriptiveComplexity.StepDef.exists_usesRels). This is the reason
the unordered Abiteboul–Vianu theorem is about P = PSPACE rather than a
triviality: an inflationary or partial induction over a bare structure only
ever computes ≡ᵏ-invariant relations, so everything it derives factors
through the ≡ᵏ-classes.
The induction is one step of bookkeeping on top of the k-variable
invariance lemma (DescriptiveComplexity.realize_formula_equivK): the
previous stage is invariant by induction hypothesis, so expanding the
structure by it does not change ≡ᵏ
(DescriptiveComplexity.equivK_structure₁_eq, the expansion lemma
DescriptiveComplexity.equivK_inf_eq read at a block expansion – the block's
own symbols joining the agreement family through
DescriptiveComplexity.blockRelsExtend), so the step formulas – within
budget – cannot separate equivalent tuples, so the next stage is invariant
(DescriptiveComplexity.StepDef.next_invariant). Neither iteration is
special: inflationary and partial stages inherit invariance from next
alone (DescriptiveComplexity.StepDef.inflStage_invariant,
DescriptiveComplexity.StepDef.partStage_invariant).
Every induction has a budget (DescriptiveComplexity.StepDef.exists_varBound):
k and the family are chosen per definition, which is exactly how the
invariant layer is consumed – each phase-G statement carries the k and the
symbols of the definition it starts from.
Invariant assignments #
An assignment of a block is ≡ᵏ-invariant (relative to the agreement
family S) when each of its relations cannot separate ≡ᵏ-equivalent
tuples, however its arguments are selected from the k coordinates.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
Expanding by an invariant assignment does not change ≡ᵏ #
The agreement family of the block expansion of a structure: the given family on the base symbols, everything on the block symbols.
Equations
Instances For
Dependency graph
Expanding the structure by an invariant assignment does not change
≡ᵏ: the expansion lemma DescriptiveComplexity.equivK_inf_eq, read at the
block expansion DescriptiveComplexity.SOBlock.structure₁, the block symbols
joining the agreement family.
Dependency graph
The variable budget and the symbols of an induction #
The variable budget of a simultaneous induction: k covers each
variable's arity together with the quantifier depth of its step formula –
enough pebbles to hold the arguments and play out the quantifiers.
Instances For
Dependency graph
Every induction has a variable budget: the block is finite.
Dependency graph
A variable budget survives being raised.
Dependency graph
The base relation symbols of a simultaneous induction – of its step
formulas and its output sentence – lie in the family S.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Dependency graph
A family of used symbols survives being enlarged.
Dependency graph
Every induction mentions finitely many base relation symbols: the finite agreement family relative to which its stages are invariant and its refinement is definable.
Dependency graph
Invariance of the stages #
One application of the step formulas preserves invariance: the
k-variable invariance lemma, over the structure expanded by the (invariant)
current stage.
Dependency graph
Every stage of the inflationary iteration is ≡ᵏ-invariant.
Dependency graph
The value of the inflationary iteration is ≡ᵏ-invariant: an
inflationary induction over a bare structure only computes ≡ᵏ-invariant
relations.
Dependency graph
Every stage of the partial iteration is ≡ᵏ-invariant.