summaryrefslogtreecommitdiff
path: root/src/theory/quantifiers/instantiation_engine.cpp
diff options
context:
space:
mode:
authorajreynol <andrew.j.reynolds@gmail.com>2015-10-26 11:26:13 +0100
committerajreynol <andrew.j.reynolds@gmail.com>2015-10-26 11:26:22 +0100
commitaaf1bbbdc6e42910e07db64441885ee3476d86df (patch)
treea6abf77b1b404e8183a44c78f733a0c93f2213fe /src/theory/quantifiers/instantiation_engine.cpp
parent95992fb5e9fb971f2319e1302b83ac85098e0438 (diff)
Extend counterexample-guided instantiation to extended theory of Int/Real, mixed Int/Real. Bug fixes. Updates to quantifiers rewriter.
Diffstat (limited to 'src/theory/quantifiers/instantiation_engine.cpp')
-rw-r--r--src/theory/quantifiers/instantiation_engine.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/theory/quantifiers/instantiation_engine.cpp b/src/theory/quantifiers/instantiation_engine.cpp
index b32f27d8f..f5333dbe1 100644
--- a/src/theory/quantifiers/instantiation_engine.cpp
+++ b/src/theory/quantifiers/instantiation_engine.cpp
@@ -56,7 +56,7 @@ void InstantiationEngine::finishInit(){
d_i_ag = new InstStrategyAutoGenTriggers( d_quantEngine );
d_instStrategies.push_back( d_i_ag );
}
-
+
//counterexample-based quantifier instantiation
if( options::cbqi() ){
if( options::cbqiSplx() ){
@@ -164,7 +164,7 @@ void InstantiationEngine::check( Theory::Effort e, unsigned quant_e ){
for( int i=0; i<d_quantEngine->getModel()->getNumAssertedQuantifiers(); i++ ){
Node q = d_quantEngine->getModel()->getAssertedQuantifier( i );
if( d_quantEngine->hasOwnership( q, this ) && d_quantEngine->getModel()->isQuantifierActive( q ) ){
- if( !options::cbqi() || !TermDb::hasInstConstAttr(q) ){
+ if( !options::cbqi() || !TermDb::hasInstConstAttr( q ) ){
quantActive = true;
}
d_quants.push_back( q );
@@ -198,6 +198,15 @@ bool InstantiationEngine::checkComplete() {
}
}
+
+void InstantiationEngine::preRegisterQuantifier( Node q ) {
+ if( options::cbqi() ){
+ if( d_i_cbqi->doCbqi( q ) ){
+ d_quantEngine->setOwner( q, this );
+ }
+ }
+}
+
void InstantiationEngine::registerQuantifier( Node f ){
if( d_quantEngine->hasOwnership( f, this ) ){
for( unsigned i=0; i<d_instStrategies.size(); ++i ){
@@ -230,7 +239,6 @@ void InstantiationEngine::registerQuantifier( Node f ){
}
void InstantiationEngine::assertNode( Node f ){
-
}
bool InstantiationEngine::isIncomplete( Node q ) {
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback