コード例 #1
0
ファイル: enum2bv_solver.cpp プロジェクト: NikolajBjorner/z3
 solver* translate(ast_manager& dst_m, params_ref const& p) override {   
     solver* result = alloc(enum2bv_solver, dst_m, p, m_solver->translate(dst_m, p));
     model_converter_ref mc = external_model_converter();
     if (mc) {
         ast_translation tr(m, dst_m);
         result->set_model_converter(mc->translate(tr));
     }
     return result;
 }
コード例 #2
0
 solver* translate(ast_manager& dst_m, params_ref const& p) override {
     flush_assertions();
     bounded_int2bv_solver* result = alloc(bounded_int2bv_solver, dst_m, p, m_solver->translate(dst_m, p));
     ast_translation tr(m, dst_m);
     for (auto& kv : m_int2bv) result->m_int2bv.insert(tr(kv.m_key), tr(kv.m_value));        
     for (auto& kv : m_bv2int) result->m_bv2int.insert(tr(kv.m_key), tr(kv.m_value));
     for (auto& kv : m_bv2offset) result->m_bv2offset.insert(tr(kv.m_key), kv.m_value);
     for (func_decl* f : m_bv_fns) result->m_bv_fns.push_back(tr(f));
     for (func_decl* f : m_int_fns) result->m_int_fns.push_back(tr(f));
     for (bound_manager* b : m_bounds) result->m_bounds.push_back(b->translate(dst_m));
     model_converter_ref mc = external_model_converter();
     if (mc) {
         ast_translation tr(m, dst_m);
         result->set_model_converter(mc->translate(tr));
     }
     return result;
 }
コード例 #3
0
ファイル: pb2bv_solver.cpp プロジェクト: NikolajBjorner/z3
 model_converter_ref get_model_converter() const override { 
     model_converter_ref mc = external_model_converter();
     mc = concat(mc.get(), m_solver->get_model_converter().get());
     return mc;
 }