mirror of
https://github.com/Z3Prover/z3
synced 2026-02-18 06:34:22 +00:00
v0.1 of nla saturation
This commit is contained in:
parent
6adb234673
commit
ef27e38d5f
12 changed files with 461 additions and 175 deletions
|
|
@ -2022,6 +2022,7 @@ public:
|
|||
}
|
||||
|
||||
void false_case_of_check_nla(const nla::lemma & l) {
|
||||
TRACE(arith, tout << "nla false case\n";);
|
||||
m_lemma = l; //todo avoid the copy
|
||||
m_explanation = l.expl();
|
||||
literal_vector core;
|
||||
|
|
@ -3472,13 +3473,19 @@ public:
|
|||
// 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; }))
|
||||
is_conflict = true;
|
||||
for (auto l : m_core) {
|
||||
verbose_stream() << l << " " << ctx().get_assignment(l) << "\n";
|
||||
}
|
||||
TRACE(arith_conflict,
|
||||
tout << "@" << ctx().get_scope_level() << (is_conflict ? " conflict":" lemma");
|
||||
for (auto const& p : m_params) tout << " " << p;
|
||||
tout << "\n";
|
||||
display_evidence(tout << core << " ", m_explanation););
|
||||
for (auto ev : m_explanation)
|
||||
set_evidence(ev.ci(), m_core, m_eqs);
|
||||
|
||||
|
||||
|
||||
if (params().m_arith_validate)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue