Exemplo n.º 1
0
void atom2bool_var::mk_inv(expr_ref_vector & lit2expr) const {
    obj_map<expr, var>::iterator it  = m_mapping.begin();
    obj_map<expr, var>::iterator end = m_mapping.end();
    for (; it != end; ++it) {
        sat::literal l(static_cast<sat::bool_var>(it->m_value), false);
        lit2expr.set(l.index(), it->m_key);
        l.neg();
        lit2expr.set(l.index(), m().mk_not(it->m_key));
    }
}
Exemplo n.º 2
0
void model_evaluator_array_util::eval_exprs(model& mdl, expr_ref_vector& es) {
    for (unsigned j = 0; j < es.size(); ++j) {
        if (m_array.is_as_array(es.get (j))) {
            expr_ref r (m);
            eval(mdl, es.get (j), r);
            es.set (j, r);
        }
    }
}
Exemplo n.º 3
0
 void get_renaming_args(const unsigned_vector & map, const relation_signature & orig_sig, 
         expr_ref_vector & renaming_arg) {
     ast_manager & m = renaming_arg.get_manager();
     unsigned sz = map.size();
     unsigned ofs = sz-1;
     renaming_arg.resize(sz, static_cast<expr *>(0));
     for(unsigned i=0; i<sz; i++) {
         if(map[i]!=UINT_MAX) {
             renaming_arg.set(ofs-i, m.mk_var(map[i], orig_sig[i]));
         }
     }
 }
Exemplo n.º 4
0
 subpaving::var mk_var_for(expr * t) {
     SASSERT(!m_autil.is_numeral(t));
     subpaving::var x = m_expr2var->to_var(t);
     if (x == subpaving::null_var) {
         bool is_int = m_autil.is_int(t);
         x = s().mk_var(is_int);
         m_expr2var->insert(t, x);
         if (x >= m_var2expr.size())
             m_var2expr.resize(x+1, 0);
         m_var2expr.set(x, t);
     }
     return x;
 }