void rule_manager::mk_rule(expr* fml, rule_ref_vector& rules, symbol const& name) { expr_ref fml1(m); m_memoize_disj.reset(); m_refs.reset(); bind_variables(fml, true, fml1); remove_labels(fml1); mk_rule_core(fml1, rules, name); }
void rule_manager::mk_rule(expr* fml, proof* p, rule_set& rules, symbol const& name) { scoped_proof_mode _sc(m, m_ctx.generate_proof_trace()?PGM_FINE:PGM_DISABLED); proof_ref pr(p, m); expr_ref fml1(m); bind_variables(fml, true, fml1); if (fml1 != fml && pr) { pr = m.mk_asserted(fml1); } remove_labels(fml1, pr); mk_rule_core(fml1, pr, rules, name); }