3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-09 18:40:51 +00:00

cave in to supporting proofs (partially) in simplifiers, updated doc

This commit is contained in:
Nikolaj Bjorner 2022-12-06 17:02:04 -08:00
parent aaabbfb594
commit 80033e8744
36 changed files with 157 additions and 108 deletions

View file

@ -67,8 +67,8 @@ public:
decomposed = true;
if (decomposed) {
for (expr* arg : *to_app(b))
m_fmls.add(dependent_expr(m, m.mk_or(a, mk_not(m, arg)), de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr));
m_fmls.add(dependent_expr(m, nullptr, m.mk_or(a, mk_not(m, arg)), de.dep()));
m_fmls.update(idx, dependent_expr(m, nullptr, m.mk_true(), nullptr));
++m_num_flat;
continue;
}
@ -79,8 +79,8 @@ public:
decomposed = true;
if (decomposed) {
for (expr * arg : *to_app(b))
m_fmls.add(dependent_expr(m, m.mk_or(a, arg), de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr));
m_fmls.add(dependent_expr(m, nullptr, m.mk_or(a, arg), de.dep()));
m_fmls.update(idx, dependent_expr(m, nullptr, m.mk_true(), nullptr));
++m_num_flat;
continue;
}
@ -92,20 +92,20 @@ public:
if (decomposed) {
expr* na = mk_not(m, a);
for (expr* arg : *to_app(b))
m_fmls.add(dependent_expr(m, m.mk_or(na, arg), de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr));
m_fmls.add(dependent_expr(m, m.mk_or(na, arg), nullptr, de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr, nullptr));
++m_num_flat;
continue;
}
if (m.is_implies(f, a, b)) {
m_fmls.update(idx, dependent_expr(m, m.mk_or(mk_not(m, a), b), de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_or(mk_not(m, a), b), nullptr, de.dep()));
++m_num_flat;
continue;
}
if (m.is_ite(f, a, b, c)) {
m_fmls.add(dependent_expr(m, m.mk_or(mk_not(m, a), b), de.dep()));
m_fmls.add(dependent_expr(m, m.mk_or(a, c), de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr));
m_fmls.add(dependent_expr(m, m.mk_or(mk_not(m, a), b), nullptr, de.dep()));
m_fmls.add(dependent_expr(m, m.mk_or(a, c), nullptr, de.dep()));
m_fmls.update(idx, dependent_expr(m, m.mk_true(), nullptr, nullptr));
++m_num_flat;
continue;
}