Lean (assistente di prova)

Lean
linguaggio di programmazione
AutoreLeonardo de Moura
Data di origine2013
Ultima versione4.35.0 (12 ottobre 2026)
UtilizzoAssistente di prova, programmazione generica
Paradigmifunzionale puro (valutazione stretta), tipi dipendenti
Tipizzazionestatica, forte, inferita
Influenzato daThe Rocq Prover e Isabelle
Implementazione di riferimento
LicenzaApache 2.0
Sito weblean-lang.org/

Lean è un assistente di prova e un linguaggio di programmazione funzionale. Si basa sul calcolo delle costruzioni con tipi induttivi (più precisamente sul Calculus of Inductive Constructions), la teoria dei tipi fondazionale sviluppata con il dimostratore di teoremi Coq, rinominato Rocq nel 2024. È un progetto di software libero e open source ospitato su GitHub. Lo sviluppo è attualmente sostenuto dalla Lean Focused Research Organization (FRO), un'organizzazione senza scopo di lucro.

Storia

Lean è stato sviluppato principalmente dall'informatico brasiliano Leonardo de Moura, prima durante il suo impiego presso Microsoft Research e successivamente presso Amazon Web Services, con importanti contributi da parte di altri coautori e collaboratori nel corso della sua storia.

Lanciato nel 2013, nelle sue prime versioni, note in seguito come Lean 1 e Lean 2, il linguaggio era sperimentale e comprendeva funzionalità poi abbandonate, come il supporto a fondamenti basati sulla teoria dei tipi omotopica.

Lean 3 (pubblicato per la prima volta il 20 gennaio 2017) è stata la prima versione ragionevolmente stabile di Lean. Era implementato principalmente in C++, con alcune funzionalità scritte in Lean stesso. Dopo la versione 3.4.2 lo sviluppo ufficiale di Lean 3 è terminato per concentrarsi su Lean 4; nel periodo di transizione alcuni membri della comunità hanno sviluppato e pubblicato versioni non ufficiali fino alla 3.51.1.

Nel 2021 è stato pubblicato Lean 4, una reimplementazione del dimostratore in grado di generare codice C che viene poi compilato, consentendo lo sviluppo di automazioni efficienti e specifiche per dominio. Lean 4 introduce inoltre un sistema di macro igieniche e procedure migliorate di sintesi delle classi di tipi e di gestione della memoria rispetto alla versione precedente. Un altro vantaggio rispetto a Lean 3 è la possibilità di modificare il frontend e altre parti chiave del sistema senza intervenire sul codice C++, poiché sono ora interamente implementate in Lean e possono essere ridefinite dall'utente secondo necessità.

Lean 4 non è retrocompatibile con Lean 3. Utilizza la versione C++17 del C++.

Nel 2023 è stata costituita la Lean FRO (Focused Research Organization), con l'obiettivo di migliorare la scalabilità e l'usabilità del linguaggio e di implementare l'automazione delle dimostrazioni.

Nel 2025 il Programming Languages Software Award dello SIGPLAN dell'ACM è stato assegnato a Gabriel Ebner, Soonho Kong, Leo de Moura e Sebastian Ullrich per Lean, con una motivazione che ne sottolinea il notevole impatto su matematica, verifica di hardware e software e intelligenza artificiale.

Nel 2026 la libreria mathlib ha ricevuto il premio Demailly per la scienza aperta.

Caratteristiche

Lean offre numerose funzionalità utili per la programmazione funzionale e la dimostrazione di teoremi, tra cui tipi dipendenti, classi di tipi, multithreading, un linguaggio di tattiche espressivo e un sistema di moduli.

Librerie

La libreria standard ufficiale di Lean si chiama Std e contiene strutture dati e funzioni di uso comune nella programmazione, come mappe ad albero, tabelle hash, funzioni per data e ora e primitive per la concorrenza. La libreria standard è affiancata da batteries, mantenuta dalla comunità, che implementa ulteriori strutture dati utilizzabili sia nella ricerca matematica sia nello sviluppo software più tradizionale.

Nel 2017 è iniziato lo sviluppo di mathlib, una libreria per Lean mantenuta dalla comunità con l'obiettivo di digitalizzare quanta più matematica pura possibile in un'unica grande libreria coerente, fino alla matematica di livello di ricerca. A maggio 2025 mathlib conteneva la formalizzazione in Lean di oltre 210 000 teoremi e 100 000 definizioni.

Tra le altre librerie figurano CSLib, dedicata all'informatica teorica, SciLean, per il calcolo scientifico in Lean, e PhysLib, il cui obiettivo è digitalizzare la fisica in Lean.

Integrazione con gli editor

Lean si integra con:

L'interfacciamento avviene tramite un'estensione client e un server basato sul Language Server Protocol. In questi editor i simboli Unicode possono essere digitati con sequenze simili a quelle di LaTeX, ad esempio \times per «×».

Esempi (Lean 4)

I numeri naturali possono essere definiti come tipo induttivo. Questa definizione si basa sugli assiomi di Peano e afferma che ogni numero naturale è o lo zero o il successore di un altro numero naturale.

inductive Nat : Type
  | zero : Nat
  | succ : Nat → Nat

L'addizione tra numeri naturali può essere definita ricorsivamente mediante pattern matching.

def Nat.add : Nat → Nat → Nat
  | n, Nat.zero   => n                      -- n + 0 = n
  | n, Nat.succ m => Nat.succ (Nat.add n m) -- n + succ(m) = succ(n + m)

Segue una semplice dimostrazione in modalità tattica di per due proposizioni e (dove indica la congiunzione e l'implicazione):

theorem and_swap (p q : Prop) : p ∧ q → q ∧ p := by
  intro h            -- si assume p ∧ q con dimostrazione h; l'obiettivo è q ∧ p
  apply And.intro    -- l'obiettivo si divide in due sotto-obiettivi: q e p
  · exact h.right    -- il primo sotto-obiettivo è esattamente la parte destra di h : p ∧ q
  · exact h.left     -- il secondo sotto-obiettivo è esattamente la parte sinistra di h : p ∧ q

La stessa dimostrazione in modalità termine:

theorem and_swap (p q : Prop) : p ∧ q → q ∧ p :=
  fun ⟨hp, hq⟩ => ⟨hq, hp⟩

Il teorema può essere dimostrato anche con la tattica grind, che sfrutta tecniche proprie dei risolutori SMT per costruire automaticamente le dimostrazioni:

theorem and_swap (p q : Prop) : p ∧ q → q ∧ p := by
  grind

Utilizzi

Matematica

Lean ha attirato l'attenzione di matematici come Thomas Hales, Kevin Buzzard, Terence Tao e Heather Macbeth. Hales lo utilizza per il suo progetto Formal Abstracts, mentre Buzzard lo impiega per lo Xena project. Uno degli obiettivi dello Xena project è riscrivere in Lean ogni teorema e ogni dimostrazione del corso di laurea triennale in matematica dell'Imperial College London. Tao ha pubblicato un complemento in Lean al suo manuale di analisi reale Analysis I, costituito dalla formalizzazione di sezioni selezionate del testo. Macbeth usa Lean per insegnare agli studenti i fondamenti della dimostrazione matematica con un riscontro immediato.

Formalizzazioni di rilievo

Nel 2021 un gruppo di ricercatori ha utilizzato Lean per verificare la correttezza di una dimostrazione di Peter Scholze nell'ambito della matematica condensata. Il progetto ha suscitato interesse per aver formalizzato un risultato all'avanguardia della ricerca matematica. Nel 2023 Terence Tao ha usato Lean per formalizzare la dimostrazione della congettura polinomiale di Freiman-Ruzsa (PFR), un risultato pubblicato nello stesso anno da Tao e dai suoi collaboratori (vedi teorema di Freiman). Nel 2026 i problemi di Erdős numero 728, 347 e 369 sono stati risolti con l'ausilio dell'intelligenza artificiale e verificati formalmente con Lean.

Fisica

Physlib ambisce a diventare la libreria di riferimento per la fisica in Lean, sul modello di Mathlib per la matematica, e punta a raccogliere in modo completo definizioni, teoremi e calcoli fondamentali della fisica. Kevin Buzzard dell'Imperial College London afferma che la formalizzazione sta avendo un forte impatto sulla matematica e che non vi è motivo per cui la fisica teorica non possa essere trattata allo stesso modo:

(inglese)
«Ideally, we need a million lines of physics, and that might be hard work to get. If the machines aren't pretty good at doing physics initially, then there'll be manual work at the beginning, and then eventually the machines will hopefully take over»
(italiano)
«Idealmente ci serve un milione di righe di fisica, e potrebbe essere un lavoro difficile da ottenere. Se all'inizio le macchine non saranno molto brave a fare fisica, ci sarà del lavoro manuale nella fase iniziale, e poi, si spera, le macchine prenderanno il sopravvento.»

Formalizzazioni di rilievo

Nel 2025 Joseph Tooby-Smith ha utilizzato Lean per individuare un errore in un articolo pubblicato nel 2006 sulla stabilità del potenziale del modello a due doppietti di Higgs (2HDM).

Intelligenza artificiale

Nel 2022 OpenAI e Meta AI hanno sviluppato, in modo indipendente, modelli di intelligenza artificiale in grado di generare in Lean dimostrazioni di vari problemi di olimpiadi della matematica di livello liceale. Il modello di Meta AI è disponibile pubblicamente per l'uso con l'ambiente Lean.

Nel 2023 Vlad Tenev e Tudor Achim hanno fondato la startup Harmonic, che mira a ridurre le allucinazioni dell'intelligenza artificiale generando e verificando codice Lean.

Nel 2024 Google DeepMind ha creato AlphaProof, un sistema che dimostra enunciati matematici in Lean al livello di un medagliato d'argento alle Olimpiadi Internazionali della Matematica. Si è trattato del primo sistema di intelligenza artificiale a ottenere una prestazione da medaglia sui problemi di un'olimpiade della matematica.

Nell'aprile 2025 DeepSeek ha presentato DeepSeek-Prover-V2, un modello di intelligenza artificiale progettato per la dimostrazione di teoremi in Lean 4 e basato su DeepSeek-V3.

Nel 2026 alcune intelligenze artificiali progettate per individuare bug nel software sono state applicate a Lean, scoprendo diverse falle che sono state poi corrette. Forse in relazione a questo lavoro, è stata annunciata una presunta confutazione della congettura di Collatz verificata in Lean; si è però presto scoperto che la dimostrazione sfruttava un bug di Lean e, una volta corretto il bug, è risultata non valida.

Nel settembre 2026 Anthropic ha reso noto che alcuni agenti basati su un modello di ricerca interno, paragonabile a Claude Fable 5.1, avevano prodotto in undici giorni una formalizzazione completa e verificata automaticamente dell'ultimo teorema di Fermat in Lean 4. La dimostrazione seguiva l'esposizione del 1995 di Darmon, Diamond e Taylor della dimostrazione di Wiles, comprendeva circa 13 milioni di righe di codice Lean e circa 30 000 teoremi intermedi, e si basava unicamente sui tre assiomi standard di Lean; gli agenti si coordinavano tramite Prove2Me, una piattaforma per la formalizzazione collaborativa sviluppata dal ricercatore di Anthropic Tianyi Peng insieme a collaboratori della Columbia University. Kevin Buzzard, che guida un distinto progetto dell'Imperial College London per formalizzare il teorema in Lean, ha compilato e controllato il codice confermando il risultato, pur osservando che dal punto di vista matematico esso «non aggiunge nulla» alla dimostrazione di Wiles e che il codice non poteva essere integrato in Mathlib. Buzzard ha dichiarato che il progetto dell'Imperial College sarebbe proseguito.

Note

  1. 1 2 3 (EN) Leonardo de Moura e Sebastian Ullrich, The Lean 4 Theorem Prover and Programming Language, in André Platzer, Geoff Sutcliffe (a cura di), Automated Deduction – CADE 28, collana Lecture Notes in Computer Science, vol. 12699, Cham, Springer International Publishing, 2021, pp. 625-635, DOI:10.1007/978-3-030-79876-5_37, ISBN 978-3-030-79876-5.
  2. ↑ (EN) Christine Paulin-Mohring, Inductive definitions in the system Coq: Rules and properties, Typed Lambda Calculi and Applications, collana Lecture Notes in Computer Science, vol. 664, Springer, 1993, pp. 328-345, DOI:10.1007/BFb0037116.
  3. ↑ (EN) The Rocq Prover, su rocq-prover.org. URL consultato il 26 luglio 2026.
  4. ↑ (EN) Contributors to leanprover/lean4, su GitHub. URL consultato l'11 agosto 2026.
  5. ↑ (EN) About, su Lean Language. URL consultato il 13 marzo 2024.
  6. ↑ (EN) leanprover-community/lean - Lean 3 Theorem Prover (community fork), su GitHub. URL consultato il 31 luglio 2026.
  7. ↑ (EN) Leonardo de Moura e Sebastian Ullrich, Automated Deduction – CADE 28, a cura di André Platzer, Geoff Sutcliffe, Springer International Publishing, 2021, pp. 625-635, DOI:10.1007/978-3-030-79876-5_37, ISBN 978-3-030-79876-5. URL consultato il 24 marzo 2023.
  8. ↑ (EN) Sebastian Ullrich e Leonardo de Moura, Beyond Notations: Hygienic Macro Expansion for Theorem Proving Languages, in Logical Methods in Computer Science, n. 7421, 28 gennaio 2020, DOI:10.46298/lmcs-18(2:1)2022, arXiv:2001.10490.
  9. ↑ (EN) Significant changes from Lean 3, su Lean Manual. URL consultato il 24 marzo 2023 (archiviato dall'url originale il 15 marzo 2023).
  10. ↑ (EN) Mission, su Lean FRO, 25 luglio 2023. URL consultato il 14 marzo 2024.
  11. ↑ (EN) Programming Languages Software Award, su www.sigplan.org. URL consultato il 6 luglio 2025 (archiviato dall'url originale il 6 luglio 2025).
  12. ↑ (FR) Épijournal de Géométrie Algébrique - 2026 Demailly Prize, su epiga.episciences.org. URL consultato il 26 maggio 2026.
  13. ↑ (EN) The Lean Language Reference, su Lean Language. URL consultato il 25 dicembre 2025.
  14. ↑ (EN) Std, su Lean Language. URL consultato il 25 dicembre 2025.
  15. ↑ (EN) batteries, su GitHub. URL consultato il 22 settembre 2024.
  16. ↑ (EN) Building the Mathematical Library of the Future, su Quanta Magazine, ottobre 2020 (archiviato dall'url originale il 29 marzo 2026).
  17. ↑ (EN) Lean community, su leanprover-community.github.io. URL consultato il 24 ottobre 2023.
  18. ↑ (EN) Mathlib statistics, su leanprover-community.github.io. URL consultato il 7 maggio 2025.
  19. ↑ (EN) CSLib, su GitHub. URL consultato il 2 marzo 2026.
  20. ↑ (EN) SciLean, su GitHub. URL consultato il 25 settembre 2025.
  21. ↑ (EN) leanprover-community/physlib: A project to digitalise results from physics into Lean., su GitHub. URL consultato il 2 marzo 2026.
  22. ↑ (EN) Installing Lean 4 on Linux, su leanprover-community.github.io. URL consultato il 24 ottobre 2023.
  23. ↑ (EN) Thomas Hales, A Review of the Lean Theorem Prover, su Jigger Wit, 18 settembre 2018.
  24. ↑ (EN) Kevin Buzzard, The Future of Mathematics? (PDF), su wwwf.imperial.ac.uk. URL consultato il 6 ottobre 2020.
  25. ↑ (EN) Terence Tao, A Lean companion to "Analysis I", su Terry Tao – What's New, WordPress, 31 maggio 2025.
  26. ↑ (EN) Heather Macbeth, The Mechanics of Proof, su hrmacbeth.github.io.
  27. ↑ (EN) Formal Abstracts, su GitHub.
  28. ↑ (EN) What is the Xena project?, su Xena, 8 maggio 2019.
  29. ↑ (EN) Terence Tao, analysis, su github.com/teorth.
  30. ↑ (EN) Siobhan Roberts, A.I. Is Coming for Mathematics, Too, in The New York Times, 2 luglio 2023.
  31. ↑ (EN) Kevin Hartnett, Proof Assistant Makes Jump to Big-League Math, in Quanta Magazine, 28 luglio 2021.
  32. ↑ (EN) Leila Sloman, 'A-Team' of Math Proves a Critical Link Between Addition and Sets, su Quanta Magazine, 6 dicembre 2023. URL consultato il 7 dicembre 2023.
  33. ↑ (EN) 728, su Erdős Problems. URL consultato il 15 giugno 2026.
  34. ↑ (EN) 347, su Erdős Problems. URL consultato il 15 giugno 2026.
  35. ↑ (EN) 369, su Erdős Problems. URL consultato il 15 giugno 2026.
  36. ↑ (EN) Physlib, su physlib.io.
  37. 1 2 (EN) Computer finds flaw in major physics paper for first time, in New Scientist, 26 marzo 2026. URL consultato il 12 aprile 2026.
  38. ↑ (EN) M. Maniatis, A. von Manteuffel, O. Nachtmann e F. Nagel, Stability and symmetry breaking in the general two-Higgs-doublet model, in The European Physical Journal C, vol. 48, n. 3, 2006, pp. 805-823, Bibcode:2006EPJC...48..805M, DOI:10.1140/epjc/s10052-006-0016-6, arXiv:hep-ph/0605184.
  39. ↑ (EN) Solving (some) formal math olympiad problems, su OpenAI, 2 febbraio 2022. URL consultato il 13 marzo 2024 (archiviato dall'url originale il 13 aprile 2024).
  40. ↑ (EN) Teaching AI advanced mathematical reasoning, su Meta AI, 3 novembre 2022. URL consultato il 13 marzo 2024.
  41. ↑ (EN) Cade Metz, Is Math the Path to Chatbots That Don't Make Stuff Up?, in The New York Times, 23 settembre 2024.
  42. ↑ (EN) AI achieves silver-medal standard solving International Mathematical Olympiad problems, su Google DeepMind, 14 maggio 2024. URL consultato il 25 luglio 2024.
  43. ↑ (EN) Siobhan Roberts, Move Over, Mathematicians, Here Comes AlphaProof, in The New York Times, 25 luglio 2024.
  44. ↑ (EN) DeepSeek upgrades its math-focused AI model Prover, su Yahoo Finance, 30 aprile 2025. URL consultato il 30 aprile 2025.
  45. ↑ (EN) Why is it all in the kernel?, su lawrencecpaulson.github.io.
  46. ↑ (EN) Postmortem for Kernel Soundness Bug #14576, su leodemoura.github.io.
  47. ↑ (EN) The Collatz Conjecture was FALSE (for 2.5 days in July), su YouTube, 30 luglio 2026.
  48. 1 2 (EN) Formalizing Fermat's Last Theorem, su anthropic.com, Anthropic, 4 settembre 2026. URL consultato l'8 settembre 2026.
  49. 1 2 (EN) Ana Maria Constantin, Claude formalised Fermat's Last Theorem in 11 days, in The Next Web, 6 settembre 2026. URL consultato l'8 settembre 2026.
  50. ↑ (EN) S. Chen et al., Prove2Me, 2026, arXiv:2608.28433.
  51. 1 2 (EN) Kevin Buzzard, FLT: Anthropic has beaten me to it, su Xena Project, 4 settembre 2026. URL consultato l'8 settembre 2026.

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàGND (DE) 1292701188