Zulip Chat Archive
Stream: Type theory
Topic: Substitution in Untyped Lambda Calculus
Shashank Pathak (May 03 2022 at 11:56):
Hi. This is not a Lean specific question. I am reading 'Untyped Lambda Calculus' from 'Type Theory and Formal Proofs - An Introduction' by Nederpelt and Geuvers. In it, the authors mention what they mean by the symbol . The call it syntactical identity. What I understand by this is if for two -terms and , then they are same as sequence of symbols.
When they define substitution, they define it recursively, and for the abstraction case they do it like this - if is an α-variant of such that is not a free-variable in . means replacing all free occurrences of in with , and being an -variant means that one can be obtained from the other through -conversion.
My question is that if I consider to be equality as a sequence of symbols, then this definition feels vague, because as there are probably countably many variables, I can choose many s satisfying the condition. Should I treat as something less strict than syntactic identity? Thanks.
Jannis Limperg (May 03 2022 at 12:17):
Indeed (λ y, P)[x := N]
is not uniquely defined by the clause you quote. This hopefully won't matter for the rest of the text because one virtually always considers lambda terms up to α-conversion, i.e. λ x, x
and λ y, y
are treated as the same.
The authors chose this iffy definition to address a technical issue called capture-avoiding substitution.
Shashank Pathak (May 03 2022 at 13:29):
Thanks. So, should I change my notion of equality of lambda terms to them being -convertible, i.e. two lambda terms are equal iff they are -convertible?
Jannis Limperg (May 03 2022 at 13:57):
Depends; there is no one right notion. I would say most of the time you want α-equality, but sometimes you want syntactic equality and I'm sure the book will also talk about αβη-equality.
Shashank Pathak (May 03 2022 at 18:32):
Oh, I see. Many thanks :)
Last updated: Dec 20 2023 at 11:08 UTC