HepLean Documentation

Std.Sat.CNF.Basic

@[reducible, inline]
abbrev Std.Sat.CNF.Clause (α : Type u) :

A clause in a CNF.

The literal (i, b) is satisfied if the assignment to i agrees with b.

Equations
Instances For
    @[reducible, inline]
    abbrev Std.Sat.CNF (α : Type u) :

    A CNF formula.

    Literals are identified by members of α.

    Equations
    Instances For
      def Std.Sat.CNF.Clause.eval {α : Type u_1} (a : αBool) (c : Std.Sat.CNF.Clause α) :

      Evaluating a Clause with respect to an assignment a.

      Equations
      Instances For
        @[simp]
        theorem Std.Sat.CNF.Clause.eval_nil {α : Type u_1} (a : αBool) :
        @[simp]
        theorem Std.Sat.CNF.Clause.eval_cons {α : Type u_1} {i : Std.Sat.Literal α} {c : List (Std.Sat.Literal α)} (a : αBool) :
        def Std.Sat.CNF.eval {α : Type u_1} (a : αBool) (f : Std.Sat.CNF α) :

        Evaluating a CNF formula with respect to an assignment a.

        Equations
        Instances For
          @[simp]
          theorem Std.Sat.CNF.eval_nil {α : Type u_1} (a : αBool) :
          @[simp]
          @[simp]
          theorem Std.Sat.CNF.eval_append {α : Type u_1} (a : αBool) (f1 : Std.Sat.CNF α) (f2 : Std.Sat.CNF α) :
          def Std.Sat.CNF.Sat {α : Type u_1} (a : αBool) (f : Std.Sat.CNF α) :
          Equations
          Instances For
            def Std.Sat.CNF.Unsat {α : Type u_1} (f : Std.Sat.CNF α) :
            Equations
            Instances For
              theorem Std.Sat.CNF.sat_def {α : Type u_1} (a : αBool) (f : Std.Sat.CNF α) :
              theorem Std.Sat.CNF.unsat_def {α : Type u_1} (f : Std.Sat.CNF α) :
              f.Unsat ∀ (a : αBool), Std.Sat.CNF.eval a f = false
              @[simp]
              theorem Std.Sat.CNF.sat_nil {α : Type u_1} {assign : αBool} :
              Std.Sat.CNF.Sat assign []
              @[simp]
              theorem Std.Sat.CNF.unsat_nil_cons {α : Type u_1} {g : Std.Sat.CNF α} :
              def Std.Sat.CNF.Clause.Mem {α : Type u_1} (v : α) (c : Std.Sat.CNF.Clause α) :

              Variable v occurs in Clause c.

              Equations
              Instances For
                Equations
                @[simp]
                @[simp]
                theorem Std.Sat.CNF.Clause.mem_cons {α : Type u_1} {l : Std.Sat.Literal α} {c : List (Std.Sat.Literal α)} {v : α} :
                theorem Std.Sat.CNF.Clause.mem_of :
                ∀ {α : Type u_1} {c : Std.Sat.CNF.Clause α} {v : α} {p : Bool}, (v, p) cStd.Sat.CNF.Clause.Mem v c
                theorem Std.Sat.CNF.Clause.eval_congr {α : Type u_1} (a1 : αBool) (a2 : αBool) (c : Std.Sat.CNF.Clause α) (hw : ∀ (i : α), Std.Sat.CNF.Clause.Mem i ca1 i = a2 i) :
                def Std.Sat.CNF.Mem {α : Type u_1} (v : α) (f : Std.Sat.CNF α) :

                Variable v occurs in CNF formula f.

                Equations
                Instances For
                  Equations
                  theorem Std.Sat.CNF.not_exists_mem :
                  ∀ {α : Type u_1} {f : Std.Sat.CNF α}, (¬∃ (v : α), Std.Sat.CNF.Mem v f) ∃ (n : Nat), f = List.replicate n []
                  Equations
                  theorem Std.Sat.CNF.not_mem_nil {α : Type u_1} {v : α} :
                  theorem Std.Sat.CNF.mem_of :
                  ∀ {α : Type u_1} {f : Std.Sat.CNF α} {c : Std.Sat.CNF.Clause α} {v : α}, c fStd.Sat.CNF.Clause.Mem v cStd.Sat.CNF.Mem v f
                  @[simp]
                  theorem Std.Sat.CNF.mem_append {α : Type u_1} {v : α} {f1 : Std.Sat.CNF α} {f2 : Std.Sat.CNF α} :
                  theorem Std.Sat.CNF.eval_congr {α : Type u_1} (a1 : αBool) (a2 : αBool) (f : Std.Sat.CNF α) (hw : ∀ (v : α), Std.Sat.CNF.Mem v fa1 v = a2 v) :