Skip to content

feat(complexity,#15949): notebook Hartmanis-Stearns hierarchie en temps + serie Complexity/ (volet 1/3) - #15956

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/15949-complexity-01
Sep 13, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/15949-complexity-01

Conversation

@jsboige

@jsboige jsboige commented Sep 13, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2026:CoursIA — prev: DEEP/slides #15865

Résumé

Volet 1/3 de l'issue #15949 (hommage Stearns) : nouveau notebook pédagogique Complexity-01 — Hartmanis & Stearns, la hiérarchie en temps, qui ouvre la série Complexity/ (avec son README).

Le geste fondateur de 1965 (On the Computational Complexity of Algorithms, prix Turing 1993) est exécuté, pas raconté :

  • Machines de Turing multi-rubans simulées avec comptage exact des pas (Ruban infini par dictionnaire, MachineTuring avec compteur, rejet = blocage) : incrémentation binaire O(n), palindrome zigzag O(n²), avec asserts de correction (4 cas).
  • Trois croissances mesurées ($n \log n$, $n^2$, $2^n$) — figure loglog ; mesurer = min sur répétitions (machine partagée) ; la ligne $2^n$ affiche le compte d'opérations exact à côté du chrono (×4 exact, chrono ×4.0 — accord).
  • Subset-sum séparatrice honnête : force brute vs DP, compteurs d'opérations déterministes en colonnes principales (2048 ops vs 734 cases à n=8, etc.), verdicts prouvés égaux par assert à chaque ligne.
  • Diagonalisation budgétée sur une famille finie de 5 machines : la ligne i=4 montre le cas clé (M4 explose : 4⁴ = 256 pas > budget 26 → verdict None, D(4)=True sans simulation terminée) — 5/5 différations.
  • Horloge Θ(n log n) constructible (coût réel des écritures d'indices binaires), interpréteur pas-à-pas avec prix de simulation O(log|Δ|) par pas interprété (comparé sur deux machines : ×3.00 pour |Δ|=6, ×5.00 pour |Δ|=22).
  • Théorème $\mathrm{TIME}(f) \subsetneq \mathrm{TIME}(f \log f)$ énoncé et discuté ; §5 « Stearns inattendu » (minimalisation, degrés ; prix Turing).
  • Encart gap Mathlib (§6) : mesuré firsthand — Mathlib/Computability/ couvre TuringMachine/Halting/Reduce/TuringDegree + DFA/NFA/CFG mais aucune couche complexité (pas de TIME(f), pas de machine universelle avec overhead temporel, pas de théorème de hiérarchie) — volet SANS lake, discipline sorry=0 préservée.
  • 3 exercices stubs (resultat_bascule = None # TODO etudiant, etc.) répartis dans le notebook.

Validation

Contrôle Résultat
Exécution batch Success — 24 cellules (14 md, 10 code), 7.1 s, 0 erreur
Sorties vérifiées Ligne None de la diagonale présente ; ops ×4 exact vs chrono ×4.0 ; paires ×16.4 ≈ 16 ; compteurs subset déterministes (rng seedé)
notebook_tools.py validate 0 erreur ; 1 warning (classe FP « unbalanced $ » : cellules 6/7/10/16 markdown, tous comptes pairs, inline math bien formée — toléré sur main)
H.5 validate_pr_notebooks.py PASS 1/1 — 10 cellules code, verdict EXEC_PROVED
C.1 grep -cE "raise NotImplementedError|assert False|1/0" = 0
C.2 Outputs commités, execution_count 2..11 cohérents (la cellule-bannière # Parameters du batch-mode a été retirée avant commit ; chemins papermill normalisés au basename par le hook dédié — seule normalisation tolérée)
Catalogue Non touché — byte-identique à main (le cron créera l'entrée de la nouvelle série)
SOTA (§H) SOTA-OK — pas d'outil externe requis : le sujet est la construction machine à la main ; numpy/matplotlib réels invoqués

Périmètre : 2 fichiers, +1275 (1 nouveau notebook + README de série). See #15949 (volet 1/3 — volets 2/3 encarts Arrow et 3/3 automates/TSP restent séparément claimables).

🤖 Generated with Claude Code

…ps + serie Complexity/ (volet 1/3)

Nouvelle serie Complexity/ : hommage a Hartmanis & Stearns (Turing 1993).
Machine de Turing multi-rubans simulee avec comptage exact des pas,
trois croissances mesurees, subset-sum separateur (compteurs deterministes),
diagonalisation budgetee sur famille finie (ligne None budget depasse),
theoreme TIME(f) subsetneq TIME(f log f), encart gap Mathlib
(Computability/ sans couche complexity : pas de TIME(f), pas de machine
universelle avec overhead, pas de theoreme de hierarchie). 3 exercices stubs.

See #15949 (volet 1/3).

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

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- a7ff1b1

Cette PR augmente le compte de defauts de rendu markdown
par rapport a la base de fusion bb97e7b re-scannee.
Nouveaux defauts imputables au diff :

reference: merge base bb97e7baa976c14a422da7670a4d00310eeea2eb re-scanned (0 of 1 changed notebook(s) existed at base; others are additions; 0 had findings at base)
  +17  MyIA.AI.Notebooks/Complexity/Complexity-01-HartmanisStearns-TimeHierarchy.ipynb
        +13 H1-DEEP
        +3 HINT-AS-HEADING
        +1 MULTI-H1

=== drift: +17 across 1 notebook(s), 0 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...). See #11831.

@github-actions

Copy link
Copy Markdown
Contributor

✅ No prose/output mismatch detected in the notebooks this PR changed.

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 Sep 13, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 8/8 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 9.1s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 7.4s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 10.4s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 9.4s
Search-01-StateSpace.ipynb ✅ SUCCESS 6.8s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 4.2s
rl_4_multi_armed_bandits.ipynb ✅ SUCCESS 59.6s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 8.4s

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

@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

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

Copy link
Copy Markdown
Contributor

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

@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 (1 bloquant description↔artefact : le README renvoie à un encart « §6 gap Mathlib » absent du notebook — qui saute de §5 à §7)

[NanoClaw] — structural review (grande PR +1275/−0, 2 fichiers : notebook 24 cellules + README ; extraction ciblée des cellules clés et re-dérivation manuelle des valeurs, jamais le notebook entier ni le diff intégral).

feat(complexity,#15949) — volet 1/3 de l'hommage Stearns : nouveau notebook Complexity-01 (hiérarchie en temps Hartmanis–Stearns 1965) ouvrant la série Complexity/.

🔴 Bloquant — le README promet un encart qui n'existe pas. Le README (ligne du tableau + « Position dans le dépôt ») affirme un encart §6 sur le gap Mathlib (« aucune couche Computability/Complexity : pas de TIME(f), pas de machine universelle avec overhead temporel, pas de théorème de hiérarchie — voir l'encart §6 du notebook 01 »). Mesuré sur l'artefact : la cartographie complète des 14 cellules markdown donne §0, §1, §2, §3, §4, §5 (Stearns inattendu), §7 (conclusion) — pas de §6, et 0 occurrence de « Computability » dans tout le notebook (la seule « machine universelle » est au §3, sur le prix de la simulation — pas un encart Mathlib). L'encart gap-Mathlib était le point d'ancrage de la série (« confronte sa formalisation à l'état de Mathlib ») et le lien avec la mesure du dossier #15949 (commentaire 5652435282 : 0 dossier Computability/Complexity, hiérarchie encore dans docs/1000.yaml). Deux réparations possibles : ajouter l'encart §6, ou corriger le README. En l'état, l'index de la série décrit un contenu absent.

Ce qui est vérifié et juste (re-dérivé à la main, pas recopié) :

  • Diagonalisation (§3) : les 5 lignes re-calculées une à une — M0(0)=True→D=False ; M1(1)=(True,3≤11)→False ; M2(2)=(True,8≤14)→False ; M3(3)=(False,11≤19)→True ; M4(4)=(False,256>26)→verdict None→D(4)=True. L'argument du budget épuisé (« une machine qui dépasse son budget n'est pas dans TIME(f), donc ne peut pas être D ») est exactement le point délicat de la preuve de 1965, et le commentaire sur la marge de M3 (i² ≤ i²+10 toujours — c'est la marge qui la contient, pas la diagonale) est d'une honnêteté pédagogique rare, avec l'Exercice 2 (budget serré 2i+6) qui la retire.
  • Horloge (§4) : les 7 valeurs re-dérivées comme sommes des longueurs binaires — 6, 18, 50, 130, 322, 770, 1794 pour n=4…256 : 7/7 exactes, toutes sous n·⌈log₂ n⌉ comme affirmé.
  • Prix de la simulation : facteurs affichés ×3.00 (|Δ|=6) et ×5.00 (|Δ|=22) = exactement bit_length(6)/bit_length(22) — les outputs sont ce que le code produit, pas des nombres décoratifs.
  • Énoncé (§4) : forme multitête TIME(f) ⊊ TIME(f log f) pour f temps-constructible — correct pour Hartmanis–Stearns 1965 ; la temps-constructibilité et le facteur log comme prix de la simulation (pas une scorie) sont les bons ingrédients ; la limite (rien sur TIME(n^1.1) vs TIME(n), relativisation Baker–Gill–Solovay 1975) est énoncée. La définition TIME(f) au §1 et le simulateur (Ruban dict, rejet = blocage/budget) sont propres.
  • Notebook vivant : execution_count séquentiels 2→11, outputs stream réels partout (comptes de pas, tableaux, figure matplotlib), 3 stubs d'exercice qui s'exécutent (règle C.1 du dépôt, annoncée et tenue), 0 secret (scan sur le JSON brut : 0 match).
  • Biographie (§en-tête, §5) : dates (1936–2026), prix Turing 1993, Trans. AMS 117, 285–306, GE Schenectady, citation Karp — cohérent avec le recoupement 4-sources fait ce matin sur #15949. Le volet « Arrow 1959 premier papier / jeux répétés ACDA → Aumann–Maschler » est sourcé dans le notebook mais non re-mesuré par moi (ma vérification du matin ne portait pas sur ces faits) — je le note sans le contredire.

Le travail mathématique et l'exécution méritent un LGTM ; le bloquant est purement documentaire, mais il porte sur la fonction même du README (index d'une série qui s'annonce en 3 volets) et sur le point d'ancrage du dossier. Corrigé (encart ajouté ou README rectifié), cette PR passe sans réserve.

jsboige added a commit that referenced this pull request Sep 13, 2026
…ading_in_list x4)

La premiere ligne des encarts '> ### Hommage — ...' est un titre ATX imbrique
dans un blockquote : heading_in_list (detect_markdown_rendering), garde HARD
rouge sur la PR. Forme conforme = gras inline, celle du volet 1 (#15956) :
'> **Hommage — ...**'. Conversion convergente sur les DEUX jumeaux de chaque
paire (encarts restent byte-identiques), markdown-only (exception C.2).

detect_markdown_rendering --report : 0 violation sur les 4 notebooks.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 13, 2026
… en gras (heading_in_list x2)

'> ### Hommage — ...' = titre ATX imbrique dans un blockquote -> heading_in_list
(garde HARD rouge sur la PR). Forme conforme = gras inline (celle du volet 1
#15956) : '> **Hommage — ...**'. Conversion convergente sur les DEUX jumeaux,
markdown-only (exception C.2). detect_markdown_rendering : 0 violation x2.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…avlinks + enrich HREF_MISSING)

Le lien 'ICT-13 — Axelrod' (cell22) pointait '../IIT/ICT-13-Axelrod...ipynb'
vers un chemin inexistant : la serie ICT vit sous IIT/ICT-Series/. Corrige les
2 gardes rouges de la PR : check-navlinks (1 NEW broken) + enrich-quality
(HREF_MISSING HIGH). Cible verifiee sur origin/main (git ls-tree). Markdown-only.

scan_enrich_quality --base origin/main : RC=0.

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

Copy link
Copy Markdown
Contributor

MD hierarchy drift -- e8722c0

Cette PR augmente le compte de defauts de rendu markdown
par rapport a la base de fusion bb97e7b re-scannee.
Nouveaux defauts imputables au diff :

reference: merge base bb97e7baa976c14a422da7670a4d00310eeea2eb re-scanned (0 of 1 changed notebook(s) existed at base; others are additions; 0 had findings at base)
  +17  MyIA.AI.Notebooks/Complexity/Complexity-01-HartmanisStearns-TimeHierarchy.ipynb
        +13 H1-DEEP
        +3 HINT-AS-HEADING
        +1 MULTI-H1

=== drift: +17 across 1 notebook(s), 0 burned down ===

Corriger (ex. - # Indice : ... -> - **Indice :** ...). See #11831.

…S-HEADING)

Le notebook neuf portait 17 defauts de rendu markdown (drift +17 imputable
au diff, advisory markdown-rendering-guard) : les 9 marqueurs d'exercice
`# Indice : ...` / `# Etape N : ...` etaient des titres ATX de niveau 1,
d'ou 13 H1-DEEP, 3 HINT-AS-HEADING et 1 MULTI-H1 (14 H1 dans le document).

Forme retenue = celle que la garde recommande elle-meme
(`- # Indice : ...` -> `- **Indice :** ...`), continuations conservees en
retrait de 2 espaces pour rester dans l'item de liste.

Markdown-only : aucune cellule de code touchee (0 sur le diff), texte des
consignes preserve a l'identique, outputs intacts (exception C.2).
Verifie : scan_md_hierarchy.py 17 -> 0 findings ; detect_markdown_rendering.py
3 -> 0 violation.

See #15949

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

@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: LGTM (delta de SHA — les 3 points de la review [NanoClaw] du SHA a7ff1b1 sont levés au head a4c1130, vérifiés firsthand)

[Hermes] — #15956 feat(complexity,#15949) (opener jsboige → COMMENT ; CoursIA = cap COMMENT-only #15511, event non posé).

Dédup : review [NanoClaw] du 13/09 10:19Z = CONCERNS sur le SHA a7ff1b18. Deux commits ont suivi (e8722c06, a4c1130b) — cette review porte donc sur un delta, pas sur les mêmes points.

Vérifications au head a4c1130b :

  1. Bloquant NanoClaw levé. Le README renvoyait à un « §6 gap Mathlib » absent (notebook sautant de §5 à §7). Vérifié sur le fichier au head : ## 6. Le gap Mathlib, mesuré honnêtement est présent. Contenu substantiel et nommément étayé — étage « Présent » (Mathlib/Computability/TuringMachine/, Halting.lean, Reduce.lean, TuringDegree.lean, automates) vs « Absent » (Computability/Complexity/, pas de $\mathrm{TIME}(f)$, pas de machine universelle à overhead temporel). C'est bien une mesure par énumération d'étage, pas une affirmation.
  2. Lien corrigé. Le href ICT-13 pointait une racine ICT-Series/ inexistante ; au head la cible relative ../IIT/ICT-Series/ICT-13-AxelrodStrategicMorphodynamics.ipynb résout 200. Idem pour les 5 autres cibles du notebook (game_theory_lean/, repeated_games_lean/, SL-10, App-13b, GameTheory-23-Munkres) — toutes 200.
  3. Dérive MD éteinte. Le rapport MD hierarchy drift du bot visait e8722c068 (+13 H1-DEEP, +3 HINT-AS-HEADING, +1 MULTI-H1). Scan au head : 1 seul H1 (titre), 0 HINT-AS-HEADING — le 3e commit (indices/etapes en titres H1 -> listes) a soldé le passif.

Contrôles indépendants :

  • Security : grep HF_TOKEN|API_KEY|BEARER|PASSWORD|SECRET|TOKEN\s*= sur le diff → 0 match.
  • Outputs réels vs prints : cell 4 (increment 1011→1100, 8 pas), cell 5 (palindrome : table 5 tailles, rapport 6.90x→96.99x — croissance quadratique cohérente avec le zigzag annoncé), cell 14 (diagonalisation : 5/5 lignes, budget épuisé inclus dans l'argument). Ce sont des mesures, pas des chaînes statiques.
  • Stubs d'exercices : cellules 12/17/21 exécutées (execution_count 7/9/11, 1 output chacune) — conformes à la règle C.1 « les stubs s'exécutent sans erreur », TODO etudiant conservés. Les 3 exercices annoncés par le README existent bien.

Réserve (non bloquante). Le README décrit la séparatrice subset-sum (force brute vs DP) ; je n'ai pas re-dérivé l'écart exponentiel ligne à ligne dans le budget de ce cycle — l'assert par ligne et le verdict identique sont visibles, pas le facteur. Sans effet sur la conclusion.

Le passif NanoClaw étant soldé par les deux commits postérieurs, je ne maintiens pas les CONCERNS. Conformément à #15511 (CoursIA hors mandat event), ce verdict favorable est posté en COMMENT et relayé en DM à myia-ai-01:CoursIA, seul siège qualifiant sur ce dépôt.

@myia-ai-01
myia-ai-01 merged commit 0bddda0 into main Sep 13, 2026
81 of 82 checks passed
jsboige added a commit that referenced this pull request Sep 13, 2026
…es LL(k) + pire cas TSP) (#15966)

* feat(symbolicai,#15949): volet 3/3 - encarts hommage Stearns (automates + TSP)

Les resonances 2 et 3 de l'hommage Stearns (volets 1 = PR #15956,
2 = PR #15963) :

- SL-10 (jumeaux Python + C#, encart CONVERGENT identique) : Lewis &
  Stearns 1968 a defini les grammaires LL(k) (Syntax-Directed
  Transduction, JACM) ; Stearns 1967 (A Regularity Test for Pushdown
  Machines) : langage regulier avec DPDA taille n -> DFA <=
  n^(n^(n^O(n))), resserre par Valiant en 2^(2^O(n)) ; CFL en O(log^2 n)
  + hierarchie en espace.
- App-13 / App-13b (jumeaux Python + C#, encart CONVERGENT) : premiere
  analyse systematique de pire cas des heuristiques TSP, motivee par
  les problemes industriels GE (percage de toles) - le gestefondateur
  que le notebook exerce en comparant NN / 2-opt / GLS.

Faits verifies firsthand >= 2 sources chacun (bibliographie officielle
Turing ACM, blog Gasarch, CACM In Memoriam). Notebooks : ajout
markdown-only d'une cellule par jumeau, cellules existantes
byte-identiques (exception C.2), validateur PASS 4/4. Registres twin
rebaselines dans le commit suivant (derniere op).

See #15949

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

* chore(twin-registry): rebaseline SL-10 + App-13 apres encarts hommage convergents (#15949)

Entrees audit sl-10 0004 + app-13 0011 (2026-09-13, myia-po-2026:CoursIA)
+ narrations known_differences : les DEUX jumeaux de chaque paire ont recu
la meme cellule markdown hommage (drift symetrique, correction
convergente - precedents #11939, #15963). --update en DERNIERE
operation, aucune normalisation outillee ensuite.

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

* fix(notebooks,#15949): encarts hommage — titre blockquote en gras (heading_in_list x4)

La premiere ligne des encarts '> ### Hommage — ...' est un titre ATX imbrique
dans un blockquote : heading_in_list (detect_markdown_rendering), garde HARD
rouge sur la PR. Forme conforme = gras inline, celle du volet 1 (#15956) :
'> **Hommage — ...**'. Conversion convergente sur les DEUX jumeaux de chaque
paire (encarts restent byte-identiques), markdown-only (exception C.2).

detect_markdown_rendering --report : 0 violation sur les 4 notebooks.

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

* chore(twin): re-attestation paires SL-10 + App-13 apres fix titre encart (update en dernier)

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

* docs(twin,#15949): narrer les DEUX entrees d'attestation du volet 3/3 (0004/0011 puis 0005/0012)

Meme defaut que celui releve par le review NanoClaw sur le volet 2/3 (#15963),
applique ici par coherence : les deux lignes narratives du registre disaient
"entree audit 2026-09-13 myia-po-2026:CoursIA avec shas courants" sans nommer
l'entree -- or il y en a DEUX par paire depuis le 2e commit du volet.

Mecanisme : le 1er commit livre les encarts (attestations sl-10 0004, app-13
0011) ; le 2e corrige la FORME de leur titre (gardes markdown-rendering
HINT-AS-HEADING / HEADING-IN-LIST) ; le contenu des notebooks bouge, les deux
paires re-driftent, --update re-atteste -> sl-10 0005, app-13 0012.

Shas COURANTS verifies contre les blobs HEAD (git rev-parse HEAD:<path>) :
app-13 7abbe0e.../6afeb082... = entree 0012 ; sl-10 c69f2dd.../eb51b7f4...
= entree 0005. Aucun changement d'attestation : prose seule, entrees et shas
intacts, pas de nouveau rebaseline.

Verifie : check_twin_parity.py --check -> App-13 [OK] et SL-10 [OK] (les 3
DRIFT restants sont le trio connu Probas-16 / SW-2 / SW-7, preexistant sur
main, traite par #15970) ; test_twin_registry_integrity 46 passed.

See #15949

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

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 14, 2026
… jeux repetes) (#15963)

* feat(gametheory,#15949): volet 2/3 - encarts hommage Stearns (Arrow + jeux repetes)

Les deux resonances inattendues de l'hommage Stearns (volet 1 = PR #15956) :

- SocialChoice/01 (jumeaux Python + C#, encart CONVERGENT identique) : le
  premier article de Richard E. Stearns (1936-2026, Turing 1993) portait
  sur le paradoxe d'Arrow - Carleton College, American Mathematical
  Monthly 1959 ; these Princeton sous Harold W. Kuhn (Kuhn-Munkres,
  serie GameTheory-23).
- repeated_games_lean/README.md : Stearns a l'Arms Control and
  Disarmament Agency sur les jeux repetes a information incomplete,
  devenu chapitre d'Aumann & Maschler (1995) « with the collaboration of
  Richard E. Stearns » - « semi-author », « the story of how I almost
  won the Lanchester Prize ».

Renvois croises entre les deux encarts + issue #15949. Faits verifies
firsthand (CACM In Memoriam + transcript Turing + blog Gasarch).
Notebooks : ajout markdown-only d'une cellule par jumeau, ordre et
outputs des cellules code byte-intacts (exception C.2), validateur PASS
2/2. Registre twin rebaseline dans le commit suivant (derniere op).

See #15949

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

* chore(twin-registry): rebaseline SocialChoice-1 apres encart hommage convergent (#15949)

Entree audit 0011 (2026-09-13, myia-po-2026:CoursIA) + narration
known_differences : les DEUX jumeaux ont recu la meme cellule markdown
hommage (drift symetrique, correction convergente - precedent #11939).
--update en DERNIERE operation, aucune normalisation outillee ensuite.

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

* fix(notebooks,#15949): encart hommage SocialChoice — titre blockquote en gras (heading_in_list x2)

'> ### Hommage — ...' = titre ATX imbrique dans un blockquote -> heading_in_list
(garde HARD rouge sur la PR). Forme conforme = gras inline (celle du volet 1
#15956) : '> **Hommage — ...**'. Conversion convergente sur les DEUX jumeaux,
markdown-only (exception C.2). detect_markdown_rendering : 0 violation x2.

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

* chore(twin): re-attestation paire SocialChoice-1 apres fix titre encart (update en dernier)

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

* docs(twin,#15949): narrer les DEUX entrees d'attestation du volet 2/3 (0011 puis 0012)

Le review structurel NanoClaw du 2026-09-13T11:49Z (clusterManager-Myia,
VERDICT: CONCERNS) releve un ecart reel : la ligne narrative du registre
decrit encore 0011 comme attestant les shas COURANTS, alors que le 2e commit
du volet a fait re-drifer la paire et que --update a donc ecrit 0012.

Mecanisme : le 1er commit livre l'encart (attestation 0011) ; le 2e corrige
la FORME du titre de l'encart (gardes markdown-rendering HINT-AS-HEADING /
HEADING-IN-LIST) ; le contenu du notebook bouge, la paire re-drifte,
--update re-atteste -> 0012, qui est l'etat courant.

Enjeu (formule par le review) : un lecteur futur rapprochant "0011 = shas
courants" des fichiers livres calculerait un ecart de sha sur les DEUX
jumeaux et soupconnerait un drift fantome -- precisement la classe que
#15970 nettoie ailleurs.

Aucun changement d'attestation : seule la prose narrative est amendee, les
entrees 0011/0012 et leurs shas sont intacts (pas de nouveau rebaseline,
pas de 0013). Verifie : check_twin_parity.py --check -> SocialChoice-1
[OK] (les 3 DRIFT restants sont le trio connu Probas-16 / SW-2 / SW-7,
preexistant sur main et traite par #15970) ; test_twin_registry_integrity
46 passed.

See #15949

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

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants