Functoriality of block expansion, and padding with trivial blocks #
Infrastructure for the second-order definability layer of
DescriptiveComplexity.SecondOrder:
- Functoriality: a language morphism
Φ : L →ᴸ L'lifts through the expansion by a list of blocks (DescriptiveComplexity.soLangLift), and alternating second-order satisfaction is invariant when the base structure is expanded alongΦ(DescriptiveComplexity.sorealize_soLangLift). - Embedded first-order sentences: a sentence of the base language, embedded
into the block expansion (
DescriptiveComplexity.soLangEmbed), can be pulled out of the second-order quantification when it appears as a conjunct or as the premise of an implication (DescriptiveComplexity.sorealize_inf_embed,DescriptiveComplexity.sorealize_imp_embed). This is how the auxiliary order of an ordered reduction is eliminated: the order becomes a second-order variable of the first block, guarded by the first-order sentence “it is a linear order”. - Padding: appending or prepending the trivial (empty) block
(
DescriptiveComplexity.SOBlock.trivial) does not change alternating second-order satisfaction (DescriptiveComplexity.sorealize_append_trivial), soΣₖ- andΠₖ-definability satisfy the level inclusions of the polynomial hierarchy:Σₖ ⊆ Σₖ₊₁ ∩ Πₖ₊₁and dually (DescriptiveComplexity.SigmaSODefinable.succ,DescriptiveComplexity.SigmaSODefinable.piSucc,DescriptiveComplexity.PiSODefinable.succ,DescriptiveComplexity.PiSODefinable.sigmaSucc).
Languages vary through all the inductions, so the recursive definitions and statements take them as explicit arguments.
Assignments always exist #
Functoriality of block expansion #
Lift of a language morphism through the expansion by blocks: symbols of the base language are mapped by the morphism, relation variables of the blocks to themselves.
Equations
- DescriptiveComplexity.soLangLift [] x✝² x✝¹ x✝ = x✝
- DescriptiveComplexity.soLangLift (B :: Bs) x✝² x✝¹ x✝ = DescriptiveComplexity.soLangLift Bs (x✝².sum B.lang) (x✝¹.sum B.lang) (x✝.sumMap (FirstOrder.Language.LHom.id B.lang))
Instances For
Alternating second-order satisfaction only depends on the base structure through the symbols the kernel mentions: it is invariant under transporting the kernel along a language morphism whose expansion the structure is.
Embedding the base language into a block expansion #
The embedding of the base language into its expansion by blocks.
Equations
Instances For
A conjunct that is (the embedding of) a sentence of the base language can be pulled out of the second-order quantification.
A premise that is (the embedding of) a sentence of the base language can be pulled out of the second-order quantification.
The trivial block, and padding #
The trivial second-order quantifier block, with no relation variables. Quantifying over it (in either polarity) does not change satisfaction; it pads a quantifier prefix to a larger number of alternations.
Equations
- DescriptiveComplexity.SOBlock.trivial = { ι := Empty, ιFinite := ⋯, arity := Empty.elim }
Instances For
Extension of the block expansion under appending one more block at the end of the list.
Equations
Instances For
Appending the trivial block does not change alternating second-order satisfaction.
Level inclusions at the definability level #
Σₖ ⊆ Σₖ₊₁: pad by appending the trivial block.
Πₖ ⊆ Πₖ₊₁: pad by appending the trivial block.
Σₖ ⊆ Πₖ₊₁: pad by prepending the trivial block.
Πₖ ⊆ Σₖ₊₁: pad by prepending the trivial block.