- conflict : PropagateResult
- extended (assign : Assignment) : PropagateResult
- error : PropagateResult
Instances For
def
Std.Tactic.BVDecide.LRAT.Internal.State.propagateHints
(s : State)
(assign : Assignment)
(hints : Array Nat)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
Std.Tactic.BVDecide.LRAT.Internal.State.checkPropagate
(s : State)
(assign : Assignment)
(rupHints : Array Nat)
:
Equations
- s.checkPropagate assign rupHints = match s.propagateHints assign rupHints with | Std.Tactic.BVDecide.LRAT.Internal.PropagateResult.conflict => true | x => false
Instances For
def
Std.Tactic.BVDecide.LRAT.Internal.State.checkRup
(s : State)
(clause : Sat.CNF.Clause Nat)
(rupHints : Array Nat)
:
Equations
- s.checkRup clause rupHints = (match Std.Tactic.BVDecide.LRAT.Internal.Assignment.ofClause clause with | some assignment => s.checkPropagate assignment rupHints | x => pure true).run
Instances For
theorem
Std.Tactic.BVDecide.LRAT.Internal.State.unsat_of_propagateHints_eq_conflict
{s : State}
{assign : Assignment}
{hints : Array Nat}
(h : s.propagateHints assign hints = PropagateResult.conflict)
:
theorem
Std.Tactic.BVDecide.LRAT.Internal.State.entails_of_propagateHints_eq_extended
{s : State}
{assign : Assignment}
{hints : Array Nat}
{newAssign : Assignment}
(h : s.propagateHints assign hints = PropagateResult.extended newAssign)
:
theorem
Std.Tactic.BVDecide.LRAT.Internal.State.unsat_of_checkPropagate
{s : State}
{assign : Assignment}
{rupHints : Array Nat}
(h : s.checkPropagate assign rupHints = true)
:
theorem
Std.Tactic.BVDecide.LRAT.Internal.State.entails_clause_of_checkRup
{s : State}
{clause : Sat.CNF.Clause Nat}
{rupHints : Array Nat}
(h : s.checkRup clause rupHints = true)
:
s.toCNF.EntailsClause clause