Programming in Martin-Löf's Type Theory

data type, 179 abstraction, 14 Abstraction rule, 143 absurdity, 43 append, 68 application, 13 Application rule, 143 apply, 48, 148 arity of an expression, 18 Assumption rule, 123, 142 AUTOMATH, 8 axiom of choice, 115 Bishop, 6 Bool, 44 Bool rules, 44–45 Boolean, 44–45 Calculus of Constructions, 8 canonical expression, 26 cartesian product of a family of sets, 47–55, 148 case{i1,...,in}, 41 case, 151 Church, 17 combination, 15 combined expression, 17 conjunction, 74 cons, 67, 152 Constable, 6, 167 constructive mathematics, 6 context, 29, 139 Coquand, 3, 7, 8 Curry, 10 Curry-Howard interpretation, 6 Cut rule for elements in sets, 124 Cut rule for equal elements in sets, 124 Cut rule for equal sets, 123 Cut rule for propositions, 123 Cut rule for true propositions, 124 de Bruijn, 8, 10 definiendum, 19 definiens, 19 definitional equality of expressions, 15 Dijkstra, 167, 171 disjoint union of a family of sets, 81– 82, 149 disjoint union of two sets, 79–80, 150 Dummet, 6 El formation rule, 139 elimination rule, 35 empty set, 43 enumeration sets, 41–42, 151 Eq, 57 Eq rules, 60–61 equality as a proposition, 57, 117 between canonical elements, 27 between elements in a set, 29, 31, 37, 119, 121 between expressions, 15 between sets, 28, 30, 37, 118, 121 extensional, 57 identity between objects in a type, 138 identity between types, 138 intensional, 57 equality rule, 35 equality sets, 57–62, 150 examples: Bool has only the elements true and false, 161 A partitioning problem, 171 Decidable predicates, 162 Division by 2, 155 Even or odd, 159 Module for sets with a computable equality, 182 Stack of A elements, 182 Stack of natural numbers, 179 Stronger elimination rules, 163 existential quantifier, 81, 82 expressions, 13 arity, 18 canonical —, 26 combined —, 17 saturated —, 17 single —, 17 unsaturated —, 17 extensional equality, 57 wfalse, 44 Fermat’s last theorem, 4 formation rule, 35 Frege, 17

[1]  A. Kolmogoroff Zur Deutung der intuitionistischen Logik , 1932 .

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

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

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

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

[6]  I. G. BONNER CLAPPISON Editor , 1960, The Electric Power Engineering Handbook - Five Volume Set.

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

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

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

[10]  Rod M. Burstall,et al.  Proving Properties of Programs by Structural Induction , 1969, Comput. J..

[11]  Errett Bishop,et al.  Mathematics as a Numerical Language , 1970 .

[12]  H. Läuchli An Abstract Notion of Realizability for Which Intuitionistic Predicate Calculus is Complete , 1970 .

[13]  Fa Dick The mathematical language AUTOMATH, its usage and some of its extensions , 1970 .

[14]  Robert L. Constable,et al.  Constructive Mathematics and Automatic Program Writers , 1970, IFIP Congress.

[15]  G. Kreisel The Collected Papers of Gerhard Gentzen , 1971 .

[16]  Edsger W. Dijkstra,et al.  Structured programming , 1972, A.P.I.C. Studies in data processing.

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

[18]  William H. Burge,et al.  Recursive Programming Techniques , 1975 .

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

[20]  John V. Guttag,et al.  The specification and application to programming of abstract data types. , 1975 .

[21]  J. Paris,et al.  The Type Theoretic Interpretation of Constructive Set Theory , 1978 .

[22]  Shigeki Goto,et al.  Program Synthesis from Natural Deduction Proofs , 1979, IJCAI.

[23]  Robin Milner,et al.  Edinburgh LCF , 1979, Lecture Notes in Computer Science.

[24]  Masahiko Sato,et al.  Towards a Mathematical Theory of Program Synthesis , 1979, IJCAI.

[25]  C. Goad Computational uses of the manipulation of formal proofs , 1980 .

[26]  Chris Goad,et al.  Proofs as Description of Computation , 1980, CADE.

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

[28]  Zohar Manna,et al.  A Deductive Approach to Program Synthesis , 1979, TOPL.

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

[30]  Bengt Nordström,et al.  Programming in Constructive Set Theory: Some examples , 1981, FPCA '81.

[31]  Zohar Manna,et al.  Deductive Synthesis of the Unification Algorithm , 1981, Sci. Comput. Program..

[32]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[33]  P. Aczel The Type Theoretic Interpretation of Constructive Set Theory: Choice Principles , 1982 .

[34]  J. Love A programming logic by Robert L. Constable and Michael J. O'Donnell. Winthrop Publishers, Cambridge, Mass. 1978. 398 pp. $15.96 , 1982 .

[35]  Göran Sundholm,et al.  Constructions, proofs and the meaning of logical constants , 1983, J. Philos. Log..

[36]  Dana S. Scott,et al.  First Steps Towards Inferential Programming , 1983, IFIP Congress.

[37]  Lawrence C. Paulson,et al.  A Higher-Order Implementation of Rewriting , 1983, Sci. Comput. Program..

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

[39]  Jan M. Smith The Identification of Propositions and types in Martin-Löf's Type Theory: A Programming Example , 1983, FCT.

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

[41]  Jan M. Smith,et al.  Propositions and specifications of programs in Martin-Löf's type theory , 1984, BIT.

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

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

[44]  Lawrence C. Paulson Natural deduction proof as higher-order resolution , 1985 .

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

[46]  Lawrence C. Paulson,et al.  Verifying the Unification Algorithm in LCF , 1985, Sci. Comput. Program..

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

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

[49]  John C. Mitchell,et al.  Abstract types have existential types , 1985, POPL.

[50]  Jan M. Smith,et al.  Program Derivation in Type Theory: A Partitioning Problem , 1986, Comput. Lang..

[51]  Peter Aczel,et al.  The Type Theoretic Interpretation of Constructive Set Theory: Inductive Definitions , 1986 .

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

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

[54]  Gerard Huet,et al.  Formal structures for computation and deduction , 1986 .

[55]  Christine Mohring,et al.  Algorithm Development in the Calculus of Constructions , 1986, Logic in Computer Science.

[56]  Roland Carl Backhouse,et al.  Program construction and verification , 1986, PHI Series in computer science.

[57]  Jan M. Smith On a Nonconstructive Type Theory and Program Derivation , 1987 .

[58]  Ake Wikstrom,et al.  Functional programming using standard ML , 1987 .

[59]  David A. Schmidt Denotational Semantics: A Methodology for Language Development by Phil , 1987 .

[60]  Lawrence C. Paulson,et al.  Logic And Computation , 1987 .

[61]  Gérard P. Huet,et al.  Induction Principles Formalized in the Calculus of Constructions , 1987, TAPSOFT, Vol.1.

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

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

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

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

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

[67]  A. Troelstra Constructivism in mathematics , 1988 .

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

[69]  Bengt Nordström Terminating general recursion , 1988, BIT Comput. Sci. Sect..

[70]  Christine C. Paulin Extraction de programmes dans le calcul des constructions , 1989 .

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

[72]  Gérard P. Huet,et al.  The Constructive Engine , 1989, A Perspective in Theoretical Computer Science.

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

[74]  Jan M. Smith,et al.  Propositional Functions and Families of Types , 1989, Notre Dame J. Formal Log..

[75]  Thomas Johnsson,et al.  The Chalmers Lazy-ML Compiler , 1989, Computer/law journal.

[76]  Robert S. Boyer,et al.  Computational Logic , 1990, ESPRIT Basic Research Series.

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