Lean possède un certain nombre de fonctionnalités notables qui le distinguent des autres logiciels d'assistance à la preuve. Lean peut être compilé vers du JavaScript, et est ainsi accessible dans un navigateur Web. Il prend en charge nativement les caractères Unicode des symboles mathématiques, qui peuvent être saisis grâce à des raccourcis rappelant la syntaxe de LaTeX (par exemple, "×" s'obtient en tapant "\times"). Il est également possible de faire de la méta-programmation en utilisant le même langage que pour une utilisation classique. Ainsi, si l'utilisateur veut écrire une fonction qui prouve automatiquement certains théorèmes, il est possible d'écrire en Lean une fonction générant les preuves voulues en Lean.
Cet assistant de preuve a été écrit principalement par Leonardo de Moura. Ses fondements logiques sont presque identiques à ceux de Coq (logiciel). Sa bibliothèque mathématique est élaborée collectivement, par environ 250 contributeurs. Cette bibliothèque donne une assise commune aux projets de validation. En 2022, si tout le programme de l'Agrégation de mathématiques n'y est pas encore entré, les espaces perfectoïdes ou l'espace topologique de Bourbaki y sont présents. -[4].
Exemples
Voici comment les nombres naturels sont définis dans Lean :
inductivenat:Type|zero:nat|succ:nat→nat
Voici la définition de l'addition pour les nombres naturels :
theoremand_swap(pq:Prop):p∧q→q∧p:=beginassumeh:(p∧q),-- on suppose que p ∧ q est vraicasesh,-- on extrait les propositions individuelles de la conjonctionsplit,-- on sépare le but à prouver en deux cas : prouver p et prouver q séparémentrepeat{assumption}end