Typed $\lambda$-calculi with one binder

  • Authors:
  • Fairouz Kamareddine

  • Affiliations:
  • School of Mathematical and Computer Sciences, Heriot-Watt University, Riccarton, Edinburgh EH14 4AS, Scotland http://www.macs.hw.ac.uk/~fairouz (e-mail: fairouz@macs.hw.ac.uk)

  • Venue:
  • Journal of Functional Programming
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

Type theory was invented at the beginning of the twentieth century with the aim of avoiding the paradoxes which result from the self-application of functions. $\lambda$-calculus was developed in the early 1930s as a theory of functions. In 1940, Church added type theory to his $\lambda$-calculus giving us the influential simply typed $\lambda$-calculus where types were simple and never created by binders (or abstractors). However, realising the limitations of the simply typed $\lambda$-calculus, in the second half of the twentieth century we saw the birth of new more powerful typed $\lambda$-calculi where types are indeed created by abstraction. Most of these calculi use two binders $\lambda$ and $\Pi$ to distinguish between functions (created by $\lambda$-abstraction) and types (created by $\Pi$-abstraction). Moreover, these calculi allow $\beta$-reduction but not $\Pi$-reduction. That is, $(\pi_{x:A}.B)C \rightarrow B[x:=C]$ is only allowed when $\pi$ is $\lambda$ but not when it is $\Pi$. This means that, modern systems do not allow types to have the same instantiation right as functions. In particular, when $b$ has type $B$, the type of $(\lambda_{x:A}.b)C$ is taken immediately to be $B[x:=C]$ instead of $(\Pi_{x:A}.B)C$. Extensions of modern type systems with both $\Pi$-reduction and type instantiation have appeared in (Kamareddine, Bloo and Nederpelt, 1999; Kamareddine and Nederpelt, 1996; Peyton-Jones and Meijer, 1997). This makes the $\lambda$ and $\Pi$ very similar and hence leads to the obvious question: why not use a unique binder instead of the $\lambda$ and $\Pi$? This makes more sense since already, versions of de Bruijn's Automath unified $\lambda$ and $\Pi$ giving more elegant systems. This paper studies the main properties of type systems with unified $\lambda$ and $\Pi$.