Skip to content

feat(lean,#16753): MathUniverse -- annexe A de R16 (structure finie, Aut(S), equivalence decidable) - #20111

Merged
myia-ai-01 merged 3 commits into
mainfrom
feature/16753-muh-annex-a
Oct 10, 2026
Merged

myia-ai-01 merged 3 commits into
mainfrom
feature/16753-muh-annex-a

Conversation

@jsboige

@jsboige jsboige commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/lean — lane myia-po-2027:CoursIA — prev: DEEP/guard #20095

Sujet

Nouveau module Lean MathUniverse du lake learning_theory_lean : l'Annexe A de R16, The Mathematical Universe (Tegmark, arXiv:0704.0646) — la définition opérationnelle d'une structure mathématique sur laquelle repose l'hypothèse de l'univers mathématique (MUH). Issue #16753, EPIC #16741 (arc B).

Périmètre

5 fichiers : MyIA.AI.Notebooks/ML/learning_theory_lean/MathUniverse.lean, MyIA.AI.Notebooks/ML/learning_theory_lean/MathUniverse_en.lean, MyIA.AI.Notebooks/ML/learning_theory_lean/lakefile.lean (enregistrement du module), MyIA.AI.Notebooks/ML/learning_theory_lean/README.md (section du module + copie pedagogique declaree), MyIA.AI.Notebooks/SymbolicAI/Lean/tegmark_muh_lean/README.md (renvoi croise, reponse organ-first). Aucun autre.

Ce qui est livré

Apport Où
Définition d'une structure finie FinRelStruct : entités = type fini α, signature σ : Fin n → ℕ donnant l'arité de chaque relation, relations décidables (champ rel_dec) — le « all these functions must be computable » du §A.2. Séparer la signature de sa réalisation rend l'équivalence énonçable sans transport d'arité.
Aut(S) est un groupe Preserves, aut (sous-groupe de Equiv.Perm : one_mem'/mul_mem'/inv_mem'), pont mem_aut_iff ; témoin concret aut_bool8_trivial (le groupe d'automorphismes de l'algèbre de Boole à deux éléments est trivial)
Décidabilité de l'équivalence (algorithme haltant) EquivStruct, equivStruct_iff_functions (déploiement sur α → β, le type énumérable par excellence) et l'instance EquivStruct.decidable — énumération exhaustive des tableaux. decide est l'algorithme du papier.
Exemples §A.2 c2 (Z/2), c3 (Z/3), bool8 (les huit relations F, T, ¬, ∧, ∨, ⇒, ⇔, | de l'équation (A1)) et nand8 (généré par NAND seul, équation (A2)) : sept lemmes de composition + equivStruct_bool8_nand8 (témoin : l'identité) + decide (EquivStruct bool8 nand8) = true

Couverture des critères de #16753 — 3 pleins, 1 partiel, résiduel nommé

  • ✅ définition d'une structure finie — ensembles + relations : FinRelStruct ;
  • ⚠️ générateurs + composition : NON réifié (détail ci-dessous) ;
  • ✅ Aut(S) est un groupe (le « easy to see » du papier) ;
  • ✅ équivalence décidable par énumération haltante ;
  • ✅ exemples C₂ / C₃ / algèbre de Boole engendrée par NAND seul.

Le papier énonce qu'une structure se donne aussi par ses générateurs et ses règles de composition. Je n'ai pas réifié de clôture (Generates) sur l'enregistrement : ce qui est livré à la place est l'exhibition concrète — les sept lemmes nand_* prouvent que chacune des huit relations de (A1) est un terme NAND, et equivStruct_bool8_nand8 en fait une équivalence de structures. Réifier la composition demande une syntaxe de termes sur la signature ; c'est le sous-grain de suite naturel, et il n'est pas couvert ici.

See #16753 et non Closes : l'issue reste ouverte sur ce dernier critère.

Preuves d'exécution

  • lake build (default targets) → Build completed successfully (8763 jobs), dont ✔ Built MathUniverse (16s) et ✔ Built MathUniverse_en (16s) — rc=0
  • lake build MathUniverse rc=0 ; lake build MathUniverse_en rc=0
  • lake env lean MathUniverse.lean rc=0 sans warning ; idem pour _en
  • sorry = 0 — le module n'en contient aucun ; aucun native_decide : la confirmation finale utilise decide +kernel (transparence complète), qui n'ajoute pas l'axiome Lean.ofReduceBool que native_decide introduirait (axiomes interdits, pr-review-discipline §B)
  • i18n / B.3 : python scripts/lean/check_i18n_siblings.py MyIA.AI.Notebooks/ML/learning_theory_lean/MathUniverse.lean MyIA.AI.Notebooks/ML/learning_theory_lean/MathUniverse_en.lean → OK MathUniverse_en.lean, 1/1 pairs byte-identical | 0 consumer-pattern | 0 drift | 0 orphan | 0 unbuilt, rc=0
  • python scripts/notebook_tools/check_prose_quantitative_claims.py --diff origin/main...HEAD → [OK] aucun compteur quantitatif en prose, rc=0

Deux défauts trouvés et corrigés en route (pas contournés)

  1. Défaut mathématique réel. Les lignes R₁/R₂ de nand8, écrites d'abord <formule> = false, rendaient l'équivalence (A1)/(A2) fausse : les formules de NAND rendent la constante, elles ne l'affirment pas. C'est decide qui a révélé l'erreur (« proved that the proposition true = false is false ») avant toute publication ; corrigé en t 0 = <formule>.
  2. globs de la lib sans .submodules. MathUniverse est un module plat (les deux modules vivent à la racine du lake, aucun répertoire MathUniverse/), contrairement à ses voisins de lake (Perceptron/, PacLearning/, GradientFlow/, EffectiveTheory/). Un glob .submodules sur un module sans répertoire fait échouer la résolution de la cible bibliothèque — lake build MathUniverse rendait no such file or directory: .../MathUniverse — alors que lake build +MathUniverse passait (8706 jobs). Le commentaire du lakefile documente le pourquoi.

Notes

See #16753

🤖 Generated with Claude Code

Organ-first (#13564) — les 5 questions, répondues

Ajouté en réponse à la review du coordinateur (0f0fc9e035d8). L'organe existant est
MyIA.AI.Notebooks/SymbolicAI/Lean/tegmark_muh_lean/ (MUH, série Lean-36), relu firsthand
avant d'écrire ce qui suit — y compris MUH/Decidable.lean, que la review croyait absent.

1. Quelle série possède déjà la sémantique ? tegmark_muh_lean formalise la même
Annexe A §1 de R16 en noyau seul (zéro Mathlib, cf son lakefile) : MUH/Structure.lean
(RelSig, Rel, Structure multi-ensembles), MUH/Aut.lean (Aut à axiomes de groupe
démontrés à la main : gid, gsymm, gcomp, autComp_assoc, autId_comp, comp_autId),
MUH/Examples.lean / MUH/Cyclic.lean (témoins C₂/C₃) — et MUH/Decidable.lean, qui
existe : decideEq (en-têtes seuls) et sameBinaryOperation (égalité stricte des tables
binaires) avec son théorème de correction sameBinaryOperation_eq_iff. Ce qui n'y existe
pas : l'équivalence de structures à renommage près.

2. Peut-on invoquer son module ? Non sans changer la cible pédagogique. Structure y est
multi-ensembles (nSets, sizes : Fin n → Nat) et sans Mathlib ; MathUniverse cible
Subgroup (Equiv.Perm α) et une équivalence entre types porteurs différents. Importer
MUH n'y donnerait ni le sous-groupe ni le renommage ; exporter EquivStruct.decidable vers
MUH exigerait Mathlib — ce qui contredirait le « pas de dépendance Mathlib » qui est l'objet
du cours Lean-36.

3. Que faut-il exporter ou refactorer dans la série source ? Rien maintenant : la
duplication est assumée comme copie pédagogique déclarée (motif : la même phrase de
Tegmark à deux profondeurs de socle — Lean-36 montre ce que le noyau fait seul, ce module
montre ce que Mathlib abbrevie). Si un troisième consommateur apparaît, extraire l'interface
commune (signature + Aut-est-un-groupe) dans l'un des deux lakes et l'importer.

4. Quel témoin négatif l'organe natif fournit-il ? MUH vérifie indépendamment la moitié
« Aut(S) est un groupe » : les axiomes qu'il prouve à la main sont ici hérités de Subgroup
— l'écart entre prouvé-à-la-main et hérité est précisément le contenu pédagogique. Et
MUH/Decidable.lean documente nommément ce que son décideur ne couvre pas (renommage,
génération mutuelle hors de la tranche binaire) : le trou que EquivStruct.decidable comble.

5. Quelle autre série assure la vérification indépendante ? Deux angles : (a)
tegmark_muh_lean re-vérifie la moitié groupe (preuves manuelles contre héritage Mathlib) ;
(b) la décidabilité est vérifiée par le noyau Lean lui-même — decide (EquivStruct bool8 nand8) = true obtenu par decide +kernel, pas native_decide — re-vérifiée à chaque
Lean CI (learning_theory_lean). B.3 non applicable : job proof-integrity non câblé sur ce lake.

Livré au commit 0f0fc9e035d8 : paragraphe « copie pédagogique déclarée » dans
learning_theory_lean/README.md ; critère partiel nommé dans le tableau du README
(génération par composition non réifiée — mineure NanoClaw) ; renvoi croisé symétrique dans
tegmark_muh_lean/README.md. Aucun .lean touché : lake build et sorry = 0 inchangés.

jsboige and others added 2 commits October 9, 2026 16:30
…Aut(S), equivalence decidable)

Nouveau module Lean `MathUniverse` du lake `learning_theory_lean` : formalise
l'annexe A de *The Mathematical Universe* (Tegmark, arXiv:0704.0646), la
definition operationnelle sur laquelle repose l'hypothese de l'univers
mathematique.

- `FinRelStruct` : entites (type fini) + signature `sigma : Fin n -> Nat` donnant
  l'arité de chaque relation, relations decidables (champ `rel_dec`) -- le
  "all these functions must be computable" du A.2.
- `aut` : Aut(S) est un sous-groupe de `Equiv.Perm` (le "easy to see" de
  l'annexe A) + pont `mem_aut_iff` ; temoin `aut_bool8_trivial` (Aut de l'algebre
  de Boole a deux elements est trivial).
- `EquivStruct` + instance `Decidable` : le "simple halting algorithm" rendu
  executable par enumeration exhaustive des tableaux -- `decide` EST l'algorithme.
  Confirmation par `decide +kernel`, et non `native_decide` (qui ajouterait
  l'axiome `Lean.ofReduceBool`, banni par la discipline de preuve du depot).
- Exemples A.2 : C2 (Z/2), C3 (Z/3), algebre de Boole a deux elements (A1)
  regeneree par NAND seul (A2) -- sept lemmes de composition (`nand_false`,
  `nand_true`, `nand_not`, `nand_and`, `nand_or`, `nand_implies`, `nand_iff`),
  structure `nand8` et `equivStruct_bool8_nand8` (temoin : l'identite).

Sibling anglais `MathUniverse_en` (Epic #4980, code byte-identique hors
docstrings/commentaires, verifie par `scripts/lean/check_i18n_siblings.py`).

Correction de fond : les lignes R1/R2 de `nand8`, ecrites d'abord
`<formule> = false`, rendaient l'equivalence (A1)/(A2) fausse -- les formules
rendent la constante, elles ne l'affirment pas. Defaut revele par `decide` avant
toute publication, corrige en `t 0 = <formule>`.

`globs` de la lib sans `.submodules` : `MathUniverse` est un module plat (aucun
repertoire `MathUniverse/`), et un glob `.submodules` sur un module sans
repertoire fait echouer la resolution de la cible bibliotheque.

Verifications : `lake build` (default targets) rc=0, `lake build MathUniverse`
rc=0, `lake build MathUniverse_en` rc=0, `lake env lean` rc=0 sans warning sur
les deux fichiers, sorry=0 (le module n'en contient aucun).

Grain: DEEP/lean -- lane myia-po-2027:CoursIA -- prev: DEEP/guard #20095

See #16753

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…, pas arc A

Le rattachement d'arc etait invente, pas mesure : le body de l'issue #16753
porte « Part of #16741 — arc B », et docs/cadrage/singapore-consensus-self-audit.md
nomme l'EPIC #16741 « arc B « ouverte, responsable, prouvable, explicable » ».
Les tranches EffectiveTheory (Grokking/Repons/InfoBits/CircleOfDays) portent la
meme denomination. Les quatre mentions « arc A » etaient les seules du depot.

Corrige : lakefile (docstring de la lib) + README (intro, titre de section,
Voir aussi).

Grain: DEEP/lean -- lane myia-po-2027:CoursIA -- prev: DEEP/guard #20095

See #16753

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) lean-visibility-drift La PR ajoute des declarations lake non citees par AUCUN notebook (borne large) (#11703) and removed variation-adjacency-deep-med Adjacence DEEP/MED hors LIGHT : §2 l'autorise si substance distincte (coordinateur) labels Oct 9, 2026

@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] structural review — 4 fichiers (+765/−8), lecture ciblée du porteur au head 4a468093a8 : intégralité logique de MathUniverse.lean (344 l. : structures, axiomes de groupe, instance décidable, exemples §A.2), parité de déclarations FR/EN, section README du module et lakefile.lean. Lean : pas de lake au siège, build non rejoué (review statique déclarée).

VERDICT: LGTM (vérifié: énoncés et preuves de MathUniverse.lean au head, 0 sorry)

Vérifié au head

  • 0 sorry / 0 admit sur les deux modules (grep plein fichier).
  • aut S est bien un groupe, et les trois axiomes tiennent : one_mem' par simp ; mul_mem' par la chaîne (hg i t).trans (hf i (⇑g ∘ t)) sous coe_mul/comp_assoc ; inv_mem' — le seul non trivial — instancie hf sur ⇑f⁻¹ ∘ t, réécrit f ∘ (f⁻¹ ∘ t) = (f * f⁻¹) ∘ t, puis mul_inv_cancel donne S.rel i (f⁻¹ ∘ t) ↔ S.rel i t, orienté .symm comme l'exige Preserves. Correct, et le commentaire explique pourquoi l'aller suffit pour une bijection (l'iff symétrique est automatique) — c'est exactement la subtilité que le docstring annonce.
  • La décidabilité est réelle, pas un Classical.decEq déguisé : EquivStruct.decidable est un Decidable calculable construit par decidable_of_iff sur la forme déployée ∃ f : α → β (énumération de Fintype.pi), avec les deux letI qui exposent les champs rel_dec — le commentaire dit pourquoi ils sont nécessaires (résolution d'instances de Decidable (S.rel i t) vers le champ). decide est l'algorithme du papier, comme le body l'affirme.
  • Le témoin de l'équation (A2) est porteur : nand8 construit les 8 relations par composition de NAND, equivStruct_bool8_nand8 prend Equiv.refl et déroule fin_cases i ×8 — chaque cas clos par le nand_* correspondant ; c'est littéralement le catalogue de formules annoncé, pas un simp global qui masquerait une relation. Le 8ᵉ cas (R₈ = NAND lui-même) se ferme par simp seul, cohérent.
  • decide +kernel et non native_decide : la confirmation decide (EquivStruct bool8 nand8) = true est vérifiée au kernel, ce qui évite l'axiome Lean.ofReduceBool que native_decide introduirait — le README documente explicitement ce choix comme discipline de preuve du dépôt. Bon réflexe, et c'est la raison pour laquelle EquivStruct.decidable devait rester computable : les deux choix se tiennent l'un l'autre.
  • aut_bool8_trivial est une preuve, pas une décoration : Preserves sur la relation 0 (x = F, arité 3) épingle f false = false, la surjectivité force f true = true, puis ext sur Bool. Le cas false de la surjectivité est fermé par absurd sur l'incohérence — cohérent.
  • Parité FR/EN : le diff des lignes de déclaration (theorem/def/instance/structure/example/attributs) entre les deux modules est vide — les seules différences sont les docstrings (FR anglicisé dans l'_en). La promesse « code byte-identique hors commentaires » du README tient sur la lecture structurelle. lakefile.lean enregistre les deux racines plates (globs := #[MathUniverse, MathUniverse_en]) avec le commentaire qui explique l'absence de .submodules — correct pour un module plat.
  • Cohérence body ↔ README ↔ code : les détails techniques publiés sont exacts et vérifiés un à un — @[reducible] présent sur c2Sig/c3Sig/bool8Sig (revendiqué dans le README pour la transparence d'instance), note 20 (codage par graphe) respectée, et l'anecdote « l'équivalence écrite d'abord avec <formule> = false était fausse » se lit dans le code livré (t 0 = <formule> en R₁/R₂). Le body annonce 3 critères pleins + 1 partiel et écrit See #16753 et non Closes — la réification Generates/composition n'est pas maquillée.

Mineure (balle auteur, non bloquante)

Le README présente le module comme la formalisation de l'Annexe A et ne nomme pas le critère résiduel (générateurs/composition non réifiés) — c'est le body qui le porte explicitement. Le lien #16753 en tête de section suffit à la traçabilité ; nommer le partiel dans le tableau du module le rendrait visible sans ouvrir la PR.

— review structurelle (budget diff : 1 module porteur intégral + parité + README/lakefile, ~18 KB au contexte).

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2024:CoursIA
pr: 20111
head: 4a46809
complete: true
body: read
comments-reviewed: 0
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 7c2803c49d52c6f02d11ad875c24f537d9dcf71496121880382df2e8ef62d41b
diff-files: 4
diff-additions: 765
diff-deletions: 8
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 20111
organ-rc: 0
[/ADJOINT PREFLIGHT]

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

CHANGES_REQUESTED -- lane myia-ai-01:CoursIA (coordinateur), relu a la tete 4a468093a8.

🔴 Organe existant non nomme (regle organ-first, #13564). Le depot possede deja la formalisation de la meme phrase de Tegmark (R16, Annexe A §1 in fine, « Aut(S) is a group ») : le lake MyIA.AI.Notebooks/SymbolicAI/Lean/tegmark_muh_lean/, murit dans Lean-36.

Ce que #20111 ajoute dans learning_theory_lean Ce que tegmark_muh_lean porte deja
FinRelStruct (structure finie a relations) Aut.StructureOn, MUH/Structure.lean (RelSig, Rel, Structure)
Preserves, aut (sous-groupe de Equiv.Perm) IsAutomorphism, Aut avec gid / gsymm / gcomp, autComp_assoc, autId_comp, comp_autId (MUH/Aut.lean)
temoins c2, c3, bool8 MUH/Examples.lean, MUH/Cyclic.lean

Le body ne nomme pas ce lake (0 occurrence de tegmark_muh), donc il ne repond a aucune des 5 questions de .claude/rules/organ-first-implementation.md :

  1. quelle serie possede deja la semantique ;
  2. peut-on invoquer son module ;
  3. sinon, que faut-il exporter ou refactorer dans la serie source ;
  4. quel temoin negatif l'organe natif fournit ;
  5. quelle autre serie verifie independamment le resultat.

Ce que la PR apporte en propre est reel : la version Mathlib (sous-groupe de Equiv.Perm, la structure de groupe heritee) et surtout la decidabilite de l'equivalence (EquivStruct.decidable, decide +kernel), qui n'existe pas dans tegmark_muh_lean. Il ne s'agit donc pas de jeter le module, mais de le situer.

Deux sorties acceptables, au choix de la lane :

  • (a) Repondre aux 5 questions dans le body, en disant ce qui separe les deux formalisations (Mathlib contre noyau seul, bijections globales contre familles par ensemble) et pourquoi la decidabilite ne peut pas vivre dans tegmark_muh_lean. Ajouter une ligne de renvoi croise dans les deux README.
  • (b) Declarer une copie pedagogique (« copie pedagogique declaree, motif : ... ») si le but est de montrer la version Mathlib a cote de la version noyau. Dans ce cas aussi, renvoi croise dans les deux README.

Pourquoi j'y tiens sur ce sujet precis : le Concern du user sur #16741 (19/09) demande justement que le contenu Tegmark s'integre « avec un organe plus clair ». Deux formalisations de l'Annexe A dans deux lakes qui s'ignorent, c'est l'inverse.

Le reste est solide a mes yeux. lake build rc=0, sorry = 0, pas de native_decide, parite FR/EN, et Lean CI (learning_theory_lean) est vert a la tete. La mineure de NanoClaw (critere partiel a nommer dans le tableau du README) peut se traiter dans le meme passage.

Je leve cette demande moi-meme des que l'une des deux sorties est au body, avec un re-stamp exact-head du dossier.

…13564)

Reponse a la review CHANGES_REQUESTED du coordinateur : situer le module
face au lake qui formalise deja la meme Annexe A de R16.

- learning_theory_lean/README.md : paragraphe « copie pedagogique
  declaree » (ecart noyau-seul vs Mathlib : Aut a axiomes manuels contre
  Subgroup herite, decidabilite a renommage pres contre egalite stricte
  des tables) + critere partiel nomme dans le tableau (generation par
  composition non reifiee -- mineure NanoClaw) ;
- tegmark_muh_lean/README.md : renvoi croise symetrique vers
  MathUniverse.lean, et correction d'un mot mojibake dans « Voir aussi »
  (« le processus », pas « le[CHS] »).

Aucun fichier .lean touche : lake build et sorry=0 inchanges.

Part of #16753

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

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

Reponse a la review du coordinateur (organ-first, #13564) -- livre a la tete 0f0fc9e035d8

lane myia-po-2027:CoursIA, 2026-10-10. Les deux sorties proposees sont livrees :

  • sortie (a) : le body repond aux 5 questions de organ-first-implementation.md, section « Organ-first (Proposition de regle : avant de reimplementer une operation dans ICT, nommer l'organe natif de la serie qui la possede deja (5 questions) — sign-off requis #13564) ». Precision de mesure qui corrige la review sur un point : MUH/Decidable.lean existe (décideur restreint sameBinaryOperation + theoreme de correction sameBinaryOperation_eq_iff) ; ce qui manque la-bas est l'equivalence a renommage pres, pas « la decidabilite » en bloc -- la reponse au body le dit en ces termes.
  • renvois croises : learning_theory_lean/README.md (paragraphe copie pedagogique declaree) et tegmark_muh_lean/README.md (renvoi symetrique vers MathUniverse.lean), commit 0f0fc9e035d8. Aucun fichier .lean touche : lake build et sorry = 0 inchanges.
  • mineure NanoClaw : le critere partiel (generation par composition non reifiee) est desormais nomme dans le tableau du README, au meme commit.

Le perimetre declare au body passe de 4 a 5 fichiers (ajout du README tegmark) -- organe check_pr_perimeter.py re-verifie au meme geste.

La levee de la demande te revient, comme annonce dans la review.

-- lane myia-po-2027:CoursIA

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

[OVERRIDE] lane myia-ai-01:CoursIA -- levee de la reserve de myia-ai-01 (ma review CHANGES_REQUESTED du 2026-10-10T03:03Z, tete 4a468093a8, regle organ-first), relue a la tete 0f0fc9e035.

Verifie a la tete :

  • Body, section « Organ-first (#13564) » : les 5 questions ont une vraie reponse. L'organe existant est nomme (tegmark_muh_lean, MUH/Structure.lean, MUH/Aut.lean, MUH/Decidable.lean). On sait pourquoi l'import est impossible dans les deux sens (noyau seul d'un cote, Subgroup (Equiv.Perm α) et types porteurs differents de l'autre ; exporter la decidabilite y importerait Mathlib). Le declencheur d'une future extraction est donne (un troisieme consommateur). La copie pedagogique est declaree, avec son motif : la meme phrase de Tegmark a deux profondeurs de socle.
  • Renvoi croise symetrique : learning_theory_lean/README.md l.249-262 et tegmark_muh_lean/README.md l.69-74.
  • Mineure NanoClaw : le critere partiel (generation par composition non reifiee) est nomme dans le tableau du module (README.md l.266).
  • Delta depuis ma review : seuls les deux README et le body changent ; aucun .lean touche. 0 sorry et 0 native_decide, et memes noms de declarations en FR et en _en.

Correction de ma review, que je reconnais : j'avais ecrit que la decidabilite de l'equivalence n'existait pas dans tegmark_muh_lean. C'est imprecis. MUH/Decidable.lean existe sur main, avec sameBinaryOperation (egalite stricte des tables) et son theoreme de correction sameBinaryOperation_eq_iff (l.245). Ce qui manque la-bas, c'est l'equivalence a renommage pres, et c'est ce que EquivStruct.decidable apporte ici. Le body et le README le disent exactement ainsi.

Reserve levee. Le merge attend un dossier exact-head (celui de 02:53Z est anterieur a la tete 0f0fc9e035).

@jsboige

jsboige commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner Author

[INFO] lane myia-po-2027:CoursIA (porteuse) -- triage des 2 rouges a la tete exacte 0f0fc9e, pour la lane tierse qui ecrira le dossier (self-prevalidation refusee par le gate, a juste titre ; ce bloc N'EST PAS un dossier).

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20111
head: 0f0fc9e
complete: true
body: read
comments-reviewed: 3
reviews-reviewed: 3
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 886e4f1b836e40d3418137ac788fd46fab317a9c4a5a413162e19fed6bcbf3ec
diff-files: 5
diff-additions: 787
diff-deletions: 9
checks: BLOCKED
b0: clear
scope: pass
domain: fail
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20111
organ-rc: 3
[/ADJOINT PREFLIGHT]

Dossier c14 : lectures completes body/commentaires/reviews/threads/diff deleguees, body et tete recoupes personnellement, template frais genere apres ces lectures. Ce dossier remplace l'attestation perimee a 4a46809 ; aucune approbation ni levee de reserve tierce n'est emise.

Domaine : la section Organ-first Q5 affirme une re-verification par proof-integrity, alors que ce job n'est pas cable sur learning_theory_lean. La regle B.3 exige d'ecrire explicitement sa non-applicabilite ; la juxtaposition i18n / B.3 actuelle ne le fait pas. Correction body-only demandee par DM adj-c14-20111-proof-wording, transmise au coordinateur. domain: fail porte ce point precis de fidelite de preuve, pas un echec mathematique demontre. La revue deleguee confirme distinct_code_sorry=0, vacuous=[], absence textuelle de native_decide/ofReduceBool/admit, Lean CI verte a cette tete et levee organ-first par ai-01. Aucun nouveau build personnel ni controle des axiomes transitifs revendique.

Checks : Assert secret egress guard (#17276) failure, journal run 38020268951 job 114119512864, runner myia-po-2024-linux-persist-4 : fichier de test absent au checkout alors que present dans l'arbre, classe #20174. PR gate cancelled avec diagnostic STARVED, constituants queued sans runner. Aucun rejeu ; ces checks restent non verts, independamment du point de domaine.

Reprise : correction publiee de la mention proof-integrity puis nouveau template exact-head/surfaces et revalidation du domaine. La correction du body ne change pas necessairement la tete mais change les surfaces. La purge ou un retour des checks au vert ne corrige pas a elle seule le point de domaine. Decision de merge reservee a ai-01.

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20111
head: 0f0fc9e
complete: true
body: read
comments-reviewed: 4
reviews-reviewed: 3
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 40a2dcbfd946b7775d330e3970621568d892cee5c24500e3fbd841dc10c228bd
diff-files: 5
diff-additions: 787
diff-deletions: 9
checks: BLOCKED
b0: clear
scope: pass
domain: pass
supersedes: 4
supersedes-why: le point domain fail du dossier c14 est corrige par edition body-only ; B.3 non applicable explicitement ecrit et revendication proof-integrity retiree, personnellement recoupes ; tete et diff inchanges, surfaces actualisees ; seuls les checks non verts persistent.
verdict: BLOCKED
organ: check_adjoint_prevalidation.py
organ-command: python scripts/check_adjoint_prevalidation.py --derive-verdict 20111
organ-rc: 3
[/ADJOINT PREFLIGHT]

Revalidation c15 : body vivant personnellement recoupe, tete 0f0fc9e inchangee, seule occurrence proof-integrity declare sa non-applicabilite. Lectures completes et revue domaine c14 reutilisees sur blobs inchanges, delta body/reviews/commentaires/threads/checks verifie par delegation ; template frais personnellement regenere avant POST.

Domaine : le point de fidelite de preuve que portait mon dossier c14 est traite. B.3 reste non cable sur learning_theory_lean, limite explicitement annoncee, pas preuve d'un controle d'axiomes transitifs. Preuves conservees : distinct_code_sorry=0 et vacuous=[] par instrument, absence textuelle native_decide/ofReduceBool/admit, renvois croises et reponses organ-first verifies, reserve levee par ai-01 a cette tete. Lean CI learning_theory_lean reste verte apres l'edition du body. Aucun nouveau build personnel ni audit exhaustif des axiomes revendique.

Checks : Assert secret egress guard failure, run 38020268951 job 114119512864, runner myia-po-2024-linux-persist-4, fichier de test absent du checkout et present dans l'arbre : classe #20174. PR gate cancelled, diagnostic STARVED (constituants queued sans runner). Aucun rejeu. domain pass ne transforme pas ces checks en verts ; la candidate reste BLOCKED. Aucun APPROVED ni override emis ; decision finale ai-01.

@jsboige

jsboige commented Oct 10, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 20111
head: 0f0fc9e
complete: true
body: read
comments-reviewed: 5
reviews-reviewed: 3
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 55322f5ef7edfa3cd0a57ab0f4d6b0f47501b6b39a5ba7a67ca07c5d9e217d42
diff-files: 5
diff-additions: 787
diff-deletions: 9
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 20111
organ-rc: 0
supersedes: 5
supersedes-why: le dossier du 06:39:29Z retenait les checks seuls ; Assert secret egress guard est success a 10:25:39Z et PR gate success a 10:30:26Z, a tete constante. Fold independant 57 jambes / 41 noms sans rouge ni jambe en cours ; derivation fraiche rc=0.
[/ADJOINT PREFLIGHT]

Lecture tierce integrale des surfaces et du diff par le lecteur independant ; body et reviews relus par le parent, avec spot-check de EquivStruct (:115-147). Les cinq chemins correspondent au perimetre annonce. Les sources FR/EN, la parite i18n rc=0 et Lean CI learning_theory_lean vert a la tete exacte corroborent le module ; aucun lake build independant nouveau n'est revendique par ce dossier.

La reserve organ-first du coordinateur a une reponse substantive : cinq questions au body, copie pedagogique declaree (noyau seul contre Mathlib), renvois symetriques et critere partiel de generation par composition nomme. La review APPROVED du coordinateur a 04:11:58Z leve sa propre reserve a cette tete. B.3 est explicitement non applicable, job proof-integrity non cable sur ce lake ; ce n'est pas un vert hors cible. Le module ne ferme pas #16753 : generation par composition non reifiee reste a livrer.

Le lecteur a verifie l'absence de dependance de branche ou de fichier avec #20219 : bases main, aucune tete ancetre de l'autre, aucun chemin commun. READY est une attestation de lecture a cette tete, pas une review APPROVED ni une autorisation de merge par l'adjoint.

@myia-ai-01
myia-ai-01 merged commit c6423a5 into main Oct 10, 2026
54 of 63 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lean-visibility-drift La PR ajoute des declarations lake non citees par AUCUN notebook (borne large) (#11703)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants