diff options
author | Andrew Reynolds <andrew.j.reynolds@gmail.com> | 2018-04-12 19:59:59 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-12 19:59:59 -0500 |
commit | 781bfd65daec2932b7836259b3484ac500edb46a (patch) | |
tree | 1135ddd322e82b0b2035ad8f392df96c2dedc72b /src | |
parent | af135825a60f917711d133828c9fdd6831e2142d (diff) |
Fix alpha equivalence for higher-order (#1769)
Diffstat (limited to 'src')
-rw-r--r-- | src/theory/quantifiers/term_util.cpp | 9 |
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 ); |