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
```