diff --git a/scripts/mk_project.py b/scripts/mk_project.py index 876e0fd21..a422a8e13 100644 --- a/scripts/mk_project.py +++ b/scripts/mk_project.py @@ -44,6 +44,7 @@ def init_project_def(): add_lib('mbp', ['model', 'simplex'], 'qe/mbp') add_lib('qe_lite', ['tactic', 'mbp'], 'qe/lite') add_lib('solver', ['params', 'smt_params', 'model', 'tactic', 'qe_lite', 'proofs']) + add_lib('mbi', ['qe_lite','solver'], 'qe/mbi') add_lib('cmd_context', ['solver', 'rewriter', 'params']) add_lib('smt2parser', ['cmd_context', 'parser_util'], 'parsers/smt2') add_lib('pattern', ['normal_forms', 'smt2parser', 'rewriter'], 'ast/pattern') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b39f2c04d..d62343d15 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -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) diff --git a/src/qe/mbi/CMakeLists.txt b/src/qe/mbi/CMakeLists.txt index 275ad7ed7..9027b4376 100644 --- a/src/qe/mbi/CMakeLists.txt +++ b/src/qe/mbi/CMakeLists.txt @@ -2,6 +2,5 @@ z3_add_component(mbi SOURCES qe_mbi.cpp COMPONENT_DEPENDENCIES - mbp - qe_lite + solver ) diff --git a/src/qe/mbp/mbp_term_graph.cpp b/src/qe/mbp/mbp_term_graph.cpp index 83a1f3c58..7e6f1b7ec 100644 --- a/src/qe/mbp/mbp_term_graph.cpp +++ b/src/qe/mbp/mbp_term_graph.cpp @@ -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;