3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-15 13:28:47 +00:00

Merge branch 'unstable' of https://github.com/Z3Prover/z3 into unstable

This commit is contained in:
unknown 2015-08-23 12:09:51 -07:00
commit 42c7277ea8
4 changed files with 11 additions and 4 deletions

View file

@ -247,6 +247,7 @@ public:
break; break;
} }
} }
m_lower = m_upper;
trace(); trace();
return l_true; return l_true;
} }
@ -468,6 +469,9 @@ public:
fml = mk_not(m, mk_and(m, m_B.size(), m_B.c_ptr())); fml = mk_not(m, mk_and(m, m_B.size(), m_B.c_ptr()));
s().assert_expr(fml); s().assert_expr(fml);
m_lower += w; m_lower += w;
if (m_st == s_primal_dual) {
m_lower = std::min(m_lower, m_upper);
}
trace(); trace();
} }

View file

@ -959,11 +959,13 @@ namespace sat {
assign(lit, justification()); assign(lit, justification());
break; break;
case l_false: { case l_false: {
m_assumptions.push_back(lit);
SASSERT(!inconsistent()); SASSERT(!inconsistent());
set_conflict(justification(), ~lit); set_conflict(justification(), ~lit);
flet<bool> _min1(m_config.m_minimize_core, false); flet<bool> _min1(m_config.m_minimize_core, false);
flet<bool> _min2(m_config.m_minimize_core_partial, false); flet<bool> _min2(m_config.m_minimize_core_partial, false);
resolve_conflict_for_unsat_core(); resolve_conflict_for_unsat_core();
m_assumptions.pop_back();
weight += weights[i]; weight += weights[i];
blocker.push_back(lit); blocker.push_back(lit);
TRACE("sat", tout << "core: " << m_core << "\nassumptions: " << m_assumptions << "\n";); TRACE("sat", tout << "core: " << m_core << "\nassumptions: " << m_assumptions << "\n";);

View file

@ -106,7 +106,11 @@ public:
dep2asm_t dep2asm; dep2asm_t dep2asm;
VERIFY(l_true == internalize_formulas()); VERIFY(l_true == internalize_formulas());
VERIFY(l_true == internalize_assumptions(sz, assumptions, dep2asm)); VERIFY(l_true == internalize_assumptions(sz, assumptions, dep2asm));
m_solver.display_wcnf(out, sz, m_asms.c_ptr(), weights); svector<unsigned> nweights;
for (unsigned i = 0; i < m_asms.size(); ++i) {
nweights.push_back((unsigned) m_weights[i]);
}
m_solver.display_wcnf(out, m_asms.size(), m_asms.c_ptr(), nweights.c_ptr());
} }
lbool check_sat(unsigned sz, expr * const * assumptions, double const* weights, double max_weight) { lbool check_sat(unsigned sz, expr * const * assumptions, double const* weights, double max_weight) {

View file

@ -65,9 +65,6 @@ struct simplify_tactic::imp {
proof * pr = g.pr(idx); proof * pr = g.pr(idx);
new_pr = m().mk_modus_ponens(pr, new_pr); new_pr = m().mk_modus_ponens(pr, new_pr);
} }
if (m_manager.is_false(new_curr)) {
std::cout << mk_pp(curr, m_manager) << " => " << new_curr << "\n";
}
g.update(idx, new_curr, new_pr, g.dep(idx)); g.update(idx, new_curr, new_pr, g.dep(idx));
} }
TRACE("after_simplifier_bug", g.display(tout);); TRACE("after_simplifier_bug", g.display(tout););