3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 20:05:51 +00:00

lifting iff to binary

This commit is contained in:
Nikolaj Bjorner 2021-09-27 03:45:45 -07:00
parent 1dcbd2d86c
commit 6c71baf77b
5 changed files with 51 additions and 31 deletions

View file

@ -232,6 +232,14 @@ namespace q {
else
UNREACHABLE();
expr* a, *b;
if (m_expanded.size() == 1 && m.is_iff(m_expanded.get(0), a, b)) {
expr_ref f1(m.mk_implies(a, b), m);
expr_ref f2(m.mk_implies(b, a), m);
m_expanded.reset();
m_expanded.push_back(f1);
m_expanded.push_back(f2);
}
if (m_expanded.size() > 1) {
for (unsigned i = m_expanded.size(); i-- > 0; ) {
expr_ref tmp(m.update_quantifier(q, m_expanded.get(i)), m);