Exemplo n.º 1
0
 solver* translate(ast_manager& dst_m, params_ref const& p) override {
     flush_assertions();
     solver* result = alloc(pb2bv_solver, dst_m, p, m_solver->translate(dst_m, p));
     model_converter_ref mc = external_model_converter();
     if (mc.get()) {
         ast_translation tr(m, dst_m);
         result->set_model_converter(mc->translate(tr));
     }
     return result;
 }
Exemplo n.º 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;
 }
Exemplo n.º 3
0
 virtual lbool get_consequences_core(expr_ref_vector const& asms, expr_ref_vector const& vars, expr_ref_vector& consequences) {
     flush_assertions(); 
     return m_solver->get_consequences(asms, vars, consequences); }
Exemplo n.º 4
0
 virtual lbool check_sat_core(unsigned num_assumptions, expr * const * assumptions) {
     flush_assertions();
     return m_solver->check_sat(num_assumptions, assumptions);
 }
Exemplo n.º 5
0
 virtual void push_core() {
     flush_assertions();
     m_rewriter.push();
     m_solver->push();
 }
Exemplo n.º 6
0
 virtual expr * get_assertion(unsigned idx) const {
     flush_assertions();
     return m_solver->get_assertion(idx);
 }
Exemplo n.º 7
0
 virtual unsigned get_num_assertions() const {
     flush_assertions();
     return m_solver->get_num_assertions();
 }
Exemplo n.º 8
0
 void push_core() override {
     flush_assertions();
     m_rewriter.push();
     m_solver->push();
 }
Exemplo n.º 9
0
 expr * get_assertion(unsigned idx) const override {
     flush_assertions();
     return m_solver->get_assertion(idx);
 }
Exemplo n.º 10
0
 unsigned get_num_assertions() const override {
     flush_assertions();
     return m_solver->get_num_assertions();
 }
Exemplo n.º 11
0
 expr_ref_vector cube(expr_ref_vector& vars, unsigned backtrack_level) override { flush_assertions(); return m_solver->cube(vars, backtrack_level); }
Exemplo n.º 12
0
 void push_core() override {
     flush_assertions();
     m_solver->push();
     m_bv_fns_lim.push_back(m_bv_fns.size());
     m_bounds.push_back(alloc(bound_manager, m));
 }