3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-12 04:03:39 +00:00

remove incorrect calls to VERIFY in array solver

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2025-01-24 09:54:21 -08:00
parent 0e8969ce60
commit 053349cd36

View file

@ -115,7 +115,8 @@ namespace sls {
} }
else { else {
g.merge(nmap, nsel, nullptr); g.merge(nmap, nsel, nullptr);
VERIFY(g.propagate()); g.propagate();
VERIFY(!g.inconsistent());
} }
} }
@ -143,8 +144,9 @@ namespace sls {
if (are_distinct(nsel, val)) if (are_distinct(nsel, val))
add_store_axiom1(n->get_app()); add_store_axiom1(n->get_app());
else { else {
g.merge(nsel, val, nullptr); g.merge(nsel, val, nullptr);
VERIFY(g.propagate()); g.propagate();
VERIFY(!g.inconsistent());
} }
} }
@ -161,7 +163,8 @@ namespace sls {
add_store_axiom2(sto->get_app(), sel->get_app()); add_store_axiom2(sto->get_app(), sel->get_app());
else { else {
g.merge(nsel, sel, nullptr); g.merge(nsel, sel, nullptr);
VERIFY(g.propagate()); g.propagate();
VERIFY(!g.inconsistent());
} }
} }
@ -178,7 +181,8 @@ namespace sls {
add_store_axiom2(sto->get_app(), sel->get_app()); add_store_axiom2(sto->get_app(), sel->get_app());
else { else {
g.merge(nsel, sel, nullptr); g.merge(nsel, sel, nullptr);
VERIFY(g.propagate()); g.propagate();
VERIFY(!g.inconsistent());
} }
} }
@ -196,7 +200,8 @@ namespace sls {
} }
else { else {
g.merge(nsel, sel, nullptr); g.merge(nsel, sel, nullptr);
VERIFY(g.propagate()); g.propagate();
VERIFY(!g.inconsistent());
} }
} }
@ -265,18 +270,19 @@ namespace sls {
if (a.is_array(t)) if (a.is_array(t))
continue; continue;
auto v = ctx.get_value(t); auto v = ctx.get_value(t);
IF_VERBOSE(3, verbose_stream() << "init " << mk_bounded_pp(t, m) << " := " << mk_bounded_pp(v, m) << "\n"); IF_VERBOSE(3, verbose_stream() << "init " << mk_bounded_pp(t, m) << " := " << mk_bounded_pp(v, m) << " " << g.inconsistent() << "\n");
n2 = g.find(v); n2 = g.find(v);
n2 = n2 ? n2: g.mk(v, 0, 0, nullptr); n2 = n2 ? n2: g.mk(v, 0, 0, nullptr);
g.merge(n1, n2, nullptr); g.merge(n1, n2, nullptr);
} }
for (auto lit : ctx.root_literals()) { for (auto lit : ctx.root_literals()) {
if (!ctx.is_true(lit) || lit.sign()) if (!ctx.is_true(lit) || lit.sign())
continue; continue;
auto e = ctx.atom(lit.var()); auto e = ctx.atom(lit.var());
expr* x, * y; expr* x = nullptr, * y = nullptr;
if (e && m.is_eq(e, x, y)) if (e && m.is_eq(e, x, y))
g.merge(g.find(x), g.find(y), nullptr); g.merge(g.find(x), g.find(y), nullptr);
} }
IF_VERBOSE(3, display(verbose_stream())); IF_VERBOSE(3, display(verbose_stream()));
@ -297,7 +303,6 @@ namespace sls {
kv[n].insert(select_args(p), val); kv[n].insert(select_args(p), val);
} }
} }
display(verbose_stream());
} }
expr_ref array_plugin::get_value(expr* e) { expr_ref array_plugin::get_value(expr* e) {