summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-06-09 11:45:14 +0200
committerajreynol <andrew.j.reynolds@gmail.com>2015-06-09 11:45:14 +0200
commit3fbe87912dbffe70cf01fdf0b4652960998ea480 (patch)
tree252c48277f8d2946823d80610c2065148fc8422e /src
parent591649f4631e348b65b61d3f1f4ccfe1f6baf7cc (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.cpp8
-rw-r--r--src/theory/quantifiers/bounded_integers.cpp1
-rw-r--r--src/theory/quantifiers/quantifiers_rewriter.cpp2
-rw-r--r--src/theory/quantifiers_engine.cpp1
-rw-r--r--src/theory/rep_set.cpp4
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() );
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback