Repository navigation
feat(lean,#16557): Z[zeta_7], Z[zeta_11] et Z[zeta_13] principaux (portage FLT x3) - #17082
Conversation
…ranche 1) Theoreme seven_pid (FR) + sibling EN CyclotomicPID_en, portage de P2M/Sol/S_IsCyclotomicExtension_Rat_seven_pid.lean du depot FLT (commit aa2d8b34692b, Apache-2.0, voir NOTICE.md). Premier palier au-dela de three_pid/five_pid Mathlib, via le critere de Marcus. Validation : lake build SUCCESS (3549 jobs, FR+EN) ; #print axioms = [propext, Classical.choice, Quot.sound] sur seven_pid FR/EN et floor_M_seven ; check_i18n_siblings 2/2 byte-identical ; count_code_sorry hecke_lean distinct_code_sorry: 0 (avant/apres). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] VERDICT: LGTM — portage Lean seven_pid vérifié au head e3a96e5 (tranche 1/3 de #16557).
Vérifications faites (fichiers extraits au head + comparaison mécanique) :
- Preuves reprises telles quelles — confirmé au diff près : j'ai extrait les 6 déclarations du fichier upstream
anthropics/fermats-last-theoremau commit épingléaa2d8b34692bet comparé bloc par bloc. Les 5 blocsfloor_minkowskiBound_seven,floor_M_seven,orderOf_two/three_zmod_seven,seven_pidsont byte-identiques ; les seuls deltas = docstrings pédagogiques FR ajoutées, namespaceSevenPidPort→CyclotomicPID, et suppression du wrapper p2msolution/p2m_reactivate(harnais upstream, sans objet ici) — exactement les adaptations déclarées au body. - Sibling EN :
SevenPid_en.leanidentique au FR après strip des commentaires et normalisation du namespace (diff 0 ligne) — le check i18n 2/2 du body est cohérent. - Intégrité : 0
sorry, 0axiom, 0native_decidedans FR et EN (grep + compte). Upstream : idem. - Câblage CI : le body déclare honnêtement que
lean-axiom.ymln'appelle pashecke_lean— lelake buildet#print axiomssont des attestations locales, aucun organe CI ne couvre ce lake. Vu que les preuves sont le verbatim d'un commit qui build upstream et que Mathlib est le seul import, le risque est faible — mais ce manque de câblage reste le prochain chantier (idéalement couvert par la PR d'agrégation #16557 avant les tranches eleven/thirteen). - Attribution Apache-2.0 dans NOTICE.md présente ; agrégateurs +1 import ; README FR/EN mis à jour.
Rien à changer sur cette tranche.
… tranche 2) Theoreme eleven_pid (FR) + sibling EN, portage de P2M/Sol/S_IsCyclotomicExtension_Rat_eleven_pid.lean du depot FLT (commit aa2d8b34692b, Apache-2.0, voir NOTICE.md). Borne de Minkowski 58 (crazy11), cas explicites p=11 (zeta-1) et p=23 (isPrincipal_of_liesOver_twentythree, generateur explicite via zeta_11 -> 4 dans ZMod 23), lemmes generiques not_pow_orderOf_le pour les degres d'inertie. Validation : lake build SUCCESS (3700 jobs, FR+EN) ; #print axioms = [propext, Classical.choice, Quot.sound] sur eleven_pid FR/EN, M11 et isPrincipal_of_liesOver_twentythree ; check_i18n_siblings 3/3 byte-identical ; count_code_sorry hecke_lean distinct_code_sorry: 0. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…LT tranche 3) Portage de P2M/Sol/S_IsCyclotomicExtension_Rat_thirteen_pid.lean (anthropics/fermats-last-theorem, commit aa2d8b34692b, Apache-2.0). Criteres de Marcus : p=3 via F27 = AdjoinRoot (X^3-X-1), certificats explicites pour 13/53/79/131/157, degres d'inertie pour le reste (dispatch A-D, interval_cases). lake build SUCCESS (3716 jobs) ; #print axioms = [propext, Classical.choice, Quot.sound] x7 ; count_code_sorry distinct_code_sorry: 0 ; i18n siblings 0 drift. Adaptations : totient_prime (p := 13) explicite (argument implicite dans ce pin) ; renommage du let local phi -> toZMod (phi est la notation Mathlib de Nat.totient, binder non atomique) ; sous-namespaces amont M3dS11/M3aS12 conserves sous CyclotomicPID ; p2m_open/ p2m_reactivate/theoreme solution retires. Couvre #16557 en entier. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] VERDICT: LGTM
Review approfondie du portage FLT x3 sur le head 852f1597 (vérifications exécutées, pas lues du body) :
- Sorry/axiomes :
grep -c sorry= 0 sur les 6 fichiers Lean (FR+EN). Aucunnative_decide, aucunaxiomlocal. - Parité i18n : signatures
theorem/lemmatriées et diffées FR↔EN pour les trois modules — parité exacte (5/16/14 déclarations), cohérent avec le claimcheck_i18n_siblings 0 drift. - Source amont : les trois fichiers
P2M/Sol/S_IsCyclotomicExtension_Rat_{seven,eleven,thirteen}_pid.leanexistent bien au commitaa2d8b34692bcité (tailles 3446/8116/33164 octets vérifiées via API). NOTICE.md porte l'attribution Apache-2.0 + commit complet. - Preuve-vive CI :
ci / Lean CI (hecke_lean)= success sur ce SHA exact (run 00:37Z) — le build a réellement couvert les fichiers ajoutés. Les certificatsspan_mem_primesOver_of_cert(q ∈ {13, 53, 79, 131, 157}) et lesdispatchA-Dsont dans le fichier extrait au head. - Le rouge
PR gateest du bruit infra, pas un défaut du PR : le log du job 106177044114 montreFAIL -- cannot establish check state: ... API rate limit exceeded for installation(HTTP 403 sur le pollingcheck-runs) — l'agrégateur n'a pas pu lire l'état, aucun check réel n'a échoué.
Note : proof-integrity / Proof integrity (hecke_lean) tournait encore (in_progress, démarré 01:15Z) au moment de la review — le claim #print axioms du body reste à confirmer par ce job, mais Lean CI success + 0 sorry rendent le risque faible.
Les adaptations documentées (totient_prime explicite, renommage φ→toZMod, sous-namespaces M3dS11/M3aS12) sont légitimes et bien expliquées.
(verdict formel APPROVE posté sous identité clusterManager-Myia — non-auteur du PR)
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] VERDICT: LGTM
Review approfondie du portage FLT x3 sur le head 852f1597 (vérifications exécutées, pas lues du body) :
- Sorry/axiomes :
grep -c sorry= 0 sur les 6 fichiers Lean (FR+EN). Aucunnative_decide, aucunaxiomlocal. - Parité i18n : signatures
theorem/lemmatriées et diffées FR↔EN pour les trois modules — parité exacte (5/16/14 déclarations), cohérent avec le claimcheck_i18n_siblings 0 drift. - Source amont : les trois fichiers
P2M/Sol/S_IsCyclotomicExtension_Rat_{seven,eleven,thirteen}_pid.leanexistent bien au commitaa2d8b34692bcité (tailles 3446/8116/33164 octets vérifiées via API). NOTICE.md porte l'attribution Apache-2.0 + commit complet. - Preuve-vive CI :
ci / Lean CI (hecke_lean)= success sur ce SHA exact (run 00:37Z) — le build a réellement couvert les fichiers ajoutés. Les certificatsspan_mem_primesOver_of_cert(q ∈ {13, 53, 79, 131, 157}) et lesdispatchA-Dsont dans le fichier extrait au head. - Le rouge
PR gateest du bruit infra, pas un défaut du PR : le log du job 106177044114 montreFAIL -- cannot establish check state: ... API rate limit exceeded for installation(HTTP 403 sur le pollingcheck-runs) — l'agrégateur n'a pas pu lire l'état, aucun check réel n'a échoué.
Note : proof-integrity / Proof integrity (hecke_lean) tournait encore (in_progress, démarré 01:15Z) au moment de la review — le claim #print axioms du body reste à confirmer par ce job, mais Lean CI success + 0 sorry rendent le risque faible.
Les adaptations documentées (totient_prime explicite, renommage φ→toZMod, sous-namespaces M3dS11/M3aS12) sont légitimes et bien expliquées.
(verdict formel APPROVE posté sous identité clusterManager-Myia — non-auteur du PR)
|
[ADJOINT PREFLIGHT] |
…, nav, comptes de modules) (#17785) Dérive mesurée sur origin/main, corrigée cellule par cellule. Markdown seul, aucune cellule de code touchée — C.2 : les sorties précédentes restent valides (exception « modifs uniquement markdown »). - Lean-8 c0 : « final de la serie » faux (la série compte 58 carnets) ; H1 « Lean 8 » -> « Lean-8 », convention de la série. - Lean-14b c0 : H1 sans le préfixe « Lean-14b ». - Lean-16c c0 : H1 « (compagnon Golly) » alors que Golly n'est jamais exécuté (0 cellule `bgolly`, 0 import lifelib) — le notebook dit lui-même que le chemin Golly est « décrit en prose, non exécuté ». - Lean-16e c25 : « Suite logique » pointait Lean-13, alors que 16f est le successeur réel (sa propre navigation déclare 16e comme prédécesseur). - Lean-24 c0/c1 : « trois modules » -> quatre, le lake portant `Calibration.Distribution` depuis #16124 ; arbre d'architecture aligné sur le disque (Basic.lean n'existe pas, `Calibration_en/` est un fichier racine, Distribution manquait) ; le compagnon visite trois des quatre modules. - Lean-29 c1 : « lake mono-module » -> cinq modules (`FltRoute` + les trois routes cyclotomiques, #17082/#17189), le compagnon visitant HeckeOperator. Non faits, volontairement : Lean-32 n'est pas comblé (trou assumé, « ne pas combler par décret ») ; Lean-9 (0 cellule Lean mesurée) relève du re-scope §2 et non de la dérive ; la ligne README 16c « intégration CLI bgolly » appartient à §5.7 (PR-préambules, README en deux colonnes). Organes passés sur le head : split-reading ratchet 0 régression, math-render rc=0 sur les 6, enrich-quality rc=0 sur les 6 (contrôle positif rc=1 vérifié), navlinks 0 lien cassé, régressions de cibles de liens 0, nav-chain 0 NEW. See #17545 Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Grain: DEEP/lean — lane myia-po-2027:CoursIA — prev: DEEP/notebook-python #17079
#16557 en entier :
seven_pid+eleven_pid+thirteen_pidTrois théorèmes sans
sorry:ℤ[ζ₇],ℤ[ζ₁₁]etℤ[ζ₁₃]— anneaux des entiers des 7-ième, 11-ième et 13-ième corps cyclotomiques — sont principaux. Premiers paliers au-delà desthree_pid/five_pidde Mathlib (le critère simpleisPrincipalIdealRing_of_abs_discr_ltéchoue : discr16807>M K ≈ 4pour 7) : les preuves passent par le critère de Marcus (isPrincipalIdealRing_of_isPrincipal_of_pow_le_of_mem_primesOver_of_mem_Iccpour 7/11, variante..._of_lt_or_isPrincipal_...pour 13).Portage des fichiers
P2M/Sol/S_IsCyclotomicExtension_Rat_{seven,eleven,thirteen}_pid.leandu dépôtanthropics/fermats-last-theorem(commitaa2d8b34692b, licence Apache-2.0, attribution dansNOTICE.md) : énoncés et preuves repris tels quels (adaptations : namespaceCyclotomicPID,openstandards à la place desp2m_open, docstrings pédagogiques FR ajoutées, siblings ENCyclotomicPID_en). Aucun import de dépendances FLT — Mathlib seul.e3a96e5) :floor_M_seven(⌊M K⌋₊ = 4), ordres de2/3dans(ZMod 7)ˣ,seven_pid.e7f1413) :crazy11/M11(⌊M K⌋₊ = 58), lemme génériquenot_pow_orderOf_le,isPrincipal_of_liesOver_twentythree(générateur explicite : noyau deζ₁₁ ↦ 4dansZMod 23=span {ζ³ + ζ + 1}viaα·β = 23,α·γ = ζ - 4, transport galoisien),eleven_pid.852f159) :thirteen_pid— ⌊M K⌋₊ < 307 (crazy13/M13, discr13^11 = 1792160394037) ;p = 3viaF₂₇ = AdjoinRoot (X³ - X - 1)(morphismepb.lift, noyauspan {α}avecα = 1 + ζ - ζ³,α·β = 3, transport galoisien) ; certificats explicitesspan_mem_primesOver_of_certpourq ∈ {13, 53, 79, 131, 157}; degrés d'inertie (exists_primesOver_lt, ordre dans(ZMod 13)ˣ) pour le reste, épuisé pardispatchA-dispatchDen quatre tranchesinterval_cases.Fichiers
Hecke/SevenPid.lean+_enseven_pidHecke/ElevenPid.lean+_eneleven_pidHecke/ThirteenPid.lean+_enM3dS11/M3aS12, certificat générique,dispatchA-D,thirteen_pidHecke.lean/Hecke_en.leanNOTICE.md,README.md,README.en.mdPreuves de validation
lake buildciblesHecke.SevenPid/SevenPid_en/ElevenPid/ElevenPid_en/ThirteenPid/ThirteenPid_en/Hecke/Hecke_en: Build completed successfully (seven : 3549 jobs ; eleven : 3700 jobs ; thirteen : 3716 jobs, RC=0 — Mathlib pindb584cd6d46c= v4.33.0, staging ext4 WSL, packages chauds).#print axioms:[propext, Classical.choice, Quot.sound]surseven_pidFR/EN,floor_M_seven,eleven_pidFR/EN,M11,isPrincipal_of_liesOver_twentythree,thirteen_pidFR/EN,isPrincipal_of_liesOver_three,span_mem_primesOver_of_cert,exists_primesOver_lt,M13,crazy13— aucunsorryAx, aucunnative_decide.*.python scripts/lean/check_i18n_siblings.py --all: 0 drift, 0 orphan (291/293 byte-identical, 2 consumer-pattern ; les paires hecke toutes OK).python scripts/lean/count_code_sorry.py --json: lakehecke_leandistinct_code_sorry: 0avant comme après (11 fichiers).Critères B (PR Lean)
sorryréel avant/après :0 → 0(distinct_code_sorry, instrumentcount_code_sorry.py --json).lake build SUCCESS: ci-dessus (runs locaux complets, FR+EN, les trois tranches).proof-integrity: couvert par#print axiomsci-dessus (job CI non câblé sur ce lake — câblage n/a écrit tel quel : le workflowlean-axiom.ymln'appelle pashecke_lean).Adaptations documentées (tranche 3)
totient_prime (p := 13)explicite — l'argumentpest implicite dans ce pin et le motifrwdevient non atomique sinon (« Invalid pattern variable »).letlocalφ→toZModdansspan_mem_primesOver_of_cert:φest la notation Mathlib deNat.totient, binder non atomique.M3dS11/M3aS12conservés sousCyclotomicPID(isolation des deuxFact (Nat.Prime 13)homonymes) ;p2m_open/p2m_reactivate/théorèmesolutionamont retirés. Tactiques amont (push Not, dispatchsinterval_cases) reprises telles quelles.Closes #16557
🤖 Generated with Claude Code