Documentation

CslibFrontier.Computability.Complexity.Problems.ExactThreeSAT

3SAT with clauses of exactly three literals #

ExactThreeSAT is the set of satisfiable formulas in conjunctive normal form all of whose clauses are lists of exactly three literals. The literals of a clause need not be distinct, so a clause x ∨ x ∨ y is allowed. This is weaker than 3-satisfiability as defined by Garey and Johnson Garey and Johnson, Problem LO2, whose clauses are sets of three distinct literals. The stronger distinct-variable version is proved NP-complete as EUThreeSAT in CslibFrontier.Computability.Complexity.Problems.EUThreeSAT.

ExactThreeSAT is NP-complete: ThreeSAT (clauses of at most three literals) reduces to it by repeating a literal of every clause with one or two literals (Cslib.Complexity.ExactThreeSAT.padClause, Cslib.Complexity.toExactThreeSAT). Repetition does not change the value of a clause, and the empty clause stays empty, so a formula with an empty clause stays unsatisfiable.

Main definitions #

Main results #

References #

The satisfiable formulas all of whose clauses have exactly three literals, not necessarily distinct. The 3-satisfiability of Garey and Johnson, Problem LO2 requires them to be distinct.

Instances For

    Pad a clause of one or two literals to three literals by repeating literals; other clauses are unchanged.

    Instances For

      Padding a nonempty clause of at most three literals gives exactly three.

      Repeating literals does not change the value of a clause.

      The verifier for ExactThreeSAT: check that every clause has exactly three literals and evaluate the formula under the certificate assignment.

      Instances For

        ExactThreeSAT.verifier verifies ExactThreeSAT with certificates as long as the encoded formula: it is SAT.verifier guarded by the clause-width test.

        The reduction from ThreeSAT to ExactThreeSAT: pad every clause.

        Instances For

          A formula is in ThreeSAT exactly when padding its clauses puts it in ExactThreeSAT.

          3SAT with clauses of exactly three, not necessarily distinct, literals is NP-complete.