summaryrefslogtreecommitdiff
path: root/src/theory/term_registration_visitor.cpp
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-04-12 12:23:57 -0500
committerGitHub <noreply@github.com>2018-04-12 12:23:57 -0500
commitaf135825a60f917711d133828c9fdd6831e2142d (patch)
tree20e9b46a027b8f8242901964fa360bb849f640df /src/theory/term_registration_visitor.cpp
parent6b5b926f28b66c3812d77fd234e93b9eee03f71f (diff)
Fixes for free variables in assertions (#1762)
Diffstat (limited to 'src/theory/term_registration_visitor.cpp')
-rw-r--r--src/theory/term_registration_visitor.cpp40
1 files changed, 22 insertions, 18 deletions
diff --git a/src/theory/term_registration_visitor.cpp b/src/theory/term_registration_visitor.cpp
index 1e1a2e8e6..eae5578cf 100644
--- a/src/theory/term_registration_visitor.cpp
+++ b/src/theory/term_registration_visitor.cpp
@@ -35,15 +35,17 @@ bool PreRegisterVisitor::alreadyVisited(TNode current, TNode parent) {
Debug("register::internal") << "PreRegisterVisitor::alreadyVisited(" << current << "," << parent << ")" << std::endl;
- if( ( parent.getKind() == kind::FORALL ||
- parent.getKind() == kind::EXISTS ||
- parent.getKind() == kind::REWRITE_RULE ||
- parent.getKind() == kind::SEP_STAR ||
- parent.getKind() == kind::SEP_WAND ||
- ( parent.getKind() == kind::SEP_LABEL && current.getType().isBoolean() )
- // parent.getKind() == kind::CARDINALITY_CONSTRAINT
- ) &&
- current != parent ) {
+ if ((parent.getKind() == kind::FORALL || parent.getKind() == kind::EXISTS
+ || parent.getKind() == kind::LAMBDA
+ || parent.getKind() == kind::CHOICE
+ || parent.getKind() == kind::REWRITE_RULE
+ || parent.getKind() == kind::SEP_STAR
+ || parent.getKind() == kind::SEP_WAND
+ || (parent.getKind() == kind::SEP_LABEL && current.getType().isBoolean())
+ // parent.getKind() == kind::CARDINALITY_CONSTRAINT
+ )
+ && current != parent)
+ {
Debug("register::internal") << "quantifier:true" << std::endl;
return true;
}
@@ -179,15 +181,17 @@ bool SharedTermsVisitor::alreadyVisited(TNode current, TNode parent) const {
Debug("register::internal") << "SharedTermsVisitor::alreadyVisited(" << current << "," << parent << ")" << std::endl;
- if( ( parent.getKind() == kind::FORALL ||
- parent.getKind() == kind::EXISTS ||
- parent.getKind() == kind::REWRITE_RULE ||
- parent.getKind() == kind::SEP_STAR ||
- parent.getKind() == kind::SEP_WAND ||
- ( parent.getKind() == kind::SEP_LABEL && current.getType().isBoolean() )
- // parent.getKind() == kind::CARDINALITY_CONSTRAINT
- ) &&
- current != parent ) {
+ if ((parent.getKind() == kind::FORALL || parent.getKind() == kind::EXISTS
+ || parent.getKind() == kind::LAMBDA
+ || parent.getKind() == kind::CHOICE
+ || parent.getKind() == kind::REWRITE_RULE
+ || parent.getKind() == kind::SEP_STAR
+ || parent.getKind() == kind::SEP_WAND
+ || (parent.getKind() == kind::SEP_LABEL && current.getType().isBoolean())
+ // parent.getKind() == kind::CARDINALITY_CONSTRAINT
+ )
+ && current != parent)
+ {
Debug("register::internal") << "quantifier:true" << std::endl;
return true;
}
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback