summaryrefslogtreecommitdiff
path: root/src/smt/smt_engine.cpp
diff options
context:
space:
mode:
authorJustin Xu <justinx@barrett5.stanford.edu>2017-07-24 15:15:57 -0700
committerJustin Xu <justinx@barrett5.stanford.edu>2017-07-24 15:52:45 -0700
commite776d5546ef3d16822998e9857bae1f72c05ead3 (patch)
tree720e06c3044e7f2c34e24d590f840cbf585624b5 /src/smt/smt_engine.cpp
parent1880e0ecd5ffeab77f0a1dcdea1c78b8c5eabcd4 (diff)
CNFPass and RemoveITE and TheoryPreprocess
Diffstat (limited to 'src/smt/smt_engine.cpp')
-rw-r--r--src/smt/smt_engine.cpp36
1 files changed, 11 insertions, 25 deletions
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp
index f43e6533e..2a7015046 100644
--- a/src/smt/smt_engine.cpp
+++ b/src/smt/smt_engine.cpp
@@ -3669,20 +3669,12 @@ void SmtEnginePrivate::processAssertions() {
if(options::doStaticLearning()) {
preproc::DoStaticLearningPass pass(d_resourceManager, d_smt.d_theoryEngine, &d_smt, d_smt.d_stats->d_staticLearningTime);
pass.apply(&d_assertions);
+ }
-/* Trace("smt-proc") << "SmtEnginePrivate::processAssertions() : pre-static-learning" << endl;
- // Perform static learning
- Chat() << "doing static learning..." << endl;
- Trace("simplify") << "SmtEnginePrivate::simplify(): "
- << "performing static learning" << endl;
- staticLearning();
- Trace("smt-proc") << "SmtEnginePrivate::processAssertions() : post-static-learning" << endl;*/
- }
dumpAssertions("post-static-learning", d_assertions);
Debug("smt") << " d_assertions : " << d_assertions.size() << endl;
-
Trace("smt-proc") << "SmtEnginePrivate::processAssertions() : pre-ite-removal" << endl;
dumpAssertions("pre-ite-removal", d_assertions);
{
@@ -3690,7 +3682,10 @@ void SmtEnginePrivate::processAssertions() {
TimerStat::CodeTimer codeTimer(d_smt.d_stats->d_iteRemovalTime);
// Remove ITEs, updating d_iteSkolemMap
d_smt.d_stats->d_numAssertionsPre += d_assertions.size();
- removeITEs();
+
+ preproc::RemoveITEPass pass(d_resourceManager, &d_smt, &d_iteSkolemMap, &d_iteRemover);
+ pass.apply(&d_assertions);
+//removeITEs();
d_smt.d_stats->d_numAssertionsPost += d_assertions.size();
}
Trace("smt-proc") << "SmtEnginePrivate::processAssertions() : post-ite-removal" << endl;
@@ -3794,14 +3789,9 @@ void SmtEnginePrivate::processAssertions() {
Trace("smt-proc") << "SmtEnginePrivate::processAssertions() : pre-theory-preprocessing" << endl;
dumpAssertions("pre-theory-preprocessing", d_assertions);
{
- Chat() << "theory preprocessing..." << endl;
- TimerStat::CodeTimer codeTimer(d_smt.d_stats->d_theoryPreprocessTime);
- // Call the theory preprocessors
- d_smt.d_theoryEngine->preprocessStart();
- for (unsigned i = 0; i < d_assertions.size(); ++ i) {
- d_assertions.replace(i, d_smt.d_theoryEngine->preprocess(d_assertions[i]));
- }
- }
+ preproc::TheoryPreprocessPass pass(d_resourceManager, d_smt.d_theoryEngine, d_smt.d_stats->d_theoryPreprocessTime);
+ pass.apply(&d_assertions);
+ }
Trace("smt-proc") << "SmtEnginePrivate::processAssertions() : post-theory-preprocessing" << endl;
dumpAssertions("post-theory-preprocessing", d_assertions);
@@ -3829,13 +3819,9 @@ void SmtEnginePrivate::processAssertions() {
// Push the formula to SAT
{
- Chat() << "converting to CNF..." << endl;
- TimerStat::CodeTimer codeTimer(d_smt.d_stats->d_cnfConversionTime);
- for (unsigned i = 0; i < d_assertions.size(); ++ i) {
- Chat() << "+ " << d_assertions[i] << std::endl;
- d_smt.d_propEngine->assertFormula(d_assertions[i]);
- }
- }
+ preproc::CNFPass pass(d_resourceManager, d_smt.d_propEngine, d_smt.d_stats->d_cnfConversionTime);
+ pass.apply(&d_assertions);
+ }
d_assertionsProcessed = true;
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback