summaryrefslogtreecommitdiff
path: root/src/preprocessing/passes/ite_simp.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2020-10-01 10:36:14 -0500
committerGitHub <noreply@github.com>2020-10-01 10:36:14 -0500
commit874350b54bd0f275fa8af7ca7a7af186bde7c030 (patch)
treec2691cafe870a5377fa9692b7bcd6f6e2f0d0452 /src/preprocessing/passes/ite_simp.cpp
parent9c2a0ef0f00696eb4bbffcbbf23a43508c1c3987 (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.cpp8
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);
}
}
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback