From 56827afd6b3ba99fd72b927f29e98d80dbd7c2ae Mon Sep 17 00:00:00 2001 From: Tim King Date: Sat, 13 Jun 2015 23:14:46 +0200 Subject: [PATCH] Restricting TheoryArith to computeRelevantTerms. --- src/theory/arith/theory_arith_private.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) 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 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); -- 2.30.2