3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 00:55:31 +00:00

fix bug in qe-lite reported in #1086: bookkeeping of unconstrained variables only works for quantifier-free formulas

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-06-19 18:22:30 -05:00
parent 02161f2ff7
commit 894c60bdf9
3 changed files with 13 additions and 3 deletions

View file

@ -1491,8 +1491,10 @@ namespace fm {
unsigned sz = g.size();
for (unsigned i = 0; i < sz; i++) {
expr * f = g[i];
if (is_occ(f))
if (is_occ(f)) {
TRACE("qe_lite", tout << "OCC: " << mk_ismt2_pp(f, m) << "\n";);
continue;
}
TRACE("qe_lite", tout << "not OCC:\n" << mk_ismt2_pp(f, m) << "\n";);
quick_for_each_expr(proc, visited, f);
}
@ -2221,6 +2223,9 @@ namespace fm {
void operator()(expr_ref_vector& fmls) {
init(fmls);
init_use_list(fmls);
for (auto & f : fmls) {
if (has_quantifiers(f)) return;
}
if (m_inconsistent) {
m_new_fmls.reset();
m_new_fmls.push_back(m.mk_false());