(perspectives in logic) henk barendregt, wil dekkers, richard statman-lambda calculus with...

Upload: janellekwan

Post on 02-Jun-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    1/701

    LAMBDA CALCULUS WITH TYPES

    A A= ( S ) S

    HENK BARENDREGT

    WIL DEKKERS

    RICHARD STATMAN

    PERSPECTIVES IN LOGIC

    CAMBRIDGE UNIVERSITY PRESS

    ASSOCIATION OF SYMBOLIC LOGIC

    September 1, 2010

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    2/701

    ii

    Preface

    This book is about typed lambda terms using simple , recursive and intersection types.In some sense it is a sequel to Barendregt [1984] . That book is about untyped lambdacalculus. Types give the untyped terms more structure: function applications are al-lowed only in some cases. In this way one can single out untyped terms having specialproperties. But there is more to it. The extra structure makes the theory of typed termsquite different from the untyped ones.

    The emphasis of the book is on syntax. Models are introduced only in so far they giveuseful information about terms and types or if the theory can be applied to them.

    The writing of the book has been different from that about the untyped lambdacalculus. First of all, since many researchers are working on typed lambda calculus,we were aiming at a moving target. Also there was a wealth of material to work with.

    For these reasons the book has been written by several authors. Several long-term openproblems had been solved in the period the book was written, notably the undecidabilityof lambda denability in nite models, the undecidability of second order typability, thedecidability of the unique maximal theory extending -conversion and the fact thatthe collection of closed terms of not every simple type is nitely generated, and thedecidability of matching at arbitrary types higher than order 4. The book is not writtenas an encyclopedic monograph: many topics are only partially treated. For examplereducibility among types is analyzed only for simple types built up from only one atom.

    One of the recurring distinctions made in the book is the difference between the implicittyping due to Curry versus the explicit typing due to Church. In the latter case the termsare an enhanced version of the untyped terms, whereas in the Curry theory to some of the untyped terms a collection of types is being assigned. The book is mainly aboutCurry typing, although some chapters treat the equivalent Church variant.

    The applications of the theory are either within the theory itself, in the theory of programming languages, in proof theory, including the technology of fully formalizedproofs used for mechanical verication, or in linguistics. Often the applications aregiven in an exercise with hints.

    We hope that the book will attract readers and inspire them to pursue the topic.

    AcknowledgmentsMany thanks are due to many people and institutions. The rst author obtained sub-stantial support in the form of a generous personal research grant by the Board of Di-rectors of Radboud University, and the Spinoza Prize by The Netherlands Organisationfor Scientic Research (NWO). Not all of these means were used to produce this book,but they have been important. The Mathematical Forschungsinstitut at Oberwolfach,Germany, provided hospitality through their Research in Pairs program. The Residen-tial Centre at Bertinoro of the University of Bologna hosted us in their stunning castle.The principal regular sites where the work was done have been the Institute for Com-puting and Information Sciences of Radboud University at Nijmegen, The Netherlands,the Department of Mathematics of Carnegie-Mellon University at Pittsburgh, USA, theDepartments of Informatics at the Universities of Torino and Udine, both Italy.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    3/701

    iii

    The three main authors wrote the larger part of Part I and thoroughly edited PartII, written by Mario Coppo and Felice Cardone, and Part III, written by MariangiolaDezani-Ciancaglini, Fabio Alessi, Furio Honsell, and Paula Severi. Some Chapters or

    Sections have been written by other authors as follows: Chapter 4 by Gilles Dowek,Sections 5C-5E by Marc Bezem, Section 6D by Michael Moortgat and Section 17E byPawel Urzyczyn, while Section 6C was coauthored by Silvia Ghilezan. This thoroughediting consisted of rewriting the material to bring all in one style, but in many casesalso in adding results and making corrections. It was agreed upon beforehand with allcoauthors that this could happen.

    Since 1974 Jan Willem Klop has been a close colleague and friend for many years andwe engaged with him many inspiring discussions on -calculus and types.

    Several people helped during the later phases of writing the book. The reviewer RogerHindley gave invaluable advise. Vincent Padovani carefully read Section 4C. Other helpcame from J org Endrullis, Clemens Grabmeyer, Thierry Joly, Jan Willem Klop, PieterKoopman, Dexter Kozen, Giulio Manzonetto, James McKinna, Vincent van Oostrom,Rinus Plasmeijer, Arnoud van Rooij , Jan Rutten, Sylvain Salvati, Christian Urban, BasWesterbaan, and Bram Westerbaan .

    Use has been made of the following macro packages: prooftree of Paul Taylor, xypicof Kristoffer Rose, robustindex of Wilberd van der Kallen, and several lay-out com-mands of Erik Barendsen.

    At the end producing this book turned out a time consuming enterprise. But thatseems to be the way: while the production of the content of Barendregt [1984] wasthought to last two months, it took fty months; for this book the initial estimation wasfour years, while it turned out to be eighteen years(!).

    Our partners were usually patiently understanding when we spent yet another periodof writing and rewriting. We cordially thank them for their continuous and continuing

    support and love.

    Nijmegen and Pittsburgh September 1, 2010

    Henk Barendregt 1,2Wil Dekkers 1Rick Statman 2

    1 Faculty of ScienceRadboud University, Nijmegen, The Netherlands

    2 Departments of Mathematics and Computer ScienceCarnegie-Mellon University, Pittsburgh, USA

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    4/701

    iv

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    5/701

    v

    The founders of the topic of this book are Alonzo Church (1903-1995), who invented thelambda calculus ( Church [1932], Church [1933]), and Haskell Curry (1900-1982), whoinvented notions of functionality ( Curry [1934]) that later got transformed into typesfor the hitherto untyped lambda terms. As a tribute to Church and Curry the next pagesshow pictures of them at an early stage of their carreers. Church and Curry have beenhonored jointly for their timeless invention by the Association for Computing Machineryin 1982.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    6/701

    Alonzo Church (1903-1995)Studying mathematics at Princeton University (1922 or 1924).

    Courtesy of Alonzo Church and Mrs. Addison-Church.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    7/701

    Haskell B. Curry (1900-1982)BA in mathematics at Harvard (1920).Courtesy of Town & Gown, Penn State.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    8/701

    Contributors

    Fabio Alessi Part 3, except 17EDepartment of Mathematics and Computer ScienceUdine University

    Henk Barendregt All parts, except 5C, 5D, 5E, 6DInstitute of Computing & Information ScienceRadboud University Nijmegen

    Marc Bezem 5C, 5D, 5EDepartment of InformaticsBergen University

    Felice Cardone Part 2Department of InformaticsTorino University

    Mario Coppo Part 2Department of InformaticsTorino University

    Wil Dekkers All parts, exceptInstitute of Computing & Information Science 5C, 5D, 5E, 6C, 6D, 17ERadboud University NijmegenMariangiola Dezani-Ciancaglini Part 3, except 17EDepartment of InformaticsTorino University

    Gilles Dowek Chapter 4Department of Informatics

    Ecole Polytechnique and INRIASilvia Ghilezan 6CCenter for Mathematics & StatisticsUniversity of Novi Sad

    Furio Honsell Part 3, except 17EDepartment of Mathematics and Computer ScienceUdine University

    Michael Moortgat 6DDepartment of Modern LanguagesUtrecht University

    Paula Severi Part 3, except

    17E

    Department of Computer ScienceUniversity of Leicester

    Richard Statman Parts 1, 2, exceptDepartment of Mathematics 5C, 5D, 5E, 6DCarnegie-Mellon UniversityPawe l Urzyczyn 17E.Institute of InformaticsWarsaw University

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    9/701

    Contents in short

    Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii

    Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii

    Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv

    Part 1. Simple types A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    Chapter 1 . The simply typed lambda calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    Chapter 2 . Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5

    Chapter 3 . Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    Chapter 4 . Definability, unification and matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

    Chapter 5 . Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

    Chapter 6 . Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245

    Part 2. Recursive types A= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

    Chapter 7 . The systems A= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    Chapter 8 . Properties of recursive types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 9

    Chapter 9 . Properties of terms with types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 8 3

    Chapter 10 . Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

    Chapter 11 . Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

    Part 3. Intersection types S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

    Chapter 12 . An exemplary system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

    Chapter 13 . Type assignment systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461

    Chapter 14 . Basic properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 8 3

    Chapter 15 . Type and lambda structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 0 1

    Chapter 16 . Filter models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3 3

    Chapter 17 . Advanced properties and applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 571

    Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 3

    Indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 657Denitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658N a m e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 9Symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    10/701

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    11/701

    Contents

    Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iiContributors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viiiContents in short . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ixI n t r o d u c t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x v

    Part 1. Simple types A

    Chapter 1 . The simply typed lambda calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51A The systems A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51B First properties and comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161C Normal inhabitants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261D Representing data types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311E Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    Chapter 2 . Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452A Normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452B Proofs of strong normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522C Checking and nding types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552D Checking inhabitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 622E Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    Chapter 3 . Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753A Semantics of . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753B Lambda theories and term models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 863C Syntactic and semantic logical relations . . . . . . . . . . . . . . . . . . . . . . . . . 913D Type reducibility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1073E The ve canonical term-models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1233F Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

    Chapter 4 . Definability, unification and matching . . . . . . . . . . . . . . . . . . . . . . 1514A Undecidability of lambda denability . . . . . . . . . . . . . . . . . . . . . . . . . . . 1514B Undecidability of unication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1604C Decidability of matching of rank 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1654D Decidability of the maximal theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1774E Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

    Chapter 5 . Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

    xi

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    12/701

    xii 0. Contents

    5A Lambda delta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1855B Surjective pairing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1945C Godels system T : higher-order primitive recursion ............. 2155D Spectors system B : bar recursion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2295E Plateks system Y : xed point recursion . . . . . . . . . . . . . . . . . . . . . . . . 2365F Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

    Chapter 6 . Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2456A Functional programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2456B Logic and proof-checking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2596C Proof theory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2676D Grammars, terms and types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276

    Part 2. Recursive Types A =

    Chapter 7 . The systems A= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2917A Type-algebras and type assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

    7B More on type algebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3007C Recursive types via simultaneous recursion . . . . . . . . . . . . . . . . . . . . . 3057D Recursive types via -abs t rac t ion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3137E Recursive types as trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3267F Special views on trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3367G Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

    Chapter 8 . Properties of recursive types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 98A Simultaneous recursions vs -types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3498B Properties of -types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352

    8C Properties of types dened by an sr over TT . . . . . . . . . . . . . . . . . . . . . 3688D Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380

    Chapter 9 . Properties of terms with types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3839A First properties of A= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3839B Finding and inhabiting types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3859C Strong normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3939D Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401

    Chapter 10 . Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40310A Interpretations of type assignments in A= . . . . . . . . . . . . . . . . . . . . . . . 4 0 310B Interpreting TT and TT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407

    10C Type interpretations in systems with explicit typing . . . . . . . . . . . . 41910D Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425

    Chapter 11 . Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43111A Subtyping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43111B The principal type structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44111C Recursive types in programming languages . . . . . . . . . . . . . . . . . . . . . . 44311D Further reading. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44611E Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    13/701

    Contents xiii

    Part 3. Intersection types S

    Chapter 12 . An exemplary system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

    12A The type assignment system BCD

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 212B The lter model F BCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45712C Completeness of type assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458Chapter 13 . Type assignment systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 6 1

    13A Type theories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46313B Type assignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47313C Type structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47613D Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48013E Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481

    Chapter 14 . Basic properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 483

    14A Inversion lemmas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48514B Sub ject reduction and expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49014C Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495

    Chapter 15 . Type and lambda structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 0 115A Meet semi-lattices and algebraic lattices . . . . . . . . . . . . . . . . . . . . . . . . 50415B Natural type structures and lambda structures. . . . . . . . . . . . . . . . . . 51315C Type and zip structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51815D Zip and lambda structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52215E Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529

    Chapter 16 . Filter models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53316A Lambda models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53516B Filter models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54016C D models as lter models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54916D Other lter models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56216E Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568

    Chapter 17 . Advanced properties and applications . . . . . . . . . . . . . . . . . . . . . . 57117A Realizability interpretation of types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57317B Characterizing syntactic properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57717C Approximation theorems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58217D Applications of the approximation theorem . . . . . . . . . . . . . . . . . . . . . 59417E Undecidability of inhabitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59717F Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 617

    Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623

    Indices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5 7Index o f den i t ions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658Index of names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669Index of symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 675

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    14/701

    xiv 0. Contents

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    15/701

    Introduction

    The rise of lambda calculus

    Lambda calculus started as a formalism introduced by Church in 1932 intended tobe used as a foundation for mathematics, including the computational aspects. Sup-ported by his students Kleene and Rosserwho showed that the prototype system wasinconsistentChurch distilled a consistent computational part and ventured in 1936 theThesis that exactly the intuitively computable functions can be dened in it. He alsopresented a function that could not be captured by the -calculus. In that same yearTuring introduced another formalism, describing what are now called Turing Machines,and formulated the related Thesis that exactly the mechanically computable functionscan be captured by these machines. Turing also showed in the same paper that thequestion whether a given statement could be proved (from a given set of axioms) usingthe rules of any reasonable system of logic is not computable in this mechanical way.

    Finally Turing showed that the formalism of -calculus and Turing machines dene thesame class of functions.Together Churchs Thesis, concerning computability by homo sapiens , and Turings

    Thesis, concerning computability by mechanical devices, using formalisms that are equallypowerful but having their computational limitations, made a deep impact on the philos-ophy in the 20th century concerning the power and limitations of the human mind. Sofar, cognitive neuropsychology has not been able to refute the combined Church-TuringThesis. On the contrary, also this discipline shows the limitation of human capacities.On the other hand, the analyses of Church and Turing indicate an element of reection(universality) in both Lambda Calculus and Turing Machines, that according to theircombined thesis is also present in humans.

    Turing Machine computations are relatively easy to implement on electronic devices,as started to happen soon in the 1940s. The mentioned universality was employed by vonNeumann 1 enabling to construct not only ad hoc computers but even a universal one,capable of performing different tasks depending on a program. This resulted in what iscalled now imperative programming , with the language C presently as the most widelyused one for programming in this paradigm. Like with Turing Machines a computationconsists of repeated modications of some data stored in memory. The essential differ-ence between a modern computer and a Turing Machine is that the former has randomaccess memory 2.

    Functional programming

    The computational model of Lambda Calculus, on the other hand, has given rise to func-tional programming . The input M becomes part of an expression F M to be evaluated,where F represents the intended function to be computed on M . This expression is

    1 It was von Neumann who visited Cambridge UK in 1935 and invited Turing to Princeton during1936-1937, so he probably knew Turings work.

    2 Another difference is that the memory on a TM is innite: Turing wanted to be technology indepen-dent, but was restricting a computation with given input to one using nite memory and time.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    16/701

    xvi 0. Contents

    reduced (rewritten) according to some rules (indicating the possible computation steps)and some strategy (indicating precisely which steps should be taken).

    To show the elegance of functional programming, here is a short functional program

    generating primes using Eratosthenes sieve (Miranda program by D. Turner):primes = sieve [2..]

    wheresieve (p:x) = p : sieve [n | n 0]

    primes_upto n = [p | p

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    17/701

    0. Introduction xvii

    Types

    The formalism as dened by Church is untyped. Also the early functional languages,of which Lisp (McCarthy, Abrahams, Edwards, Hart, and Levin [1962] ) and Scheme(Abelson, Dybvig, Haynes, Rozas, IV, Friedman, Kohlbecker, Jr., Bartley, Halstead,[1991]) are best known, are untyped: arbitrary expressions may be applied to eachother. Types rst appeared in Principia Mathematica, Whitehead and Russell [1910-1913]. In Curry [1934] types are introduced and assigned to expressions in combinatorylogic, a formalism closely related to lambda calculus. In Curry and Feys [1958] thistype assignment mechanism was adapted to -terms, while in Church [1940] -termswere ornamented by xed types. This resulted in the closely related systems Cu and Ch treated in Part I.

    Types are being used in many, if not most programming languages. These are of theform

    bool, nat, real, ...

    and occur in compounds likenat bool, array(real), ...

    Using the formalism of types in programming, many errors can be prevented if termsare required to be typable: arguments and functions should match. For example M of type A can be an argument only of a function of type A B. Types act in a waysimilar to the use of dimensional analysis in physics. Physical constants and data obtaina dimension. Pressure p, for example, is expressed as

    g/m 2

    giving the constant R in the law of Boyle pV T = R

    a dimension that prevents one from writing an equation like E = T R2. By contrastEinsteins famous equation

    E = mc2

    is already meaningful from the viewpoint of its dimension.In most programming languages the formation of function space types is usually not

    allowed to be iterated like in(real real ) (real real ) for indenite integrals f (x)dx;(real real ) real real real for denite integrals

    b

    a f (x)dx;

    ([0, 1] real ) (([0, 1] real ) real ) (([0, 1] real ) real ),where the latter is the type of a map occuring in fuctional analysis, see Lax [2002].Here we wrote [0 , 1] real for what should be more accurately the set C [0, 1] of continuous functions on [0 , 1].

    Because there is the Hindley-Milner algorithm (see Theorem 2C.14 in Chapter 2) thatdecides whether an untyped term does have a type and computes the most general typetypes found their way to functional programming languages. The rst such languageto incoporate the types of the simply typed -calculus is ML ( Milner, Tofte, Harper,

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    18/701

    xviii 0. Contents

    and McQueen [1997] ). An important aspect of typed expressions is that if a term M is correctly typed by type A, then also during the computation of M the type remainsthe same (see Theorem 1B.6, the subject reduction theorem). This is expressed as a

    feature in functional programming: one only needs to check types during compile time.In functional programming languages, however, types come of age and are allowed intheir full potential by giving a precise notation for the type of data, functions, functionals,higher order functionals, ... up to arbitrary degree of complexity. Interestingly, the useof higher order types given in the mathematical examples is modest compared to higherorder types occurring in a natural way in programming situations.

    [(a ([([b], c)] [([b], c)]) [([b], c)] [b] [([b], c)]) ([([b], c)] [([b], c)]) [([b], c)] [b] [([b], c)]] [a (d ([([b], c)] [([b], c)]) [([b], c)] [b] [([b], c)]) ([([b], c)]

    [([b], c)])

    [([b], c)]

    [b]

    [([b], c)]]

    [d ([([b], c)] [([b], c)]) [([b], c)] [b] [([b], c)]] ([([b], c)] [([b], c)]) [([b], c)] [b] [([b], c)]

    This type (it does not actually occur in this form in the program, but is notated usingmemorable names for the concepts being used) is used in a functional program for efficientparser generators, see Koopman and Plasmeijer [1999] . The type [ a] denotes that of listsof type a and ( a, b) denotes the product a b. Product types can be simulated bysimple types, while for list types one can use the recursive types developed in Part II of this book.

    Although in the pure typed -calculus only a rather restricted class of terms andtypes is represented, relatively simple extensions of this formalism have universal com-putational power. Since the 1970s the following programming languages appeared: ML(not yet purely functional), Miranda ( Thompson [1995] , ) the rst purely functional typed programming language, well-designed, but slowly interpreted; Clean ( van Eekelen and Plasmeijer [1993] , Plasmeijerand van Eekelen [2002] , ) and Haskell ( Hutton [2007] ,Peyton Jones [2003] , ); both Clean and Haskell are state of the artpure functional languages with fast compiler generating fast code). They show that func-tional programming based on -calculus can be efficient and apt for industrial software.Functional programming languages are also being used for the design ( Sheeran [2005])and testing ( Koopman and Plasmeijer [2006] ) of hardware. In both cases it is the com-pact mathematical expressivety of the functional languages that makes them t for the

    description of complex functionality.

    Semantics of natural languages

    Typed -calculus has also been employed in the semantics of natural languages ( Mon-tague [1973], van Benthem [1995] ). An early indication of this possibility can already befound in Curry and Feys [1958] , Section 8S2.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    19/701

    0. Introduction xix

    Certifying proofs

    Next to its function for designing, the -calculus has also been used for verication,not only for the correctness of IT products, but also of mathematical proofs. Theunderlying idea is the following. Ever since Aristotles formulation of the axiomaticmethod and Freges formulation of predicate logic one could write down mathematicalproofs in full detail. Frege wanted to develop mathematics in a fully formalized way, butunfortunately started from an axiom system that turned out to be inconsistent, as shownby the Russell paradox. In Principia Mathematica Whitehead and Russell used types toprevent the paradox. They had the same formalization goal in mind and developed someelementary arithmetic. Based on this work, G odel could state and prove his fundamentalincompleteness result. In spite of the intention behind Principia Mathematica, proofsin the underlying formal system were not fully formalized. Substitution was left as aninformal operation and in fact the way Principia Mathematica treated free and boundvariables was implicit and incomplete. Here starts the role of the -calculus. As a formal

    system dealing with manipulating formulas, being careful with free and bound variables,it was the missing link towards a full formalization. Now, if an axiomatic mathematicaltheory is fully formalized, a computer can verify the correctness of the denitions andproofs. The reliability of computer veried theories relies on the fact that logic has onlyabout a dozen rules and their implementation poses relatively little problems. This ideawas pioneered since the late 1960s by N. G. de Bruijn in the proof-checking languageand system Automath ( Nederpelt, Geuvers, and de Vrijer [1994] , ).

    The methodology has given rise to proof-assistants. These are computer programsthat help the human user to develop mathematical theories. The initiative comes fromthe human who formulates notions, axioms, denitions, proofs and computational tasks.The computer veries the well-denedness of the notions, the correctness of the proofs,and performs the computational tasks. In this way arbitrary mathematical notions canrepresented and manipulated on a computer. Many of the mathematical assistants arebased on extensions of typed -calculus. See Section 6B for more information.

    What this book is and is not about

    None of the mentioned fascinating applications of lambda calculus with types are treatedin this book. We will study the formalism for its mathematical beauty. In particularthis monograph focuses on mathematical properties of three classes of typing for lambdaterms.

    Simple types, constructed freely from type atoms, cause strong normalization, subjectreduction, decidability of typability and inhabitation, undecidability of lambda denabil-ity. There turn out to be ve canonical term models based on closed terms. Powerfulextensions with respectively a discriminator, surjective pairing, operators for primitiverecursion, bar recursion, and a xed point operator are being studied. Some of theseextensions remain constructive, other ones are utterly non-constructive, and some willbe at the edge between these two realms.

    Recursive types allow functions to t as input for themselves, losing strong normaliza-tion (restored by allowing only positive recursive types). Typability remains decidable.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    20/701

    xx 0. Contents

    Unexpectedly -conversion, dealing with a hygienic treatment of free and bound vari-ables among recursive types has interesting mathematical properties.

    Intersection types allow functions to take arguments of different types simultaneously.

    Under certain mild conditions this leads to subject conversion, turning the lters of types of a given term into a lambda model. Classical lattice models can be describedas intersection type theories. Typability and inhabitation now become undecidable, thelatter being equivalent to undecidability of lambda denability for models of simpletypes.

    A avour of some of the applications of typed lambda calculus is given: functionalprogramming (Section 6A), proof-checking (Section 6B), and formal semantics of naturallanguages (Section 6C).

    What this book could have been about

    This book could have been also about dependent types, higher order types and inductivetypes, all used in some of the mathematical assistants. Originally we had planned asecond volume to do so. But given the effort needed to write this book, we will probablynot do so. Higher order types are treated in Girard, Lafont, and Taylor [1989] , andSrensen and Urzyczyn [2006] . Research monographs on dependent and inductive typesare lacking. This is an invitation to the community of next generations of researchers.

    Some notational conventions

    A partial function from a set X to a set Y is a collection of ordered pairs f X Y such that xX,y,y Y.[ x, y f & x, y f y = y].The set of partial functions from a set X to a set Y is denoted by X Y . If f (X Y )and x

    X , then f (x) is dened , notation f (x)

    or x

    dom( f ), if for some y one hasx, yf . In that case one writes f (x) = y. On the other hand f (x) is undened , nota-

    tion f (x), means that for no yY one has x, y f . An expression E in which partialfunctions are involved, may be dened or not. If two such expressions are compared,then, following Kleene [1952], we write E E 2 for

    if E 1, then E 2 and E 1 = E 2, and vice versa.The set of natural numbers is denoted by N. In proofs formula numbers like (1),

    (2), etcetera, are used to indicate formulas locally: different proofs may use the samenumbers. The notation is used for equality by denition. Similarly

    . is used forthe denition of a concept. By contrast ::= stands for the more specic introduction of asyntactic category dened by the Backus-Naur form. The notation stands for syntacticequality (for example to remember the reader that the LHS was dened previously asthe RHS). In a denition we do not write M is closed iff FV(M ) = but M is closed if FV(M ) = . The end of a proof is indicated by .

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    21/701

    Part 1

    SIMPLE TYPES A

    The systems of simple types considered in Part I are built up from atomic types A usingas only operator the constructor of forming function spaces. For example, from theatoms A = {, } one can form types , ( ), ( ) and so on. Twochoices of the set of atoms that will be made most often are A = { 0, 1, 2, }, aninnite set of type variables giving

    , and A =

    {0

    }, consisting of only one atomic type

    giving 0. Particular atomic types that occur in applications are e.g. Bool, Nat, Real.Even for these simple type systems, the ordering effect is quite powerful.

    Requiring terms to have simple types implies that they are strongly normalizing. Foran untyped lambda term one can nd the collection of its possible types. Similarly, givena simple type, one can nd the collection of its possible inhabitants (in normal form).Equality of terms of a certain type can be reduced to equality of terms in a xed type.Insights coming from this reducibility provide ve canonical term models of 0. Seenext two pages for types and terms involved in this analysis.

    The problem of unication

    X :A.MX = NX

    is for complex enough A undecidable. That of pattern matchingX :A.MX = N

    will be shown to be decidable for A up to rank 3. The recent proof by Stirling of gen-eral decidability of matching is not included. The terms of nite type are extended by -functions, functionals for primitive recursion (G odel) and bar recursion (Spector). Ap-plications of the theory in computing, proof-checking and semantics of natural languageswill be presented.

    Other expositions of the simply typed lambda calculus are Church [1941], Lambek andScott [1981], Girard, Lafont, and Taylor [1989] , Hindley [1997], and Nerode, Odifreddi,and Platek [In preparation] . Part of the history of the topic, including the untypedlambda calculus, can be found in Crossley [1975], Rosser [1984], Kamareddine, Laan,

    and Nederpelt [2004] and Cardone and Hindley [2009] .

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    22/701

    Sneak preview of (Chapters 1, 2, 3)

    Terms

    Term variables V {c, c , c , }Terms

    xV xM, N (MN )M , xV (xM )Notations for termsx,y,z, , F, G, , , , range over V M,N,L, range over Abbreviations

    N 1 N n ( (MN 1) N n )x 1 xn .M (x 1( (x n .M ) ))

    Standard terms: combinatorsI x.xK xy.xS xyz.xz (yz)

    Types

    Type atoms A {c , c , c , }Types TT A TTA, BTT (A B )TTNotations for types,,, range over AA,B,C, range over TTAbbreviationA1 A2 An (A1 (A2 (An 1 An ) ))Standard types: each nN is interpreted as type nTT

    0 cn + 1 n 0

    (n + 1) 2 n n 0Assignment of types to terms M : A (M , ATT )

    Basis : a set = {x1 :A1 , , xn :An }, with x iV distinctType assignment (relative to a basis ) axiomatized by(x:A) x : A

    M : (A

    B ),

    N : A

    (MN ) : B, x:AM : B (x.M ) : (AB )

    Notations for assignmentx:AM : B stands for {x:A}M : B , x:A for {x:A} and M : A for M : AStandard assignments: for all A, B,C TT one has

    I : AA as x:Ax : AK : ABA as x:A, y:B x : AS : (ABC )(AB )AC similarly

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    23/701

    Canonical term-models built up from constants

    The following types A play an important role in Sections 3D, 3E. Their normal inhabitants (i.e.terms M in normal form such that

    M : A) can be enumerated by the following schemes.

    Type Inhabitants (all possible 1-normal forms are listed)12 xy.x, xy.y .100 fx.x,fx.fx,fx.f (fx ),fx.f 3x, ; general pattern: fx.f n x .3 F.F (x.x ),F.F (x.F (y.x )) , ; F.F (x 1 .F (x 2 . F (x n .x i ) )) .1100 fgx.x,f gx.fx, fgx.gx,fgx.f (gx),fgx.g (fx ),fgx.f 2x,fgx.g 2x,

    fgx.f (g2x),fgx.f 2(gx),fgx.g (f 2x),fgx.g 2(fx ),fgx.f (g(fx )) , ;fgx.w { f,g } x ,where w{ f,g } is a word over = {f, g } which is applied to xby interpreting juxtaposition fg as function composition f g = x.f (gx).

    300 x.x, x.(f.x ), x.(f.fx ), x.(f.f ((g.g(fx )))) , x.(f 1 .w{ f 1 } x), x.(f 1 .w{ f 1 } (f 2 .w{ f 1 ,f 2 } x)) , ; x. ( f 1 .w { f 1 } ( f 2 .w { f 1 ,f 2 } ( f n .w { f 1 , ,f n } x ) )) .1200 bx.x, bx.bxx, bx.bx (bxx), bx.b(bxx)x, bx.b (bxx)(bxx), ;bx.t ,where t is an element of the context-free language generated by the grammar

    tree ::= x | (b tree tree) .

    This follows by considering the inhabitation machine, see Section 1C, for each mentioned type.

    12

    x 0 y 0

    0

    x y

    100f 1 x 0

    f 0

    x

    1100f 1 g 1 x 0

    f 0 g

    x

    3

    F 2

    0

    F 1

    x 0

    x

    300 3 x 0

    f 0

    2f 1

    x

    1200b 1 2 x 0

    0

    b

    x

    We have juxtaposed the machines for types 1 00 and 1100, as they are similar, andalso those for 3 and 3 00. According to the type reducibility theory of Section 3D the types100 and 3 are equivalent and therefore they are presented together in the statement.From the types 1 2 , 100, 1100, 300, and 1200 ve canonical -theories and

    term-models will be constructed, that are strictly increasing (decreasing). The smallest theoryis the good old simply typed -calculus, and the largest theory corresponds to the minimalmodel, Denition 3E.46, of the simply typed -calculus.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    24/701

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    25/701

    CHAPTER 1

    THE SIMPLY TYPED LAMBDA CALCULUS

    1A. The systems A

    Untyped lambda calculus

    Remember the untyped lambda calculus denoted by , see e.g. B[1984]4.

    1A.1. Definition . The set of untyped -terms is dened by the following so calledsimplied syntax . This basically means that parentheses are left implicit.

    V ::= c|V ::= V | V | Figure 1. Untyped lambda terms

    This makes V = {c, c , c , }.1A.2. Notation . (i) x,y,z, , x0, y0, z0, , x1, y1, z1, denote arbitrary variables.

    (ii) M,N,L, denote arbitrary lambda terms.(iii) MN 1

    N k (..(MN 1)

    N k ), association to the left .

    (iv) x 1 xn .M (x 1(..(x n (M )) ..)), association to the right .1A.3. Definition . Let M .(i) The set of free variables of M , notation FV( M ), is dened as follows.

    M FV( M )

    x {x}P Q FV( P )FV( Q)x.P FV( P ) {x}

    The variables in M that are not free are called bound variables .

    (ii) If FV( M ) = , then we say that M is closed or that it is a combinator . {M | M is closed}.Well known combinators are I x.x, K xy.y, S xyz.xz (yz), (x.xx )(x.xx ),and Y f. (x.f (xx ))( x.f (xx )). Officially S (c(c (c ((cc )(cc ))))), accordingto Denition 1A.1, so we see that the effort learning the notation 1A.2 pays.

    4 This is an abbreviation for the reference Barendregt [1984] .

    5

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    26/701

    6 1. The simply typed lambda calculus

    1A.4. Definition . On the following equational theory is dened by the usualequality axiom and rules (reexivity, symmetry, transitivity, congruence), including con-gruence with respect to abstraction:

    M = N x.M = x.N,and the following special axiom(schemes)

    (x.M )N = M [x := N ] ( -rule)x.Mx = M, if x /FV( M ) ( -rule)

    Figure 2. The theory

    As is known this theory can be analyzed by a notion of reduction.1A.5. Definition . On we dene the following notions of -reduction and -reduction

    (x.M )N M [x: = N ] ( )x.Mx M, if x /FV( M ) ( )Figure 3. -contraction rules

    As usual, see B[1984], these notions of reduction generate the corresponding reductionrelations , , , , and . Also there are the corresponding conversionrelations = , = and = . Terms in will often be considered modulo = or = .1A.6. Notation . If we write M = N , then we mean M = N by default, the exten-sional version of equality. This by contrast with B[1984], where the default was = .1A.7. Remark . Like in B[1984], Convention 2.1.12. we will not be concerned with-conversion, renaming bound variables in order to avoid confusion between free andbound occurrences of variables. So we write x.x y.y . We do this by officiallyworking on the -equivalence classes; when dealing with a concrete term as representativeof such a class the bound variables will be chosen maximally fresh: different from thefree variables and from each other. See, however, Section 7D, in which we introduce-conversion on recursive types and show how it can be avoided in a way that is moreeffective than for terms.1A.8. Proposition . For all M, N one has

    M = N M = N.Proof. See B[1984], Proposition 3.3.2.

    One reason why the analysis in terms of the notion of reduction is useful is thatthe following holds.1A.9. Proposition (Church-Rosser theorem for and ). For the notions of re-duction and one has the following.

    (i) Let M, N 1, N 2. Then

    M ( ) N 1 & M ( ) N 2 Z .N 1 ( ) Z & N 2 ( ) Z.One also says that the reduction relations R , for R{ , } are conuent .(ii) Let M, N . Then

    M = ( ) N Z .M ( ) Z & N ( ) Z.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    27/701

    1A. The systems A 7

    Proof. See Theorems 3.2.8 and 3.3.9 in B[1984].1A.10. Definition . (i) Let T be a set of equations between -terms. Write

    T M = N , or simply T M = N if M = N is provable in plus the additional equations in T added as axioms.

    (ii) T is called inconsistent if T proves every equation, otherwise consistent.(iii) The equation P = Q, with P, Q, is called inconsistent , notation P # Q, if

    {P = Q} is inconsistent. Otherwise P = Q is consistent .The set T = , i.e. the -calculus itself, is consistent, as follows from the Church-Rosser theorem. Examples of inconsistent equations: K# I and I# S. On the other hand = I is consistent.

    Simple types

    Types in this part, also called simple types , are syntactic objects built from atomic typesusing the operator . In order to classify untyped lambda terms, such types will beassigned to a subset of these terms. The main idea is that if M gets type AB and N gets type A, then the application M N is legal (as M is considered as a function fromterms of type A to those of type B) and gets type B . In this way types help determiningwhich terms t together.1A.11. Definition . (i) Let A be a non-empty set. An element of A is called a type atom . The set of simple types over A, notation TT = TT A, is inductively dened asfollows.

    A

    TT type atoms ;A, BTT (AB )TT function space types .

    We assume that no relations like = hold between type atoms: TT A is freelygenerated. Often one nds TT = TT A given by a simplied syntax.TT ::= A|TT TT

    Figure 4. Simple types(ii) Let A0 = {0}. Then we write TT 0 TT A0 .

    (iii) Let A = {c , c , c , }. Then we write TT TT AWe usually take 0 = c. Then TT 0

    TT . If we write simply TT , then this refers to TT A

    for an unspecied A.1A.12. Notation . (i) If A1, , AnTT , then

    A1An (A1(A2(An 1An )..)) .That is, we use association to the right.

    (ii) ,,, , 0, 0, 0, , , , denote arbitrary elements of A.(iii) A,B,C, denote arbitrary elements of TT .

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    28/701

    8 1. The simply typed lambda calculus

    1A.13. Definition (Type substitution ). Let A, C TTA and A. The result of substi-tuting C for the occurrences of in A, notation A[ : = C ], is dened as follows.

    [ : = C ] C ; [ : = C ] , if ;

    (A B )[ : = C ] (A[ : = C ]) (B [ : = C ]).Assigning simple types

    1A.14. Definition ( Cu ). (i) A (type assignment) statement is of the form

    M : A,

    with M and ATT . This statement is pronounced as M in A. The type A is thepredicate and the term M is the subject of the statement.(ii) A declaration is a statement with as subject a term variable.

    (iii) A basis is a set of declarations with distinct variables as subjects.(iv) A statement M :A is derivable from a basis , notation

    Cu M :A

    (or M : A, or even M :A if there is little danger of confusion) if M :A canbe produced by the following rules.

    (x:A) x : A; M : (A B ), N : A (MN ) : B ;

    , x:A

    M : B

    (x.M ) : (A

    B ).

    In the last rule , x:A is required to be a basis.These rules are usually written as follows.

    (axiom) x : A, if (x:A);

    (-elimination) M : (A B ) N : A ;

    (MN ) : B

    (-introduction), x:AM : B .

    (x.M ) : (A

    B )

    Figure 5. The system Cu a la Curry

    This is the modication to the lambda calculus of the system in Curry [1934], as devel-oped in Curry et al. [1958].1A.15. Definition . Let = {x1:A1, , xn :An}. Then

    (i) dom() {x1, , xn}, the domain of .(ii) x1:A1, , xn :An M : A denotes M : A.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    29/701

    1A. The systems A 9

    (iii) In particular M : A stands for M : A.(iv) x1, , xn :A M : B stands for x1:A, , xn :A M : B .

    1A.16. Example . (i)

    I : A

    A;

    K : ABA; S : (ABC )(AB )AC.

    (ii) Also one has x:A Ix : A;x:A, y:B Kxy : A;x:(ABC ), y:(AB ), z:A Sxyz : C.(iii) The terms Y, do not have a type. This is obvious after some trying. A system-

    atic reason is that all typable terms have a nf, as we will see later, but these two do nothave a nf.

    (iv) The term x.xx is in nf but does not have a type either.Notation. Another way of writing these rules is sometimes found in the literature.

    Introduction rule x : A...M : B

    x.M : (AB )

    Elimination ruleM : (A B ) N : A

    MN : B

    Cu alternative versionIn this version the basis is considered as implicit and is not notated. The notation

    x : A

    ...M : B

    denotes that M : B can be derived from x :A and the axioms in the basis. Striking through x :A meansthat for the conclusion x.M : A B the assumption x :A is no longer needed; it is discharged .1A.17. Example . (i) (xy.x ) : (A B A ) for all A, B TT .We will use the notation of version 1 of A for a derivation of this statement.

    x :A, y :B x : A

    x :A (y.x ) : B A

    (xy.x ) : A B ANote that xy.x xy.x by denition.

    (ii) A natural deduction derivation (for the alternative version of the system) of the same type assign-ment is the following.

    x :A 2 y:B 1

    x :A1

    (y.x ) : (B A )2

    (xy.x ) : (A B A )

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    30/701

    10 1. The simply typed lambda calculus

    The indices 1 and 2 are bookkeeping devices that indicate at which application of a rule a particularassumption is being discharged.

    (iii) A more explicit way of dealing with cancellations of statements is the ag-notation used byFitch (1952) and in the languages Automath of de Bruijn (1980). In this notation the above derivationbecomes as follows.

    y:B

    x :A

    (xy.x ) : (A B A )

    (y.x ) : (B A )

    x :A

    As one sees, the bookkeeping of cancellations is very explicit; on the other hand it is less obvious how astatement is derived from previous statements in case applications are used.

    (iv) Similarly one can show for all A TT

    (x.x ) : (A A ).

    (v) An example with a non-empty basis is y :A (x.x )y : A.

    In the rest of this chapter and in fact in the rest of this book we usually will introduce systems of typed lambda calculi in the style of the rst variant of A .

    1A.18. Definition . Let be a basis and ATT = TTA. Then write

    (i) (A)

    {M

    |

    A M : A

    }.

    (ii) ATT (A).

    (iii) (A) (A).(iv) ATT (A).(v) Emphasizing the dependency on A we write A(A) or A, (A), etcetera.1A.19. Definition . Let be a basis, ATT and M . Then

    (i) If M (A), then we say that

    M has type A or A is inhabited by M .

    (ii) If M , then M is called typable .

    (iii) If M

    (A), then M has type A relative to .(iv) If M

    , then M is called typable relative to .

    (v) If (A) = , then A is inhabited relative to .1A.20. Example . We have

    K (ABA);Kx {x:A} (BA).

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    31/701

    1A. The systems A 11

    1A.21. Definition . Let ATT .(i) The depth of A, notation dpt( A), is dened as follows.

    dpt( ) 1;dpt( AB ) max{dpt( A), dpt( B )}+ 1 .

    (ii) The rank of A, notation rk(A), is dened as follows.

    rk( ) 0;rk( AB ) max{rk( A) + 1 , rk( B )}.

    (iii) The order of A, notation ord(A), is dened as follows.

    ord( ) 1;ord( AB ) max{ord( A) + 1 , ord( B )}.

    (iv) The depth of a basis is

    dpt() maxi {dpt( Ai) | (x i :Ai)}.

    Similarly we dene rk() and ord(). Note that ord( A) = rk( A) + 1.The notion of order comes from logic, where dealing with elements of type 0 is done in

    rst order predicate logic. The reason is that in rst-order logic one deals with domainsand their elements. In second order logic one deals with functions between rst-orderobjects. In this terminology 0-th order logic can be identied with propositional logic.The notion of rank comes from computer science.1A.22. Definition . For ATT we dene A

    kB by recursion on k:A0

    B B ;

    Ak+1 B AAkB.Note that rk( AkB ) = rk( AB ), for all k > 0.

    Several properties can be proved by induction on the depth of a type. This holds forexample for Lemma 1A.25(i).

    The asymmetry in the denition of rank is intended because the meaning of a typelike (00)0 is more complex than that of 0 00, as can be seen by looking tothe inhabitants of these types: functionals with functions as arguments versus binaryfunctions. Some authors use the name type level instead of rank.

    The minimal and maximal systems 0 and

    The collection A of type variables serves as set of base types from which other types areconstructed. We have A0 = {0} with just one type atom and A = { 0, 1, 2, }with innitely many of them. These two sets of atoms and their resulting type systemsplay a major role in this Part I of the book.1A.23. Definition . We dene the following systems of type assignment.

    (i) 0 A0 .(ii) A .

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    32/701

    12 1. The simply typed lambda calculus

    Focusing on A0 or A we write 0(A) A0 (A) or (A) A (A) respectively.Many of the interesting features of the larger are already present in the minimal

    version 0.

    1A.24. Definition . (i) The following types of TT 0

    TT A are often used.0 c , 1 00, 2 (00)0, .

    In general0 c and k + 1 k0.

    Note that rk( n) = n. That overloading of n as element of N and as type will usuallydisambiguated by stating the type n for the latter case.

    (ii) Dene n k by cases on n .

    0k 0;(n + 1) k nk0.

    For example10 0;12 000;23 1110;

    1220 (00)(00)((00)0)0.Notice that rk( nk ) = rk( n), for k > 0.

    The notation nk is used only for nN. In the following lemma the notation A1 Aawith subscripts denotes as usual a sequence of types.1A.25. Lemma . (i) Every type A of is of the form

    A A1A2Aa.(ii) Every type A of 0 is of the form A A1A2Aa0.

    (iii) rk( A1A2Aa) = max {rk( Ai ) + 1 | 1 i a}.Proof. (i) By induction on the structure (depth) of A. If A , then this holds fora = 0. If A BC , then by the induction hypothesis one hasC C 1C c . Hence A BC 1C c .(ii) Similar to (i).

    (iii) By induction on a .1A.26. Notation . Let A

    TT A and suppose A

    A1

    A2

    Aa

    . Then the Ai

    are called the components of A. We writearity (A) a,

    A(i) Ai , for 1 i a;target (A) .

    Iterated components are denoted as follows

    A(i, j ) A(i)( j ).

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    33/701

    1A. The systems A 13

    1A.27. Remark . We usually work with A for an unspecied A, but will be morespecic in some cases.

    Different versions of A

    We will introduce several variants of A.

    The Curry version of A

    1A.28. Definition . The system A that was introduced in Denition 1A.14 assignstypes to untyped lambda terms. To be explicit it will be referred to as the Curry version and be denoted by A,Cu or Cu , as the set A often does not need to be specied.

    The Curry version of A is called implicitly typed because an expression like

    x.x K

    has a type, but it requires work to nd it. In 2.2 we will see that this work is feasible. Insystems more complex than A nding types in the implicit version is more complicatedand may even not be computable. This will be the case with second and higher ordertypes, like 2 (system F ), see Girard, Lafont, and Taylor [1989] , Barendregt [1992] orSrensen and Urzyczyn [2006] for a description of that system and Wells [1999] for theundecidability.

    The Church version Ch of A

    The rst variant of Cu is the Church version of A, denoted by A,Ch or Ch . Inthis theory the types are assigned to embellished terms in which the variables (free and

    bound) come with types attached. For example the Curry style type assignments

    Cu (x.x ) : AA (1Cu )

    y:A Cu (x.xy ) : (AB )B (2Cu )now become

    (x A .xA)Ch (AA) (1Ch )

    (x AB .xAB yA)Ch ((AB )B ) (2Ch )

    1A.29. Definition . Let A be a set of type atoms. The Church version of A, notation A,Ch or Ch if A is not emphasized, is dened as follows. The system has the same setof types TT A as A,Cu .

    (i) The set of term variables is different: each such variable is coupled with a uniquetype. This in such a way that every type has innitely many variables coupled to it. Sowe take

    VTT {x t (x) | xV},where t : VTT A is a xed map such that t 1(A) is innite for all ATT A. So we have

    {xA , yA , zA , } VTT is innite for all ATT A;xA , xBV

    TT A B, for all A, BTT A.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    34/701

    14 1. The simply typed lambda calculus

    (ii) The set of terms of type A, notation Ch (A), is dened as follows.

    xACh (A);

    M

    Ch (AB ), N Ch (A) (MN )Ch (B );M

    Ch (B ) (x A .M )Ch (AB ).

    Figure 6. The system Ch of typed terms a la Church(iii) The set of terms of Ch , notation Ch , is dened as

    Ch ATT

    Ch (A).

    For example

    yB AxB Ch (A);

    x A .yB A Ch (ABA);

    x A .xA Ch (AA).

    1A.30. Definition . On Ch we dene the following notions of reduction.

    (x A .M )N M [xA : = N ] ( )x A .Mx A M, if xA /FV( M ) ( )Figure 7. -contraction rules for Ch

    It will be shown in Proposition 1B.10 that Ch (A) is closed under -reduction; i.e.this reduction preserves the type of a typed term.

    As usual, see B[1984], these notions of reduction generate the corresponding reductionrelations. Also there are the corresponding conversion relations = , = and = . Termsin Ch will often be considered modulo = or = . The notation M = N , meansM = N by default.

    1A.31. Definition (Type substitution ). For M Ch , A, and BTT

    A we dene theresult of substituting B for in M , notation M [ := B ], inductively as follows.

    M M [ := B]

    xA xA[ := B ]

    P Q (P [ := B ])(Q[ := B])

    x A .P x A[ := B ].P [ := B]

    1A.32. Notation . A term like ( f 1x0.f 1(f 1x0))Ch (100) will also be written as

    f 1x0.f (fx )

    just indicating the types of the bound variables. This notation is analogous to the onein the de Bruijn version of A that follows. Sometimes we will even write fx.f (fx ).We will come back to this notational issue in section 1B.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    35/701

    1A. The systems A 15

    The de Bruijn version dB of A

    There is the following disadvantage about the Church systems. Consider

    I x A .xA .

    In the next volume we will consider dependent types coming from the Automath languagefamily, see Nederpelt, Geuvers, and de Vrijer [1994] , designed for formalizing argumentsand proof-checking 5. These are types that depend on a term variable (ranging overanother type). An intuitive example is An , where n is a variable ranging over naturalnumbers. A more formal example is P x, where x : A and P : ATT . In this way typesmay contain redexes and we may have the following reduction

    I (x A .xA) (x A.xA),

    in case A

    A , by reducing only the rst A to A . The question now is whether x A

    binds the xA . If we write I as

    I x :A.x,

    then this problem disappears

    x :A.x x :A .x.

    As the second occurrence of x is implicitly typed with the same type as the rst, theintended meaning is correct. In the following system A,dB this idea is formalized.

    1A.33. Definition . The second variant of Cu is the de Bruijn version of A, denotedby A,dB or dB . Now only bound variables get ornamented with types, but only at the

    binding stage. The examples (1 Cu ), (2Cu ) now become

    dB (x :A.x ) : AA (1dB )

    y:A dB (x :(AB ).xy) : (AB )B (2dB )1A.34. Definition . The system dB starts with a collection of pseudo-terms , notationdB , dened by the following simplied syntax.

    dB ::= V |dB dB |V:TT .dBFor example x :.x and ( x :.x )(y : .y) are pseudo-terms. As we will see, the rst oneis a legal , i.e. actually typable, term in A,dB , whereas the second one is not.

    1A.35. Definition . (i) A basis consists of a set of declarations x:A with distinct termvariables x and types ATT

    A. This is exactly the same as for A,Cu .(ii) The system of type assignment obtaining statements M : A with a basis,M a pseudoterm and A a type, is dened as follows.

    5 The proof-assistant Coq , see the URL and Bertot and Casteran [2004] , is a modernversion of Automath in which one uses for formal proofs typed lambda terms in the de Bruijn style.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    36/701

    16 1. The simply typed lambda calculus

    (axiom) x : A, if (x:A);

    (-elimination) M : (A B ) N : A ; (MN ) : B

    (-introduction), x:AM : B .

    (x :A.M ) : (A B )Figure 8. The system dB a la de Bruijn

    Provability in dB is denoted by dB . Thus the legal terms of dB are dened bymaking a selection from the context-free language dB . That x :.x is legal followsfrom x: dB x : using the -introduction rule. That ( x :.x )(y : .y) is not legalfollows from Proposition 1B.12. These legal terms do not form a context-free language,do exercise 1E.7. For closed terms the Church and the de Bruijn notation are isomorphic.

    1B. First properties and comparisons

    In this section we will present simple properties of the systems A. Deeper properties,like normalization of typable terms, will be considered in Sections 2A, 2B.

    Properties of CuWe start with properties of the system Cu .

    1B.1. Proposition (Weakening lemma for Cu

    ).Suppose M : A and is a basis with

    . Then M : A.Proof. By induction on the derivation of M : A.1B.2. Lemma (Free variable lemma for Cu ). For a set X of variables write

    X = {x:A |xX}.(i) Suppose M : A. Then F V (M ) dom() .(ii) If M : A, then FV( M ) M : A.

    Proof. (i), (ii) By induction on the generation of M : A.The following result is related to the fact that the system is syntax directed, i.e.statements M : A have a unique proof.1B.3. Proposition (Inversion Lemma for Cu ).

    (i) x : A (x:A).(ii) MN : A BTT [ M : BA & N : B].(iii) x.M : A B, C TT [A BC & , x:B M : C ].Proof. (i) Suppose x : A holds in . The last rule in a derivation of this statementcannot be an application or an abstraction, since x is not of the right form. Thereforeit must be an axiom, i.e. ( x:A).(ii), (iii) The other two implications are proved similarly.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    37/701

    1B. First properties and comparisons 17

    1B.4. Corollary . Let Cu xN 1 N k : B. Then there exist unique A1, ,AkTTsuch that

    Cu N i : A i , 1

    i

    k, and x:(A1

    Ak

    B )

    .Proof. By applying k-times (ii) and then (i) of the proposition.1B.5. Proposition (Substitution lemma for Cu ).

    (i) , x:AM : B & N : A M [x: = N ] : B .(ii) M : A [ := B] M : A[ := B].Proof. (i) By induction on the derivation of , x:A M : B . WriteP P [x: = N ].Case 1. , x:A M : B is an axiom, hence M y and ( y:B ){x:A}.Subcase 1.1. ( y:B ). Then y x and M y[x:N ] y : B .Subcase 1.2. y:B x:A. Then y x and B A, hence M N : A B .Case 2. , x:A M : B follows from , x:A F : C B , , x:A G : C andF G

    M . By the induction hypothesis one has

    F : C

    B and

    G : C . Hence

    (F G ) F G: B .Case 3. , x:A M : B follows from , x:A, y:D G : E , B DE and y.G M .By the induction hypothesis , y:D G: E , hence (y.G ) y.G : DE B .(ii) Similarly.

    1B.6. Proposition (Subject reduction property for Cu ).

    M : A & M N N : A.Proof. It suffices to show this for a one-step -reduction, denoted by . Suppose M : A and M N in order to show that N : A. We do this by induction onthe derivation of M : A.Case 1. M : A is an axiom. Then M is a variable, contradicting M N . Hencethis case cannot occur.Case 2. M : A is F P : A and is a direct consequence of F : BA and P : B . Since F P M N we can have three subcases.Subcase 2.1. N F P with F F .Subcase 2.2. N F P with P P .In these two subcases it follows that N : A, by using twice the IH.Subcase 2.3. F x.G and N G[x: = P ]. Since

    x.G : BA & P : B,it follows by the inversion Lemma 1B.3 for that

    , xG : A & P : B.

    Therefore by the substitution Lemma 1B.5 for it follows that G[x: = P ] : A, i.e. N : A.

    Case 3. M : A is x.P : BC and follows from , xP : C .Subcase 3.1. N x.P with P P . One has , x:B P : C by the inductionhypothesis, hence (x.P ) : (BC ), i.e. N : A.Subcase 3.2. P Nx and x / FV( N ). Now , x:B Nx : C follows by Lemma1B.3(ii) from , x:B N : (B C ) and , x:B x : B , for some B . Then B = B , byLemma 1B.3(i), hence by Lemma 1B.2(ii) we have N : (BC ) = A.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    38/701

    18 1. The simply typed lambda calculus

    The following result also holds for Ch and dB , see Proposition 1B.28 and Exercise2E.4.1B.7. Corollary (Church-Rosser theorem for Cu ). On typable terms of Cu the Church-Rosser theorem holds for the notions of reduction and .

    (i) Let M, N 1, N 2(A). Then

    M ( ) N 1 & M ( ) N 2 Z (A).N 1 ( ) Z & N 2 ( ) Z.(ii) Let M, N

    (A). Then

    M = ( ) N Z (A).M ( ) Z & N ( ) Z.Proof. By the Church-Rosser theorems for and on untyped terms, Theorem1A.9, and Proposition 1B.6.

    Properties of Ch

    Not all the properties of Cu are meaningful for Ch . Those that are have to be refor-mulated slightly.1B.8. Proposition (Inversion Lemma for Ch ).

    (i) xBCh (A) B = A.(ii) (MN )Ch (A) BTT .[M Ch (BA) & N Ch (B )].(iii) (x B .M )Ch (A) C TT .[A = ( BC ) & M Ch (C )].

    Proof. As before.Substitution of a term N

    Ch (B ) for a typed variable xB is dened as usual.We show

    that the resulting term keeps its type.1B.9. Proposition (Substitution lemma for Ch ). Let A, B

    TT . Then (i) M

    Ch (A), N Ch (B ) (M [xB := N ])Ch (A).(ii) M Ch (A) M [ := B ]Ch (A[ := B ]).

    Proof. (i), (ii) By induction on the structure of M .1B.10. Proposition (Closure under reduction for Ch ). Let ATT . Then (i) M

    Ch (A) & M N N Ch (A).

    (ii) M Ch (A) & M N N Ch (A).

    (iii) M Ch (A) and M N . Then N

    Ch (A).

    Proof. (i) Suppose M (x B .P )QCh (A). Then by Proposition 1B.8(ii) one hasx B .P Ch (B A) and QCh (B ). Then B = B , and P Ch (A), by Proposition1B.8(iii). Therefore N P [xB := Q]Ch (A), by Proposition 1B.9.(ii) Suppose M (x B .Nx B )Ch (A). Then A = BC and NxBCh (C ), byProposition 1B.8(iii). But then N Ch (BC ) by Proposition 1B.8(i) and (ii).

    (iii) By induction on the relation , using (i), (ii).The Church-Rosser theorem holds for -reduction on Ch . The proof is postponed

    until Proposition 1B.28.Proposition [Church-Rosser theorem for Ch ] On typable terms of Ch the CR prop-erty holds for the notions of reduction and .

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    39/701

    1B. First properties and comparisons 19

    (i) Let M, N 1, N 2Ch (A). Then

    M ( ) N 1 & M ( ) N 2 Z Ch (A).N 1 ( ) Z & N 2 ( ) Z.(ii) Let M, N

    Ch (A). Then

    M = ( ) N Z Ch (A).M ( ) Z & N ( ) Z.The following property called uniqueness of types does not hold for Cu . It is instruc-

    tive to nd out where the proof breaks down for that system.1B.11. Proposition (Unicity of types for Ch ). Let A, BTT . Then

    M Ch (A) & M

    Ch (B ) A = B.

    Proof. By induction on the structure of M , using the inversion lemma 1B.8.

    Properties of dB

    We mention the rst properties of dB , the proofs being similar to those for Ch .

    1B.12. Proposition (Inversion Lemma for dB ).

    (i) x : A (x:A).(ii) MN : A BTT [M : BA & N : B].(iii) x :B.M : A C TT [A BC & , x:B M : C ].1B.13. Proposition (Substitution lemma for dB ).

    (i) , x:A

    M : B &

    N : A

    M [x: = N ] : B .(ii) M : A [ := B] M : A[ := B].

    1B.14. Proposition (Subject reduction property for dB ).

    M : A & M N N : A.1B.15. Proposition (Church-Rosser theorem for dB ). dB satises CR.

    (i) Let M, N 1, N 2dB , (A). Then

    M ( ) N 1 & M ( ) N 2 Z dB , (A).N 1 ( ) Z & N 2 ( ) Z.(ii) Let M, N

    dB , (A). Then

    M = ( ) N Z dB , (A).M ( ) Z & N ( ) Z.Proof. Do Exercise 2E.4.

    It is instructive to see why the following result fails if the two contexts are different.1B.16. Proposition (Unicity of types for dB ). Let A, BTT . Then

    M : A & M : B A = B.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    40/701

    20 1. The simply typed lambda calculus

    Equivalence of the systems

    It may seem a bit exaggerated to have three versions of the simply typed lambda calculus: Cu

    , Ch

    and dB

    . But this is convenient.

    The Curry version inspired some implicitly typed programming languages like ML,Miranda, Haskell and Clean. Types are being derived. Since implicit typing makesprogramming easier, we want to consider this system.

    The use of explicit typing becomes essential for extensions of Cu . For example in thesystem 2, also called system F , with second order (polymorphic) types, type checkingis not decidable, see Wells [1999], and hence one needs the explicit versions. The twoexplicitly typed systems Ch and dB are basically isomorphic as shown above. Thesesystems have a very canonical semantics if the version Ch is used.

    We want two versions because the version dB can be extended more naturally to morepowerful type systems in which there is a notion of reduction on the types (those withdependent types and those with higher order types, see e.g. Barendregt [1992] ) gener-ated simultaneously. Also there are important extensions in which there is a reductionrelation on types, e.g. in the system with higher order types. The classical versionof gives problems. For example, if A B , does one have that x A .xA x A .xB ?Moreover, is the xB bound by the x A? By denoting x A .xA as x :A.x , as is done in Ch , these problems do not arise. The possibility that types reduce is so important, thatfor explicitly typed extensions of one needs to use the dB-versions.

    The situation is not so bad as it may seem, since the three systems and their differencesare easy to memorize. Just look at the following examples.

    x.xy Cu ,{y:0} ((00)0) (Curry);x :(00).xy dB ,{y:0} ((00)0) (de Bruijn);

    x 00.x00y0

    Ch ((00)0) (Church).Hence for good reasons one nds all the three versions of in the literature.

    In this Part I of the book we are interested in untyped lambda terms that can betyped using simple types. We will see that up to substitution this typing is unique. Forexample

    fx.f (fx )

    can have as type (0 0)00, but also ( AA)AA for any type A. Also there is asimple algorithm to nd all possible types for an untyped lambda term, see Section 2C.We are interested in typable terms M , among the untyped lambda terms , using

    Curry typing. Since we are at the same time also interested in the types of the subtermsof M , the Church typing is a convenient notation. Moreover, this information is almostuniquely determined once the type A of M is known or required. By this we mean thatthe Church typing is uniquely determined by A for M not containing a K-redex (of theform (x.M )N with x /FV( M )). If M does contain a K-redex, then the type of the -nf M nf of M is still uniquely determined by A. For example the Church typing of M KIy of type is (x y .x )(z .z )y . The type is not determined.But for the -nf of M , the term I, the Church typing can only be I z .z . SeeExercise 2E.3.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    41/701

    1B. First properties and comparisons 21

    If a type is not explicitly given, then possible types for M can be obtained schematicallyfrom groundtypes. By this we mean that e.g. the term I x.x has a Church versionx .x and type , where one can substitute any ATT A for . We will study thisin greater detail in Section 2C.

    Comparing Cu and Ch

    There are canonical translations between Ch and Cu .1B.17. Definition . There is a forgetful map | | : Ch dened as follows:

    |xA| x;|MN | |M ||N |;

    |x :A.M | x. |M |.The map | | just erases all type ornamentations of a term in Ch . The following resultstates that terms in the Church version project to legal terms in the Curry version of A. Conversely, legal terms in Cu can be lifted to terms in Ch .1B.18. Definition . Let M

    Ch . Then we write

    M {x:A | xAFV( M )}.1B.19. Proposition . (i) Let M

    Ch . Then

    M Ch (A) M Cu |M | : A,.

    (ii) Let M . Then

    Cu M : A M Ch (A).|M | M.

    Proof. (i) By induction on the generation of Ch . Since variables have a unique type

    M is well-dened and P Q = P Q .(ii) () By induction on the proof of M : A with the induction loading thatM = . () By (i).Notice that the converse of Proposition 1B.19(i) is not true: one has

    Cu |x A .xA| (x.x ) : (AB )(AB ),

    but ( x A .xA) / Ch ((AB )(AB )).

    1B.20. Corollary . In particular, for a type ATT one has

    A is inhabited in Cu A is inhabited in Ch .Proof. Immediate.

    For normal terms one can do better than Proposition 1B.19. First a structural result.1B.21. Proposition . Let M be in nf. Then M x 1 xn .yM 1 M m , with n, m 0 and the M 1, , M m again in nf.Proof. By induction on the structure of M . See Barendregt [1984], Corollary 8.3.8 forsome details if necessary.

    In order to prove results about the set NF of -nfs, it is useful to introduce the subsetvNF of -nfs not starting with a , but with a free variable. These two sets can bedened by a simultaneous recursion known from context-free languages.

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    42/701

    22 1. The simply typed lambda calculus

    1B.22. Definition . The sets vNF and NF of are dened by the following grammar.

    vNF ::= x | vNF NFNF ::= vNF | x.NF1B.23. Proposition . For M one has

    M is in -nf M NF.Proof. By simultaneous induction it follows easily that

    M vNF M x N & M is in -nf;M NF M is in -nf .

    Conversely, for M in -nf by Proposition 1B.21 one has M x.yN 1 N k , with the N all in -nf. It follows by induction on the structure of such M that M NF.1B.24. Proposition . Assume that M

    is in -nf. Then

    Cu M : A implies that there is a unique M A;

    Ch (A) such that |M A; | M and M A ; .

    Proof. By induction on the generation of nfs given in Denition 1B.22.Case M x N , with N i in -nf. By Proposition 1B.4 one has ( x:A1AkA)and Cu N i : A i . As M A ; , we must have xA1 Ak AFV( M A; ). By the IH

    there are unique N A i ,i for the N i . Then M A; xA1 Ak AN A1 ,1 N Ak ,k is theunique way to type M

    Case M x.N , with N in -nf. Then by Proposition 1B.3 we have , x:B Cu N : C and A = BC . By the IH there is a unique N C ;,x :B for N . It is easy to verify thatM A; x B .N C ;,x :B is the unique way to type M .Notation. If M is a closed -nf, then we write M A for M A;.1B.25. Corollary . (i) Let M

    Ch be a closed -nf. Then |M | is a closed -nf and

    M Ch (A) [Cu |M | : A & |M |A M ].

    (ii) Let M be a closed -nf and Cu M : A. Then M A is the unique term satisfying

    M ACh (A) & |M A| M.

    (iii) The following two sets are isomorphic

    {M | M is closed, in -nf, and Cu M : A};{M Ch (A) | M is closed and in -nf }.

    Proof. (i) By the unicity of M A .(ii) By the Proposition.

    (iii) By (i) and (ii).The applicability of this result will be enhanced once we know that every term typablein A (whatever version) has a -nf.

    The translation | | preserves reduction and conversion.1B.26. Proposition . Let R = , or . Then

  • 8/11/2019 (Perspectives in Logic) Henk Barendregt, Wil Dekkers, Richard Statman-Lambda Calculus With Types-Cambridge U

    43/701

    1B. First properties and comparisons 23

    (i) Let M, N Ch . Then M R N |M | R |N |. In diagram

    M

    | |

    R N

    | |

    |M | R |N |(ii) Let M, N

    Cu

    , (A), M = |M |, with M Ch (A). Then M R N N Ch (A).

    |N | N & M R N .In diagram

    M

    | |R

    N

    | |

    M R N

    (iii) Let M, N Cu

    , (A), N = |N |, with N Ch (A). Then M R N M Ch (A).

    |M | M & M R N .In diagram

    M

    | |R

    N

    | |

    M R N

    (iv) The same results hold for R and R-conversion.Proof. Easy.1B.27. Corollary . Dene the following two statements.

    SN( Cu ) M Cu ,