diff options
author | Tim King <taking@cs.nyu.edu> | 2015-06-14 00:51:19 +0200 |
---|---|---|
committer | Tim King <taking@cs.nyu.edu> | 2015-06-14 00:51:30 +0200 |
commit | d101e7fed051685673c13317cb45166ba5ef7798 (patch) | |
tree | db2b64bba30ef2209a97b12f410a27c0a5e88786 /src/theory/theory_engine.cpp | |
parent | 16955c76a25a8030dc24840e74d0ab24d54f0a35 (diff) |
Turning off aggressive arith ite simplifications during incremental solving.
Diffstat (limited to 'src/theory/theory_engine.cpp')
-rw-r--r-- | src/theory/theory_engine.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/theory/theory_engine.cpp b/src/theory/theory_engine.cpp index 8d36d9e05..d34f0cd12 100644 --- a/src/theory/theory_engine.cpp +++ b/src/theory/theory_engine.cpp @@ -1530,7 +1530,12 @@ void TheoryEngine::mkAckermanizationAsssertions(std::vector<Node>& assertions) { Node TheoryEngine::ppSimpITE(TNode assertion) { - if(!d_iteRemover.containsTermITE(assertion)){ + if(options::incrementalSolving()){ + // disabling the d_iteUtilities->simpITE(assertion) pass for incremental solving. + // This is paranoia. We do not actually know of a bug coming from this. + // TODO re-enable + return assertion; + } else if(!d_iteRemover.containsTermITE(assertion)){ return assertion; }else{ @@ -1575,7 +1580,8 @@ bool TheoryEngine::donePPSimpITE(std::vector<Node>& assertions){ } // Do theory specific preprocessing passes - if(d_logicInfo.isTheoryEnabled(theory::THEORY_ARITH)){ + if(d_logicInfo.isTheoryEnabled(theory::THEORY_ARITH) + && !options::incrementalSolving() ){ if(!simpDidALotOfWork){ ContainsTermITEVisitor& contains = *d_iteRemover.getContainsVisitor(); arith::ArithIteUtils aiteu(contains, d_userContext, getModel()); |