The Lean Theorem Prover (System Description)

  • Leonardo de Moura
  • Soonho Kong
  • Jeremy Avigad
  • Floris van Doorn
  • Jakob von Raumer
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 9195)


Lean is a new open source theorem prover being developed at Microsoft Research and Carnegie Mellon University, with a small trusted kernel based on dependent type theory. It aims to bridge the gap between interactive and automated theorem proving, by situating automated tools and methods in a framework that supports user interaction and the construction of fully specified axiomatic proofs. Lean is an ongoing and long-term effort, but it already provides many useful components, integrated development environments, and a rich API which can be used to embed it into other systems. It is currently being used to formalize category theory, homotopy type theory, and abstract algebra. We describe the project goals, system architecture, and main features, and we discuss applications and continuing work.


Theorem Prove Type Class Trust Level Type Checker Automate Theorem Prove 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    Asperti, A., Ricciotti, W., Sacerdoti Coen, C., Tassi, E.: The Matita interactive theorem prover. In: Bjørner, N., Sofronie-Stokkermans, V. (eds.) CADE 2011. LNCS, vol. 6803, pp. 64–69. Springer, Heidelberg (2011) CrossRefGoogle Scholar
  2. 2.
    Avigad, J., de Moura, L., Kong,S.: Theorem Proving in Lean (2015).
  3. 3.
    Barras, B., Boutin, S., Cornes, C., Courant, J., Filliatre, J.-C., Gimenez, E., Herbelin, H., Huet, G., Munoz, C., Murthy, C. et al.: The Coq proof assistant reference manual: Version 6.1 (1997)Google Scholar
  4. 4.
    Cockx, J., Devriese, D., Piessens, F.: Pattern matching without K. In: Proceedings of the 19th ACM SIGPLAN International Conference on Functional Programming, pp. 257–268. ACM (2014)Google Scholar
  5. 5.
    Coquand, T., Huet, G.: The calculus of constructions. Inf. Comput. 76(2–3), 95–120 (1988)MathSciNetCrossRefzbMATHGoogle Scholar
  6. 6.
    Coquand, T., Paulin, C.: Inductively defined types. In: COLOG-88 (Tallinn, 1988), pp. 50–66. Springer, Berlin (1990)Google Scholar
  7. 7.
    de Moura, L., Avigad, J., Kong, S., Roux, C.: Elaboration in dependent type theory. Preprint (arXiv)Google Scholar
  8. 8.
    Delahaye, D., Woltzenlogel Paleo, B. (eds.): All about proofs, proofs for all. Mathematical Logic and Foundations, vol. 55 (2015)Google Scholar
  9. 9.
    Dybjer, P.: Inductive families. Formal Aspects Comput. 6(4), 440–465 (1994)CrossRefzbMATHGoogle Scholar
  10. 10.
    Goguen, H.H., McBride, C., McKinna, J.: Eliminating dependent pattern matching. In: Futatsugi, K., Jouannaud, J.-P., Meseguer, J. (eds.) Algebra, Meaning, and Computation. LNCS, vol. 4060, pp. 521–540. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  11. 11.
    Harrison, J.: HOL light: an overview. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 60–66. Springer, Heidelberg (2009) CrossRefGoogle Scholar
  12. 12.
    Martin-Löf, P.: Intuitionistic type theory. Bibliopolis (1984)Google Scholar
  13. 13.
    McBride, C., Goguen, H.H., McKinna, J.: A few constructions on constructors. In: Filliâtre, J.-C., Paulin-Mohring, C., Werner, B. (eds.) TYPES 2004. LNCS, vol. 3839, pp. 186–200. Springer, Heidelberg (2006) CrossRefGoogle Scholar
  14. 14.
    McBride, C., McKinna, J.: Functional pearl: I am not a number-I am a free variable. In: Proceedings of the 2004 ACM SIGPLAN Workshop on Haskell, Haskell 2004, pp. 1–9. ACM, New York (2004)Google Scholar
  15. 15.
    Miller, D., Nadathur, G.: Programming with Higher-Order Logic. Cambridge University Press, Cambridge (2012)CrossRefzbMATHGoogle Scholar
  16. 16.
    Nipkow, T., Paulson, L.C.: Isabelle-91. In: Kapur, Deepak (ed.) CADE 1992. LNCS, vol. 607. Springer, Heidelberg (1992) Google Scholar
  17. 17.
    Nipkow, T., Paulson, L.C., Wenzel, M.: Isabelle/HOL: a proof assistant for higher-order logic, vol. 2283. Springer Science and Business Media (2002)Google Scholar
  18. 18.
    Norell, U.: Dependently typed programming in Agda. In: Koopman, P., Plasmeijer, R., Swierstra, D. (eds.) AFP 2008. LNCS, vol. 5832, pp. 230–266. Springer, Heidelberg (2009) CrossRefGoogle Scholar
  19. 19.
    Owre, S., Rushby, J., Shankar, N.: PVS: a prototype verification system. In: Kapur, Deepak (ed.) CADE 1992. LNCS, vol. 607. Springer, Heidelberg (1992) Google Scholar
  20. 20.
    Rudnicki, P.: An overview of the Mizar project. In: Proceedings of the 1992 Workshop on Types for Proofs and Programs, pp. 311–330 (1992)Google Scholar
  21. 21.
    Slind, K.: Function definition in higher-order logic. In: von Wright, Joakim, Harrison, J., Grundy, John (eds.) TPHOLs 1996. LNCS, vol. 1125. Springer, Heidelberg (1996) CrossRefGoogle Scholar
  22. 22.
    Streicher, T.: Investigations into intensional type theory. Ph.D. thesis, LMU (1993)Google Scholar
  23. 23.
    The Univalent Foundations Program. Homotopy Type Theory: Univalent Foundations of Mathematics. Institute for Advanced Study (2013)Google Scholar
  24. 24.
    Wenzel, M.M.: Isabelle/Isar - a versatile environment for human-readable formal proof documents. Technical report ( 2002)Google Scholar

Copyright information

© Springer International Publishing Switzerland 2015

Authors and Affiliations

  • Leonardo de Moura
    • 1
  • Soonho Kong
    • 2
  • Jeremy Avigad
    • 2
  • Floris van Doorn
    • 2
  • Jakob von Raumer
    • 2
  1. 1.Microsoft ResearchRedmondUSA
  2. 2.Carnegie Mellon UniversityPittsburghUSA

Personalised recommendations