diff --git a/src/opt/maxsmt.cpp b/src/opt/maxsmt.cpp index b2f09f3c1..2edb28504 100644 --- a/src/opt/maxsmt.cpp +++ b/src/opt/maxsmt.cpp @@ -59,6 +59,16 @@ namespace opt { verbose_stream() << "Satisfying soft constraints\n"; display_answer(verbose_stream()); }); + + DEBUG_CODE(if (is_sat == l_true) { + IF_VERBOSE(0, verbose_stream() << "validating assignment\n";); + m_s->push(); + commit_assignment(); + VERIFY(is_sat == m_s->check_sat(0,0)); + m_s->pop(1); + // TBD: check that all extensions are unsat too + + }); return is_sat; } diff --git a/src/opt/opt_context.cpp b/src/opt/opt_context.cpp index 7e62605ac..6afc7779e 100644 --- a/src/opt/opt_context.cpp +++ b/src/opt/opt_context.cpp @@ -70,8 +70,8 @@ namespace opt { lbool is_sat = l_true; map_t::iterator it = m_maxsmts.begin(), end = m_maxsmts.end(); for (; is_sat == l_true && it != end; ++it) { - maxsmt* ms = it->m_value; - is_sat = (*ms)(s); + maxsmt& ms = *it->m_value; + is_sat = ms(s); } if (is_sat == l_true) { is_sat = m_optsmt(s); @@ -160,5 +160,4 @@ namespace opt { } } - } diff --git a/src/opt/opt_context.h b/src/opt/opt_context.h index c54259115..081bf7c1d 100644 --- a/src/opt/opt_context.h +++ b/src/opt/opt_context.h @@ -60,6 +60,8 @@ namespace opt { private: lbool optimize_pareto(); lbool optimize_box(); + + void validate_feasibility(maxsmt& ms); }; } diff --git a/src/smt/theory_pb.cpp b/src/smt/theory_pb.cpp index 68d627748..2b42e39f9 100644 --- a/src/smt/theory_pb.cpp +++ b/src/smt/theory_pb.cpp @@ -921,7 +921,6 @@ namespace smt { display(tout, c);); DEBUG_CODE( - IF_VERBOSE(0, verbose_stream() << s_debug_conflict << "\n";); if (s_debug_conflict) { resolve_conflict(conseq, c); });