Filtering...

unit-propagation-implies-unsat

books/projects/sat/lrat/list-based/unit-propagation-implies-unsat
other
(in-package "LRAT")
other
(include-book "lrat-checker")
other
(include-book "truth-monotone")
other
(defthm subsetp-equal-cons-lemma
  (implies (subsetp-equal x y)
    (subsetp-equal x (cons a y))))
other
(defthm subsetp-equal-reflexive
  (subsetp-equal x x))
other
(defthm subsetp-equal-cons
  (subsetp-equal x (cons a x)))
other
(defthm cons-preserves-evaluate-formula
  (implies (formula-truep formula a)
    (formula-truep formula (cons x a)))
  :hints (("Goal" :use ((:instance truth-monotone
        (a1 a)
        (a2 (cons x a))))
     :in-theory (disable truth-monotone))))
other
(defthm clause-or-assignment-p-cons-is-unit-clause
  (implies (and (clause-or-assignment-p a1)
      (clause-or-assignment-p clause)
      (is-unit-clause clause a1)
      (not (equal (is-unit-clause clause a1) t)))
    (clause-or-assignment-p (cons (is-unit-clause clause a1) a1)))
  :hints (("Goal" :in-theory (enable clause-or-assignment-p))))
other
(defthm formula-truep-implies-evaluate-clause-t
  (implies (and (formula-truep formula assignment)
      (hons-assoc-equal index formula)
      (not (deleted-clause-p (cdr (hons-assoc-equal index formula)))))
    (equal (evaluate-clause (cdr (hons-assoc-equal index formula))
        assignment)
      t))
  :hints (("Goal" :use formula-truep-necc)))
other
(defthm evaluate-clause-t-implies-not-is-unit-clause
  (implies (and (clause-or-assignment-p clause)
      (equal (evaluate-clause clause assignment)
        t))
    (not (is-unit-clause clause assignment))))
other
(defthm formula-truep-implies-not-is-unit-clause
  (implies (and (hons-assoc-equal index formula)
      (not (equal (cdr (hons-assoc-equal index formula))
          *deleted-clause*))
      (formula-p formula)
      (formula-truep formula assignment))
    (not (is-unit-clause (cdr (hons-assoc-equal index formula))
        assignment)))
  :hints (("Goal" :use formula-truep-necc)))
other
(defthm unit-propagation-identity
  (implies (and (formula-truep formula assignment)
      (formula-p formula))
    (equal (unit-propagation formula
        indices
        assignment)
      assignment)))
other
(defthm unit-propagation-implies-unsat
  (implies (and (clause-or-assignment-p assignment)
      (formula-p formula)
      (formula-truep formula assignment)
      (index-listp indices))
    (not (equal (unit-propagation formula
          indices
          assignment)
        t))))