3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-24 03:57:51 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-11-25 18:46:43 +01:00
parent adf41c5d02
commit a4e29ecd7e
4 changed files with 35 additions and 32 deletions

View file

@ -134,20 +134,22 @@ namespace polysat {
v = p.var();
else if (q.is_unilinear())
v = q.var();
if (v != null_var) {
signed_constraint sc(this, is_positive);
s.m_viable.intersect(v, sc);
rational val;
switch (s.m_viable.find_viable(v, val)) {
case dd::find_t::singleton:
s.propagate(v, val, sc);
break;
case dd::find_t::empty:
s.set_conflict(v);
break;
default:
break;
}
else
return;
signed_constraint sc(this, is_positive);
if (!s.m_viable.intersect(v, sc))
return;
rational val;
switch (s.m_viable.find_viable(v, val)) {
case dd::find_t::singleton:
s.propagate(v, val, sc); // TBD why is sc used as justification? It should be all of viable
break;
case dd::find_t::empty:
s.set_conflict(v);
break;
default:
break;
}
}