3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-13 12:28:44 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-04-04 14:45:29 -07:00
parent 8d59355b88
commit 7838e99f47

View file

@ -978,15 +978,19 @@ class theory_lra::imp {
if (!st.offset().is_zero()) {
m_left_side.push_back(std::make_pair(st.offset(), get_one(a.is_int(term))));
}
vi = lp().add_term(m_left_side, v);
SASSERT(lp::tv::is_term(vi));
TRACE("arith_verbose",
tout << "v" << v << " := " << mk_pp(term, m)
<< " slack: " << vi << " scopes: " << m_scopes.size() << "\n";
lp().print_term(lp().get_term(vi), tout) << "\n";);
}
else {
SASSERT(lp::tv::is_term(vi) || a.is_to_real(term));
if (m_left_side.empty()) {
vi = lp().add_var(v, a.is_int(term));
add_def_constraint(lp().add_var_bound(vi, lp::GE, rational(0)));
add_def_constraint(lp().add_var_bound(vi, lp::LE, rational(0)));
}
else {
vi = lp().add_term(m_left_side, v);
SASSERT(lp::tv::is_term(vi));
TRACE("arith_verbose",
tout << "v" << v << " := " << mk_pp(term, m)
<< " slack: " << vi << " scopes: " << m_scopes.size() << "\n";
lp().print_term(lp().get_term(vi), tout) << "\n";);
}
}
rational val;