summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers_engine.cpp
diff options
context:
space:
mode:
authorajreynol <reynolds@larapc05.epfl.ch>2014-04-28 17:34:00 +0200
committerajreynol <reynolds@larapc05.epfl.ch>2014-04-28 17:34:00 +0200
commit9b97c9144875e072da4098f102f8989be26e5cdf (patch)
tree2f95fbd431085345784a7b4e0c7c569d3a428db3 /src/theory/quantifiers_engine.cpp
parent698f5a09b1c0177abfd2eaa2b110de100fd108ef (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.cpp8
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 ){
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback