diff options
author | Tim King <taking@cs.nyu.edu> | 2015-06-13 23:14:46 +0200 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2015-06-13 23:14:56 +0200 |
commit | 56827afd6b3ba99fd72b927f29e98d80dbd7c2ae (patch) | |
tree | 16aee05b241e4664b2612eac2e222f99004c21b7 | |
parent | eafa74ff02262cd80eefec1ce627b569791b7729 (diff) |
Restricting TheoryArith to computeRelevantTerms.
-rw-r--r-- | src/theory/arith/theory_arith_private.cpp | 7 |
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); |