model_converter* local_model_converter() const { if (m_rewriter.enum2def().empty() && m_rewriter.enum2bv().empty()) { return nullptr; } generic_model_converter* mc = alloc(generic_model_converter, m, "enum2bv"); for (auto const& kv : m_rewriter.enum2bv()) mc->hide(kv.m_value); for (auto const& kv : m_rewriter.enum2def()) mc->add(kv.m_key, kv.m_value); return mc; }
void extend_model(model_ref& mdl) { extension_model_converter ext(m); obj_map<func_decl, expr*>::iterator it = m_rewriter.enum2def().begin(), end = m_rewriter.enum2def().end(); for (; it != end; ++it) { ext.insert(it->m_key, it->m_value); } ext(mdl, 0); }