Documentation

DescriptiveComplexity.FixedPointReductionClosure

The classes are closed under FO(LFP) reductions #

Membership in PTIME, in NP and in coNP travels backward along an FO(LFP) reduction (DescriptiveComplexity.mem_PTIME_of_lfpReduction, DescriptiveComplexity.mem_NP_of_lfpReduction, DescriptiveComplexity.mem_coNP_of_lfpReduction), exactly as it does along a first-order one. This is what makes ≤ˡᶠᵖ a usable reduction notion for these classes rather than a definition with no theorems: without it, “P reduces to a problem of the class” would say nothing about P.

The three proofs are different, and the difference is the point.

Above the first level nothing is claimed here. The same argument would put an extra existential block innermost in a Σₖ prefix, which merges with the innermost block only when that block is existential; the even levels would need the dual elimination, through DescriptiveComplexity.PTIME_subset_coNP, and the vocabulary bookkeeping of a block inserted in the middle of a prefix. PSPACE is open here for a sharper reason: FO(PFP) has no stratification theorem, the partial iteration not being monotone.

Hardness #

DescriptiveComplexity.CofinalHardLFP is hardness stated with ≤ˡᶠᵖ in place of ≤ʳᶠᵒ[≤], and DescriptiveComplexity.CofinalHard.toLFP says that a hard problem in the library's sense is hard in this weaker one – the expected implication, since a first-order reduction is an FO(LFP) reduction. Note the direction: hardness under a larger class of reductions is a weaker statement, so every completeness theorem of the catalog implies its polynomial-time-reduction reading, and none of them is superseded by it.

The definable domain is inhabited, as a sentence #

noncomputable def DescriptiveComplexity.RelFOInterpretation.domNonemptyS {L₁ L₂ : FirstOrder.Language} {Tag : Type} [Finite Tag] {dim : } (I : RelFOInterpretation L₁ L₂ Tag dim) :

“Some tagged tuple is in the domain”, as a first-order sentence of the source vocabulary: the disjunction over the (finitely many) tags of the existential closure of the domain formula.

Equations
Instances For
    Dependency graph
    Dependency graph

    Polynomial time #

    FO(≤, IFP) definability is closed under FO(LFP) reductions: the reduction's induction and the definition's induction stratify into one, the latter pulled back through the (order-extended) interpretation.

    Dependency graph

    PTIME is closed under FO(LFP) reductions: a problem reducing to a polynomial-time problem by a polynomial-time reduction is polynomial time.

    Dependency graph

    NP, and coNP by complementation #

    Σ₁-definability is closed under FO(LFP) reductions. The membership sentence is pulled back through the interpretation, over the base structure expanded by the reduction's induction (DescriptiveComplexity.sorealize_pullRelSO); the induction is then eliminated from the pulled definition (DescriptiveComplexity.sigmaSODefinable_of_ifpExpand), and the order the reduction uses is re-quantified inside the block (DescriptiveComplexity.sigmaSODefinable_of_orderPull).

    Dependency graph

    NP is closed under FO(LFP) reductions: a problem reducing to an NP problem by a polynomial-time reduction is in NP.

    Dependency graph

    coNP is closed under FO(LFP) reductions, by complementation: the same interpretation reduces the complements.

    Dependency graph

    Π₁-definability is closed under FO(LFP) reductions – the same statement as DescriptiveComplexity.mem_coNP_of_lfpReduction, at the level of the logic.

    Dependency graph

    Membership under relativized first-order reductions #

    The same three classes are closed under the relativized first-order reductions ≤ʳᶠᵒ[≤] – the notion all of this library's hardness travels along. Only the hardness half of that closure was available before (DescriptiveComplexity.ComplexityClass.hard_of_relOrderedReduction); the membership half is these three theorems, and they are corollaries of the pullback of DescriptiveComplexity.SecondOrderRelPull and of DescriptiveComplexity.IFPDefinable.of_relOrderedReduction. (What is still missing is the corresponding field of DescriptiveComplexity.ComplexityClass, which every class literal of the library would have to supply.)

    PTIME is closed under relativized ordered reductions.

    Dependency graph

    NP is closed under relativized ordered reductions.

    Dependency graph

    coNP is closed under relativized ordered reductions.

    Dependency graph

    Hardness under FO(LFP) reductions #

    Hardness for a collection of problems under FO(LFP) reductions, stated cofinally as DescriptiveComplexity.CofinalHard is: every problem of the collection FO(LFP)-reduces to every problem that P FO(LFP)-reduces to.

    Hardness under a wider class of reductions is a weaker statement, so this is implied by the library's own hardness (DescriptiveComplexity.CofinalHard.toLFP) and does not replace it.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph
      theorem DescriptiveComplexity.cofinalHardLFP_iff {L : FirstOrder.Language} [L.IsRelational] (Mem : {L₀ : FirstOrder.Language} → [inst : L₀.IsRelational] → DecisionProblem L₀Prop) (P : DecisionProblem L) :
      CofinalHardLFP (fun {L₀ : FirstOrder.Language} [L₀.IsRelational] => Mem) P ∀ {L'' : FirstOrder.Language} [inst : L''.IsRelational] (Q : DecisionProblem L''), Mem QNonempty (LFPReduction Q P)

      Over a relational vocabulary, hardness under FO(LFP) reductions is the usual notion: every problem of the collection reduces to P itself.

      Dependency graph

      Hardness travels forward along FO(LFP) reductions.

      Dependency graph
      theorem DescriptiveComplexity.CofinalHard.toLFP {L : FirstOrder.Language} [L.IsRelational] {Mem : {L₀ : FirstOrder.Language} → [inst : L₀.IsRelational] → DecisionProblem L₀Prop} {P : DecisionProblem L} (h : CofinalHard (fun {L₀ : FirstOrder.Language} [L₀.IsRelational] => Mem) P) :
      CofinalHardLFP (fun {L₀ : FirstOrder.Language} [L₀.IsRelational] => Mem) P

      A problem hard for a collection under first-order reductions is hard for it under FO(LFP) reductions: every first-order reduction is an FO(LFP) reduction.

      Dependency graph

      A 𝒞-hard problem of a class of this library is hard under FO(LFP) reductions. Reading a completeness theorem of the catalog with polynomial-time reductions in place of first-order ones is this corollary.

      Dependency graph