mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 19:35:50 +00:00
na (#4254)
* remove level of indirection for context and ast_manager in smt_theory Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * add request by #4252 Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * move to def Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * int Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix #4251 Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix #4255 * fix #4257 * add code to debug #4246 * restore new solver as default * na Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com> * fix #4246 Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
becf423c77
commit
fdc87f286f
18 changed files with 269 additions and 231 deletions
|
@ -83,6 +83,18 @@ public:
|
|||
sels.erase(s);
|
||||
}
|
||||
}
|
||||
|
||||
void prune_non_funs(fun2terms_map& f2t, ast_mark& non_funs) {
|
||||
ptr_vector<func_decl> to_delete;
|
||||
for (auto& kv : f2t) {
|
||||
if (non_funs.is_marked(kv.m_key)) {
|
||||
to_delete.push_back(kv.m_key);
|
||||
dealloc(kv.m_value);
|
||||
}
|
||||
}
|
||||
for (func_decl * f : to_delete)
|
||||
f2t.erase(f);
|
||||
}
|
||||
|
||||
inline bv_util& bvutil() { return m_bvutil; }
|
||||
|
||||
|
|
|
@ -271,6 +271,7 @@ lbool lackr::lazy() {
|
|||
bool lackr::collect_terms() {
|
||||
ptr_vector<expr> stack = m_formulas;
|
||||
expr_mark visited;
|
||||
func_decl* f;
|
||||
|
||||
while (!stack.empty()) {
|
||||
expr * curr = stack.back();
|
||||
|
@ -291,6 +292,8 @@ bool lackr::collect_terms() {
|
|||
m_ackr_helper.mark_non_select(a, m_non_select);
|
||||
add_term(a);
|
||||
}
|
||||
if (m_autil.is_as_array(curr, f))
|
||||
m_non_funs.mark(f, true);
|
||||
break;
|
||||
}
|
||||
case AST_QUANTIFIER:
|
||||
|
@ -302,6 +305,7 @@ bool lackr::collect_terms() {
|
|||
}
|
||||
|
||||
m_ackr_helper.prune_non_select(m_sel2terms, m_non_select);
|
||||
m_ackr_helper.prune_non_funs(m_fun2terms, m_non_funs);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -94,6 +94,7 @@ class lackr {
|
|||
model_ref m_model;
|
||||
bool m_eager;
|
||||
expr_mark m_non_select;
|
||||
ast_mark m_non_funs;
|
||||
lackr_stats& m_st;
|
||||
bool m_is_init;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue