Exact three-literal clauses with distinct variables #
Clause.IsExactThreeDistinct and CNF.IsExactThreeDistinct require exactly three
pairwise distinct variables per clause. Literal polarities are unrestricted.
Main results #
Clause.isExactThreeDistinct_iff: the explicit three-literal characterization.
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
@[instance_reducible]
instance Cslib.Logic.PL.instDecidableIsExactThreeDistinctOfDecidableEq {V : Type u_1} [DecidableEq V] {c : Clause V} :
Whether a clause has three distinct variables is decidable.
@[instance_reducible]
instance Cslib.Logic.PL.instDecidableIsExactThreeDistinctOfDecidableEq_1 {V : Type u_1} [DecidableEq V] {φ : CNF V} :
Whether every clause of a CNF formula has three distinct variables is decidable.
theorem Cslib.Logic.PL.Clause.IsExactThreeDistinct.length_eq {V : Type u_1} {c : Clause V} (hc : c.IsExactThreeDistinct) :
An exact 3-clause with distinct variables has length 3.
theorem Cslib.Logic.PL.Clause.IsExactThreeDistinct.nodup_map_fst {V : Type u_1} {c : Clause V} (hc : c.IsExactThreeDistinct) :
The variables of an exact 3-clause with distinct variables have no duplicates.
Every exact 3-clause with distinct variables is a list of three literals on pairwise distinct variables.