Type Theory and Formal Proof: An Introduction

Type theory is a fast-evolving field at the crossroads of logic, computer science and mathematics. This gentle step-by-step introduction is ideal for graduate students and researchers who need to understand the ins and outs of the mathematical machinery, the role of logical rules therein, the essential contribution of definitions and the decisive nature of well-structured proofs. The authors begin with untyped lambda calculus and proceed to several fundamental type systems, including the well-known and powerful Calculus of Constructions. The book also covers the essence of proof checking and proof development, and the use of dependent type theory to formalise mathematics. The only prerequisite is a basic knowledge of undergraduate mathematics. Carefully chosen examples illustrate the theory throughout. Each chapter ends with a summary of the content, some historical context, suggestions for further reading and a selection of exercises to help readers familiarise themselves with the material.

[1]  Herman Geuvers,et al.  Proof-Assistants Using Dependent Type Systems , 2001, Handbook of Automated Reasoning.

[2]  Martha Kneale,et al.  The development of logic , 1963 .

[3]  F. J. Pelletier A Brief History of Natural Deduction , 1999 .

[4]  Rp Rob Nederpelt,et al.  N.G. de Bruijn’s contribution to the formalization of mathematics , 2013 .

[5]  A. Church A Set of Postulates for the Foundation of Logic , 1932 .

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

[7]  B. Russell The Principles of Mathematics , 1938 .

[8]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

[9]  P. Bernays,et al.  Grundlagen der Mathematik , 1934 .

[10]  J. V. Tucker,et al.  Sets: Naïve, Axiomatic and Applied , 1979 .

[11]  Georges Gonthier,et al.  Formal Proof—The Four- Color Theorem , 2008 .

[12]  L. S. van Benthem Jutting Typing in Pure Type Systems , 1993, Inf. Comput..

[13]  Fairouz Kamareddine,et al.  Logical Reasoning: A First Course , 2004 .

[14]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[15]  Andrea Asperti,et al.  The Matita Interactive Theorem Prover , 2011, CADE.

[16]  H. Simmons Derivation and Computation: Taking the Curry-Howard Correspondence Seriously , 2000 .

[17]  Per Martin-Löf,et al.  Intuitionistic type theory , 1984, Studies in proof theory.

[18]  Christos H. Papadimitriou,et al.  Elements of the Theory of Computation , 1997, SIGA.

[19]  J. Girard Une Extension De ĽInterpretation De Gödel a ĽAnalyse, Et Son Application a ĽElimination Des Coupures Dans ĽAnalyse Et La Theorie Des Types , 1971 .

[20]  Herman Geuvers,et al.  A short and flexible proof of Strong Normalization for the Calculus of Constructions , 1994, TYPES.

[21]  Tobias Nipkow,et al.  A Revision of the Proof of the Kepler Conjecture , 2009, Discret. Comput. Geom..

[22]  Corrado Böhm,et al.  Automatic Synthesis of Typed Lambda-Programs on Term Algebras , 1985, Theor. Comput. Sci..

[23]  Ulf Norell,et al.  A Brief Overview of Agda - A Functional Language with Dependent Types , 2009, TPHOLs.

[24]  Helmut Schwichtenberg,et al.  Definierbare Funktionen imλ-Kalkül mit Typen , 1975, Archive for Mathematical Logic.

[25]  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 .

[26]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[27]  Michael J. C. Gordon,et al.  From LCF to HOL: a short history , 2000, Proof, Language, and Interaction.

[28]  Richard Statman,et al.  Lambda Calculus with Types , 2013, Perspectives in logic.

[29]  de Ng Dick Bruijn,et al.  A survey of the project Automath , 1980 .

[30]  Elliott Mendelson,et al.  Introduction to Mathematical Logic , 1979 .

[31]  Alonzo Church,et al.  A note on the Entscheidungsproblem , 1936, Journal of Symbolic Logic.

[32]  Fairouz Kamareddine,et al.  A Modern Perspective on Type Theory: From Its Origins Until Today , 2004 .

[33]  E. Zermelo Untersuchungen über die Grundlagen der Mengenlehre. I , 1908 .

[34]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[35]  Jean-Yves Girard,et al.  The System F of Variable Types, Fifteen Years Later , 1986, Theor. Comput. Sci..

[36]  H. Cantor Ueber eine Eigenschaft des Inbegriffs aller reellen algebraischen Zahlen. , 1984 .

[37]  Bengt Nordström,et al.  The ALF Proof Editor and Its Proof Engine , 1994, TYPES.

[38]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[39]  Leslie Lamport,et al.  Latex : A Document Preparation System , 1985 .

[40]  M. Sørensen,et al.  Lectures on the Curry-Howard Isomorphism , 2013 .

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

[42]  Herman Geuvers,et al.  Rewriting for Fitch Style Natural Deductions , 2004, RTA.

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

[44]  J. Girard,et al.  Proofs and types , 1989 .

[45]  H. B. Curry Modified basic functionality in combinatory logic , 1969 .

[46]  A. Turing On Computable Numbers, with an Application to the Entscheidungsproblem. , 1937 .

[47]  J. Heijenoort From Frege to Gödel: A Source Book in Mathematical Logic, 1879-1931 , 1967 .

[48]  J. Seldin Progress report on generalized functionality , 1979 .

[49]  John McCarthy,et al.  LISP 1.5 Programmer's Manual , 1962 .

[50]  J. Roger Hindley,et al.  Lambda-Calculus and Combinators in the 20th Century , 2009, Logic from Russell to Church.

[51]  J. A. Robinson,et al.  A Machine-Oriented Logic Based on the Resolution Principle , 1965, JACM.

[52]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

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

[54]  Jeffery I. Zucker Formalization of Classical Mathematics in Automath , 1994 .

[55]  Thomas Sudkamp Languages and Machines: An Introduction to the Theory of Computer Science , 2005 .

[56]  F. B. Fitch Symbolic Logic, An Introduction , 1953 .

[57]  J. Roger Hindley,et al.  Lambda-Calculus and Combinators: An Introduction , 2008 .

[58]  J. V. Tucker,et al.  Basic Simple Type Theory , 1997 .

[59]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[60]  G.D. Plotkin,et al.  LCF Considered as a Programming Language , 1977, Theor. Comput. Sci..

[61]  F. Dechesne,et al.  N.G. de Bruijn (1918–2012) and his Road to Automath, the Earliest Proof Checker , 2012 .

[62]  Fairouz Kamareddine,et al.  Types in logic and mathematics before 1940 , 2002, Bull. Symb. Log..

[63]  Frank Pfenning,et al.  Logical Frameworks—A Brief Introduction , 2002 .

[64]  James McKinna,et al.  Checking Algorithms for Pure Type Systems , 1994, TYPES.

[65]  K. Gödel Über formal unentscheidbare Sätze der Principia Mathematica und verwandter Systeme I , 1931 .

[66]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[67]  J. B. Wells,et al.  Typability and type checking in the second-order /spl lambda/-calculus are equivalent and undecidable , 1994, Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science.

[68]  Erik Poll,et al.  Pure Type Systems with Definitions , 1994, LFCS.

[69]  van Dt Diederik Daalen,et al.  A description of Automath and some aspects of its language theory , 1973 .

[70]  A. Church An Unsolvable Problem of Elementary Number Theory , 1936 .

[71]  Herman Geuvers,et al.  Induction Is Not Derivable in Second Order Dependent Type Theory , 2001, TLCA.

[72]  Nonie K. Lesaux,et al.  The language of mathematics: investigating the ways language counts for children's mathematical development. , 2013, Journal of experimental child psychology.

[73]  Tobias Nipkow,et al.  The Isabelle Reference Manual , 2007 .

[74]  F. Ramsey The foundations of mathematics , 1932 .

[75]  T. Coquand Une théorie des constructions , 1985 .

[76]  Rp Rob Nederpelt,et al.  De Bruijn's Automath and pure type systems , 2003 .

[77]  Zhaohui Luo,et al.  Computation and reasoning - a type theory for computer science , 1994, International series of monographs on computer science.

[78]  Luis E. Sanchis,et al.  Functionals defined by recursion , 1967, Notre Dame J. Formal Log..

[79]  G. Gentzen Untersuchungen über das logische Schließen. I , 1935 .

[80]  A. Troelstra,et al.  Constructivism in Mathematics: An Introduction , 1988 .

[81]  Bengt Nordström,et al.  Programming in Martin-Lo¨f's type theory: an introduction , 1990 .

[82]  Haskell B. Curry Grundlagen der kombinatorischen Logik , 1930 .

[83]  Masako Takahashi Parallel Reductions in lambda-Calculus , 1995, Inf. Comput..

[84]  Benjamin C. Pierce,et al.  Advanced Topics In Types And Programming Languages , 2004 .

[85]  William W. Tait,et al.  Intensional interpretations of functionals of finite type I , 1967, Journal of Symbolic Logic.

[86]  Jeremy Avigad,et al.  A Machine-Checked Proof of the Odd Order Theorem , 2013, ITP.

[87]  B. Russell Mathematical Logic as Based on the Theory of Types , 1908 .

[88]  J. H. Geuvers,et al.  Proof assistants: History, ideas and future , 2009 .

[89]  John C. Reynolds,et al.  Polymorphism is not Set-Theoretic , 1984, Semantics of Data Types.

[90]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[91]  Zhaohui Luo,et al.  ECC, an extended calculus of constructions , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.