This repository contains a formalization of fundamental theorems in game theory using the Lean proof assistant. The main goal is to prove the existence of Nash Equilibria in finite games.
The proof of Nash's theorem relies on Brouwer's fixed-point theorem. This repository builds up the necessary mathematical framework from scratch.
-
Gametheory/Simplex.lean: Defines the standard simplexstdSimplexover a finite type. Includes constructors likepure, evaluation lemmas (pure_eval_eq,pure_eval_neq), and weighted-sum/typeclass instances needed later for continuity/compactness arguments. -
Gametheory/Scarf.lean: Develops the combinatorial framework culminating inScarf. Constructs the combinatorial objects (triangulations/labelings in the formalized guise) and proves existence of a "colorful" simplex, which is used to derive fixed points. -
Gametheory/Brouwer.lean: From Scarf’s combinatorial lemma, proves Brouwer’s fixed-point theorem on a single simplex. Contains the main theoremBrouwer(existence of a fixed point for continuous self-maps on a simplex) and the supporting analytical lemmas (compactness, coordinate-wise continuity, convergence of constructed sequences). -
Gametheory/Brouwer_product.lean: Lifts the single-simplex result to finite products of simplices. Defines helper conversions between a big simplex and a product of simplices (BigSimplex,ProductSimplices), constructs the projection/embedding, proves continuity properties, and states the product fixed-point theoremBrouwer_Product. -
Gametheory/Nash.lean: Formalizes finite gamesFinGame, mixed strategiesmixedS, payoffs, and mixed Nash equilibriummixedNashEquilibrium. Builds a continuousnash_mapon the product of simplices and appliesBrouwer_Productto obtain existence:ExistsNashEq : ∃ σ : G.mixedS, mixedNashEquilibrium σ. -
GameTheory.lean: Umbrella file that importsBrouwer,Nash, andSimplexfor convenience. -
Open any of the Lean files in an editor with the Lean server running to see goals and check proofs interactively.
stdSimplex ℝ α: the standard simplex over a finite typeαwith real coefficients.Brouwer_Product: theorem providing a fixed point on a finite product of simplices.FinGame: structure for finite games (finite players and finite pure strategy sets).mixedS: type of mixed strategy profiles for aFinGame.mixedNashEquilibrium σ: predicate thatσ : G.mixedSis a mixed Nash equilibrium.ExistsNashEq: existence theorem for mixed Nash equilibria.
- N. V. Ivanov, "Beyond Sperner's Lemma" (source of the Scarf → Brouwer development).
- J. F. Nash, "Non-Cooperative Games", Annals of Mathematics (1951).