Repository navigation
docs(lean,#15368): Conway docstrings name the two proven labelings, not a mirror family - #15380
Conversation
…ot a mirror family Co-Authored-By: Claude-Code <noreply@anthropic.com>
|
G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
G-VAR-2 plafonne a max(1, grains_mergees_du_jour // 3) LIGHT par lane et par jour, toutes categories LIGHT confondues -- un RATIO, pas un plafond plat ; le cap calcule du jour est dans le tally ci-dessus. G-VAR-3 interdit deux genres LIGHT consecutifs. Les signaux ci-dessus rendent le fait VISIBLE (labels |
Path-collision (organ #13359/#13615)Cette PR #15380 (
|
jsboige
left a comment
There was a problem hiding this comment.
[Hermes] — #15380 (docs lean Conway, +11/-8, docstrings only).
Verdict : COMMENT — corrigé conforme, rien de bloquant (contrainte token : COMMENT only).
Vérification du claim des docstrings contre le code :
- Le docstring FR réécrit nomme deux étiquetages et deux polynômes :
alexander_figureEight_signed([false, true, false, true]=t²−3t+1, Conway.lean:634) et son miroiralexander_figureEight_signed_mirror([true, false, true, false]=t · (t²−3t+1), Conway.lean:647 — la conclusionPolynomial.X * (Polynomial.X ^ 2 - 3 * Polynomial.X + 1)matche mot pour mot le docstring). Le surclaim « toute paire miroir convient » est bien remplacé par la paire exacte prouvée — alignement docstring ↔ théorèmes avérés. - Le sweep du body est honnête : les occurrences « pour toute liste » (binders réels) et « tout nœud de Δ trivial » (sorry documenté permanent) sont correctement distinguées des vrais surclaims.
- Comptes
sorry: 12 (FR) / 13 (EN), inchangés — cohérent avec « 0 ligne sorry dans le diff ». - CI : PR gate pass + Proof integrity (knot_lean) pass 7m9s — le build prouve que les docstrings sont effectivement inoffensives.
- Security scan : 0 match (diff commentaires uniquement).
Clôture propre de #15368. Rien d'autre à signaler.
myia-ai-01
left a comment
There was a problem hiding this comment.
APPROVED — review terminale au head exact a25a8448ad652b726a81bcbce46010b0e0e64f06.
Le diff est strictement limité aux docstrings FR/EN et remplace le quantificateur non prouvé par les deux étiquetages effectivement établis. Validation locale fraîche dans un worktree physique court (C:\cw\p15380) avec le toolchain épinglé Lean 4.32.1, LEAN_NUM_THREADS=1 et cibles séparées : Knots.Conway puis Knots.Conway_en ont chacune terminé Build completed successfully (3000 jobs). Le worktree est source-clean au head exact. Les avertissements sorry sont la dette préexistante connue et aucune occurrence n’est introduite par ce diff documentaire.
B.0 terminal : body/commentaires/reviews/diff/threads relus, zéro nit non levé, CI distante verte (build, proof-integrity, i18n, target-coverage, PR gate), variation UTC live admissible (cap_reached=false). La collision #14821 reste séparée par son CHANGES_REQUESTED de split et devra intégrer ce canonique.
… 10->9 Unite preuve-Conway du split de PR 14821 (CHANGES_REQUESTED ai-01 2026-09-10T02:40:32Z). Base = main post-#15380 (3f144eb) : les docstrings Conway corrigees par #15380 sont preservees (grep du diff : aucune ligne labeling/miroir touchee). - Conway.lean / Conway_en.lean : portion Conway du commit b8c06a1 (pickaxe KT_trivial_alexander), KT laisse en son etat main (sorry). - lean-knot.yml : sorry-baseline 10->9, en-tete 11->9 avec historique (#15082 sInf, puis conway_trivial_alexander), Conway.lean 8->7 dans l'enumeration, commentaires 10->9 acknowledged. distinct_code_sorry : 10 -> 9 (scripts/lean/count_code_sorry.py). lake build LEAN_NUM_THREADS=1 : voir le body de la PR. See #2874
Unite preuve-KT du split de PR 14821 (CHANGES_REQUESTED ai-01 2026-09-10T02:40:32Z). Base = lean/2874-conway-proof-split (6a0bfb9), elle-meme sur main post-#15380. - Conway.lean / Conway_en.lean : portion KT du commit c3f2c07, empilee sur la portion Conway de b8c06a1. Patch applique proprement en git apply (zero conflit). KT_trivial_alexander prouve (transvections integrales du mineur, determinant t^5). - Note reader-facing FR/EN corrigee : 'only KT_trivial_alexander remains sorry' -> 'KT_trivial_alexander est prouve egalement', les deux soeurs etant desormais vraies. - lean-knot.yml : sorry-baseline 9->8, en-tete 9->8 avec historique (conway DISCHARGED 9 puis KT DISCHARGED 8), Conway.lean 7->6 dans l'enumeration, commentaires '9 acknowledged' -> '8'. distinct_code_sorry : 9 -> 8 (scripts/lean/count_code_sorry.py). lake build LEAN_NUM_THREADS=1 : voir le body de la PR. See #2874
Grain: LIGHT/lean — lane myia-po-2026:CoursIA — prev: DEEP/lean #15120
Summary
Résidu réserve 3 de la review NanoClaw sur #15120 : la docstring FR de
alexander_figureEight_signedportait le quantificateur universel « toute paire miroir convient » que Lean n'établit pas (deux instances prouvées, pas une famille). Réécrite sur le modèle de l'EN qui nomme les deux étiquetages et le polynôme miroir explicite.Le sweep demandé (geste 2) a trouvé une instance de plus que l'issue n'en nommait : le theorem-docstring EN (
Conway_en.lean:635-638) portait le même surclaim (« any mirror pair works ») — l'issue citait le module-docstring EN (560-563, correct) mais le docstring au niveau du théorème avait le même réflexe. Corrigé identiquement.Conway.lean:630(theorem FR)[−,+,−,+]→t²−3t+1ET son miroir[+,−,+,−]→t·(t²−3t+1), même classe d'unitésConway_en.lean:635(theorem EN)Conway_en.lean:560(module EN, référence de l'issue)Sweep quantificateurs (geste 2) — verdicts
mutateWindow_zero_window« pour toute liste » / « for any list » (FR:153/EN:161) : prouvé — les binders(cs : List PDCrossing) (ρ : KleinRot)sont la quantification.alexander_unknotΔ=1), pas un théorème absent.sorrydocumenté permanent (Lean AI Leaderboard), référence publiée. Honnête, non touché.Validation
grep -c sorryavant/après : Conway.lean 12→12, Conway_en.lean 13→13 (0 ligne sorry dans le diff — les occurrences restantes sont les mentions de prose du stretch Freedman documenté).check_i18n_siblings.py knot_lean: 7/7 paires byte-identical, 0 drift, 0 orphan.lake build+Proof integrity (knot_lean): exécutés par la CI sur cette PR (pathsknot_lean/**.lean) — liens cités en follow-up au terme des jobs (précédents ci(lean,#15305): wire proof-integrity gate into lean-planning.yml #15357/ci(lean): wire proof-integrity gate onto ProgramGames (B.3 hole, #15221 follow-up) #15379). Build local écarté : cache Mathlib local vide (toolchain v4.31.0-rc1) + WAN congestionné (lake exe cache get~5 Go) — la CI est le chemin canonique de ce lake.Closes #15368 (gestes 1-4 tous couverts).