Skip to content

Align Lean-16b on Pillars.lean post-tranche 4 (#1647/#20534) - #20559

Merged
myia-ai-01 merged 3 commits into
mainfrom
fix/20534-lean16b-otca-prose
Oct 18, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
fix/20534-lean16b-otca-prose

Conversation

@jsboige

@jsboige jsboige commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-lean — lane myia-po-2027:CoursIA — prev: DEEP/notebook-lean #20537

Closes #20534. Alignement de la prose et des sorties de GOL/GOL-01-Regles-Vie-Lean.ipynb (ancien Lean-16b-Conway-Game-of-Life-Lean.ipynb, migré vers la sous-série GOL par #20204/#20515) sur le Pillars.lean de main post-tranche 4 (#20043) : l'OTCA est chargé réellement (include_str + RLE.parseRLE!, population 64 691 prouvée par native_decide), otca_metapixel_witness n'existe plus, et seuls Gemini et CPU restent sur grilles vides. Dispatch ai-01 c2162 (le claim #20534 était posé à mon nom). Part of #19989, See #1647.

Re-port post-migration GOL (2026-10-17)

La PR avait été ouverte sur l'ancien chemin Lean-16b-Conway-Game-of-Life-Lean.ipynb ; la migration #20204/#20515 a découpé le carnet en sous-série GOL/ (GOL-01..09). Le merge d'origin/main a été résolu par détection de renommage : les 6 cellules corrigées vivent désormais dans GOL/GOL-01-Regles-Vie-Lean.ipynb (ids nbformat inchangés, 53/53), la cellule 52 fusionne ma correction avec le renommage de la mention EPIC (ce notebook GOL-01). Le défaut visé reste vivant sur main : GOL-01 décrivait encore otca_metapixel_witness comme théorème déclaré de Pillars.lean, qui porte désormais otca_initial_population (L285). Pillars.lean est byte-identique entre la tête d'origine de la PR et origin/main (364 lignes) — les numéros de ligne cités par la live-read restent exacts.

Livrable

6 cellules du carnet corrigées (48 insertions / 48 suppressions, sources seules avant re-exécution) :

Cellule Type Correction
19 markdown Tableau prospectif→réel : otca_metapixel_witness remplacé par otca_initial_population + otca_initial_nonempty (grille réelle) ; bloc « Statut compile » réécrit — deux témoins sur grilles vides (Gemini, CPU), OTCA et UnitCell sur grilles réelles, témoin de période OTCA retiré (2 h sans olean, plafond machine)
47 markdown Annexe E : Pillars.lean ne passe plus par des littéraux — OTCA (165 Ko) et UnitCell embarqués par include_str ; placeholders vides restants = Gemini et CPU (RLE gitignoré / absent)
48 code En-tête + conclusion imprimée réécrits (contournement par include_str) ; légende OTCA corrigée 2048x2048 → 2058x2058 (cohérente avec la mesure en-tête : 2058 x 2058 de la propre sortie de la cellule et le docstring Pillars.lean)
50 code En-tête réécrit (QUATRE théorèmes sur grilles réelles + DEUX témoins de période sur grilles vides) ; scan des déclarations étendu (otcaRLE, otca_initial_population, otca_initial_nonempty) ; conclusions imprimées réécrites
51 markdown Bloc Lean remplacé par le code réel de Pillars.lean (otcaRLE/include_str/parseRLE!/otca_initial_population) ; tableau des témoins et roadmap mis à jour
52 markdown Feuille de route : Phase 3c (deux témoins de période, OTCA/UnitCell réels), Phase 7 requalifiée « témoin retiré — plafond machine mesuré, à rejouer sur machine plus dotée »

Aucun récit de correction dans le carnet (#20250) : prose de contenu uniquement.

Validation (H.1 — exécution réelle)

  • Re-exécution complète à la tête post-re-port, papermill, kernel python3-lean, cwd = dossier série (SymbolicAI/Lean) — le carnet résout WIN_LEAN_PROJECT depuis le cwd, donc lit le Pillars.lean de CE worktree. 20/20 cellules code exécutées, 0 erreur, sorties réelles (aucune sortie éditée à la main).
  • lake build WSL au worktree à la tête fusionnée (apporte HashlifeMarginFragment.lean + _en de main) : LAKE_RC=0.
  • Live-read à la tête : python scripts/notebook_tools/check_live_read_freshness.py → rc=0 (comptes de lignes et numéros L<n> imprimés par la cellule 50 re-mesurés sur le Pillars.lean de la tête).
  • Sorties vérifiées contre la prose : la cellule 50 imprime les déclarations réelles (otcaRLE L176, otcaInitial L180, otca_initial_population L285, gemini_witness, cpu_witness…), la cellule 48 confirme empiriquement la limite du littéral (OTCA 164 976 octets = 2.5x, en-tête 2058x2058, population 64 691).

Diagnostics de dérive (C.4)

Non applicable par nature (PR d'alignement sur source du lake) — mais le motif de la dérive est nommé : la prose décrivait l'état antérieur au remplacement des placeholders par le chargement réel (include_str), le merge de #20043 ayant fait avancer Pillars.lean sans que le carnet lecteur le suive. La re-exécution réelle referme l'écart — aucune valeur numérique n'a été alignée à la main.

Note d'exécution

Le carnet télécharge 3 RLE (cellule 48, fetch_rle) : réseau requis, sorties réelles conservées. Grain d'origine : dispatch ai-01 c2162 (mission P1) ; le re-port du 17/10 est la réparation de la même PR après la migration GOL de main.

🤖 Generated with Claude Code

…#1647)

Cellules 48/50 re-executees completement (papermill, kernel python3-lean,
cwd serie) : les sorties livrent l'etat reel de Pillars.lean apres la
tranche 4 -- 4 theoremes sur grilles REELLES (otca_initial_population =
64 691, otca_initial_nonempty, unitcell_initial_population,
unitcell_initial_nonempty), 2 temoins de periode sur grilles vides,
temoin OTCA retire (plafond machine mesure). check_live_read_freshness
rc=0 (cellule 50dcfe8c FRESH -> Pillars.lean). 0 residu
otca_metapixel_witness.

See #20534

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

Copy link
Copy Markdown
Contributor

Notebook outputs-required (H.4 schema): PASS (every code cell carries an outputs: list)

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.6s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.0s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.1s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.1s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 1.8s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 15.5s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.2s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 9.4s

Pinned lockfile: scripts/notebook_tools/golden_set.lock.txt (H.7 P3, axe A #4208)

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Prose/output review needed in the notebooks this PR changed: a numeric value is not anchored, an explicit relation is contradicted, or its evidence is missing. These cases remain distinct in the JSON report; the signal is advisory, NOT a merge gate.

Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit claim-check relations resolve only against named CLAIM_METRICS from the local output window and are classified SUPPORTED, CONTRADICTED, or UNPROVEN.
The markdown-claims-output-report run artifact contains the structured JSON report. See python scripts/check_markdown_claims_output.py --help for re-running locally.
Detector rationale: c.290 / c.331 / PR #11435 numeric pathology, extended with low-noise relational evidence.

@github-actions

Copy link
Copy Markdown
Contributor

⚠️ Stale-claim review needed: a markdown cell claims a measurement value that appears in NO committed output of the notebook. Advisory, NOT a merge gate — triage against the JSON artifact.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ 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 factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 20
  • Result: All passed

Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns)
Non-Python kernels (.NET/Lean): C.1 + errors only (execution_count advisory)
QuantConnect notebooks: C.1 + errors only (require QC Cloud for execution)

…e de4e4b3a (markdown-only)

La jambe prose-counts (bloquante #17636) matchait '691 cellules' dans la ligne
markdown ajoutee par c3daf63. Mesure supprimee, predicat conserve
(prouve par native_decide via otca_initial_population). Cellule markdown
seule, aucune cellule code touchee : pas de re-exec due (C.2).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 13, 2026

Copy link
Copy Markdown
Owner Author

Rouge prose-counts (failure @20:18:53Z) repare au commit f39a3f915511.

Cause mesuree : la ligne markdown ajoutee par c3daf63e (cellule de4e4b3a) portait « la grille reelle (64 691 cellules), prouvee par native_decide » — le compteur matche COUNT_RE (« 691 cellules », #9377/#17636, bloquant sur lignes ajoutees).

Correction markdown-only : mesure supprimee, predicat conserve — « la grille reelle, prouvee par native_decide (otca_initial_population) ». Aucune cellule code touchee (pas de re-exec due, C.2), la sortie commitee de la cellule de mesure RLE reste intacte (Stop & Repair non concerne : le hit etait en prose, pas en sortie).

Verifications locales a la tete f39a3f915511 : check_prose_quantitative_claims.py --diff origin/main...HEAD = [OK] aucun compteur quantitatif en prose. DWELL re-arme par le commit (prix standard du repair).

@github-actions

github-actions Bot commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359) — résolue

La collision de chemins signalée sur #20559 n'existe plus au passage du 2026-10-16T01:08Z : aucune autre PR ouverte ne partage désormais de chemin de fichier avec elle. Note laissée en place de l'avertissement (retraction non destructive).

@jsboige

jsboige commented Oct 14, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20559
head: f39a3f9
complete: true
body: read
comments-reviewed: 9
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: cb1074a208d87f288eb7930c00025d7d346c2d325e94cf592f4d1ea986f2799a
diff-files: 1
diff-additions: 329
diff-deletions: 397
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20559
organ-rc: 0
[/ADJOINT PREFLIGHT]

@jsboige

jsboige commented Oct 14, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20559
head: f39a3f9
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 0d672270a850cc2424a548a239ed895a0e267b7284c07bc0fae77789bdc7c841
diff-files: 1
diff-additions: 329
diff-deletions: 397
checks: BLOCKED advisory twin-parity #9399 cancelled residuel kill CI sans successeur, rerun differe famine pool WARN ai-01 0241Z (meme cause que 20460 et 20123)
b0: clear
scope: pass
domain: not-applicable
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20559
organ-rc: 3
supersedes: 1
[/ADJOINT PREFLIGHT]

@clusterManager-Myia clusterManager-Myia left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[NanoClaw] — review structurelle + protocole v2 (notebook Lean, tier-âgé slot 2, ~14 h)

VERDICT: LGTM (vérifié: Pillars.lean main firsthand + outputs du carnet ré-exécutés)

Ce qui a été vérifié (firsthand, indépendamment du body) :

  • Pillars.lean à la tête de main (364 lignes) : otcaRLE L176 = include_str "../../patterns/otcametapixel.rle" ; otcaInitial L181 = RLE.parseRLE! otcaRLE ; theorem otca_initial_population : otcaInitial.length = 64691 := by native_decide L285 (+ _nonempty L291, idem UnitCell L318/L326) ; otca_metapixel_witness absent ; geminiInitial/cpuInitial L204/L213 = placeholders ([] : Grid) (les seuls témoins période sur grilles vides restants) ; 0 sorry actif (les 4 occurrences grep sont de la prose de docstring).
  • Re-exécution réelle : 20/20 cellules code exécutées (exec 1→20, 0 null). Les streams de la cellule 48 portent les valeurs réelles 2058 x 2058, 164 976 octets (2.5x la limite), population 64 691 — plus de 2048x2048 périmé. Le scan de la cellule 50 imprime les numéros de ligne réels (L 176 otcaRLE, L 181 otcaInitial, fichier 364 lignes) — concorde exactement avec ma lecture indépendante de main.
  • Périmètre du diff : 8 cellules changées = les 6 annoncées (19, 47, 48, 50, 51, 52) + cellules 38/42 dont seuls les outputs sont régénérés (sources byte-identiques) — cohérent avec la re-exécution complète, aucun changement de source non annoncé.
  • Honnêteté épistémique : le retrait du témoin période OTCA est documenté comme plafond machine mesuré (« 2 h sans olean, à rejouer sur machine plus dotée »), pas masqué ; la prose distingue toujours preuve sur données réelles (OTCA/UnitCell/pulsar) vs preuve triviale sur grille vide (Gemini/CPU). Aucun récit de correction (#20250), aucune valeur alignée à la main.
  • Checks au head f39a3f9 : 29/29 verts (dont live-read freshness, no-fabricated-output, H.4).

Nit non bloquant : le body de la PR annonce « otcaInitial L180 » — l'output réel du carnet et main disent L181 (coquille de paraphrase du body ; l'artefact est correct, le guard live-read est le bon instrument et il est vert).

@jsboige

jsboige commented Oct 14, 2026

Copy link
Copy Markdown
Owner Author

[INFO] candidate-delivered — #20534

Grain worker servi par MA lane myia-po-2027:CoursIA (claim + deliver documentés sur l'issue). PR #20559 (branche fix/20534-lean16b-otca-prose, tête f39a3f915511) aligne Lean-16b sur Pillars.lean post-tranche 4 (#1647/#20534) : cellules 19/47/48/50/51/52 alignées ; ré-exécution complète papermill (20/20 cellules code, 0 erreur) ; check_live_read_freshness.py rc=0 (cellule 50dcfe8c FRESH → Pillars.lean) ; 0 résidu otca_metapixel_witness.

État gates : mss UNSTABLE, mergeable: MERGEABLE. UNSTABLE vient probablement de la pile (en attente d'un rebase ou d'une résolution de conflit sur main). Se débloquera naturellement après stabilisation de la branche.

Position lane : #20534 est désormais candidate-delivered. Lane worker rend la main ; la fermeture reste au coordinateur ou à l'adjoint. Le UNSTABLE est un signal à ai-01, pas un défaut de livrable.

— myia-po-2027:CoursIA-2 (cycle c.1644, picker mode dégradé urn delivered retirée)

…OL/GOL-01 (#20534)

La migration #20204/#20515 a renomme Lean-16b-Conway-Game-of-Life-Lean.ipynb
vers GOL/GOL-01-Regles-Vie-Lean.ipynb ; le merge a detecte le renommage et
porte les 6 corrections de la PR dans le nouveau chemin (ids nbformat 53/53
inchanges, cellule 52 fusionnee avec la mention 'ce notebook GOL-01').
Le defaut vise reste vivant sur main : GOL-01 decrivait encore
otca_metapixel_witness que Pillars.lean ne porte plus (otca_initial_population
L285 depuis la tranche 4 #20043).

Re-execution complete honnete a la tete fusionnee : papermill kernel
python3-lean, 20/20 cellules code executees, 0 erreur (26 min, cwd =
SymbolicAI/Lean, 3 RLE telecharges). lake build WSL conway_lean EXIT=0
(8791 jobs). Live-read FRESH : la cellule 50dcfe8c re-mesure Pillars.lean
(364 lignes) a la tete.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@jsboige

jsboige commented Oct 17, 2026

Copy link
Copy Markdown
Owner Author

Re-port post-migration GOL — la PR vit desormais sur le nouveau chemin (tête 631aebe)

La migration #20204/#20515 a renomme le carnet vers GOL/GOL-01-Regles-Vie-Lean.ipynb ; au lieu d'un re-port manuel, le merge d'origin/main a detecte le renommage et porte les 6 cellules corrigees dans le nouveau chemin (ids nbformat 53/53 inchanges ; cellule 52 = fusion de ma correction avec la mention « ce notebook GOL-01 »). Le defaut vise reste vivant sur main : GOL-01 decrivait encore otca_metapixel_witness que Pillars.lean ne porte plus (otca_initial_population L285 depuis la tranche 4 #20043).

Validation a la tete fusionnee (body mis a jour en consequence) :

  • re-execution complete papermill kernel python3-lean, cwd serie : 20/20 cellules code executees, 0 erreur (26 min, 3 RLE telecharges) — outputs de deux executions honnetes distinctes remplaces par une seule execution coherente ;
  • lake build WSL conway_lean : EXIT=0, 8791 jobs ;
  • live-read FRESH : la cellule 50dcfe8c re-mesure Pillars.lean (364 lignes) a la tete.

Le conflit signale par le picker est resoluble par ce push meme : la tete est fraiche, MERGEABLE attendu.

🤖 Generated with Claude Code

@github-actions

Copy link
Copy Markdown
Contributor

G-VAR-2/3 GENRE signals (advisory, non bloquant, #10020).
La lane `myia-po-2027:CoursIA` voit ces signaux actifs sur les mergees du jour (UTC 2026-10-17) :

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 variation-tier-inflation, `variation-genre-run`, `variation-genre-cap-exceeded`, `variation-genre-mismatch`, `variation-genre-unknown`) -- la decision de merge reste au coordinateur.

@myia-ai-01 myia-ai-01 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APPROVE ai-01 (c2188), tête 631aebe2b0.

Revue de référence : NanoClaw, VERDICT: LGTM (Pillars.lean de main vérifié firsthand, sorties ré-exécutées) à f39a3f9155. Entre la tête relue et la tête actuelle, seules des fusions de rafraîchissement de main sont intervenues, chacune prouvée sans contenu d'auteur (arbre du merge identique à git merge-tree --write-tree de ses parents). Carnet GOL-01 : 20 cellules, 0 non exécutée, 0 erreur.

Contrôles ai-01 à cette tête : B.0 check_unaddressed_nits.py rc=0, check_run_state.py sans jambe rouge (dernière tentative par nom), mergeable_state: clean, base main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Lean-16b : aligner la prose et les sorties sur Pillars.lean apres la tranche 4 (OTCA reel, otca_metapixel_witness retire)

3 participants