Learn Lean

Lean is a functional programming language and theorem prover built for formalizing math and for formal verification, but is flexible enough for general coding. If you’re a beginner, we recommend the Natural Number Game. If you feel ready to dive deeper, there are great textbooks, tutorials and interactive games to be found on this page.

Core documentation🔗

Further reading🔗

Interactive Games and Tutorials🔗

Tools for working with Lean🔗

Resources🔗

How to cite Lean🔗

Lean 4🔗

To cite Lean 4 please reference The Lean 4 Theorem Prover and Programming Language published in CADE-28 - The 28th International Conference on Automated Deduction. PDF

Bibtex🔗

@inproceedings{10.1007/978-3-030-79876-5_37,
  title = {The Lean 4 Theorem Prover and Programming Language},
  author = {de Moura, Leonardo and Ullrich, Sebastian},
  year = {2021},
  isbn = {978-3-030-79875-8},
  publisher = {Springer-Verlag},
  address = {Berlin, Heidelberg},
  url = {https://doi.org/10.1007/978-3-030-79876-5_37},
  doi = {10.1007/978-3-030-79876-5_37},
  abstract = {Lean 4 is a reimplementation of the Lean interactive theorem prover (ITP) in Lean itself. It addresses many shortcomings of the previous versions and contains many new features. Lean 4 is fully extensible: users can modify and extend the parser, elaborator, tactics, decision procedures, pretty printer, and code generator. The new system has a hygienic macro system custom-built for ITPs. It contains a new typeclass resolution procedure based on tabled resolution, addressing significant performance problems reported by the growing user base. Lean 4 is also an efficient functional programming language based on a novel programming paradigm called functional but in-place. Efficient code generation is crucial for Lean users because many write custom proof automation procedures in Lean itself.},
  booktitle = {Automated Deduction – CADE 28: 28th International Conference on Automated Deduction, Virtual Event, July 12–15, 2021, Proceedings},
  pages = {625–635},
  numpages = {11}
}

Lean 3🔗

To cite Lean 3 please reference The Lean Theorem Prover (System Description) published in Lecture Notes in Computer Science. PDF.

Bibtex🔗

@inproceedings{inproceedings,
  author = {de Moura, Leonardo and Kong, Soonho and van Doorn, Floris and von Raumer, Jakob},
  year = {2015},
  month = {08},
  pages = {378-388},
  title = {The Lean Theorem Prover (System Description)},
  volume = {9195},
  isbn = {978-3-319-21400-9},
  doi = {10.1007/978-3-319-21401-6_26}
}