The fine-structure of lambda calculus

This paper starts by setting the ground for a lambda calculus notation that strongly mirrors the two fundamental operations of term construction, namely abstraction and application. Such notation singles out those parts of a term, called items in the report, that are added during abstraction and application. It turns out that this item-based notation offers many advantages for various notions of the lambda calculus. It allows a linear representation of terms and makes it, for example, straightforward to locate free and bound variables and to find the binding A-operators relevant to particular occurrences. Furthermore, step-wise explicit substitution is easily embeddable in the lambda calculus using the new notation. The item notation proves to be a powerful device for the representation of basic substitution steps, giving rise to different versions of ,a-reduction. Last but not least, the new notation allows for segment abbreviations, enabling one to prevent a lot of duplications in A-terms, while remaining in the general proposed frame. In this paper we don't stop at the advantages of the new notation, but go further to accomlllodate important notions of the lambda calculus in the new framework. We discuss the role of types in the presented setting and provide a type operator which gives a representative type for a typeable tenll. Moreover, in accommodating types in our system, it turns out that a general framework for many typed lambda calculi can be obtained in the presented setting. Another attraction of our new approach is that by specifying a number of parameters, one defines one system of typed lambda calculus or another. In fact, it turns out that many known systems of typed lambda calculus fit in the proposed setting, in particular the ones connected with "Barendregt's cube" [Barendregt 9x]. The general framework leads naturally to a number of generalizations. It gives much freedom and is at the same time simple and perspicuous. It allows theorists to compare the different systems as to important properties and enables practical users to make their choices at the relevant place.

[1]  de Ng Dick Bruijn,et al.  The mathematical language AUTOMATH, its usage, and some of its extensions , 1970 .

[2]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[3]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[4]  Carl H. Smith,et al.  Mathematical Logic and Theoretical Computer Science , 1986 .

[5]  ten Hmm Huub Eikelder Some algorithms to decide the equivalence of recursive types , 1991 .

[6]  de Ng Dick Bruijn,et al.  Some extensions of Automath : the AUT-4 family , 1994 .

[7]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[8]  de Ng Dick Bruijn Generalizing Automath by means of a lambda-typed lambda calculus , 1987 .

[9]  J. Roger Hindley,et al.  To H.B. Curry: Essays on Combinatory Logic, Lambda Calculus, and Formalism , 1980 .

[10]  Rob Nederpelt,et al.  An Approach to Theorem Proving on the Basis of a Typed Lambda-Calculus , 1980, CADE.

[11]  Rob Gerth,et al.  Foundations of Compositional Program Refinement - Safety Properties , 1989, REX Workshop.

[12]  Henk Barendregt,et al.  Types in Lambda Calculi and Programming Languages , 1990, ESOP.

[13]  Robert Pieter Nederpelt Lazarom Strong normalization in a typed lambda calculus with lambda structured types , 1973 .

[14]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[15]  L. S. van Benthem Jutting An Implementation of Substiution in a λ-Calculus with Dependent Types , 1994 .

[16]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[17]  Rp Rob Nederpelt Type systems : basic ideas and applications , 1990 .

[18]  N. G. de Bruijn,et al.  Algorithmic definition of lambda-typed lambda calculus , 1993 .

[19]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[20]  van Ls Bert Benthem Jutting,et al.  Checking Landau's “Grundlagen” in the Automath System: Appendices 3 and 4 (The PN-lines; Excerpt for “Satz 27”) , 1994 .

[21]  H. Barendregt,et al.  Types in lambda calculi and programming languages (invited lecture) , 1990 .