From 157a2ed349418611302476dce79fced1d95a4ecc Mon Sep 17 00:00:00 2001 From: ajreynol Date: Thu, 10 Dec 2015 13:32:42 +0100 Subject: [PATCH] Add option fmf-empty-sorts. --- src/theory/quantifiers/model_engine.cpp | 11 ++++++++++- src/theory/quantifiers/options | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/theory/quantifiers/model_engine.cpp b/src/theory/quantifiers/model_engine.cpp index a3a18cf30..f5a063eb8 100644 --- a/src/theory/quantifiers/model_engine.cpp +++ b/src/theory/quantifiers/model_engine.cpp @@ -227,7 +227,16 @@ bool ModelEngine::considerQuantifiedFormula( Node q ) { if( !d_quantEngine->getModelBuilder()->isQuantifierActive( q ) ){ //!d_quantEngine->getModel()->isQuantifierActive( q ); return false; }else{ - if( options::fmfFunWellDefinedRelevant() ){ + if( options::fmfEmptySorts() ){ + for( unsigned i=0; igetModel()->d_rep_set.getNumRelevantGroundReps( tn )==0 ){ + Trace("model-engine-debug") << "Empty domain quantified formula : " << q << std::endl; + return false; + } + } + }else if( options::fmfFunWellDefinedRelevant() ){ if( q[0].getNumChildren()==1 ){ TypeNode tn = q[0][0].getType(); if( tn.getAttribute(AbsTypeFunDefAttribute()) ){ diff --git a/src/theory/quantifiers/options b/src/theory/quantifiers/options index be6f71c39..065da0d5a 100644 --- a/src/theory/quantifiers/options +++ b/src/theory/quantifiers/options @@ -127,6 +127,8 @@ option fmfFunWellDefined --fmf-fun bool :default false :read-write find models for recursively defined functions, assumes functions are admissible option fmfFunWellDefinedRelevant --fmf-fun-rlv bool :default false find models for recursively defined functions, assumes functions are admissible, allows empty type when function is irrelevant +option fmfEmptySorts --fmf-empty-sorts bool :default false + allow finite model finding to assume sorts that do not occur in ground assertions are empty option mbqiMode --mbqi=MODE CVC4::theory::quantifiers::MbqiMode :read-write :default CVC4::theory::quantifiers::MBQI_FMC :include "theory/quantifiers/modes.h" :handler CVC4::theory::quantifiers::stringToMbqiMode :handler-include "theory/quantifiers/options_handlers.h" :predicate CVC4::theory::quantifiers::checkMbqiMode :predicate-include "theory/quantifiers/options_handlers.h" choose mode for model-based quantifier instantiation -- 2.30.2