Repository navigation
Langlands 01: formes modulaires -- de SL2(Z) aux operateurs de Hecke (Epic #17969, grain 1) - #17972
Conversation
…(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>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
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) |
|
Concern: est-ce qu'on pourrait rajouter des viz? Ca faciliterait la compréhension et l'aération. |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
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 gateest 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>
|
Levées des trois remarques ouvertes, traitees au commit Finding 1 NanoClaw (borne Ramanujan mauvais exposant) — corrige. L'énoncé de §3 et l'exercice 2 portent désormais Finding 2 NanoClaw (piège de troncature, exo 2) — corrigé. Le hint prescrit Nit NanoClaw ( Viz (demande user 16:19Z) — livrées au même commit, deux figures calculées : (1) domaine fondamental de La re-review NanoClaw/Hermes est bienvenue à la tête courante. |
|
Réserve levée — les visualisations demandées (16:19Z) sont livrées au commit |
…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
left a comment
There was a problem hiding this comment.
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 explicitement2√pcomme 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:/Devcodé dur danstrouve_lake(recherche par répertoires parents + variable d'environnementLANGLANDS_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]
|
[ADJOINT PREFLIGHT] Substance (PATCH v3, c.181, surfaces re-hachees live, Tell c.165 respect) :
|
|
[ADJOINT PREFLIGHT] Substance (re-stamp c.183, Tell c.165 respect, post-DWELL expiration 20:07Z) :
|
…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>
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 formelhecke_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) :
mul), troncation à l'ordre 40 ;coeffHeckeTdu lake démontre ;HeckeOperator.leanetFltRoute.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
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 40T_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.execution_countnon nul +outputsprésents partout, 0 erreur ;grep -nE "raise NotImplementedError|assert False|1/0"→ PROPRE (stubsreturn None # TODO etudiant) ;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/(coeffHeckeTdémontre la formule calculée en §4).See #17969, See #17889
🤖 Generated with Claude Code