A Tutorial Implementation of a Dependently Typed Lambda Calculus

We present the type rules for a dependently typed core calculus together with a straight-forward implementation in Haskell. We explicitly highlight the changes necessary to shift from a simply-typed lambda calculus to the dependently typed lambda calculus. We also describe how to extend our core language with data types and write several small example programs. The article is accompanied by an executable interpreter and example code that allows immediate experimentation with the system we describe.

[1]  Conor McBride Faking it: Simulating dependent types in Haskell , 2002, J. Funct. Program..

[2]  U. Norell,et al.  Towards a practical programming language based on dependent type theory , 2007 .

[3]  Conor McBride,et al.  Elimination with a Motive , 2000, TYPES.

[4]  Benjamin C. Pierce,et al.  Local type inference , 2000, TOPL.

[5]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[6]  Tobias Nipkow,et al.  Proceedings of the international workshop on Types for proofs and programs , 1994 .

[7]  Thierry Coquand,et al.  An Algorithm for Type-Checking Dependent Types , 1996, Sci. Comput. Program..

[8]  Stefano Berardi,et al.  Selected papers from the International Workshop on Types for Proofs and Programs , 1995 .

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

[10]  P. Medawar A view from the left , 1984, Nature.

[11]  Thierry Coquand,et al.  An Implementation of Type: Type , 2000, TYPES.

[12]  Simon Thompson,et al.  Type theory and functional programming , 1991, International computer science series.

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

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

[15]  Maarten M. Fokkinga,et al.  Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire , 1991, FPCA.

[16]  Pierre Castéran,et al.  Interactive Theorem Proving and Program Development , 2004, Texts in Theoretical Computer Science An EATCS Series.

[17]  Conor McBride,et al.  Dependently typed functional programs and their proofs , 2000 .

[18]  Thorsten Altenkirch,et al.  A Partial Type Checking Algorithm for Type: Type , 2011, Electron. Notes Theor. Comput. Sci..

[19]  Conor McBride,et al.  Functional pearl: i am not a number--i am a free variable , 2004, Haskell '04.

[20]  Alexander Simpson Workshop on Types for Proofs and Programs , 1993 .

[21]  Conor McBride,et al.  Epigram: Practical Programming with Dependent Types , 2004, Advanced Functional Programming.

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