Repository navigation
feat(gametheory,#14773): Lean v4.33.0 + Mathlib db584cd6 — game_theory_lean, asymmetric_information_lean, repeated_games_lean - #17613
Conversation
…athlib db584cd6 game_theory_lean, asymmetric_information_lean, repeated_games_lean: toolchain v4.32.1 -> v4.33.0, Mathlib pin -> db584cd6d46c92f209a44c0f1c829460d327499d, lake-manifest.json regenerated by Lake. Two Mathlib-4.33 proof adaptations (StableMarriage.proposedCount.initial and TUGame.marginalVector_dominates heq), FR+EN siblings kept byte-identical outside docstrings. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] VERDICT: LGTM — bump Lean v4.32.1→v4.33.0 / Mathlib db584cd6, 3 lakes GameTheory (issue #14773 Phase 4).
Vérifié firsthand :
- Diff complet lu (293 l.) : toolchain + pins manifest x2 + 2 adaptations de preuve FR/EN à l'identique (
symm_apply_applypourheqdefeq 4.33 ; dépliagesimp only+extpourinitialaprès renommageSet.setOf). Même énoncé, aucunsorryajouté (baseline 1 inchangé, sondes#print axiomssanssorryAx). - Preuve-vive CI :
Lean CI (game_theory_lean)12m55s etProof integrity (game_theory_lean)13m27s verts sur ce head — compilation réelle des fichiers .lean modifiés, pas une jambe hors périmètre.asymmetric_information_lean:Lean CI+Proof integrityverts (28 modules), et son lakefile.toml confirme le path-deplean_game_defs_extvoisin → manifest inchangé cohérent.repeated_games_leancoquille archive #6146 neutralisée, couverte par le home canonique — absence de job dédié acceptée. PR gatefail = DWELL (minuteur 25 min < plancher 120, #15197), pas un défaut de code — rien à corriger.- 0 secret (grep du diff), 0 notebook touché, i18n siblings 23/24 byte-identical.
Note mineure : les inputRev pointent sur le SHA brut db584cd6… plutôt qu'un tag — lisible, mais un commentaire du SHA (ex. « pré-tag v4.33.0, cf. #14773 ») dans lakefile aiderait les tranches suivantes. Non bloquant.
|
[ADJOINT PREFLIGHT] Dossier tiers au head Diff Le point B.3 du body est verifie firsthand : Restent a ai-01 : lecture B.0 finale, verdict G-VAR sur le grain DEEP/lean, decision de merge. Non verifie par l'adjoint : |
Grain: DEEP/lean — lane myia-po-2027:CoursIA — prev: MED/guard #17611
Tranche GameTheory — Lean v4.32.1 → v4.33.0 / Mathlib
db584cd6d46c92f209a44c0f1c829460d327499dTrois lakes migrés (issue #14773, Phase 4). Périmètre mesuré au départ : 8 lakes sur v4.32.1 dans le dépôt ; cette tranche livre les 3 lakes GameTheory, dont un home canonique (
game_theory_lean) et une coquille archive (repeated_games_lean).État par lake
lake builddistinct_code_sorry#print axiomsgame_theory_leandb584cd6[propext, Classical.choice, Quot.sound]maxasymmetric_information_lean[propext, Quot.sound]maxrepeated_games_leandb584cd6game_theory_lean/RepeatedGames/, couvert par le build 8770 jobs ci-dessus)Deux adaptations de preuve (Mathlib 4.33, FR+EN siblings)
StableMarriage.proposedCount.initial(Lemmas.lean:112,Lemmas_en.lean:118) — la familleSet.setOfa été renommée/dépréciée (versSet.mem_ofPred/Set.iInter_ofPred) : lesimp [proposedCount, proposedSet, gsInitial]d'origine ne ferme plus le but d'appartenance{mw | False}. Nouvelle preuve par dépliage contrôlé :simp only [proposedCount, proposedSet, Finset.card_eq_zero](delta pur, aucune forme setOf créée) puisext mw+simp only [Finset.mem_filter, Finset.mem_univ]etsimp [gsInitial]final sur un but sans setOf.TUGame.marginalVector_dominates(Basic.lean:569,Basic_en.lean:569) — le comportement defeq deFintype.equivFina changé en 4.33 :unfold enumIndex; simpne ferme plusheq. Remplacé par la forme term-mode(Fintype.equivFin N).symm_apply_apply i(defeq par delta surenumIndex+ eta structurelle + irrélevance de preuve — vérifié par sonde sur définitions répliquées, puis build).Aucune régression : aucune preuve existante remplacée par
sorry/stub ; seules ces deux preuves ont été adaptées au changement d'API, même énoncé, siblings FR/EN édités à l'identique.Vérifications
lake buildSUCCESS sur les 3 lakes, exécuté en staging WSL avec Mathlib chaud vérifié au pin exact (git rev-parse HEAD=db584cd6…) — pas de replay de.oleanpérimés.python scripts/lean/count_code_sorry.py --lake …: game_theory 1 (baseline 1 — sorry résiduel préexistant, non touché), asymmetric 0, repeated 0.python scripts/lean/check_i18n_siblings.py game_theory_lean: 23/24 byte-identical + 1 consumer-pattern, 0 drift, 0 orphan (exit 0).#print axiomssurTUGame.marginalVector_dominates,TUGame.bondareva_shapley,StableMarriage.proposedCount.initial/stepWith,StableMarriage.womenBestState.initial,AsymmetricInformation.BayesianLink.bridgeStrategy_isBNE,AsymmetricInformation.Lemons.poolingTenable_iff_cross/_mono) : aucunsorryAx, aucunnative_decide.*;Classical.choiceuniquement en usage standard (tactiqueclassical/Mathlib).B.3 — applicable sur deux lakes du périmètre (corrigé après mesure des check-runs de la tête, adjoint c.61)
La déclaration initiale « non applicable » était inexacte — les check-runs de la tête 9375195 montrent deux jobs
proof-integrityverts :proof-integrity / Proof integrity (game_theory_lean): SUCCESS (23:47:02Z). Câblagelean-social-choice.yml— ses target-modules (SocialChoice.*,Abstraction*,ProgramGames.*) n'atteignent pas les modules modifiés (CooperativeGames/Basic(_en),StableMarriage/Lemmas(_en)) : le vert est hors-cible pour ces fichiers (cas (b)), les sondes#print axiomsmanuelles ci-dessus restent la preuve qui les couvre.proof-integrity / Proof integrity (asymmetric_information_lean): SUCCESS (23:54:18Z), câblagelean-asymmetric-information.ymltarget-modules"*"— couvre le lake entier, fichiers modifiés inclus.repeated_games_lean: aucun workflowlean-axiom(cas (a)) — coquille archive, couvert par le buildgame_theory_lean.Hors périmètre documenté
social_choice_lean: exception upstream —DominikPeters/SocialChoiceLeanmaster gelé au pin94a4c650avec toolchain v4.32.0 (vérifié via contents API au moment de la sélection du grain).See #14773 (livraison partielle : 3 lakes / périmètre GameTheory de la Phase 4).
🤖 Generated with Claude Code