Documentation

DescriptiveComplexity.FixedPointStepRel

Pulling a simultaneous induction through a relativized interpretation #

The transport lemmas of DescriptiveComplexity.FixedPointStep, redone for interpretations with a definable domain (DescriptiveComplexity.RelFOInterpretation) – and with them, closure of membership under relativized ordered reductions ≤ʳᶠᵒ[≤] (DescriptiveComplexity.IFPDefinable.of_relOrderedReduction, DescriptiveComplexity.PFPDefinable.of_relOrderedReduction).

Why the fixed-point logics need it when the second-order ones did not: all the library's hardness travels along relativized reductions (they are what a spanning target problem requires), so bringing a problem of a class back from a complete problem – PSPACE ⊆ FO(≤, PFP) via the machine problem in DescriptiveComplexity.FixedPointPartialMachine – crosses a relativized reduction in the membership direction. For the second-order classes membership was always a direct sentence, and the crossing never happened.

The construction #

Everything mirrors the plain pullback (DescriptiveComplexity.StepDef.pull), with the domain threaded through:

Extending a relativized interpretation along a block #

def DescriptiveComplexity.RelFOInterpretation.extendSORel {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (I : RelFOInterpretation L₁ L₂ Tag dm) (B : SOBlock) :
RelFOInterpretation (L₁.sum (SOBlock.pull Tag dm B).lang) (L₂.sum B.lang) Tag dm

Extension of a relativized interpretation along a second-order quantifier block: the underlying interpretation extends as DescriptiveComplexity.FOInterpretation.extendSO, and the domain formula is unchanged (lifted to the expanded source vocabulary, which it does not use).

Equations
Instances For
    Dependency graph

    Transferring assignments #

    def DescriptiveComplexity.SOBlock.pullAssignRel {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (B : SOBlock) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] (ρ : B.Assignment (I.MapRel A)) :
    (pull Tag dm B).Assignment A

    Transfer of an assignment on the definable universe to an assignment of the pulled block: a pulled tuple is in the transferred relation when all its argument points lie in the domain and the packed tuple is in the original relation. Off-domain tuples are never held – which keeps the transfer injective.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph
      theorem DescriptiveComplexity.SOBlock.pullAssignRel_iff {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (B : SOBlock) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] (ρ : B.Assignment (I.MapRel A)) {i : B.ι} {τ : Fin (B.arity i)Tag} {x : Fin (B.arity i * dm)A} (y : Fin (B.arity i)I.MapRel A) (hy : ∀ (k : Fin (B.arity i)), (y k) = (τ k, fun (j : Fin dm) => x (finProdFinEquiv (k, j)))) :
      B.pullAssignRel I ρ i, τ x ρ i y

      The workhorse characterization of the transfer: reading it at a tuple of points whose components are known is reading the original assignment at those points.

      Dependency graph
      theorem DescriptiveComplexity.SOBlock.pullAssignRel_botAssign {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (B : SOBlock) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] :
      B.pullAssignRel I (B.botAssign (I.MapRel A)) = (pull Tag dm B).botAssign A

      Transferring the empty assignment gives the empty assignment.

      Dependency graph
      theorem DescriptiveComplexity.SOBlock.pullAssignRel_injective {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (B : SOBlock) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] :

      The transfer of assignments to the definable universe is injective: the original assignment is read back off the transferred one at the packed tuples.

      Dependency graph

      The gated pullback of the step formulas #

      noncomputable def DescriptiveComplexity.domGateF {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (I : RelFOInterpretation L₁ L₂ Tag dm) (B : SOBlock) (p : (SOBlock.pull Tag dm B).ι) :
      (L₁.sum (SOBlock.pull Tag dm B).lang).Formula (Fin (B.arity p.fst * dm))

      The domain gate of a pulled variable: all its argument points lie in the definable domain.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        Dependency graph
        theorem DescriptiveComplexity.realize_domGateF {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (I : RelFOInterpretation L₁ L₂ Tag dm) (B : SOBlock) (p : (SOBlock.pull Tag dm B).ι) {A : Type} [L₁.Structure A] (σ : (SOBlock.pull Tag dm B).Assignment A) (x : Fin (B.arity p.fst * dm)A) :
        (domGateF I B p).Realize x ∀ (k : Fin (B.arity p.fst)), (I.domFormula (p.snd k)).Realize fun (j : Fin dm) => x (finProdFinEquiv (k, j))
        Dependency graph
        noncomputable def DescriptiveComplexity.guardPullRel {Tag : Type} [Finite Tag] {dm : } {L₃ L₄ : FirstOrder.Language} [L₄.IsRelational] (J : RelFOInterpretation L₃ L₄ Tag dm) {k : } (φ : L₄.Formula (Fin k)) (t : Fin kTag) :
        L₃.Formula (Fin (k * dm))

        The guarded pullback of a formula on k free variables, at a static tag assignment: the relativized sibling of DescriptiveComplexity.guardPull.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          Dependency graph
          theorem DescriptiveComplexity.realize_guardPullRel {Tag : Type} [Finite Tag] {dm : } {L₃ L₄ : FirstOrder.Language} [L₄.IsRelational] (J : RelFOInterpretation L₃ L₄ Tag dm) {A : Type} [L₃.Structure A] {k : } (φ : L₄.Formula (Fin k)) (t : Fin kTag) (w : Fin (k * dm)A) (hw : ∀ (q : Fin k), (J.domFormula (t q)).Realize fun (j : Fin dm) => w (finProdFinEquiv (q, j))) :
          (guardPullRel J φ t).Realize w φ.Realize fun (q : Fin k) => (t q, fun (j : Fin dm) => w (finProdFinEquiv (q, j))),
          Dependency graph

          The extended structure equivalence #

          theorem DescriptiveComplexity.realize_extendSORel_domFormula {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (I : RelFOInterpretation L₁ L₂ Tag dm) (B : SOBlock) {A : Type} [L₁.Structure A] (σ : (SOBlock.pull Tag dm B).Assignment A) (t : Tag) (w : Fin dmA) :

          The domain formula of the extended relativized interpretation means the original domain formula.

          Dependency graph
          noncomputable def DescriptiveComplexity.extendSORelPointEquiv {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dm : } (I : RelFOInterpretation L₁ L₂ Tag dm) (B : SOBlock) (A : Type) [L₁.Structure A] (σ : (SOBlock.pull Tag dm B).Assignment A) :

          Points of the extended relativized universe are points of the original one: the two subtypes are cut out by equivalent conditions.

          Equations
          Instances For
            Dependency graph
            noncomputable def DescriptiveComplexity.RelFOInterpretation.extendSORelEquiv {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (I : RelFOInterpretation L₁ L₂ Tag dm) (B : SOBlock) (A : Type) [L₁.Structure A] (ρ : B.Assignment (I.MapRel A)) :
            (L₂.sum B.lang).Equiv ((I.extendSORel B).MapRel A) (I.MapRel A)

            Interpreting through the extended relativized interpretation agrees with expanding the definable universe by the block: repackaging the points is an isomorphism over the expanded target language, the block being read through the transfer on one side and directly on the other (the relativized sibling of DescriptiveComplexity.FOInterpretation.extendSOEquiv).

            Equations
            Instances For
              Dependency graph

              The pulled induction and its stages #

              noncomputable def DescriptiveComplexity.StepDef.pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) :
              StepDef L₁

              The pullback of a simultaneous induction through a relativized interpretation: the block is pulled back variable by variable, the step formula of a pulled variable is the guarded pullback of the original step gated by the domain formulas of its arguments, and the output is the guarded pullback of the original output.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                Dependency graph
                theorem DescriptiveComplexity.StepDef.next_pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] (ρ : dd.B.Assignment (I.MapRel A)) :
                (dd.pullRel I).next (dd.B.pullAssignRel I ρ) = dd.B.pullAssignRel I (dd.next ρ)

                One application of the pulled step formulas is the transfer of one application of the original ones.

                Dependency graph
                theorem DescriptiveComplexity.StepDef.partStage_pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] (n : ) :
                (dd.pullRel I).partStage A n = dd.B.pullAssignRel I (dd.partStage (I.MapRel A) n)

                The partial stages of the relativized pullback are the transfers of the original stages.

                Dependency graph
                theorem DescriptiveComplexity.StepDef.inflStep_pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] (ρ : dd.B.Assignment (I.MapRel A)) :
                (dd.pullRel I).inflStep (dd.B.pullAssignRel I ρ) = dd.B.pullAssignRel I (dd.inflStep ρ)

                The inflationary step commutes with the transfer.

                Dependency graph
                theorem DescriptiveComplexity.StepDef.inflStage_pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] (n : ) :
                (dd.pullRel I).inflStage A n = dd.B.pullAssignRel I (dd.inflStage (I.MapRel A) n)

                The inflationary stages of the relativized pullback are the transfers of the original stages.

                Dependency graph
                theorem DescriptiveComplexity.StepDef.inflLimit_pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] :
                (dd.pullRel I).inflLimit A = dd.B.pullAssignRel I (dd.inflLimit (I.MapRel A))

                The value of the pulled inflationary iteration is the transfer of the original value.

                Dependency graph
                theorem DescriptiveComplexity.StepDef.isFixedPt_next_pullRel_iff {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] (ρ : dd.B.Assignment (I.MapRel A)) :

                Being a fixed point of the step is insensitive to the transfer.

                Dependency graph
                theorem DescriptiveComplexity.StepDef.ifpHolds_pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] :
                (dd.pullRel I).IFPHolds A dd.IFPHolds (I.MapRel A)

                The value of the pulled inflationary definition is the value of the original one on the definable universe.

                Dependency graph
                theorem DescriptiveComplexity.StepDef.pfpHolds_pullRel {L₁ L₂ : FirstOrder.Language} [L₂.IsRelational] {Tag : Type} [Finite Tag] {dm : } (dd : StepDef L₂) (I : RelFOInterpretation L₁ L₂ Tag dm) {A : Type} [L₁.Structure A] :
                (dd.pullRel I).PFPHolds A dd.PFPHolds (I.MapRel A)

                The value of the pulled partial definition is the value of the original one on the definable universe.

                Dependency graph

                Closure under relativized ordered reductions #

                FO(≤, IFP) definability is closed under relativized ordered reductions: the induction pulls back through the order-extended relativized interpretation, whose universe – the definable domain with the restricted lexicographic order – is identified with the ordered domain by DescriptiveComplexity.RelFOInterpretation.ordExtendRelLEquiv.

                Dependency graph

                FO(≤, PFP) definability is closed under relativized ordered reductions.

                Dependency graph