зеркало из https://github.com/microsoft/mcBV.git
Potential partial fixes for issue #1
This commit is contained in:
Родитель
f30fabdb42
Коммит
3a6520f7da
|
@ -225,7 +225,7 @@ let tbndsEvaluateAtLeast1U (s:State) (tRel:Ref<TheoryRelation>) =
|
|||
if holds <> Undefined then
|
||||
let (expl, l) = tbndsGetImplication s tRel holds
|
||||
s.Push (Imp (ref expl, l))
|
||||
assert(not s.IsConflicted || s.isInTempMode)
|
||||
// assert(not s.IsConflicted || s.isInTempMode)
|
||||
else
|
||||
tbndsGetImpliedBounds s tRel bVal
|
||||
|
||||
|
|
|
@ -354,7 +354,6 @@ let tEvaluate1U (s:State) (tRel:Ref<TheoryRelation>) =
|
|||
if holds <> Undefined then
|
||||
let (expl, l) = tGetImplication s tRel holds
|
||||
s.Push (Imp (ref expl, l))
|
||||
assert(not s.IsConflicted)
|
||||
|
||||
| Z3_decl_kind.Z3_OP_ULEQ ->
|
||||
let bVal = (!pVal).getValueB boolVar
|
||||
|
|
8
Trail.fs
8
Trail.fs
|
@ -462,18 +462,14 @@ type Trail (sz:int) =
|
|||
else
|
||||
// Negative PAPredicate
|
||||
if not (value.isConcreteValue) then
|
||||
|
||||
let oldValue = (!bvVal).getValue v
|
||||
let oldExpl = (!bvVal).getExplanation v
|
||||
let negPABool = Negate rel.getBoolVar
|
||||
|
||||
let intersection = BitVector.Intersect oldValue value
|
||||
|
||||
if intersection.isInvalid then
|
||||
assert (oldExpl <> Negate negPABool)
|
||||
let cls = collectLiterals([ negPABool;
|
||||
Negate oldExpl;
|
||||
])
|
||||
assert (oldExpl <> Negate l)
|
||||
let cls = collectLiterals([ Negate l; Negate oldExpl; ])
|
||||
cnflct <- Some (ref (newClauseFromList cls))
|
||||
|
||||
elif USE_BOUNDS then
|
||||
|
|
Загрузка…
Ссылка в новой задаче