Book contents
- Frontmatter
- Contents
- Introduction
- 1 The type-free λ-calculus
- 2 Assigning types to terms
- 3 The principal-type algorithm
- 4 Type assignment with equality
- 5 A version using typed terms
- 6 The correspondence with implication
- 7 The converse principal-type algorithm
- 8 Counting a type's inhabitants
- 9 Technical details
- Answers to starred exercises
- Bibliography
- Table of principal types
- Index
1 - The type-free λ-calculus
Published online by Cambridge University Press: 02 December 2009
- Frontmatter
- Contents
- Introduction
- 1 The type-free λ-calculus
- 2 Assigning types to terms
- 3 The principal-type algorithm
- 4 Type assignment with equality
- 5 A version using typed terms
- 6 The correspondence with implication
- 7 The converse principal-type algorithm
- 8 Counting a type's inhabitants
- 9 Technical details
- Answers to starred exercises
- Bibliography
- Table of principal types
- Index
Summary
The λ-calculus is a family of prototype programming languages invented by a logician, Alonzo Church, in the 1930's. Their main feature is that they are higherorder; that is, they give a systematic notation for operators whose input and output values may be other operators. Also they are functional, that is they are based on the notion of function or operator and include notation for function-application and abstraction.
This book will be about the simplest of these languages, the pure λ-calculus, in which λ-terms are formed by application and abstraction from variables only. No atomic constants will be allowed.
λ-terms and their structure
Definition (λ-terms) An infinite sequence of term-variables is assumed to be given. Then linguistic expressions called λ--terms are defined thus:
each term-variable is a λ-term, called an atom or atomic term;
if M and N are λ-terms then (MN) is a λ-term called an application;
if x is a term-variable and M is a λ-term then (λx. M) is a λ-term called an abstract or a λ-abstract.
A composite λ-term is a λ-term that is not an atom.
Notation Term-variables are denoted by “u”, “v”, “w”, “x”, “y”, “z”, with or without number-subscripts. Distinct letters denote distinct variables unless otherwise stated.
Arbitrary λ-terms are denoted by “L”, “M”, “N”, “P”, “Q”, “R”, “S”, “T”, with or without number-subscripts. For “λ-term” we shall usually say just “term”.
- Type
- Chapter
- Information
- Basic Simple Type Theory , pp. 1 - 11Publisher: Cambridge University PressPrint publication year: 1997