diff options
Diffstat (limited to 'src/theory/quantifiers/macros.cpp')
-rw-r--r-- | src/theory/quantifiers/macros.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/theory/quantifiers/macros.cpp b/src/theory/quantifiers/macros.cpp index 96d682a77..636bfdb59 100644 --- a/src/theory/quantifiers/macros.cpp +++ b/src/theory/quantifiers/macros.cpp @@ -419,13 +419,16 @@ Node QuantifierMacros::simplify( Node n ){ std::vector< Node > cond; TypeNode tno = op.getType(); for( unsigned i=0; i<children.size(); i++ ){ - if( !TermDb::getEnsureTypeCondition( children[i], tno[i], cond ) ){ + Node etc = TypeNode::getEnsureTypeCondition( children[i], tno[i] ); + if( etc.isNull() ){ //if this does fail, we are incomplete, since we are eliminating quantified formula corresponding to op, // and not ensuring it applies to n when its types are correct. //however, this should never fail: we never process types for which we cannot constuct conditions that ensure correct types, e.g. (is-int t). Assert( false ); success = false; break; + }else if( !etc.isConst() ){ + cond.push_back( etc ); } } if( success ){ |