Documentation

DescriptiveComplexity.TransitiveClosureReduction

FO(TC) reductions: the logarithmic-space reductions #

The reduction notion of DescriptiveComplexity.NL: an interpretation whose defining formulas may consult, besides the input structure, the reachability relations of first-order walks (DescriptiveComplexity.TCFamily). It sits between the two notions already built,

≤ᶠᵒ[≤]≤ᵗᶜ≤ˡᶠᵖ,

the first inclusion strict (DescriptiveComplexity.TransitiveClosureReductionStrict), and it is what “logarithmic-space reduction” means in a machine-free development, exactly as ≤ˡᶠᵖ is what “polynomial-time reduction” means.

What comes for free, and what does not #

A walk is an inflationary induction of a very restricted shape (DescriptiveComplexity.TCFamily.inflLimit_toStepDef), so an FO(TC) interpretation is an FO(LFP) interpretation (DescriptiveComplexity.TCInterpretation.toLFP) and an FO(TC) reduction is an FO(LFP) reduction (DescriptiveComplexity.TCReduction.toLFP). Every closure theorem of DescriptiveComplexity.FixedPointReductionClosure therefore transfers: PTIME, NP and coNP are closed under ≤ᵗᶜ, and hardness under first-order reductions implies hardness under these.

What does not transfer is the closure of NL itself: the membership walk pulled back through the reduction is a walk whose steps consult walks, and the route the other classes took is unavailable here – there the induction was absorbed by a smaller class already known to sit inside (PTIME inside NP), and NL has no smaller class to lean on. What it needs is its own normal form, a TC of a formula containing TCs being a single TC, and that is proved as an algebra of walks with two exits (DescriptiveComplexity.Decider, DescriptiveComplexity.TransitiveClosureDecide through DescriptiveComplexity.TransitiveClosureSentenceDecide): NL is closed under ≤ᵗᶜ (DescriptiveComplexity.mem_NL_of_tcReduction, in DescriptiveComplexity.TransitiveClosureReductionClosure).

Transitivity of ≤ᵗᶜ (DescriptiveComplexity.TCReduction.trans, in DescriptiveComplexity.TransitiveClosureReductionTrans) composes two FO(TC) interpretations by pulling the outer walks back through the inner interpretation, flattening them with the same deciders, and extending the inner interpretation to the outer walks' vocabulary. So ≤ᵗᶜ is a reduction order, with the closure properties of NL and of the classes above it.

Interpretations that read walks #

An FO(TC) interpretation: a relativized first-order interpretation whose formulas may read the reachability relations of a finite family of first-order walks over the base structure.

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

  • fam : TCFamily L

    The walks whose reachability relations the formulas may read.

  • toRel : RelFOInterpretation (L.sum self.fam.block.lang) L' Tag dim

    The interpretation, over the base vocabulary expanded by the walks' relation variables.

Instances For
    Dependency graph
    @[instance_reducible]

    The base structure expanded by the reachability relations of the walks – the structure the interpretation is read over.

    Equations
    Instances For
      Dependency graph
      def DescriptiveComplexity.TCInterpretation.Map {L L' : FirstOrder.Language} {Tag : Type} {dim : } (I : TCInterpretation L L' Tag dim) (A : Type) [L.Structure A] :

      The universe of the interpreted structure.

      Equations
      Instances For
        Dependency graph
        @[instance_reducible]
        instance DescriptiveComplexity.TCInterpretation.mapStructure {L L' : FirstOrder.Language} {Tag : Type} {dim : } (I : TCInterpretation 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.TCInterpretation.map_finite {L L' : FirstOrder.Language} {Tag : Type} {dim : } (I : TCInterpretation L L' Tag dim) (A : Type) [L.Structure A] [Finite Tag] [Finite A] :
        Finite (I.Map A)
        Dependency graph

        A walk is an induction, so an FO(TC) interpretation is an FO(LFP) one #

        noncomputable def DescriptiveComplexity.TCInterpretation.toLFP {L L' : FirstOrder.Language} {Tag : Type} {dim : } (I : TCInterpretation L L' Tag dim) :
        LFPInterpretation L L' Tag dim

        An FO(TC) interpretation, read as an FO(LFP) interpretation: the family's walks become the one induction that computes their reachability relations (DescriptiveComplexity.TCFamily.toStepDef), and the interpretation is unchanged.

        Equations
        Instances For
          Dependency graph

          The two readings expand the base structure by the same relations: the value of the induction is the reachability relations.

          Dependency graph
          def DescriptiveComplexity.TCInterpretation.mapEquivOfEq {L L' : FirstOrder.Language} {Tag : Type} {dim : } {I : TCInterpretation L L' Tag dim} {A : Type} [L'.IsRelational] {inst₁ inst₂ : (L.sum I.fam.block.lang).Structure A} (h : inst₁ = inst₂) :
          L'.Equiv (I.toRel.MapRel A) (I.toRel.MapRel A)

          Equal expansions give the same interpreted structure.

          Equations
          Instances For
            Dependency graph
            noncomputable def DescriptiveComplexity.TCInterpretation.toLFPLEquiv {L L' : FirstOrder.Language} {Tag : Type} {dim : } {I : TCInterpretation L L' Tag dim} {A : Type} [L.Structure A] [L'.IsRelational] [Finite A] :
            L'.Equiv (I.toLFP.Map A) (I.Map A)

            The FO(LFP) reading interprets the same structure: the identity map on tagged tuples is an isomorphism.

            Equations
            Instances For
              Dependency graph

              FO(TC) reductions #

              An FO(TC) reduction from P to Q – a logarithmic-space reduction, in the logical form of Immerman 1999: an FO(TC) interpretation over the ordered expansion of the source vocabulary, mapping yes-instances exactly to yes-instances, for every finite linear order on the input.

              Instances For
                Dependency graph

                An FO(TC) reduction from P to Q – a logarithmic-space reduction, in the logical form of Immerman 1999: an FO(TC) interpretation over the ordered expansion of the source vocabulary, mapping yes-instances exactly to yes-instances, for every finite linear order on the input.

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

                  Every FO(TC) reduction is an FO(LFP) reduction #

                  An FO(TC) reduction is an FO(LFP) reduction: reachability is an inflationary induction. Every closure property of ≤ˡᶠᵖ transfers along this.

                  Equations
                  Instances For
                    Dependency graph

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

                    The empty family of walks: no relation variables, so the expansion is the structure itself.

                    Equations
                    Instances For
                      Dependency graph

                      A relativized interpretation, read as an FO(TC) interpretation whose formulas ignore the walks it is given.

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

                        An interpretation that ignores its walks produces exactly the structure of the relativized interpretation it lifts, whatever the walks are: the expansion interprets the base symbols as the base structure does.

                        Equations
                        Instances For
                          Dependency graph

                          A relativized interpretation, read as an FO(TC) interpretation that consults no walk.

                          Equations
                          Instances For
                            Dependency graph

                            The FO(TC) interpretation with no walks produces exactly the structure of the relativized interpretation it lifts.

                            Equations
                            Instances For
                              Dependency graph

                              A relativized ordered FO reduction is an FO(TC) reduction, consulting no walk.

                              Equations
                              Instances For
                                Dependency graph

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

                                Equations
                                Instances For
                                  Dependency graph

                                  An FO reduction is an FO(TC) reduction.

                                  Equations
                                  Instances For
                                    Dependency graph

                                    The classes above NL are closed under FO(TC) reductions #

                                    PTIME is closed under FO(TC) reductions.

                                    Dependency graph

                                    NP is closed under FO(TC) reductions.

                                    Dependency graph

                                    coNP is closed under FO(TC) reductions.

                                    Dependency graph