3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-18 02:16:40 +00:00

fix loop in equiv_monomials (#91)

* fix loop in equiv_monomials

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>

* fixes

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2019-04-18 19:11:02 -07:00 committed by Lev Nachmanson
parent e6561c983f
commit 7e67e1ce99
5 changed files with 26 additions and 16 deletions

View file

@ -245,13 +245,14 @@ bool basics::basic_lemma(bool derived) {
return true;
if (derived)
return false;
c().init_rm_to_refine();
const auto& rm_ref = c().m_to_refine;
TRACE("nla_solver", tout << "rm_ref = "; print_vector(rm_ref, tout););
unsigned start = c().random();
for (unsigned j = rm_ref.size(); j-- > 0; ) {
const signed_vars& r = c().m_emons.canonical[(j + start) % rm_ref.size()];
SASSERT (!c().check_monomial(c().m_emons[r.var()]));
unsigned sz = rm_ref.size();
for (unsigned j = 0; j < sz; ++j) {
lpvar v = rm_ref[(j + start) % rm_ref.size()];
const signed_vars& r = c().m_emons.canonical[v];
SASSERT (!c().check_monomial(c().m_emons[v]));
basic_lemma_for_mon(r, derived);
}