diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2020-10-01 10:36:14 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-01 10:36:14 -0500 |
commit | 874350b54bd0f275fa8af7ca7a7af186bde7c030 (patch) | |
tree | c2691cafe870a5377fa9692b7bcd6f6e2f0d0452 /src/preprocessing/passes/ite_simp.cpp | |
parent | 9c2a0ef0f00696eb4bbffcbbf23a43508c1c3987 (diff) |
(proof-new) Preprocessing passes use proper interfaces to assertions pipeline (#5164)
This PR eliminates all uses of assertions pipeline that are not proper, which two-fold:
(1) The assertion list should never be modified in a custom way (without going through replace / push_back),
(2) Places where an assertion is "conjoined" to an existing spot in the vector should use conjoin instead of replace.
This is required for proper proof generation.
This fixes CVC4/cvc4-projects#75.
Diffstat (limited to 'src/preprocessing/passes/ite_simp.cpp')
-rw-r--r-- | src/preprocessing/passes/ite_simp.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/preprocessing/passes/ite_simp.cpp b/src/preprocessing/passes/ite_simp.cpp index 49a6fe603..8c99493ba 100644 --- a/src/preprocessing/passes/ite_simp.cpp +++ b/src/preprocessing/passes/ite_simp.cpp @@ -127,7 +127,7 @@ bool ITESimp::doneSimpITE(AssertionPipeline* assertionsToPreprocess) { if (options::compressItes()) { - result = d_iteUtilities.compress(assertionsToPreprocess->ref()); + result = d_iteUtilities.compress(assertionsToPreprocess); } if (result) @@ -175,7 +175,8 @@ bool ITESimp::doneSimpITE(AssertionPipeline* assertionsToPreprocess) { Node more = aiteu.reduceConstantIteByGCD(res); Debug("arith::ite::red") << " gcd->" << more << endl; - (*assertionsToPreprocess)[i] = Rewriter::rewrite(more); + Node morer = Rewriter::rewrite(more); + assertionsToPreprocess->replace(i, morer); } } } @@ -214,7 +215,8 @@ bool ITESimp::doneSimpITE(AssertionPipeline* assertionsToPreprocess) << " ->" << res << endl; Node more = aiteu.reduceConstantIteByGCD(res); Debug("arith::ite::red") << " gcd->" << more << endl; - (*assertionsToPreprocess)[i] = Rewriter::rewrite(more); + Node morer = Rewriter::rewrite(more); + assertionsToPreprocess->replace(i, morer); } } } |