From: Morgan Deters Date: Fri, 21 Feb 2014 22:15:43 +0000 (-0500) Subject: No diamond-breaking under quantifiers (resolves bug #550). X-Git-Tag: cvc5-1.0.0~6987^2~7 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a8efcd91a8f7dc107355f347996fb8dd3ba7e74a;p=cvc5.git No diamond-breaking under quantifiers (resolves bug #550). --- diff --git a/src/theory/uf/theory_uf.cpp b/src/theory/uf/theory_uf.cpp index 1045c5a24..2bce77451 100644 --- a/src/theory/uf/theory_uf.cpp +++ b/src/theory/uf/theory_uf.cpp @@ -243,6 +243,13 @@ void TheoryUF::ppStaticLearn(TNode n, NodeBuilder<>& learned) { while(!workList.empty()) { n = workList.back(); + if(n.getKind() == kind::FORALL || n.getKind() == kind::EXISTS) { + // unsafe to go under quantifiers; we might pull bound vars out of scope! + processed.insert(n); + workList.pop_back(); + continue; + } + bool unprocessedChildren = false; for(TNode::iterator i = n.begin(), iend = n.end(); i != iend; ++i) { if(processed.find(*i) == processed.end()) {