diff options
author | Clark Barrett <barrett@cs.nyu.edu> | 2013-03-06 14:17:43 -0500 |
---|---|---|
committer | Clark Barrett <barrett@cs.nyu.edu> | 2013-03-06 14:18:43 -0500 |
commit | 9817df56827b4ee0ee67a33361f8619c5d1df6ed (patch) | |
tree | 7b50136f2db6a2ff81c9cbcd97cf35ec7d87e4c4 /src/theory | |
parent | 44d9a7c29f565dbba0baea3f9df23d6d3e5bd74f (diff) |
Best heuristics for handling decision requests from arrays
Diffstat (limited to 'src/theory')
-rw-r--r-- | src/theory/arrays/theory_arrays.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/theory/arrays/theory_arrays.cpp b/src/theory/arrays/theory_arrays.cpp index aabd3a62d..dcf4813fc 100644 --- a/src/theory/arrays/theory_arrays.cpp +++ b/src/theory/arrays/theory_arrays.cpp @@ -1324,7 +1324,9 @@ void TheoryArrays::queueRowLemma(RowLemmaType lem) // Prefer equality between indexes so as not to introduce new read terms if (d_eagerIndexSplitting && !bothExist && !d_equalityEngine.areDisequal(i,j, false)) { - d_decisionRequests.push(i.eqNode(j)); + Node i_eq_j = d_valuation.ensureLiteral(i.eqNode(j)); + getOutputChannel().requirePhase(i_eq_j, true); + d_decisionRequests.push(i_eq_j); } // TODO: maybe add triggers here @@ -1392,7 +1394,7 @@ void TheoryArrays::queueRowLemma(RowLemmaType lem) Node TheoryArrays::getNextDecisionRequest() { if(! d_decisionRequests.empty()) { - Node n = d_valuation.ensureLiteral(d_decisionRequests.front()); + Node n = d_decisionRequests.front(); d_decisionRequests.pop(); return n; } else { |