3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-18 02:16:40 +00:00

bug in non-member disjunction

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-05-28 12:03:40 -07:00
parent 220b8afd97
commit 6a90072a98
3 changed files with 5 additions and 6 deletions

View file

@ -303,7 +303,7 @@ namespace smt {
}
/**
* is_non_empty(r, u) => nullable or not c_i or is_non_empty(r_i, u union r)
* is_non_empty(r, u) => nullable or \/_i (c_i and is_non_empty(r_i, u union r))
*
* for each (c_i, r_i) in cofactors (min-terms)
*
@ -337,6 +337,8 @@ namespace smt {
if (m.is_false(cond))
continue;
expr_ref next_non_empty = sk().mk_is_non_empty(p.second, re().mk_union(u, r));
if (!m.is_true(cond))
next_non_empty = m.mk_and(cond, next_non_empty);
lits.push_back(th.mk_literal(next_non_empty));
}
th.add_axiom(lits);