* Ryan Ingram ryani.s...@gmail.com [2009-03-14 11:36:33-0700]
For the second case you might be able to come up with a commutative
hash-combiner function for and ||.
What a beautiful idea! I wish I thought of it myself.
For the lambda-term situation, I can think of a couple ways to hash
that
Are there some known ways to define hashing (or any other) functions over
equivalence classes? I.e.
a ~ b = hash(a) == hash(b)
where (~) is some equivalence relation. For example, you might want to
hash lambda terms modulo alpha-equivalence or hash logical terms with
respect to commutativity
For the second case you might be able to come up with a commutative
hash-combiner function for and ||.
For the lambda-term situation, I can think of a couple ways to hash
that give what you want.
(1) Ignore variable names altogether while hashing; this gives you
what you want but has the