Repository navigation
Conversation
…nite_class_bound cites mais non #check Issue #13862 (ai-01) : la cellule markdown "Comment verifier sur main ?" de 2.8c nommait hoeffding_concentration (Hoeffding.lean) et pac_finite_class_bound (PacFiniteBound.lean) comme verifies par les #check de 2.8b. Inventaire exhaustif des directives Lean executees dans 2.8b a la tete de #13717 : aucun #check @PacLearning.hoeffding_concentration ni #check @PacLearning.pac_finite_class_bound. Les theoremes existent dans le lake (Hoeffding.lean:318, PacFiniteBound.lean:377) mais ne sont pas interroges nativement par 2.8b ; ils sont atteints par les Sections 5 (Monte-Carlo sur hoeffding_upper_tail) et 8 (#eval d'une version jouable de pac_finite_class_bound) du meme 2.8b, ce qui prouve la disponibilite de la chaine computationnelle mais pas la signature native du theoreme. Voie (a) de l'issue (remede minimum) : corriger la note de 2.8c pour nommer ce que 2.8b verifie reellement -- PacLearning.uniform_concentration, PacLearning.sampleWeight_sum_one, PacLearning.sampleWeight_nonneg (3 modules noirs de Sample.lean et UniformConcentration.lean interroges nativement par #check + #print axioms, voir Section 10 de 2.8b) -- et ajouter une note explicative (issue #13862) qui distingue "existence dans le lake" et "interrogation par #check". Voie (b) (preferee : ajouter #check @PacLearning.hoeffding_concentration + #check @PacLearning.pac_finite_class_bound + #print axioms dans 2.8b puis re-executer sous kernel lean4-wsl) n'a pas ete tentee dans cette PR : le lake learning_theory_lean n'est pas compile localement (pas de .lake/build dans le repo), le kernel lean4-wsl ne peut pas charger PacLearning.* depuis un worktree frais. Ai-01 ou po-2023 (machine avec lake compile) pourra reprendre la voie (b) dans une PR follow-up -- voir issue #13862 acceptance pour le plan exact. H.3 / C.1 / C.2 preserves : 0 cellule code touchee, 15/15 cells intactes, outputs inchanges (markdown only, exception C.2). Validation pre-commit PASS (5 cells, coursia-ml-training kernel). Grain: LIGHT/lean - lane myia-po-2026:CoursIA - prev: tooling #13871 cycle 32. paths: MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.8c-Borne-Temoin-Concentration.ipynb Closes #13862 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Path-collision (organ #13359/#13615)Cette PR #13893 (
|
Summary
Le cellule markdown "Comment vérifier sur main ?" (cellule 14) du notebook
2.8c-Borne-Temoin-Concentration.ipynbnommait deux théorèmes Lean(
hoeffding_concentrationdansHoeffding.lean:318,pac_finite_class_bounddansPacFiniteBound.lean:377) comme vérifiés par les#checkde 2.8b. L'inventaireexhaustif des directives Lean exécutées dans 2.8b à la tête de #13717 montre
aucun
#check @PacLearning.hoeffding_concentrationni#check @PacLearning.pac_finite_class_bound. Les deux théorèmes existent dans lelake (cf.
grep -n "theorem hoeffding_concentration\|theorem pac_finite_class_bound"sur les fichiers
.lean), mais ne sont pas interrogés nativement par les cellulesactuelles de 2.8b.
C'est la classe
identity-check-does-not-verify-assertion: la référence existe,l'affirmation portée sur elle ne tient pas (issue #13862 verbatim).
Voie (a) retenue — correction markdown
L'issue #13862 proposait deux remèdes :
#check @PacLearning.hoeffding_concentration+#check @PacLearning.pac_finite_class_bound+#print axiomsdans 2.8b, ré-exécuter sous kernellean4-wsl, committer avec les sorties réellesCette PR applique la voie (a) : la note de 2.8c nomme maintenant explicitement
ce que 2.8b vérifie réellement (
PacLearning.uniform_concentration,PacLearning.sampleWeight_sum_one,PacLearning.sampleWeight_nonneg— les 3modules noirs de
Sample.leanetUniformConcentration.leaninterrogés nativementpar
#check+#print axiomsen Section 10 de 2.8b), et ajoute une noteexplicative (
Note (issue #13862)) qui distingue "existence dans le lake" et"interrogation par
#check".Pourquoi voie (a) plutôt que voie (b) dans cette PR
La voie (b) requiert un environnement
learning_theory_leancompilé localement(
lake buildau moins sur les 3 modulesPacLearning.UniformConcentration,PacLearning.Hoeffding,PacLearning.PacFiniteBound). Sur la machine workermyia-po-2026, le lake n'est pas compilé (pas de.lake/build/dans leworktree ; vérifié :
find /c/dev/CoursIA-cycle-33 -name "*.lake" -type dretournevide ;
find /c/dev/CoursIA-cycle-33 -name "PacLearning.olean"retourne vide).Test direct via nbclient + kernel
lean4-wslsur la cellule 3 (qui marchait àl'origine) :
Le kernel
lean4-wslsur worktree frais ne charge pasPacLearning.*— il pointevers le mauvais Lake project root ou le cache Lake partagé est dans un état
incohérent. La voie (b) doit donc être reprise par ai-01 ou po-2023 (machines
où
learning_theory_leana été compilé au moins une fois) — voir issue #13862acceptance pour le plan exact.
Modification
1 fichier, markdown-only (exception C.2 : aucune cellule code touchée, 15/15
execution_countintacts, outputs inchangés — vérifié pargit diff+ par levalidateur pre-commit H.3 + par
#13326+ parvalidate_pr_notebooks.py).Acceptance issue #13862
dans le body PR : la voie (b) requiert un lake compilé localement, pas
disponible sur
myia-po-2026(worktree frais). Voie (b) documentée pourfollow-up par ai-01/po-2023.
(
uniform_concentration,sampleWeight_sum_one,sampleWeight_nonneg) —vérifié firsthand par lecture de 2.8b (cellules 3 et 23 contiennent ces
#checket#print axioms).le lake" (vrai pour les deux) et "interrogation par
#check" (faux pourles deux dans 2.8b actuel).
Preuves firsthand (inventaire 2.8b à la tête de #13717)
Aucun
#checksurhoeffding_concentrationnipac_finite_class_bounddans 2.8b.Les deux théorèmes sont atteints mais pas vérifiés :
#check?hoeffding_concentration(Hoeffding.lean:318)#evalMonte-Carlo surhoeffding_upper_tail)pac_finite_class_bound(PacFiniteBound.lean:377)#evalsampleComplexity jouable)uniform_concentration(UniformConcentration.lean)#check+ cell 23,#print axioms)sampleWeight_sum_one(Sample.lean)#check+#print axioms)sampleWeight_nonneg(Sample.lean)#check)La note de 2.8c, après correction, reflète exactement ce tableau.
Pre-commit (10/10 hooks PASSED)
Lien avec cycles precedents
lors du merge de 2.8c dans le trio 2.8b/2.8c/2.8d).
Grain: LIGHT/lean - lane myia-po-2026:CoursIA - prev: tooling #13871 cycle 32.
paths: MyIA.AI.Notebooks/ML/DataScienceWithAgents/02-ML-Cours/2.8c-Borne-Temoin-Concentration.ipynb
Closes #13862
🤖 Generated with Claude Code