mirror of
https://github.com/Z3Prover/z3
synced 2025-07-19 02:42:02 +00:00
add a comment in nla_order
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
fdedeed7ae
commit
fc5e5a2098
1 changed files with 5 additions and 0 deletions
|
@ -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
|
// 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(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);
|
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 |= ineq(term(a.rat_sign(), a.var(), -b.rat_sign(), b.var()), val(a) < val(b) ? llc::GE : llc::LE, 0);
|
||||||
|
|
||||||
lemma &= ac;
|
lemma &= ac;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue