3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-06 17:44:08 +00:00

prepare for equality propagation from Grobner basis

Attempt to remedy performance regressions from the new solver core for NLA. It misses easy lemmas, presumably due to weaker bounds information.
This commit is contained in:
Nikolaj Bjorner 2022-06-14 09:50:53 -07:00
parent 8e2027107d
commit 3d00d1d56b
3 changed files with 2009 additions and 1978 deletions

View file

@ -340,7 +340,8 @@ namespace dd {
bool is_one() const { return m.is_one(root); }
bool is_zero() const { return m.is_zero(root); }
bool is_linear() const { return m.is_linear(root); }
bool is_unary() const { return !is_val() && lo().is_zero() && hi().is_val(); }
bool is_unary() const { return !is_val() && lo().is_zero() && hi().is_val(); }
bool is_offset() const { return !is_val() && lo().is_val() && hi().is_one(); }
bool is_binary() const { return m.is_binary(root); }
bool is_monomial() const { return m.is_monomial(root); }
bool is_non_zero() const { return m.is_non_zero(root); }

View file

@ -160,6 +160,9 @@ namespace dd {
}
while (simplified && !eq.poly().is_val());
if (eq.poly().is_unary() && eq.poly().hi().val() < 0)
eq = -eq.poly();
TRACE("dd.solver", display(tout << "simplification result: ", eq););
}

File diff suppressed because it is too large Load diff