Documentation

DescriptiveComplexity.FixedPointReduction

FO(LFP) reductions: the polynomial-time reductions of a machine-free library #

A first-order reduction (DescriptiveComplexity.FOReduction and its ordered and relativized variants) is computable in AC⁰; the textbook notion of reduction for the classes from PTIME up is the polynomial-time one. In a library without machines, a polynomial-time reduction is an interpretation whose defining formulas belong to a logic capturing PTIME: Immerman's FO(LFP) reductions (Immerman 1999, ch. 3). This file defines them, and embeds every first-order reduction notion of the library into them – the statement that a first-order reduction is in particular a polynomial-time one.

The notion #

A DescriptiveComplexity.LFPInterpretation is a relativized first-order interpretation (DescriptiveComplexity.RelFOInterpretation) whose formulas may read, beside the symbols of the base structure, the relations computed by a simultaneous inflationary induction over it (DescriptiveComplexity.StepDef, the library's normal form for FO(≤, IFP) = FO(LFP) = PTIME on ordered structures). The induction is computed once, its value expands the base structure (DescriptiveComplexity.LFPInterpretation.expStructure), and the interpretation is read over the expansion. This is the clausal normal form Immerman's reductions take: one fixed point, then first-order formulas.

Two design points.

DescriptiveComplexity.LFPReduction P Q, notation P ≤ˡᶠᵖ Q, is an ordered LFPInterpretation mapping yes-instances exactly to yes-instances, for every linear order on the input – order-invariance, exactly as for DescriptiveComplexity.OrderedFOReduction.

The embeddings #

DescriptiveComplexity.RelOrderedFOReduction.toLFP (and the two variants OrderedFOReduction.toLFP, FOReduction.toLFP) read a first-order reduction as an FO(LFP) reduction with no induction at all: every first-order reduction is a polynomial-time reduction. The converse fails, and provably so: DescriptiveComplexity.exists_lfpReduction_not_orderedReduction (DescriptiveComplexity.FixedPointReductionStrict) exhibits a target to which EVEN reduces in FO(LFP) but not in FO(≤).

What is proved elsewhere #

Lifting a relativized interpretation along a vocabulary map of its source #

def DescriptiveComplexity.RelFOInterpretation.liftSource {L₀ L₁ L' : FirstOrder.Language} {Tag : Type} {dim : } (φ : L₀ →ᴸ L₁) (I : RelFOInterpretation L₀ L' Tag dim) :
RelFOInterpretation L₁ L' Tag dim

A relativized interpretation read over a larger source vocabulary: every formula is transported along the vocabulary map.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    Dependency graph
    theorem DescriptiveComplexity.RelFOInterpretation.realize_liftSource_domFormula {L₀ L₁ L' : FirstOrder.Language} {Tag : Type} {dim : } (φ : L₀ →ᴸ L₁) (I : RelFOInterpretation L₀ L' Tag dim) {A : Type} {inst₀ : L₀.Structure A} {inst₁ : L₁.Structure A} (hexp : φ.IsExpansionOn A) (t : Tag) (w : Fin dimA) :
    Dependency graph
    def DescriptiveComplexity.RelFOInterpretation.liftSourceLEquiv {L₀ L₁ L' : FirstOrder.Language} {Tag : Type} {dim : } (φ : L₀ →ᴸ L₁) (I : RelFOInterpretation L₀ L' Tag dim) {A : Type} {inst₀ : L₀.Structure A} {inst₁ : L₁.Structure A} [L'.IsRelational] (hexp : φ.IsExpansionOn A) :
    L'.Equiv ((liftSource φ I).MapRel A) (I.MapRel A)

    On a structure that is an expansion along the vocabulary map, the lifted interpretation produces the same structure as the original one: the identity on tagged tuples is an isomorphism.

    Equations
    Instances For
      Dependency graph

      The induction with no relation variables #

      The simultaneous induction with no relation variables at all: its value is the (unique) assignment of the trivial block, and its output is . The first-order reductions embed into the FO(LFP) ones through it.

      Equations
      Instances For
        Dependency graph

        Interpretations reading a fixed point #

        An FO(LFP) interpretation: a relativized first-order interpretation whose formulas may read the value of a simultaneous inflationary induction over the base structure. The induction ind is computed first (its output sentence is not read); the interpretation toRel is then read over the base vocabulary expanded by the induction's relation variables.

        Over an ordered base (L := L₀.sum Language.order) this is Immerman's FO(LFP) reduction, the logical form of a polynomial-time reduction.

        • ind : StepDef L

          The induction whose value the formulas may read.

        • toRel : RelFOInterpretation (L.sum self.ind.B.lang) L' Tag dim

          The interpretation, over the base vocabulary expanded by the block of the induction.

        Instances For
          Dependency graph
          @[instance_reducible]

          The base structure expanded by the value of the induction – the structure the interpretation is read over.

          Equations
          Instances For
            Dependency graph

            The universe of the interpreted structure: the tagged tuples in the domain, the domain formula being read over the expanded structure.

            Equations
            Instances For
              Dependency graph
              @[instance_reducible]
              instance DescriptiveComplexity.LFPInterpretation.mapStructure {L L' : FirstOrder.Language} {Tag : Type} {dim : } (I : LFPInterpretation L L' Tag dim) (A : Type) [L.Structure A] [L'.IsRelational] :
              L'.Structure (I.Map A)

              The L'-structure interpreted in A.

              Equations
              Dependency graph
              theorem DescriptiveComplexity.LFPInterpretation.map_finite {L L' : FirstOrder.Language} {Tag : Type} {dim : } (I : LFPInterpretation L L' Tag dim) (A : Type) [L.Structure A] [Finite Tag] [Finite A] :
              Finite (I.Map A)
              Dependency graph
              def DescriptiveComplexity.LFPInterpretation.mapLEquiv {L L' : FirstOrder.Language} {Tag : Type} {dim : } (I : LFPInterpretation L L' Tag dim) [L'.IsRelational] {M N : Type} [L.Structure M] [L.Structure N] (e : L.Equiv M N) :
              L'.Equiv (I.Map M) (I.Map N)

              FO(LFP) interpretations are functorial on isomorphisms: the value of the induction transports along the isomorphism (DescriptiveComplexity.StepDef.inflLimit_map), and a relativized interpretation is functorial.

              Equations
              Instances For
                Dependency graph

                The pullback of a decision problem along an FO(LFP) interpretation: the structures the interpretation sends to yes-instances.

                Equations
                Instances For
                  Dependency graph
                  Dependency graph

                  With no induction, an FO(LFP) interpretation is a relativized one #

                  A relativized interpretation, read as an FO(LFP) interpretation with the trivial induction.

                  Equations
                  Instances For
                    Dependency graph
                    def DescriptiveComplexity.RelFOInterpretation.toLFPLEquiv {L L' : FirstOrder.Language} {Tag : Type} {dim : } [L'.IsRelational] (J : RelFOInterpretation L L' Tag dim) (A : Type) [instA : L.Structure A] :
                    L'.Equiv (J.toLFP.Map A) (J.MapRel A)

                    The FO(LFP) interpretation with the trivial induction produces exactly the structure of the relativized interpretation it lifts.

                    Equations
                    Instances For
                      Dependency graph

                      FO(LFP) reductions #

                      An FO(LFP) reduction from P to Q – a polynomial-time reduction, in the logical form of Immerman 1999: an FO(LFP) interpretation over the ordered expansion of the source vocabulary, mapping yes-instances of P exactly to yes-instances of Q, for every finite linear order on the input. As for DescriptiveComplexity.OrderedFOReduction, the problem P does not see the order, so the reduction is order-invariant.

                      The interpretation is relativized, and the domain is required to be inhabited, as in DescriptiveComplexity.RelOrderedFOReduction.

                      Instances For
                        Dependency graph

                        An FO(LFP) reduction from P to Q – a polynomial-time reduction, in the logical form of Immerman 1999: an FO(LFP) interpretation over the ordered expansion of the source vocabulary, mapping yes-instances of P exactly to yes-instances of Q, for every finite linear order on the input. As for DescriptiveComplexity.OrderedFOReduction, the problem P does not see the order, so the reduction is order-invariant.

                        The interpretation is relativized, and the domain is required to be inhabited, as in DescriptiveComplexity.RelOrderedFOReduction.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Dependency graph

                          The same interpretation reduces Pᶜ to Qᶜ.

                          Equations
                          Instances For
                            Dependency graph

                            An FO(LFP) reduction can be transported along an agreement of the source problems on finite structures.

                            Equations
                            Instances For
                              Dependency graph

                              Every first-order reduction is an FO(LFP) reduction #

                              A relativized ordered FO reduction is an FO(LFP) reduction with no induction: the first-order reductions the library's hardness travels along are in particular polynomial-time reductions.

                              Equations
                              Instances For
                                Dependency graph

                                An ordered FO reduction is an FO(LFP) reduction.

                                Equations
                                Instances For
                                  Dependency graph

                                  An FO reduction is an FO(LFP) reduction.

                                  Equations
                                  Instances For
                                    Dependency graph