28 Apr 2012 00:13
Re: [TYPES] Is naive freshness adequate to avoid capture?
[ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ] All residual (non-renaming) beta-steps are enabled for fresh terms, i.e., all beta-reductions of redexes that are not newly created with respect to the fresh term we start from have enabled renaming-free substitutions. This follows from (what Vincent van Oostrom once told me is called) Hyland's Disjointness Property: within beta-residual theory, two descendants of a given redex are disjoint, i.e., neither contains the other. Theorem 2.17 in my PhD thesis (The primitive proof of the lambda-calculus) shows that any sequence of residual beta-steps from a fresh term can be residually-completed. The setting of the result is the marked lambda-calculus, with a marked and an unmarked application constructor and only (renaming-free) beta-reduction for the former kind. Residual completion is the (partial) function that attempts to contract all marked redexes inside-out. Hope this help with the slightly bigger picture, Rene On 4/27/12 8:14 PM, Philip Wadler wrote: > [ The Types Forum, http://lists.seas.upenn.edu/mailman/listinfo/types-list ] > > Say that a lambda term is 'fresh' if each lambda abstraction binds a > distinct variable. For instance, (\x.(\y.\z.y)x) is fresh, but > (\x.(\y.\x.y)x) is not. > > Consider lambda terms without the alpha rule, where capture avoiding > substitution is a partial function. For instance, [x/y](\z.y) is(Continue reading)
RSS Feed