Documentation

Trestle.Data.Cnf.Basic

theorem Trestle.Clause.mem_semVars_toPropFun {L : Type u} {ν : Type v} [LitVar L ν] [DecidableEq ν] (x : ν) (C : Clause L) :
x C.toPropFun.semVarslC, LitVar.toVar l = x
theorem Trestle.Clause.satisfies_iff {L : Type u} {ν : Type v} [LitVar L ν] {τ : Model.PropAssignment ν} {C : Clause L} :
τ C.toPropFun lC, τ LitVar.toPropFun l
theorem Trestle.Clause.tautology_iff {L : Type u} {ν : Type v} [LitVar L ν] [DecidableEq ν] [LawfulLitVar L ν] (C : Clause L) :
C.toPropFun = l₁C, l₂C, l₁ = -l₂
@[simp]
theorem Trestle.Clause.toPropFun_or {L : Type u} {ν : Type v} [LitVar L ν] (c1 c2 : Clause L) :
(c1.or c2).toPropFun = c1.toPropFunc2.toPropFun
@[simp]
theorem Trestle.Clause.toPropFun_map {L : Type u} {ν : Type v} [LitVar L ν] {L' : Type u_1} {ν' : Type u_2} [LitVar L' ν'] [LawfulLitVar L' ν'] (f : νν') (c : Clause L) :
@[simp]
theorem Trestle.Clause.toPropFun_empty {L : Type u} {ν : Type v} [LitVar L ν] :
@[simp]
theorem Trestle.Clause.toPropFun_nil {L : Type u} {ν : Type v} [LitVar L ν] :
toPropFun { toList := [] } =
@[simp]
theorem Trestle.Clause.toPropFun_cons {L : Type u} {ν : Type v} [LitVar L ν] (l : L) (C : List L) :
toPropFun { toList := l :: C } = LitVar.toPropFun ltoPropFun { toList := C }

CNF #

theorem Trestle.Cnf.semVars_toPropFun {L : Type u} {ν : Type v} [LitVar L ν] {v : ν} [DecidableEq ν] (F : Cnf L) :
v F.toPropFun.semVarsCF, lC, LitVar.toVar l = v
theorem Trestle.Cnf.mem_semVars_toPropFun {L : Type u} {ν : Type v} [LitVar L ν] [DecidableEq ν] (x : ν) (F : Cnf L) :
x F.toPropFun.semVarsCF, x C.toPropFun.semVars
theorem Trestle.Cnf.satisfies_iff {L : Type u} {ν : Type v} [LitVar L ν] {τ : Model.PropAssignment ν} {φ : Cnf L} :
τ φ.toPropFun Cφ, τ C.toPropFun
@[simp]
theorem Trestle.Cnf.toPropFun_addClause {L : Type u} {ν : Type v} [LitVar L ν] (C : Clause L) (f : Cnf L) :
@[simp]
theorem Trestle.Cnf.toPropFun_and {L : Type u} {ν : Type v} [LitVar L ν] (f1 f2 : Cnf L) :
(f1.and f2).toPropFun = f1.toPropFunf2.toPropFun
@[simp]
theorem Trestle.Cnf.toPropFun_not {L : Type u} {ν : Type v} [LitVar L ν] (c : Clause L) [LawfulLitVar L ν] :
@[simp]
@[simp]

Satisfiability #

@[reducible, inline]
abbrev Trestle.Cnf.Sat {L : Type u} {ν : Type v} [LitVar L ν] (f : Cnf L) :
Equations
Instances For
    theorem Trestle.Cube.mem_semVars_toPropFun {L : Type u_2} {ν : Type u_1} [LitVar L ν] [DecidableEq ν] (x : ν) (C : Cube L) :
    x C.toPropFun.semVarslC.toArray, LitVar.toVar l = x
    theorem Trestle.Cube.satisfies_iff {L : Type u_2} {ν : Type u_1} [LitVar L ν] {τ : Model.PropAssignment ν} {C : Cube L} :
    τ C.toPropFun lC.toArray, τ LitVar.toPropFun l
    theorem Trestle.Cube.empty_iff {L : Type u_2} {ν : Type u_1} [LitVar L ν] [DecidableEq ν] [LawfulLitVar L ν] (C : Cube L) :
    C.toPropFun = l₁C.toArray, l₂C.toArray, l₁ = -l₂
    @[simp]
    theorem Trestle.Cube.toPropFun_and {L : Type u_1} {ν : Type u_2} [LitVar L ν] (c1 c2 : Cube L) :
    (c1.and c2).toPropFun = c1.toPropFunc2.toPropFun
    @[simp]
    theorem Trestle.Cube.toPropFun_map {L : Type u_3} {ν : Type u_4} [LitVar L ν] {L' : Type u_1} {ν' : Type u_2} [LitVar L' ν'] [LawfulLitVar L' ν'] (f : νν') (c : Cube L) :