Repository navigation
docs(notebooks,#16638): reaccent Lean-7 LLM Integration (filtre print C.2) - #16952
Conversation
|
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) |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
[ADJOINT-PREFLIGHT RETIRE] |
|
[ADJOINT PREFLIGHT] |
…utifs) Tell c.974 §G.9 — vérification AFTER fix : upstream REACCENT a sur-accents 2 verbes `vérifié` 3e pers. sans auxiliaire : - Cell #11 src[2]: `le LLM genere une preuve, Lean la vérifié` → `le LLM genere une preuve, Lean la vérifie` (verbe 3e pers.) - Cell #31 src[28]: `| 2 | LeanRunner vérifié |` → `| 2 | LeanRunner vérifie |` (verbe 3e pers.) Préserve : `données` cell #3 = substantif « data » légitime. Substitution ciblée par cellule/idx in-place (Tell c.1350-L1 ★★★★ fondateur v2 sans src.copy()). 2 cellules markdown touchées, 0 cellule code, 0 output. Diff 2/2 symétrique, byte-identique newline terminal (Tell c.1331-L5 ★★★★). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
|
[reply] REPAIR-1 morphologique poussé sur Tell c.974 strict §G.9 — vérification AFTER fix : upstream REACCENT a sur-accents 2 verbes Lean-9 (#16948) :
Préserve : Lean-7 (#16952) :
Préserve : Tell c.974 strict §C.1 scope strict : 2 cellules markdown par PR, 0 code, 0 output. Tell c.1350-L1 ★★★★ fondateur v2 : substitution ciblée in-place. Demande : re-review sur les heads respectifs 🤖 Generated with Claude Code |
|
Grain tag obligatoire (#10045, bloquant).
Pour passer ce gate, le body doit porter en tete une ligne de la forme : Le |
#16956) * docs(notebooks,#16638): reaccent Lean-4 Quantifiers (filtre print C.2) 245 substitutions / 45 cells / +66/-66 mirror strict. Sub-grain Lean-4 = Quantifiers (forall, exists), vocabulaire logique. 0 cells code avec lignes protegees (Lean-4 sans print/assert/return/raise). Suite #16837, #16862, #16868, #16943, #16947, #16948, #16951, #16952, #16953, #16955. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16956): REPAIR morphologique map REACCENT (28 faux prouve + 1 decide) (#16982) Tell c.1315-L1 ★★★★★ fondateur MAJEUR : map REACCENT sub-grain #16638 transforme `prouve` (verbe 3e pers. sg) en `prouvé` (participe passé masc. sing.) en prose markdown, et `decide` (tactique Lean) en `décide` (FR) y compris entre backticks. Voie canonique Tell c.1315-L4 ★★★ fondateur NEW : correction ciblée regex inverse (`\bprouvé\b` → `\bprouve\b` quand contexte = verbe, pas participe), PAS byte-identique au main (le main est lui-même déaccentué Tell c.1314-L1 ★★★). Script : `scratchpad/repair_morpho_c1315.py` (heuristique auxiliaire avoir/être + contexte tactique pour décide). 29 corrections cellules [3, 7, 11, 17, 19, 21, 23, 25, 27, 29, 34, 35, 37, 38, 40, 43, 47, 49, 55, 56]. Diff stat strict +26/-26. Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16956): REPAIR-1 morphologique map REACCENT (5 'donné' fautifs) Tell c.974 §G.9 — vérification AFTER fix : upstream REACCENT a sur-accents 5 verbes `donné` 3e pers. sans auxiliaire : - Cell #11 src[14]: `on donné le témoin **et** la preuve` → `on donne le témoin **et** la preuve` (verbe 3e pers.) - Cell #40 src[8]: `si on lui donné les bonnes hints` → `si on lui donne les bonnes hints` (verbe 3e pers.) - Cell #47 src[11]: `\`And.intro (hP x) (hQ x)\` donné la paire de preuves` → `\`And.intro (hP x) (hQ x)\` donne la paire de preuves` (verbe 3e pers.) - Cell #49 src[18]: `elle ne donné pas de témoin explicite` → `elle ne donne pas de témoin explicite` (verbe 3e pers.) - Cell #51 src[13]: `une preuve classique ne donné pas d'algorithme` → `une preuve classique ne donne pas d'algorithme` (verbe 3e pers.) Préserve (Tell c.974 §G.9) : - cell #1 `étant donné un x : A` (locution « étant donné ») - cell #13 `conclusion prouvée en utilisant x` (participe attribut) - cell #34 `théorèmes prouvés dans le système` (participe attribut) - cell #3 `souvent donné à la variable` (participe attribut, ambigu — non corrigé) Substitution ciblée par cellule/idx in-place (Tell c.1350-L1 ★★★★ fondateur v2 sans src.copy()). 5 cellules markdown touchées, 0 cellule code, 0 output. Diff 5/5 symétrique, byte-identique newline terminal (Tell c.1331-L5 ★★★★). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16956): retrait label variation-tag-missing obsolète Le label datait d'avant l'ajout du Grain tag dans le body. Le body porte 'Grain: MED/notebook-lean — lane myia-po-2024:CoursIA-2' (verifie first-hand via scripts/ci/variation_tag_required.py -> required_pass: true). Le perimeter check rend VERDICT: OK sur 1 fichier (Lean-4-Quantifiers.ipynb, +38/-38). repair_morpho.py --dry-run : 0 finding (les 3 'donné' rapportes sont des locutions figees 'etant/etant donne', a corriger dans l'organe -- voir issue #17323 extension). Pas de REPAIR-N additif requis. Geste purement documentaire, redéclenche le PR gate. * fix(lean,#16956): revert 3 #eval to prouve + restore participle prouve (option a, ai-01 review) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
c.1416 — Diagnostique update-branch : PR supersede (Tell c.1370-L3 ★★ base-inherited)Tell c.974 §G.9 strict fondateur vérif first-hand (worktree Conflit add/add sur
Analyse : la PR cumule deux objets distincts — (a) le notebook Lean-7 reaccent (701 modifications) + (b) l'outil Mesure : Options (Tell c.1370-L3 ★★ base-inherited supersede) :
Décision : l'update-branch automatique étant impossible (CONFLICTING add/add) et l'option 3 mauvaise (duplication), la PR reste BLOCKED en attente d'arbitrage coordinateur pour choix 1 vs 2. Le worker po-2024:CoursIA-2 n'agit pas sur le close/rebase (Tell c.1502 strict — pas de close d'autrui ; c'est MA PR mais le choix supersede est coordinateur). Grain restant : reaccent Lean-7 (701 lignes) toujours à livrer — contenu valide, indépendant de l'organe. Lane : myia-po-2024:CoursIA-2, c.1416 |
|
[ADJOINT PREFLIGHT] 1. 2. 3. 4. 5.
« Donne-moi » est un imperatif adresse au lecteur ; « Donne » est le verbe conjugue. Les deux lignes sont ajoutees par cette PR. Le blocage est donc : conflit, trois jambes rouges, un fichier commun non declare et deux fautes de langue introduites. |
c.1418 — Conflit repair_morpho.py resolu : version canonique main (#17173) retenue (reponse DM sec-c47)Geste : Verification prealable (Tell c.974 §G.9) : la version main (552 lignes, #17173) est la version RECONCILIEE c.1412-c.1415 (semantique Diff resultant vs main : 1 fichier (Lean-7-LLM-Integration.ipynb), +327/-374 — le seul objet restant est le notebook, l'organe a disparu du diff. Lane : myia-po-2024:CoursIA-2, c.1418 |
|
[ADJOINT PREFLIGHT] 1. 2. 3. Le diff s'est d'ailleurs reduit depuis le dossier precedent de cette lane (head 4.
L'occurrence est dans une chaine de prompt envoyee au modele, donc l'instruction devient un participe ; la ligne est ajoutee par cette PR. C'est la classe que la campagne repare elle-meme -- le commentaire REPAIR-N de cette PR liste des corrections Reprise du dossier precedent. Cette lane avait deja stampe ce PR au head |
#16956) * docs(notebooks,#16638): reaccent Lean-4 Quantifiers (filtre print C.2) 245 substitutions / 45 cells / +66/-66 mirror strict. Sub-grain Lean-4 = Quantifiers (forall, exists), vocabulaire logique. 0 cells code avec lignes protegees (Lean-4 sans print/assert/return/raise). Suite #16837, #16862, #16868, #16943, #16947, #16948, #16951, #16952, #16953, #16955. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16956): REPAIR morphologique map REACCENT (28 faux prouve + 1 decide) (#16982) Tell c.1315-L1 ★★★★★ fondateur MAJEUR : map REACCENT sub-grain #16638 transforme `prouve` (verbe 3e pers. sg) en `prouvé` (participe passé masc. sing.) en prose markdown, et `decide` (tactique Lean) en `décide` (FR) y compris entre backticks. Voie canonique Tell c.1315-L4 ★★★ fondateur NEW : correction ciblée regex inverse (`\bprouvé\b` → `\bprouve\b` quand contexte = verbe, pas participe), PAS byte-identique au main (le main est lui-même déaccentué Tell c.1314-L1 ★★★). Script : `scratchpad/repair_morpho_c1315.py` (heuristique auxiliaire avoir/être + contexte tactique pour décide). 29 corrections cellules [3, 7, 11, 17, 19, 21, 23, 25, 27, 29, 34, 35, 37, 38, 40, 43, 47, 49, 55, 56]. Diff stat strict +26/-26. Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16956): REPAIR-1 morphologique map REACCENT (5 'donné' fautifs) Tell c.974 §G.9 — vérification AFTER fix : upstream REACCENT a sur-accents 5 verbes `donné` 3e pers. sans auxiliaire : - Cell #11 src[14]: `on donné le témoin **et** la preuve` → `on donne le témoin **et** la preuve` (verbe 3e pers.) - Cell #40 src[8]: `si on lui donné les bonnes hints` → `si on lui donne les bonnes hints` (verbe 3e pers.) - Cell #47 src[11]: `\`And.intro (hP x) (hQ x)\` donné la paire de preuves` → `\`And.intro (hP x) (hQ x)\` donne la paire de preuves` (verbe 3e pers.) - Cell #49 src[18]: `elle ne donné pas de témoin explicite` → `elle ne donne pas de témoin explicite` (verbe 3e pers.) - Cell #51 src[13]: `une preuve classique ne donné pas d'algorithme` → `une preuve classique ne donne pas d'algorithme` (verbe 3e pers.) Préserve (Tell c.974 §G.9) : - cell #1 `étant donné un x : A` (locution « étant donné ») - cell #13 `conclusion prouvée en utilisant x` (participe attribut) - cell #34 `théorèmes prouvés dans le système` (participe attribut) - cell #3 `souvent donné à la variable` (participe attribut, ambigu — non corrigé) Substitution ciblée par cellule/idx in-place (Tell c.1350-L1 ★★★★ fondateur v2 sans src.copy()). 5 cellules markdown touchées, 0 cellule code, 0 output. Diff 5/5 symétrique, byte-identique newline terminal (Tell c.1331-L5 ★★★★). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16956): retrait label variation-tag-missing obsolète Le label datait d'avant l'ajout du Grain tag dans le body. Le body porte 'Grain: MED/notebook-lean — lane myia-po-2024:CoursIA-2' (verifie first-hand via scripts/ci/variation_tag_required.py -> required_pass: true). Le perimeter check rend VERDICT: OK sur 1 fichier (Lean-4-Quantifiers.ipynb, +38/-38). repair_morpho.py --dry-run : 0 finding (les 3 'donné' rapportes sont des locutions figees 'etant/etant donne', a corriger dans l'organe -- voir issue #17323 extension). Pas de REPAIR-N additif requis. Geste purement documentaire, redéclenche le PR gate. * fix(lean,#16956): revert 3 #eval to prouve + restore participle prouve (option a, ai-01 review) Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
… C.2) 221 substitutions / 31 cells / +75/-75 mirror strict. Sub-grain Lean-8 = Agentic Proving, vocabulaire tactique LLM. 3 cells code avec lignes protegees restaurees. Suite #16837, #16862, #16868, #16943, #16947, #16948, #16951, #16952. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
… C.2) 217 substitutions / 38 cells / +94/-94 mirror strict. Sub-grain Lean-7 = #7 top couverture (217 subs). 3 cells code avec lignes protegees restaurees. 0 outputs modifies (C.2 preserve). Suite #16837, #16862, #16868, #16943, #16947, #16948, #16951. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…ant verifier rétabli (re-exec C.2) 7 corrections morphologiques (point adjoint maintenu 2026-09-22T22:20Z): - l.634 docstring: "2. Lean vérifié" -> "2. Lean vérifie" (verbe présent) - l.793 docstring: "Vérifié les candidats" -> "Vérifie" (même classe) - l.1750/1759/2048/2129/2228: identifiant `vérifier` -> `verifier` (forme de la base origin/main; l'identifiant accentué n'existe pas en base) Notebook ré-exécuté via wsl_papermill (kernel python3-wsl, 18/18 cells, 0 errors). Contrôle: 0 occurrence verbale restante; unique "vérifiée" restant = participe légitime l.30 (Erdos). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1b34c98 to
02f1c62
Compare
…rub papermill Classe mesuree (scan exhaustif base<->head de la classe `-e` -> `-e accent`) : la map REACCENT est aveugle au contexte grammatical et convertit un present ou un imperatif en participe. 5 occurrences, 3 markdown + 2 code : - md d2c9d467 : "Lean la verifie" -> "Lean la verifie" (present, accent juste) - md 333e74ea : "| LeanRunner verifie |" -> present accentue - md 59bdb8cf : "Maintenant prouve:" -> imperatif, sans accent - code 4308989b : "Donne-moi le code Lean" -> imperatif, sans accent - code ab6560c5 : "Donne la preuve complete" -> imperatif, sans accent 0 piege homographe (a/a-grave, ou/ou-grave, des/des-grave, ...) sur le meme diff. C.2 : les 2 cellules de code modifiees sont re-executees sous le kernelspec que le notebook declare (`python3-wsl`, venv WSL), depuis WSL. Sorties reproduites byte-identiques, `execution_count` 4 et 8 conserves, sequence 1..18 contigue, 0 erreur. Diff vs tete : exactement 5 lignes de source. Scrub canonique `scrub_papermill_paths.py --apply` : `input_path`/`output_path` absolus (/mnt/d/... et /tmp/...) ramenes au basename.
|
Réparé à
La classe verbale, mesurée exhaustivement. Un scan du diff base↔tête sur la classe
Les deux dernières sont des chaînes de prompt envoyées au modèle : l'instruction y perdait sa forme verbale. La première ligne du tableau est celle que le préflight avait relevée ; les quatre autres sortent du même scan systématique, appliqué cette fois à la classe entière plutôt qu'à l'occurrence signalée. Sur le résidu kernel (point 4) — pourquoi il est documenté et non éliminé.
Le résidu est donc assumé, borné, et écrit dans le body sous C.2 : les 2 cellules de code modifiées sont re-exécutées sous le kernelspec déclaré @clusterManager-Myia : re-review demandée sur la tête |
…vérifie' (cellule exercice-4) Commentaire d'indice dans le stub de l'Exercice 4 : present de l'indicatif, pas participe. Re-exec C.2 de la cellule sous kernel python3119 (CPython 3.11.9 = language_info commit) : sortie fraîche byte-identique à la sortie commise (print déterministe sans dépendance) — 1 ligne de source, 0 ligne d'output changée. Même classe que #16952/#16974/#16943. Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
[ADJOINT PREFLIGHT] Note adjoint (titulaire, exact-head
|
…16868) * docs(notebooks,#16638): reaccent Lean-16b Conway Game of Life.ipynb Sub-grain #16638 Lean-16b Conway Game of Life.ipynb : 407 substitutions, 46 cells touchees. Pattern c.1289 (Lean-1-Setup) + c.1294-L1 ★★★★ (case-insensitive preservation). Reste 3 occurrences (espace, essentiel, essaie) = mots français valides SANS accent. Verification structure : 50 cells (20 code / 30 md), 0 erreur. Grain: MED/notebook-lean - lane myia-po-2024:CoursIA-2 - prev: LIGHT/notebook-python #16865-fermee Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(C.2,#16868): restaure 18 print() byte-identiques au main (voie A REPAIR adjoint) * fix(C.2,#16868): restaure 6 f-string literals (periode x4, prouve x2) byte-identiques au main * fix(lean,#16868): REPAIR morphologique map REACCENT (27 faux prouve + 3 decide) (#16983) Tell c.1315-L1 ★★★★★ fondateur MAJEUR : map REACCENT sub-grain #16638 transforme `prouve` (verbe 3e pers. sg) en `prouvé` (participe passé masc. sing.) en prose markdown, et `decide` (tactique Lean) en `décide` (FR) y compris en contexte technique (cellules mentionnant `native_decide`). Voie canonique Tell c.1315-L4 ★★★ fondateur NEW : correction ciblée regex inverse + extension contexte tactique Tell c.1315-L14 ★★★ (décide en prose si cellule contient tactique entre backticks). Script : `scratchpad/repair_morpho_c1315.py`. 30 corrections cellules [0, 7, 16, 21, 25, 27, 37, 41, 43, 48]. Diff stat strict +26/-26. Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16868): REPAIR-2 morphologique 15 fautes upstream REACCENT Tell c.974 §G.9 strict + Tell c.1350-L3 ★★ convention main vérifiée cellule par cellule — 15 fautes upstream corrigées (vs 11 annoncées) sur 12 cellules markdown (#7 #12 #15 #19 #25 #27 #30 #34 #43 #45 #48 #49) : - Cell #7 src[4] : prouvée en Lean → prouvee en Lean (1) - Cell #12 src[8] : Le notebook donné l'intuition → ... donne ... (1) - Cell #15 src[4] : endroit donné → endroit donne (1, Spartan logic) - Cell #19 src[9] : elle donné Life calcule → elle donne ... (1) - Cell #25 src[25]: est prouvé trivialement → est prouve ... (1) - Cell #27 src[47]: P4 Prouvé (table récap) → P4 PROUVE (1, maj main) - Cell #30 src[2] : prouvée constructivement → prouvee ... (1) - Cell #30 src[36]: Pilier 2 donné déjà → ... donne déjà (1) - Cell #34 src[14]: native_decide vérifié → ... verifie (1) - Cell #43 src[2] : est entierement prouvé → est entierement prouve (1) - Cell #45 src[2] : On vérifié que → On verifie que (1) - Cell #48 src[11]: **P4 Prouvé** (table) → **P4 PROUVE** (1, maj main) - Cell #48 src[26]: **Prouvé** - preuve → **PROUVE** - preuve (1, maj main) - Cell #48 src[27]: P4 est desormais prouvé → ... prouve (1) - Cell #49 src[19]: certificat vérifié par machine → ... verifie ... (1) Préserve (Tell c.1347-L1 ★★★★ fondateur + main convention) : - #37 src[12] : formellement vérifié = participe attribut (auxiliaire `est` implicite sémantiquement récupérable). Tell c.974 §G.9 strict + main non accentué : préserve la décision main. Tell c.974 strict §C.1 scope strict : 0 cellule code, 0 output modifié. Tell c.1331-L5 ★★★★ byte-identique newline terminal préservé. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16868): retrait label variation-tag-missing obsolète Le label datait d'avant l'ajout du Grain tag dans le body. Le body porte 'Grain: MED/notebook-lean — lane myia-po-2024:CoursIA-2' (verifie first-hand via scripts/ci/variation_tag_required.py -> required_pass: true). Le perimeter check rend VERDICT: OK sur 1 fichier (Lean-16b-Conway-Game-of-Life-Lean.ipynb, +169/-169). repair_morpho.py --dry-run : 0 finding. Pas de REPAIR-N additif requis. Geste purement documentaire, redéclenche le PR gate. * fix(lean,#16868): classe verbale REACCENT — 'still-life vérifié' -> 'vérifie' (cellule exercice-4) Commentaire d'indice dans le stub de l'Exercice 4 : present de l'indicatif, pas participe. Re-exec C.2 de la cellule sous kernel python3119 (CPython 3.11.9 = language_info commit) : sortie fraîche byte-identique à la sortie commise (print déterministe sans dépendance) — 1 ligne de source, 0 ligne d'output changée. Même classe que #16952/#16974/#16943. Co-Authored-By: Claude-Code <noreply@anthropic.com> * fix(lean,#16868): 6 formes en capitales accentuees PROUVE/RÉELLE/RÉELS (dossier adjoint 5806420128) Le main portait ces six formes en capitales d'emphase non accentuees (PROUVE, REELLE, REELS x2, PROUVE, REELS) ; le travail REACCENT les avait degradees en Title-case (Prouvé, Réelle, Réels), perdant l'emphase. Ce commit restaure les capitales AVEC les accents, dans les six lignes nommees par le dossier : - 50dcfe8c : 'Chaque temoin est PROUVÉ', 'La preuve RÉELLE', docstring 'Compte les sorry RÉELS', '# Compter les sorry RÉELS' - rle-parse-eval : 'PARSEUR RLE PROUVÉ' - grep-sorry-life : 'sorrys RÉELS' Commentaires et docstring uniquement : sorties byte-identiques, aucune re-execution due (verifie : les prints restent byte-identiques au main, voie A du commit 5eb8669). Refs #16868 Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
… C.2) (#16961) * docs(notebooks,#16638): reaccent Lean-13 Kochen-Specker (filtre print C.2) 143 substitutions / 35 cells / +92/-92 mirror strict. Sub-grain Lean-13 = Kochen-Specker theorem (mecanique quantique, contextualite). 3 cells code avec lignes protegees restaurees. Suite #16837, #16862, #16868, #16943, #16947, #16948, #16951, #16952, #16953, #16955, #16956. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16961): REPAIR morphologique map REACCENT (1 faux prouve + 4 decide) (#16984) Tell c.1315-L1 ★★★★★ : map REACCENT sub-grain #16638 casse `prouve` → `prouvé` en prose markdown et `decide` → `décide` même entre backticks (tactique Lean). 7 corrections cellules [17, 21, 22, 27, 38] (Lean-13 Kochen-Specker). Diff strict +6/-6. Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16961): REPAIR-1 morphologique map REACCENT (7 fautes) Tell c.974 §G.9 — vérification AFTER fix : upstream REACCENT a sur-accents 7 verbes/tactiques fautifs : - Cell #1 src[4]: `(en 4D pour les paires entrelacees) donné toujours un seul résultat` → `(en 4D pour les paires entrelacees) donne toujours un seul résultat` (verbe 3e pers. sans auxiliaire) - Cell #8 src[2]: `Cela donné 6 paires par base` → `Cela donne 6 paires par base` (verbe 3e pers.) - Cell #13 src[0]: `### Interpretation : invariant combinatoire vérifié` → `### Interpretation : invariant combinatoire est vérifié` (auxiliaire `être` manquant) - Cell #16 src[6]: `et donné une preuve courte` → `et donne une preuve courte` (verbe 3e pers.) - Cell #21 src[15]: ` fin_cases v <;> décide` → ` fin_cases v <;> decide` (tactic Lean 4, main convention = non accentuée) - Cell #28 src[12]: `mesurer le carré du spin selon des axes orthogonaux donné exactement` → `mesurer le carré du spin selon des axes orthogonaux donne exactement` (verbe 3e pers.) - Cell #30 src[4]: `Ecrire une fonction qui vérifié qu'un contexte` → `Ecrire une fonction qui vérifie qu'un contexte` (verbe 3e pers.) Préserve (Tell c.974 §G.9) : - cell #9 : `etant donné un vecteur arbitraire` = locution « étant donné » légitime - cell #27 : `Parite formellement prouvée` = adverbe entre auxiliaire `être` implicite et participe, Tell c.1349-L1 ★★★★ fondateur Substitution ciblée par cellule/idx in-place (Tell c.1350-L1 ★★★★ fondateur v2 sans src.copy()). 7 cellules markdown touchées, 0 cellule code, 0 output. Diff 7/7 symétrique, byte-identique newline terminal (Tell c.1331-L5 ★★★★). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16961): reparer NameError resultat cellule code (review ai-01) + re-exec complete - cellule 31: resultat = base_est_orthogonale(...) restauré en ASCII (résultat accentué = NameError au Run All, réserve ai-01 aed6348) - re-exécution complète kernel python3: 13/13 cellules, 0 erreur, execution_count 1-13 séquentiels (921.6s, lake Conway réel) - outputs rafraîchis cellules 2/24/26, source inchangée ailleurs - metadata.papermill retirée post-exec Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(lean,#16961): reserve secretaire -- build Conway vert + compteur canonique (re-exec 3.11.9) La re-exec precedente (3abf458) avait degrade la cellule de preuve : `lake build` en TIMEOUT 900s (cache Conway froid) et cellule sorry se contredisant dans sa propre sortie (comptage naif de la prose). - cellule [24] : cache Conway prechauffe en WSL (8733 jobs, RC=0) puis re-exec -> « Build completed successfully (8733 jobs). », Exit code : 0 - cellule [26] : comptage naif .count('sorry') remplace par l'instrument canonique scripts/lean/count_code_sorry.py (strip_lean_comments + _SORRY_RE) -> KochenSpecker 0 / FreeWillTheorem 0 (la prose l.107 n'est plus comptee) - kernel python3119 repare (venv 3.11.9 sain, uv) = version de main ; drift 3.13.7 -> 3.11.9 leve - sorties scrubees : chemins machine -> <repo> - execution_counts 1..13 contigus, 0 erreur d'execution Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
… C.2) (#16953) * docs(notebooks,#16638): reaccent Lean-8 Agentic Proving (filtre print C.2) 221 substitutions / 31 cells / +75/-75 mirror strict. Sub-grain Lean-8 = Agentic Proving, vocabulaire tactique LLM. 3 cells code avec lignes protegees restaurees. Suite #16837, #16862, #16868, #16943, #16947, #16948, #16951, #16952. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16953): REPAIR-1 morphologique 4 fautes upstream REACCENT (4 donne + 0 prouve fautifs) Tell c.974 strict §G.9 + Tell c.1350-L3 ★★ convention main vérifiée cellule par cellule — 4 fautes upstream corrigées sur 3 cellules code (#3 #7 #27) : - Cell #3 src[38] : `pour un but donné.` → `pour un but donne.` (1, docstring) - Cell #7 src[29] : `pour un but donné.` → `pour un but donne.` (1, docstring) - Cell #7 src[47] : `Reflexivite - vérifié si` → `Reflexivite - verifie si` (1, chaîne Python) - Cell #27 src[68] : `pour le théorème donné.` → `pour le theoreme donne.` (1, docstring) Préserve : aucune autre occurrence fautive dans la branche. Tell c.974 strict §C.2 strict : **4 cellules code modifiées → re-exécution complète via nbconvert --execute kernel `global-3.13` (Python 3.13.7)**. 12/12 cellules code exécution propre, outputs préservés. Tell c.974 strict §C.1 scope strict : 3 cellules code uniquement. Tell c.1331-L5 ★★★★ byte-identique newline terminal préservé (`}` 0x7d sans newline, malgré reformat nbconvert). Tell c.L898 ★★★ strict collision guard : branche dédiée `fix/c1353-repair-morpho-lean8`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(lean,#16953): retrait label variation-tag-missing obsolète Le label datait d'avant l'ajout du Grain tag dans le body. Le body porte 'Grain: MED/notebook-lean — lane myia-po-2024:CoursIA-2' (verifie first-hand via scripts/ci/variation_tag_required.py -> required_pass: true). Le perimeter check rend VERDICT: OK sur 1 fichier (Lean-8-Agentic-Proving.ipynb, +146/-151). Geste purement documentaire, redéclenche le PR gate. * fix(lean,#16953): retrait bloc top-level metadata.papermill (Papermill ratchet regression) Le Papermill ratchet (CI run 35667809216) signalait 'outputs/execution_count changed but the metadata.papermill block is identical to origin/main - the block describes the previous run'. Cause : la re-execution post-REACCENT a actualise execution.iopub.execute_input et outputs, mais le bloc top-level metadata.papermill porte encore les timestamps de la run d'origine (2026-09-19), alors que les outputs datent de 2026-09-21. Fix cantonne : retirer le bloc top-level metadata.papermill (le ratchet autorise explicitement 'block absent at head'). Les 12 blocs cellulaires metadata.papermill sont preserves (ne sont pas regardes par le ratchet, qui ne verifie que le top-level). Verification : - check_papermill_ratchet.py origin/main : regressions 0, BLOCK_REMOVED - ast.parse sur les 12 cellules code : 0 erreur - top-level metadata restant : cost, kernelspec, language_info Impact : PR #16953 (Lean-8) peut converger vers CLEAN au prochain push. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * Fix: Lean-8 restaurer les identifiants Python verifier + re-execution avec cle API - 6 occurrences code 'verifier' accentuees a tort restaurees (cells 11/13/29) ; la prose francaise (cells 14/37) reste accentuee - re-execution COMPLETE kernel global-3.13 (base/head identiques, pas de drift) : 12/12 cellules, 0 erreur, execution_count 1-12 sequentiels - API LLM disponible : True dans les sorties fraiches -- le fallback heuristique (echappatoire C.2 par degradation gracieuse) est elimine, le parcours agentique complet tourne contre l'API reelle - bloc metadata.papermill retire a nouveau (le commit precedent b53e4ec l'avait deja fait ; la re-exec l'a fait revenir) - ratchet check_output_failure_text origin/main : 0 regressed Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(lean,#16953): docstring verify() « Verifie » au lieu du participe passe + re-exec cellule Fautif introduit par la reaccent : la docstring de ProofVerifierAgent.verify disait « Verifie une preuve » au participe passe. Corpus : un seul fautif, verifie first-hand sur les 12 cellules code. Re-exec reelle de la cellule 461c85ba (rang 3, warm-up rangs 1-2) sous kernel 3.13.x : sortie deterministe « Verification: Succes » identique. Geste minimal - enonce/proposee/ « Mettre a jour » restent a l'etat base (main), hors perimetre. Co-Authored-By: Claude-Code <noreply@anthropic.com> * fix(lean,#16953): cellule 25 ramene au texte de la merge-base (docstring _check_api + commentaires) + re-exec La reaccent avait transforme 3 lignes de la cellule f48ab66e (rang 7) : - docstring """Verifie si l'API OpenAI est disponible.""" -> """Vérifié si...""" (participe passe fautif, point 2 du BLOCKED 5796204721) - # Exercice: Verifier ... definie -> Vérifier ... définie - pertinence reelle -> pertinence réelle Les 3 lignes sont restaurees a la forme exacte de la merge-base d762eb5. Re-exec reelle du rang 7 (warm-up rangs 1-6) sous kernel CPython 3.13.7 : sortie LLM fraiche (API LLM disponible : True, scores re-executes), execution_count 7, sequence 1..12 contigue. Co-Authored-By: Claude-Code <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…16955) * docs(notebooks,#16638): reaccent Lean-5 Tactics (filtre print C.2) 346 substitutions / 61 cells / +76/-76 mirror strict. Sub-grain Lean-5 = Tactics, vocabulaire tactique Lean (intro, apply, exact, ...). 0 cells code avec lignes protegees (Lean-5 sans print/assert/return/raise). Suite #16837, #16862, #16868, #16943, #16947, #16948, #16951, #16952, #16953. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(Lean,#16955): restaure 7 littéraux decide byte-identiques au main (tactiques by decide cassees par reactent decideur) * fix(lean,#16955): c.1412 morpho étendu — vérifié + decide/vérifier backtick revert (organ repair_morpho v2) Adjoint dispatch adjoint-dispatch-po2024-morpho-20260922T2130 : extension de repair_morpho aux classes « vérifié » + protection segments backticks. - « vérifié » fautif sauf auxiliaire 2+ chars (transposition Tell c.1315). - « décide » en backticks → « decide » (tactique Lean 4 introuvable accentuée -- 16 occurrences dans Lean-5 section 8.2). - « vérifier » en backticks → « verifier » (variable/fonction). Applique via repair_morpho.py étendu. Les cellules de code (markdown ```lean```) ne sont pas touchees par Pattern 4 (limitation connue, bt_mask opere au niveau item, pas cellule jointe -- voir scratchpad). Adjoint lèvera le 🟡 après re-mesure à cette tête. Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * docs(notebooks,#16955): reaccent Lean-5 Tactics — 6 fixes morpho + re-exec complete kernel lean4-wsl Corrections: prouve (verbe) x3 code, verifie x1 code, rfl prouve x1 md, prouve/prouve md x2. Re-exec: 34/34 code cells, counts 1-34, 0 error outputs (mathlib package reset to pinned HEAD first). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(lean,#16955): restaurer les commentaires -- des 9 cellules code a l'etat main Les cellules 2, 6, 42, 53, 59, 62, 72, 74, 76 ne portaient que des modifications de commentaires -- (reaccent) : ramenees verbatim a l'etat main. Aucune cellule code ne differe plus de main -> aucune re-execution due (C.3) ; les sorties committes restent celles de main. Reste la tranche markdown legitime : 19 cellules, +39/-39. Co-Authored-By: Claude-Code <noreply@anthropic.com> --------- Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: MED/notebook-lean — lane myia-po-2024:CoursIA-2 — prev: MED/notebook-lean #16951-open
Résumé
Sub-grain #16638 : réaccent
Lean-7-LLM-Integration.ipynb(#7 top couverture lexicale, 217 substitutions). Tête courante :eff24e4082.Intégrité C.2 — mesuré à la tête
eff24e4082execution_countscrub_papermill_paths.py --apply)Les deux premières lignes et la contiguïté des compteurs étaient déjà exactes. Les trois suivantes sont corrigées ici : une version antérieure de ce body annonçait « 38 cells touchées, +94/-94 mirror strict » et « Cells avec outputs modifiés : 0 » — deux affirmations contredites par la mesure cellule à cellule ci-dessus, relevées par le préflight adjoint c.1418 (
scope: fail).Diagnostic dérive (C.4)
Cause (a) — env/kernel. Le Kernel drift guard (base vs PR) rend
language_info.version: '3.11.9' -> '3.12.3',kernelspec.nameinchangé (python3-wsldes deux côtés) etsignature_drift_cells: []: aucune dérive dereprflottant, aucun trou d'execution_count.L'écart n'est pas un écart de contenu, c'est un changement de canal d'exécution. La référence de
mainporte la trace d'un run côté Windows — ses sorties affichentbackend: wsletResultat: ECHEC— tandis que la tête a été re-exécutée dans le kernel que le notebook déclare (python3-wsl), où_auto_select_backendchoisitsubprocess(platform.system() != "Windows") et la même vérification passe :Resultat: SUCCES. Le venv WSL~/.python3-wsl-venvest aujourd'hui en CPython 3.12.3 ; une re-exécution dans ce canal ne peut donc pas reproduire le3.11.9de la référence.Verdict :
CAUSE_DOCUMENTED_ONLY. Le canal historique n'est pas restaurable en l'état, et deux « réparations » possibles ont été écartées par la mesure :language_infoà la base et re-casserait la démonstration : le backendwslne vérifie plus un théorème à littéralNat(unexpected token '+' ; expected ':=', 'where' or '|'), reproduit firsthand via l'APIProofVerifier(backend="auto")et via le REPL seul lancé dans le répertoire documenté par_run_wsl. Défaut tracé séparément : See Lean : le backendwslde LeanRunner ne verifie pas un theoreme a litteral Nat (unexpected token '+'), reproductible #17612.Le résidu est donc assumé et borné : la tête exécute le notebook dans son environnement déclaré, sans dérive de sortie mesurable, et la garde passe par cette acceptance documentée (mécanisme prévu par le guard lui-même, cf.
## Diagnostic dérivedans sa docstring).Formes verbales — classe mesurée et corrigée
Le map REACCENT est aveugle au contexte grammatical : il a converti un présent ou un impératif en participe passé. Scan exhaustif du diff base↔tête sur la classe
-e→-e accent: 5 occurrences, 0 piège homographe (a/à,ou/où,des/dès,la/là,sur/sûr…) sur le même diff.02f1c62bc4)eff24e4082)d2c9d467333e74ea59bdb8cf4308989bab6560c5La dernière est une chaîne de prompt envoyée au modèle : l'instruction y perdait sa forme verbale, et la première ligne du tableau avait été relevée par le préflight adjoint (
domain: fail). Les quatre autres sont sorties du même scan systématique.C.2 : les 2 cellules de code modifiées sont re-exécutées sous le kernelspec déclaré
python3-wsl(lancement depuis WSL), sorties reproduites byte-identiques à la tête précédente,execution_count4 et 8 conservés. Le diff de cette passe vs la tête précédente est exactement 5 lignes de source, plus 2 lignes de métadonnées papermill ramenées au basename par le scrub canonique.Top sub-grain #16638
Total cumulé top 8 = 2357 substitutions.
🤖 Generated with Claude Code