Skip to content

Normalization, eta-conversion and Church-Rosser #141

@Blaisorblade

Description

@Blaisorblade

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions