Lean Game Definitions
Définitions de types partagées en Lean 4, utilisées par plusieurs projets Lean de GameTheory. Projet Lake autonome et self-contained (zéro dépendance, cœur Lean uniquement) — fournit des définitions de référence recopiées dans les notebooks d’enseignement ; lake build est le chemin de vérification (localement et en CI).
Statut
- Type : Projet Lake autonome (
lakefile.toml,lean-toolchainpinnév4.32.1,lake-manifest.json) - Fichiers : 12
.lean(6 FR + 6 siblings_en, EPIC #4980 Pattern A) - Compte de
sorry: 0 (définitions uniquement, pas de preuves) - Dépendance Mathlib : aucune — tous les fichiers utilisent le cœur de Lean 4 uniquement
- Compilable isolément : Oui —
lake build(harnais posé par #2752, review ai-01) - CI dédiée :
.github/workflows/lean-game-defs.yml+lean-game-defs-ext.yml - Dernier audit sorry : 2026-05-29
- Dernière correction de compilation : 2026-06-10 (See #2748)
Fichiers
- Basic.lean — 107 lignes. Structures
NormalFormGame,FiniteGame,Game2x2+ paiements espérés. Source :GameTheory-16-Lean-Definitions.ipynb. - Nash.lean — 139 lignes. Meilleure réponse, équilibre de Nash pur/mixte, dominance stricte. Source :
GameTheory-16-Lean-Definitions.ipynb. - Combinatorial.lean — 113 lignes.
GameTree, évaluation minimax, détermination victoire/défaite. Source :GameTheory-18-Lean-CombinatorialGames.ipynb. - SocialChoice.lean — 126 lignes.
Preference,StrictPref, axiomes d’Arrow (énoncés). Source :GameTheory-19-Lean-SocialChoice.ipynb. - Bayesian.lean — Jeux bayésiens à information incomplète :
BayesianGame,TypeStrategy,BayesianNashEquilibrium,InformationSet,SignalingGame,FirstPriceAuction, définitions du poker de Kuhn. Source :GameTheory-11-BayesianGames-Python.ipynb,GameTheory-13-ImperfectInfo-CFR-Python.ipynb. - Regret.lean — Minimisation du regret et CFR :
CumulativeRegret,regretMatchingStrategy,CounterfactualRegret,CFRState,FictitiousPlayState. Source :GameTheory-13-ImperfectInfo-CFR-Python.ipynb,GameTheory-17-MultiAgent-RL-Python.ipynb.
Utilisation
Ces fichiers sont des définitions de référence (couche introductive, 0 preuve), vérifiables par lake build. Utilisation :
Copier-coller dans une cellule de notebook (workflow pédagogique typique dans
GameTheory-2b,GameTheory-8b, etc.).Importer depuis un projet Lake adjacent en ajoutant le chemin du fichier au
lakefile.leandu projet. Exemple depuisgame_theory_lean/SocialChoice/:import GameTheory.lean_game_defs.Basic import GameTheory.lean_game_defs.SocialChoiceExploration autonome via le kernel Lean 4 WSL (voir scripts/README.md pour la configuration du kernel).
Pour le support complet de PGame (théorie des jeux combinatoires dans toute sa généralité mathématique), utiliser Mathlib directement :
import Mathlib.SetTheory.PGame.Basic
import Mathlib.SetTheory.Game.Nim
Relation aux autres projets Lean de GameTheory
- game_theory_lean/ — Projet Lake multi-module (StableMarriage = formalisation Gale-Shapley, EPIC #4365 ; CooperativeGames absorbé depuis
cooperative_games_lean/rm #6587). - game_theory_lean/SocialChoice/ — Module absorbé dans
game_theory_lean(Arrow / Sen / électeur médian / Voting, EPIC #4365). - social_choice_lean_peters/ — Projet Lake indépendant référençant Peters au commit
94a4c650dulake-manifest.json(Gibbard-Satterthwaite, Duggan-Schwartz).
Ces projets ne dépendent pas de lean_game_defs/ à la compilation — ils vendorent leurs propres définitions adaptées à leurs obligations de preuve. lean_game_defs/ est la couche introductive utilisée par les notebooks d’enseignement.
Architecture en couches — la couche de définitions introductive (ce module, sans preuves) vs. les projets Lake qui portent les preuves formelles (chacun vendore ses propres définitions) :
flowchart TD
NOTEBOOKS["Notebooks d'enseignement<br/><i>copier-coller les définitions</i>"]
INTRO["lean_game_defs/<br/><b>couche introductive</b><br/>définitions uniquement · 0 sorry · cœur Lean<br/>lake autonome (ce module)"]
PROJ["Projets Lake — preuves formelles<br/>chacun vendore ses définitions adaptées"]
SC["game_theory_lean/SocialChoice/<br/>Arrow · Sen · électeur médian<br/>Voting (absorbé, EPIC #4365)"]
COOP["cooperative_games_lean/<br/>Shapley · Cœur · Banzhaf"]
SM["game_theory_lean/<br/>StableMarriage (Gale-Shapley)"]
CGT["conway_cgt_lean/<br/>surréels · nimbers (via Mathlib)"]
NOTEBOOKS -->|"copier-coller"| INTRO
INTRO -.->|"inspire (sans obligation de compilation commune)"| PROJ
PROJ --> SC
PROJ --> COOP
PROJ --> SM
PROJ --> CGT
Voir aussi
- GameTheory/README.md — Vue d’ensemble de la série (tracks OpenSpiel + Lean)
- scripts/README.md — Configuration du kernel Lean 4 WSL
- .claude/rules/wsl-kernels.md — Règles du kernel
Conclusion
lean_game_defs/ est la couche de définitions introductive du track Lean de GameTheory : définitions de types partagées en Lean 4 (pas de preuves, 0 sorry) utilisées par les notebooks d’enseignement et recopiées par les projets Lake adjacents. C’est un projet Lake autonome depuis #2752 — lakefile.toml, lean-toolchain pinné, CI dédiée — sans aucune dépendance Mathlib : chaque fichier utilise le cœur de Lean 4 uniquement, et lake build vérifie l’ensemble (12 modules, FR + siblings _en).
Ce qu’elle fournit
Six fichiers de référence couvrant le curriculum de théorie des jeux : jeux sous forme normale / finis (Basic.lean), équilibre de Nash et dominance (Nash.lean), arbres de jeux combinatoires avec minimax (Combinatorial.lean), primitives de choix social et axiomes d’Arrow (SocialChoice.lean), jeux bayésiens et signalisation (Bayesian.lean), et minimisation du regret / CFR (Regret.lean). Chaque fichier correspond à un notebook d’enseignement spécifique et est autonome.
La carte du curriculum — six fichiers, du jeu sous forme normale jusqu’au CFR, chacun rattaché à son notebook pédagogique source :
flowchart LR
BASIC["Basic.lean<br/>NormalFormGame · FiniteGame · Game2x2<br/><i>16-Lean-Definitions</i>"]
NASH["Nash.lean<br/>meilleure réponse · Nash pur/mixte<br/>dominance stricte<br/><i>16-Lean-Definitions</i>"]
COMB["Combinatorial.lean<br/>GameTree · minimax · détermination<br/><i>18-CombinatorialGames</i>"]
SC["SocialChoice.lean<br/>Preference · axiomes d'Arrow<br/><i>19-SocialChoice</i>"]
BAY["Bayesian.lean<br/>BayesianGame · Nash bayésien · poker de Kuhn<br/><i>11-Bayesian · 13-CFR</i>"]
REG["Regret.lean<br/>CumulativeRegret · CFR · FictitiousPlay<br/><i>13-CFR · 17-MultiAgent-RL</i>"]
BASIC --> NASH
NASH --> COMB
NASH --> SC
NASH --> BAY
BAY --> REG
Où aller ensuite
- Projets compilables (chacun vendore ses propres définitions adaptées aux preuves) :
game_theory_lean/SocialChoice/(Arrow / Sen / électeur médian / Voting, absorbé dansgame_theory_lean, EPIC #4365),game_theory_lean/(StableMarriage + CooperativeGames absorbé : valeur de Shapley, Cœur, EPIC #4365). - Visite CGT :
conway_cgt_lean/— surréels, nimbers viavihdzp/combinatorial-games. - Configuration du kernel : scripts/README.md et .claude/rules/wsl-kernels.md.
Comment elle est utilisée
import GameTheory.lean_game_defs.*; ouPour la théorie complète des jeux combinatoires (
PGame, surréels, nimbers), le track renvoie auSetTheory.PGamede Mathlib / à la visiteconway_cgt_lean/plutôt que de la redéfinir ici.