summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim King <taking@cs.nyu.edu>2015-06-13 23:14:46 +0200
committerTim King <taking@cs.nyu.edu>2015-06-13 23:14:56 +0200
commit56827afd6b3ba99fd72b927f29e98d80dbd7c2ae (patch)
tree16aee05b241e4664b2612eac2e222f99004c21b7
parenteafa74ff02262cd80eefec1ce627b569791b7729 (diff)
Restricting TheoryArith to computeRelevantTerms.
-rw-r--r--src/theory/arith/theory_arith_private.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/theory/arith/theory_arith_private.cpp b/src/theory/arith/theory_arith_private.cpp
index 786499bf0..616656408 100644
--- a/src/theory/arith/theory_arith_private.cpp
+++ b/src/theory/arith/theory_arith_private.cpp
@@ -4180,6 +4180,9 @@ void TheoryArithPrivate::collectModelInfo( TheoryModel* m, bool fullModel ){
Debug("arith::collectModelInfo") << "collectModelInfo() begin " << endl;
+ std::set<Node> termSet;
+ d_containing.computeRelevantTerms(termSet);
+
// Delta lasts at least the duration of the function call
const Rational& delta = d_partialModel.getDelta();
@@ -4194,7 +4197,9 @@ void TheoryArithPrivate::collectModelInfo( TheoryModel* m, bool fullModel ){
if(!isAuxiliaryVariable(v)){
Node term = d_partialModel.asNode(v);
- if(theoryOf(term) == THEORY_ARITH || shared.find(term) != shared.end()){
+ if((theoryOf(term) == THEORY_ARITH || shared.find(term) != shared.end())
+ && termSet.find(term) != termSet.end()){
+
const DeltaRational& mod = d_partialModel.getAssignment(v);
Rational qmodel = mod.substituteDelta(delta);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback