Skip to content

Commit 6454e7f

Browse files
apply rewriting if result of destructive equality resolution is simplified
1 parent bc60374 commit 6454e7f

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

src/ast/rewriter/th_rewriter.cpp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -821,17 +821,28 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
821821
result_pr = m().mk_transitivity(p1, p2);
822822
}
823823

824+
TRACE("reduce_quantifier", tout << "after elim_unused_vars:\n" << result << " " << result_pr << "\n" ;);
825+
826+
proof_ref p2(m());
827+
expr_ref r(m());
828+
829+
bool der_change = false;
824830
if (is_quantifier(result)) {
825-
proof_ref p2(m());
826-
expr_ref r(m());
827831
m_der(to_quantifier(result), r, p2);
832+
der_change = result.get() != r.get();
833+
if (m().proofs_enabled() && der_change)
834+
result_pr = m().mk_transitivity(result_pr, p2);
835+
result = r;
836+
}
837+
838+
if (der_change) {
839+
th_rewriter rw(m());
840+
rw(result, r, p2);
828841
if (m().proofs_enabled() && result.get() != r.get())
829842
result_pr = m().mk_transitivity(result_pr, p2);
830843
result = r;
831844
}
832845

833-
TRACE("reduce_quantifier", tout << "after elim_unused_vars:\n" << result << " " << result_pr << "\n" ;);
834-
835846
SASSERT(old_q->get_sort() == result->get_sort());
836847
return true;
837848
}

0 commit comments

Comments
 (0)