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/util/ite_utilities.h | |
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/util/ite_utilities.h')
-rw-r--r-- | src/preprocessing/util/ite_utilities.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/preprocessing/util/ite_utilities.h b/src/preprocessing/util/ite_utilities.h index fbddf7169..c82bf7958 100644 --- a/src/preprocessing/util/ite_utilities.h +++ b/src/preprocessing/util/ite_utilities.h @@ -27,6 +27,7 @@ #include <vector> #include "expr/node.h" +#include "preprocessing/assertion_pipeline.h" #include "util/hash.h" #include "util/statistics_registry.h" @@ -74,7 +75,7 @@ class ITEUtilities bool simpIteDidALotOfWorkHeuristic() const; /* returns false if an assertion is discovered to be equal to false. */ - bool compress(std::vector<Node>& assertions); + bool compress(AssertionPipeline* assertionsToPreprocess); Node simplifyWithCare(TNode e); @@ -167,7 +168,7 @@ class ITECompressor ~ITECompressor(); /* returns false if an assertion is discovered to be equal to false. */ - bool compress(std::vector<Node>& assertions); + bool compress(AssertionPipeline* assertionsToPreprocess); /* garbage Collects the compressor. */ void garbageCollect(); @@ -176,7 +177,7 @@ class ITECompressor Node d_true; /* Copy of true. */ Node d_false; /* Copy of false. */ ContainsTermITEVisitor* d_contains; - std::vector<Node>* d_assertions; + AssertionPipeline* d_assertions; IncomingArcCounter d_incoming; typedef std::unordered_map<Node, Node, NodeHashFunction> NodeMap; |