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)); } }
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); } } }
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])); } } }
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; }