3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00
This commit is contained in:
Nikolaj Bjorner 2024-08-27 11:45:27 -07:00
parent 3bcd98b653
commit 4146e938e8
2 changed files with 12 additions and 8 deletions

View file

@ -640,13 +640,6 @@ namespace bv {
if (e->get_family_id() == bv.get_family_id() && try_repair_bv(e, i)) {
commit_eval(to_app(e->get_arg(i)));
ctx.new_value_eh(e->get_arg(i));
if (bv.is_bv(e)) {
auto& val = eval(e);
if (val.eval != val.bits()) {
commit_eval(e);
ctx.new_value_eh(e);
}
}
return true;
}
return false;
@ -852,6 +845,7 @@ namespace bv {
}
else {
bool try_above = m_rand(2) == 0;
m_tmp.set_bw(a.bw);
if (try_above) {
a.set_add(m_tmp, b.bits(), m_one);
if (!a.is_zero(m_tmp) && a.set_random_at_least(m_tmp, m_rand))
@ -1249,6 +1243,7 @@ namespace bv {
}
else {
// a > t
m_tmp.set_bw(a.bw);
a.set_add(m_tmp, b.bits(), m_one);
if (a.is_zero(m_tmp))
return false;
@ -1263,6 +1258,7 @@ namespace bv {
}
else {
// a < t
m_tmp.set_bw(a.bw);
if (b.is_zero())
return false;
a.set_sub(m_tmp, b.bits(), m_one);
@ -1895,6 +1891,9 @@ namespace bv {
void sls_eval::commit_eval(app* e) {
if (!bv.is_bv(e))
return;
//verbose_stream() << mk_bounded_pp(e, m) << " " << wval(e) << "\n";
//
// SASSERT(wval(e).commit_eval());
VERIFY(wval(e).commit_eval());
}

View file

@ -140,7 +140,12 @@ namespace sls {
verbose_stream() << "incorrect eval #" << e->get_id() << " " << mk_bounded_pp(e, m) << "\n";
}
SASSERT(m_eval.eval_is_correct(e));
ctx.new_value_eh(e);
if (m.is_bool(e)) {
if (ctx.is_true(e) != m_eval.bval1(e))
ctx.flip(ctx.atom2bool_var(e));
}
else
ctx.new_value_eh(e);
}
else if (bv.is_bv(e)) {
IF_VERBOSE(2, verbose_stream() << "repair-up "; trace_repair(true, e));