Lean is a functional programming language that makes it easy to write correct and maintainable code. You can also use Lean as an interactive theorem prover. Lean programming primarily involves defining types and functions. This allows your focus to remain on the problem domain and manipulating its data, rather than the details of programming. Lean has numerous features, including:

  • Type inference
  • First-class functions
  • Powerful data types
  • Pattern matching
  • Type classes
  • Extensible syntax
  • Hygienic macros
  • Dependent types
  • Metaprogramming framework
  • Multithreading
  • Verification: you can prove properties of your functions using Lean itself

The Lean project was launched by Leonardo de Moura when he was at Microsoft Research in 2013. It is an open source project, hosted on GitHub. Lean 4 is the latest version. The first milestone has been released on January 4, 2021, and nightly stable builds are available here. Information about the community of Lean users and the mathematical components library Mathlib can be found at the Lean Community website. The Lean FRO nonprofit was launched in August of 2023. Its mission is to tackle the challenges of scalability, usability, and proof automation in the Lean theorem prover.