Unsatisfiability value of CNF formulas and the 7 / 8 random-assignment bound #
The unsatisfiability value CNF.unsatVal φ of a formula in conjunctive normal form is the
least proportion of its clauses, counted with multiplicity, that an assignment falsifies
(CNF.countUnsat). The value vanishes on the empty formula and on satisfiable formulas
(CNF.unsatVal_eq_zero_iff), and 1 - CNF.unsatVal φ is the value of φ as an instance of
MAX-SAT.
When the three variables of every clause are distinct (CNF.IsExactThreeDistinct), a uniform
random assignment falsifies each clause with probability 1 / 8
(Clause.IsExactThreeDistinct.expect_eval_eq_false), so some assignment falsifies at most 1 / 8
of the clauses (CNF.IsExactThreeDistinct.unsatVal_le_one_eighth). Håstad showed that this
7 / 8 threshold is optimal [Has01].
Main definitions #
Cslib.Logic.PL.CNF.unsatVal: the least proportion of falsified clauses.Cslib.Logic.PL.Clause.IsExactThreeDistinct,Cslib.Logic.PL.CNF.IsExactThreeDistinct: clauses and formulas with three distinct variables per clause.
Main results #
Cslib.Logic.PL.CNF.countUnsat_eq_card: the number of falsified clauses as a cardinality over clause indices.Cslib.Logic.PL.CNF.unsatVal_eq_zero_iff: the value vanishes exactly on satisfiable formulas.Cslib.Logic.PL.CNF.length_pos_of_unsatVal_pos: a formula of positive value has a clause.Cslib.Logic.PL.Clause.IsExactThreeDistinct.expect_eval_eq_false,Cslib.Logic.PL.Clause.IsExactThreeDistinct.expect_eval_eq_true: a uniform random assignment falsifies a clause with three distinct variables with probability1 / 8.Cslib.Logic.PL.CNF.IsExactThreeDistinct.unsatVal_le_one_eighth,Cslib.Logic.PL.CNF.IsExactThreeDistinct.exists_countUnsat_le_div_eight: the7 / 8random-assignment bound.
References #
Counting falsified clauses #
The number of falsified clauses, counted by their positions in the formula.
Relabelling counts the falsified clauses of the composite assignment.
The value of a formula #
The unsatisfiability value of a formula: the least proportion of its clauses, counted with multiplicity, that an assignment falsifies. The formula without clauses has value zero.
Instances For
The value is at most the proportion of the clauses that any assignment falsifies.
A lower bound on the value bounds the proportion falsified by every assignment.
The minimum is attained: the proportions take finitely many values.
The value vanishes exactly on satisfiable formulas.
A formula in which every assignment falsifies a positive proportion of the clauses has a clause.
Exact 3-clauses with distinct variables and the 7 / 8 random assignment bound #
A clause has three distinct variables when it has length 3 and its variables have no
duplicates.
Instances For
A formula is an exact 3-CNF with distinct variables per clause when every clause has three distinct variables.
Instances For
Every exact 3-clause with distinct variables is a list of three literals on pairwise distinct variables.
A uniform random assignment falsifies any 3-clause on three distinct variables with
probability 1 / 8.
A uniform random assignment satisfies any 3-clause on three distinct variables with
probability 7 / 8.
Over the 3-bit cube Fin 3 → Bool, any 3-clause on three distinct variables is satisfied by
exactly 7 of the 8 truth assignments.
The 7 / 8 random-assignment bound: in every exact 3-CNF formula φ with three distinct
variables per clause, some assignment falsifies at most 1 / 8 of the clauses
(φ.unsatVal ≤ 1 / 8), hence satisfies at least 7 / 8 of the clauses.
In every exact 3-CNF formula φ with three distinct variables per clause, there exists an
assignment falsifying at most φ.length / 8 clauses (equivalently satisfying at least
7 / 8 * φ.length clauses).