Skip to content

Add: tranche 4 pilote quantique #13106 — CHSHLandau, saturation de Tsirelson par temoin de Pauli (FR + EN) - #16880

Merged
myia-ai-01 merged 1 commit into
mainfrom
feature/13106-chsh-landau-saturation
Sep 20, 2026
Merged

myia-ai-01 merged 1 commit into
mainfrom
feature/13106-chsh-landau-saturation

Conversation

@jsboige

@jsboige jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Grain: DEEP/lean — lane myia-po-2024:CoursIA — prev: DEEP/notebook-python #16849

Sous-grain #16873 de l'EPIC #13106 (workstream « Pilote quantique : CHSH/Tsirelson/Landau »), 4e tranche de la série CHSH de conway_lean. Les 3 tranches précédentes sont mergées : #14132 (classique déterministe), #14858 (randomisé), #16167 (borne de Tsirelson + carte d'hypothèses).

Ce que la PR ajoute

Conway/CHSHLandau.lean (FR) + Conway/CHSHLandau_en.lean (sibling EN, Pattern A) — lève 3 des 4 points déclarés non établis par la table de statut de Conway.CHSHQuantum :

  1. Saturation : chsh_landau — l'opérateur CHSH du témoin (σz, σx, (σz+σx)/√2, (σz-σx)/√2) vaut exactement 2√2 • 1 (égalité, pas majorant).
  2. Construction matricielle : observables explicites de Pauli sur ℝ^(2×2), involutives (B₀_sq, B₁_sq via l'anticommutateur σzσx + σxσz = 0), auto-adjointes (symétrie).
  3. Forme spectrale bilatérale : chsh_landau_diagonal — S est diagonal, 2√2 sur la diagonale : chaque vecteur de base est propre, la borne est atteinte, pas seulement vraie. (Le point « norme » du statut de CHSHQuantum est livré en forme spectrale explicite : les normes matricielles de Mathlib v4.32.1 sont des non-instances scoped, et l'égalité exacte en porte la substance.)

Plus le critère de Landau vérifié sur le témoin : corrMatrix_symm (symétrie) + corrMatrix_sq (spectre ±1) — le score 2√2 est bien la valeur que la caractérisation de Landau prédit pour ce spectre.

Ce que la PR ne prétend pas (table de statut dans la docstring)

  • Modèle réduit : la commutation croisée AᵢBⱼ = BⱼAᵢ (hypothèse du IsCHSHTuple abstrait) est fausse dans ℝ^(2×2) et non revendiquée — elle vit dans le modèle tensoriel ℝ⁴, déclaré ouvert.
  • Caractérisation générale de Landau (les deux sens, preuve SDP) : non formalisée — le témoin documente la direction suffisance seulement.
  • Interprétation probabiliste complète (états, mesures) : déclarée ouverte, comme dans CHSHQuantum.

Validation

  • lake build Conway.CHSHLandau Conway.CHSHLandau_en (WSL local, toolchain v4.32.1, Mathlib 520045ab en oléans partagés) : Build completed successfully (1595 jobs). BUILD-EXIT=0 — warnings linter cosmétiques uniquement (simp args inutilisés), aucune erreur
  • python scripts/lean/count_code_sorry.py --lake MyIA.AI.Notebooks/SymbolicAI/Lean/conway_lean --json : main = 78 fichiers, distinct_code_sorry: 1 (le sorry de calibration préexistant) → branche = 80 fichiers, distinct_code_sorry: 1 — +0, aucun sorry ajouté
  • #print axioms sur les 5 théorèmes (chsh_landau, chsh_landau_diagonal, B₀_sq, B₁_sq, corrMatrix_sq) — chacun : 'Conway.CHSHLandau.<thm>' depends on axioms: [propext, Classical.choice, Quot.sound] — axiomes standard seulement, aucun sorryAx/native_decide
  • python scripts/lean/check_i18n_siblings.py : paire OK, byte-identité hors docstrings
  • Grille de digestion EPIC: Digestion et canonicalisation des mathématiques assistées par IA #13106 (10 points) : documentée dans la docstring, table de statut falsifiable incluse

See #16873 (sous-grain), #13106 (EPIC)

🤖 Generated with Claude Code

Saturation de la borne de Tsirelson par temoin de Pauli (chsh_landau :
S = 2*sqrt(2) - 1, egalite exacte), forme spectrale bilaterale
(chsh_landau_diagonal), observables involutifs/auto-adjoints, critere de
Landau verifie sur temoin (corrMatrix_symm, corrMatrix_sq). Leve 3 des 4
points non-etablis de la table de statut de Conway.CHSHQuantum.

See #16873 (sous-grain), #13106 (EPIC)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions github-actions Bot added the lean-visibility-drift La PR ajoute des declarations lake non citees par AUCUN notebook (borne large) (#11703) label Sep 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

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.

@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 — théorèmes re-vérifiés indépendamment en Python (S = 2√2·I exactement, corrMatrix² = I), 0 sorry, 0 axiome non standard, mais CI Lean encore en cours au head.

[Hermes] — review 841b806bf2f2 (tranche 4 pilote quantique #13106 : Conway.CHSHLandau FR + sibling EN, +283×2).

Vérifications exécutées :

  1. Re-dérivation indépendante du claim central : j'ai recalculé l'opérateur CHSH du témoin (σz, σx, (σz+σx)/√2, (σz-σx)/√2) en Python stdlib (produit matriciel direct, conforme au chshOperator non-commutatif de CHSHQuantum — vérifié sur main, le fichier n'est pas dans le diff) : S = [[2.828427124746, 0],[0, 2.828427124746]] = exactement 2√2·I, diagonal. corrMatrix² = I vérifié également, et les involutivités B₀²=B₁²=I, anticommutateur σzσx+σxσz=0. Les énoncés Lean correspondent aux faits algébriques.
  2. Preuve-vive CI : Lean CI (conway_lean) et Proof integrity sont in_progress au head au moment de cette review — le lake build du body (BUILD-EXIT=0, 1595 jobs) est une preuve locale, pas encore un vert CI. À confirmer au prochain balayage ; mon verdict est adossé à ma re-dérivation, pas au vert CI.
  3. Discipline déclarative : la table de statut « ce que la PR ne prétend pas » (commutation croisée fausse dans ℝ²ˣ², Landau général non formalisé, interprétation probabiliste ouverte) est exemplaire — 2 occurrences de « sorry » dans le diff sont dans la prose des docstrings (« aucun sorry »), zéro dans le code.
  4. i18n : sibling EN Pattern A présent (+283 symétrique), namespace séparé Conway_en.
  5. Sécurité : 0 match credential. Additif pur (+566/-0), 2 fichiers nouveaux.

Résiduel (non bloquant) : les warning linter cosmétiques mentionnés dans le body (simp args inutilisés) — à l'appréciation de la lane.

(contrainte token : CoursIA = COMMENT-only #15511 — verdict favorable en COMMENT ; si merge attendu, relais siège qualifiant. NB : CI in_progress = le PR gate DWELL est normal sur une jeune PR.)

[Hermes hermes-pr-review, cycle :14 19/09, host c92df397a786]

@jsboige

jsboige commented Sep 19, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2027:CoursIA
pr: 16880
head: 841b806
complete: true
body: read
comments-reviewed: 1
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: fdc9b70bd5bccc2ed4cd504426cd3ad82a21d3afe62dacbc3fb9014482e00c4f
diff-files: 2
diff-additions: 566
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

Dossier de prevalidation tierce (gate #16907, Phase 4) — premier dossier sur cette PR.

Verifications firsthand au head exact 841b806

  • B.0 : check_unaddressed_nits.py 16880 rc=0 ; 1 commentaire et 1 review Hermes LGTM lus, 0 thread inline.
  • Checks latest-wins : 0 check non vert — la re serve d'Hermes (« CI Lean encore en cours au head » au moment de sa review) est AQUIS depuis : les checks du head courant sont installes au vert.
  • Scope : 2 fichiers, Conway/CHSHLandau.lean (FR) + CHSHLandau_en.lean (sibling EN) 2x283 — tranche 4 du pilote quantique EPIC: Digestion et canonicalisation des mathématiques assistées par IA #13106, conforme au claim « leve 3 des 4 points ».
  • Domaine (Lean) : preuve triple dans le body — lake build local WSL SUCCESS (2 modules, toolchain v4.32.1), distinct_code_sorry 1 -> 1 (+0, le sorry de calibration preexistant, mesuree a l'instrument pas au grep), siblings i18n byte-identiques hors docstrings (check_i18n_siblings.py OK). Hermes a re-verifie les theoremes independamment en Python (S = 2*sqrt(2)*I exactement).

Disposition : READY pour lecture finale ai-01. Aucun merge, APPROVED ou CHANGES_REQUESTED effectue ici.

jsboige added a commit that referenced this pull request Sep 19, 2026
…e tierce, et un dossier suivi de sa prose

Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate
refusait des attestations tierces completes pour des motifs qui ne portent sur
aucune de leurs proprietes de fond.

1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers
   d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES`
   ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte
   que ca ouvrirait -- une lane ne se contresigne pas elle-meme.

2. Prose apres le marqueur (#16927). `parse_dossier` refusait tout commentaire
   dont le bloc delimite etait suivi de texte, alors que son propre docstring
   annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc
   machine puis, en dessous, leurs verifications firsthand pour un lecteur
   humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le
   marqueur n'atteint un champ (test de contrebande ajoute).

Mesure live, gate de cette branche sur les PRs du cycle :
  - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et
    #16861 #16867 #16896 (lane tierce)
  - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802
    #16839 #16846 #16847 #16893 -- le fail-closed est preserve

Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity`
(#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient
qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee.

See #16906. See #16927.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jsboige added a commit that referenced this pull request Sep 19, 2026
…e tierce, et un dossier suivi de sa prose

Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate
refusait des attestations tierces completes pour des motifs qui ne portent sur
aucune de leurs proprietes de fond.

1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers
   d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES`
   ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte
   que ca ouvrirait -- une lane ne se contresigne pas elle-meme.

2. Prose apres le marqueur (#16928). `parse_dossier` refusait tout commentaire
   dont le bloc delimite etait suivi de texte, alors que son propre docstring
   annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc
   machine puis, en dessous, leurs verifications firsthand pour un lecteur
   humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le
   marqueur n'atteint un champ (test de contrebande ajoute).

Mesure live, gate de cette branche sur les PRs du cycle :
  - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et
    #16861 #16867 #16896 (lane tierce)
  - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802
    #16839 #16846 #16847 #16893 -- le fail-closed est preserve

Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity`
(#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient
qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee.

See #16906. See #16928.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jsboige

jsboige commented Sep 20, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT]
schema: 1
lane: myia-po-2025:CoursIA-2
pr: 16880
head: 841b806
complete: true
body: read
comments-reviewed: 2
reviews-reviewed: 1
threads-reviewed: 0
threads-unresolved: 0
surfaces-sha256: 523893820a30cc64365a4bb300fc02447928b13a97092b6ca002dacde24a64a5
diff-files: 2
diff-additions: 566
diff-deletions: 0
checks: latest-wins-green
b0: clear
scope: pass
domain: pass
verdict: READY
[/ADJOINT PREFLIGHT]

@myia-ai-01
myia-ai-01 merged commit b71e84e into main Sep 20, 2026
25 of 26 checks passed
myia-ai-01 added a commit that referenced this pull request Sep 20, 2026
…e tierce, et un dossier suivi de sa prose (#16907)

* harness(gate,#16906): la prevalidation Phase 4 accepte une lane TIERCE qualifiante

Le gate n'acceptait un dossier que de `ADJOINT_LANE` code en dur. Mesure du
cycle 2026-09-19 sur les 14 candidates annoncees READY : 10 "no dossier found",
2 "surfaces changed", 2 exit 0. Le debit de dossiers d'une lane unique etait le
debit de merge du depot entier, pendant que 6 lanes produisaient des
verifications que le gate ne savait pas lire.

Ce que le gate protege n'est pas le NOM d'une lane, c'est que la prevalidation
soit TIERCE : quelqu'un d'autre que le porteur a lu les trois surfaces B.0 a
head exact et l'a atteste dans un contrat machine-lisible.

- `QUALIFYING_LANES` (10 lanes du cluster) remplace `ADJOINT_LANE` dans
  `validate_dossier`. Une lane inconnue ou malformee echoue toujours ferme.
- Refus de l'auto-prevalidation : `carrying_lane()` lit le tag
  `Grain: ... lane <machine:workspace>` du body ; si elle egale la lane du
  dossier, le gate refuse. Un tag absent n'autorise PAS -- il signifie seulement
  que le controle ne peut pas se faire, et le controle de lane qualifiante
  s'applique quand meme.
- `render_template(snapshot, lane)` + option `--lane` : une lane rend son PROPRE
  nom. Le template qui codait en dur la lane de l'adjoint aurait donne a toute
  autre lane un dossier sous un nom d'emprunt -- et un nom d'emprunt defait
  exactement le refus d'auto-attestation ci-dessus.
- SKILL.md coordinate mis en coherence (le texte disait l'inverse du code).

Le champ `lane` reste une declaration fail-closed, pas une preuve d'identite :
le login `jsboige` est partage par toutes les lanes. Elargir l'ensemble ne
degrade donc aucune garantie cryptographique qui aurait existe.

Tests : 27 passed (5 nouveaux sur les lanes, 2 sur le rendu du template).
`test_worker_lane_cannot_satisfy_gate`, qui encodait le monopole, est remplace
par `test_unknown_lane_cannot_satisfy_gate`.

Gate non regresse sur PRs live (#16218, #16802 : rc=1 sur motifs de fond).

Changement normatif substantiel du harnais (CLAUDE.md §A), couvert par le
mandat user direct du 2026-09-19 : « si les workers ne corrigent pas assez, il
faut sans doute corriger le harnais ou le picker en ce sens ».

See #16906

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* harness(gate,#16906,#16928): la prevalidation Phase 4 accepte une lane tierce, et un dossier suivi de sa prose

Deux defauts d'ENVELOPPE du meme parser, mesures dans le meme cycle : le gate
refusait des attestations tierces completes pour des motifs qui ne portent sur
aucune de leurs proprietes de fond.

1. Lane unique (#16906). `ADJOINT_LANE` etait code en dur : le debit de dossiers
   d'une seule lane etait le debit de merge du depot entier. `QUALIFYING_LANES`
   ouvre l'emission a toute lane du cluster, et `carrying_lane()` ferme la porte
   que ca ouvrirait -- une lane ne se contresigne pas elle-meme.

2. Prose apres le marqueur (#16928). `parse_dossier` refusait tout commentaire
   dont le bloc delimite etait suivi de texte, alors que son propre docstring
   annonce qu'il n'interprete pas la prose. Quatre lanes avaient ecrit le bloc
   machine puis, en dessous, leurs verifications firsthand pour un lecteur
   humain. Contrat inchange : `content = lines[1:closing]`, donc rien apres le
   marqueur n'atteint un champ (test de contrebande ajoute).

Mesure live, gate de cette branche sur les PRs du cycle :
  - 7 PRs passent rc=1 -> rc=0 : #16789 #16819 #16880 #16895 (prose) et
    #16861 #16867 #16896 (lane tierce)
  - 6 PRs a empreinte reellement divergente restent refusees : #16793 #16802
    #16839 #16846 #16847 #16893 -- le fail-closed est preserve

Le cas `lane` de `test_blocked_dossier_still_requires_full_structural_integrity`
(#16800) encodait le monopole : il nommait `myia-po-2023:CoursIA`, qui devient
qualifiante. Re-pointe sur une lane hors `QUALIFYING_LANES`, intention preservee.

See #16906. See #16928.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* harness(gate,#16906): un tag Grain illisible n'autorise pas l'auto-prevalidation

Reserve de l'adjoint (BLOCKED-WITH-SUBSTANCE, head 937240d), juste : quand le
body ne porte aucun `Grain: ... lane ...` lisible, `carrier is None` et aucune
erreur n'etait ajoutee. Une lane qualifiante portant une PR sans tag pouvait
donc deposer son propre dossier et passer un controle qui n'avait jamais tourne.

`carrier is None` devient un refus explicite. Un controle qui ne PEUT pas se
faire n'est pas un controle qui passe.

Le test `test_absent_grain_tag_is_not_an_authorization` portait le bon nom et
prouvait autre chose : il passait `lane="not-a-lane"`, donc le refus venait de
l'allowlist et le tag manquant n'etait jamais exerce. Il passe desormais une
lane QUALIFIANTE, et asserte en plus que l'allowlist n'est PAS le motif -- sinon
il se remettrait silencieusement a certifier le mauvais scenario.

La fixture `_base_snapshot` recoit une lane porteuse distincte de celle du
dossier : sans tag, tous les cas nominaux etaient des auto-attestations.

Rayon d'impact mesure le 2026-09-20 : 4 PRs ouvertes sur 221 (1,8 %) ne portent
pas de tag lisible, et la sortie est d'ajouter le tag, pas d'affaiblir le gate.

44 tests passent.

See #16906. See #16928.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: jsboige <jsboige@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
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