Skip to main content

Project Report: Dependently Typed Programming with Lambda Encodings in Cedille

  • Conference paper
  • First Online:
Trends in Functional Programming (TFP 2016)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 10447))

Included in the following conference series:

  • 276 Accesses

Abstract

This project report presents Cedille, a dependent type theory based on lambda encodings. Cedille is an extension of the Calculus of Constructions with new type features enabling induction and large eliminations (computing a type by recursion on a term) for lambda encodings, which are not available for lambda-encoded data in related type theories. Cedille is presented through a number of examples, including both programs and proofs.

A. Guneratne and C. Reynolds are doctoral students.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Basold, H., Geuvers, H.: Type theory based on dependent inductive and coinductive types. In: Shankar, N. (ed.) IEEE Symposium on Logic in Computer Science (LICS) (2016)

    Google Scholar 

  2. Bezem, M., Coquand, T., Huber, S.: A model of type theory in cubical sets. In: Matthes, R., Schubert, A. (eds.) 19th International Conference on Types for Proofs and Programs, TYPES 2013 of LIPIcs, vol. 26, pp. 107–128. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2014)

    Google Scholar 

  3. Böhm, C., Berarducci, A.: Automatic synthesis of typed lambda-programs on term algebras. Theor. Comput. Sci. 39, 135–154 (1985)

    Article  Google Scholar 

  4. Church, A.: The Calculi of Lambda Conversion. Princeton University Press, Princeton (1941). Ann. Math. Stud. (6)

    MATH  Google Scholar 

  5. Coquand, T., Huet, G.: The calculus of constructions. Inf. Comput. 76(2–3), 95–120 (1988)

    Article  MathSciNet  Google Scholar 

  6. Coquand, T., Paulin, C.: Inductively defined types. In: Martin-Löf, P., Mints, G. (eds.) COLOG 1988. LNCS, vol. 417, pp. 50–66. Springer, Heidelberg (1990). https://doi.org/10.1007/3-540-52335-9_47

    Chapter  Google Scholar 

  7. The Agda Development Team: Agda, Version 2.5.1 (2016)

    Google Scholar 

  8. Fortune, S., Leivant, D., O’Donnell, M.: The expressiveness of simple and second-order type structures. J. ACM 30(1), 151–185 (1983)

    Article  MathSciNet  Google Scholar 

  9. Geuvers, H.: Induction is not derivable in second order dependent type theory. In: Abramsky, S. (ed.) TLCA 2001. LNCS, vol. 2044, pp. 166–181. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45413-6_16

    Chapter  Google Scholar 

  10. Hofmann, M., Streicher, T.: The groupoid interpretation of type theory. In: Twenty-Five Years of Constructive Type Theory of Oxford Logic Guides, vol. 36, pp. 83–111. Oxford University Press, Oxford (1998)

    Google Scholar 

  11. Koopman, P., Plasmeijer, R., Jansen, J.M.: Church encoding of data types considered harmful for implementations. In: Plasmeijer, R., Tobin-Hochstadt, S. (eds.) 26th Symposium on Implementation and Application of Functional Languages (IFL) (2014). Presented version

    Google Scholar 

  12. Kopylov, A.: Dependent intersection: a new way of defining records in type theory. In: 18th IEEE Symposium on Logic in Computer Science (LICS), pp. 86–95 (2003)

    Google Scholar 

  13. Leivant, D.: Finitely stratified polymorphism. Inf. Comput. 93(1), 93–113 (1991)

    Article  MathSciNet  Google Scholar 

  14. Luo, Z.: An extended calculus of constructions. Ph.D. thesis (1990)

    Google Scholar 

  15. The Coq Development Team: The Coq Proof Assistant Reference Manual. LogiCal Project, Version 8.5 (2016)

    Google Scholar 

  16. McAllester, D.A.: Implementation and abstraction in mathematics. CoRR, abs/1407.7274 (2014)

    Google Scholar 

  17. McBride, C.: Elimination with a motive. In: Callaghan, P., Luo, Z., McKinna, J., Pollack, R., Pollack, R. (eds.) TYPES 2000. LNCS, vol. 2277, pp. 197–216. Springer, Heidelberg (2002). https://doi.org/10.1007/3-540-45842-5_13

    Chapter  Google Scholar 

  18. Miquel, A.: The implicit calculus of constructions extending pure type systems with an intersection type binder and subtyping. In: Abramsky, S. (ed.) TLCA 2001. LNCS, vol. 2044, pp. 344–359. Springer, Heidelberg (2001). https://doi.org/10.1007/3-540-45413-6_27

    Chapter  MATH  Google Scholar 

  19. Parigot, M.: Programming with proofs: a second order type theory. In: Ganzinger, H. (ed.) ESOP 1988. LNCS, vol. 300, pp. 145–159. Springer, Heidelberg (1988). https://doi.org/10.1007/3-540-19027-9_10

    Chapter  Google Scholar 

  20. Parigot, M.: On the representation of data in lambda-calculus. In: Börger, E., Büning, H.K., Richter, M.M. (eds.) CSL 1989. LNCS, vol. 440, pp. 309–321. Springer, Heidelberg (1990). https://doi.org/10.1007/3-540-52753-2_47

    Chapter  Google Scholar 

  21. Pierce, B.C., Turner, D.N.: Local type inference. ACM Trans. Program. Lang. Syst. 22(1), 1–44 (2000)

    Article  Google Scholar 

  22. Stump, A.: From realizability to induction via dependent intersection. Available from the author’s web page, under review as of 19 June 2017

    Google Scholar 

  23. Stump, A.: The calculus of dependent lambda eliminations. J. Funct. Program. 27, e14 (2017)

    Article  MathSciNet  Google Scholar 

  24. Stump, A., Fu, P.: Efficiency of lambda-encodings in total type theory. J. Funct. Program. 26, e3 (31 p.) (2016)

    Article  MathSciNet  Google Scholar 

  25. The Univalent Foundations Program: Homotopy Type Theory: Univalent Foundations of Mathematics, Institute for Advanced Study (2013). https://homotopytypetheory.org/book

  26. Washburn, G., Weirich, S.: Boxes go bananas: encoding higher-order abstract syntax with parametric polymorphism. J. Funct. Program. 18(1), 87–140 (2008)

    Article  MathSciNet  Google Scholar 

  27. Werner, B.: Une Théorie des constructions inductives. Ph.D. thesis, Paris Diderot University, France (1994)

    Google Scholar 

Download references

Acknowledgments

Thanks to the anonymous TFP 2016 pre-proceedings reviewer for helpful comments which helped improve the paper. This work has been supported by NSF on a grant titled “Lambda Encodings Reborn” (award 1524519), and through the DoD MURI project “Semantics, Formal Reasoning, and Tools for Quantum Programming” (award FA9550-16-1-0082). Thanks also to Matthew Heimerdinger and Richard Blair who made contributions to the tool summer 2016.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Aaron Stump .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2019 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Guneratne, A., Reynolds, C., Stump, A. (2019). Project Report: Dependently Typed Programming with Lambda Encodings in Cedille. In: Van Horn, D., Hughes, J. (eds) Trends in Functional Programming. TFP 2016. Lecture Notes in Computer Science(), vol 10447. Springer, Cham. https://doi.org/10.1007/978-3-030-14805-8_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-14805-8_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-14804-1

  • Online ISBN: 978-3-030-14805-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics