Grades 9–12ComputationPlanned
First steps in Lean
Stating and proving simple results in the Lean 4 proof assistant: propositions and proofs, rewriting, induction on natural numbers and reading Mathlib statements, with attention to what a machine check does and does not guarantee.
math.comp.intro-lean
The lesson for this topic has not been written yet. The outline below is part of the curriculum map and has not been reviewed.
Builds on
Propositional logic and truth tablesProof: direct, contrapositive, contradiction and inductionProgramming for mathematics
Required prerequisites, all the way down: 15
You will learn to
- Write and check short Lean proofs of propositional tautologies and simple equalities using rfl, rw and simp.
- Prove a statement about natural numbers by induction in Lean, such as 0 + n = n.
- Read a Mathlib theorem statement, and distinguish applying a library theorem from proving a result independently.
Definition
- A proof assistant is a program that checks proofs written in a formal language.
- In Lean, a proposition is a type and a proof of it is a term of that type.
- A tactic is a command that builds part of a proof, such as rw (rewrite) or induction.
Theorem
- A Lean proof that compiles without sorry and without added axioms has been checked by Lean's kernel relative to Lean's logic.
- A formal proof is only as meaningful as its formal statement: a mis-stated theorem can be proved correctly.
- For Lean's natural numbers, n + 0 = n holds by definition (rfl), while 0 + n = n needs a proof by induction.
Common misconceptions
- Believing a machine-checked proof guarantees that the statement says what was intended.
- Thinking a proof containing sorry is finished.
- Confusing the use of a Mathlib lemma with proving the result from more basic facts.
Leads to
Optional discoveries
- Type theory and propositions as types Lean's logic is a dependent type theory in which propositions are types and proofs are terms.
Learning pathways
Further reading
- Jeremy Avigad, Leonardo de Moura, Soonho Kong and Sebastian Ullrich, Theorem Proving in Lean 4
- Jeremy Avigad and Patrick Massot, Mathematics in Lean