Skip to content

Commit f3dd58d

Browse files
fix #4187
1 parent 47fa6ba commit f3dd58d

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/ast/rewriter/rewriter.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Module Name:
1818
--*/
1919
#include "ast/rewriter/rewriter_def.h"
2020
#include "ast/ast_ll_pp.h"
21+
#include "ast/ast_pp.h"
2122
#include "ast/ast_smt2_pp.h"
2223

2324
void rewriter_core::init_cache_stack() {
@@ -47,6 +48,9 @@ bool rewriter_core::rewrites_from(expr* t, proof* p) {
4748
}
4849

4950
bool rewriter_core::rewrites_to(expr* t, proof* p) {
51+
CTRACE("rewriter", p && !m().proofs_disabled() && to_app(m().get_fact(p))->get_arg(1) != t,
52+
tout << mk_pp(p, m()) << "\n";
53+
tout << mk_pp(t, m()) << "\n";);
5054
return !p || m().proofs_disabled() || (to_app(m().get_fact(p))->get_arg(1) == t);
5155
}
5256

@@ -76,6 +80,8 @@ void rewriter_core::cache_shifted_result(expr * k, unsigned offset, expr * v) {
7680
void rewriter_core::cache_result(expr * k, expr * v, proof * pr) {
7781
m_cache->insert(k, v);
7882
SASSERT(m_proof_gen);
83+
SASSERT(rewrites_from(k, pr));
84+
SASSERT(rewrites_to(v, pr));
7985
m_cache_pr->insert(k, pr);
8086
}
8187

src/ast/rewriter/th_rewriter.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -698,11 +698,12 @@ struct th_rewriter_cfg : public default_rewriter_cfg {
698698
p1 = m().mk_pull_quant(old_q, q1);
699699
}
700700
}
701-
else if (
702-
old_q->get_kind() == lambda_k &&
701+
else if (old_q->get_kind() == lambda_k &&
703702
is_ground(new_body)) {
704703
result = m_ar_rw.util().mk_const_array(old_q->get_sort(), new_body);
705-
result_pr = nullptr;
704+
if (m().proofs_enabled()) {
705+
result_pr = m().mk_rewrite(old_q, result);
706+
}
706707
return true;
707708
}
708709
else {

0 commit comments

Comments
 (0)