Documentation

DescriptiveComplexity.Problems.Sat

SAT: propositional satisfiability #

The problem SAT, as a decision problem on first-order structures. A CNF formula is a FirstOrder.Language.sat-structure: elements are clauses and propositional variables, satIsClause c distinguishes the clauses, and satPosIn c x / satNegIn c x say that the literal x / ¬x occurs in clause c. DescriptiveComplexity.Satisfiable is the usual satisfiability, and DescriptiveComplexity.SAT the bundled decision problem.

SAT is the archetypical NP-complete problem: this is the Cook–Levin theorem (Cook 1971; Levin 1973; DescriptiveComplexity.SAT_NP_complete, in DescriptiveComplexity.Problems.Sat.Hardness). With NP defined as existential-second-order definability (DescriptiveComplexity.Hierarchy), its membership half is the theorem DescriptiveComplexity.sat_sigmaSODefinable proved here – “there is a truth assignment making every clause true” – and its hardness half is the machine-free, Dahlhaus-style (Dahlhaus 1983) generic reduction DescriptiveComplexity.sat_hard_of_sigmaSODefinable of DescriptiveComplexity.Problems.Sat.Hardness. Other problems' NP-completeness proofs derive from it through first-order reductions; see e.g. DescriptiveComplexity.Problems.ThreeColorability.

Relation symbols of the language of CNF instances.

  • isClause : satRel 1

    isClause c: the element c is a clause.

  • posIn : satRel 2

    posIn c x: the variable x occurs positively in the clause c.

  • negIn : satRel 2

    negIn c x: the variable x occurs negatively in the clause c.

Instances For
    Dependency graph
    Dependency graph
    Dependency graph

    The relational language of CNF instances: a unary predicate singling out clauses, and two binary predicates for positive and negative occurrences of a variable in a clause.

    Equations
    Instances For
      Dependency graph
      Dependency graph
      @[reducible, inline]

      The symbol for “is a clause”.

      Equations
      Instances For
        Dependency graph
        @[reducible, inline]

        The symbol for “occurs positively in”.

        Equations
        Instances For
          Dependency graph
          @[reducible, inline]

          The symbol for “occurs negatively in”.

          Equations
          Instances For
            Dependency graph

            A Language.sat-structure is satisfiable if some assignment of truth values to its elements makes every clause contain a true literal. (Elements that are not variables of the CNF formula may be assigned arbitrarily; they are harmless since no clause mentions them.)

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

              SAT, as a problem on Language.sat-structures.

              Equations
              Instances For
                Dependency graph

                SAT is existential second-order definable #

                SAT is Σ₁-definable in the sense of DescriptiveComplexity.SecondOrder – “there exists a truth assignment (a unary relation) making every clause true”, the inner part being first-order. Since NP is defined as Σ₁-definability, this is the membership half of the Cook–Levin theorem.

                The single existential block of the Σ₁ definition of SAT: one unary relation variable, the truth assignment.

                Equations
                Instances For
                  Dependency graph
                  Dependency graph
                  @[reducible, inline]

                  The vocabulary of the kernel: CNF instances together with the truth-assignment relation variable.

                  Equations
                  Instances For
                    Dependency graph
                    @[reducible, inline]

                    The symbol for “is a clause” in the kernel's vocabulary.

                    Equations
                    Instances For
                      Dependency graph
                      @[reducible, inline]

                      The symbol for “occurs positively in” in the kernel's vocabulary.

                      Equations
                      Instances For
                        Dependency graph
                        @[reducible, inline]

                        The symbol for “occurs negatively in” in the kernel's vocabulary.

                        Equations
                        Instances For
                          Dependency graph
                          @[reducible, inline]

                          The truth-assignment symbol in the kernel's vocabulary.

                          Equations
                          Instances For
                            Dependency graph

                            The first-order kernel of the Σ₁ definition of SAT: every clause contains a true literal. The universally quantified variable is the clause, the existentially quantified one the literal's variable.

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

                              Realization of the kernel under an assignment of the truth-assignment variable: every clause contains a true literal. (Reused by the membership proof of HORN-SAT, whose kernel is this one conjoined with the first-order Horn condition.)

                              Dependency graph

                              SAT is Σ₁-definable: satisfiability of a CNF structure is expressed by existentially quantifying a truth assignment and checking, in first-order logic, that every clause contains a true literal.

                              Dependency graph