3
0
Fork 0
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:
Nikolaj Bjorner 2024-03-23 16:14:24 -04:00
parent 80642e5a7c
commit c18a42cf5b
2 changed files with 14 additions and 3 deletions

View file

@ -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;
} }

View file

@ -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);
} }