Type theory and functional programming

This book explores the role of Martin-Lof s constructive type theory in computer programming. The main focus of the book is how the theory can be successfully applied in practice. Introductory sections provide the necessary background in logic, lambda calculus and constructive mathematics, and exercises and chapter summaries are included to reinforce understanding.

[1]  David A. Basin,et al.  Verification Of Combinational Logic in Nuprl , 1989, Hardware Specification, Verification and Synthesis.

[2]  P. Mendler Inductive Definition in Type Theory , 1988 .

[3]  D. Prawitz Natural Deduction: A Proof-Theoretical Study , 1965 .

[4]  A. Troelstra Metamathematical investigation of intuitionistic arithmetic and analysis , 1973 .

[5]  Peter Schroeder-Heister,et al.  Generalized rules for quantifiers and the completeness of the intuitionistic operators &, ν, ⊃, λ, ∀, ε , 1984 .

[6]  Simon J. Thompson Laws in Miranda , 1986, LFP '86.

[7]  Robert L. Constable,et al.  Proofs as programs , 1985, TOPL.

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

[9]  Anne Sjerp Troelstra Strong normalization for typed terms with surjective pairing , 1986, Notre Dame J. Formal Log..

[10]  C. Yates Recursive Functions , 1970, Nature.

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

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

[13]  S. Hayashi,et al.  PX, a computational logic , 1988 .

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

[15]  H. Enderton Elements of Set Theory , 1977 .

[16]  J. Y. Girard,et al.  Interpretation fonctionelle et elimination des coupures dans l'aritmetique d'ordre superieur , 1972 .

[17]  Gérard Huet,et al.  Logical Foundations of Functional Programming , 1990 .

[18]  Susumu Hayashi,et al.  An introduction to PX , 1990 .

[19]  Peter Schroeder-Heister,et al.  The completeness of intuitionistic logic with respect to a validity concept based on an inversion principle , 1983, J. Philos. Log..

[20]  Haskell B. Curry,et al.  Combinatory Logic, Volume I , 1959 .

[21]  R. J. M. Hughes,et al.  Design and Implementation of Programming Languages , 1977, Lecture Notes in Computer Science.

[22]  M. Beeson Foundations of Constructive Mathematics , 1985 .

[23]  Bengt Nordström,et al.  Types and Specifications , 1983, IFIP Congress.

[24]  Robin Milner,et al.  On using Edinburgh LCF to prove the correctness of a parsing algorithm , 1982 .

[25]  Lawrence C. Paulson,et al.  Logic and computation - interactive proof with Cambridge LCF , 1987, Cambridge tracts in theoretical computer science.

[26]  Albert R. Meyer,et al.  "Type" is not a type , 1986, POPL '86.

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

[28]  Raymond Turner,et al.  A Constructive Set Theory for Program Development , 1988, FSTTCS.

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

[30]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[31]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[32]  Gérard Huet A uniform approach to type theory , 1990 .

[33]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[34]  Christine Paulin-Mohring,et al.  Extracting ω's programs from proofs in the calculus of constructions , 1989, POPL '89.

[35]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[36]  J. Lambek,et al.  Introduction to higher order categorical logic , 1986 .

[37]  Paul Chisholm,et al.  Derivation of a Parsing Algorithm in Martin-Löf's Theory of Types , 1987, Sci. Comput. Program..

[38]  E. Van Gestel,et al.  Programming in Martin-Löf's Type Theory: an Introduction : Bengt Nordström, Kent Petersson and Jan M. Smith Intl. Series of Monographs on Computer Science, Vol. 7, Oxford Science Publications, Oxford, 1990, 231 pages , 1991 .

[39]  B. Russell,et al.  Principia Mathematica Vol. I , 1910 .

[40]  Dan Synek,et al.  A Set Constructor for Inductive Sets in Martin-Löf's Type Theory , 1989, Category Theory and Computer Science.

[41]  Robert L. Constable,et al.  Formalized Metareasoning in Type Theory , 1986, LICS.

[42]  Von Kurt Gödel,et al.  ÜBER EINE BISHER NOCH NICHT BENÜTZTE ERWEITERUNG DES FINITEN STANDPUNKTES , 1958 .

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

[44]  Anne Sjerp Troelstra,et al.  On the Syntax of Martin-Löf's Type Theories , 1987, Theor. Comput. Sci..

[45]  Jan M. Smith,et al.  An interpretation of Martin-Löf's type theory in a type-free theory of propositions , 1984, Journal of Symbolic Logic.

[46]  P. Martin-Löf An Intuitionistic Theory of Types: Predicative Part , 1975 .

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

[48]  S. Thompson Functional programming: executable specifications and program transformations , 1989, IWSSD '89.

[49]  Philip Wadler,et al.  How to make ad-hoc polymorphism less ad hoc , 1989, POPL '89.

[50]  John Hughes,et al.  Why Functional Programming Matters , 1989, Comput. J..

[51]  Robert L. Constable,et al.  Partial Objects In Constructive Type Theory , 1987, Logic in Computer Science.

[52]  S. Allen A Non-Type-Theoretic Semantics for Type-Theoretic Language , 1987 .

[53]  Robert Harper Introduction to standard ml , 1986 .

[54]  William A. Howard,et al.  The formulae-as-types notion of construction , 1969 .

[55]  David Turner,et al.  Research topics in functional programming , 1990 .

[56]  Yiannis N. Moschovakis,et al.  Elementary induction on abstract structures , 1974 .

[57]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[58]  Thierry Coquand,et al.  An Analysis of Girard's Paradox , 1986, LICS.

[59]  Thomas Johnsson,et al.  Lambda Lifting: Treansforming Programs to Recursive Equations , 1985, FPCA.

[60]  Lawrence C. Paulson,et al.  Constructing Recursion Operators in Intuitionistic Type Theory , 1986, J. Symb. Comput..

[61]  P. Aczel Frege Structures and the Notions of Proposition, Truth and Set* , 1980 .

[62]  Scott F. Smith Partial Objects in Type Theory , 1988 .

[63]  P. Andrews,et al.  A transfinite type theory with type variables , 1965 .

[64]  Anne Salvesen,et al.  The strength of the subset type in Martin-Lof's type theory , 1988, [1988] Proceedings. Third Annual Information Symposium on Logic in Computer Science.

[65]  Chris Reade,et al.  Elements of functional programming , 1989, International computer science series.

[66]  David B. MacQueen,et al.  A higher-order type system for functional programming , 1990 .

[67]  A. S. Troelstra,et al.  Realizability and Intuitionistic Logic , 1984 .

[68]  Douglas James Howe Automating reasoning in an implementation of constructive type theory , 1988 .

[69]  Stuart Allen A Non-Type-Theoretic Definition of Martin-Löf's Types , 1987, LICS.

[70]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

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

[72]  Anne Salvesen On specifications, subset types and interpretation of proposition in type theory , 1992, BIT Comput. Sci. Sect..

[73]  Jan M. Smith The Independence of Peano's Fourth Axiom from Martin-Lof's Type Theory Without Universes , 1988, J. Symb. Log..

[74]  Rance Cleaveland,et al.  Implementing mathematics with the Nuprl proof development system , 1986 .

[75]  S. Feferman Constructive Theories of Functions and Classes , 1979 .

[76]  Rod M. Burstall,et al.  HOPE: An experimental applicative language , 1980, LISP Conference.

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

[78]  Bengt Nordström Multilevel functions in Martin-Löf's type theory , 1985, Programs as Data Objects.

[79]  S. Abramsky The lazy lambda calculus , 1990 .

[80]  D. Scott Identity and existence in intuitionistic logic , 1979 .

[81]  Martin C. Henson Information Loss in the Programming Logic TK , 1990, Programming Concepts and Methods.

[82]  David B. MacQueen Using dependent types to express modular structure , 1986, POPL '86.

[83]  Per Martin-Löuf About Models for Intuitionistic Type Theories and the Notion of Definitional Equality , 1975 .

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

[85]  Per Martin-Löf,et al.  Constructive mathematics and computer programming , 1984 .

[86]  P. Martin-Löf Notes on constructive mathematics , 1970 .

[87]  Stephen Cole Kleene,et al.  On the interpretation of intuitionistic number theory , 1945, Journal of Symbolic Logic.

[88]  Bart Jacobs,et al.  The inconsistency of higher order extensions of Martin-Löf's type theory , 1989, J. Philos. Log..

[89]  de Ng Dick Bruijn Automath A Language for Mathematics , 1973 .

[90]  Ronald Harrop,et al.  Concerning formulas of the types A→B ν C,A →(Ex)B(x) in intuitionistic formal systems , 1960, Journal of Symbolic Logic.

[91]  Daniel Leivant,et al.  The Expressiveness of Simple and Second-Order Type Structures , 1983, JACM.

[92]  Simon J. Thompson,et al.  Lawful Functions and Program Verification in Miranda , 1990, Sci. Comput. Program..