3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 11:25:51 +00:00

integrate bounds from original model

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-10-15 15:11:31 -07:00
parent ce18421a7a
commit 630a3d6ea8
3 changed files with 12 additions and 17 deletions

View file

@ -843,7 +843,6 @@ namespace opt {
void context::update_bound(bool is_lower) {
expr_ref val(m);
if (!m_model.get()) return;
bool override = true;
for (unsigned i = 0; i < m_objectives.size(); ++i) {
objective const& obj = m_objectives[i];
rational r;
@ -852,10 +851,10 @@ namespace opt {
if (m_model->eval(obj.m_term, val) && is_numeral(val, r)) {
inf_eps val = inf_eps(obj.m_adjust_value(r));
if (is_lower) {
m_optsmt.update_lower(obj.m_index, val, override);
m_optsmt.update_lower(obj.m_index, val);
}
else {
m_optsmt.update_upper(obj.m_index, val, override);
m_optsmt.update_upper(obj.m_index, val);
}
}
break;
@ -863,10 +862,10 @@ namespace opt {
if (m_model->eval(obj.m_term, val) && is_numeral(val, r)) {
inf_eps val = inf_eps(obj.m_adjust_value(r));
if (is_lower) {
m_optsmt.update_lower(obj.m_index, val, override);
m_optsmt.update_lower(obj.m_index, val);
}
else {
m_optsmt.update_upper(obj.m_index, val, override);
m_optsmt.update_upper(obj.m_index, val);
}
}
break;