Summary: Equations of the form `a = b` where `a` is a proper subterm of `b` are possible when uninterpreted functions are involved. Internally, Equality does not eagerly substitute `b` for `a`, but external clients can repeatedly `Equality.normalize` terms and thereby incrementally blow up the sizes of terms. This diff uses the heights of uninterpreted terms to choose equality class representatives to avoid such blow-ups, by orienting equations so that tall terms are represented by short terms, so that repeated normalization cannot increase term height indefinitely. Reviewed By: jvillard Differential Revision: D20785632 fbshipit-source-id: ff4c5bacdmaster
parent
6c03d88cf7
commit
7b33996072
Loading…
Reference in new issue