3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 21:38: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,6 +978,12 @@ class theory_lra::imp {
if (!st.offset().is_zero()) { if (!st.offset().is_zero()) {
m_left_side.push_back(std::make_pair(st.offset(), get_one(a.is_int(term)))); m_left_side.push_back(std::make_pair(st.offset(), get_one(a.is_int(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); vi = lp().add_term(m_left_side, v);
SASSERT(lp::tv::is_term(vi)); SASSERT(lp::tv::is_term(vi));
TRACE("arith_verbose", TRACE("arith_verbose",
@ -985,8 +991,6 @@ class theory_lra::imp {
<< " slack: " << vi << " scopes: " << m_scopes.size() << "\n"; << " slack: " << vi << " scopes: " << m_scopes.size() << "\n";
lp().print_term(lp().get_term(vi), tout) << "\n";); lp().print_term(lp().get_term(vi), tout) << "\n";);
} }
else {
SASSERT(lp::tv::is_term(vi) || a.is_to_real(term));
} }
rational val; rational val;