mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 11:55:51 +00:00
parent
8af245a410
commit
44d2f6da6c
8 changed files with 232 additions and 100 deletions
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue