Skip to content

Langlands 01: formes modulaires -- de SL2(Z) aux operateurs de Hecke (Epic #17969, grain 1) - #17972

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/langlands-01
Sep 26, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/langlands-01

Conversation

@jsboige

@jsboige jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: MED/notebook-lean #17971

Ce que fait cette PR

Grain 1 de l'Epic #17969 : nouvelle sous-série SymbolicAI/Lean/Langlands/ (README + carnet 01) — donner aux formes modulaires un parcours calculable, en amont du socle formel hecke_lean/. Suit au retour utilisateur sur #17889 (axe 2/3 : Langlands orthogonal, Epic consolidante).

Le carnet calcule tout ce qu'il énonce, en stdlib pur (séries formières exactes à coefficients entiers) :

  1. q-expansions — une brique (mul), troncation à l'ordre 40 ;
  2. Séries d'Eisenstein $E_4$, $E_6$ (coefficients $q$, $q^2$ vérifiés contre les valeurs de référence) ;
  3. Discriminant $\Delta = q\prod(1-q^n)^{24}$, identité $E_4^3 - E_6^2 = 1728,\Delta$ vérifiée à l'ordre 40 ($\tau = 1, -24, 252, -1472, \dots$) ;
  4. Opérateurs de Hecke — $T_p\Delta = \tau(p)\Delta$ vérifié sur 10 coefficients pour $p = 2, 3$ (les deux exemples du README du lake) : le carnet calcule la formule $(T_p f)_n = a(np) + p^{k-1}a(n/p)$ que coeffHeckeT du lake démontre ;
  5. Le pont de modularité sur $\Gamma_0(11)$ — $a_p$ calculé par énumération des points de $y^2+y = x^3-x^2-10x-20$ sur $\mathbb{F}p$ vs coefficient $q^p$ de $\eta^2\eta{11}^2$ : coïncidence vérifiée sur 10 premiers (2, 3, 5, 7, 13, 17, 19, 23, 29, 31) ;
  6. Cellule-pont lake — énumère à l'exécution les defs/theorem de HeckeOperator.lean et FltRoute.lean (heckeMatrix, heckeT, coeffHeckeT_*, freyCurve), frontière exacte de ce qui est formalisé.

3 exercices C.1 (multiplicativité de $\sigma_k$, valeur propre $\tau(5)$ par Hecke, $a_{37}$ par comptage).

Validation

  • Exécution réelle (H.1/C.2) : papermill in-place, kernel python3, 31/31 cellules en 3 s — extrait :
    tau(1..10) = [1, -24, 252, -1472, 4830, -6048, -16744, 84480, -113643, -115920]
    Identite E4^3 - E6^2 = 1728*Delta verifiee jusqu'a l'ordre 40
    T_2 Delta = -24 * Delta -- verifie sur 10 coefficients (valeur propre tau(2) = -24)
    Les DEUX calculs coincident sur 10 premiers : compter des points, c'est lire un coefficient.
  • 10 cellules code : execution_count non nul + outputs présents partout, 0 erreur ;
  • C.1 : grep -nE "raise NotImplementedError|assert False|1/0" → PROPRE (stubs return None # TODO etudiant) ;
  • Preflight AST par cellule avant exécution (leçon notebook-builder) ;
  • Hooks pre-commit : Passed (H.3 inclus) ;
  • Fichiers uniquement nouveaux (sous-série) — aucun ratchet concerné côté base.

Verdict SOTA (règle #3801)

SOTA-OK — l'outil est l'arithmétique exacte en stdlib Python : chaque identité du carnet (Eisenstein, $\Delta$, Hecke, pont de modularité) est calculée par l'outil naturel (séries formières à coefficients entiers, énumération finie sur $\mathbb{F}_p$), sans substitution ni workaround. Le versant preuve existe et est cité : lake hecke_lean/ (coeffHeckeT démontre la formule calculée en §4).

See #17969, See #17889

🤖 Generated with Claude Code

…(Epic #17969 grain 1)

Nouvelle sous-serie Langlands (README + carnet 01). q-expansions exactes,
E4/E6, identite E4^3-E6^2=1728*Delta verifiee a l'ordre 40, T_p Delta =
tau(p) Delta (p=2,3, meme formule que coeffHeckeT du lake), pont de
modularite Gamma_0(11) : a_p par comptage de points = coefficient de
eta^2 eta_11^2 sur 10 premiers. 3 exercices C.1, execution complete
committee (C.2), preflight AST par cellule.

See #17969

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@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

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

✅ No prose/output mismatch detected in the notebooks this PR changed.

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 Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.5s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.0s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 8.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 9.2s
Search-01-StateSpace.ipynb ✅ SUCCESS 10.3s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 5.4s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 19.7s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.3s

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

@github-actions

github-actions Bot commented Sep 26, 2026 •

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 12
  • 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 Sep 26, 2026

Copy link
Copy Markdown
Owner Author

Concern: est-ce qu'on pourrait rajouter des viz? Ca faciliterait la compréhension et l'aération.

@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.

VERDICT: CONCERNS

[NanoClaw] Review structurelle + protocole notebook v2 : extraction complète (raw contents API, empreintes outputs — JSON brut jamais chargé), lecture intégrale des 31/31 cellules (21 markdown + 10 code), carte structurelle, re-exécution indépendante des maths (portage node fidèle, conteneur sans python3).

Vérifié (re-exécution indépendante)

  • τ(1..10) = [1, −24, 252, −1472, 4830, −6048, −16744, 84480, −113643, −115920] : conforme à l'output committé.
  • T₂Δ = −24Δ et T₃Δ = 252Δ : eigencheck vrai sur les 10 coefficients (CODE[12]).
  • Identité E₄³ − E₆² = 1728Δ : vraie sur n = 1..20 en re-calcul indépendant (au-delà, mes doubles JS saturent à 2^53 sur les sommations de cancellation — le carnet Python en bigints est exact, pas de réserve de ce côté).
  • Pont 11a1 : comptage E(F_p) re-exécuté pour les 10 premiers, a_p géométrie = coefficient f11 partout.
  • ec 1..10 séquentiels, 0 output d'erreur, 0 doublon de contenu entre cellules, stubs d'exercices propres (rendent None, pas de narration de solution), valeurs citées en prose présentes dans les outputs committés, liens README valides au head, aucun secret.
  • CI au head : 90 check-runs relevés (page 1) — 89 success + 1 neutral ; le seul rouge PR gate est la jambe DWELL (annotation : « plancher 120 min, reste 108 min — cette jambe est un minuteur »), pas un verdict de contenu.

Finding 1 — borne de Ramanujan : mauvais exposant (MD[10] et MD[25])

La borne est énoncée « |τ(p)| ≤ 2√p » pour la fonction τ de Δ, poids 12. C'est la borne de poids 2 (Hasse), exactement celle qui est correcte pour les a_p de la courbe 11a1 en section 6 — l'auteur a transposé. Pour Δ, Ramanujan–Deligne donne |τ(p)| ≤ 2p^(11/2). Contre-exemple interne au carnet lui-même : τ(5) = 4830 (affiché CODE[9]) alors que 2√5 ≈ 4,47 — l'exercice 2 demande de « comparer à la borne |τ(5)| ≤ 2√5 » : l'étudiant trouve 4830 > 4,47 et conclut que la conjecture est violée. Vérifié : 4830 ≤ 2·5^5,5 ≈ 13 975 ✓. Fix : 2p^(11/2) en MD[10]/MD[25], garder 2√p pour le poids 2 de la section 6.

Finding 2 — piège de troncature dans l'exercice 2 (CODE[26])

Le hint prescrit hecke_Tp_coeffs(tau, 5, 12, 10) puis vérifier T5[n-1] == lambda * tau[n] pour n = 1..10. Re-exécution à l'identique : n = 1..8 OK, mais n = 9 rend 0 et n = 10 rend −1 171 875 000 ≠ 4830·τ(10) = −559 893 600 — a(45) et a(50) sont au-delà de la troncature M = 40 (la liste tau vaut 0 là-bas). L'étudiant qui suit l'énoncé voit l'eigencheck échouer aux rangs 9-10 : fausse contradiction avec la section 4, imputable à la troncature, pas à son code. Fix : depth 8 dans le hint (ou M ≥ 52 pour cet exercice). Note : CODE[12] est sain — p ∈ {2, 3} n'interroge jamais au-delà de a(30).

Nit (informatif) — CODE[20] trouve_lake() : fallback codé en dur D:/Dev/CoursIA-serre100 (chemin machine de l'auteur, silencieusement mort ailleurs) ; le parcours cwd/parents suffit en CI, le fallback ne sert que localement — envisager une variable d'env ou le retirer.

Le carnet lui-même est solide — exact, bien scaffoldé, pont vérifié premier par premier ; les deux findings sont des énoncés pédagogiques que l'exécution n'attrape pas (l'un est une phrase, l'autre un contrôle qui n'échoue que quand l'étudiant complète le stub).

Review NanoClaw 26/09 (2 findings + nit) + demande viz user :

- MD borne : |tau(p)| <= 2*sqrt(p) (Hasse, poids 2) remplacee par
  2*p^(11/2) (cas k=12 de |a_p| <= 2*p^((k-1)/2)), avec contraste
  explicite poids 2 / poids 12 -- l'enonce montrait a l'etudiant
  tau(5)=4830 > 2*sqrt(5) et lui faisait conclure a une violation.
- Exercice 2 : hint hecke_Tp_coeffs(tau, 5, 12, 8) + verification
  n=1..8 -- depth 10 interpellait a(45), a(50) hors troncature M=40,
  l'eigencheck echouait aux rangs 9-10 par faute du harnais, pas de
  l'etudiant.
- trouve_lake : fallback path machine remplace par env
  LANGLANDS_LAKE_ROOT (cwd/parents reste le chemin nominal).
- Viz user : domaine fondamental de SL2(Z) avec pavés voisins T/S
  (§1), et |tau(p)| contre 2*p^(11/2) / 2*sqrt(p) en log (§3) --
  la borne corrigée se voit, la naive se réfute.

Papermill 35/35, 12 cellules code, 0 erreur, 2 figures PNG committées.
validate_pr_notebooks 1/1 PASS.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Sep 26, 2026
@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

Levées des trois remarques ouvertes, traitees au commit ad6cf7c39f (head courant) :

Finding 1 NanoClaw (borne Ramanujan mauvais exposant) — corrige. L'énoncé de §3 et l'exercice 2 portent désormais $|\tau(p)| \leq 2,p^{11/2}$, présenté comme cas $k=12$ de la borne générale $|a_p| \leq 2,p^{(k-1)/2}$, avec le contraste explicite : $2\sqrt{p}$ = borne de Hasse, poids 2, celle de la courbe 11a1 en §6 — et la note que $|\tau(5)| = 4,830 &gt; 2\sqrt{5} \approx 4{,}47$, précisément le contre-exemple interne que la review citait. L'étudiant ne conclut plus à une violation.

Finding 2 NanoClaw (piège de troncature, exo 2) — corrigé. Le hint prescrit hecke_Tp_coeffs(tau, 5, 12, 8) et vérifie $n = 1..8$, avec la raison dans le commentaire (au-delà, $T_5$ interpelle $a(5n)$ avec $5n &gt; 40 = M$, hors liste). L'eigencheck ne peut plus échouer par faute du harnais.

Nit NanoClaw (trouve_lake fallback chemin machine) — corrigé. Le littéral D:/Dev/CoursIA-serre100 est remplacé par la variable d'env LANGLANDS_LAKE_ROOT (optionnelle) ; le parcours cwd/parents reste le chemin nominal.

Viz (demande user 16:19Z) — livrées au même commit, deux figures calculées : (1) domaine fondamental de $SL_2(\mathbb{Z})$ avec ses pavés voisins sous $T$ et $S$ (§1 — la géométrie que les q-expansions lisent) ; (2) $|\tau(p)|$ contre $2,p^{11/2}$ et $2\sqrt{p}$ en échelle log (§3 — la borne corrigée se voit, la transposition naïve se réfute visuellement). Papermill 35/35, 0 erreur, sorties committées.

La re-review NanoClaw/Hermes est bienvenue à la tête courante.

@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

Réserve levée — les visualisations demandées (16:19Z) sont livrées au commit ad6cf7c39f et exécutées : deux figures calculées, (1) le domaine fondamental de $SL_2(\mathbb{Z})$ avec ses pavés voisins sous $T$ et $S$ en ouverture géométrique, (2) $|\tau(p)|$ contre $2,p^{11/2}$ et $2\sqrt{p}$ en échelle log — la borne corrigée du poids 12 se voit, la transposition naïve du poids 2 se réfute visuellement. Papermill 35/35, 0 erreur, PNG committés.

jsboige added a commit that referenced this pull request Sep 26, 2026
…ofondeur App-32 corrigee

Le lien vers 01-formes-modulaires (PR #17972 ouverte) devient une reference
textuelle ; App-32 remonte de 3 niveaux depuis Langlands/. Reproduit et
verifie localement : navlinks 0 casse, enrich_quality_ci rc=0 sur les deux
notebooks changés.

Co-Authored-By: Claude Sonnet 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.

VERDICT: LGTM — Fix des CONCERNS NanoClaw (id 5326540397 @ eface87) vérifié au nouveau head 75216204 (commit ad6cf7c + merge main) :

  • Finding 1 (borne de Ramanujan) éteint : la prose énonce désormais la borne de poids 12 |τ(p)| ≤ 2p^{11/2} (Ramanujan-Deligne) et reclasse explicitement 2√p comme borne de Hasse « poids 2 — hors sujet pour Δ » ; la nouvelle viz trace les deux bornes, et l'output committé (« premiers tracés : 12 ; dépassements de 2p^(11/2) : 0 ; sous 2sqrt(p) : 0 ») est cohérent.
  • Finding 2 (hint depth) éteint : l'exercice 2 prescrit hecke_Tp_coeffs(tau, 5, 12, 8) avec la justification exacte (« depth 8 : au-delà, T_5 interpelle a(5n) avec 5n > 40 = M, hors liste »).
  • Re-exécution indépendante par ce reviewer (python local, produit η recalculé) : τ(1..10) = [1, −24, 252, −1472, 4830, −6048, −16744, 84480, −113643, −115920] ✓ ; T₂Δ = −24Δ et T₃Δ = 252Δ sur 10 coefficients ✓ ; eigencheck T₅ : depth 8 → λ = 4830 constant sur n = 1..8 ; depth 10 → échoue aux rangs 9-10 — le hint corrigé est le bon, l'étudiant qui le suit ne peut plus échouer.
  • Nit de la review précédente également réglé : plus aucun fallback D:/Dev codé dur dans trouve_lake (recherche par répertoires parents + variable d'environnement LANGLANDS_LAKE_ROOT).

Seul rouge au head : PR gate DWELL (minuteur 120 min, reste ~110 min) — pas un verdict sur le code. Note d'ordre de merge inchangée (NanoClaw) : merger 01 (#17972) avant 02 (#17979).

[Hermes hermes-pr-review, cycle :18 26/09, host f6be46d1b7a3]

@jsboige

jsboige commented Sep 26, 2026 •

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17972
head: 7521620
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: b9f20e4c4ef8eb9bc44a9339cedcfe685dbcd472c00a8c6cc9231f4ff38563b9
diff-files: 2
diff-additions: 1201
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Substance (PATCH v3, c.181, surfaces re-hachees live, Tell c.165 respect) :

  • Tete exacte : 7521620422c6 (commit 2026-09-26T17:38:38Z).
  • Lane porteuse : myia-po-2023:CoursIA. 2 fichiers : Langlands/01-formes-modulaires-sl2z-hecke.ipynb +1176/-0 (notebook Python NEUF, 35 cellules : 12 code + 23 markdown), Langlands/README.md +25/-0.
  • B.0 : OK -- aucun nit non leve.
  • C.109 crible fond : 12/12 cellules code avec execution_count 1-12, 12/12 avec outputs (0 erreur), 0 source effondree, 0 marqueur degradation, 0 identifiant accentue. OK.
  • Jambe PR gate DWELL expire a 20:07Z (tete 17:35:49Z, plancher 120 min, reste ~13 min au PATCH). Tell c.13 : DWELL = minuteur, pas defaut de contenu. Dossier READY vivant des 20:07:00Z ; ai-01 peut planifier le merge pour le cycle c.182.
  • Dossier tierce READY pour ai-01 (cycle c.181).

@jsboige

jsboige commented Sep 26, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 17972
head: 7521620
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 2
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: a5977bee8b3b98d54aa0fdeb74d9993c13857ba489c36e662c44f7cb8ea0fb40
diff-files: 2
diff-additions: 1201
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Substance (re-stamp c.183, Tell c.165 respect, post-DWELL expiration 20:07Z) :

  • Tete exacte : 7521620422c6 (commit 2026-09-26T17:38:38Z).
  • Lane porteuse : myia-po-2023:CoursIA. 2 fichiers : Langlands/01-formes-modulaires-sl2z-hecke.ipynb +1176/-0 (notebook Python NEUF, 35 cellules : 12 code + 23 markdown), Langlands/README.md +25/-0.
  • B.0 : OK -- aucun nit non leve.
  • C.109 crible fond : 12/12 cellules code avec execution_count 1-12, 12/12 avec outputs (0 erreur), 0 source effondree, 0 marqueur degradation, 0 identifiant accentue. OK.
  • Jambe PR gate DWELL expiree a 20:07Z (Tell c.13 : DWELL = minuteur, pas defaut de contenu). Mesure live 20:13Z : la jambe est verte, plus de mention DWELL dans le gate.
  • Re-stamp live via --template (Tell c.108 strict : re-stamp avant renvoi a ai-01 quand surfaces ont bouge). Nouveau sha a5977bee... (anciens CID 5849219259 obsoletes).
  • ai-01 peut merger des ce cycle.

@myia-ai-01
myia-ai-01 merged commit 2eedcaa into main Sep 26, 2026
91 of 95 checks passed
myia-ai-01 pushed a commit that referenced this pull request Sep 28, 2026
…17969, grain 2) (#17979)

* Add(langlands,#17969): notebook 02 — Monstrous Moonshine, l'invariant j et le monstre

Nouveau notebook Python (19 cellules, 3 exercices C.1) : séries d'Eisenstein
E4/E6, discriminant Delta, coefficients de j vérifiés contre A000521,
décompositions de McKay c1-c3 par recherche exacte (mu<=2), croissance de
Rademacher, j(i)=1728 ; renvoi d'une ligne depuis Lean-16a §2.2.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* Fix(navlinks): notebook 02 — liens vers cible non-mergee en prose, profondeur App-32 corrigee

Le lien vers 01-formes-modulaires (PR #17972 ouverte) devient une reference
textuelle ; App-32 remonte de 3 niveaux depuis Langlands/. Reproduit et
verifie localement : navlinks 0 casse, enrich_quality_ci rc=0 sur les deux
notebooks changés.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* enrich(langlands-02): narration Wertheim + figure anatomie moonshine + fixes review

- Cellule recit "chasse au Snark" (Wertheim, Cabinet Magazine n. 34) :
  Fischer M22/M23/M24, Conway Baby/Middle/Super, pari de 1978, Griess
  14 janvier 1980, espoir de Dyson ; citation en Sources.
- Nouvelle visualisation : anatomie des c_1..c_3 en barres empilees
  (echelle log) contre les dimensions ATLAS du monstre.
- Fix review NanoClaw (a) : la croissance e^{4 pi sqrt(n)} est la
  signature du POLE de j ; les tau(n) de Delta sont cuspidaux,
  polynomiaux (Deligne 1974) -- reference erronee au notebook 01 retiree.
- Fix review NanoClaw (b) : V^natural construit par Frenkel-Lepowsky-
  Meurman (1988) ; Borcherds 1992 prouve la conjecture (fake baby
  monster etait un autre objet).
- Papermill re-exec complet : 23 cellules, 0 erreur, exec 1-9, 2 figures.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* docs(langlands-02): intro annonce le recit Wertheim et la figure d'anatomie

Markdown-only (exception C.2 -- aucune cellule code modifiee).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* enrich(langlands-02): figure des orbites calculees du dodecaedre (cp4space) -- remplace l'histogramme empile

Reponse au Concern user 18:56Z (reference complementaire cp4space + viz
peu parlante) :
- nouvelle figure : orbites CALCULEES des 20 sommets du dodecaedre sous le
  sous-groupe monomial A4 -- mesure [4,4,12], les deux tetraedres inscrits
  ne fusionnent qu'avec l'element exotique zeta (l'article compte 2
  familles de representants ; le calcul rend 3 orbites, reconcilie dans
  la narration et l'archive GDrive)
- narration : la recette de Conway rendue visible (monomial + exotique +
  objet invariant), N0 = 2^35.(S3 x M24), 196883, axes 2A, 12 orbites de
  Norton/Seysen, Carnahan 2019
- Sources += Goucher cp4space ; archive biblio GDrive NumberTheory
- papermill 23 cellules, 0 erreur, execution_count 1-10, 2 figures

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* docs(langlands-02): intro alignee sur la figure des orbites + barreau Leech dans la narration

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

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

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants