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:
commit
42c7277ea8
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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";);
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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););
|
||||||
|
|
Loading…
Reference in a new issue