Description
Book SynopsisTyped lambda calculus is used in functional programming (Haskell, Clean) and proof assistants (Coq, Isabelle, HOL), which are used to design and verify IT products and mathematical proofs. This book reveals unexpected mathematical beauty in three classes of typing: simple types, recursive types and intersection types. Numerous exercises are provided.
Trade Review'The book has a place in undergraduate libraries because of its uniquely comprehensive, if theoretical, treatment of a timely, widely important subject. Recommended.' D. V. Feldman, Choice
'The authors have produced a well-written, organised and comprehensive account of three important type systems. These systems' properties have been rich sources of interest to logicians for many years; their problems are not all solved, and in future work this book will almost certainly become a standard reference about them. It will also allow the more mathematically inclined computer scientist to obtain a deeper understanding of the principles behind some of the higher order languages in current use.' Bulletin of the London Mathematical Society
Table of ContentsList of contributors; Preface; Introduction; Part I. Simple Types: 1. The simply typed lambda calculus; 2. Properties; 3. Tools; 4. Definability, unification and matching; 5. Extensions; 6. Applications; Part II. Recursive Types: 7. The systems; 8. Properties of recursive types; 9. Properties of terms with types; 10. Models; 11. Applications; Part III. Intersection Types: 12. An exemplary system; 13. Type assignment systems; 14. Basic properties; 15. Type and lambda structures; 16. Filter models; 17. Advanced properties and applications; Bibliography; Symbol index; Names index; Definitions index.