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

move more equality functionality

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-04-15 14:24:50 -07:00
parent 5163492d5b
commit c733789467
4 changed files with 23 additions and 35 deletions

View file

@ -134,4 +134,22 @@ namespace polysat {
return false;
}
constraint* eq_constraint::resolve(solver& s, pvar v) {
if (s.m_conflict.size() != 1)
return nullptr;
constraint* c = s.m_conflict[0];
if (c->is_eq()) {
pdd a = c->to_eq().p();
pdd b = p();
pdd r = a;
if (!a.resolve(v, b, r))
return nullptr;
p_dependency_ref d(s.m_dm.mk_join(c->dep(), dep()), s.m_dm);
// d = ;
unsigned lvl = std::max(c->level(), level());
return constraint::eq(lvl, r, d);
}
return nullptr;
}
}