mirror of
https://github.com/Z3Prover/z3
synced 2025-04-04 16:44:07 +00:00
reset kv map consistently with egraph
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
57a5474ab4
commit
a8279dd9d5
|
@ -33,8 +33,8 @@ namespace sls {
|
|||
bool array_plugin::is_sat() {
|
||||
if (!m_has_arrays)
|
||||
return true;
|
||||
m_g = alloc(euf::egraph, m);
|
||||
m_kv = nullptr;
|
||||
m_g = alloc(euf::egraph, m);
|
||||
init_egraph(*m_g);
|
||||
saturate(*m_g);
|
||||
if (m_g->inconsistent()) {
|
||||
|
@ -382,6 +382,7 @@ namespace sls {
|
|||
expr_ref array_plugin::get_value(expr* e) {
|
||||
SASSERT(a.is_array(e));
|
||||
if (!m_g) {
|
||||
m_kv = nullptr;
|
||||
m_g = alloc(euf::egraph, m);
|
||||
init_egraph(*m_g);
|
||||
flet<bool> _strong(m_add_conflicts, false);
|
||||
|
@ -395,7 +396,8 @@ namespace sls {
|
|||
auto& kv = *m_kv;
|
||||
auto n = m_g->find(e)->get_root();
|
||||
expr_ref r(n->get_expr(), m), key(m);
|
||||
expr_mark visited;
|
||||
expr_mark visited;
|
||||
SASSERT(kv.contains(n));
|
||||
for (auto [k, v] : kv[n]) {
|
||||
ptr_vector<expr> args;
|
||||
key = ctx.get_value(k.sel->get_arg(1)->get_expr());
|
||||
|
|
Loading…
Reference in a new issue