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 #

Dependency graph

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

    Dependency graph

    Embedding the base language into a block expansion #

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

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

    Dependency graph

    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
      Dependency graph

      Extension of the block expansion under appending one more block at the end of the list.

      Equations
      Instances For
        Dependency graph

        Appending the trivial block does not change alternating second-order satisfaction.

        Dependency graph

        Level inclusions at the definability level #

        Σₖ ⊆ Σₖ₊₁: pad by appending the trivial block.

        Dependency graph

        Πₖ ⊆ Πₖ₊₁: pad by appending the trivial block.

        Dependency graph

        Σₖ ⊆ Πₖ₊₁: pad by prepending the trivial block.

        Dependency graph

        Πₖ ⊆ Σₖ₊₁: pad by prepending the trivial block.

        Dependency graph