diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2015-11-11 10:54:32 +0100 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2015-11-11 10:54:32 +0100 |
commit | 97470da31e14104f807fb33b2b3423e583e10726 (patch) | |
tree | 516e79d981cfaa0c59c6b51981ebb2fcd4c1a698 /src/theory/quantifiers_engine.cpp | |
parent | 81dca680f6c88d10b56a0ed065d470d907766e21 (diff) |
Minor fixes to cbqi, purify-quant. Better error checking in addInstantiation.
Diffstat (limited to 'src/theory/quantifiers_engine.cpp')
-rw-r--r-- | src/theory/quantifiers_engine.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/theory/quantifiers_engine.cpp b/src/theory/quantifiers_engine.cpp index 990d3389e..584295c17 100644 --- a/src/theory/quantifiers_engine.cpp +++ b/src/theory/quantifiers_engine.cpp @@ -709,7 +709,16 @@ bool QuantifiersEngine::addInstantiationInternal( Node f, std::vector< Node >& v Trace("inst") << std::endl; } if( options::cbqi() ){ - if( quantifiers::TermDb::getInstConstAttr(terms[i])==f ){ + Node icf = quantifiers::TermDb::getInstConstAttr(terms[i]); + bool bad_inst = false; + if( !icf.isNull() ){ + if( icf==f ){ + bad_inst = true; + }else{ + bad_inst = quantifiers::TermDb::containsTerms( terms[i], d_term_db->d_inst_constants[f] ); + } + } + if( bad_inst ){ Trace("inst")<< "***& Bad Instantiate " << f << " with " << std::endl; for( unsigned i=0; i<terms.size(); i++ ){ Trace("inst") << " " << terms[i] << std::endl; |