void rule_manager::mk_negations(app_ref_vector& body, svector<bool>& is_negated) { for (unsigned i = 0; i < body.size(); ++i) { expr* e = body[i].get(), *e1; if (m.is_not(e, e1) && m_ctx.is_predicate(e1)) { check_app(e1); body[i] = to_app(e1); is_negated.push_back(true); } else { is_negated.push_back(false); } } }
void euf_arith_mbi_plugin::filter_private_arith(app_ref_vector& avars) { arith_util a(m); unsigned j = 0; obj_hashtable<func_decl> shared; for (func_decl* f : m_shared) shared.insert(f); for (unsigned i = 0; i < avars.size(); ++i) { app* v = avars.get(i); if (!shared.contains(v->get_decl()) && v->get_family_id() != a.get_family_id()) { avars[j++] = v; } } avars.shrink(j); }