Solve problems. Lean checks every step.
Programs, proofs and verified code, judged by the Lean compiler: programs run against hidden tests, and proofs are accepted only when Lean checks every step. Core library only, no Mathlib.
Study paths
Five short problems: a program, a proof, a definition to unfold, a string, and a first verified function.
Unfold, simplify, split on cases and finish the arithmetic: the tools of the Academy course of the same name.
From swapping a conjunction to Cantor’s diagonal argument, including the classical steps.
No tests, only specifications: write the function and prove it correct for every input.
Sums, powers and lists, then strong induction for prime factors.
The interview classics in Lean, with hidden tests sized so that slow solutions run out of time.
Proof
The statement is fixed and you write the proof. The judge accepts it only when Lean closes every goal without sorry or extra axioms.
Program
Write a function in Lean. Run it against the examples and your own inputs, then submit it against hidden tests, some sized so that slow algorithms run out of time.
Verified program
There are no tests: you prove that the code meets a specification, so it is correct for every input, not just the ones someone thought of.