Theorem Proving
A four-part series on the connection between types and proofs: the Curry-Howard correspondence, a tiny prover implemented explicitly in Python, a mini-Lean embedded in Julia’s type system, and writing proofs in Lean.
Episodes
Episode 1 – Propositions Are Types, Proofs Are Programs
The Curry-Howard correspondence says that types and logical propositions are the same thing. Understanding why changes how you think about both programming and mathematics.
Episode 2 – Building a Tiny Theorem Prover in Python
A tiny theorem prover is just a term language, a checker, and a small trusted kernel. We build one in plain Python to make the architecture explicit.
Episode 3 – Programming a Mini-Lean in Julia’s Type System
Guillermo Angeris builds a working theorem prover in 61 lines of Julia. A tiny trusted kernel, six axioms, and the compiler does the rest. This article walks through the full construction.
Episode 4 – Writing Your First Proofs in Lean
The same three theorems from the Python prover, now in Lean 4.
This series is complete!