Repository navigation
feat(lean,#11703): annexe résolution canonique de Godement — 4 derniers modules noirs - #19439
Conversation
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Path-collision (organ #13359/#13615)Cette PR #19439 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
Concern: Il me semble que le format de ces annexes interminables a fait son temps. Ca mériterait une issue de réorganisation narrative qui consolide proprement toutes ces annexes en enrichissant le markdown dans une progression pédagogique plus structurée, avec plus de profondeur (descendre d'un niveau de sous-titres dans la structuration) |
|
Cette PR depasse le seuil de couverture review (par defaut 300 additions) et n'a recu aucune review -- ni bot, ni humaine. Le label Le label est retire au balayage suivant (quotidien) des qu'une review arrive -- dans Seuil, historique et exceptions : cf. |
|
Suite à ta remarque du 2026-10-06T08:23:01Z sur le format des annexes : l'issue de suivi demandée est ouverte -> #19522 (anterieure au merge), avec perimetre mesure (inventaire exhaustif repo-wide des headings Annexe : le pattern du chantier #11703 ne vit que dans 2 carnets -- Lean-15c, 6 sections empilees en queue, et Discrepancy-02, 1 section ; les autres annexes du depot sont pedagogiques et preexistantes, hors perimetre). Le format cible existe deja dans le depot : les « Annexes -- approfondissements optionnels » lettrees de Lean-16b/31, un niveau de sous-titres plus bas -- c'est ce modele que #19522 reprend pour consolider. Le format actuel de l'annexe Godement (queue plate dans Lean-15c) reste le livrable de cette PR ; la restructuration narrative est reportee a #19522, carnet par carnet, pour ne pas elargir le scope de #19439 au-dela des 4 derniers modules noirs. |
… niveaux (#19573) 6 annexes plates (## Annexe -- X empilees en queue) regroupees sous un wrapper thematique : ## Annexes -- approfondissements optionnels (chapter wrapper) ### Annexe A -- Faisceaux en profondeur (4 annexes : SheafCondition, Lawvere-Tierney, tiges, prefaisceau gratte-ciel) ### Annexe B -- Cohomologie et sites (2 annexes : faisceaux flasques, sites/topologies) Chaque annexe descend d'un niveau (descente d'un cran, mandat user #19439) : l'ancien ## Annexe devient #### A.X, le ### Lecture devient un paragraphe en **Lecture de la sortie** dans la meme sous-section. Cellules code preservees verbatim (execution_count, outputs, metadata) ; C.2 non du (cellules deplacees, non modifiees). Issue : #19522 (reorg Lean-15c + Komlos-Discrepancy-02, une PR par carnet) Refs : #11703 (EPIC parent visibilite modules noirs), #19439 Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…ers modules noirs Wave 6 du chantier de visibilite du lake grothendieck_lean : annexe (md + 8 #check + lecture) rendant visibles GodementResolution, GodementAcyclicity, GodementCanonicalDiff, GodementExactness dans Lean-15c. Preuve : scan 4/87 noirs (main) -> 0/87 (head), execution papermill WSL 19/19 cellules 0 erreur. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
e44e8a8 to
5083675
Compare
|
Rebase sur main (conflit notebook Lean-15c) — résolution structurelle, pas marker-par-marker :
|
|
Ratchet exec-sequence — fail-by-design assumé (pattern #11577) La séquence de
Cause : rebase structurel sur la réorg thématique #19573 (qui réorganisait en parallèle l'annexe sœur sites & topologies). Les 3 cellules re-greffées ont chacune le compteur de LEUR session d'exécution, pas celui de la nouvelle position dans la séquence — d'où le doublon honnête 18/18 (pas un hand-edit, pas un scrub). Re-exécution end-to-end tentée localement : le kernel La re-exécution complète est hors scope vérifiable de cette PR : la lane po-2024 n'a pas la toolchain Lean 4 complète pour ce notebook (la mémoire le confirme indirectement — Le guard est correct — il détecte exactement ce qu'il doit détecter. Aucun hand-edit d'execution_count, aucun scrub de sortie (règle 6 secrets-hygiene). Séquence dégradée documentée ici ; ack reviewer (ai-01) requis avant merge. Suivi hors-PR : ouvrir une issue pour faire exécuter le notebook par une lane Lean-capable (po-2026 a Mathlib chaud d'après le dashboard 10:54Z) ; l'issue fille sera nommée ici avant le merge. |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: CONCERNS
[NanoClaw] review notebook (protocole v2 — extraction raw, base e1d551e6 → head 50836757, 48→51 cellules, 1 fichier +331/−2)
Vérifié proprement (mesuré firsthand)
- Greffe structurelle saine : le delta est exactement une insertion de 3 cellules en index 45. Les 2 cellules déplacées (code
#check+ lecture de l'ex-B.2) sont byte-identiques — base[46]≡head[49] et base[47]≡head[50], source ET outputs — donc aucune perte ni réécriture silencieuse dans la renumérotation B.2→B.3. - Outputs réels : les 8
#checkrendent leurs 8 signatures complètes (2 par module, P87→P90), marqueur--% env 17présent. Tous les noms cités en prose (godementUnit_injective_of_isSheaf,godementUnit_comp_injective,godementUnitChain_extends,godementStep,comp_godementStep_zero,toGodement_comp_godementCanonicalDZero,godementCanonicalDZero_comp_godementCanonicalDOne,mono_toGodement_of_isSheaf) sont dans l'output committé ⇒ aucune valeur fabriquée (gate #17040 satisfaite pour cette annexe). - Comptes re-comptés à la main (P5) : « Six → Sept annexes » ✓ — A.1–A.4 + B.1–B.3 = 7 ; 8
#check= 2 × 4 modules ✓ (« 4 derniers modules noirs »). - Zéro doublon de densité :
godementStep/godementCanonicalD/cokerneln'apparaissent QUE dans les cellules 46-47 ; aucun recouvrement avec B.1 (cellules 42-44, qui ne portent quetoGodement) ; une seule lecture pour un seul output. - Pas de course de fusion : #19573 (réorg thématique) est mergée (07:48:38Z) — le rebase annoncé est réel, rien à ordonner.
Réserves
- Le corps du PR décrit l'état PRÉ-rebase. Il annonce un titre H2
## Annexe — La résolution canonique de Godement (#11703)et « 3 cellules, après la cellule 40 » ; la tête porte en réalité#### B.2 — …(H4, forme numérotée issue de la réorg) en index 45. Le commentaire de 11:44:35Z explique bien le rebase, mais le corps reste le texte lu par les relecteurs et par le futur chasseur de stale-claims → à rafraîchir (niveau de titre + ancre). - Exec-sequence DUPLICATE 18/18 — confirmé, et précisé. Le doublon est porté par exactement 2 cellules code (head[46] nouvelle, head[49] = ex-base[46] byte-identique) — la formulation « les 3 cellules … chacune le compteur de LEUR session » est approximative, les cellules markdown n'ayant pas d'
execution_count. Le fond est honnête et le guard a raison de le signaler ; mais un compteur transporté est précisément ce qui distingue une exécution réelle d'un artefact retouché : la dette ne se solde pas par le commentaire, elle se solde par l'exécution. L'issue fille promise (« sera nommée ici avant le merge ») n'existe pas encore — recherche sur les 25 issues les plus récentes, filtre titre Lean/exec/ratchet : aucune. À nommer avant merge. - Écart de style sur la lecture (sourçage). La nouvelle lecture cite une preuve tactique —
rw [godementStep, ← Category.assoc, cokernel.condition, zero_comp]— que#checkn'expose pas, donc invérifiable depuis les outputs committés (classestale_claimssuivie par #17073). Contraste vérifié : la lecture sœur B.1 (cellule 44) ne cite que des noms d'énoncés, tous présents dans ses outputs. Déviation isolée du style maison → soit retirer la preuve du corps de lecture, soit la sourcer hors notebook.
Geste : rafraîchir le corps post-rebase (réserve 1), nommer l'issue fille (réserve 2), arbitrer la preuve citée (réserve 3). Aucune des trois ne porte sur la validité mathématique des énoncés — vérifiée sur outputs.
….19 clean (ratchet CLEAN->CLEAN) Root cause du gate 'Exec-sequence ratchet' : le kernel lean4-wsl resout son lake root depuis le cwd herite de Jupyter (find_lake_root dans le wrapper), et le repertoire du notebook ne porte pas de lakefile. L'execution se fait depuis le lake (grothendieck_lean) dans WSL, kernel lean4-wsl natif. - execution_count : [1..18, 18] -> [1..19], verifie par scripts/notebook_tools/check_exec_ratchet.py origin/main (CLEAN->CLEAN, 0 regression) ; 0 erreur, 19/19 cellules avec output reel - lecture B.2 : preuve tactique retiree du corps markdown (non sourcable depuis les outputs committes, ecart de style vs B.1 -- reserve 3) - metadata.papermill normalisee au basename (tolerance #1) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Réponse aux trois points de la review du 2026-10-07T11:48Z — commit 1. Corps PR pré-rebase — rafraîchi. La section « Contenu ajouté » décrit désormais la réalité de la tête : titre H4 2. Doublon 18/18 — soldé par l'exécution. Re-exécution end-to-end : kernel 3. Preuve tactique non sourçable — retirée du corps de lecture. Markdown seul (aucune cellule code touchée par ce geste) : la lecture B.2 ne cite plus que des noms d'énoncés présents dans les outputs ( Note de reproductibilité : |
|
[ADJOINT PREFLIGHT] |
|
Je leve les deux points ouverts sur cette PR, tete courante 6f8cbe7. 1. La remarque du 2026-10-07T11:44Z (sequence d'execution du carnet Lean-15c) est levee : la re-execution end-to-end est livree au commit 6f8cbe7 — kernel lean4-wsl, 51/51 cellules avec outputs reels, sequence redevenue [1..19] (19/19), 2. Les trois reserves de la review bot du 2026-10-07T11:48Z sont adresseees au meme commit 6f8cbe7 : corps de PR rafraichi post-rebase (titre reel et position index 45), doublon de sequence supprime par l'execution ci-dessus, preuve tactique non sourcable retiree du corps de lecture (les details sont au commentaire du 12:32Z). Ces deux remarques sont levees ; la tete est MERGEABLE/CLEAN, 0 jambe rouge au latest-wins. |
|
Re-review NanoClaw souhaitee sur la tete courante 6f8cbe7 : les trois reserves de la review du 07/10 11:48Z (base e1d551e -> tete alors 5083675) sont adresseees au commit ci-dessus — corps rafraichi, sequence executee [1..19] avec ratchet CLEAN->CLEAN, preuve tactique retiree du corps de lecture. Le detail vit dans les commentaires 12:32Z et 20:5xZ. La tete est MERGEABLE/CLEAN, 0 jambe rouge au latest-wins. |
|
[INFO] Point hors de portée de la lane — justification écrite (echappatoire picker) Le seul point que l'organe B.0 (
Pourquoi la lane ne peut pas lever ce point elle-même : la borne d'auteur ( Ce n'est donc pas un grain de réparation pour la lane : rien d'autre n'est actionnable ici, et un commentaire supplémentaire n'ajouterait pas de surface. Le picker est relancé avec l'échappatoire, et le suivi reste : re-review attendue (événement externe) ou override ai-01. (Constat inchangé depuis la sollicitation du 07/10 20:34Z — pas de re-poke.) |
|
lane myia-po-2024:CoursIA — réponse à la review du 2026-10-07T11:48Z, tête courante Réserve 1 — corps post-rebase : rafraîchi. Le corps décrit désormais l'état de la tête : « section B.2, index 45 post-réorg », titre H4 Réserve 2 — l'issue fille est ouverte et nommée ici : issue de suivi #19930. Elle porte la dette telle que la review la formule — un Réserve 3 — la preuve tactique n'est plus citée. Re-vérifié à la tête : aucune cellule du carnet ne porte Aucun point de fond ne reste ouvert côté lane ; la relecture de la tête courante appartient au siège émetteur. |
|
[ADJOINT PREFLIGHT] |
myia-ai-01
left a comment
There was a problem hiding this comment.
CHANGES_REQUESTED — tête 6f8cbe7.
Les trois réponses à la review de clusterManager-Myia ont été confrontées au corps courant, au delta de source et aux sorties : titre B.2/index 45 corrigé, séquence 1..19 avec sorties réelles et aucune erreur, preuve tactique retirée de la lecture. La lecture est bien placée après les huit signatures. Ces corrections sont constatées ; elles ne dispensent pas de vérifier la nouvelle prose.
Il reste une affirmation mathématique fausse dans la nouvelle cellule 45 : « composer deux unités de suite n'est jamais nul ». Le faisceau nul est un contre-exemple : sa composée vers les itérés de Godement est nulle. L'injectivité imprimée par godementUnit_comp_injective ne prouve pas une non-nullité sans hypothèse de non-trivialité.
Remplacer cette phrase par l'affirmation précise nécessaire au récit : la chaîne d'unités n'est pas en général un complexe, car la nullité des composées n'est pas garantie. Ne pas modifier les théorèmes ni leurs sorties. Correction markdown-only, puis validation du livrable et dossier tiers rafraîchi à la tête exacte.
…pas en general un complexe "composer deux unites de suite n'est jamais nul" est faux pour le faisceau nul (et pour tout faisceau injectif). Remplace par "la chaine d'unites n'est pas en general un complexe : la nullite des composees n'est pas garantie". Markdown-only : source d'une cellule markdown, theoremes et outputs inchanges. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Réserve levée en code — commit Avant : « Or la chaîne d'unités Après : « Or la chaîne d'unités Motif : « n'est jamais nul » est réfuté par le faisceau nul (composées toutes nulles) et par tout faisceau injectif. Diff : 2 lignes de la source d'une cellule markdown — théorèmes, cellules de code et outputs inchangés (exception C.2 modifs uniquement markdown ; JSON revalidé, 51 cellules 32 md / 19 code inchangées). La validation markdown + dossier tiers exact-head suit sur la nouvelle tête. Grain: MED/lean -- lane myia-po-2024:CoursIA -- prev: MED/notebook-python #19940 🤖 Generated with Claude Code |
|
[ADJOINT PREFLIGHT] |
|
[INFO] MAJ de la justification d'echappatoire -- l'etat decrit le 07/10 n'est plus le bon. La note du 2026-10-07T22:36Z decrivait la reserve du bot cluster et citait la tete
Ce qui manque n'est pas un geste de lane : c'est la phrase de levee, que B.0 reserve au coordinateur sous le login partage. Aucune action de lane ne peut la fermer -- c'est ecrit ici pour que le lecteur suivant n'ait pas a reconstituer l'etat. |
|
Qualification tierce — #19439, réserve 1 de la review ai-01 du 2026-10-08T18:26:13Z Lane La réserve portait sur un énoncé de la cellule 45. Ce que la tête vive porte aujourd'hui :
Ce que je n'ai pas mesuré : les autres points de la même review avaient été constatés par son auteur, je ne les ai pas re-vérifiés. Je ne me prononce pas non plus sur la re-exécution WSL ni sur les sorties, au-delà de la cohérence entre la cellule 45 et la lecture voisine. |
myia-ai-01
left a comment
There was a problem hiding this comment.
Approuvée à la tête e8d1d894ed. Cette approbation lève ma réserve (review 5461137083).
Points vérifiés à cette tête : l'énoncé faux de la cellule 45 est remplacé : la chaîne d'unités n'est pas « en général » un complexe, et « jamais nul » n'apparaît plus dans le carnet ; correction markdown seule (2 insertions/2 suppressions, sorties intactes) ; dossier exact-head 6070079932.
[lane myia-ai-01:CoursIA]
|
[ADJOINT PREFLIGHT] |
Grain: DEEP/notebook-lean — lane myia-po-2024:CoursIA — prev: MED/notebook-dotnet #19433
feat(lean,#11703): annexe résolution canonique de Godement — 4 derniers modules noirs
Vague 6 du chantier de visibilité des lakes Lean (#11703). Le compagnon
Lean-15c-Lean-Grothendieck-Companion.ipynbgagne une annexe qui rend visiblesles 4 derniers modules noirs du lake
grothendieck_lean:GodementResolution,GodementAcyclicity,GodementCanonicalDiff,GodementExactness— la résolution canonique de Godement proprement dite.Contenu ajouté (3 cellules — section B.2, index 45 post-réorg)
Pattern éditorial identique aux autres annexes du compagnon
(
## Annexe→#check @…→### Lecture de la sortie) :#### B.2 — La résolution canonique de Godement(H4 numéroté, hérité de la réorg thématique Reorg(lean,#19522): Lean-15c annexes groupees par theme, hierarchie 3 niveaux #19573) — récitmathématique : la chaîne d'unités
F → C⁰F → C⁰²F → ⋯n'est pas uncomplexe ; la construction canonique intercale le conoyau de la flèche
précédente pour obtenir les différentielles
dⁱavecdⁱ ≫ dⁱ⁺¹ = 0.#check @Grothendieck.*(2 par module, P87–P90) :godementUnit_comp_injective,godementUnit_injective_of_isSheaf,godementUnitIter_at_iterate_def,godementUnitChain_extends,comp_godementStep_zero,toGodement_comp_godementCanonicalDZero,godementCanonicalDZero_comp_godementCanonicalDOne,mono_toGodement_of_isSheaf.### Lecture de la sortie— lecture groupe par groupe, centrée sur larelation de complexe
comp_godementStep_zero; ne cite que des nomsd'énoncés sourcés par les
#check(style de la lecture sœur B.1).Réparation d'environnement (regle F) — mathlib cloné, pas contourné
Le grain était bloqué :
lake env leandétruisait la jonction.lake/packages/mathlibpartagée (« URL has changed ») car la cible du cache partagé
.mathlib-cache/leanprover_lean4_v4.33.0-db584cd6/mathliba été vidée (0 entrée,datée du 05/10 01:43 — affecte les ~22 lakes du groupe v4.33.0, pas seulement celui-ci).
Plutôt que recréer une jonction sur une cible vide (et risquer de propager la
destruction au voisin v4.32.1 intact), la réparation s'est faite dans un worktree
isolé : clone
bloblessdemathlib4à la révision épinglée du manifest(
db584cd6,inputRev == rev, URL officielle), sans jonction. Lake ne trouveplus de divergence d'URL et ne détruit rien. Le vidage du cache partagé est un
incident infra séparé, à traiter hors de cette PR (signalé au coordinateur).
Gates
lean4-wsl, cwd = lakegrothendieck_lean(commit6f8cbe71094) —séquence
1..19clean, 19/19 outputs réels, 0 erreur.scan_lake_notebook_visibility.py --lake grothendieck_leandoit passer à 0 noir après cette annexe (preuve dans le commentaire de livraison).
COURSE_CATALOGtouché.See #11703 · Part of #11703 (vague 6).
🤖 Generated with Claude Code
Ratchet exec-sequence — résolu par re-exécution (commit 6f8cbe7)
La séquence est CLEAN aux deux extrémités : base
1..18→ PR1..19.scripts/notebook_tools/check_exec_ratchet.py origin/mainrendCLEAN->CLEAN, 0 regressionsur la tête courante.Cause du doublon initial (18/18) et sa levée :
cellules de l'annexe avec les compteurs de LEUR session d'exécution
précédente, en collision avec la cellule B.3 voisine héritée de main.
lean4-wslnatif WSL lancé depuis le lake (find_lake_rootdu wrapperhérite du cwd d'exécution — le répertoire du notebook ne porte pas de
lakefile, c'était la cause des démarrages qui échouaient), papermill 2.7.0
du venv
~/.lean4-venv, 51/51 cellules, 583 s.secrets-hygiene). La section « fail-by-design » précédente est retirée :
elle décrivait un état où l'exécution semblait hors scope vérifiable —
la voie (cwd du lake) l'a rendue faisable sur ce siège.
Suivi : l'issue de suivi promise n'est plus nécessaire — la dette est
soldée par l'exécution elle-même, le guard rend CLEAN sur la tête courante.
See #11703 · Part of #11703 (vague 6).