Documentation

CslibFrontier.Logics.Propositional.CNF.ExactThree

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 #

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]

      Whether a clause has three distinct variables is decidable.

      @[instance_reducible]

      Whether every clause of a CNF formula has three distinct variables is decidable.

      An exact 3-clause with distinct variables has length 3.

      The variables of an exact 3-clause with distinct variables have no duplicates.

      theorem Cslib.Logic.PL.Clause.isExactThreeDistinct_iff {V : Type u_1} {c : Clause V} :
      c.IsExactThreeDistinct ↔ ∃ (l₁ : Literal V), ∃ (l₂ : Literal V), ∃ (l₃ : Literal V), c = [l₁, l₂, l₃] ∧ l₁.fst ≠ l₂.fst ∧ l₁.fst ≠ l₃.fst ∧ l₂.fst ≠ l₃.fst

      Every exact 3-clause with distinct variables is a list of three literals on pairwise distinct variables.