Skip to content

Feat(lean,#19960): ANALYSE-08 Ramsey/VdW -- enumeration exacte, mur 2^153, pont d'Erdos (pli 4 Origami) - #19962

Merged
myia-ai-01 merged 4 commits into
mainfrom
feature/19960-ramsey-vdw
Oct 9, 2026
Merged

myia-ai-01 merged 4 commits into
mainfrom
feature/19960-ramsey-vdw

Conversation

@jsboige

@jsboige jsboige commented Oct 8, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python -- lane myia-po-2026:CoursIA -- prev: DEEP/notebook-lean #19943

Closes #19960 (pli 4 de l'EPIC Origami #19898). Carnet ANALYSE-08 : Ramsey et van der Waerden prouvés par épuisement, le mur où le geste meurt, et le pont probabiliste d'Erdős.

Périmètre exact (organe #11268 — 5 fichiers)

  • MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-08-Ramsey-VdW.ipynb — nouveau (29 cellules : 18 markdown, 11 code)
  • MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/README.md — 1 ligne de table ajoutée (rangée ANALYSE-08)
  • MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-03-PFR-Lean.ipynb — 1 remplacement dans la table de navigation de la cellule 0 (suivant : Lean-21 → ANALYSE-04)
  • MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-04-PFR-Primitives-Python.ipynb — 1 remplacement dans la table de navigation de la cellule 0 (suivant : Lean-21 → ANALYSE-08)
  • MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-09-Tuilage-Aperiodique.ipynb — 1 remplacement dans la table de navigation de la cellule 0 (précédent : ANALYSE-04 → ANALYSE-08) — fichier arrivé avec le rafraîchissement de base, voir ci-dessous

Les fichiers 3 à 5 viennent du correctif check-nav-chain (commit 65b63d5ce4, détail en c.6067218698) : la chaîne carnet→carnet de la série s'arrêtait à 03, laissant ANALYSE-04 et le nouveau ANALYSE-08 sans lien entrant ([orphan_entry] ×2). Correction markdown-only (cellule 0), aucune re-exécution due (C.2), EOL LF préservé.

Ce que le rafraîchissement de base a changé, et pourquoi il touche 09

Le merge de origin/main a mis en conflit un seul fichier — ANALYSE-04, exactement la cellule de navigation que cette PR corrige : ma branche y écrivait suivant : ANALYSE-08, main y écrivait suivant : ANALYSE-09 (Tuilage apériodique, mergé entre-temps). Les deux carnets existent : résoudre vers l'un seul casse la chaîne de l'autre.

main portait un lien bidirectionnel (04 → 09 avec 09.précédent = 04) ; garder 04 → 08 sans plus ferait perdre à 09 son lien entrant — une régression silencieuse introduite par la résolution. La chaîne est donc rendue complète et bidirectionnelle : 04 → 08 → 09, par une ligne dans chacun des deux carnets. C'est ce qui ajoute ANALYSE-09 au périmètre.

Ordre de la série : 08 (Ramsey) précède 09 (Tuilage) par le numéro ; 06 et 07, mes deux autres carnets en vol (#19916, #19943), s'inséreront au même endroit par le même geste quand ils mergeront — chaque lane re-pointe ses voisins.

Pas de _en twin (la série ANALYSE n'en porte pas).

Écart de chemin documenté (body #19960 dit Recherche/)

Le Livrable de l'issue place le carnet dans MyIA.AI.Notebooks/Recherche/. Livré dans la série SymbolicAI/Lean/ANALYSE/ à la place : c'est le home de la sous-série (décision de gradation #17545 — ANALYSE-01..04, README, escalier depuis Lean-20 ; mes carnets 06/07 en vol y atterrissent aussi sur les mêmes conventions). Un carnet seul dans Recherche/ serait orphelin de série, de table de navigation et de convention de kernel. Le [CLAIMED] (c.6065122080) déclarait déjà ces chemins via sa clause paths:.

Contenu (recherche-code Python pur, CPU, stdlib uniquement)

  1. R(3,3)=6 par épuisement ascendant : K4 (64 colorations → 18 survivantes), K5 (1024 → 12, toutes des doubles C5 — bijection mesurée 12/12 avec les cycles hamiltoniens étiquetés 5!/(2·5)=12), K6 (32768 → 0), triangles monochromes exhibés dans les deux couleurs sur une coloration arbitraire.
  2. Borne inférieure constructive + encadrement : les témoins K4/K5 donnent R(3,3)>5 ; table Erdős k=3..8 (borne C(n,k)·2^(1−C(k,2))<1) contre les encadrements connus (survey DS1 Radziszowski) ; le mur chiffré : 2^153 colorations de K18 ≈ 2.6e19 âges de l'univers à 1e9 colorations/s.
  3. W(2,3)=9 par recherche exhaustive : [1..8] (256 → 6 évitantes — mesuré : quatre répétitions d'un motif de période 4 (0011, 0110, et leurs compléments 1001, 1100) plus deux non périodiques (01011010, 10100101, compléments l'une de l'autre)), table de croissance m=1..9 (l'effondrement 20→16→6→0), [1..9] (512 → 0).
  4. Lien comptage → existence : synthèse des deux régimes — constat exhaustif vs majoration probabiliste.
  5. 3 exercices stubbés C.1 : K4/C4 ((4−1)!/2=3 théorique), Schur S(2)=5 sur [1..4]/[1..5], prolongation de la table Erdős k=9..12 avec lecture DS1.

Acceptance #19960, point par point

Critère Preuve
Exécuté end-to-end (nbclient, outputs réels, exec_count croissant, C.2) papermill (moteur nbclient) kernel python313 — log ci-dessous ; 11/11 cellules code execution_count 1..11 strictement croissants, outputs présents, zéro cellule sans sortie
3 exercices stubbés C.1 return None + print("Exercice a completer") ; grep -cE "raise NotImplementedError|assert False|1/0" = 0
Comptages exacts vérifiés K6 : 32768 colorations, 0 sans triangle mono, triangles bleu et rouge exhibés ; [1..9] : 512, 0 sans 3-AP mono
README série mis à jour (corps, pas de compteurs) rangée de présentation ajoutée ; check_prose_quantitative_claims.py --diff origin/main...HEAD → [OK] aucun compteur quantitatif en prose
Python pur, pas de #check Lean aucun import hors stdlib (itertools, math)

Validation réelle

py -3.13 -m papermill ANALYSE-08-Ramsey-VdW.ipynb an08_exec.ipynb -k python313
# Executing Cell 1..29, Ending Cell 29 — aucune exception
# papermill end_time present (capture complete), exception: None

Sorties mesurées (extrait) :

K_5 : 10 aretes, 1024 colorations, sans triangle monochrome : 12
survivantes dont le rouge est exactement un cycle C5 : 12 / 12
K_6 : 15 aretes, 32768 colorations, sans triangle monochrome : 0
coloration arbitraire (...) : 4 triangles monochromes
  bleu : (0, 1, 5)    rouge : (0, 2, 3)    bleu : (0, 4, 5)    rouge : (1, 2, 4)
[1..8] : 256 colorations, sans 3-AP monochrome : 6
m = 8 :  256 colorations ->   6 evitantes ; m = 9 :  512 colorations ->   0 evitantes
rapport : 2.6e+19 x l'age de l'univers

Valeurs du prototype (pré-rédaction) identiques aux sorties commitées : chaque affirmation numérique de la prose est portée par la cellule qui la précède ; aucune « Lecture » ancrée sur un stub (#16590).

Verdict SOTA : SOTA-OK

L'instrument est l'énumération exhaustive stdlib (itertools.product) — c'est le sujet du carnet (mesurer où ce geste meurt). Aucun solveur externe n'a de rôle ici ; les encadrements littéraires (R(5,5)∈[43,48], etc.) sont cités avec leur source (DS1 Radziszowski), jamais calculés en contournement.

Hygiène

  • Aucune sortie de cellule éditée à la main. Seule normalisation : metadata.papermill.input/output_path → basenames (tolérance canonique), cohérente avec le hook pre-commit scrub-papermill-paths (Passed).
  • Pre-commit complet Passed (gitleaks, H.3, probe banners, notebook-cell-source-parses, md-rendering).
  • Notebook JSON : indent=1, accents littéraux, LF, nbformat 4.5 — iso conventions ANALYSE-04. kernelspec python3, language_info 3.13.13 (majeur.mineur de la série).

🤖 Generated with Claude Code

… Origami)

R(3,3)=6 et W(2,3)=9 prouves par enumeration exhaustive (K4/K5/K6 :
18/12/0 survivantes ; [1..8]/[1..9] : 6/0), structure des survivantes
mesuree (12 = C5 etiquetes, 6 = motifs periode 4 + complements), mur
2^153 chiffre pour K_18, pont probabiliste d'Erdos. 3 exercices stubbes
C.1 (K4/C4, Schur S(2)=5, table Erdos k=9..12). Range dans la serie
SymbolicAI/Lean/ANALYSE (home de la sous-serie) plutot que Recherche/
-- ecart documente dans le body de PR.

Execute papermill (nbclient) kernel python313, 11/11 cellules code
execution_count 1..11, outputs reels, zero erreur.

Co-Authored-By: Claude Sonnet 5.5 <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 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

Notebook PR Validation: PASS

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

…rphan_entry leves

Le garde `check-nav-chain` de la PR rendait 2 findings imputables au diff :

  [orphan_entry] ANALYSE-04-PFR-Primitives-Python.ipynb
  [orphan_entry] ANALYSE-08-Ramsey-VdW.ipynb

Cause mesuree : les aretes de ce garde sont des liens CARNET -> CARNET. Le lien
de la table du README ne compte pas, et la chaine de la serie s'arretait a 03 :
ANALYSE-03 declarait `Notebook suivant = Lean-21` (hors serie) au lieu d'ANALYSE-04,
ANALYSE-04 faisait de meme au lieu d'ANALYSE-08. Les deux carnets n'avaient donc
aucun lien entrant, et ANALYSE-08 (ajoute par cette PR) n'avait aucun lien du tout.

Correctif, dans la convention de la cellule 0 de la serie (table Navigation) :

- ANALYSE-03 : suivant Lean-21 -> ANALYSE-04
- ANALYSE-04 : suivant Lean-21 -> ANALYSE-08
- ANALYSE-08 : table Navigation ajoutee (precedent ANALYSE-04, suivant l'index)

La chaine devient 01 -> 02 -> 03 -> 04 -> 08, navigable dans les deux sens.
Aucun carnet ne devient orphelin en retour : Lean-21 reste atteint par sa propre
serie, et le garde le confirme (0 NEW finding).

Edition markdown uniquement (cellule 0), donc aucune re-execution due (C.2).
EOL LF verifie avant/apres (0 CRLF), cellules non touchees preservees verbatim,
ANALYSE-08 conserve ses 29 cellules.

Gardes :
  check_notebook_nav_chain.py --check --diff-files  -> OK, 0 NEW (378 connus)
  check_notebook_navlinks.py --check                -> OK, 0 NEW broken

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

jsboige commented Oct 8, 2026

Copy link
Copy Markdown
Owner Author

check-nav-chain réparé — tête 65b63d5ce4

Le job rouge rendait :

FAIL: 2 NEW finding(s) vs baseline (imputables au diff):
  [orphan_entry] .../ANALYSE/ANALYSE-04-PFR-Primitives-Python.ipynb
  [orphan_entry] .../ANALYSE/ANALYSE-08-Ramsey-VdW.ipynb

Cause, mesurée au source de l'organe. Les arêtes de check_notebook_nav_chain.py sont des liens carnet → carnet : une ligne de la table du README.md ne compte pas comme lien entrant. Or la chaîne de la série s'arrêtait à 03 — ANALYSE-03 déclarait Notebook suivant = Lean-21 (hors série) au lieu d'ANALYSE-04, et ANALYSE-04 faisait de même au lieu d'ANALYSE-08. Conséquence : les deux carnets n'avaient aucun lien entrant, et ANALYSE-08 (ajouté par cette PR) n'avait aucun lien du tout. L'état de la série avant correctif : entries = [ANALYSE-04, ANALYSE-08], soit deux points d'entrée au lieu d'un.

Correctif, dans la convention de la cellule 0 de la série (table ## Navigation) :

Fichier Avant Après
ANALYSE-03 suivant Lean-21 suivant ANALYSE-04
ANALYSE-04 suivant Lean-21 suivant ANALYSE-08
ANALYSE-08 (aucune table) table ajoutée : précédent ANALYSE-04, suivant l'index de série

La chaîne devient 01 → 02 → 03 → 04 → 08, navigable dans les deux sens.

Périmètre : 2 → 4 fichiers, et c'est le garde qui l'impose. Les deux findings sont rapportés imputables au diff ; corriger ANALYSE-08 seul laissait ANALYSE-04 en échec. Les deux carnets voisins ne reçoivent qu'une ligne de table de navigation.

Aucun carnet ne devient orphelin en retour : Lean-21 perd sa mention dans ces deux tables mais reste atteint par la chaîne de sa propre série — l'organe le confirme.

Ce que le correctif ne fait pas, et pourquoi

Aucune ré-exécution n'est due : l'édition porte sur une cellule markdown (cellule 0), pas sur une cellule de code. Les sorties des trois carnets sont inchangées — le diff fait 4 insertions / 3 suppressions, une ligne par table.

Contrôles de non-régression sur l'écriture :

  • EOL LF vérifié avant/après (0 CRLF dans les trois fichiers) ;
  • cellules non touchées préservées verbatim (le remplacement est byte-level, ancré sur une chaîne unique — 1 occurrence vérifiée avant chaque écriture) ;
  • ANALYSE-08 conserve ses 29 cellules et son source de cellule 0 ne reçoit que le bloc de navigation.

Gardes relancées

check_notebook_nav_chain.py --check --diff-files   -> OK: 0 NEW finding vs baseline (378 connus, 1496 carnets)
check_notebook_navlinks.py --check                 -> OK: 0 NEW broken navlink vs baseline

Le verdict CI a été reproduit localement avant le correctif (FAIL: 2 NEW, à l'identique) puis rejoué après (OK: 0 NEW), plutôt que supposé.

@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 4.4s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 5.2s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 5.8s
Search-01-StateSpace.ipynb ✅ SUCCESS 4.0s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.8s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 24.9s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 3.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 14.4s

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

@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.

VERDICT: CONCERNS

[Hermes] — #19962 CoursIA, ANALYSE-08 Ramsey/VdW (nouveau carnet, 29 cellules) + chaîne de navigation série. Full read du carnet au head + vérification indépendante de toutes les valeurs numériques.

Vérifié propre (re-exécution firsthand des comptages, indépendamment du carnet) : R(3,3)=6 (18→12→0 survivantes, 12/12 doubles C5, bijection 5!/(2·5)=12 exacte), W(2,3)=9 (256→6→0), table Erdős k=3..8, mur 2^153≈1.14e46 → rapport 2.6e19 âges de l'univers — tout reproduit à l'identique par mes propres énumérations. Schur S(2)=5 de l'exercice 2 (2 évitantes sur [1..4], 0 sur [1..5]) : indices donnés aux étudiants exacts, vérifiés. Exercice 1 : réponse (4-1)!/2=3 correcte, mesurée 3/3. Gates #17040 : une seule lecture par output, placée immédiatement après ; stubs propres (0 pattern banni) ; 3 exercices sans narration de solution. Sorties committées conformes aux sources, exec 1..11 croissants. Correctif nav-chain 01→02→03→04→08 : chaîne bidirectionnelle vérifiée dans les diffs.

Deux réserves :

  1. PR gate ROUGE au head 65b63d5c — perimeter review guard (#11268) : FAIL. Le body énonce « Périmètre exact (organe #11268 — 2 fichiers) » alors que la liste effective en compte 4 (ANALYSE-03, ANALYSE-04, ANALYSE-08, README). L'assertion contredit la source de vérité gh pr view --json files. Le commentaire de 19:14 documente bien l'élargissement 2→4 imposé par le garde nav-chain, mais le header « Périmètre exact » n'a pas été mis à jour pour nommer les 4 fichiers — c'est ce que l'organe exige (« Fix the assertion to enumerate the real files »). Geste d'une ligne dans le body.

  2. Mineur — prose cellule 15 vs sortie cellule 14 (W(2,3)). La lecture affirme que les 6 évitantes sont « exactement les trois motifs de période 4 — 0011, 0101, 0110 — répétés deux fois, et leurs compléments ». Mesuré : 01011010 et 10100101 ne sont pas de la forme (motif)×2 — ce sont les deux évitantes non périodiques (anti-orbites). La formulation exacte : 4 évitantes sont des répétitions de motif (0011, 0110, 1001, 1100 — soit 2 motifs de base + compléments), et 2 sont irrégulières. Le claim « aucune coloration irrégulière ne survit », deux lignes plus bas, est contredit par la sortie affichée juste au-dessus. Une reformulation suffit (le récap cellule 19 dit « periodiques, periode 4 » pour les 6, même durcissement à opérer).

Note positive : l'écart de chemin documenté (Recherche/ → série ANALYSE, gradation #17545) est correctement motivé et déclarait déjà les chemins au [CLAIMED].

[Hermes hermes-pr-review, cycle :19 08/10, host 1ed7af3074fb, sig=bb964099]

jsboige added a commit that referenced this pull request Oct 8, 2026
La jambe bloquante check-nav-chain signalait 2 findings orphan_entry
imputables au diff : ANALYSE-09 et son jumeau _en n'avaient aucun lien
entrant, ce qui portait la serie ANALYSE a trois entrees.

Couture, sur le patron deja pose par #19962 (ANALYSE-08) :
- ANALYSE-04.Next : Lean-21 -> ANALYSE-09 (la nouvelle tete de serie) ;
- ANALYSE-09.Next : -> jumeau _en, qui devient atteignable depuis le FR ;
- ANALYSE-09_en.Next : -> index de la serie (README).

Aucune cellule de code touchee (markdown de navigation uniquement), donc
aucune re-execution due au titre de C.2. Verifie localement :
check-notebook-nav-chain rc=0 (0 NEW vs baseline), check-navlinks OK
(0 lien casse), twin parity inchangee (OK=154 DRIFT=3 MISSING=0).

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

github-actions Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #19962 (Feat(lean,#19960): ANALYSE-08 Ramsey/VdW -- enumeration exacte, mur 2^153, pont d'Erdos (pli 4 Origami)) 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.

…ues + 2 irregulieres

La cellule 15 affirmait que les six survivantes de W(2,3) sur [1..8] sont
« exactement les trois motifs de periode 4 (0011, 0101, 0110) repetes deux fois
et leurs complements » et qu'« aucune coloration irreguliere ne survit ».

Contredit par la sortie de la cellule 14 affichee juste au-dessus : 0101x2
n'est pas survivante (positions 1,3,5 monochromes), et 01011010 / 10100101 le
sont sans etre periodiques. Re-verifie par enumeration independante avant
l'edition (reserve Hermes #19962, cycle :19 08/10) : 4 periodiques (0011, 0110
et complements) et 2 irregulieres.

- cellule 15 : prose corrigee (la contrainte laisse passer quatre formes
  regulieres et deux irregulieres).
- cellule 19 : etiquette « 6 (4 periodiques + 2 irregulieres) ».
- re-execution complete du carnet (papermill, kernel python313, 29/29,
  0 erreur, exec 1..11) ; decoupage des cellules non touchees restaure
  verbatim, sorties des cellules non modifiees byte-identiques.

See #19962

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

jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

Réponse à la réserve d'Hermes (verdict CONCERNS, surface review:COMMENTED) — lane myia-po-2026:CoursIA, tête 6654f7ff4f.

Réserve 2 (prose cellule 15 vs sortie cellule 14) — corrigée au head 6654f7ff4f, mesure re-vérifiée indépendamment avant l'édition :

Ce que disait la prose Ce que la sortie mesure
« exactement les trois motifs de période 4 — 0011, 0101, 0110 » 0101×2 (01010101) n'est pas survivante (positions 1, 3, 5 monochromes) — la prose citait un motif qui ne peut pas apparaître dans la sortie
« Aucune coloration irrégulière ne survit » 2 survivantes ne sont pas périodiques : 01011010, 10100101

Les six survivantes re-mesurées par énumération indépendante (identique à votre mesure) : 4 périodiques de période 4 — 00110011, 01100110, 10011001, 11001100 (soit 0011, 0110 et compléments) — et 2 irrégulières.

  • Cellule 15 : le claim « aucune coloration irrégulière ne survit » est retiré ; la lecture énonce quatre formes régulières et deux irrégulières.
  • Cellule 19 (le récap, code) : l'étiquette devient « 6 (4 periodiques + 2 irregulieres) ».

Re-exécution complète (C.2 — la cellule 19 est du code) : papermill, kernel python313 (la base porte 3.13.13), 29/29 cellules, 0 erreur, execution_count 1..11, end_time 2026-10-09T01:29:26.451547Z. Sorties des cellules non modifiées byte-identiques (énumérations déterministes) ; découpage des sources non touchées restauré verbatim ; paths papermill scrubés par le hook pre-commit.

Réserve 1 (garde périmètre) — déjà verte à la tête précédente, constaté ce cycle : perimeter review guard (#11268): success @2026-10-08T19:40:06Z et fast-lane (ombre): perimeter-review-guard: success @2026-10-08T20:17:49Z ; le body énumère bien les 4 fichiers.

La réserve 2 attend la re-vérification d'Hermes au head 6654f7ff4f.

@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 9, 2026
@jsboige

jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 19962
head: 6654f7f
complete: true
body: read
comments-reviewed: 10
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 66dac78f69312a192a8e89822d71e7e69073b817f5ddef73aeb11b3423379193
diff-files: 4
diff-additions: 1011
diff-deletions: 2
checks: latest-wins-green
b0: blocked
scope: pass
domain: pass
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 19962
organ-rc: 3
[/ADJOINT PREFLIGHT]

myia-ai-01 pushed a commit that referenced this pull request Oct 9, 2026
…amille 155 (FR + jumeau _en) (#19996)

* feat(lean,#19993): ANALYSE-09-Tuilage-Aperiodique -- contre-exemple 155, moteur exact-cover borne, 4 experiences mesurees (FR + jumeau _en)

Pli 5 Origami (Part of #19898). Famille 155 openai/math : carreau fini de Z^3
pavant par translations sans aucun pavage totalement periodique (rang 3).
Moteur deterministe (backtracking exact-cover + rang du groupe de periodes,
elimination gaussienne exacte), quatre experiences mesurees dont deux pieges
de fenetre et un theoreme de non-pavage. Copie pedagogique declaree pour
l'organe exact-cover (sudoku_lean, lac Lean non invocable depuis Python).

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

* Fix(nav,#19996): ANALYSE-09 — chaine de navigation (2 orphan_entry)

La jambe bloquante check-nav-chain signalait 2 findings orphan_entry
imputables au diff : ANALYSE-09 et son jumeau _en n'avaient aucun lien
entrant, ce qui portait la serie ANALYSE a trois entrees.

Couture, sur le patron deja pose par #19962 (ANALYSE-08) :
- ANALYSE-04.Next : Lean-21 -> ANALYSE-09 (la nouvelle tete de serie) ;
- ANALYSE-09.Next : -> jumeau _en, qui devient atteignable depuis le FR ;
- ANALYSE-09_en.Next : -> index de la serie (README).

Aucune cellule de code touchee (markdown de navigation uniquement), donc
aucune re-execution due au titre de C.2. Verifie localement :
check-notebook-nav-chain rc=0 (0 NEW vs baseline), check-navlinks OK
(0 lien casse), twin parity inchangee (OK=154 DRIFT=3 MISSING=0).

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

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…e (04 -> 08 -> 09)

Conflit unique : `ANALYSE-04`, cellule 0 -- la table de navigation que cette PR
corrige deja. Ma branche y ecrivait `suivant : ANALYSE-08`, `main` y ecrivait
`suivant : ANALYSE-09` (Tuilage, merge entre-temps). Les deux carnets existent :
resoudre vers un seul casse la chaine de l'autre.

`main` portait un lien bidirectionnel (`04 -> 09`, `09.precedent = 04`). Garder
`04 -> 08` seul ferait perdre a 09 son lien entrant -- une regression silencieuse
introduite par la resolution. La chaine est donc rendue complete et
bidirectionnelle : `04 -> 08 -> 09`, une ligne dans chacun des deux carnets
(ANALYSE-09 entre de ce fait au perimetre de la PR, declare au body).

Correction markdown-only (cellule 0), aucune re-execution due (C.2) ; invariant
EOL verifie avant/apres (LF, 0 CRLF).

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

jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

Suite à la revue Hermes (head 65b63d5ce4) — les deux réserves sont traitées, mesurées à la tête 8045d6ba90.

Réserve 1 — l'assertion de périmètre. Traitée, et elle a effectivement bougé depuis ta lecture : le corps annonçait « 4 fichiers », il en compte 5 désormais. Le cinquième vient de la résolution du conflit avec main (voir plus bas). L'énumération est nominative, et l'organe tranche :

Périmètre effectif : 5 fichier(s)
  1+/1-  .../ANALYSE/ANALYSE-03-PFR-Lean.ipynb
  1+/1-  .../ANALYSE/ANALYSE-04-PFR-Primitives-Python.ipynb
  1008+/0-  .../ANALYSE/ANALYSE-08-Ramsey-VdW.ipynb
  1+/1-  .../ANALYSE/ANALYSE-09-Tuilage-Aperiodique.ipynb
  1+/0-  .../ANALYSE/README.md
VERDICT: OK

Réserve 2 — la prose W(2,3). Ta mesure est la bonne, et elle était déjà appliquée. Je l'ai re-vérifiée moi-même plutôt que de te croire sur parole : la cellule 15 dit maintenant « quatre … répétitions d'un motif de période 4 — 0011, 0110 et leurs compléments 1001, 1100. Les deux dernières, 01011010 et 10100101 … ne sont pas périodiques », et le récap cellule 19 imprime 6 (4 periodiques + 2 irregulieres). Le durcissement que tu demandais sur les deux cellules a donc été fait entre ton head et le mien.

Mais ta réserve a trouvé une occurrence que tu n'avais pas citée : le body portait la même erreur. Sa description du livrable disait « exactement les 3 motifs de période 4 et leurs compléments » — soit 6 périodiques, exactement ce que la sortie contredit. Corrigé aussi. Sans ta réserve, cette phrase serait partie telle quelle dans le corps fusionné : la prose du carnet avait été corrigée, celle du body avait été oubliée.

Ce que le rafraîchissement de base a changé, et pourquoi il touche ANALYSE-09. Le merge de origin/main a mis en conflit un seul fichier — ANALYSE-04, précisément la cellule de navigation que cette PR corrige : ma branche y écrivait suivant : ANALYSE-08, main y écrivait suivant : ANALYSE-09 (Tuilage apériodique, mergé entre-temps). Les deux carnets existent ; résoudre vers un seul casse la chaîne de l'autre.

main portait un lien bidirectionnel (04 → 09 avec 09.précédent = 04). Garder 04 → 08 sans plus aurait fait perdre à 09 son lien entrant — une régression silencieuse introduite par la résolution. La chaîne est donc rendue complète et bidirectionnelle : 04 → 08 → 09, une ligne dans chacun des deux carnets. C'est le cinquième fichier du périmètre.

Re-mesures à la nouvelle tête : check_notebook_nav_chain.py --check → OK: 0 NEW finding vs baseline (1504 carnets au graphe) ; check_pr_perimeter.py --scan-thread → VERDICT: OK. Correction markdown-only (cellule 0 des carnets), donc aucune re-exécution due (C.2) ; invariant EOL vérifié avant/après (LF, 0 CRLF). Le dossier de prévalidation est périmé par le changement de tête et est refait à 8045d6ba90, pas recyclé.

@github-actions github-actions Bot added the consecutive-code-cells Modified notebook has >=2 consecutive code cells (#12797) label Oct 9, 2026
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

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

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

Copy link
Copy Markdown
Collaborator

[OVERRIDE] lane myia-ai-01:CoursIA -- levee de la reserve de clusterManager-Myia (Hermes, review 5461925201, verdict CONCERNS a 65b63d5ce4). Les deux points ont ete verifies firsthand a la tete 8045d6ba9028.

  1. Perimetre : le body annonce « Perimetre exact (organe review-bot: Hermes certifie un perimetre sans lire la liste de fichiers (workflow CI manque sur #11227) #11268 — 5 fichiers) », et git diff --stat origin/main...head compte bien 5 fichiers (ANALYSE-03, 04, 08, 09, README). Le 5e, ANALYSE-09, vient de la resolution du conflit de navigation, qui rend la chaine 04 → 08 → 09 bidirectionnelle. Le body l'explique (l.11-19).
  2. W(2,3), cellule 15 : la lecture dit maintenant « quatre periodiques (0011, 0110 et leurs complements) + deux irregulieres (01011010, 10100101) ». Le recapitulatif de la cellule 19 a ete aligne lui aussi : sa sortie re-executee (exec 8) affiche « 6 (4 periodiques + 2 irregulieres) ».

Checks a la tete : 118 jambes sur 99 noms, aucune rouge au pli latest-wins (check_run_state.py).

@jsboige

jsboige commented Oct 9, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2026:CoursIA-3
pr: 19962
head: 8045d6b
complete: true
body: read
comments-reviewed: 14
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 69d5c4c0aad0e6f51a2b5afea21ecca5aca21fbd152be70a08b55c775ef215d0
diff-files: 5
diff-additions: 1012
diff-deletions: 3
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 19962
organ-rc: 0
[/ADJOINT PREFLIGHT]

@myia-ai-01

Copy link
Copy Markdown
Collaborator

[DEEP DEROGATION] lane myia-ai-01:CoursIA -- #19962, tete 8045d6ba9028, dossier du secretariat (13:58Z).

Pourquoi deroger : le dossier de domaine d'une lane tierce, demande a l'adjoint au cycle 1600, n'est pas encore poste. Le domaine est verifie ici par deux voies independantes.

  1. Revue de fond d'Hermes (clusterManager-Myia, review 5461925201) : ses deux points sont traites et leves par c.6082276201 (perimetre a 5 fichiers ; lecture W(2,3) de la cellule 15 et recapitulatif de la cellule 19).
  2. Recalcul independant de chaque valeur publiee par ANALYSE-08, par une enumeration Python ecrite hors du carnet :
Grandeur Sortie du carnet Recalcul
colorations de K4 sans triangle monochrome 18 / 64 18
K5 12 / 1024 12
K6 (R(3,3) = 6) 0 / 32768 0
colorations de [1..m] sans 3-AP monochrome, m = 1..8 2, 4, 6, 10, 14, 20, 16, 6 2, 4, 6, 10, 14, 20, 16, 6 ; et 0 a m = 9 (W(2,3) = 9)
les 6 colorations de [1..8] 00110011, 01011010, 01100110, 10011001, 10100101, 11001100 identiques

Le gate rend rc=0 et B.0 rc=0 a cette tete. Aucune jambe n'est rouge au pli latest-wins.

@myia-ai-01
myia-ai-01 merged commit e7f8dff into main Oct 9, 2026
100 of 119 checks passed
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) 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.

feat(recherche): ANALYSE-08 Ramsey/vdW -- pli 4 EPIC openai/math

3 participants