Lambda Calculus with Types

Henk Barendregt, Wil Dekkers, and Richard Statman

Year: 2013
854 pages. Hardcover.
Buy now (when ordering, include the discount code ASL2016 to receive the 25% ASL member discount)

This handbook with exercises reveals in formalisms, hitherto mainly used for hardware and software design and verification, unexpected mathematical beauty. The lambda calculus forms a prototype universal programming language, which in its untyped version is related to Lisp, and was treated in the first author’s classic The Lambda Calculus (1984). The formalism has since been extended with types and used in functional programming (Haskell, Clean) and proof assistants (Coq, Isabelle, HOL), used in designing and verifying IT products and mathematical proofs. In this book, the authors focus on three classes of typing for lambda terms: simple types, recursive types and intersection types. It is in these three formalisms of terms and types that the unexpected mathematical beauty is revealed. The treatment is authoritative and comprehensive, complemented by an exhaustive bibliography, and numerous exercises are provided to deepen the readers’ understanding and increase their confidence using types.

  • Presents three type disciplines using a unified framework
  • Reveals many mathematical gems through the simple definitions of terms and types
  • Introduces the reader to applications and includes almost 300 exercises

Table of Contents

Part 1. Simple types:

  1. The simply typed lambda calculus
  2. Properties
  3. Tools
  4. Definability, unification and matching
  5. Extensions
  6. Applications

Part 2. Recursive types:

  1. The systems
  2. Properties of recursive types
  3. Properties of terms with types
  4. Models
  5. Applications

Part 3. Intersection types:

  1. An exemplary system
  2. Type assignment systems
  3. Basic properties
  4. Type and lambda structures
  5. Filter models
  6. Advanced properties and applications