3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-31 11:42:28 +00:00

mul-saturation wip

fixup conflict explanations in mul_saturation, add parameter to enable it, add statistics
This commit is contained in:
Nikolaj Bjorner 2025-09-27 12:17:40 +03:00
parent ad2c97a4df
commit 88844a84aa
9 changed files with 165 additions and 101 deletions

View file

@ -3467,15 +3467,15 @@ public:
void set_conflict_or_lemma(literal_vector const& core, bool is_conflict) {
reset_evidence();
for (literal lit : core) {
for (literal lit : core)
m_core.push_back(lit);
}
// lp().shrink_explanation_to_minimum(m_explanation); // todo, enable when perf is fixed
++m_num_conflicts;
++m_stats.m_conflicts;
for (auto ev : m_explanation)
set_evidence(ev.ci(), m_core, m_eqs);
if (m_eqs.empty() && all_of(m_core, [&](literal l) { return ctx().get_assignment(l) == l_false; }))
if (all_of(m_core, [&](literal l) { return ctx().get_assignment(l) == l_false; }))
is_conflict = true;
TRACE(arith_conflict,
tout << "@" << ctx().get_scope_level() << (is_conflict ? " conflict":" lemma");