summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>2018-04-12 19:59:59 -0500
committerGitHub <noreply@github.com>2018-04-12 19:59:59 -0500
commit781bfd65daec2932b7836259b3484ac500edb46a (patch)
tree1135ddd322e82b0b2035ad8f392df96c2dedc72b /src
parentaf135825a60f917711d133828c9fdd6831e2142d (diff)
Fix alpha equivalence for higher-order (#1769)
Diffstat (limited to 'src')
-rw-r--r--src/theory/quantifiers/term_util.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/theory/quantifiers/term_util.cpp b/src/theory/quantifiers/term_util.cpp
index 9aa4561ce..a8abd41eb 100644
--- a/src/theory/quantifiers/term_util.cpp
+++ b/src/theory/quantifiers/term_util.cpp
@@ -452,8 +452,13 @@ Node TermUtil::getCanonicalTerm( TNode n, std::map< TypeNode, unsigned >& var_co
cchildren[i] = getCanonicalTerm( cchildren[i], var_count, subs, apply_torder, visited );
}
if( n.getMetaKind() == kind::metakind::PARAMETERIZED ){
- Trace("canon-term-debug") << "Insert operator " << n.getOperator() << std::endl;
- cchildren.insert( cchildren.begin(), n.getOperator() );
+ Node op = n.getOperator();
+ if (options::ufHo())
+ {
+ op = getCanonicalTerm(op, var_count, subs, apply_torder, visited);
+ }
+ Trace("canon-term-debug") << "Insert operator " << op << std::endl;
+ cchildren.insert(cchildren.begin(), op);
}
Trace("canon-term-debug") << "...constructing for " << n << "." << std::endl;
Node ret = NodeManager::currentNM()->mkNode( n.getKind(), cchildren );
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback