diff options
author | ajreynol <reynolds@larapc05.epfl.ch> | 2014-04-28 17:34:00 +0200 |
---|---|---|
committer | ajreynol <reynolds@larapc05.epfl.ch> | 2014-04-28 17:34:00 +0200 |
commit | 9b97c9144875e072da4098f102f8989be26e5cdf (patch) | |
tree | 2f95fbd431085345784a7b4e0c7c569d3a428db3 /src/theory/quantifiers_engine.cpp | |
parent | 698f5a09b1c0177abfd2eaa2b110de100fd108ef (diff) |
Optimizations for datatypes: check for clashes modulo equality. Avoid building model at fullModel=false when possible. Minor cleanup.
Diffstat (limited to 'src/theory/quantifiers_engine.cpp')
-rw-r--r-- | src/theory/quantifiers_engine.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/theory/quantifiers_engine.cpp b/src/theory/quantifiers_engine.cpp index 63697f5e7..1837a34f4 100644 --- a/src/theory/quantifiers_engine.cpp +++ b/src/theory/quantifiers_engine.cpp @@ -166,6 +166,7 @@ void QuantifiersEngine::check( Theory::Effort e ){ Trace("quant-engine") << "Master equality engine not consistent, return." << std::endl; return; } + Trace("quant-engine-debug") << "Resetting modules..." << std::endl; //reset relevant information d_hasAddedLemma = false; d_term_db->reset( e ); @@ -176,6 +177,8 @@ void QuantifiersEngine::check( Theory::Effort e ){ for( int i=0; i<(int)d_modules.size(); i++ ){ d_modules[i]->reset_round( e ); } + Trace("quant-engine-debug") << "Done resetting modules." << std::endl; + if( e==Theory::EFFORT_LAST_CALL ){ //if effort is last call, try to minimize model first if( options::finiteModelFind() ){ @@ -188,14 +191,19 @@ void QuantifiersEngine::check( Theory::Effort e ){ }else if( e==Theory::EFFORT_FULL ){ ++(d_statistics.d_instantiation_rounds); } + Trace("quant-engine-debug") << "Check with modules..." << std::endl; for( int i=0; i<(int)d_modules.size(); i++ ){ + Trace("quant-engine-debug") << "Check " << d_modules[i]->identify().c_str() << "..." << std::endl; d_modules[i]->check( e ); } + Trace("quant-engine-debug") << "Done check with modules." << std::endl; //build the model if not done so already // this happens if no quantifiers are currently asserted and no model-building module is enabled if( e==Theory::EFFORT_LAST_CALL && !d_hasAddedLemma ){ if( options::produceModels() && !d_model->isModelSet() ){ + Trace("quant-engine-debug") << "Build the model..." << std::endl; d_te->getModelBuilder()->buildModel( d_model, true ); + Trace("quant-engine-debug") << "Done building the model." << std::endl; } if( Trace.isOn("inst-per-quant") ){ for( std::map< Node, int >::iterator it = d_total_inst_debug.begin(); it != d_total_inst_debug.end(); ++it ){ |