/** \brief Assert in m_aux_context, the constraint sk = e_1 OR ... OR sk = e_n where {e_1, ..., e_n} is the universe. */ void model_checker::restrict_to_universe(expr * sk, obj_hashtable<expr> const & universe) { SASSERT(!universe.empty()); ptr_buffer<expr> eqs; for (expr * e : universe) { eqs.push_back(m.mk_eq(sk, e)); } expr_ref fml(m.mk_or(eqs.size(), eqs.c_ptr()), m); m_aux_context->assert_expr(fml); }
/** \brief Assert in m_aux_context, the constraint sk = e_1 OR ... OR sk = e_n where {e_1, ..., e_n} is the universe. */ void model_checker::restrict_to_universe(expr * sk, obj_hashtable<expr> const & universe) { SASSERT(!universe.empty()); ptr_buffer<expr> eqs; obj_hashtable<expr>::iterator it = universe.begin(); obj_hashtable<expr>::iterator end = universe.end(); for (; it != end; ++it) { expr * e = *it; eqs.push_back(m_manager.mk_eq(sk, e)); } m_aux_context->assert_expr(m_manager.mk_or(eqs.size(), eqs.c_ptr())); }