Documentation

DescriptiveComplexity.SecondOrderLift

Functoriality of block expansion, and padding with trivial blocks #

Infrastructure for the second-order definability layer of DescriptiveComplexity.SecondOrder:

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
Instances For
    theorem DescriptiveComplexity.sorealize_soLangLift (Bs : List SOBlock) (L L' : FirstOrder.Language) (Φ : L →ᴸ L') (A : Type) (instL : L.Structure A) (instL' : L'.Structure A) :
    Φ.IsExpansionOn A∀ (φ : (soLang L Bs).Sentence) (pol : Bool), SORealize L' A Bs ((soLangLift Bs L L' Φ).onSentence φ) pol SORealize L A Bs φ pol

    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 #

    theorem DescriptiveComplexity.sorealize_inf_embed (Bs : List SOBlock) (L : FirstOrder.Language) (A : Type) (instL : L.Structure A) (χ : L.Sentence) (φ : (soLang L Bs).Sentence) (pol : Bool) :
    SORealize L A Bs ((soLangEmbed Bs L).onSentence χφ) pol A χ SORealize L A Bs φ pol

    A conjunct that is (the embedding of) a sentence of the base language can be pulled out of the second-order quantification.

    theorem DescriptiveComplexity.sorealize_imp_embed (Bs : List SOBlock) (L : FirstOrder.Language) (A : Type) (instL : L.Structure A) (χ : L.Sentence) (φ : (soLang L Bs).Sentence) (pol : Bool) :
    SORealize L A Bs (FirstOrder.Language.BoundedFormula.imp ((soLangEmbed Bs L).onSentence χ) φ) pol A χSORealize L A Bs φ pol

    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
    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.