void CSolver::replaceBooleanWithTrueNoRemove(BooleanEdge bexpr) {
updateMustValue(bexpr.getBoolean(), bexpr.isNegated() ? BV_MUSTBEFALSE : BV_MUSTBETRUE);
- ASSERT(bexpr->boolVal != BV_UNSAT);
+ ASSERT((bexpr->boolVal != BV_UNSAT ) || unsat);
uint size = bexpr->parents.getSize();
for (uint i = 0; i < size; i++) {
}
}
-void CSolver::handleFunction(ElementFunction * ef, BooleanEdge child) {
+void CSolver::handleFunction(ElementFunction *ef, BooleanEdge child) {
BooleanEdge childNegate = child.negate();
elemMap.remove(ef);
if (ef->overflowstatus == child) {
} else {
BooleanLogic *logicop = (BooleanLogic *) parent;
boolMap.remove(logicop); //could change parent's hash
-
+
uint parentsize = logicop->inputs.getSize();
for (uint j = 0; j < parentsize; j++) {
BooleanEdge b = logicop->inputs.get(j);