diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2013-11-26 19:02:21 -0600 |
---|---|---|
committer | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2013-11-26 19:02:32 -0600 |
commit | dd7e0c66cab285c154f59ff27132059c34e09e23 (patch) | |
tree | 73d61f763801d0c115dfe2e2849abdd771918944 /src/theory/quantifiers/model_engine.cpp | |
parent | e45b3b0ff2ffc9bee6f090a4744f6d5eb6da8b72 (diff) |
Bug fix for E-matching select terms, minor fix for bounded integers, bug fix to improve performance of quantifiers rewriter
Diffstat (limited to 'src/theory/quantifiers/model_engine.cpp')
-rw-r--r-- | src/theory/quantifiers/model_engine.cpp | 29 |
1 files changed, 23 insertions, 6 deletions
diff --git a/src/theory/quantifiers/model_engine.cpp b/src/theory/quantifiers/model_engine.cpp index 5ff21bcff..99f5e8df6 100644 --- a/src/theory/quantifiers/model_engine.cpp +++ b/src/theory/quantifiers/model_engine.cpp @@ -125,7 +125,26 @@ void ModelEngine::check( Theory::Effort e ){ } void ModelEngine::registerQuantifier( Node f ){ - + if( Trace.isOn("fmf-warn") ){ + bool canHandle = true; + for( unsigned i=0; i<f[0].getNumChildren(); i++ ){ + TypeNode tn = f[0][i].getType(); + if( !tn.isSort() ){ + if( !tn.getCardinality().isFinite() ){ + if( tn.isInteger() ){ + if( !options::fmfBoundInt() ){ + canHandle = false; + } + }else{ + canHandle = false; + } + } + } + } + if( !canHandle ){ + Trace("fmf-warn") << "Warning : Model Engine : may not be able to answer SAT because of formula : " << f << std::endl; + } + } } void ModelEngine::assertNode( Node f ){ @@ -207,11 +226,9 @@ int ModelEngine::checkModel(){ } } //print debug information - if( Trace.isOn("model-engine") ){ - Trace("model-engine") << "Instantiate axioms : " << ( d_builder->d_considerAxioms ? "yes" : "no" ) << std::endl; - Trace("model-engine") << "Added Lemmas = " << d_addedLemmas << " / " << d_triedLemmas << " / "; - Trace("model-engine") << d_totalLemmas << std::endl; - } + Trace("model-engine-debug") << "Instantiate axioms : " << ( d_builder->d_considerAxioms ? "yes" : "no" ) << std::endl; + Trace("model-engine") << "Added Lemmas = " << d_addedLemmas << " / " << d_triedLemmas << " / "; + Trace("model-engine") << d_totalLemmas << std::endl; d_statistics.d_exh_inst_lemmas += d_addedLemmas; return d_addedLemmas; } |