mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 13:28:47 +00:00
change signed projection to include root object.
This commit is contained in:
parent
80642e5a7c
commit
c18a42cf5b
|
@ -1744,7 +1744,16 @@ namespace nlsat {
|
||||||
solve_eq(x, eq_index, ps);
|
solve_eq(x, eq_index, ps);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
project_pairs(x, eq_index, ps);
|
add_zero_assumption(p);
|
||||||
|
|
||||||
|
for (unsigned j = 0; j < ps.size(); ++j) {
|
||||||
|
if (j == eq_index)
|
||||||
|
continue;
|
||||||
|
p = ps.get(j);
|
||||||
|
int s = sign(p);
|
||||||
|
atom::kind k = (s == 0)?(atom::EQ):((s < 0)?(atom::LT):(atom::GT));
|
||||||
|
add_simple_assumption(k, p, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -480,8 +480,10 @@ namespace qe {
|
||||||
num_scopes = 2*(level()/2);
|
num_scopes = 2*(level()/2);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
SASSERT(clevel.max() + 2 <= level());
|
if (clevel.max() + 2 <= level())
|
||||||
num_scopes = level() - clevel.max();
|
num_scopes = level() - clevel.max();
|
||||||
|
else
|
||||||
|
num_scopes = 2; // the projection contains auxiliary variables from root objects.
|
||||||
SASSERT(num_scopes >= 2);
|
SASSERT(num_scopes >= 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue