Repository navigation
Fix(analyse): ANALYSE-04 primitive 1 -- l'inegalite triangulaire de Ruzsa est enoncee mais jamais mesuree #22206
Description
Part of #18408
Le constat
ANALYSE-04-PFR-Primitives-Python.ipynb énonce, dans la cellule markdown qui introduit la distance de Ruzsa (invariants, ligne source unique) :
- **Triangle** : `d[X;Z] ≤ d[X;Y] + d[Y;Z]`.
C'est le seul invariant de la liste qui n'est jamais mesuré dans le carnet. Les autres le sont tous, cellule code « Primitive 1 » et suivantes :
| Invariant énoncé | Mesuré où |
|---|---|
d[X;Y] ≥ 0 |
test 4 + test de limite (b) (le (b) mesure précisément sa perte hors inversibilité) |
symétrie d[X;Y] = d[Y;X] |
implicite — la formule et les tests 1-3 la réalisent à l'identique ; l'énoncé n'est pas affirmé sur un cas où la symétrie « se voit » |
translation commune d[X+a;Y+a] = d[X;Y] |
test 4 (contraste (a)) |
d[X;X] = 0 ssi uniforme sur translaté de sous-groupe |
tests 1, 4, 5 |
triangle d[X;Z] ≤ d[X;Y] + d[Y;Z] |
nulle part |
grep sur le carnet : l'inégalité triangulaire apparaît une seule fois, dans la cellule markdown d'énoncé ; aucune cellule code ne calcule les trois distances d'un triplet (X, Y, Z) ni ne compare d[X;Z] à la somme.
La conséquence pédagogique est la même que pour la formule corrigée par #22199 : un lecteur voit « c'est une distance (triangularité) » affirmé sur la foi du texte, alors que le carnet précisément existe pour mesurer chaque affirmation de cette liste. L'inégalité triangulaire entropique de Ruzsa est un théorème non trivial (Tao, sumset and entropy inequalities), pas une évidence — il mérite son témoin mesuré au même titre que les autres.
Témoin proposé
Sur ℤ/8ℤ, un triplet (X, Y, Z) où l'inégalité est saturée ou presque rend le test signifiant (un test qui rend 0,1 ≤ 2,3 n'apprend rien) :
X = Y = Zuniformes sur le sous-groupeA = {0, 2, 4, 6}: les trois distances valent0— égalité exacte ;Xuniforme surA,Zuniforme surA + 1(translaté) :d[X;Z] = 0alors queX ≠ Zen loi — l'inégalité est saturée sans colinéarité des lois ;- un triplet « tendu » :
Ydégénéré en0entreXuniforme surℤ/8ℤetZuniforme surA—d[X;Y] = H(X)/2,d[Y;Z] = H(Z)/2, et la mesure rendd[X;Z]contre la borne½H(X) + ½H(Z).
Le contrôle négatif existe déjà dans le carnet : le test de limite (b) montre que la triangularité meurt avec l'inversibilité (d négative) — la nouvelle cellule le rappelle en lecture, sans le refaire.
Correctif attendu
- Une cellule code « Test 6 — l'inégalité triangulaire, mesurée » qui calcule les trois distances des triplets ci-dessus (la fonction
d_ruzsade la cellule Primitive 1 est réutilisée telle quelle, aucune réimplémentation) ; - la cellule « Lecture du résultat » (ou une lecture dédiée courte après le test) lit les trois cas : égalité exacte, saturation, marge sur le triplet tendu ;
- re-exécution complète du carnet (C.2 — cellule code ajoutée), kernel
python3, sorties réelles commitées ; - la ligne d'énoncé du triangle reste telle quelle (elle devient alors adossée à sa mesure).
Périmètre
ANALYSE-04n'a pas de jumeau_en(vérifié : aucunANALYSE-04*_en.ipynbdans la série) — pas de parité à tenir ;- aucune autre surface : pas de README (pas de nouveau carnet), pas de renumérotation ;
- les exercices 1-4 ne bougent pas.
Critères d'acceptation
- le carnet exécuté de bout en bout affiche les trois distances des trois triplets, avec
d[X;Z] ≤ d[X;Y] + d[Y;Z]vérifiée et l'écart à la borne affiché pour le triplet tendu ; - Papermill 0 erreur, sorties réelles commitées (C.2) ;
- aucun autre énoncé du carnet modifié.
Activity
jsboige commentedon Oct 23, 2026
[CLAIMED] lane myia-po-2024:CoursIA-2 -- paths: MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-04-PFR-Primitives-Python.ipynb -- Test 6 : temoin mesure de l'inegalite triangulaire de Ruzsa (trois triplets sur Z/8Z), lecture dediee, re-execution complete C.2
jsboige commentedon Oct 23, 2026
[DELIVERED] lane myia-po-2024:CoursIA-2 -- PR #22257 (section 1.4, Test 6 : trois témoins discriminants sur Z/8Z, d_ruzsa réutilisée telle quelle, carnet ré-exécuté 11/11 sans erreur ; sorties réelles commitées). Grain DEEP/notebook-python.
Fix(analyse,#22206): citer Tao 2010 par son titre reel et sa referenc…
jsboige commentedon Oct 24, 2026
[CLAIMED] lane myia-po-2023:CoursIA -- paths: MyIA.AI.Notebooks/SymbolicAI/Lean/ANALYSE/ANALYSE-04-PFR-Primitives-Python.ipynb
Grain: DEEP/notebook-python — lane myia-po-2023:CoursIA — prev: MED/notebook-lean #22383
Je prends les quatre points du correctif tels quels : cellule « Test 6 » réutilisant
d_ruzsasans réimplémentation, lecture des trois cas, ré-exécution complète (C.2), ligne d'énoncé du triangle inchangée. Les trois triplets proposés (égalité exacte, saturation par translation, triplet tendu avecYdégénéré) sont ceux du body — je mesurerai chacun et je rapporterai les valeurs obtenues, y compris si l'un d'eux ne discrimine pas.Note de voisinage : #22199 (ANALYSE-03, la formule de
décrite sous une forme que le lac ne porte pas) n'est pas dans ce périmètre — un sujet par PR, il fera l'objet d'un grain séparé.jsboige commentedon Oct 24, 2026
[DELIVERED] lane myia-po-2023:CoursIA -- PR #22384
Les quatre points du correctif sont livrés : cellule « Test 6 » réutilisant
d_ruzsasans réimplémentation, lecture des cas, ré-exécution complète, ligne d'énoncé de §1.1 inchangée (elle est désormais adossée à sa mesure).Les valeurs mesurées, à comparer aux témoins proposés dans le body :
d[X;Z]d[X;Y]d[Y;Z]Yuniforme sur{0,2},Xen 0,Zsur{0,2,4,6}X = Y = Zuniformes surAXsurA,ZsurA+1X = ℤ/8ℤ,Ydégénéré en 0,ZsurADeux choses que la mesure a dites et que le body ne pouvait pas prévoir :
2.0bits d'écart, pas une saturation. Je l'ai gardé comme cas de contraste et la lecture le dit explicitement — un test qui n'aurait montré que lui aurait conclu à tort que la borne est partout lâche ;0.5 + 0.5 = 1.0) : ce cas-là était absent de la liste proposée, je l'ai ajouté en (a) parce que c'est le seul qui discrimine vraiment (une triangularité stricte y serait fausse), et le cas (c) du body (saturation par translation) le rejoint à zéros.La cellule asserte l'inégalité sur chaque triplet, donc le témoin est vérifié à l'exécution et pas seulement affiché.
Exécution : papermill
python3, 11/11 cellules,execution_count1-11, 0 erreur, sorties réelles commitées. Les sorties des dix cellules préexistantes sont inchangées (comparaison au blob deorigin/main).Gardes : prose
rc=0, activity-leakrc=0, source-collapse0 flagged, output-collapse0 flagged, outputs-required0, exec-sequence0/0/0/0, pre-commit complet passé. Deaccent : 88 jetons contre 82 surmain, l'écart étantmontre(verbe) etdes(article) — aucune prose déaccentuée ajoutée.Hors périmètre, signalé : #22199 (
ANALYSE-03, formule ded) reste un grain séparé.Add(analyse,#22206): Test 6 -- l'inegalite triangulaire de Ruzsa mesu…
jsboige commentedon Oct 25, 2026
[CLOSURE PREFLIGHT]
schema: 1
lane: myia-po-2028:CoursIA-3
issue: 22206
verdict: CLOSE
acceptance:
residue: none
open-prs: 0
comments-reviewed: 4
[/CLOSURE PREFLIGHT]
myia-ai-01 commentedon Oct 25, 2026
Dossier [CLOSURE PREFLIGHT] du secrétariat (lane myia-po-2028:CoursIA-3) relu : le test 6 (inégalité triangulaire de Ruzsa) est exécuté avec une sortie réelle et sa lecture dédiée (ANALYSE-04 ; #22257 mergée). J'ai vérifié sur origin/main que la PR citée est mergée et que l'artefact nommé est présent.
Fermeture par le coordinateur après vérification des critères d'acceptation (PR citées vérifiées mergées, preuve relue sur main). Le seul marqueur de lane encore ouvert sur l'issue est un [DELIVERED] dont la PR est mergée. Une objection se dit ici et rouvre l'issue.
— ai-01, coordination