mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 05:18:44 +00:00
fix order lemmas for emons
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
9d6bf016fc
commit
f78a2058fc
|
@ -168,7 +168,7 @@ void order::generate_mon_ol(const monomial& ac,
|
|||
add_empty_lemma();
|
||||
mk_ineq(c_sign, c, llc::LE);
|
||||
explain(c); // this explains c == +- d
|
||||
negate_var_factor_relation(c_sign, a, d_sign, b);
|
||||
mk_ineq(c_sign, a, -d_sign, b.var(), negate(ab_cmp));
|
||||
mk_ineq(ac.var(), rational(-1), var(bd), ab_cmp);
|
||||
explain(bd);
|
||||
explain(b);
|
||||
|
@ -263,14 +263,6 @@ void order::generate_ol(const monomial& ac,
|
|||
TRACE("nla_solver", _().print_lemma(tout););
|
||||
}
|
||||
|
||||
|
||||
void order::negate_var_factor_relation(const rational& a_sign, lpvar a, const rational& b_sign, const factor& b) {
|
||||
rational b_fs = canonize_sign(b);
|
||||
llc cmp = a_sign*val(a) < b_sign*val(b)? llc::GE : llc::LE;
|
||||
mk_ineq(a_sign, a, - b_fs*b_sign, var(b), cmp);
|
||||
}
|
||||
|
||||
|
||||
bool order::order_lemma_on_ac_and_bc_and_factors(const monomial& ac,
|
||||
const factor& a,
|
||||
const factor& c,
|
||||
|
|
|
@ -88,6 +88,5 @@ private:
|
|||
const rational& d_sign,
|
||||
lpvar d,
|
||||
llc ab_cmp);
|
||||
void negate_var_factor_relation(const rational& a_sign, lpvar a, const rational& b_sign, const factor& b);
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue