Documentation

DescriptiveComplexity.TransitiveClosureReductionDet

FO(DTC) reductions: the logarithmic-space reduction of the textbooks #

DescriptiveComplexity.TCReduction lets a reduction's formulas consult nondeterministic walks. The classical many-one reduction for the classes at this level is the deterministic logarithmic-space one, and this file is it: DescriptiveComplexity.DTCReduction, notation P ≤ᵈᵗᶜ Q, where every walk is read through its determinization – it may follow a step only when that step is the only one available.

Determinism as a formula #

The packaging is the library's own, from DescriptiveComplexity.TransitiveClosureDet: rather than carrying a proof that a walk is functional – which is not first-order data, and would have to be re-established after every pullback – the walk is read through

detStep(x̄, ȳ, z̄) := step(x̄, ȳ, z̄) ∧ ∀ w̄. step(x̄, w̄, z̄) → w̄ = ȳ

(DescriptiveComplexity.ParamTCSpec.det), which is again first-order. Every specification then denotes a legitimate deterministic walk (DescriptiveComplexity.ParamTCSpec.det_functional) and nothing has to be assumed; on a walk that is already functional the two readings agree (DescriptiveComplexity.ParamTCSpec.detStepAt_of_functional), which is how an existing walk – the parity walk, say – is reused at this notion.

Where it sits #

≤ᶠᵒ[≤]≤ᵈᵗᶜ≤ᵗᶜ≤ˡᶠᵖ: a determinized walk is a walk, so everything DescriptiveComplexity.TransitiveClosureReduction proves transfers, and PTIME, NP and coNP are closed under ≤ᵈᵗᶜ as well.

DescriptiveComplexity.LOGSPACE is closed under it (DescriptiveComplexity.mem_LOGSPACE_of_dtcReduction, in DescriptiveComplexity.TransitiveClosureReductionClosure), by the same normal form as NL under ≤ᵗᶜ with one difference at the atoms: flattening a walk that consults walks needs non-reachability at the negative occurrences, and a deterministic walk is witnessed not to arrive by a step budget (DescriptiveComplexity.ParamTCSpec.detReachDecider), where a nondeterministic one needs inductive counting. Transitivity is DescriptiveComplexity.DTCReduction.trans, the composite of DescriptiveComplexity.TransitiveClosureReductionTrans read through its determinization.

Determinizing a parameterized walk #

The renaming used by the uniqueness clause: the step formula is re-read with its first tuple still the current one, its second tuple the freshly quantified , and its parameters unchanged.

Equations
Instances For
    Dependency graph

    The determinized step formula at a pair of modes: this step, and no other step out of the current node. As in DescriptiveComplexity.TCSpec.detStep, the competing successor's mode is compared statically, so the uniqueness clause has one conjunct per mode.

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

      The deterministic reading of a walk: the same modes, arity and parameters, with the step formula replaced by its determinization.

      Reducible, so that the modes, the arity and the parameter count of s.det are those of s transparently – a node of the deterministic reading is a node, and the block of a determinized family is the block of the family.

      Equations
      Instances For
        Dependency graph
        theorem DescriptiveComplexity.ParamTCSpec.realize_detStep {L : FirstOrder.Language} (s : ParamTCSpec L) {A : Type} [L.Structure A] (m n : s.Mode) (x y : Fin s.kA) (z : Fin s.parA) :
        (s.detStep m n).Realize (Sum.elim (Sum.elim x y) z) (s.step m n).Realize (Sum.elim (Sum.elim x y) z) ∀ (m' : s.Mode) (w : Fin s.kA), (s.step m m').Realize (Sum.elim (Sum.elim x w) z)m' = n w = y
        Dependency graph
        theorem DescriptiveComplexity.ParamTCSpec.detStepAt_iff {L : FirstOrder.Language} (s : ParamTCSpec L) {A : Type} [L.Structure A] (z : Fin s.parA) (a b : s.Node A) :
        s.det.StepAt z a b s.StepAt z a b ∀ (c : s.Node A), s.StepAt z a cc = b

        A determinized step is a step with no competitor.

        Dependency graph

        A walk is functional at a structure when no node has two successors.

        Equations
        Instances For
          Dependency graph

          The deterministic reading is functional, whatever walk it comes from: this is what makes determinization the right packaging, there being nothing left to assume.

          Dependency graph
          theorem DescriptiveComplexity.ParamTCSpec.detStepAt_of_functional {L : FirstOrder.Language} {s : ParamTCSpec L} {A : Type} [L.Structure A] (h : s.Functional A) (z : Fin s.parA) (a b : s.Node A) :
          s.det.StepAt z a b s.StepAt z a b

          On a walk that is already functional, the deterministic reading is the original one.

          Dependency graph
          theorem DescriptiveComplexity.ParamTCSpec.reachAt_det_of_functional {L : FirstOrder.Language} {s : ParamTCSpec L} {A : Type} [L.Structure A] (h : s.Functional A) (z : Fin s.parA) (a b : s.Node A) :
          s.det.ReachAt z a b s.ReachAt z a b

          Reachability is unchanged by determinizing a functional walk.

          Dependency graph

          Determinizing a family #

          @[reducible]

          The deterministic reading of a family: every walk read through its determinization. Reducible, so that F.det.block is F.block.

          Equations
          Instances For
            Dependency graph

            A family is functional when each of its walks is.

            Equations
            Instances For
              Dependency graph

              A functional family is unchanged by determinization: its relation variables hold the same relations either way.

              Dependency graph

              An FO(TC) sentence read deterministically #

              A functional walk may be read deterministically at no cost: its walk-as-an-atom formula (DescriptiveComplexity.TCSpec.acceptsF) still says acceptance when the relation variables hold the determinized reachability relations. This is what lets an existing walk of the catalog be reused at the deterministic notion.

              Dependency graph

              FO(DTC) reductions #

              An FO(DTC) reduction from P to Q – a deterministic logarithmic-space reduction, in the logical form of Immerman 1987: an interpretation over the ordered expansion whose formulas may read the reachability relations of a family of walks, each read through its determinization.

              Instances For
                Dependency graph

                An FO(DTC) reduction from P to Q – a deterministic logarithmic-space reduction, in the logical form of Immerman 1987: an interpretation over the ordered expansion whose formulas may read the reachability relations of a family of walks, each read through its determinization.

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

                  An FO(DTC) reduction is an FO(TC) reduction: a determinized walk is a walk. Every closure property of ≤ᵗᶜ – hence of ≤ˡᶠᵖ – transfers along this.

                  Equations
                  • f.toTC = { Tag := f.Tag, tagFinite := , dim := f.dim, toInterpretation := { fam := f.fam.det, toRel := f.toRel }, map_nonempty := , correct := }
                  Instances For
                    Dependency graph

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

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

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

                      Equations
                      Instances For
                        Dependency graph

                        An FO reduction is an FO(DTC) reduction.

                        Equations
                        Instances For
                          Dependency graph

                          PTIME is closed under FO(DTC) reductions.

                          Dependency graph

                          NP is closed under FO(DTC) reductions.

                          Dependency graph

                          coNP is closed under FO(DTC) reductions.

                          Dependency graph