inline bool isClosure() const {
assertTNodeNotExpired();
- return getKind() == kind::LAMBDA ||
- getKind() == kind::FORALL ||
- getKind() == kind::EXISTS ||
- getKind() == kind::REWRITE_RULE;
+ return getKind() == kind::LAMBDA || getKind() == kind::FORALL
+ || getKind() == kind::EXISTS || getKind() == kind::REWRITE_RULE
+ || getKind() == kind::CHOICE;
}
/**
computeRelevantDomainOpCh( rf, n[i] );
}
}
- if( n[i].getKind()!=FORALL ){
+ // do not recurse under nested closures
+ if (!n[i].isClosure())
+ {
bool newHasPol;
bool newPol;
QuantPhaseReq::getPolarity( n, i, hasPol, pol, newHasPol, newPol );