-
Notifications
You must be signed in to change notification settings - Fork 7
Description
We use η-expansion in PTS. Is this safe? Apparently, there are some strange issues with η-reduction in PTSs.
Hindley's and Seldin's "Lambda-Calculus and Combinators: an Introduction" discusses some problems with η-reduction in PTSs — apparently, it breaks Church-Rosser, though in a strange way (in the given example, it looks as if the two distinct normal forms should still be definitionally equal).
Warning 13.63 (βη-conversion) In simply typed λ-calculus it was easy to add a rule for η-conversion, as in Definition 10.16. But in a PTS the syntax of terms is more complex, and if η-reductions were allowed, the Church–Rosser theorem would fail. This is shown by the following example, due to Nederpelt [NGdV94, Chapter C.3, Section 7]. Let x, y, and z be distinct variables, and consider the term λx : y . (λx : z . x)x. We would have
λx:y.(λx:z.x)x →β λx:y.x
by contracting the β-redex (λx:z . x)x, and we would also have
λx:y.(λx:z.x)x →η λx:z.x
by contracting the η-redex λx:y . (λx:z . x)x. But λx:y . x and λx:z . x are both irreducible, and they are distinct normal forms.
What the remark doesn't point out (though the source might) is that the term can only typecheck (AFAICS) in a context where y = z (which isn't possible, since y and z are variables — the PTS syntax for contexts can't contain equalities, especially used "extensionally" as here). Otherwise, the original term is not well-typed. Moreover, the remark should be discussing typed reduction (I thought), since it appears after discussing of Church-style typing (where pseudo-/pre-terms are only terms if they typecheck).