diff options
author | ajreynol <andrew.j.reynolds@gmail.com> | 2015-06-09 11:45:14 +0200 |
---|---|---|
committer | ajreynol <andrew.j.reynolds@gmail.com> | 2015-06-09 11:45:14 +0200 |
commit | 3fbe87912dbffe70cf01fdf0b4652960998ea480 (patch) | |
tree | 252c48277f8d2946823d80610c2065148fc8422e /src | |
parent | 591649f4631e348b65b61d3f1f4ccfe1f6baf7cc (diff) |
Bug fix instantiations for fmf-bound-int. Disable nested pre-skolemization for non-UF logics. Update SMT COMP scripts accordingly.
Diffstat (limited to 'src')
-rw-r--r-- | src/smt/smt_engine.cpp | 8 | ||||
-rw-r--r-- | src/theory/quantifiers/bounded_integers.cpp | 1 | ||||
-rw-r--r-- | src/theory/quantifiers/quantifiers_rewriter.cpp | 2 | ||||
-rw-r--r-- | src/theory/quantifiers_engine.cpp | 1 | ||||
-rw-r--r-- | src/theory/rep_set.cpp | 4 |
5 files changed, 13 insertions, 3 deletions
diff --git a/src/smt/smt_engine.cpp b/src/smt/smt_engine.cpp index 9fe3a115d..5d5bb93dc 100644 --- a/src/smt/smt_engine.cpp +++ b/src/smt/smt_engine.cpp @@ -1480,7 +1480,13 @@ void SmtEngine::setDefaults() { options::conjectureGen.set( false ); } } - + //can't pre-skolemize nested quantifiers without UF theory + if( !d_logic.isTheoryEnabled(THEORY_UF) && options::preSkolemQuant() ){ + if( !options::preSkolemQuantNested.wasSetByUser() ){ + options::preSkolemQuantNested.set( false ); + } + } + //until bugs 371,431 are fixed if( ! options::minisatUseElim.wasSetByUser()){ if( d_logic.isQuantified() || options::produceModels() || options::produceAssignments() || options::checkModels() ){ diff --git a/src/theory/quantifiers/bounded_integers.cpp b/src/theory/quantifiers/bounded_integers.cpp index 0ba8008aa..2fd595a9f 100644 --- a/src/theory/quantifiers/bounded_integers.cpp +++ b/src/theory/quantifiers/bounded_integers.cpp @@ -372,6 +372,7 @@ Node BoundedIntegers::getNextDecisionRequest() { } } } + Trace("bound-int-dec-debug") << "No decision request." << std::endl; return Node::null(); } diff --git a/src/theory/quantifiers/quantifiers_rewriter.cpp b/src/theory/quantifiers/quantifiers_rewriter.cpp index 991043157..0afdece82 100644 --- a/src/theory/quantifiers/quantifiers_rewriter.cpp +++ b/src/theory/quantifiers/quantifiers_rewriter.cpp @@ -1210,7 +1210,7 @@ Node QuantifiersRewriter::preSkolemizeQuantifiers( Node n, bool polarity, std::v return nn.negate(); }else if( n.getKind()==kind::FORALL ){ if( polarity ){ - if( options::preSkolemQuant() && ( options::preSkolemQuantNested() || fvs.empty() ) ){ + if( options::preSkolemQuant() && options::preSkolemQuantNested() ){ vector< Node > children; children.push_back( n[0] ); //add children to current scope diff --git a/src/theory/quantifiers_engine.cpp b/src/theory/quantifiers_engine.cpp index 6a4998016..88aea6c75 100644 --- a/src/theory/quantifiers_engine.cpp +++ b/src/theory/quantifiers_engine.cpp @@ -770,6 +770,7 @@ bool QuantifiersEngine::addInstantiation( Node f, std::vector< Node >& terms, bo getOutputChannel().safePoint(options::quantifierStep()); Assert( terms.size()==f[0].getNumChildren() ); + Trace("inst-add-debug") << "For quantified formula " << f << "..." << std::endl; Trace("inst-add-debug") << "Add instantiation: "; for( unsigned i=0; i<terms.size(); i++ ){ if( i>0 ) Trace("inst-add-debug") << ", "; diff --git a/src/theory/rep_set.cpp b/src/theory/rep_set.cpp index 5580dc3d7..4ab8df72f 100644 --- a/src/theory/rep_set.cpp +++ b/src/theory/rep_set.cpp @@ -370,7 +370,9 @@ bool RepSetIterator::isFinished(){ } Node RepSetIterator::getTerm( int i ){ - int index = d_index_order[i]; + Trace("rsi-debug") << "rsi : get term " << i << ", index order = " << d_index_order[i] << std::endl; + //int index = d_index_order[i]; + int index = i; if( d_enum_type[index]==ENUM_DOMAIN_ELEMENTS ){ TypeNode tn = d_types[index]; Assert( d_rep_set->d_type_reps.find( tn )!=d_rep_set->d_type_reps.end() ); |