3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 18:31:49 +00:00

add a comment in nla_order

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2020-11-10 11:11:42 -08:00
parent fdedeed7ae
commit fc5e5a2098

View file

@ -287,8 +287,13 @@ void order::generate_ol(const monic& ac,
// c > 0 and ac <= bc => a <= b
// c < 0 and ac >= bc => a <= b
// c < 0 and ac <= bc => a >= b
lemma |= ineq(c.var(), val(c.var()).is_neg() ? llc::GE : llc::LE, 0);
lemma |= ineq(term(rational(1), ac.var(), -rational(1), bc.var()), var_val(ac) < var_val(bc) ? llc::GT : llc::LT, 0);
// The value of factor k is val(k) = k.rat_sign()*val(k.var()).
// That is why we need to use the factor signs of a and b in the term,
// but the constraint of the term is defined by val(a) and val(b).
lemma |= ineq(term(a.rat_sign(), a.var(), -b.rat_sign(), b.var()), val(a) < val(b) ? llc::GE : llc::LE, 0);
lemma &= ac;