Skip to content

Docs(lean): les pins Mathlib documentes contredisent les lakefiles (3 lakes mesures, cohorte GameTheory a mesurer) #24634

Open

Description

@jsboige

Constat

Trois lakes Lean documentent une version de Mathlib que leur propre lakefile.lean contredit. Le fichier qui fait foi est le lakefile ; c'est la documentation qui est fausse.

Mesure du 2026-11-04, sur origin/main (bb19c7151ed), en lisant lean-toolchain et le require mathlib de chaque lake :

Lake lean-toolchain (fait foi) Mathlib (fait foi) ce que la doc annonçait
Search/search_lean v4.33.0 db584cd6 v4.31.0-rc1 (README L216)
Probas/DecisionTheory/decision_theory_lean v4.33.0 db584cd6 v4.31.0-rc1 (README L42, L55) et v4.30.0-rc2 (docstrings Discount.lean L95, Discount_en.lean L94)
Search/discrepancy_lean v4.33.0 db584cd6 v4.32.1 / 520045ab (README L55)

search_lean se contredit à l'intérieur de son propre README : L216 annonçait v4.31.0-rc1, L221 annonçait déjà v4.33.0. Et decision_theory_lean portait deux versions périmées différentes (v4.31.0-rc1 et v4.30.0-rc2) pour une seule dépendance.

Pourquoi ça compte

Un lecteur qui suit la documentation télécharge la mauvaise Mathlib. Plus gênant : la phrase de Discount.lean (« tsum_le_tsum non disponible dans Mathlib v4.30.0-rc2 ») se lit aujourd'hui comme une affirmation sur le pin courant, alors qu'elle décrit la version contre laquelle le contournement a été écrit.

Portée du correctif

Les déclarations de pin sont corrigées sur la valeur mesurée. Les deux phrases historiques (Discount.lean/Discount_en.lean, README L75) ne sont pas rebasées sur v4.33.0 : je n'ai pas mesuré si tsum_le_tsum est encore absent sur ℝ nu au pin db584cd6, et l'écrire le serait sans preuve. Elles sont marquées comme décrivant la version alors utilisée, ce qui est vrai et ne prétend rien sur la version actuelle.

Hors périmètre de cette passe — même classe, cohorte non mesurée

Un balayage plus large montre que le défaut existe aussi dans GameTheory, sur des lakes que cette passe n'a pas mesurés :

  • GameTheory/conway_cgt_lean — lakefile v4.33.0-rc1 / bb863d3d, doc annonce v4.31.0-rc1
  • GameTheory/game_theory_lean — lakefile v4.33.0 / db584cd6, README annonce v4.32.1 / 520045ab
  • GameTheory/minimax_lean — lakefile v4.33.0 / db584cd6, README annonce v4.32.1
  • GameTheory/lean_game_defs — lakefile v4.33.0, README annonce v4.32.1

Ces quatre-là sont mesurés ; d'autres lakes de la même famille (cooperative_games_lean, assignment_lean, asymmetric_information_lean, lean_game_defs_ext) n'ont pas été vérifiés et ne sont donc pas affirmés périmés. La première étape d'une passe suivante est de les mesurer, pas de les corriger en série.

social_choice_lean et repeated_games_lean ne portent pas de projet Lean à leur racine (le second est vide, ses sources vivent dans game_theory_lean) : leurs mentions de version demandent une lecture au cas par cas, pas un remplacement mécanique.

Critère de clôture

  • les 3 lakes ci-dessus alignés sur leur lakefile (fait dans la PR liée)
  • cohorte GameTheory mesurée lake par lake, puis alignée
  • aucune affirmation de version écrite sans lecture du lean-toolchain / lakefile.lean du lake concerné

Aucun sorry ajouté ni retiré par cette passe : elle ne touche que de la documentation et des docstrings.

Activity

  1. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA -- aligner les pins Mathlib documentes sur les lakefiles (3 lakes) -- paths: MyIA.AI.Notebooks/Search/search_lean/README.md, MyIA.AI.Notebooks/Search/discrepancy_lean/README.md, MyIA.AI.Notebooks/Probas/DecisionTheory/decision_theory_lean/README.md, MyIA.AI.Notebooks/Probas/DecisionTheory/decision_theory_lean/Gittins/Discount.lean, MyIA.AI.Notebooks/Probas/DecisionTheory/decision_theory_lean/Gittins/Discount_en.lean

    (check_lane_claim #9774 -- server-stamped UTC; body timestamps are NOT authoritative. Release with [RELEASED] when your PR lands.)

  2. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2024:CoursIA -- PR #24636 (paths: MyIA.AI.Notebooks/Search/search_lean/README.md, MyIA.AI.Notebooks/Search/discrepancy_lean/README.md, MyIA.AI.Notebooks/Probas/DecisionTheory/decision_theory_lean/**

    Livraison partielle : les 3 lakes mesures sont alignes sur leur lakefile. La cohorte GameTheory nommee dans le body reste a mesurer lake par lake -- l'issue reste ouverte pour cette part.

    Les deux phrases historiques sur tsum_le_tsum ne sont pas rebasees sur v4.33.0 : l'absence au pin db584cd6 n'est pas mesuree, l'affirmer serait sans preuve. Elles sont marquees comme decrivant la version alors utilisee.

  3. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA -- paths: MyIA.AI.Notebooks/GameTheory/game_theory_lean/README.md, MyIA.AI.Notebooks/GameTheory/minimax_lean/README.md, MyIA.AI.Notebooks/GameTheory/lean_game_defs/README.md, MyIA.AI.Notebooks/GameTheory/lean_game_defs_ext/README.md

    Cohorte GameTheory mesuree (suite de la tranche #24636, qui portait Search/Probas) : 4 lakes sur 7 documentent un pin contredit par leur propre lean-toolchain. Correction des 4 README, sans toucher aux pins eux-memes.

  4. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2024:CoursIA -- PR #24638 -- paths: MyIA.AI.Notebooks/GameTheory/game_theory_lean/README.md, MyIA.AI.Notebooks/GameTheory/minimax_lean/README.md, MyIA.AI.Notebooks/GameTheory/lean_game_defs/README.md, MyIA.AI.Notebooks/GameTheory/lean_game_defs/README.en.md, MyIA.AI.Notebooks/GameTheory/lean_game_defs_ext/README.md

    Cohorte GameTheory entierement mesuree (7 lakes) : 4 documentaient un pin contredit par leur lean-toolchain (v4.32.x annonce, v4.33.0 reel), corriges dans #24638. assignment_lean et conway_cgt_lean etaient deja justes ; asymmetric_information_lean n'annonce aucun pin ; cooperative_games_lean est un dossier vide, pas un lake.

    Non touche volontairement : les 3 mentions v4.32.1 de game_theory_lean/README.md decrivent SocialChoice/social_choice_lean_peters/, lake separe reellement pinne v4.32.1 (verifie : son lean-toolchain dit v4.32.1 et son lakefile epingle le commit 520045ab14e).

    Reste ouvert sur cette issue : les autres series Lean (SocialChoice, Search residuel, Probas).

  5. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2027:CoursIA -- paths: MyIA.AI.Notebooks/SymbolicAI/Lean/GALOIS/galois_lean/README.md

    Extension de la classe #24634 à la cohorte SymbolicAI/Lean, que l'issue n'avait pas mesurée (po-2024 tient Search/Probas/GameTheory, périmètres distincts, aucun chevauchement).

    Coorte SymbolicAI/Lean mesurée lake par lake ce cycle — 9 lacs porteurs d'un README.md + lakefile.lean, lean-toolchain lu pour chacun :

    Lake lean-toolchain (fait foi) README annonce verdict
    ANALYSE/kls_lean v4.32.1 v4.32.1 (520045a) aligné
    GALOIS/galois_lean v4.33.0 v4.32.1 dérive — objet de ce claim
    Geometry/geometry_lean v4.33.0 v4.33.0 aligné
    Langlands/hecke_lean v4.33.0 v4.33.0 (db584cd6d46c) aligné
    differential_lean v4.33.1 v4.33.1, écart au parc documenté volontairement aligné
    finiteness_lean v4.33.0 v4.33.0 aligné
    formal_groups_lean v4.33.0 v4.33.0 aligné
    grothendieck_lean v4.33.0 v4.33.0 + historique de migration aligné
    sensitivity_lean v4.33.0 v4.33.0 + historique de migration aligné

    Un seul décalage réel sur neuf. Les huit autres mentions de versions périmées que rend un balayage naïf sont de l'historique de migration légitime (« migrée depuis v4.31.0-rc1 par #10997 ») ou des revs d'autres paquets ; les corriger serait un faux positif, exactement ce que #24634 interdit (« une affirmation de version écrite sans lecture du lean-toolchain »).

    Correction prévue : les trois affirmations d'état courant du README de galois_lean (toolchain, rev Mathlib, forme globs) + la phrase de pin de la prologue CoursIA de M23Lean4Web.lean. Aucune ne touche à un fichier de preuve ni à un pin.

    galois_lean est en lecture seule depuis le début de ce cycle : je viens de le relever pour #1453, aucun fichier modifié.

  6. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED-AMEND] lane myia-po-2027:CoursIA -- paths: MyIA.AI.Notebooks/SymbolicAI/Lean/GALOIS/galois_lean/README.md, MyIA.AI.Notebooks/SymbolicAI/Lean/GOL/conway_lean/README.md

    L'amend corrige une erreur de chemin dans la claim precedente, pas un elargissement de perimetre : la cohorte mesuree reste la meme (les lakes Lean sous SymbolicAI/Lean), mais conway_lean n'est plus a la racine de SymbolicAI/Lean.

    Il a demenage par 9c4c35fc36 — « Refactor(lean,#23164): descendre le lake conway_lean vers GOL/conway_lean (#24166) ». Ma lecture initiale portait sur une copie locale en retard de 7 commits sur origin/main, ou l'ancien chemin existait encore. Le chemin declare ci-dessus est celui de l'arbre courant : verifie sur origin/main (e9583eb), find -name lakefile.lean rend ./GOL/conway_lean, et rien a ./conway_lean.

    Les deux fichiers restent disjoints de la partition de myia-po-2024 sur cette issue, qui porte Search/, Probas/ et GameTheory/.

  7. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [DELIVERED] lane myia-po-2027:CoursIA -- PR #24642 -- paths: MyIA.AI.Notebooks/SymbolicAI/Lean/GALOIS/galois_lean/README.md, MyIA.AI.Notebooks/SymbolicAI/Lean/GOL/conway_lean/README.md

    Cohorte SymbolicAI/Lean mesuree lake par lake, puis alignee : 2 derives reelles sur 19 lakes, corrigees dans #24642.

    Le chiffre utile n'est pas 2, c'est l'ecart entre ce qu'un balayage rend et ce qu'une lecture confirme. Le scan naif signalait 10 lakes ; la reevaluation en a elimine 8, chacun pour un motif different et nomme : mention historique parenthesee (calibration_lean, sensitivity_lean), recit date d'une Partie (grothendieck_lean), version d'un lake frere citee comme repere (mimo_lean), ecart delibere documente ou le lake suit son amont et non le parc (differential_lean), et absence de README a la racine (riemann200_lean, serre100_lean, torchlean_lean). Sans la reevaluation, la PR aurait reecrit de l'histoire vraie.

    Deux derives de chemin corrigees au passage, qui expliquent pourquoi la mesure initiale avait RATE conway_lean : le lake a demenage en GOL/conway_lean par 9c4c35fc36 (#24166), et ma lecture portait sur une copie locale en retard de sept commits ou l'ancien chemin existait encore. Un scan sur un arbre non rafraichi ne voit pas ce qu'il pretend mesurer.

    Cloture de l'issue, mon avis : les trois criteres sont couverts par deux lanes — les 3 lakes d'origine et la cohorte GameTheory par po-2024 (#24636, #24638), la cohorte SymbolicAI/Lean par ce grain. Le troisieme critere (« aucune affirmation de version ecrite sans lecture du toolchain du lake ») est tenu par construction dans les deux PRs. Reste a trancher cote coordinateur ; je ne ferme pas.

    Une chose que ce grain n'a pas faite, et qui reste ouverte : scripts/lean/setup_shared_mathlib.ps1 liste encore SymbolicAI/Lean/conway_lean a l'ancien emplacement dans sa sortie de scan. C'est la meme classe de derive que celle corrigee ici, mais dans un script, pas dans un README — je ne l'ai pas touche pour ne pas melanger deux sujets dans une PR de documentation.

  8. jsboige commented on Nov 4, 2026

    @jsboige
    OwnerAuthor

    [ACTION] Correction de la derniere ligne de mon [DELIVERED] ci-dessus : le chemin perime que j'y signalais n'existe pas sur main.

    J'avais ecrit que scripts/lean/setup_shared_mathlib.ps1 listait encore SymbolicAI/Lean/conway_lean. Mesure refaite sur l'arbre courant (origin/main e9583eb471, worktree isole) : le workflow lean-conway.yml porte 0 occurrence de l'ancien chemin et 13 de GOL/conway_lean, et le log du dernier run CI construit bien sous GOL/ (8802 jobs, cache .../GOL/conway_lean/.lake). Le demenagement #24166 a mis les filtres de chemin a jour correctement.

    La ligne venait de mon clone principal, en retard de sept commits : l'entree perimee est dans son cache local .mathlib-cache/.../share-state.json, qui est gitignore et ne dit rien de l'etat du depot. C'est la meme cause que l'erreur de chemin de mon [CLAIMED-AMEND] plus haut — deux lectures consecutives sur un arbre non rafraichi, deux fausses conclusions.

    Ce qui reste vrai : les deux README corriges dans #24642, et la mesure des 19 lakes. Ce qui tombe : le suivi que j'annoncais comme ouvert. Aucune issue de suivi n'est due pour ce point.

  9. added 3 commits that reference this issue on Nov 4, 2026
  10. added 3 commits that reference this issue on Nov 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions