[Haskell-cafe] OT - lamba calculus definition - alpha reduction

Brian Hulley brianh at metamilk.com
Mon May 29 10:05:33 EDT 2006


Dušan Kolář wrote:
>>> [snip]
>>> OK. If we have these two expressions:
>>>  1) (\x.x b x)
>>>  2) (\x.x c x)
>>>
>>> The question is, are they equal? (They are not identical, of
>>> course.) For answer "no", there is a strong argument - there is no
>>> reduction sequence that can make these identical.
>>> On the other hand, their "meaning" expresses the same operation.
>>
>> If b and c are free, then no, they can't be considered equal, and i
>> don't see how you can find a common "meaning" in this case either.
>> Those two are equivalent: (\b.\x.x b x) = (\c.\x.x c x).
>>
> Yes, those of yours are equal of no doubt.
> Those of mine are not, that's even my opinion, on the other hand, I
> was not precise enough in my explanation. Those of mine have the same
> behavior unless you mean something else by variables b and c.

But if the variables are different surely one must assume they *might* be 
bound to different expressions and hence the expressions \x. x b x and \x. x 
c x cannot be considered equivalent.


> Otherwise the behavior is the same, isn't it? If the behavior is the
> same, they can be interchanged and, thus, they are equal...

Perhaps this distinction is between equivalence versus equality under some 
specific model?

Regards, Brian.

-- 
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.

http://www.metamilk.com 



More information about the Haskell-Cafe mailing list