summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorClark Barrett <barrett@cs.nyu.edu>2013-03-06 14:17:43 -0500
committerClark Barrett <barrett@cs.nyu.edu>2013-03-06 14:18:43 -0500
commit9817df56827b4ee0ee67a33361f8619c5d1df6ed (patch)
tree7b50136f2db6a2ff81c9cbcd97cf35ec7d87e4c4 /src
parent44d9a7c29f565dbba0baea3f9df23d6d3e5bd74f (diff)
Best heuristics for handling decision requests from arrays
Diffstat (limited to 'src')
-rw-r--r--src/theory/arrays/theory_arrays.cpp6
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 {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback