diff options
author | Morgan Deters <mdeters@cs.nyu.edu> | 2014-02-21 18:16:38 -0500 |
---|---|---|
committer | Morgan Deters <mdeters@cs.nyu.edu> | 2014-02-21 18:16:38 -0500 |
commit | 5ceb5dc2f83d29b27afb578c64a20274fed13c86 (patch) | |
tree | 2479c926dd69592159e5d6ffaf854ef00fb94515 | |
parent | 891c44c99294a7b6a80b2ad3e0ca0e2502b33a9e (diff) | |
parent | a8efcd91a8f7dc107355f347996fb8dd3ba7e74a (diff) |
Merge branch '1.3.x'
-rw-r--r-- | src/theory/uf/theory_uf.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/theory/uf/theory_uf.cpp b/src/theory/uf/theory_uf.cpp index bb948d785..9db32f894 100644 --- a/src/theory/uf/theory_uf.cpp +++ b/src/theory/uf/theory_uf.cpp @@ -256,6 +256,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()) { |