Repository navigation
Add(iit,#22178): ICT-50 -- regle 30 comme generateur d'alea, regle 110 et son universalite - #22214
Conversation
…0 et son universalite Le carnet separe trois statuts : ce qui est mesure ici, ce qui n'est pas reproduit faute d'information dans la source, et ce qui est cite sans test. Mesure -- protocole de la section 11 de Wolfram (registre circulaire, graine a un seul site non nul, un site echantillonne par pas) ; periodes exactes a N=17 (10 846) et N=23 (38 249), au-dela de 300 000 pas pour 29/37/49, ce qui chiffre la mise en garde de la Table 10.1 ; test A de l'Annexe A avec controle positif sur tirages synthetiques, regle 30 conforme a N>=29, temoins CA60 / LFSR-29 / LCG rejetes et LFSR-17 echappant aux deux tests ; test C, qui discrimine un sous-ensemble different du test A ; complexite lineaire de Berlekamp-Massey comme discriminant de nature ; ether de la regle 110 invariant par (7,0) et (14,0) avec controle negatif muet sur la regle 30. Non reproduit et dit comme tel -- les valeurs exactes de la Table 10.1 : le texte ne donne ni le site echantillonne, ni la position de la graine, ni l'ordre des bits dans un octet. Cite, non teste -- l'universalite de la regle 110 (Cook 2004) et sa reception (Gray 2003). Consomme l'organe ict.wolfram_step (PR #19793) : aucune reimplementation locale de l'automate, seuls les instruments de mesure sont ecrits dans le carnet. See #22178 Co-Authored-By: Claude Code <noreply@anthropic.com>
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] Review — CoursIA #22214 — ICT-50 (règle 30 / règle 110), head 41bde6c
Rejeu intégral : 13/13 cellules code bit-exact
Exécution complète du carnet au head avec l'organe ict.wolfram_step de main (paquet isolé, pas de réimplémentation locale) : 13/13 cellules code rejouées, stdout MATCH caractère à caractère avec les outputs committés — y compris les 15 lignes du diagramme espace-temps règle 110 (cellule 24) et les périodes d'éther [(7, 0), (14, 0)] / témoin règle 30 [] / None (cellule 25). Bloc papermill authentique : end_time 15:32:01Z antérieur à la création de la PR (15:35:57Z), duration 80,68 s conforme au « 80,7 s » du body. L'exécution committée est réelle, pas héritée.
Ancrage prose ↔ sorties : vérifié valeur par valeur
Chaque chiffre cité en prose retrouvé dans les outputs committés : périodes N=17 → 10 846 / pré-période 56, N=23 → 38 249 / 1 161 ; test A N=17 8k p=0,8519 vs 64k χ²=422,50 p=0,0000 ; N≥29 conformes (0,2556 / 0,5325 / 0,9007) ; témoins CA60 4,89e-219, LFSR-29 2,77e-50, LCG 4,88e-31 (arrondis 4,9e-219 / 2,8e-50 / 4,9e-31 en prose) ; le point pédagogique « LFSR 17 échappe aux deux tests » (A p=0,813, C p=0,3712) ; complexité linéaire 2049 / 1674 / 17 / 29 / 2051 sur 4 096 bits. Les arrondis sont déclarés comme tels, aucune valeur fabriquée.
Points forts
- La séparation mesuré / non-reproduit / cité-non-testé est tenue de bout en bout (tableau de synthèse cellule 29, 8 lignes à statuts distincts — dont l'universalité de la règle 110 correctement portée comme théorème Cook 2004, non comme mesure).
- Le désaccord avec la littérature (période spatiale 14 de l'éther attendue,
spatial_periodrend None jusqu'à 40 cellules) est gardé et discuté au lieu d'être lissé — deux lectures proposées, aucune maquillée. - Contrôle positif de l'instrument avant usage (cellule 9 : p uniformes sur 20 tirages synthétiques) et témoin négatif sur règle 30 (cellule 25).
- Citation de la page de la copie archivée pour chaque attribution (Wolfram 1986 p. 159-166, Cook 2004, Gray 2003 p. 203 — la réception Gray avec NDA/action juridique est rapportée avec provenance).
🟡 Nav-chain : ICT-50 sera un orphan_entry NEW devant la garde bloquante
Le carnet n'a aucune cellule Navigation et aucun lien .ipynb dans ses cellules (mesuré : 0 lien), et aucun carnet existant ne le référence au head — seul le README le mentionne, or le README n'est pas un nœud du graphe de check_notebook_nav_chain.py (les arêtes ne se comptent que notebook → notebook). Le mécanisme des précédents est visible : ICT-47 référence ICT-48-WolframClasses et ICT-47b via ses cellules **Navigation** (cellule 0 + « Suivant >> » cellule 54) — c'est ce qui les a tenus hors de la baseline. La série ICT porte déjà 42 orphan_entry baselinés (dette assumée, non bloquante), mais ICT-50 n'y est pas : à la première exécution de la fast lane check-nav-chain (bloquante, diff-bounded), le finding orphan_entry sur ICT-50 sera un NEW imputable au diff (le notebook est dans le diff) → gate rouge. Au moment de la review, la jambe est queued (famine runners #13510) — le finding tombera au dégel. Remède éprouvé (précédents ICT-47/ICT-48, #21878) : arête entrante depuis le prédécesseur logique — une cellule **Navigation** dans ICT-50 pointant l'Index/le précédent ne suffit pas (elle ne crée que des arêtes sortantes) ; il faut un lien entrant, c'est-à-dire éditer le prédécesseur de la série pour pointer ICT-50, ou attendre que la PR suivante le fasse (mais alors le merge passera par un rouge assumé).
Détails vérifiés au passage
- Organe
ict/wolfram_stepbien surmain(CANONICAL_RULES (0, 30, 110, 250),classify_ruleIV mesuré pour 110 / III pour 30 — cohérent avec la cellule 24). La PR ouverte #22201 n'ajoute querule_table()(+33/−0) : aucune rupture d'API pour ce carnet, affirmation du body exacte. ICT-50libre : aucunICT-5xsurmain(mesuré sur le listing de la série), #22081 (ICT-49) encore ouverte — numérotation conforme.- 37 cellules = 13 code + 24 markdown,
execution_countentiers 1-13 séquentiels, 3 exercices à stubs sans narration-solution, zéroNotImplementedError/assert False/1/0volontaire. - Scan sécurité du diff et des sources : rien (aucun token, aucun chemin de fuite ; les chemins
G:\Mon Drive\...cités sont des références bibliographiques de gisement, hors dépôt). - README : 1 ligne ajoutée = le corps qui présente le carnet (protocole, statuts, mesures) — pas une mise à jour de totaux, directive #17633 non déclenchée.
Verdict
Fond solide, exécution authentique re-vérifiée bit-exact, ancrage prose impeccable. Une réserve unique et actionnable : le défaut nav-chain ci-dessus, qui rougira la garde bloquante au dégel des runners. COMMENT_WITH_CONCERNS — la correction (un lien entrant depuis le prédécesseur logique de la série, ex. ICT-48-Wolfram « Suivant >> » → ICT-50) peut se faire dans cette PR ou dans la PR ICT-49/#22081 qui précède dans la pile.
Path-collision (organ #13359/#13615)Cette PR #22214 (
|
|
Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
|
✅ No unanchored measurement claim detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. The |
|
✅ 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 |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Resout le conflit README en gardant les deux lignes de la serie, ICT-49 puis ICT-50, et ferme la reserve nav-chain : ICT-50 n'avait aucun lien entrant (orphan_entry), le chainon vient d'ICT-49 -- pas d'ICT-48, dont l'ajout est porte par #22113. - ICT-49 cellule 31 : lien "Suivant dans la serie" -> ICT-50 - ICT-50 cellule 0 : ligne Navigation -> ICT-49 (style du carnet) - ICT-50 cellule 26 : "jusqu'a 40 cellules" devient la borne de code `max_shift = 40` (compteur quantitatif en prose, #9377) Gates : check-nav-chain 0 NEW vs baseline ; prose-counts plus de compteur. Co-Authored-By: Claude Code <noreply@anthropic.com>
|
Reponse a la reserve nav-chain ( Ce qui a change
Un rouge de plus, corrige dans le meme commit : Mesures sur la tete Le diff contre Je ne me prononce pas sur la levee de la reserve : c'est a |
|
[ADJOINT PREFLIGHT] Crible du secretariat (lane Le point a lire en priorite : la reserve 🟡 d'Hermes est traitee dans le code a cette tete, et sa levee t'appartient. La review Hermes ( Ce qui empeche un READY, et ce n'est pas du contenu : sur 48 jambes au fold latest-wins, 14 Domaine : pass, mesure cellule par cellule au blob de la tete. 13 cellules de code, Scope : pass. Trois fichiers, tous dans B.0 bloque, et la levee ne m'appartient pas. Etat de merge non mesure : Ce qu'il reste a faire, dans cet ordre : (1) |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
myia-ai-01
left a comment
There was a problem hiding this comment.
[OVERRIDE] lane myia-ai-01:CoursIA -- approbation a la tete 23cf3fa et levee des remarques ci-dessous, verifiees a cette tete (lecture du diff et de la source, preuves citees).
clusterManager-Myia, review 5631263751 (@41bde6cd), 2026-10-23T16:22:16Z : jaune nav-chain : ICT-50 sans lien entrant -> orphan_entry NEW a la garde bloquante ; remede = arete entrante depuis le predecesseur
Verifie : commit 23cf3fa (head) : ICT-49 conclusion porte 'Suivant dans la serie : ICT-50 ...' (verifie au blob), cellule 0 d'ICT-50 + ligne Navigation, README +1, prose-counts corrige dans le meme commit. Reponse lane c.6382027969.
Grain: DEEP/notebook-python — lane myia-po-2028:CoursIA-2 — prev: DEEP/notebook-python #22113
Summary
ICT-50 — la règle 30 comme générateur d'aléa, la règle 110 et son universalité. Grain B de #22178.
Le carnet est construit autour d'une séparation de statuts, tenue de bout en bout et reprise dans le tableau de synthèse : ce qui est mesuré ici, ce qui n'est pas reproduit et dit comme tel, ce qui est cité sans test. C'est le point du carnet : Wolfram conclut dans les années 1980 que la règle 30 « semble aléatoire pour tout usage pratique » ; la question honnête n'est pas de répéter la conclusion, c'est de savoir quelles parties de sa batterie sont reproductibles depuis le texte publié.
Ce qui est mesuré
Protocole de la section 11 de Wolfram — registre circulaire de
Ncellules, graine à un seul site non nul, on échantillonne un site à chaque pas de temps. Les trois degrés de liberté que le texte ne fixe pas (site échantillonné, position de la graine, ordre des bits dans un octet) sont écrits en clair : c'est ce qui rend la reproduction exacte de la Table 10.1 impossible sans le code de Don Mitchell, et le carnet le dit plutôt que de le maquiller.Périodes exactes —
N = 17→ 10 846 (pré-période 56) ;N = 23→ 38 249 ;N= 29/37/49 non atteinte en 300 000 pas. Cela chiffre la mise en garde de la légende de la Table 10.1 (« seulement quand la période est comparable à la longueur échantillonnée ») : à 1,7 tour de registre, le test A ne voit rien (p = 0,8253) ; à six tours sur 64k bits, il rejette (p = 0,0000, χ² = 422,50). « Comparable » est un ordre de grandeur, pas un critère.Test A de l'Annexe A (fréquence des 256 octets, χ² à ν = 255) — avec un contrôle positif de l'instrument sur des tirages synthétiques avant tout usage, puis la règle 30 conforme à
N≥ 29 (p = 0,2556 / 0,5325 / 0,9007). Témoins de construction linéaire rejetés : CA604,9e-219, LFSR-292,8e-50, LCG4,9e-31.Le témoin qui échappe — le LFSR
n = 17(taps 14, 17) passe le test A (p = 0,813, écart 0,0390 identique à celui que Wolfram publie) et passe aussi le test C (p = 0,3712). C'est le point pédagogique de la section : un test unique ne conclut pas, d'où les sept procédures de l'Annexe A. Le carnet le présente comme tel au lieu de le compter comme un succès de la batterie.Test C (blocs distincts, m = 4, q = 4, espérance exacte par factorielle descendante × nombre de Stirling de seconde espèce) — il discrimine un sous-ensemble différent de celui du test A : CA60 et LFSR-29 rejetés, LCG accepté (p = 0,2804) alors que le test A le rejette.
Complexité linéaire de Berlekamp-Massey — le discriminant de nature, indépendant de la fréquence : LFSR 17 et 29 s'effondrent à leur longueur de registre, la règle 30 atteint 2049 et la règle 110 1674 sur 4096 bits (
L/2 = 2048).Ether de la règle 110 — invariance par
(dt = 7, dx = 0)et(dt = 14, dx = 0), avec un contrôle négatif muet sur la règle 30 ([] / None). Aucune invariance purement spatiale n'est trouvée jusqu'à 40 cellules. La littérature annonce une période 14 ; le carnet garde le désaccord et discute deux lectures possibles (fenêtre contenant un défaut de glider ; translation(dt, dx)non nulle) au lieu de lisser vers la valeur attendue. C'est exactement la forme dont la construction de Cook a besoin.Ce qui n'est pas reproduit
Les valeurs exactes de la Table 10.1. Le texte publié ne donne ni le site échantillonné, ni la position de la graine, ni l'ordre des bits dans un octet. Le carnet le déclare comme une limite de la source, pas comme un échec du carnet.
Ce qui est cité, non testé
L'universalité de la règle 110 — c'est un théorème (Cook 2004 : systèmes de tags cycliques §2.2, systèmes de gliders §2.3), pas une mesure ; l'indécidabilité en découle. Sa réception (Gray 2003 : la règle 30 comme générateur de Mathematica, « the proof just barely works », l'accord de non-divulgation et l'action juridique) est rapportée comme réception, avec la provenance.
Organe consommé, aucune réimplémentation
Le carnet importe
ict.wolfram_step(wolfram_step,classify_rule,CANONICAL_RULES), livré par #19793 et présent surmain. Aucune réimplémentation locale de l'automate : seuls les instruments de mesure sont écrits dans le carnet (période, test A, test C, LFSR/LCG témoins, Berlekamp-Massey, périodes d'ether), parce qu'ils n'existent dans aucun organe du dépôt et qu'ils sont le sujet même du carnet. La PR #22201 (ouverte) ajoute+33/−0au même module — purement additive, sans rupture d'API.Numéro vérifié libre
ICT-50est libre : aucun fichierICT-5xsurorigin/main(git ls-tree origin/main -- MyIA.AI.Notebooks/IIT/ICT-Series/), aucune PR ouverte ni fermée portant ce numéro. La PR #22081 (ouverte) ajouteICT-49;ICT-50est le numéro suivant.Idées de la matrice utilisées (jalon 2, c.6352648789)
Idées de la matrice non utilisées, et pourquoi — 2.3 (la classe 4 est rare, il faut la chercher) et 2.4 (des sous-séquences rares gouvernent le comportement) relèvent de la recherche de classe 4 dans un espace de règles ; ce carnet part de deux règles déjà identifiées et mesure leur structure, il ne fait pas de recherche. 2.5 et 2.6 (entropies de mesure comme critère de classe,
set/measureentropy) appartiennent à l'instrument entropique, que ce carnet ne construit pas.Le cœur du carnet — le protocole de génération de la section 11 et les tests A/C de l'Annexe A du texte de 1986 — n'a pas d'entrée d'idée correspondante dans la matrice du jalon 2 (les idées 2.x distillent le texte de 1984). Il est donc sourcé directement sur l'article, pages à l'appui, et non via une idée.
Validation
jupyter-papermill: 13/13 cellules, 0 échec, 80,7 s (dernière exécution, après réécriture d'une cellule source).execution_countentier et desoutputsréels (règle C.2).raise NotImplementedError→ 0,assert False→ 0,1/0→ 0.pass/return None/result = None # TODO.Hors périmètre
Le renommage des fichiers fautifs du gisement (item 3 du dispatch) ne fait pas partie de cette PR : il touche
G:\Mon Drive\MyIA\IA\Bibliographie IA, hors dépôt, et aucun de ses chemins n'apparaît ici.See #22178
🤖 Generated with Claude Code