Skip to content

fix(serre100,#17357): carnet 06 -- 5 constats d'audit corriges (figure FCC muette, enonces, f-string) - #20108

Closed
jsboige wants to merge 1 commit into
mainfrom
fix/17357-serre100-06-bulles-minkowski
Closed

jsboige wants to merge 1 commit into
mainfrom
fix/17357-serre100-06-bulles-minkowski

Conversation

@jsboige

@jsboige jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner

Grain: MED/notebook-lean — lane myia-po-2024:CoursIA — prev: MED/notebook-lean #20106

Reassessed by myia-po-2024:CoursIA: CONFIRMED (5/5) — aucun faux positif. Chaque constat a ete reverifie sur main AVANT correction : geometrie FCC recomputee (dmin contre 2*r_s), comptage de np. sur le carnet entier, et egalites de la sortie re-evaluees par Python.

Corrige les 5 constats de l'audit Hermes (c.5775158348) sur Serre100/06-bulles-minkowski.ipynb.

Constats et mesures

# Classe Avant Mesure firsthand Correction
F1 stale-claim (en-tete) « les reseaux exceptionnels E8 et Leech planent 16 000 fois au-dessus » la sortie du tableau donne E8 = 32x et Leech = 16186x ; la lecture du meme tableau disait deja juste en-tete -> « E8 deja 32 fois au-dessus, le Leech 16 000 fois »
F2 stale-claim (figure) titre « contacts sur les diagonales de face » ; prose « en unites a/2 » les 4 points etaient donnes en unites a/2 mais traces en unites a : dmin = 1,414 pour un contact exige a 2*r_s = 0,707, soit des spheres separees d'un demi-diametre points divises par 2 : dmin = 0,707107 = 2*r_s, contact exact (la formule et la densite imprimee 0,740480 etaient justes)
F3 orphan-statement en-tete de tableau markdown a 6 colonnes (reseau, n, demi-distance, det, densite, 2^(1-n)) c'est la seule ligne commencant par un pipe dans le carnet : 0 separateur, 0 donnee ; les colonnes demi-distance et det ne figurent dans aucune sortie, et le tableau reellement imprime a un autre schema enonce orphelin supprime — le tableau reste la sortie executee de la cellule suivante
F4 stale-claim (dependances) # Dependances : stdlib (math, itertools) + matplotlib inline headless. le carnet fait import numpy as np et emploie np. 11 fois ; un apprenant suivant ce contrat tombait sur ModuleNotFoundError a la figure de la section 4 numpy (rendu 3D) ajoute a la declaration
F5 false-printed-equation p = 5 : k = 2, point du reseau -> 1^2 + -2^2 = 5 lue litteralement — et telle que Python l'evalue (-2**2 == -4) — les 7 lignes affichees sont fausses f-string -> ({a})^2 + ({b})^2 ; sortie re-executee (1)^2 + (-2)^2 = 5, les 7 egalites verifiees par evaluation litterale

Cellules touchees

0, 2, 11, 14, 15 — 5 cellules, 5 substitutions. Les 22 autres cellules sont identiques a main (controle automatique du diff de source).

Validation

  • Re-execution complete : batch_reexecute.py --path ... --cwd notebook -> SUCCESS (9s). 10/10 cellules code avec execution_count reel et sorties, 0 erreur, 0 erreur volontaire (C.1). Volume de sorties +20 684 octets (aucune collapse) ; les 3 stubs d'exercice gardent leurs sorties vides d'origine, inchangees.
  • Ratchets (base origin/main -> merge-base 19303c100dc4) : output-failure-text 0 regressed (bloquant) ; output-collapse 0 flagged ; source-collapse 0 flagged ; prose-counts rc=0.
  • Preuve geometrique (F2) : dmin = 0.707107, 2*r_s = 0.707107, contact exact — obtenu par le meme calcul que la cellule.

Place dans la campagne

Verdict de tier

MED — litmus : la verite mesuree etait deja dans le carnet (la sortie du tableau, la densite imprimee) ; cette PR aligne l'en-tete, la figure, la declaration de dependances et un f-string sur elle, elle n'ajoute pas de capacite nouvelle.

See #17357

🤖 Generated with Claude Code

…e FCC, enonces, f-string)

Audit Hermes c.5775158348 reverifie constat par constat sur main AVANT correction
(mesures rejouees sur le carnet lui-meme, geometrie et sorties recomputees) :

- F1 stale-claim (en-tete) : l'en-tete creditait E8 ET Leech de "16 000 fois
  au-dessus" de Minkowski-Hlawka ; la sortie de la cellule du tableau donne
  E8 = 32x et Leech = 16186x (la lecture du meme tableau disait deja juste).
  En-tete corrige : E8 32 fois, Leech 16 000 fois.
- F2 stale-claim (figure) : les 4 points FCC etaient donnes en unites a/2 mais
  traces en unites a -- distance minimale 1,414 pour un contact exige a
  2*r_s = 0,707, soit des spheres separees d'un demi-diametre alors que le
  titre annonce "contacts sur les diagonales de face". Echelle corrigee
  (points divises par 2) : distance minimale 0,707107 = 2*r_s, contact exact.
- F3 orphan-statement : en-tete de tableau markdown a 6 colonnes
  (demi-distance, det) sans separateur ni corps, et annoncant des colonnes
  absentes de toute sortie du carnet -- le tableau reellement imprime par la
  cellule suivante a un autre schema. Enonce orphelin supprime.
- F4 stale-claim (dependances) : la declaration de tete annoncait "stdlib +
  matplotlib" alors que le carnet fait import numpy et emploie np. 11 fois ;
  un apprenant suivant ce contrat tombait sur ModuleNotFoundError a la
  figure FCC. numpy ajoute a la declaration.
- F5 false-printed-equation : le f-string imprimait la notation brute des
  entiers negatifs (1^2 + -2^2 = 5), fausse lue litteralement -- et telle que
  Python l'evalue, -2^2 valant -4. Parenthesage corrige : (1)^2 + (-2)^2 = 5 ;
  les 7 lignes affichees sont desormais des egalites vraies (verifie par
  evaluation litterale sur la sortie re-executee).

Cellules 0, 2, 11, 14, 15 modifiees ; re-execution complete du carnet
(10 cellules code, exec_count reels, 0 erreur, 0 erreur volontaire, sorties
commitees ; sorties +20 684 octets, aucun stub vide).

See #17357

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #20108 (fix(serre100,#17357): carnet 06 -- 5 constats d'audit corriges (figure FCC muette, enonces, f-string)) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

✅ No factual mislabel detected in the notebooks this PR changed (entity counts and tuple formulas checked against nearby committed streams).

Scope = notebooks CHANGED in this PR, not the whole corpus. The factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 8.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 9.2s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 10.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 10.0s
Search-01-StateSpace.ipynb ✅ SUCCESS 5.6s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 4.0s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 45.2s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 6.7s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 32.4s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 10
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Fermee en faveur de #20199, qui regroupe la campagne #17357 (carnets 05, 06 et 07) en une seule PR.

Rien n'est perdu, et cela se prouve par empreinte — l'objet blob du carnet dans #20199 est identique a celui de la branche de cette PR :

Carnet blob dans #20199 blob ici
05-table-de-caracteres.ipynb 1eb3ac66847 1eb3ac66847
06-bulles-minkowski.ipynb 602d4cdcbe9 602d4cdcbe9
07-zeros-fonctions-l-gaps-gue.ipynb 15b42fee127 15b42fee127

Motif. La directive de famine fixe la granularite de cette campagne : « #17357 fixes regrouped 3-6 carnets/PR ». Ces trois PRs etaient livrees a raison d'un carnet chacune, soit la forme que la directive ecarte. Le regroupement retire aussi deux jeux complets de jambes CI d'une file qui en porte ~1 800.

Le contenu, les 13 constats, la validation et les ratchets sont repris integralement dans le corps de #20199.

Fermeture par la lane auteur : ces trois PRs sont de myia-po-2024:CoursIA.

🤖 Generated with Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant