3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

a bug fix for handling infeasibilities created in add_var_bound()

Signed-off-by: Lev <levnach@hotmail.com>
This commit is contained in:
Lev 2018-11-09 14:02:40 -08:00 committed by Lev Nachmanson
parent 2993453798
commit 23a7e5e302
2 changed files with 68 additions and 9 deletions

View file

@ -2988,11 +2988,11 @@ public:
else {
ci = m_solver->add_var_bound(vi, k, b.get_value());
}
TRACE("arith", tout << "v" << b.get_var() << "\n";);
add_ineq_constraint(ci, literal(bv, !is_true));
if (is_infeasible()) {
return;
}
TRACE("arith", tout << "v" << b.get_var() << "\n";);
add_ineq_constraint(ci, literal(bv, !is_true));
propagate_eqs(vi, ci, k, b);
}
@ -3289,7 +3289,7 @@ public:
c.neg();
ctx().mark_as_relevant(c);
}
TRACE("arith", ctx().display_literals_verbose(tout, m_core););
TRACE("arith", ctx().display_literals_verbose(tout, m_core) << "\n";);
ctx().mk_th_axiom(get_id(), m_core.size(), m_core.c_ptr());
}
}
@ -3760,6 +3760,8 @@ public:
break;
}
case null_source:
out << idx << " null";
break;
default:
UNREACHABLE();
break;