Skip to content

feat(gametheory,#19227): T12 tranche 3 -- bornes de taille de programme publiees dans 20e - #19970

Merged
myia-ai-01 merged 1 commit into
mainfrom
feat/19227-tranche3-bounds-notebook
Oct 9, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feat/19227-tranche3-bounds-notebook

Conversation

@jsboige

@jsboige jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python -- lane myia-po-2026:CoursIA-2 -- prev: DEEP/notebook-python #19959

T12 tranche 3 (#19227) — les bornes de taille de programme sont publiées

Closes #19227. Part of #18446. Voir #13483 (EPIC parent). Voir #19228 (instrument tranche 3, MERGED).

Ce qui manquait

L'issue #19227 porte quatre critères d'acceptance ; la PR #19228 (MERGED 2026-10-05) en a livré un seul.

Critère État avant cette PR
k_trajectory.py étendu avec un mode bounds LIVRÉ (#19228)
Une section dans GameTheory-20e (ou un carnet 20f) portant les bornes inférieures par témoin absent — le mode existait, aucun résultat n'était publié
Verdict final falsifiable posé explicitement absent du carnet
Cite #18446 + #13483 livré au body de #19228

Le carnet restait sur 15 cellules et sa Conclusion affirmait encore « Elle ne livre pas de tranche 3 ».

Ce que la PR livre

Section 7 — Bornes de taille de programme (tranche 3, #19227), trois cellules insérées avant la Conclusion :

  • une cellule markdown nommant les trois quantités : K_min(t) = K(t, W_last), K_first(t) = K(t, W=1), ratio = K_min / K_first ;
  • une cellule code qui importe scripts/hashlife/k_trajectory.py et appelle compute_bounds / final_verdict sur les résultats tranche 1 déjà chargés en section 1 — aucune mesure n'est rejouée, les bornes sont dérivées ;
  • une cellule de lecture qui interprète le tableau et porte le verdict final.

Résultat mesuré (sortie committée) :

Bloc Témoins ratio K_min/K_first
Programmes périodiques otca_static, blinker_T2, pulsar_T3, glider_T4 0.077 à 0.154
Soupes soup_d05_seed123, soup_d03_seed42, soup_d05_seed777 0.759 à 0.784

Verdict final T12 : NON-VERIFIEE (limites de K_trajectory documentees tranche 2). La frontière entre les deux blocs est nette sur ce corpus (0.154 < 0.759), mais aucun témoin ne franchit PROGRAM-AUTO-ENTRETIEN — le résidu est le corpus Turing-complet, pas l'instrument.

La cellule de lecture déclare aussi la limite de son propre contrôle : K_min est la borne de la fenêtre la plus large disponible (W_last = 16), pas la limite asymptotique ; les valeurs absolues ne se comparent donc qu'entre témoins du même corpus.

Conclusion renommée en section 8 et corrigée : elle affirmait ne pas livrer de tranche 3, ce qui n'est plus vrai.

Tier déclaré — re-qualifiable

DEEP/notebook-python : main gagne un résultat de recherche falsifiable (bornes par témoin + verdict explicite) qui n'y existait pas — le mode bounds était livré, son résultat n'était publié nulle part. Le critère d'acceptance que cette PR ferme est un livrable de contenu, pas un garde ni un outil. Si le coordinateur juge la production de ce résultat déjà couverte par #19228 et cette PR de simple mise en forme, MED/notebook-python est la re-qualification correcte — le tag est déclaré ici pour que la décision se prenne sur pièce.

Vérification

  • Exécution : notebook_tools.py execute (kernel python3, cwd = racine du dépôt), SUCCESS en 6.1 s ; execution_count 1→5 strictement croissant, 0 erreur, cellule d'exercice inchangée.
  • Gates locales sur le commit : exec-sequence CLEAN (1..N) · exec-ratchet 0 régression (CLEAN->CLEAN) · papermill ratchet 0 régression (BLOCK_MOVED — les sorties et le bloc ont bougé ensemble) · output-failure 0 régression · output-collapse 0 flagged · source-collapse 0 flagged · interp-positioning 0 finding · duplicate-sections 0 finding · prose-counts aucun compteur quantitatif.
  • Hygiène : metadata.papermill scrubbé au basename ; scan machine-path 0 fuite ; _output.ipynb non committé ; hooks pre-commit verts.
  • Périmètre : 1 fichier modifié (git diff --stat origin/main...HEAD).

🤖 Generated with Claude Code

…me publiees

La tranche 3 de T12 (#19227, fille de #18446, EPIC #13483) avait livre son
instrument (PR #19228 : `k_trajectory.py --mode bounds`) sans publier son
resultat : l'acceptance demandait une section portant les bornes inferieures
pour chaque temoin admis, et le verdict final explicite.

Section 7 ajoutee a GameTheory-20e, alimentee par le mode `bounds` de
l'instrument importe sur les resultats tranche 1 deja charges (aucune mesure
rejouee). Resultat : les programmes periodiques bornent a 0.077-0.154 du flux
brut (LZ compresse la periode courte d'un facteur 6 a 13), les soupes a
0.759-0.784 ; verdict final `NON-VERIFIEE`.

La Conclusion (desormais section 8) affirmait encore « ne livre pas de
tranche 3 » : corrigee, le residu est le corpus Turing-complet, pas
l'instrument.

Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 8, 2026

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 8, 2026

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 github-actions Bot added the variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) label Oct 8, 2026
@github-actions

github-actions Bot commented Oct 8, 2026

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

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

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

github-actions Bot commented Oct 8, 2026

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

github-actions Bot commented Oct 8, 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.6s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 3.9s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.7s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 4.5s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 17.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.3s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 10.8s

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

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 5
  • 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)

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19970 (feat(gametheory,#19227): T12 tranche 3 -- bornes de taille de programme publiees dans 20e) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@jsboige

jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 19970
head: ae4e8da
complete: true
body: read
comments-reviewed: 8
reviews-reviewed: 0
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 747b4abe1e03ceb7538874928a9657ba24a66face62a969b5ff73a12e80ff77e
diff-files: 1
diff-additions: 316
diff-deletions: 69
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 19970
organ-rc: 0
[/ADJOINT PREFLIGHT]

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

Labels

variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

T12 tranche 3 (#18446): bornes de taille de programme + verdict final

3 participants