Documentation

DescriptiveComplexity.Problems.ThreeSat.ToSat

3SAT FO-reduces to SAT #

This file constructs a first-order reduction from 3SAT to SAT, DescriptiveComplexity.threeSat_fo_reduction_sat : ThreeSAT ≤ᶠᵒ SAT, over the identity of vocabularies. The point of the reduction is the width bound: a 3SAT instance is a SAT instance plus the promise that every clause has at most three literals, and the promise is checked by a closed first-order sentence.

The interpretation (DescriptiveComplexity.ThreeSatToSat.threeSatToSat) is identity-like – one tag, dimension one – with all relation formulas gated on the sentence DescriptiveComplexity.ThreeSatToSat.wideS (“some clause has at least four distinct literal occurrences”):

The order is not needed: this is an order-free FO reduction (though not a quantifier-free one, since wideS quantifies over clauses and occurrences).

Order-free formulas over the vocabulary of CNF instances #

Dependency graph
Dependency graph
Dependency graph
Dependency graph

The literal (x, s) occurs in the clause c, as a formula.

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

    Some clause has at least four distinct literal occurrences, as a sentence: the clause is variable 0 and the four occurrence variables are 1, …, 4; the disjunction ranges over the sign vectors, and distinctness is only required between occurrences carrying the same sign.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      Dependency graph
      @[simp]
      Dependency graph
      @[simp]
      theorem DescriptiveComplexity.ThreeSatToSat.realize_posF {A : Type} [FirstOrder.Language.sat.Structure A] {α : Type} {v : αA} {c x : α} :
      (posF c x).Realize v SatOcc.PosIn (v c) (v x)
      Dependency graph
      @[simp]
      theorem DescriptiveComplexity.ThreeSatToSat.realize_negF {A : Type} [FirstOrder.Language.sat.Structure A] {α : Type} {v : αA} {c x : α} :
      (negF c x).Realize v SatOcc.NegIn (v c) (v x)
      Dependency graph
      @[simp]
      theorem DescriptiveComplexity.ThreeSatToSat.realize_eqF {A : Type} [FirstOrder.Language.sat.Structure A] {α : Type} {v : αA} {x y : α} :
      (eqF x y).Realize v v x = v y
      Dependency graph
      @[simp]
      theorem DescriptiveComplexity.ThreeSatToSat.realize_occF {A : Type} [FirstOrder.Language.sat.Structure A] {α : Type} {v : αA} {s : Bool} {c x : α} :
      (occF s c x).Realize v SatOcc.OccIn (v c) (v x) s
      Dependency graph

      Some clause has at least four distinct literal occurrences. This is the negation of the width bound of 3SAT (wide_iff_not_widthAtMostThree).

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

        Realization of the formula wideS (under any assignment of its – absent – free variables).

        Dependency graph

        The same check over the ordered expansion #

        The reductions that build gadgets over SatOcc.satOrd (Max Cut, 1-in-SAT) gate themselves on the width check too, and need it as a formula of the ordered vocabulary.

        Some clause has at least four distinct literal occurrences, as a formula over the ordered expansion: wideS read there.

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

          The interpretation #

          The identity-like interpretation of SAT instances in 3SAT instances, gated on the width check: a faithful copy if no clause is wide, an unsatisfiable structure made of empty clauses otherwise.

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

            Correctness #

            Correctness of the reduction: a CNF structure is a yes-instance of 3SAT iff the interpreted CNF structure is satisfiable.

            Dependency graph

            3SAT FO-reduces to SAT. The identity-like interpretation ThreeSatToSat.threeSatToSat, gated on the first-order width check, maps a CNF structure to a satisfiable CNF instance iff it is a yes-instance of 3SAT.

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