void operator()(assertion_set & s, model_converter_ref & mc) { mc = 0; if (s.inconsistent()) return; as_st_report report("add-bounds", s); bound_manager bm(m); expr_fast_mark1 visited; add_bound_proc proc(bm, s, m_lower, m_upper); unsigned sz = s.size(); for (unsigned i = 0; i < sz; i++) quick_for_each_expr(proc, visited, s.form(i)); visited.reset(); report_st_progress(":added-bounds", proc.m_num_bounds); TRACE("add_bounds", s.display(tout););
void operator()(assertion_set & s, model_converter_ref & mc) { mc = 0; if (s.inconsistent()) return; { as_st_report report("elim-term-ite", s); m_rw.m_cfg.m_num_fresh = 0; m_rw.m_cfg.m_set = &s; expr_ref new_curr(m); proof_ref new_pr(m); unsigned size = s.size(); for (unsigned idx = 0; idx < size; idx++) { expr * curr = s.form(idx); m_rw(curr, new_curr, new_pr); if (m.proofs_enabled()) { proof * pr = s.pr(idx); new_pr = m.mk_modus_ponens(pr, new_pr); } s.update(idx, new_curr, new_pr); } mc = m_rw.m_cfg.m_mc.get(); } report_st_progress(":elim-term-ite-consts", m_rw.m_cfg.m_num_fresh); }