summaryrefslogtreecommitdiff
path: root/src/theory/arrays/theory_arrays.h
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-09-19 11:17:27 -0500
committerGitHub <noreply@github.com>2018-09-19 11:17:27 -0500
commit4a0637be2548b2ee4c29873c045246cb36e8d122 (patch)
tree748b7728e39736ae22b8f5fcb71bb1bff3e77130 /src/theory/arrays/theory_arrays.h
parentd7f70ffac0731b7ce5a9d9115e5a5a9717d9174f (diff)
Decision strategy: incorporate arrays. (#2495)
Diffstat (limited to 'src/theory/arrays/theory_arrays.h')
-rw-r--r--src/theory/arrays/theory_arrays.h31
1 files changed, 29 insertions, 2 deletions
diff --git a/src/theory/arrays/theory_arrays.h b/src/theory/arrays/theory_arrays.h
index 363ad16ff..e0f187e33 100644
--- a/src/theory/arrays/theory_arrays.h
+++ b/src/theory/arrays/theory_arrays.h
@@ -249,8 +249,6 @@ class TheoryArrays : public Theory {
// NOTIFICATIONS
/////////////////////////////////////////////////////////////////////////////
- public:
- Node getNextDecisionRequest(unsigned& priority) override;
void presolve() override;
void shutdown() override {}
@@ -455,6 +453,35 @@ class TheoryArrays : public Theory {
/** An equality-engine callback for proof reconstruction */
ArrayProofReconstruction d_proofReconstruction;
+ /**
+ * The decision strategy for the theory of arrays, which calls the
+ * getNextDecisionEngineRequest function below.
+ */
+ class TheoryArraysDecisionStrategy : public DecisionStrategy
+ {
+ public:
+ TheoryArraysDecisionStrategy(TheoryArrays* ta);
+ /** initialize */
+ void initialize() override;
+ /** get next decision request */
+ Node getNextDecisionRequest() override;
+ /** identify */
+ std::string identify() const override;
+
+ private:
+ /** pointer to the theory of arrays */
+ TheoryArrays* d_ta;
+ };
+ /** an instance of the above decision strategy */
+ std::unique_ptr<TheoryArraysDecisionStrategy> d_dstrat;
+ /** get the next decision request
+ *
+ * If the "arrays-eager-index" option is enabled, then whenever a
+ * read-over-write lemma is generated, a decision request is also generated
+ * for the comparison between the indexes that appears in the lemma.
+ */
+ Node getNextDecisionRequest();
+
public:
eq::EqualityEngine* getEqualityEngine() override { return &d_equalityEngine; }
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback