Skip to main content
×
Home
    • Aa
    • Aa

The calculus of dependent lambda eliminations*

  • AARON STUMP (a1)
Abstract
Abstract

Modern constructive type theory is based on pure dependently typed lambda calculus, augmented with user-defined datatypes. This paper presents an alternative called the Calculus of Dependent Lambda Eliminations, based on pure lambda encodings with no auxiliary datatype system. New typing constructs are defined that enable induction, as well as large eliminations with lambda encodings. These constructs are constructor-constrained recursive types, and a lifting operation to lift simply typed terms to the type level. Using a lattice-theoretic denotational semantics for types, the language is proved logically consistent. The power of CDLE is demonstrated through several examples, which have been checked with a prototype implementation called Cedille.

Copyright
Footnotes
Hide All
*

I gratefully acknowledge NSF support of this project under award 1524519, and DoD support under award FA9550-16-1-0082 (MURI program).

Footnotes
Linked references
Hide All

This list contains references from the content that can be linked to their source. For a full set of references and notes please see the PDF or HTML where available.

C. Böhm & A. Berarducci (1985) Automatic synthesis of typed lambda-programs on term algebras. Theor. Comput. Sci. 39, 135154.

J. Carette , O. Kiselyov & C.-C. Shan (2009) Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages. J. Funct. Program. 19 (5), 509543.

J. Chapman , P.-É. Dagand , C. McBride & P. Morris (2010) The gentle art of levitation. In Proceeding of the 15th ACM SIGPLAN International Conference on Functional Programming (ICFP), P. Hudak & S. Weirich (eds), pp. 314. ACM.

A. Chlipala (2008) Parametric higher-order abstract syntax for mechanized semantics. In Proceedings of the 13th ACM SIGPLAN International Conference on Functional Programming (ICFP), J. Hook & P. Thiemann (eds), pp. 143156. ACM.

A. Church (1940) A formulation of the simple theory of types. J. Symb. Log. 5 (2), 5668.

K. Crary (2010) Higher-order representation of substructural logics. In Proceeding of the 15th ACM SIGPLAN International Conference on Functional Programming (ICFP), P. Hudak & S. Weirich (eds). ACM, pp. 131142.

L. Fegaras & T. Sheard (1996) Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space). In Proceedings of 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), H.-J. Boehm & G. L. Steele Jr. (eds). ACM, pp. 284294.

S. Fortune , D. Leivant & M. O'Donnell (1983) The expressiveness of simple and second-order type structures. J. ACM 30 (1), 151185.

H. Geuvers (2001) Induction is not derivable in second order dependent type theory. In Typed Lambda Calculi and Applications (TLCA), S. Abramsky (ed), Lecture Notes in Computer Science, vol 2044. Springer, pp. 166181.

M. Hofmann (2000) Safe recursion with higher types and bck-algebra. Ann. Pure Appl. Log. 104 (1–3), 113166.

D. Leivant (1991) Finitely stratified polymorphism. Inf. Comput. 93 (1), 93113.

A. R. Meyer & M. B. Reinhold (1986) “Type” is not a type. In Proceedings of the 13th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL). New York, USA: ACM, pp. 287295.

A. Miquel (2001) The implicit calculus of constructions extending pure type systems with an intersection type binder and subtyping. In Typed Lambda Calculi and Applications, S. Abramsky (ed), Lecture Notes in Computer Science, vol. 2044. Springer, pp. 344359.

T. Æ. Mogensen (1992) Efficient self-interpretations in lambda calculus. J. Funct. Program. 2 (3), 345363.

F. Pfenning & C. Schürmann (1999) System description: Twelf - a meta-logical framework for deductive systems. In Proceedings of 16th International Conference on Automated Deduction Automated Deduction - Cade-16, H. Ganzinger (ed), Lecture Notes in Computer Science, vol. 1632. Springer, pp. 202206.

B. C. Pierce & D. N. Turner (2000) Local type inference. ACM Trans. Program. Lang. Syst. 22 (1), 144.

J. Polakow (2015) Embedding a full linear lambda calculus in Haskell. In Proceedings of the 2015 ACM SIGPLAN Symposium on Haskell, pp. 177188. ACM.

A Poswolsky & C. Schürmann (2009) System description: Delphin – a functional programming language for deductive systems. Electr. Notes Theor. Comput. Sci. 228, 113120.

C. Schürmann , J. Despeyroux & F. Pfenning (2001) Primitive recursion for higher-order abstract syntax. Theor. Comput. Sci. 266 (1–2), 157.

A. Stump (2016) Verified Functional Programming in Agda. ACM Books.

A. Stump & P. Fu (2016) Efficiency of lambda-encodings in total type theory. J. Funct. Program. 26 (003).

V. Tannen & T. Coquand (1988) Extensional models for polymorphism. Theor. Comput. Sci. 59, 85114.

Recommend this journal

Email your librarian or administrator to recommend adding this journal to your organisation's collection.

Journal of Functional Programming
  • ISSN: 0956-7968
  • EISSN: 1469-7653
  • URL: /core/journals/journal-of-functional-programming
Please enter your name
Please enter a valid email address
Who would you like to send this to? *
×

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 26 *
Loading metrics...

Abstract views

Total abstract views: 174 *
Loading metrics...

* Views captured on Cambridge Core between 9th May 2017 - 21st August 2017. This data will be updated every 24 hours.