What is this about¶
Formal verification (of mathematical theorems) - Process to verify a proof of mathematical statement using computer. - Related: software verification. (not the focus of this class) - "Translation: mathematics \(\leftrightarrow\) logic \(\leftrightarrow\) computer science "
Some historical successes -- 4CT¶
- 4-color theorem: every planar graph is 4-colorable- 1976 Appel&Haken -- first proof using computer (still a lot of human case-checking)
- 1997 Robertson, Sanders, Seymour and Thomas -- still using computer, correcting mistakes in the case-checking
- 2005 Werner&Gonthier -- formal proof (in Coq)
 
Some historical successes -- Kepler's conjecture¶
- Kepler's conjecture: best packing of equal balls- In1990, Wu-Yi Hsiang claimed a proof -- not accepted
- In 1998, Hales announced a proof (250 pages + 3 GB of data)
- In 2003, a panel of 12 experts "99% certain" of the correctness of the proof, but they could not certify the correctness of all of the computer calculations.
 
WIP: Fermat's last theorem:¶
\(x^n + y^n = z^n\) has no solution in positive integers with \(n > 2\).
ATP vs ITP¶
Automated vs interactive theorem provers.
List of alternative ITPs¶
| Name | Initial release | 
|---|---|
| Mizar | 1973 | 
| Isabelle | 1986 | 
| Coq \(\to\) Rocq | 1989 | 
| LEAN | 2013 | 
Levels of help & automation¶
- write formal proof -- sequence of formulas, etc.
- write program that constructs formal proof -- tactics -- more human-like
- use existing theorems -- mathlib
- tools to search in mathlib
- blueprint -- way to create and visualize structure of large proof Example from Terry Tao -- PFR
- Lean Copilot --- getting help from LLMs
- Project Gauss- Recently formalized the proof of Prime number theorem: number of primes among \(1, \dots, n\) is \((1+o(1)) \frac{n}{\ln n}\)
- Produced ~25,000 lines of Lean code, comprising over 1,000 theorems and definitions.
 
Ways how to run LEAN¶
- https://live.lean-lang.org/
- Github codespaces (needs to pay?)
- locally -- VS code with Lean4 extension
- "game mode" -- https://adam.math.hhu.de/#/g/leanprover-community/NNG4