Пример #1
0
 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);
         }
     }
 }
Пример #2
0
 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);
 }