mirror of
https://github.com/Z3Prover/z3
synced 2025-08-23 19:47:52 +00:00
delay (lazy) process equalities.
This commit is contained in:
parent
ddbcd08d46
commit
156139622c
3 changed files with 49 additions and 20 deletions
|
@ -969,6 +969,9 @@ namespace arith {
|
|||
|
||||
TRACE("arith", ctx.display(tout););
|
||||
|
||||
if (!check_delayed_eqs())
|
||||
return sat::check_result::CR_CONTINUE;
|
||||
|
||||
switch (check_lia()) {
|
||||
case l_true:
|
||||
break;
|
||||
|
@ -1064,6 +1067,19 @@ namespace arith {
|
|||
}
|
||||
}
|
||||
|
||||
bool solver::check_delayed_eqs() {
|
||||
for (auto p : m_delayed_eqs) {
|
||||
auto const& e = p.first;
|
||||
if (p.second)
|
||||
new_eq_eh(e);
|
||||
else if (is_eq(e.v1(), e.v2())) {
|
||||
mk_diseq_axiom(e);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
lbool solver::check_lia() {
|
||||
TRACE("arith", );
|
||||
if (!m.inc())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue