3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-19 10:52:02 +00:00

fix mk_unpure_equalities

This commit is contained in:
Arie Gurfinkel 2018-06-11 22:48:24 -07:00
parent 0f799eb2ae
commit 2288931b46

View file

@ -780,12 +780,15 @@ namespace qe {
expr *rep = nullptr; expr *rep = nullptr;
if (!m_root2rep.find(t.get_id(), rep)) return; if (!m_root2rep.find(t.get_id(), rep)) return;
obj_hashtable<expr> members; obj_hashtable<expr> members;
members.insert(rep);
term const * r = &t; term const * r = &t;
do { do {
expr* member = mk_pure(*r); expr* member = mk_pure(*r);
SASSERT(member); SASSERT(member);
if (member != rep && (!is_projected(*r) || !is_solved_eq(rep, member))) { if (!members.contains(member) &&
(!is_projected(*r) || !is_solved_eq(rep, member))) {
res.push_back(m.mk_eq(rep, member)); res.push_back(m.mk_eq(rep, member));
members.insert(member);
} }
r = &r->get_next(); r = &r->get_next();
} }