Skip to content

Lean for Game Theorists

These notes teach the Lean theorem prover to readers who already know game theory. We assume that the reader is comfortable with normal-form games, mixed strategies, Nash equilibria and evolutionarily stable strategies, and has never written a line of Lean. Every Lean idea is earned as it appears; none of the game theory is explained.

The destination is a single theorem: an evolutionarily stable strategy is a symmetric Nash equilibrium. It is a result every game theorist already believes, and its proof is short enough to hold in mind, which makes it an honest place to find out what formalisation actually feels like.

The notes follow the Diátaxis split.

Tutorial

A single guided path from an empty directory to a proved theorem. This is the place to start, and it is meant to be followed in order, typing along the way.

How-to guides

Short answers to specific questions, for readers already comfortable with Lean: setting up an editor, encoding a new payoff matrix, reading an error message.

Reference

The definitions and lemmas these notes build, stated precisely and without commentary.

Explanation

Why formalisation behaves as it does. What Lean and Mathlib each are and where Lean came from, why decide fails on the reals, why definitions are harder than proofs, and where the road to Nash's existence theorem leads.

Versions

Everything here is built against Lean 4.33.1 and Mathlib v4.33.1. Both are pinned in the repository, and every Lean block on these pages is checked against a file that compiles.