3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-20 10:10:21 +00:00

cave in to supporting proofs (partially) in simplifiers, updated doc

This commit is contained in:
Nikolaj Bjorner 2022-12-06 17:02:04 -08:00
parent aaabbfb594
commit 80033e8744
36 changed files with 157 additions and 108 deletions

View file

@ -35,13 +35,13 @@ propagate_values::propagate_values(ast_manager& m, params_ref const& p, dependen
void propagate_values::process_fml(unsigned i) {
if (!m_subst.empty()) {
auto [f, dep] = m_fmls[i]();
auto [f, p, dep] = m_fmls[i]();
expr_ref fml(m);
proof_ref pr(m);
m_rewriter(f, fml, pr);
if (fml != f) {
dep = m.mk_join(dep, m_rewriter.get_used_dependencies());
m_fmls.update(i, dependent_expr(m, fml, dep));
m_fmls.update(i, dependent_expr(m, fml, mp(p, pr), dep));
++m_stats.m_num_rewrites;
}
m_rewriter.reset_used_dependencies();
@ -51,7 +51,7 @@ void propagate_values::process_fml(unsigned i) {
void propagate_values::add_sub(dependent_expr const& de) {
expr* x, * y;
auto const& [f, dep] = de();
auto const& [f, p, dep] = de();
if (m.is_not(f, x) && m_shared.is_shared(x))
m_subst.insert(x, m.mk_false(), dep);
if (m_shared.is_shared(f))