3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 11:55:51 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-03-15 01:12:04 -07:00 committed by Lev Nachmanson
parent 8af245a410
commit 44d2f6da6c
8 changed files with 232 additions and 100 deletions

View file

@ -152,9 +152,9 @@ void core::pop(unsigned n) {
SASSERT(elists_are_consistent(false));
}
rational core::product_value(const unsigned_vector & m) const {
rational r(1);
for (auto j : m) {
rational core::product_value(const monic& m) const {
rational r(m.sign() ? -1 : 1);
for (auto j : m.vars()) {
r *= m_lar_solver.get_column_value_rational(j);
}
return r;
@ -163,7 +163,7 @@ rational core::product_value(const unsigned_vector & m) const {
// return true iff the monic value is equal to the product of the values of the factors
bool core::check_monic(const monic& m) const {
SASSERT((!m_lar_solver.column_is_int(m.var())) || m_lar_solver.get_column_value(m.var()).is_int());
bool ret = product_value(m.vars()) == m_lar_solver.get_column_value_rational(m.var());
bool ret = product_value(m) == m_lar_solver.get_column_value_rational(m.var());
CTRACE("nla_solver_check_monic", !ret, print_monic(m, tout) << '\n';);
return ret;
}
@ -955,9 +955,10 @@ void core::clear() {
}
void core::init_search() {
TRACE("nla_solver_mons", tout << "init\n";);
clear();
init_vars_equivalence();
SASSERT(m_emons.consistent());
SASSERT(m_emons.invariant());
SASSERT(elists_are_consistent(false));
}