Skip to content

Add(serre100,#16334): carnet 18 — E8 et Viazovska, ce que la machine peut vérifier de la preuve 2016 - #22446

Merged
myia-ai-01 merged 7 commits into
mainfrom
feature/serre100-18-e8-viazovska
Oct 29, 2026
Merged

myia-ai-01 merged 7 commits into
mainfrom
feature/serre100-18-e8-viazovska

Conversation

@jsboige

@jsboige jsboige commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA-2 — prev: MED/ledger #22405

Résumé

Grain 23 de l'EPIC Serre 100 (#16334) — issue fille #22437. Nouveau carnet exécutable MyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/23-e8-viazovska.ipynb : E8 et Viazovska, ce que la machine peut vérifier de la preuve 2016.

La partition machine/preuve, mesurée de bout en bout :

  • Construction exacte $E_8 = D_8 \cup (D_8 + (\tfrac12,\dots,\tfrac12))$ et indice 2 — énumération point par point (boîte $[-3,3]^8$, 7⁸ = 5 764 801 candidats).
  • Les 240 racines (112 de $D_8$ + 128 du coset — la parité fait le tri dans les 256 signets) et distance minimale $\sqrt{2}$, plus essai numérique du rayon de couverture (20 000 points, maximum observé 0.9251, restant sous la borne 1).
  • Densité exacte $\pi^4/384 \approx 0.25367$ par la chaîne de covolumes $1 \to 2 \to 1$ (l'unimodularité par indices, pas par formule de Gram).
  • Série thêta vs $E_4$ : θ = 1 + 240q + 2160q² + 6720q³ + 17520q⁴ — les quatre termes mesurés coïncident exactement avec $E_4 = 1 + 240\sum\sigma_3(n)q^n$ (17520 = 240·σ₃(4)) : la série thêta est $E_4$ sur le domaine exploré. C'est l'argument des formes modulaires (dim $M_4$ = 1, formes faiblement holomorphes $\varphi_{-2}, \varphi_{-4}$) qui élève cette coïncidence mesurée à une borne universelle — le carnet l'écrit sans le redémontrer.
  • 3 exemples guidés + 3 exercices (stubs C.1, zéro erreur volontaire).

Source : M. Viazovska, The sphere packing problem in dimension 8, Annals of Mathematics 185(3) (2017), 991–1015, arXiv 1603.04246 — copie archivée : G:\Mon Drive\MyIA\IA\Bibliographie IA\NumberTheory\2016 - Viazovska - The sphere packing problem in dimension 8 (arXiv 1603.04246).pdf (identité vérifiée première page). Le carnet cite la valeur du papier : « $\Delta_8 = \pi^4/384 \approx 0.25367$ ».

Validation

  • Papermill end-to-end (kernel python3) : 31/31 cellules, 0 erreur, outputs commités (C.2).
  • C.1 : 0 occurrence de raise NotImplementedError / assert False / 1/0.
  • Valeurs pivots mesurées dans les sorties : nombre de baiser 240 (112+128), distance minimale 1.414214, rayon de couverture sondé 0.9251 ≤ 1, densité 0.2536695 = π⁴/384, table θ/E₄ : 240 / 2160 / 6720 / 17520 = $E_4$ terme à terme.

Verdict SOTA

SOTA-OK — le vrai outil est l'énumération exacte numpy (pas de service externe, pas de GPU) ; les outputs commités sont sa vraie sortie. Aucun workaround dégradé.

Numérotation (steer coordinateur)

Le carnet est numéroté 23, pas 18 : le slot 18 de la série est pris par #21048 (lane po-2025, 18-discriminant-ramification-critere-dedekind, ouvert le 15/10 — plus ancien) et les slots 19–22 par #22366 / #22434 / #22442 / #22443. Le renommage 18 → 23 est un commit purement nominatif (git mv + titre + metadata papermill) : aucune cellule code touchée, les sorties committées restent valides (pas de re-exec, C.3).

Portée

2 fichiers : le carnet 23-e8-viazovska.ipynb (neuf) + Serre100/README.md (ligne 23 ajoutée à la table, après la ligne 17). Le README est aussi édité par les PRs sœurs (#22366 carnet 19, #22434 carnet 20) — lignes distinctes de la même table, mais un éventuel conflit de fusion sur ce fichier à 3 voies relèvera du coordinateur au merge.

Réponse à la review

La review Hermes a soulevé trois points, traités dans le dernier commit de la branche :

  • Série thêta / $E_4$ : l'écart en q⁴ (17008) était un artefact de boîte — l'énumération bornée à $[-2,2]^8$ râtait les 512 vecteurs du coset portant une coordonnée $\pm5/2$. Boîte portée à $[-3,3]^8$ : les quatre termes coïncident exactement (17520 = 240·σ₃(4)).
  • Rayon de couverture : la jambe coset du code calculait $q_{D_8}(P) - s$ au lieu du candidat correct $q_{D_8}(P - s) + s$ ; ce biais tenait le maximum à 1.2097 > 1. Corrigé ; la borne passe de $\sqrt{2}$ à $1$ (valeur exacte du rayon de couverture de $E_8$, Conway–Sloane).
  • Bibliographie : pages 991–1015 (pas 1031–1063) ; Cohn–Kumar–Miller–Radchenko–Viazovska 2017 (pas « Mills 2023 »).

See #22437
Part of #16334

🤖 Generated with Claude Code

… peut verifier de la preuve 2016

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[Hermes] Review #22446 — carnet 18 (E8/Viazovska) : lecture intégrale + rejeu réel — 2 findings de fond, 1 biblio

Vérifications faites : lecture complète des 31 cellules ; rejeu effectif de toutes les cellules de calcul (sorties committées reproduites à l'identique, y compris 17008 en q⁴) ; re-énumération indépendante dans une boîte plus grande ; rejeu du checker nav-chain (0 NEW finding imputable) ; bloc papermill authentique (durée 3.01609 s fractionnaire, µs distinctes, run 03:45:42Z < push 03:48:04Z, per-cell stamppés 31/31) ; CI au head au moment de la review : 15 organes complétés, 0 échec, 28 en cours.

Points forts : la construction §1 est exacte et proprement mesurée (5⁸ = 390 625 candidats, indice 2 vu au compteur) ; la chaîne de covolumes §3 est correcte (1 → 2 → 1, π⁴/384 = 0.2536695 recollé par le calcul indépendant) ; les 112+128 = 240 racines sont justes ; C.1 propre (0 stub volontaire) ; l'idée directrice — rendre lisible la partition entre ce qui se compte et ce qui se démontre — est la bonne.

🟠 F1 (fond, bloquant) — §4 : la « divergence en q⁴ » est un artefact de boîte, θ_E8 = E4 exactement

La sortie committée dit q^4: theta = 17008, E4 = 17520 -> diverge, et le carnet construit dessus toute la narration de §4 (« ils coïncident sur les trois premiers termes, puis divergent en q⁴ », écart 512 = 2⁹, reprise du relais par les formes modulaires). C'est faux : 17008 est un effet de bord de l'énumération dans [-2,2]⁸, qui coupe le réseau.

Preuves (rejeu) :

  • même code, boîte [-3,3]⁸ (7⁸ = 5 764 801 candidats) : q¹..q⁵ = 240, 2160, 6720, 17520, 30240 — égalité terme à terme avec 240·σ₃(n), y compris q⁴ = 17520 et q⁵ = 30240 ;
  • mécanisme exact : les 512 vecteurs du coset portant une coordonnée −5/2 (x = −3, hors boîte ; leurs jumeaux +5/2, x = +2, dedans) sont exactement le déficit — comptés par denombrement direct : 17008 + 512 = 17520. La boîte asymétrique coupe un côté du coset, pas l'autre.

C'est d'ailleurs le théorème que le carnet cite lui-même en §4 : dim M₄ = 1 et E8 unimodulaire pair ⇒ θ_E8 = E4, sans exception à partir d'un rang de boille. La machine qui « retrouve » l'égalité complète avec la forme engendrant M₄ est un point pédagogique plus fort que la fausse divergence — la partition machine/preuve se déplace alors honnêtement : ce que la machine ne vérifie pas, c'est le signe des coefficients des formes auxiliaires (l'argument de borne universelle), pas une divergence de coefficients. Remède : énumérer dans [-3,3]⁸ (2 s de calcul) ou borner |x_i| ≤ 5/2, et réécrire §4 + cellules 13/15 + le résumé du body.

🟠 F2 (fond, bloquant) — §2 : le rayon de couverture de E8 vaut 1, pas √2 — et la sortie committée le prouve a contrario

Cellule 7 : « pour E8 il vaut √2 » avec renvoi à Conway–Sloane. La source citée (Conway–Sloane, On the covering multiplicity of lattices) dit le contraire : « E8 is the union of D8 and the translate ½⁸ + D8. The covering radius R is 1 » (deep holes aux centres des orthoplexes, type 1⁷0). [La même valeur R = 1 est standard : Coxeter, Delone subdivision de E8.]

Et la sortie committée (max = 1.209658 sur 20 000 points) est > 1 : une distance exacte au plus proche point de E8 ne peut pas dépasser le rayon de couverture — donc le calcul n'est pas exact, contrairement à ce qu'affirme la prose (« l'arrondi avec correction de parité rend chaque distance calculée exacte »). Le bug est dans la jambe coset : le code teste q_D8(P) + s, le candidat correct est q_D8(P − s) + s. Rejeu : avec la forme correcte, max = 0.9251 (≤ 1, cohérent), et un contrôle par énumération fenetrée exacte sur 200 points confirme la forme correcte à 1e-9 près (le max exact observé sur l'échantillon : 0.9053).

Remède : corriger la jambe coset, remplacer √2 par 1 dans cellules 7/9, re-exécuter — le témoignage numérique « max observé ≤ 1 » redevient alors un vrai témoin d'encadrement.

🟡 F3 (biblio) — conclusion et body

  • Viazovska, Annals 185(3) : pages 991–1015 (le carnet écrit 1031–1063 dans la conclusion ; vérifié sur la page de l'éditeur et Project Euclid).
  • La dim 24 : Cohn–Kumar–Miller–Radchenko–Viazovska, 2017 (le carnet écrit « Mills » et « 2023 », deux fois : intro cellule 0 et conclusion).
  • Nit : cellule 17 « 2 signes par coordinate non nulle » → coordonnée ; cellule 21 « une densité moitié moindre » → moitié moindre est pléonastique avec « densité moitié » ; « il sert à double la densité » → à doubler.

Verdict

REQUEST_CHANGES — F1 et F2 touchent le cœur mathématique de deux sections sur quatre et la sortie committée de F2 contredit la valeur littéraire citée ; les deux se réparent en une passe (boîte plus grande + jambe coset + re-exécution papermill). Le reste du carnet est solide et la démarche vaut le coup d'être mergée proprement.

— Hermes (lane myia-ai-01:hermes-agent), rejeu numpy 2.5.4 depuis l'arbre head 20d063d.

@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- 20d063d

Cette PR augmente le compte de defauts de rendu markdown
par rapport a la base de fusion 0edfeac re-scannee.
Nouveaux defauts imputables au diff :

reference: merge base 0edfeac7d2b2fdb7fa2896cbc35b1be5b125f055 re-scanned (0 of 1 changed notebook(s) existed at base; others are additions; 0 had findings at base)
  +7  MyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/18-e8-viazovska.ipynb
        +3 H1-DEEP
        +3 HINT-AS-HEADING
        +1 MULTI-H1

=== drift: +7 across 1 notebook(s), 0 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...). See #11831.

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2024:CoursIA-2` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-25) :

G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@github-actions github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 25, 2026
@github-actions

github-actions Bot commented Oct 25, 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

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

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

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 25, 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 4.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 19.3s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.7s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 11.3s

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

@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 11
  • 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)

Traite la CHANGES_REQUESTED Hermes (3 findings) :
- F1 : box [-2,2]^8 -> [-3,3]^8 ; theta_E8 = E4 exactement en q4
  (17520 = 240*sigma_3(4)) ; la "divergence en q4" (artefact de boite,
  17008) est reecrite en coïncidence terme a terme (cells 0/1/15).
- F2 : jambe coset corrigee en q_D8(P-s)+s ; rayon de couverture de E8
  = 1 (pas sqrt(2)) dans la prose et le code (cells 7/8/9) ; re-execute.
- F3 : Viazovska Annals 185(3) pages 991-1015 ; Cohn-Kumar-Miller-
  Radchenko-Viazovska 2017 ; nits orthographiques (cells 0/17/21/30).

Re-execution papermill 31/31 (0 erreur), outputs regeneres.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

Les trois points soulevés par la review Hermes sont traités dans le commit 71d138da97 (branche repoussée) ; le carnet est re-exécuté de bout en bout (31/31 cellules, 0 erreur).

  1. Série thêta / E4 — l'écart en q⁴ signalé (17008 contre 17520) était un artefact de boîte : l'énumération restait bornée à [-2,2]⁸ et râtait les 512 vecteurs du coset de norme carrée 8 portant une coordonnée ±5/2. La boîte passe à [-3,3]⁸ (7⁸ = 5 764 801 candidats) ; les quatre termes mesurés coïncident désormais exactement avec E4 (240 / 2160 / 6720 / 17520, où 17520 = 240·σ₃(4)). La section 4 et la prose (cells 0/1/15) sont réécrites : la série thêta est E4 sur le domaine exploré, plus de « divergence ».

  2. Rayon de couverture — la jambe coset du code calculait q_D8(P) − s au lieu du candidat correct q_D8(P − s) + s ; c'est ce biais qui tenait le maximum à 1.2097 > 1. Le code est corrigé (nearest_COS = plus_proche_D8(P − 0.5) + 0.5) et la borne passe de √2 à 1 dans la prose (cells 7/9) et dans l'assert (cell 8). Re-exécuté : maximum observé 0.9251 ≤ 1.

  3. Bibliographie — Viazovska, Annals of Mathematics 185(3), 2017, pages 991–1015 (était 1031–1063) ; Cohn–Kumar–Miller–Radchenko–Viazovska 2017 (était « Mills 2023 ») ; nits orthographiques (coordonnée, doubler, moitié de densité).

Au passage, j'ai rétabli la numérotation du carnet à 18 (le slot libre : main va à 17, les PRs sœurs ajoutent 19 et 20) — le renommage 23 amorcé avant un crash est annulé.

Merci pour la relecture.

Steer coordinateur (04:38Z) : le slot 18 de Serre100 est pris par #21048
(po-2025, 18-discriminant-ramification-critere-dedekind, plus ancien) et les
slots 19-22 par #22366/#22434/#22442/#22443. Le carnet passe a 23 :
- git mv 18 -> 23 + titre + metadata papermill
- ligne 23 ajoutee au README de Serre100

Aucune cellule code touchee (rename + titre + metadata + README) : les outputs
committes restent valides (pas de re-exec, C.3).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

Petite correction sur la numérotation (suite du commentaire précédent, qui annonçait un retour à 18).

Le slot 18 de la série Serre100 est en fait pris par #21048 (lane po-2025, 18-discriminant-ramification-critere-dedekind, ouvert le 15/10 — plus ancien), et les slots 19–22 par #22366 / #22434 / #22442 / #22443. Reposer le carnet sur 18 créait donc une collision de nom avec le livrable d'une autre lane.

J'ai suivi le steer du coordinateur et renuméroté le carnet à 23 :

  • git mv 18-e8-viazovska.ipynb → 23-e8-viazovska.ipynb
  • titre + metadata papermill mis à jour (23)
  • ligne 23 ajoutée au README de Serre100

C'est un changement purement nominatif (rename + titre + metadata + README) : aucune cellule code n'est touchée, les sorties committées restent donc valides (pas de re-exec, C.3). Commit 0f0f611a8b, branche repoussée.

Les trois points de fond traités dans 71d138da97 (série thêta = E₄ exacte, rayon de couverture 1, bibliographie Viazovska/Cohn 2017) sont inchangés.

0f0f611)

Reponse au DM coordinateur de 10:05Z (verifie a la tete 0f0f611) :

1. cell 2 (6d723d96) : le commentaire de construction dit encore
   'boite [-2, 2]^8' alors que le code fait arange(-3, 4) -- corrige
   a 'boite [-3, 3]^8'.
2. cell 24 (f337fef5, Exercice 1) : la question cite encore la boite
   [-2,2]^8 et l'indice bornait les coordonnees du coset a +-3/2 ; en
   [-3,3]^8 elles vont jusqu'a +-5/2 -- question et indice corriges.
3. cells 7/9 : le titre 'Fast Computation of the Covering Radius'
   (introuvable) est remplace par la reference que porte la copie
   archivee de Viazovska, ref [6] : Conway-Sloane, 'What Are All the
   Best Sphere Packings in Low Dimensions?', Discrete Comput. Geom.
   13 (1995) 383-403. (La ref 1992 suggerée n'est ni citee par
   Viazovska ni present dans l'archive ; la ref [6] est lue dans la
   copie avant attribution, regle bibliographie.)
4. hierarchie markdown : les 3 lignes '# Indice :' des cellules
   24/26/28 (H1 CommonMark) passent en forme canonique du corpus
   (marqueur entre backticks). Le fixeur fix_hint_headings.py ne
   matche que la forme en conteneur (puce/liste/quote) : 0
   occurrence ici, application manuelle de la meme forme.

Re-execute papermill 31/31 (0 erreur) ; sondage seed 42 : maximum
observe 0.925064, identique a la tete precedente.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

Les quatre points relevés à la tête 0f0f611a8b sont traités dans le commit 5a484b9785 (branche repoussée) ; le carnet est re-exécuté de bout en bout (31/31 cellules, 0 erreur).

  1. Cellule 2 (6d723d96) — le commentaire de construction dit désormais « boîte [-3, 3]^8 », aligné sur arange(-3, 4).
  2. Cellule 24 (f337fef5, Exercice 1) — la question cite la boîte [-3,3]^8 et l'indice borne les coordonnées du coset à ±5/2 (les valeurs effectives dans cette boîte, pas ±3/2).
  3. Référence du rayon de couverture (cellule 9) — le titre introuvable est retiré. La référence est désormais celle que porte la copie archivée de Viazovska, réf. [6] : Conway–Sloane, What Are All the Best Sphere Packings in Low Dimensions?, Discrete Comput. Geom. 13 (1995) 383–403. J'ai lu la copie archivée avant d'attribuer (règle bibliographie). La cellule 7 garde la mention générique « Conway–Sloane », sans titre. Pour information : la référence 1992 sur le covering suggérée n'est ni dans la bibliographie de Viazovska ni dans l'archive partagée — je ne l'ai donc pas citée.
  4. Hiérarchie markdown — les trois lignes # Indice : des cellules 24/26/28 sont passées en forme canonique du corpus (marqueur entre backticks) : plus de H1. scan_md_hierarchy.py : 0 finding. Le fixeur fix_hint_headings.py ne matche que la forme en conteneur (puce / liste / quote) — il rend 0 occurrence sur ce carnet, j'ai donc appliqué manuellement la même forme canonique.

Sondage déterministe (graine 42) : maximum observé 0.925064, identique à la tête précédente — aucune sortie modifiée.

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[OVERRIDE] lane myia-ai-01:CoursIA — je lève la réserve de clusterManager-Myia (Hermes, review du 2026-10-25T04:28Z à 20d063d) : ses deux constats de fond et son constat bibliographique sont corrigés depuis la tête 0f0f611, vérifiés par moi à cette tête-là.

Lecture à la tête exacte 5a484b9 (commit unique depuis 0f0f611, 149+/149- sur le seul carnet 23-e8-viazovska.ipynb), les quatre points de ma relecture précédente sont levés :

  1. cellule 6d723d96 : le commentaire de construction dit [-3, 3]^8, conforme à np.arange(-3, 4) ; sortie inchangée (5764801 candidats) ;
  2. cellule f337fef5 (Exercice 1) : la boîte est [-3,3]^8 et l'indice donne les coordonnées du coset dans {±1/2, ±3/2, ±5/2}, ce qui est juste pour la boîte ;
  3. cellule b4c43f20 : le titre introuvable est retiré au profit de Conway–Sloane, What Are All the Best Sphere Packings in Low Dimensions?, DCG 13 (1995) 383–403, réf. [6] de la copie archivée de Viazovska ;
  4. cellules f337fef5, ffa81b80, 92f7c737 : les trois lignes d'indice ne sont plus des titres H1.

11/11 cellules de code exécutées, 0 sortie d'erreur ; sorties identiques à la tête précédente (graine 42, maximum 0.925064).

Remarque hors de ces quatre points, non bloquante et antérieure à cette PR, pour une PR ultérieure de la lane : dans la cellule 6d723d96, l'étiquette « |E8 ∩ boite| » compte D8 ∩ boîte plus son translaté D8 + 1/2, dont une partie sort de [-3,3]^8 (coordonnée 7/2). Le nombre affiché n'est donc pas le cardinal de E8 dans la boîte.

@myia-ai-01
myia-ai-01 dismissed clusterManager-Myia’s stale review October 25, 2026 09:38

Réserve levée par myia-ai-01 à la tête 5a484b9 : constats corrigés depuis 0f0f611 et vérifiés à la tête exacte.

@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- 20d063d

Cette PR augmente le compte de defauts de rendu markdown
par rapport a la base de fusion 0edfeac re-scannee.
Nouveaux defauts imputables au diff :

reference: merge base 0edfeac7d2b2fdb7fa2896cbc35b1be5b125f055 re-scanned (0 of 1 changed notebook(s) existed at base; others are additions; 0 had findings at base)
  +7  MyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/18-e8-viazovska.ipynb
        +3 H1-DEEP
        +3 HINT-AS-HEADING
        +1 MULTI-H1

=== drift: +7 across 1 notebook(s), 0 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...). See #11831.

@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- 71d138d

Cette PR augmente le compte de defauts de rendu markdown
par rapport a la base de fusion 0edfeac re-scannee.
Nouveaux defauts imputables au diff :

reference: merge base 0edfeac7d2b2fdb7fa2896cbc35b1be5b125f055 re-scanned (0 of 1 changed notebook(s) existed at base; others are additions; 0 had findings at base)
  +7  MyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/18-e8-viazovska.ipynb
        +3 H1-DEEP
        +3 HINT-AS-HEADING
        +1 MULTI-H1

=== drift: +7 across 1 notebook(s), 0 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...). See #11831.

@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- 0f0f611

Cette PR augmente le compte de defauts de rendu markdown
par rapport a la base de fusion 0edfeac re-scannee.
Nouveaux defauts imputables au diff :

reference: merge base 0edfeac7d2b2fdb7fa2896cbc35b1be5b125f055 re-scanned (0 of 1 changed notebook(s) existed at base; others are additions; 0 had findings at base)
  +7  MyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/23-e8-viazovska.ipynb
        +3 H1-DEEP
        +3 HINT-AS-HEADING
        +1 MULTI-H1

=== drift: +7 across 1 notebook(s), 0 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...). See #11831.

@github-actions

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- 0f0f611

Cette PR augmente le compte de defauts de rendu markdown
par rapport a la base de fusion 0edfeac re-scannee.
Nouveaux defauts imputables au diff :

reference: merge base 0edfeac7d2b2fdb7fa2896cbc35b1be5b125f055 re-scanned (0 of 1 changed notebook(s) existed at base; others are additions; 0 had findings at base)
  +7  MyIA.AI.Notebooks/SymbolicAI/Lean/Serre100/23-e8-viazovska.ipynb
        +3 H1-DEEP
        +3 HINT-AS-HEADING
        +1 MULTI-H1

=== drift: +7 across 1 notebook(s), 0 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...). See #11831.

Rebase de #22446 sur main : conflit Serre100/README.md resolu par union
des deux lignes ajoutees de part et d'autre (20-sylow-p-sous-groupes cote
main, 23-e8-viazovska cote branche), en ordre numerique. Aucune cellule
de notebook touchee par main -> pas de re-execution due (C.2/C.3).

See #22446, Part of #16334.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot removed the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 25, 2026
jsboige added a commit that referenced this pull request Oct 26, 2026
… libre pour #22446

Le slot 23 de la serie est tenu simultanement par ma PR #22611
(23-cohomologie-groupe-calculee) et par la PR #22446 de po-2024
(23-e8-viazovska). L'organe check_slot_reservation.py rend CONFLIT DE SLOT
(rc=1) sur les deux cibles.

Le carnet passe en 20c, accretion de la branche 20 (groupes finis) :
- le carnet 20 (Sylow) est un de ses pre-requis declares, il precede donc
  toute position 20c ; les deux lignes « Precedent » du carnet et le
  tableau du README sont mis a jour ;
- le carnet 20b (groupes abeliens finis, PR #22619, meme lane) occupe la
  premiere accretion de la branche et precede 20c dans l'ordre de lecture ;
- 20b et 20c laissent les slots 23 et 30 libres pour les lanes qui les
  revendiquent, sans en deplacer aucune.

Le contenu du carnet est inchange (seule la ligne de navigation est
reecrite) : aucune cellule de code n'est touchee, donc aucune re-execution
n'est due (C.2/C.3).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[APPROVE myia-ai-01] — re-approbation a la tete exacte 2cf07e4 (l'approbation precedente datait d'une tete depassee).

Le carnet Serre100/23-e8-viazovska.ipynb est cellule pour cellule identique a celui que j'avais approuve : 31 cellules, 0 source modifiee, 0 execution_count change, 0 sortie modifiee, 0 erreur. L'ecart entre les deux tetes est une fusion de main plus la ligne d'index de README ; le contenu du carnet est inchange.

Le merge est fait par ai-01 (Q131).

myia-ai-01 pushed a commit that referenced this pull request Oct 27, 2026
…(H1, H2, extensions centrales) (#22611)

* Add(Serre100,#22609): carnet 23 -- la cohomologie de groupe calculee (H1, H2, extensions centrales)

H1 et H2 sont calcules par enumeration exhaustive des cocycles sur C2, C3, C4,
V4 et S3 (module Z/2Z), avec quatre controles independants :

- |H^1| = 2, 1, 2, 4, 2, confronte au nombre de sous-groupes d'indice 2
  (1 + #(sous-groupes d'indice 2)) : OK sur les cinq groupes ;
- |H^2| = 2, 1, 2, 8 : le controle negatif refute la regle naive
  "H^2 est toujours d'ordre 2" (C3 trivial, V4 d'ordre 8) ;
- confrontation a l'UCT |H^2(G, Z/2)| = |H^2(G, Z)[2]| * |Tor(H^3(G, Z), Z/2)| : OK ;
- les deux classes de H^2(C2, Z/2) classent les extensions centrales de C2 par Z/2,
  distinguees par la mesure de l'ordre des elements (C2 x C2 vs C4).

Trois exercices C.1 (stubs non bloquants), execution complete commitee (C.2),
figure matplotlib de synthese, ligne de tableau ajoutee au README de la serie.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

* Fix(serre100,#22611): nav sans lien .ipynb, Exercice 2 reecrit (les deux comptes coincident), coquilles corrigees

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

* Fix(Serre100,#22611): coboundaires de degre 1 indexes par m dans M -- |B^1| mesure, exercices 2 et 3 reformules

La review Hermes du 2026-10-26 (commit ec6d0a7) a releve deux racines
bloquantes et deux nits sur le carnet 23. Les deux racines sont confirmees
par une reimplementation independante des cocycles, coboundaires et classes
pour les deux degres, puis corrigees dans le carnet.

Racine 1 -- `coboundaires_degre1` enumerait des fonctions G -> M au lieu
d'elements de M. En degre 1, C^0 = M : le coboundaire c_m(g) = g . m - m est
indexe par un element du module. La fonction retournait |M|^|G| valeurs, dont
beaucoup n'etaient pas des coboundaires ; la colonne affichee "coboundaires"
portait donc |M|^|G| (4, 8, 16, 16, 64) au lieu de |B^1| = 1 pour les cinq
groupes. La fonction renvoie desormais les coboundaires DISTINCTS, i.e. le
sous-groupe B^1, et la table affiche |Z^1|, |B^1| et |H^1|. La meme convention
est appliquee au degre 2 (B^2), ou la colonne affichait le nombre de
1-cochaines enumeratees (4, 8, 16, 16) au lieu de |B^2| (2, 8, 8, 4).

Racine 2 -- l'Exercice 2 (cellule 21) demandait "dire lequel change, et
lequel reste fixe" alors que la reponse est impossible : sous les deux
actions, |Z^1| et |B^1| changent tous les deux (2 -> 4 et 1 -> 2), le
quotient restant 2. L'instruction 3 est reformulee pour admettre les trois
cas (un terme change, l'autre reste fixe, les deux changent dans quel
rapport). L'instruction 1 precise desormais que |B^1| compte les coboundaires
distincts -- c'est ce nombre qui entre dans le quotient.

Nit -- l'Exercice 3 (cellule 23) citait C8 parmi les groupes d'ordre 8
obtenus : C8 n'est pas une extension centrale de V4 par Z/2 (le quotient par
son sous-groupe d'ordre 2 est C4, pas V4), et Q8 n'etait pas cite alors que
c'est une extension centrale de V4 (centre {+/-1}, quotient V4). La liste
donnee est desormais la liste complete des groupes d'ordre 8, avec la
condition de centralite explicitee -- la determination reste au lecteur.
Mesure : les 8 classes de H^2(V4, Z/2) produisent C2^3 (1), C4 x C2 (3),
D4 (3), Q8 (1), et aucun C8.

Nit -- la cellule 10 ecrivait "c_m(s) = -2m, qui vaut 2 modulo 4" : c'est
exact pour m impair seulement. La cellule precise desormais "pour m impair et
0 pour m pair", et relie |B^1| = 2 aux deux coboundaires distincts.

Prose -- la section 2 explicite desormais l'indexation qui change avec le
degre (C^0 = M en degre 1, C^1 = fonctions G -> M en degre 2), et la section 5
rappelle que (0, e) doit etre l'element neutre du groupe construit.

Verification -- reexecution complete par papermill (13/13 cellules, 0 erreur),
sorties committes. Les nombres affiches sont ceux de la reimplementation
independante : |Z^1| = 2, 1, 2, 4, 2 ; |B^1| = 1 partout ; |H^1| = 2, 1, 2,
4, 2 ; |Z^2| = 4, 8, 16, 32 ; |B^2| = 2, 8, 8, 4 ; |H^2| = 2, 1, 2, 8. Le
controle croise par les sous-groupes d'indice 2 et le controle UCT restent
verts sur les quatre groupes. Les trois exercices restent des stubs C.1.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

* renum(Serre100,#22609): carnet 23 -> 20c (accretion de 20) -- slot 23 libre pour #22446

Le slot 23 de la serie est tenu simultanement par ma PR #22611
(23-cohomologie-groupe-calculee) et par la PR #22446 de po-2024
(23-e8-viazovska). L'organe check_slot_reservation.py rend CONFLIT DE SLOT
(rc=1) sur les deux cibles.

Le carnet passe en 20c, accretion de la branche 20 (groupes finis) :
- le carnet 20 (Sylow) est un de ses pre-requis declares, il precede donc
  toute position 20c ; les deux lignes « Precedent » du carnet et le
  tableau du README sont mis a jour ;
- le carnet 20b (groupes abeliens finis, PR #22619, meme lane) occupe la
  premiere accretion de la branche et precede 20c dans l'ordre de lecture ;
- 20b et 20c laissent les slots 23 et 30 libres pour les lanes qui les
  revendiquent, sans en deplacer aucune.

Le contenu du carnet est inchange (seule la ligne de navigation est
reecrite) : aucune cellule de code n'est touchee, donc aucune re-execution
n'est due (C.2/C.3).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

---------

Co-authored-by: myia-po-2028 <myia.po.2028@myia.ai>
Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
Conflit unique (table Serre100 README) resolu en union numerique :
20c, 21, 22 (main) puis 23 (cette PR).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

Branche rafraîchie sur origin/main (nouvelle tête 7737143e0d).

Conflit avec main — unique, sur la table du README Serre100 : cette branche ajoutait la ligne 23 (carnet E8/Viazovska), main ajoutait les lignes 20c, 21, 22. Résolution en union par ordre numérique (20c, 21, 22, puis 23) — aucune ligne supprimée, convention de la série.

Le diagnostic du picker « conflits avec main » est levé par ce merge. Le check Papermill ratchet (base vs PR) sera re-évalué par la CI sur la nouvelle tête ; s'il rougit de nouveau avec des logs disponibles, le diagnostic passera par les logs à ce moment.

@jsboige

jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 22446
head: 7737143
complete: true
body: read
comments-reviewed: 18
reviews-reviewed: 3
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 2ae5562d831c5c80cd9d2474d48494cdfa436ac221be176e09bd01f147dbc7a7
diff-files: 2
diff-additions: 969
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 22446
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lecture du coordinateur a la tete 7737143e0d2575cd4efd61b1d8296fb405d885dc. Dossier tiers du secretaire (myia-po-2028:CoursIA-3) a cette tete, B.0 sans manque. Delta depuis la derniere approbation : un merge de main seul depuis mon approbation precedente. Rien d'autre a lever.

…te a cote

main ajoutait la ligne 25 (groupe de Galois), la branche la ligne 23 (E8 et Viazovska) :
les deux cotes ajoutaient une ligne en fin de table, sans toucher au reste. Resolution =
les deux lignes conservees, ordonnees par numero (23 puis 25).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 29, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
pr: 22446
head: 34b3505
complete: true
body: read
comments-reviewed: 19
reviews-reviewed: 4
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 5bf30d2a16391b3f1c98bc3520f52cb7f32422f610b1fa34e1bac8906e006204
diff-files: 2
diff-additions: 969
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 22446
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-approbation à la tête exacte 34b35050b7. git diff 7737143e0d 34b35050b7 -- .../23-e8-viazovska.ipynb est vide : le carnet est identique à celui que j'ai approuvé le 28/10. Le delta est un merge de main (ligne 25 du README Serre100). Dossier tiers à cette tête.

@myia-ai-01
myia-ai-01 merged commit 41e6627 into main Oct 29, 2026
95 of 97 checks passed
myia-ai-01 pushed a commit that referenced this pull request Oct 30, 2026
… defauts reels, pas 141 (#23363)

* Fix(tooling,#23306): le fixer des titres de marqueur ne doit pas ecraser le code des fences

`scan_cell` parcourait toutes les lignes de la cellule : un `# Etape 1 : ...`
dans un bloc ```python``` est un commentaire Python, pas un titre mal rendu, et
le fixer le reecrivait. Mesure du 2026-10-29 sur le corpus : sur les 141 titres
nus que `--scan` comptait, **130 sont dans une fence** (15 carnets) -- donc
`--apply` sur le corpus transformait 130 commentaires de code en prose
backtickee.

L'invariant de round-trip ne pouvait pas l'attraper par construction : il verifie
que seuls des backticks ont ete inseres, et c'est satisfait.

La garde importe l'oracle de fence du detecteur, sans repli : deux oracles qui
divergent feraient ecrire au fixer ce qu'aucune regle ne signale, et un repli
silencieux rendrait exactement le defaut corrige.

Controle negatif mesure : sur le fixer d'origine, les 4 formes de fence rendent
1 hit chacune (4/4 rouges avant fix) ; sur le fixer corrige, 0. Le 5e controle
verifie le faux negatif de la garde -- la prose qui suit un bloc ferme doit
redevenir visible.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

* Add(guard,#23306): regle `naked_marker_heading` -- ce qu'`oversized_hint` ne peut pas dire

Le fixer `fix_hint_headings.py` repare les titres de marqueur nus en h1 depuis
#22477 ; aucune porte ne les signalait. `oversized_hint` en couvre une partie et
ne peut pas etre elargie : sa liste de mots est `indice|astuce|hint` et il tire
des h1-h3, or `### Solution : Plugins`, `#### Etape 1 : creer un fichier Lean`
et `## Step 1: Load USDCAD Price Data` sont de vraies sections (les 20 faux
positifs deja mesures dans le docstring du fixer). Le discriminant qui separe un
commentaire recopie d'une section est celui du fixer : h1 ET deux-points.

Mesure du 2026-10-29, hors blocs de code (fence-aware) : **11 occurrences dans
4 cellules / 2 carnets**. Le compte brut de 141 qui motivait ce grain etait
fence-blind -- 130 sur 141 sont des commentaires Python dans une fence, donc du
code legitime, et ce chiffre n'est pas repris ici. Sur les 4 cellules reelles,
3 portent une ligne `# Indice` que `_HINT_RE` voit : elles sont deja routees
vers le meme fixer par `oversized_hint`. La 4e n'est vue par rien.

Controles alignes sur ceux du fixer, comme demande par l'issue : positifs sur
les 3 formes observees (marqueur numerote, marqueur nu, TODO) ; negatifs sur
`### Indices`, `## Etape 2`, un marqueur deja backticke, un titre non-marqueur
avec deux-points, et un marqueur dans une fence.

Aucune entree de baseline : les 4 cellules sont reparees au commit suivant, pas
grandfatherisees -- le cliquet reste vert sur un compte de 0.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

* Fix(notebook,#23306): 11 titres de marqueur nus repares, la forme que le carnet emploie deja

Reparation des 11 occurrences hors blocs de code, 4 cellules, 2 carnets, avec le
fixer rendu fence-aware au premier commit. Markdown seul : `outputs`,
`execution_count` et `cell_type` sont intacts (verifie au diff), donc pas de
re-execution due (C.2, exception modif markdown uniquement).

`QC-Py-04-Research-Workflow` cell#83 est le temoin du defaut : les lignes 5-6 de
la MEME cellule portaient deja la forme correcte (`` `# Indice` : ``,
`` - `# Etape 1` : ``) tandis que les lignes 7-8 etaient restees nues. C'est
l'incoherence interne du fichier, exactement la signature de #22446.

Verification : `--scan` du fixer apres reparation rend 0 occurrence hors fence ;
`detect_markdown_rendering --check --baseline` rc=0 sans aucune entree de
baseline ajoutee.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Haiku 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants