diff options
author | Clark Barrett <barrett@cs.stanford.edu> | 2016-12-02 16:25:26 -0800 |
---|---|---|
committer | Clark Barrett <barrett@cs.stanford.edu> | 2016-12-02 16:28:17 -0800 |
commit | c356e6b4e5aecd6d13e398b361eb15a4dea18d91 (patch) | |
tree | 377b6ce7c65def72cadeb3d47319521b7c3afd1c /src/theory | |
parent | c05da2e3418f71ea7d9d8d59c76dc6773ead608b (diff) |
Fix for bug 734
Diffstat (limited to 'src/theory')
-rw-r--r-- | src/theory/bv/bv_inequality_graph.h | 7 | ||||
-rw-r--r-- | src/theory/bv/bv_subtheory_inequality.h | 4 | ||||
-rw-r--r-- | src/theory/bv/theory_bv.cpp | 2 |
3 files changed, 7 insertions, 6 deletions
diff --git a/src/theory/bv/bv_inequality_graph.h b/src/theory/bv/bv_inequality_graph.h index 923e1d8c5..72f6dbfd1 100644 --- a/src/theory/bv/bv_inequality_graph.h +++ b/src/theory/bv/bv_inequality_graph.h @@ -194,7 +194,8 @@ class InequalityGraph : public context::ContextNotifyObj{ /*** The currently asserted disequalities */ context::CDQueue<TNode> d_disequalities; - NodeSet d_disequalitiesAlreadySplit; + typedef context::CDHashSet<Node, NodeHashFunction> CDNodeSet; + CDNodeSet d_disequalitiesAlreadySplit; Node makeDiseqSplitLemma(TNode diseq); /** Backtracking mechanisms **/ std::vector<std::pair<TermId, InequalityEdge> > d_undoStack; @@ -208,7 +209,7 @@ class InequalityGraph : public context::ContextNotifyObj{ public: - InequalityGraph(context::Context* c, bool s = false) + InequalityGraph(context::Context* c, context::Context* u, bool s = false) : ContextNotifyObj(c), d_ineqNodes(), d_ineqEdges(), @@ -216,7 +217,7 @@ public: d_conflict(), d_modelValues(c), d_disequalities(c), - d_disequalitiesAlreadySplit(), + d_disequalitiesAlreadySplit(u), d_undoStack(), d_undoStackIndex(c) {} diff --git a/src/theory/bv/bv_subtheory_inequality.h b/src/theory/bv/bv_subtheory_inequality.h index 9607c0296..5fbdf74ab 100644 --- a/src/theory/bv/bv_subtheory_inequality.h +++ b/src/theory/bv/bv_subtheory_inequality.h @@ -53,10 +53,10 @@ class InequalitySolver: public SubtheorySolver { bool addInequality(TNode a, TNode b, bool strict, TNode fact); Statistics d_statistics; public: - InequalitySolver(context::Context* c, TheoryBV* bv) + InequalitySolver(context::Context* c, context::Context* u, TheoryBV* bv) : SubtheorySolver(c, bv), d_assertionSet(c), - d_inequalityGraph(c), + d_inequalityGraph(c, u), d_explanations(c), d_isComplete(c, true), d_ineqTerms(), diff --git a/src/theory/bv/theory_bv.cpp b/src/theory/bv/theory_bv.cpp index b6b29410f..2fc5fd096 100644 --- a/src/theory/bv/theory_bv.cpp +++ b/src/theory/bv/theory_bv.cpp @@ -87,7 +87,7 @@ TheoryBV::TheoryBV(context::Context* c, context::UserContext* u, } if (options::bitvectorInequalitySolver()) { - SubtheorySolver* ineq_solver = new InequalitySolver(c, this); + SubtheorySolver* ineq_solver = new InequalitySolver(c, u, this); d_subtheories.push_back(ineq_solver); d_subtheoryMap[SUB_INEQUALITY] = ineq_solver; } |