Documentation

Std.Tactic.BVDecide.LRAT.Internal.LRATCheckerSound

theorem Std.Tactic.BVDecide.LRAT.Internal.addEmptyCaseSound {α : Type u_1} {β : Type u_2} {σ : Type u_3} [DecidableEq α] [Clause α β] [Entails α σ] [Formula α β σ] (f : σ) (f_readyForRupAdd : Formula.ReadyForRupAdd f) (rupHints : Array Nat) (rupAddSuccess : (Formula.performRupAdd f Clause.empty rupHints).snd = true) :
theorem Std.Tactic.BVDecide.LRAT.Internal.addRupCaseSound {α : Type u_1} {β : Type u_2} {σ : Type u_3} [DecidableEq α] [Clause α β] [Entails α σ] [Formula α β σ] (f : σ) (f_readyForRupAdd : Formula.ReadyForRupAdd f) (f_readyForRatAdd : Formula.ReadyForRatAdd f) (c : β) (f' : σ) (rupHints : Array Nat) (heq : Formula.performRupAdd f c rupHints = (f', true)) (restPrf : List (Action β α)) (restPrfWellFormed : ∀ (a : Action β α), a restPrfWellFormedAction a) (ih : ∀ (f : σ), Formula.ReadyForRupAdd fFormula.ReadyForRatAdd f(∀ (a : Action β α), a restPrfWellFormedAction a)lratChecker f restPrf = Result.successUnsatisfiable α f) (f'_success : lratChecker f' restPrf = Result.success) :
theorem Std.Tactic.BVDecide.LRAT.Internal.addRatCaseSound {α : Type u_1} {β : Type u_2} {σ : Type u_3} [DecidableEq α] [Clause α β] [Entails α σ] [Formula α β σ] (f : σ) (f_readyForRupAdd : Formula.ReadyForRupAdd f) (f_readyForRatAdd : Formula.ReadyForRatAdd f) (c : β) (pivot : Sat.Literal α) (f' : σ) (rupHints : Array Nat) (ratHints : Array (Nat × Array Nat)) (pivot_limplies_c : Limplies α pivot c) (heq : Formula.performRatAdd f c pivot rupHints ratHints = (f', true)) (restPrf : List (Action β α)) (restPrfWellFormed : ∀ (a : Action β α), a restPrfWellFormedAction a) (ih : ∀ (f : σ), Formula.ReadyForRupAdd fFormula.ReadyForRatAdd f(∀ (a : Action β α), a restPrfWellFormedAction a)lratChecker f restPrf = Result.successUnsatisfiable α f) (f'_success : lratChecker f' restPrf = Result.success) :
theorem Std.Tactic.BVDecide.LRAT.Internal.delCaseSound {α : Type u_1} {β : Type u_2} {σ : Type u_3} [DecidableEq α] [Clause α β] [Entails α σ] [Formula α β σ] (f : σ) (f_readyForRupAdd : Formula.ReadyForRupAdd f) (f_readyForRatAdd : Formula.ReadyForRatAdd f) (ids : Array Nat) (restPrf : List (Action β α)) (restPrfWellFormed : ∀ (a : Action β α), a restPrfWellFormedAction a) (ih : ∀ (f : σ), Formula.ReadyForRupAdd fFormula.ReadyForRatAdd f(∀ (a : Action β α), a restPrfWellFormedAction a)lratChecker f restPrf = Result.successUnsatisfiable α f) (h : lratChecker (Formula.delete f ids) restPrf = Result.success) :
theorem Std.Tactic.BVDecide.LRAT.Internal.lratCheckerSound {α : Type u_1} {β : Type u_2} {σ : Type u_3} [DecidableEq α] [Clause α β] [Entails α σ] [Formula α β σ] (f : σ) (f_readyForRupAdd : Formula.ReadyForRupAdd f) (f_readyForRatAdd : Formula.ReadyForRatAdd f) (prf : List (Action β α)) (prfWellFormed : ∀ (a : Action β α), a prfWellFormedAction a) :