Example #1
0
 void filter_model(model_ref& mdl) {
     if (m_rewriter.fresh_constants().empty()) {
         return;
     }
     filter_model_converter filter(m);
     func_decl_ref_vector const& fns = m_rewriter.fresh_constants();
     for (unsigned i = 0; i < fns.size(); ++i) {
         filter.insert(fns[i]);
     }
     filter(mdl, 0);
 }
Example #2
0
 model_converter* local_model_converter() const {
     if (m_rewriter.fresh_constants().empty()) {
         return nullptr;
     }
     generic_model_converter* filter = alloc(generic_model_converter, m, "pb2bv");
     func_decl_ref_vector const& fns = m_rewriter.fresh_constants();
     for (func_decl* f : fns) {
         filter->hide(f);
     }
     return filter;
 }
Example #3
0
 void flush_assertions() const {
     if (m_assertions.empty()) return;
     m_rewriter.updt_params(get_params());
     proof_ref proof(m);
     expr_ref fml1(m), fml(m);
     expr_ref_vector fmls(m);
     for (expr* a : m_assertions) {
         m_th_rewriter(a, fml1, proof);
         m_rewriter(false, fml1, fml, proof);
         m_solver->assert_expr(fml);
     }
     m_rewriter.flush_side_constraints(fmls);
     m_solver->assert_expr(fmls);
     m_assertions.reset();
 }
Example #4
0
 void flush_assertions() const {
     proof_ref proof(m);
     expr_ref fml(m);
     expr_ref_vector fmls(m);
     for (unsigned i = 0; i < m_assertions.size(); ++i) {
         m_rewriter(m_assertions[i].get(), fml, proof);
         m_solver->assert_expr(fml);
     }
     m_rewriter.flush_side_constraints(fmls);
     m_solver->assert_expr(fmls);
     m_assertions.reset();
 }
Example #5
0
 virtual void collect_statistics(statistics & st) const { 
     m_rewriter.collect_statistics(st);
     m_solver->collect_statistics(st); 
 }
Example #6
0
 virtual void pop_core(unsigned n) {
     m_assertions.reset();
     m_solver->pop(n);
     m_rewriter.pop(n);
 }
Example #7
0
 virtual void push_core() {
     flush_assertions();
     m_rewriter.push();
     m_solver->push();
 }
Example #8
0
 void collect_statistics(statistics & st) const override { 
     m_rewriter.collect_statistics(st);
     m_solver->collect_statistics(st); 
 }
Example #9
0
 void collect_param_descrs(param_descrs & r) override { m_solver->collect_param_descrs(r); m_rewriter.collect_param_descrs(r);}    
Example #10
0
 void updt_params(params_ref const & p) override { solver::updt_params(p); m_rewriter.updt_params(p); m_solver->updt_params(p);  }
Example #11
0
 void pop_core(unsigned n) override {
     m_assertions.reset();
     m_solver->pop(n);
     m_rewriter.pop(n);
 }
Example #12
0
 void push_core() override {
     flush_assertions();
     m_rewriter.push();
     m_solver->push();
 }