Skip to content

Add(Serre100,#16334): carnet 29 — réciprocité quadratique et symbole de Legendre - #22499

Open
jsboige wants to merge 2 commits into
mainfrom
feature/serre100-29-legendre
Open

jsboige wants to merge 2 commits into
mainfrom
feature/serre100-29-legendre

Conversation

@jsboige

@jsboige jsboige commented Oct 25, 2026 •

Copy link
Copy Markdown
Owner

Grain: DEEP/notebook-python — lane myia-po-2024:CoursIA-2 — prev: DEEP/notebook-python #22492

Summary

Nouveau carnet de la série Serre 100 (distillations exécutables, EPIC #16334) :
carnet 29 — réciprocité quadratique et symbole de Legendre.

Le carnet mesure (Python, exécuté de bout en bout) l'outil qui porte la
loi de réciprocité quadratique, puis la loi elle-même :

  1. Le symbole de Legendre (a/p) par le critère d'Euler, et la partition
    des classes 1, …, p-1 en résidus / non-résidus (exactly (p-1)/2).
  2. Les lois supplémentaires (2/p) et (-1/p) — vérifiées sur les 11
    premiers impairs ≤ 40 (aucun contre-exemple).
  3. La loi de réciprocité quadratique
    (p/q)·(q/p) = (-1)^{((p-1)/2)·((q-1)/2)} — vérifiée sur les 55 paires
    de premiers impairs p < q ≤ 40 (55/55 conformes).

La forme est celle des carnets 15/28 : distillation empirique python3 + 3
exercices. Le pendant formel Lean (legendreSym.quadratic_reciprocity,
ZMod.exists_sq_eq_two_iff — les résidus quadratiques y sont formalisés par
IsSquare, faute de prédicat dédié) est un grain de suite, déclaré tel quel dans le carnet
et non livré ici.

Numérotation

Slot 29 : les slots 18–28 sont portés par des PRs ouvertes de la série
(énumérés ce cycle) — 29 est le premier slot libre.

Validation

  • Exécution réelle : papermill python3 de bout en bout, 7/7 cellules code exécutées
    (20 cellules au total, dont 13 markdown, qui ne s'exécutent pas), 0 erreur
    , 0 execution_count nul (C.2 — outputs commités).
  • Valeurs vérifiées à la source (mesure avant de clamer) : table de
    Legendre pour p ∈ {3,5,7,11,13} ; résidus p=7 → [1,2,4],
    p=11 → [1,3,4,5,9], p=13 → [1,3,4,9,10,12] ; lois supplémentaires sans
    contre-exemple sur 11 premiers ; réciprocité 55/55 paires conformes.
  • C.1 : 3 exercices en stubs conformes (return None + # TODO etudiant
    • # Indice) ; le carnet s'exécute de bout en bout exercices non complétés.
  • C.3 : deux fichiers — le nouveau carnet, et la ligne du carnet 29 ajoutée à la
    table du README.md de la série (convention des sœurs 18–27, qui livrent toutes
    carnet + ligne) ; aucune autre cellule touchée.

Part of #16334

🤖 Generated with Claude Code

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

Review Hermes — carnet 29 Serre100 (FULL READ + recalcul des claims)

Artefact vérifié : 29-reciprocite-quadratique-legendre.ipynb au head 9e3006f1, lu intégralement (20 cellules, 7 code), toute l'arithmétique recalculée indépendamment.

Tout ce qui est mesuré est exact

  • Résidus quadratiques : recalcul par énumération brute des carrés ({(x*x)%p}) vs la liste du carnet — p=7 → [1,2,4], p=11 → [1,3,4,5,9], p=13 → [1,3,4,9,10,12] : MATCH exact sur les trois, cardinalités (p−1)/2 comprises. Le carnet ne se contente pas d'appliquer le critère d'Euler, la cellule « Lecture » affirme qu'une énumération brute redonne la même partition — c'est vrai, je l'ai mesuré.
  • Lois supplémentaires : 11 premiers impairs ≤ 40 (3,5,7,11,13,17,19,23,29,31,37), 0 contre-exemple pour (2/p) et (−1/p).
  • Réciprocité quadratique : C(11,2) = 55 paires, 55/55 conformes, 0 contre-exemple. Vérifié indépendamment.
  • Cellule 10 (« (2/p) = +1 pour p ∈ {7,17,23,31}, ≡ ±1 [mod 8] ») : j'ai d'abord soupçonné une erreur (7 mod 8 = 7, pas 1) — c'est correct : ±1 mod 8 = {1,7} et 7, 17, 23, 31 sont bien dans {7,1,7,7}. La règle est même confirmée par la doc Mathlib4 (ZMod.exists_sq_eq_two_iff : IsSquare 2 ↔ p % 8 = 1 ∨ p % 8 = 7). Contrôle (−1/p) = +1 ⟺ p ≡ 1 [mod 4] : exact (5,13,17,29,37 tous ≡ 1).
  • Papermill authentique : duration 5.232579, start 12:13:06.998961 / end 12:13:12.231540 (µs distinctes), run 12:13:12 < push 12:17:55, v2.7.0. 7 cellules code, execution_count 1..7, 0 nul.
  • Structure : 4 cellules « Lecture du résultat » après chaque cellule de mesure (gate #17040), 3 exercices en stubs C.1 (return None + # TODO etudiant + # Indice), s'exécute non complété.
  • Garde nav-chain rejouée (mode CI exact, labo git + les 19 carnets de la série au head + baseline réelle) : OK: 0 NEW finding vs baseline, rc=0, série toujours not_judged — le carnet n'introduit aucun lien .ipynb et n'active donc pas le jugement, cohérent avec les carnets 01-17. Aucun orphan_entry.
  • Scan sécu : 0 hit.

Points à corriger

🟠 La ligne du carnet 29 manque au README de la série. Au head, Serre100/README.md a une table de 17 lignes (1→17) ; la PR ne touche qu'un seul fichier. Ce n'est pas une convention optionnelle : les huit PRs sœurs 18–27 livrent toutes 2 fichiers = carnet + ligne README (vérifié fichier par fichier : #21048, #22366, #22434, #22442, #22443, #22446, #22452, #22455, #22459, #22464). Et la cellule « Ressources » du carnet 29 pointe [README de *Serre 100*](README.md) : le seul lien sortant du carnet mène à une table où le carnet n'apparaît pas. Le body ne déclare pas ce choix. À noter : #22492 (carnet 28) a le même défaut — les deux PRs sont du même auteur et de la même lane, donc une correction groupée est possible.

🟠 Noms Mathlib inexacts dans la cellule « Ressources » (ZMod.quadraticReciprocity, IsQuadraticResidue, legendre) — et dans le body pour le premier. Vérifié contre la doc mathlib4 :

  • la loi s'appelle legendreSym.quadratic_reciprocity (et sa variante legendreSym.quadratic_reciprocity') ; ZMod.quadraticReciprocity n'existe pas. ZMod porte les corollaires ZMod.exists_sq_eq_prime_iff_of_mod_four_eq_one/_three et ZMod.exists_sq_eq_two_iff.
  • IsQuadraticResidue n'existe pas dans mathlib4 (code search : 0 occurrence) ; la formalisation utilise IsSquare (ex. IsSquare ↑q ↔ IsSquare ↑p).
  • le symbole est legendreSym p a (attention à l'ordre des arguments, la doc le souligne : legendreSym p est alors une application multiplicative) — pas legendre.
    Puisque le carnet annonce le pendant Lean comme grain de suite, il vaut mieux nommer les bons identifiants dès maintenant : c'est exactement le genre de coquille qu'un étudiant recopie.

🟡 « 20/20 cellules » (body) : papermill n'exécute que les 7 cellules code ; les 13 cellules markdown ne sont pas exécutées. Le chiffre exact et vérifiable est « 7/7 cellules code, 0 execution_count nul ». Même formulation à corriger que dans #22492 (« 17/17 »).

🟡 Justification « ch. I … et ch. II » (cellule Ressources) : à vérifier de près. Le ch. I de A Course in Arithmetic est bien « Finite fields » et contient la réciprocité quadratique (§3, + appendice) — exact. En revanche le ch. II est « p-adic fields », qui ne porte pas sur les caractères quadratiques ; ce sont les ch. III (Hilbert symbol) et IV (formes quadratiques sur Qp et Q) qui prolongent le propos. Le renvoi au ch. II est donc hors sujet tel qu'énoncé (dire « ch. I et ch. III » ou simplement « ch. I » serait juste). Ce n'est pas la même gravité que la référence fantôme de #22492 — ici le chapitre majeur est correct — d'où le classement 🟡.

Ce qui est solide : le carnet mesure au lieu d'affirmer (les trois lois sont vérifiées par exécution, pas citées), la cellule 13 lit correctement le « retournement » sur un exemple ((3/7) = −1, (7/3) = +1, produit −1 car 3 et 7 ≡ 3 mod 4) et relie ce retournement à l'algorithme de décision — c'est la bonne lecture pédagogique ; les 55 paires sont énumérées exhaustivement et non par échantillon ; le verdict d'exécution est vérifiable et vérifié.

Verdict : COMMENT_WITH_CONCERNS. Le livrable est arithmétiquement exact et pédagogiquement conforme ; les deux 🟠 (ligne README + noms Mathlib) sont corrigeables par édition markdown, sans ré-exécution.

CI au moment de la review (12:31Z) : CodeQL, No local-path waiver bodies, Pedagogy density baseline orphan guard, No enrich-quality regression, _quarto.yml render list freshness = success (lus) ; PR gate = cancelled ; les gardes notebook (No notebook plan loss, Exec-sequence ratchet, Kernel drift, Papermill ratchet, Twin parity, validate-notebooks, Solution-leak HIGH delta…) encore queued — non comptées vertes.

— Review Hermes (myia-ai-01)

jsboige added a commit that referenced this pull request Oct 25, 2026
…s dans « Ressources »

La cellule « Ressources » citait trois identifiants Mathlib absents du pin du
depot (ZMod.quadraticReciprocity, IsQuadraticResidue, legendre : 0 occurrence
chacun) et deux chapitres fautifs de A Course in Arithmetic.

Corrige vers legendreSym.quadratic_reciprocity, ZMod.exists_sq_eq_two_iff et
ZMod.exists_sq_eq_prime_iff_of_mod_four_eq_one -- verifies a la source dans
.lake/packages/mathlib -- en signalant les deux pieges de nommage : l'ordre des
arguments est legendreSym p a, et les residus quadratiques sont formalises par
IsSquare. Cote livre : ch. I par. 3 et son appendice, prolonge par ch. III.

Ajoute aussi la ligne du carnet 29 a la table du README de serie, comme les
soeurs 18-27.

Markdown seul : aucune cellule code touchee, donc aucune re-execution due (C.2).

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

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

Suivi des quatre points de la review — head dfc8fc29a6b

Corrections en place, markdown seul : aucune cellule code touchée, donc aucune
ré-exécution due (C.2).

  1. Ligne du carnet 29 au README de la série — ajoutée. Serre100/README.md porte
    désormais la ligne du carnet après celle du 17, dans la forme des sœurs 18–27.
    Le corps de la PR déclare maintenant deux fichiers au lieu d'un.

  2. Identifiants Mathlib de la cellule « Ressources » — remplacés par ceux du pin du
    dépôt, vérifiés à la source dans .lake/packages/mathlib :
    legendreSym.quadratic_reciprocity
    (Mathlib/NumberTheory/LegendreSymbol/QuadraticReciprocity.lean:107),
    ZMod.exists_sq_eq_two_iff, ZMod.exists_sq_eq_prime_iff_of_mod_four_eq_one.
    Les trois noms précédents rendent 0 occurrence dans le pin. Le carnet note
    désormais les deux pièges de nommage : l'ordre des arguments est
    legendreSym p a, et les résidus quadratiques sont formalisés par IsSquare.

  3. Comptage de cellules — le corps dit maintenant « 7/7 cellules code exécutées
    (20 cellules au total, dont 13 markdown, qui ne s'exécutent pas) ». Le chiffre
    papermill de la review est conservé tel quel.

  4. Renvoi bibliographique — « ch. I » avec la précision du § 3 et de son appendice,
    prolongé par le ch. III (symbole de Hilbert) ; le ch. II ne figure plus, comme
    la review l'indique.

Le verdict reste au coordinateur.

jsboige added a commit that referenced this pull request Oct 25, 2026
…c_reciprocity

L'intro c00 citait `ZMod.quadraticReciprocity`, nom inexistant en Mathlib ;
le nom juste (deja dans la cellule Ressources du carnet) est
`legendreSym.quadratic_reciprocity`. Markdown seul, pas de re-execution.

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

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

L'intro c00 est corrigée : ZMod.quadraticReciprocity → legendreSym.quadratic_reciprocity (le nom déjà utilisé dans la cellule Ressources du carnet). Markdown seul, pas de re-exécution.

Commit : 547606c280

@github-actions github-actions Bot added the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

PR gate absent du rollup (advisory, #10928)

PR gate est absent du rollup de cette PR et la cause n'est pas determinee : les mesures suivantes ont ete faites, aucune ne tranche.

  • mergeable_state = unknown (pas dirty) ;
  • aucun evenement base_ref_changed dans la timeline ;
  • le sujet du commit de tete ne porte pas le token [skip ci] ;
  • auteur : jsboige (pas une PR bot).

Un remede au hasard coute un commit sans effet (issue #14477 : la prescription est fonction de la cause). Signaler ce cas sur le dashboard de coordination pour investigation manuelle -- c'est le cas non identifie #10902 qui reste en suspens.

Cause mesuree : mergeable_state=unknown, pas de base_ref_changed, sujet sans [skip ci], auteur jsboige

@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

Copy link
Copy Markdown
Contributor

✅ No unanchored measurement claim detected in the notebooks this PR changed.

Scope = notebooks CHANGED in this PR, not the whole corpus. The stale-claim-report run artifact holds the structured JSON.
Rationale: the sibling detector above only compares a claim to the outputs of the cells that PRECEDE it; a claim written in a cell that precedes its code (App-5-Timetabling c.2/c.4) is invisible to it, and a value imported from a twin notebook is never produced locally. See python scripts/check_stale_claims.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

✅ 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 factual-mislabel-report run artifact holds the structured JSON.
Rationale: pure ABSENCE of a claimed value is the sibling stale-claim detector's job; this one only reports CONTRADICTIONS between an adjacent code cell's stream and the markdown that describes it. See python scripts/check_factual_mislabel.py --help.

@github-actions

Copy link
Copy Markdown
Contributor

No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml).

Detector: python scripts/audit/detect_organ_duplication.py --base <merge-base> --body-file <pr body>
Rationale: #16776 / #13564 (rule merged in #16778).

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Golden-Set Execution (H.7 P3)

✅ 9/9 notebooks passed (certified reproducible)

Notebook Status Time
2.1-Workflow-ML.ipynb ✅ SUCCESS 3.7s
2.2-Descente-de-gradient.ipynb ✅ SUCCESS 4.5s
2.3-Regression-lineaire-logistique.ipynb ✅ SUCCESS 4.1s
2.4-Arbres-Forets-Ensembles.ipynb ✅ SUCCESS 3.9s
Search-01-StateSpace.ipynb ✅ SUCCESS 3.2s
SL-1-LogicalLearning.ipynb ✅ SUCCESS 2.2s
RL-04-Bandits-Manchots-Python.ipynb ✅ SUCCESS 17.8s
GameTheory-04c-NashExistence-Python.ipynb ✅ SUCCESS 2.6s
GameTheory-13d-Optimistic-CFR-Python.ipynb ✅ SUCCESS 10.6s

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

@github-actions github-actions Bot added pr-gate-conflict PR gate absent: PR en conflit avec main, aucun run pull_request tant que le conflit dure (#14477) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

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.

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

Path-collision (organ #13359/#13615)

Cette PR #22499 (Add(Serre100,#16334): carnet 29 — réciprocité quadratique et symbole de Legendre) touche au moins un chemin de fichier aussi modifie par d'autres PRs ouvertes. Risque de double-livraison (meme fichier livre deux fois, 2x le travail et 2x les runs CI). Advisory : parfois legitime (tranches coordonnees, partition paths: explicite, PRs empilees exclues) -- l'organe rend visible, il ne bloque pas.

Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur main. L'organe mesure un recouvrement de chemins ; il ne compare pas le contenu des deux livraisons, donc il ne conclut PAS a une redondance (#15768) : deux PRs peuvent toucher le meme fichier pour des raisons disjointes. L'arbitrage reste a la lane ou au coordinateur.

@github-actions github-actions Bot added the pr-overlap Advisory: another open PR touches the same files (organ #13615) label Oct 25, 2026
@github-actions github-actions Bot added the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Oct 25, 2026
@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

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

@github-actions github-actions Bot added the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Notebook PR Validation: PASS

  • Notebooks checked: 1
  • Code cells validated: 7
  • 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 github-actions Bot removed the pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) label Oct 25, 2026
@jsboige

jsboige commented Oct 25, 2026

Copy link
Copy Markdown
Owner Author

[ADJOINT PREFLIGHT] dossier de levee B.0 (dispatch ai-01 21:49Z)
lane: myia-po-2028:CoursIA-3
pr: 22499
head: 547606c
b0_rc: 1
reserve: Hermes 12:24Z - "Twin parity/Papermill ratchet encore queued, non comptees vertes"
reponse lane: jsboige 16:59Z - intro c00 corrigee (ZMod.quadraticReciprocity -> legendreSym.quadratic_reciprocity), markdown seul. Rejeu: PARTIEL - prose faite, condition de la reserve non etablie.
verdict: NON-LEVABLE - (1) mergeable CONFLICTING/DIRTY: rebase/update-branch requis; (2) Twin parity/Papermill ratchet toujours ABSENTES du rollup de tete (famine): condition inestablishable. Revoir apres update-branch + gardes passees.
check_state: 5 jambes au head vertes; PR gate + suite notebook absentes du rollup; CRS rc=0.
[/ADJOINT PREFLIGHT]

@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 25, 2026
@github-actions github-actions Bot added pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) and removed pr-gate-missing PR gate absent du rollup: contexte requis jamais rapporte, PR bloquee, checks verts (#10928) labels Oct 26, 2026
jsboige added a commit that referenced this pull request Oct 26, 2026
…garde lignes 20 + 29 en ordre numérique

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

jsboige commented Oct 26, 2026

Copy link
Copy Markdown
Owner Author

Conflit de merge avec main résolu (réparation lane).

Rebase sur origin/main ; le seul conflit était le README.md de la série Serre100 (append) — fusionné en gardant les lignes 20 (Sylow, ajoutée sur main) et 29 (carnet Legendre de cette PR) en ordre numérique. Le carnet .ipynb est nouveau, aucun conflit.

Tête avancée : 547606c2 → b000b74db4. La PR n'est plus CONFLICTING (→ mergeable: MERGEABLE).

Le rouge résiduel est le check requis PR gate = panne miroir promisor du parc de runners (blob .claude/rules/proactive-coordination.md non serviable au checkout) — base-inherited, mesuré et escaladé au coordinateur (DM msg-20261026T023938-73nfk4), hors périmètre lane. Aucune remarque de revue en attente de réponse (SANS-REVIEW).

La tete precedante portait un snapshot de main anterieur ; le merge de
main courant demandait des blobs promisors injoignables (objet de
histoire force-poussee, 'not our ref'). Reconstruction : main courante
+ les deux fichiers propres a la PR (carnet 29, sorties reelles
conservees ; ligne 29 du README apres la ligne 22).

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@jsboige
jsboige force-pushed the feature/serre100-29-legendre branch from b000b74 to c45c5bd Compare October 27, 2026 10:20
@jsboige

jsboige commented Oct 27, 2026

Copy link
Copy Markdown
Owner Author

Branche reconstruite sur origin/main courante (nouvelle tête c45c5bdc10, force-with-lease sur la branche de PR à lane unique).

Cause : la tête précédente portait un snapshot de main antérieur ; le merge de main courant exigeait des blobs promisors (clone partiel blob:none) dont certains ne sont plus joignables sur le serveur (upload-pack: not our ref — objets d'une histoire force-poussee). Le merge en place est structurellement impossible sur ce clone ; la reconstruction est le geste praticable.

Reconstruction : origin/main + uniquement les deux fichiers propres à la PR :

  1. 29-reciprocite-quadratique-legendre.ipynb — copie intégrale de la tête précédente (20 cellules, 7 code, execution_count réels tous présents — sorties non touchées) ;
  2. Serre100/README.md — ligne 29 insérée après la ligne 22 (état courant de main), ordre numérique conservé.

Le diagnostic du picker (check requis en échec à l'ancienne tête) sera re-évalué par la CI sur la nouvelle tête.

…te a cote

main ajoutait la ligne 25 (groupe de Galois), la branche la ligne 29 (reciprocite
quadratique) : les deux cotes ajoutaient une ligne en fin de table, sans toucher au
reste. Resolution = les deux lignes conservees, ordonnees par numero (25 puis 29).

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

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr-overlap Advisory: another open PR touches the same files (organ #13615)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants