Repository navigation
Add: Hecke.DeltaTau — tau de Ramanujan verifie par le noyau + identite propre T_p D (grain 5 #17969) - #18723
Conversation
…e propre T_p D = tau(p) D (grain 5 #17969) - deltaSeq : produit d'Euler tronque X*prod(1-X^m)^24 par convolution de listes de coefficients Z (Mul (Polynomial Z) noncomputable au pin du lake) - tau : table 0..25 verifiee par le noyau (tau_values, decide), stabilite 24<->36 - multiplicativite tau(6)=tau(2)tau(3), lacunarite tau(25) != 0 - pont coeffHeckeT_twelve_int (Z <-> C) puis heckeT_two/three_isEigen : T_p D = tau(p) D sur bornes n<=12 / n<=8, p in {2,3} - sibling EN byte-identique (checker OK), axiomes standards Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM (APPROVE)
Grain 5 de l'Epic Langlands #17969 — vérifié firsthand, lecture intégrale des 166+167 lignes + maths refaites à la main.
Vérifié exact :
- Architecture anti-valeur-codée-en-dur exemplaire :
tau_valuesforce le noyau à réduire la convolution réelle (prodCoeff/mulTrunc/etaProd) — ledecideéchouerait si UN seul coefficient de la table était faux.deltaSeq_stable(K=24 vs K=36) justifie la troncature proprement. - Maths recoupées indépendamment : τ(2)τ(4)=35328 = τ(8)+2¹¹τ(2)=84480−49152 ✓ ; τ(3)²=63504 = τ(9)+3¹¹τ(1) ✓ ; τ(3)τ(6)=−1524096 = τ(18)+3¹¹τ(2) ✓ ; table = OEIS A000594 jusqu'à τ(25)=−25499225.
- Scoping épistémique honnête : le module ne prétend PAS prouver que Δ est une forme propre — docstring explicite (« la version non bornée exige la théorie des formes modulaires, hors périmètre : le noyau vérifie ici ce que la théorie prédit »). Pont
coeffHeckeT_twelve_intℂ→ℤ propre (by_cases + push_cast). - Preuve-vive CI :
Lean CI (hecke_lean)4m07 +proof-integrity (hecke_lean)2m44 tous deux PASS sur ce head — le lake est réellement compilé (fichiers nouveaux, pas un cache) et l'intégrité (sorry/native_decide/axioms) vérifiée. i18n sibling drift PASS : EN = traduction fidèle, même squelette de théorèmes. - Agrégateurs racine + README mis à jour (structure +6 entrées, ponts vers Serre100/09 et Langlands/01-02 cités) — pas de totaux → hors directive #17633.
Mineur (non bloquant) : le décalage FR/EN de bornes entre le README (« n ≤ 12 / n ≤ 8 ») et le code est cohérent ; rien à signaler d'autre.
[Hermes hermes-pr-review, cycle :19 01/10, host f6be46d1b7a3, sig=7bbc8a78]
|
[ADJOINT PREFLIGHT] |
Grain: DEEP/lean — lane myia-po-2024:CoursIA — prev: MED/notebook-python #18705
Ce que livre la PR
Grain 5 de l'Epic #17969 (voir #17969 pour le découpage) : le module
Hecke.DeltaTaurelie la formule des coefficients decoeffHeckeT(HeckeOperator.lean) au discriminant modulaire Δ.deltaSeq: troncature du produit d'EulerX ⬝ ∏_{1≤m≤24} (1 - Xᵐ)²⁴— représentée par convolution de listes de coefficients ℤ. Note de design : l'instanceMul (Polynomial ℤ)de Mathlib estnoncomputableau pindb584cd6(v4.33.0) — vérifié sur une sonde, même(X+1)*(X+2)refuse de compiler — ce qui interdit toute lecturedecide/#evalviaPolynomial ℤ. La convolution sur listes est calculable et le noyau la réduit intégralement.tau: table des 26 valeurs τ(0..25) vérifiées par le noyau —tau_values : (List.range 26).map tau = deltaSeq.take 26 := by decide(aucune valeur codée en dur sans preuve ; ledecideéchoue si un coefficient est faux). Le processus l'a prouvé : la récolte par sonde a corrigé 3 valeurs de mon brouillon (τ(22), τ(23), τ(24)) avant l'écriture de la table finale.deltaSeq_stable: exactitude de la troncature (K = 24 vs K = 36 facteurs, 26 premiers coefficients inchangés).T_p Δ = τ(p) Δ: pontcoeffHeckeT_twelve_int(lecture entière de la formule ℂ au poids 12) puisheckeT_two_isEigen(p = 2, n ≤ 12, eigenvalue −24) etheckeT_three_isEigen(p = 3, n ≤ 8, eigenvalue 252) — la version non bornée exige la théorie des formes modulaires, hors périmètre du lake ; le noyau vérifie ici ce que la théorie prédit.τ(6) = τ(2)τ(3), lacunaritéτ(25) ≠ 0(pont Serre100/09).DeltaTau_en.lean(namespaceModularForm_en), importée par les agrégateurs racines ; README du lake enrichi (paragraphe module + 2 lignes de table de structure).Preuves exigées (B.2/B.3)
sorry(organecount_code_sorry.py --json) :hecke_leandistinct_code_sorry0 → 0 (16 fichiers, dont les 2 nouveaux).lake buildlocal SUCCESS (WSL, toolchain v4.33.0, cache db584cd6) :lake build Hecke.DeltaTau→Build completed successfully(150 s)lake build Hecke.DeltaTau_en Hecke_en Hecke.AxiomProbe→Build completed successfully (4104 jobs)#print axiomssur sonde locale, fichier non committé) :tau_values:[propext]heckeT_two_isEigen,heckeT_three_isEigen,coeffHeckeT_twelve_int:[propext, Classical.choice, Quot.sound](et côté_enidentiques) — pas desorryAx, pas denative_decide.lean-hecke.ymlappellelean-axiom.yml; lestarget-modulesy sont dérivés à l'exécution depuis les globs du lakefile →Hecke.DeltaTau/Hecke.DeltaTau_ensont couverts automatiquement, sans changement de workflow. Le job CI est attendu vert sur cette tête (les axiomes locaux sont les 3 standards).check_i18n_siblings.pysur la paire →OK, 1/1 pairs byte-identical.decidelourds portentset_option maxRecDepth 200000 in(reduction noyau des convolutions).Scope
5 fichiers :
Hecke/DeltaTau.lean(nouveau),Hecke/DeltaTau_en.lean(nouveau),Hecke.lean/Hecke_en.lean(+1 import chacun),README.md(paragraphe + table). Aucun fichier hors du lake.See #17969 (grain 5 — l'Epic reste ouverte).