diff options
author | Morgan Deters <mdeters@cs.nyu.edu> | 2013-02-12 23:04:53 -0500 |
---|---|---|
committer | Morgan Deters <mdeters@cs.nyu.edu> | 2013-02-12 23:04:53 -0500 |
commit | e9d8ae34db4c4a8161cc1abdfb225c3e9e2bd9ee (patch) | |
tree | bf60d8f3f27f3c08bf47b01ab72895794d819e4f /src | |
parent | 3162008b628174bd8bce70b336ce928e88ae07c6 (diff) |
Fix a preprocessing performance issue.
Diffstat (limited to 'src')
-rw-r--r-- | src/smt/smt_engine.cpp | 11 | ||||
-rw-r--r-- | src/theory/theory_engine.cpp | 10 |
2 files changed, 11 insertions, 10 deletions
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp index 2ba1ae7a9..ca65ab1df 100644 --- a/src/smt/smt_engine.cpp +++ b/src/smt/smt_engine.cpp @@ -1753,6 +1753,17 @@ bool SmtEnginePrivate::nonClausalSimplify() { // Resize the learnt d_nonClausalLearnedLiterals.resize(j); + //must add substitutions to model + TheoryModel* m = d_smt.d_theoryEngine->getModel(); + if(m != NULL) { + for( SubstitutionMap::iterator pos = d_topLevelSubstitutions.begin(); pos != d_topLevelSubstitutions.end(); ++pos) { + Node n = (*pos).first; + Node v = (*pos).second; + Trace("model") << "Add substitution : " << n << " " << v << std::endl; + m->addSubstitution( n, v ); + } + } + hash_set<TNode, TNodeHashFunction> s; for (unsigned i = 0; i < d_assertionsToPreprocess.size(); ++ i) { Node assertion = d_assertionsToPreprocess[i]; diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp index efbc42ebf..f85a5f3cd 100644 --- a/src/theory/theory_engine.cpp +++ b/src/theory/theory_engine.cpp @@ -728,16 +728,6 @@ theory::Theory::PPAssertStatus TheoryEngine::solve(TNode literal, SubstitutionMa Theory::PPAssertStatus solveStatus = theoryOf(atom)->ppAssert(literal, substitutionOut); Trace("theory::solve") << "TheoryEngine::solve(" << literal << ") => " << solveStatus << endl; - //must add substitutions to model - theory::TheoryModel* m = getModel(); - if( m ){ - for( SubstitutionMap::iterator pos = substitutionOut.begin(); pos != substitutionOut.end(); ++pos) { - Node n = (*pos).first; - Node v = (*pos).second; - Trace("model") << "Add substitution : " << n << " " << v << std::endl; - m->addSubstitution( n, v ); - } - } return solveStatus; } |