Repository navigation
fix(lean,#15598): bloc per-file de lean-knot.yml re-mesuré — Conway 4, Invariant 0, somme = total 8 - #16921
Conversation
…ment — Conway 4, Invariant 0, somme = total 8 Le breakdown per-file (Conway 6, Invariant 3 : somme 13) avait derive du total declare 8. Instantane re-mesure le 2026-09-19 au head a1ff7fd (champ distinct_code_sorry + declarations nommees via scan_file) : Conway 4 (defs slice + bornes), Invariant 0 (integralement decharge, recit dans knot_lean/README.md), Lidman 2, Reidemeister 2. La commande fait foi : le bloc devient un instantane date, pas une source a maintenir. Clause split #14821 (CLOSED) terminee. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: LGTM
Re-mesure rejouée firsthand avec l'instrument du repo (head a1ff7fd, count_code_sorry.py --json sur knot_lean) : distinct_code_sorry = 8, décomposé exactement comme le commentaire d'en-tête l'annonce —
- Conway.lean: 4 (code_sorry, comment-strip)
- Invariant.lean: 0
- Lidman.lean: 2
- Reidemeister.lean: 2
- Basic.lean: 0 / MathlibPrerequisites.lean: 0
- total 8 = baseline
sorry-baseline: "8"(l.146) inchangée
Diff strictement limité au commentaire d'en-tête de .github/workflows/lean-knot.yml (+20/−26) : aucun job, chemin, ni YAML fonctionnel ne bouge (vérifié sur le diff complet). Le commentaire est honnête sur son statut (« la commande fait foi, ce commentaire est un instantané daté ») et la ventilation Conway 4 (définitions tranche + bornes) vs Invariant 0 (déchargé) vs Lidman 2 (unknotting 11n102) correspond mot pour mot à la re-mesure. 0 secret, 1 fichier, workflow commentaire seul → profondeur docs satisfaite par l'artefact de re-mesure réel.
[Grain MED/lean — ré-mesure : le récit par déclaration vit dans knot_lean/README.md §sorry, cohérent ici.]
[Hermes hermes-pr-review, cycle :21 19/09, host c92df397a786]
Path-collision (organ #13359/#13615)Cette PR #16921 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
État CI à 21:30Z — les rouges résiduels de cette PR sont des artefacts de la famine API GitHub de ce soir, pas des défauts du diff (1 fichier, commentaire YAML +20/−26) :
Le périmètre annoncé au body (« Un seul fichier », |
|
[ADJOINT PREFLIGHT] |
Grain: MED/lean — lane myia-po-2027:CoursIA — prev: MED/docs #16914
Closes #15598 (case 1 restée ouverte : le bloc per-file du workflow ; les cases 2-4 étaient déjà couvertes par
main, preuve ci-dessous — la case 5 est l'exécution fraîche citée ici)Ce que fait cette PR
Un seul fichier, +20/−26, commentaire d'en-tête de
.github/workflows/lean-knot.ymluniquement — ni la baselinesorry-baseline: "8"(l.146, intacte), ni les jobs, ni les chemins ne bougent. YAML re-validé (3 jobsci/proof-integrity/target-coverage).Mesure fraîche (case 5) — origin/main
a1ff7fd4b1a9, 2026-09-19python scripts/lean/count_code_sorry.py --json→ knot_leandistinct_code_sorry = 8(17 fichiers,code_sorry = 16,naive = 50).Breakdown par déclaration via
scan_filedu même instrument (compte exact = 4+2+2 = 8 ✓) :Conway.leanIsSmoothlySlice,IsTopologicallySlice(définitions),conway_not_smoothly_slice,conway_topologically_slice(bornes) —conway_trivial_alexander/KT_trivial_alexanderDISCHARGED (#14821)Invariant.leanKnot.unknottingNumberpar sInf #15082)Lidman.leanunknotting_11n102_upper,unknotting_11n102Reidemeister.leanreidemeister_theorem×2Le défaut exact décrit par l'issue : le total avait été mis à jour (14 → 8) mais le breakdown per-file n'avait pas été re-mesuré avec lui — Conway 6→4 et Invariant 3→0 n'avaient pas été répercutés.
La coupe de dérive (suggestion Hermes, reprise par l'acceptance)
Le bloc devient un instantané daté : en-tête « la commande fait foi, ce commentaire est un instantané daté, pas une source : re-mesurer plutôt que maintenir — un bloc dérivé à la main se re-périme, motif #15598 ». Le récit par déclaration d'
Invariant.lean(20 lignes décrivant des sorry disparus) est remplacé par un renvoi versknot_lean/README.md§sorry, qui le porte déjà à jour. La clause « synchronisation portée par la PR finale du split » est remplacée par l'état réel : split #14821 terminé (CLOSED), synchronisation à jour au 2026-09-19.Cases d'acceptance — état mesuré (vérifiées firsthand avant d'écrire)
Invariant.leanécrite avec la PR productrice — déjà surmain:knot_lean/README.md(« 0 dans Invariant.lean,Knot.unknottingNumberDISCHARGÉ par feat(lean,#14992): define unknotting number by sInf #15082 viaNat.sInf… ») ; cette PR l'écrit aussi dans le workflow.main:SymbolicAI/Lean/LEAN_INVENTORY.mdl.30 porte8(mesuré 2026-09-14), table README = Conway 4 / Invariant 0 / total 8 avec commande citée.Anti-régression
Aucune preuve, aucun
*.leantouché : commente uniquement.deletions > insertions= condensation d'un commentaire narratif périmé, pas du code métier.🤖 Generated with Claude Code