3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2023-08-15 15:47:43 -07:00
parent c73b2b68fa
commit 49c8dff707
4 changed files with 13 additions and 11 deletions

View file

@ -57,7 +57,6 @@ add_subdirectory(ast/simplifiers)
add_subdirectory(tactic)
add_subdirectory(qe/mbp)
add_subdirectory(qe/lite)
add_subdirectory(qe/mbi)
add_subdirectory(smt/params)
add_subdirectory(parsers/util)
add_subdirectory(math/grobner)
@ -68,6 +67,7 @@ add_subdirectory(math/subpaving/tactic)
add_subdirectory(tactic/aig)
add_subdirectory(tactic/arith)
add_subdirectory(solver)
add_subdirectory(qe/mbi)
add_subdirectory(cmd_context)
add_subdirectory(cmd_context/extra_cmds)
add_subdirectory(parsers/smt2)

View file

@ -2,6 +2,5 @@ z3_add_component(mbi
SOURCES
qe_mbi.cpp
COMPONENT_DEPENDENCIES
mbp
qe_lite
solver
)

View file

@ -1085,23 +1085,25 @@ class term_graph::projector {
expr *mk_pure(term const &t) {
TRACE("qe", t.display(tout););
expr *e = nullptr;
if (find_term2app(t, e)) return e;
if (find_term2app(t, e))
return e;
e = t.get_expr();
if (!is_app(e)) return nullptr;
if (!is_app(e))
return nullptr;
app *a = ::to_app(e);
expr_ref_buffer kids(m);
for (term *ch : term::children(t)) {
// prefer a node that resembles current child,
// otherwise, pick a root representative, if present.
if (find_term2app(*ch, e)) { kids.push_back(e); }
else if (m_root2rep.find(ch->get_root().get_id(), e)) {
if (find_term2app(*ch, e))
kids.push_back(e);
else if (m_root2rep.find(ch->get_root().get_id(), e))
kids.push_back(e);
}
else { return nullptr; }
else
return nullptr;
TRACE("qe_verbose", tout << *ch << " -> " << mk_pp(e, m) << "\n";);
}
expr_ref pure =
m_rewriter.mk_app(a->get_decl(), kids.size(), kids.data());
expr_ref pure = m_rewriter.mk_app(a->get_decl(), kids.size(), kids.data());
m_pinned.push_back(pure);
add_term2app(t, pure);
return pure;