mirror of
https://github.com/Z3Prover/z3
synced 2025-08-24 03:57:51 +00:00
interval
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
adf41c5d02
commit
a4e29ecd7e
4 changed files with 35 additions and 32 deletions
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue