Repository navigation
feat(complexity,#17063): tranche T2 -- base 05 Compter est plus dur que verifier (#P, determinant contre permanente) - #18819
Conversation
Base != main (advisory, #10918)Cette PR ne livre pas sur Couverture CI perdue sur cette base (mesure, #16194)31 workflow(s) se declencheraient si cette PR visait
Un check absent n'est pas un check vert. |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
VERDICT: APPROVE — [Hermes] po-2026, cycle hermes-pr-review
#18819 (P4 : 1149 lignes, 5 fichiers) — tranche T2 du séquencement #17063 : base Licence Complexity-05-CountingHarder-Permanent.ipynb. Full read du notebook (22 cellules) + vérifications de calcul indépendantes.
Gates #17040 — toutes passées :
- Placement : chaque « Lecture du résultat » suit immédiatement la cellule lue, une seule lecture par output (4←3, 6←5, 8←7, 10←9, 14←13).
- Valeurs citées présentes dans les outputs : 4 témoins / 8 certificats (recomptés ligne à ligne dans le tableau φ), permanente 450 vs det 0 (Sarrus recomputé = 0), identité → 1, tout-un → n!, perm(M) = 5 contre énumération brute 5 (le pont couplages↔permanente asserté par deux machines).
- Extrapolations du mur factoriel recomputées exactement depuis le temps par terme mesuré à n=10 : n=11 → 29,9 s, n=12 → 6,0 min, n=15 → 11,3 jours, n=20 → 57 792,5 ans — les 4 valeurs committées tombent au centième près.
- Chrono Gauss : facteurs de doublement 22,2/12,1/14,1 bornés (> 2³), la prose « signature d'un polynôme » est fidèle ; 800! ≈ 1 977 chiffres = « près de deux mille » ✓.
Fuites d'exercices : aucune. Les 3 stubs s'exécutent sans erreur et affichent « Exercice a completer » ; la réponse de l'exercice 3 (2 couplages) n'est imprimée nulle part — l'indice « deux voisins » oriente sans révéler. La valeur 3 de l'exercice 1 est déclarée « fournie pour l'auto-vérification » (convention assumée du 02).
Sécurité + hygiène : grep credentials vide, execution_count 1-9 contigus, zéro output vide, zéro erreur. CI au head a8ab6c8 : 10/10 workflows success (navlinks, nav-chain, interp-positioning, prose-counts, Quarto build), mergeable_state: clean, aucun rouge.
README conforme à la directive #17633 : la PR livre le corps du notebook (rangée de présentation complète, ligne de parcours avec lien réel, prose de position rescindée base/accretion), pas une mise à jour de totaux. Le renumérotation 05b (titre interne + nav) est cohérente avec T1 #18817 ; la contrainte d'accrétion (une lettre orpheline au plus) est satisfaite — 05b cesse d'être orpheline. batch_perm8/Ryser reste la propriété sémantique de 05b : la copie pédagogique est déclarée dans la docstring, l'organe-first répond aux 5 questions.
Approuvé sous l'identité clusterManager-Myia (WRITE CoursIA, #15511 ; PR author=jsboige → verdict réel par identité non-auteur).
Review po-2026 — head a8ab6c8fa7a4, full read + re-derivation indépendante des mesures.
[Hermes hermes-pr-review, cycle :07 02/10, host f6be46d1b7a3, sig=ffdfa448]
c32e265 to
3164358
Compare
a8ab6c8 to
35705fb
Compare
|
Rebase |
Path-collision (organ #13359/#13615)Cette PR #18819 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] note: Dossier c399 sur PR #18819 (feat(complexity,#17063): tranche T2 -- base 05 Compter est plus dur que verifier (#P, determinant contre permanente)). Lane porteuse myia-po-2024:CoursIA-2 (tierce). DEEP/notebook-python, 5 fichiers sous MyIA.AI.Notebooks/Complexity/ (Complexity-04b-OnlineConjectures-Secretary-KServer + Complexity-05-CountingHarder-Permanent + Complexity-05b-AaronsonArkhipov-PermanenteBosonSampling + 2 autres), +1149/-6 = +1143 net. PR gate SUCCESS (check_run_state.py confirme 13 jambes / 13 noms latest-wins-green). B.0 clear (rc=0, 0 nit non leve, 1 commentaire non evalué = bot base!=main advisory non bloquant). Scope pass (5 fichiers sous Complexity/, PAS sous .claude/, .github/, ni CLAUDE.md). domain: pass (substance = tranche T2 EPIC #17063 complexity base 05 Compter est plus dur que verifier, contenu pedagogique determinant/permanent BosonSampling conforme convention). Cible READY : substance prete, B.0 clear, gate SUCCESS. DEEP merge_ready v2 refuse auto mais merge manuel ai-01 OK. Eligible merge manuel direct par ai-01 sur gate rc=0. |
|
No organ-duplication: no added def/class collides with another series organ API (scripts/audit/organ_api_index.yaml). Detector: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 9/9 notebooks passed (certified reproducible)
Pinned lockfile: |
…ue verifier (#P, determinant contre permanente) Nouveau carnet de niveau Licence, position 05 du curriculum arbitre par ai-01 le 23/09 : de verifier (02) a compter. La classe #P deroulee a la main, Gauss chronometre au doublement, la definition n! de la permanente executee telle quelle (copie pedagogique declaree), l'ecart mesure cote a cote, Valiant 1999 au niveau Cite, et le pont aux couplages parfaits verifie par deux machines independantes. Trois exercices C.1 (stubs sans erreur volontaire, exec end-to-end prouvee par papermill : 22/22 cellules, counts 1-9 contigus, 0 erreur). Sweep : 04b nav Suivant -> 05 ; 05b titre interne (portait encore l'ancien numero, intouchable en T1) + nav Precedent -> 05 ; README (ligne de presentation, parcours, prose scindee base/accretion) ; _quarto.yml (liste de rendu). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
35705fb to
a36e441
Compare
|
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 |
|
[ADJOINT PREFLIGHT] note: Dossier c416 sur PR #18819 (feat(complexity,#17063): tranche T2 -- base 05 Compter est plus dur que verifier (#P, determinant contre permanente)). Tierce attestation depuis myia-po-2026:CoursIA-3 (PR porteuse distincte). DEEP/notebook-python, 5 fichiers (Complexity-05-CountingHarder-Permanent.ipynb + Complexity-04b-OnlineConjectures-Secretary-KServer.ipynb + Complexity-05b-AaronsonArkhipov-PermanenteBosonSampling.ipynb + README.md + _quarto.yml), +1149/-6 = +1143 net. PR gate SUCCESS strict (commits/a36e44192c/check-runs, conclusion=success @17:55:45Z). Re-stamp Tell c383 #1 (legacy dossier po-2026 c403 sur tete 35705fb, surfaces changed). B.0 OK (rc=0, 0 nit non leve, 2 commentaires non evalues post-stamp non bloquants). Hermes APPROVED 02/10 07:38:48Z (P4 1149 lignes, 5 fichiers, tranche T2 du sequencement #17063). scope: pass (5 fichiers sous MyIA.AI.Notebooks/Complexity/ et _quarto.yml, PAS sous .claude/, .github/, ni CLAUDE.md). domain: pass (substance Compter vs Verifier : carnets Counting et Aaronson-arkhipov, conformite EPIC sequencement Complexity #17063). verdict READY. merge_ready auto OK. Eligible auto-merge DEEP ai-01. |
…y defense-in-depth) (#19008) Le gate d'adjoint (scripts/check_adjoint_prevalidation.py) et l'organe de merge (scripts/coordination/merge_ready.py) ne controlaient jamais la branche de base : un dossier READY sur une PR empilee pouvait etre merge dans une branche morte (squash-mergee ou fermee sans merge). Le 03/10 a 14:50Z, #18819 rendait rc=0 READY au gate avec une base squash-mergee. Deux changements complementaires : (1) Gate : nouvelle regle sous validate_dossier : un dossier READY exige baseRefName == 'main' (constante CANONICAL_BASE). L'erreur nomme la base fautive pour que la lane sache ou retargeter (la retarget est une decision de contenu, pas du gate -- cf git-workflow.md L898 collision guard). RC : la nouvelle erreur fait basculer evaluate_with_dossier sur ('', errors, None), donc le verdict vide passe par EXIT_NO_DOSSIER (rc=1), sans casser la symetrie rc 0/3 du contrat #16800. (2) merge_ready : defense en profondeur, etape 5ter entre 5bis (twin collision) et 6 (REST). Lit view['baseRefName'] (champ ajoute a PR_VIEW_FIELDS) et refuse avec un motif 'base-not-main:<branche>' si la base n'est pas 'main'. Couvre le cas d'un gate anterieur a #19002 ou d'un chemin futur qui court-circuiterait le gate. 3 tests portes par le gate (test_base_main_does_not_change_a_ready_ dossier, test_base_feature_open_refuses_ready_and_names_the_base, test_base_dead_refuses_ready_and_names_the_base) + 3 portes par merge_ready (test_base_main_does_not_change_merge_ready_outcome, test_base_feature_open_triggers_base_not_main_skip, test_base_dead_ triggers_base_not_main_skip). Les fixtures default_view dans test_merge_ready.py ont gagne 'baseRefName': 'main' pour refleter PR_VIEW_FIELDS. 193/193 tests verts (117 gate + 52 merge_ready + 24 ajoutes par #19002). Mesure avant : 5 PRs ouvertes a base != main (#19007, #19003, #18993, #18985, #18967). Mesure apres : les 5 voient leur dossier READY refuse, et merge_ready refuse aussi en defense en profondeur. Refs #19002 Co-authored-by: jsboige <jsboige@gmail.com> Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…ans 5ter (#19021) * fix(gate,#19002): baseRefName != main refuse READY (gate + merge_ready defense-in-depth) Le gate d'adjoint (scripts/check_adjoint_prevalidation.py) et l'organe de merge (scripts/coordination/merge_ready.py) ne controlaient jamais la branche de base : un dossier READY sur une PR empilee pouvait etre merge dans une branche morte (squash-mergee ou fermee sans merge). Le 03/10 a 14:50Z, #18819 rendait rc=0 READY au gate avec une base squash-mergee. Deux changements complementaires : (1) Gate : nouvelle regle sous validate_dossier : un dossier READY exige baseRefName == 'main' (constante CANONICAL_BASE). L'erreur nomme la base fautive pour que la lane sache ou retargeter (la retarget est une decision de contenu, pas du gate -- cf git-workflow.md L898 collision guard). RC : la nouvelle erreur fait basculer evaluate_with_dossier sur ('', errors, None), donc le verdict vide passe par EXIT_NO_DOSSIER (rc=1), sans casser la symetrie rc 0/3 du contrat #16800. (2) merge_ready : defense en profondeur, etape 5ter entre 5bis (twin collision) et 6 (REST). Lit view['baseRefName'] (champ ajoute a PR_VIEW_FIELDS) et refuse avec un motif 'base-not-main:<branche>' si la base n'est pas 'main'. Couvre le cas d'un gate anterieur a #19002 ou d'un chemin futur qui court-circuiterait le gate. 3 tests portes par le gate (test_base_main_does_not_change_a_ready_ dossier, test_base_feature_open_refuses_ready_and_names_the_base, test_base_dead_refuses_ready_and_names_the_base) + 3 portes par merge_ready (test_base_main_does_not_change_merge_ready_outcome, test_base_feature_open_triggers_base_not_main_skip, test_base_dead_ triggers_base_not_main_skip). Les fixtures default_view dans test_merge_ready.py ont gagne 'baseRefName': 'main' pour refleter PR_VIEW_FIELDS. 193/193 tests verts (117 gate + 52 merge_ready + 24 ajoutes par #19002). Mesure avant : 5 PRs ouvertes a base != main (#19007, #19003, #18993, #18985, #18967). Mesure apres : les 5 voient leur dossier READY refuse, et merge_ready refuse aussi en defense en profondeur. Refs #19002 Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> * fix(merge_ready,#19014): distinguer base-gone et base-live-not-main dans 5ter La 5ter de merge_ready (ajoutee en #19008/#19002) refusait toute base non-main avec un motif unique `base-not-main:<branche>`. Le gate (#19002) faisait de meme -- mais le geste d'une lane qui lit le skip depend entierement de la **liveness** de la base : - base **vivante** : une PR ouverte porte la branche. La lane doit ATTENDRE le merge de la PR porteuse, puis recibler -- retargeter maintenant detruit le travail en cours. - base **morte** : la PR porteuse a ete fermee ou squash-marigee, la branche ne tient a aucune PR ouverte. La lane doit RETARGETER sur main (cf. git-workflow.md L898 collision guard). L'ancien motif unique cachait cette distinction derriere un meme mot. Aujourd'hui, 5ter appelle `base_ref_liveness(runner, gh_env, base_ref_name)` qui lance `gh pr list --state all --search head:<base>` et distingue : - `base-live-not-main:<branche>` une PR OPEN avec cette tete - `base-gone:<branche>` aucune PR OPEN avec cette tete - `base-not-main-unreadable:<branche>` REST echoue (fail-CLOSED) Trois tests : le temoin positif (base main, chemin nominal inchange) garde son motif attendu absent ; les deux negatifs precedents sont renommes pour le nouveau verdict (`base-live-not-main` / `base-gone`) ; un troisieme temoin degrade verifie le chemin `unreadable`. Le ScriptedRunner gagne deux champs `base_search` (cle = `head:<branche>`, valeur = liste JSON) et `base_search_rc` (simulateur de crash gh). 194/194 verts (117 gate + 77 merge_ready). Le volet gate de l'acceptance #19014 reste a po-2026 sur `check_adjoint_prevalidation.py` (cf. PR #18984). Refs #19014 Refs #19008 Refs #19002 Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: jsboige <jsboige@gmail.com> Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…e-claims, banniere, preface 06b Issue : #17151 (audit partition Hermes campagne #17073) -- tranche 2/4 du dispatch ai-01 tapis central 06/10 (file de 4 issues : ordre/interp, Complexity findings, READMEs, densite). 4 corrections CONFIRMED firsthand (G.9 verifie) : * **Complexity-04b cell 20 (navigation-misplaced)** : 5 cross-links en texte brut (Complexity-04c, 04d, RL/RL-16, GameTheory, #15944) transformes en liens markdown cliquables. Hermes po-2026 partition Hermes 28/09 04:42Z, 1 signal sur 6 organes. * **Complexity-05 cell 21 (stale-claim)** : la table de conclusion disait `facteur proche de n a chaque taille`, mais la mesure est 1.1 (n=3), 1.4 (n=4), 6.6 (n=9) -- le facteur ne rejoint $n$ qu'au-dela de n approx 5. Hermes po-2026 03/10 23:45Z (audit 0357e35/#18819). Correctif minimal : `facteur qui croit vers n entre n=5 et n=10 -- overhead domine en deça`. * **Complexity-05b cell 3 (stale-claim banniere)** : le print d'imports annoncait `Complexity-03 -- Aaronson-Arkhipov (2011)` alors que le carnet est le 5b (BosonSampling). Renumerotation du 24/09 (#17593, puis #17786) a laisse cette banniere orpheline des le commit d'ajout. Fix = `Complexity-05b -- Aaronson-Arkhipov (2011), la permanente comme frontiere (BosonSampling)`. * **Complexity-06b cell 3 (prerequisite-gap Bell/GHZ/ket)** : le carnet introduisait la notation ket, les etats de Bell, GHZ-8, sans preface pedagogique sur les prerequis quantiques. Hermes po-2026 30/09 10:50Z (head `e8695322`, 31 cellules). Encart markdown (nouvelle section `## 0.1. Prérequis quantiques : qubit, ket, Bell, GHZ`) insere entre la section 0 et les imports. Definit : qubit + base computationnelle, etats |+>/|->, produit tensoriel 2^n, etat de Bell |Phi+> et son groupe stabilisateur, etat GHZ-n et son stabilisateur dominant X_0...X_{n-1} + Z_0 Z_j. Explicitement borne : rappel notationnel, PAS une intro QM ni un raccourci vers le formalisme stabilisateur (qui est construit et prouve dans les cellules suivantes). Encart c.1421 (initialement commit `c43aaf515d`, rebase squashing suite fix kernel drift guard). ## Conformite - C.1 : pas d'erreur volontaire (markdown/text seul, 4/4 findings). - C.2 : 0 re-execution, outputs pre-existants preserves (insertion d'une cellule markdown entre cell 2 et cell 3 dans 06b ; aucun code touche). - C.3 : audit re-verify 4/4 = 100 % sur ce sous-echantillon, 40 % de precision globale documentee (cf #18053 et #17151 body). - H.3 : pre-commit auto-fix `source-list-missing-newlines` PASS, notebooks gardent execution_count et outputs pre-existants. ## Perimetre - 4 fichiers, 78 insertions, 9 suppressions. - 0 secret, 0 binaire, 0 fichier hors scope. - Branche : `fix/17151-complexity-findings` (depuis origin/main). - 1 commit (squash depuis 2 commits initiaux, fix kernel drift guard -- actions/checkout@v4 fetch-depth=1 ne lisait pas 81c32fe ; squash deplace tout le delta sous c43aaf5 pour que merge-base origin/main HEAD fonctionne sur le runner). ## Suite de la file dispatch Le dispatch ai-01 06/10 a 4 issues : #18053 (done c.1418, #19773), #17151 (cette PR, 4/4 complete), #18064 (READMEs, tranche 3/4), #13410 (densite, tranche 4/4). Co-Authored-By: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
…e-claims, banniere, preface 06b (#19781) Issue : #17151 (audit partition Hermes campagne #17073) -- tranche 2/4 du dispatch ai-01 tapis central 06/10 (file de 4 issues : ordre/interp, Complexity findings, READMEs, densite). 4 corrections CONFIRMED firsthand (G.9 verifie) : * **Complexity-04b cell 20 (navigation-misplaced)** : 5 cross-links en texte brut (Complexity-04c, 04d, RL/RL-16, GameTheory, #15944) transformes en liens markdown cliquables. Hermes po-2026 partition Hermes 28/09 04:42Z, 1 signal sur 6 organes. * **Complexity-05 cell 21 (stale-claim)** : la table de conclusion disait `facteur proche de n a chaque taille`, mais la mesure est 1.1 (n=3), 1.4 (n=4), 6.6 (n=9) -- le facteur ne rejoint $n$ qu'au-dela de n approx 5. Hermes po-2026 03/10 23:45Z (audit 0357e35/#18819). Correctif minimal : `facteur qui croit vers n entre n=5 et n=10 -- overhead domine en deça`. * **Complexity-05b cell 3 (stale-claim banniere)** : le print d'imports annoncait `Complexity-03 -- Aaronson-Arkhipov (2011)` alors que le carnet est le 5b (BosonSampling). Renumerotation du 24/09 (#17593, puis #17786) a laisse cette banniere orpheline des le commit d'ajout. Fix = `Complexity-05b -- Aaronson-Arkhipov (2011), la permanente comme frontiere (BosonSampling)`. * **Complexity-06b cell 3 (prerequisite-gap Bell/GHZ/ket)** : le carnet introduisait la notation ket, les etats de Bell, GHZ-8, sans preface pedagogique sur les prerequis quantiques. Hermes po-2026 30/09 10:50Z (head `e8695322`, 31 cellules). Encart markdown (nouvelle section `## 0.1. Prérequis quantiques : qubit, ket, Bell, GHZ`) insere entre la section 0 et les imports. Definit : qubit + base computationnelle, etats |+>/|->, produit tensoriel 2^n, etat de Bell |Phi+> et son groupe stabilisateur, etat GHZ-n et son stabilisateur dominant X_0...X_{n-1} + Z_0 Z_j. Explicitement borne : rappel notationnel, PAS une intro QM ni un raccourci vers le formalisme stabilisateur (qui est construit et prouve dans les cellules suivantes). Encart c.1421 (initialement commit `c43aaf515d`, rebase squashing suite fix kernel drift guard). ## Conformite - C.1 : pas d'erreur volontaire (markdown/text seul, 4/4 findings). - C.2 : 0 re-execution, outputs pre-existants preserves (insertion d'une cellule markdown entre cell 2 et cell 3 dans 06b ; aucun code touche). - C.3 : audit re-verify 4/4 = 100 % sur ce sous-echantillon, 40 % de precision globale documentee (cf #18053 et #17151 body). - H.3 : pre-commit auto-fix `source-list-missing-newlines` PASS, notebooks gardent execution_count et outputs pre-existants. ## Perimetre - 4 fichiers, 78 insertions, 9 suppressions. - 0 secret, 0 binaire, 0 fichier hors scope. - Branche : `fix/17151-complexity-findings` (depuis origin/main). - 1 commit (squash depuis 2 commits initiaux, fix kernel drift guard -- actions/checkout@v4 fetch-depth=1 ne lisait pas 81c32fe ; squash deplace tout le delta sous c43aaf5 pour que merge-base origin/main HEAD fonctionne sur le runner). ## Suite de la file dispatch Le dispatch ai-01 06/10 a 4 issues : #18053 (done c.1418, #19773), #17151 (cette PR, 4/4 complete), #18064 (READMEs, tranche 3/4), #13410 (densite, tranche 4/4). Co-authored-by: Claude Haiku 4.5 (1M context) <noreply@anthropic.com>
Grain: DEEP/notebook-python — lane myia-po-2025:CoursIA — prev: LIGHT/refactor #18817
Summary
Tranche T2 du séquencement #17063 (arbitrage ai-01 du 23/09) : création de la base de niveau Licence
Complexity-05-CountingHarder-Permanent.ipynb— « Compter est plus dur que vérifier ». La lettre05breçoit sa base ; la contrainte d'accrétion (une lettre orpheline au plus une PR) est satisfaite.Arc pédagogique (prérequis unique : 02, même vocabulaire certificat/témoin) : la classe #P déroulée à la main sur φ(a,b,c) à trois variables (8 certificats énumérés, 4 témoins) → le déterminant : la même somme de$n!$ termes mais Gauss $O(n^3)$ , chronométré au doublement des tailles (facteur borné = signature du polynôme) → la permanente sans les signes : la définition $n!$ exécutée telle quelle, comptes canoniques validés (identité → 1, tout-un → $n!$ , la $3\times3$ déroulée terme à terme : 450 contre det 0) → l'écart mesuré côte à côte jusqu'à $n = 10$ , extrapolation du mur factoriel, courbe semilog → Valiant 1979 (#P-difficile même en 0/1) au niveau Cité → le pont aux graphes : compter les couplages parfaits d'un biparti est $\mathrm{perm}(M)$ , vérifié par deux machines indépendantes (permanente vs énumération brute, 5 couplages listés) → transition 2 phrases vers 05b.
Organ-first (règle des 5 questions)
Complexity-05bpossède Ryser vectorisé (batch_perm8, réemployé de Sudoku-15) et le verdict MathlibMatrix.permanent.batch_perm8ici viderait l'exercice 1 de son objet.itertools.product— deux machines distinctes rendent le même compte (asserté).Validation (organes, post-exécution)
python3:execution_count1-9 contigus, 0 erreur, 0 output vide, 0 fuite de chemin (metadata papermill en chemins relatifs via--cwd)grep -cE "raise NotImplementedError|assert False|1/0"= 0 ; les 3 cellules d'exercice s'exécutent stubs non complétés et affichent « Exercice a completer » (preuve dans les outputs committés)check_notebook_navlinks.py×3 (nouveau + 04b + 05b) : 0 lien cassécheck_prose_quantitative_claims.py --diff <base> --strict(mode CI) : rc=0check_duplicate_sections.py: 0 findingexecution_count: nullassertvivent dans les bancs complets (valeurs déterministes : 4 témoins,Sweep de la tranche
Complexity-04b(l.18)05b→05(la base s'intercale)Complexity-05b(titre + nav)# Complexity-05 —→# Complexity-05b —(portait l'ancien numéro, intouchable en T1 qui était un renommage pur R100) ; nav Précédent :04b→05README.mdà venir→ lien réel), prose « Position dans le dépôt » scindée base/accretion ; colonne Accrétion de 05b au présent_quarto.ymlCOURSE_CATALOG.generated.*laissé byte-identique (régénération par l'automatisation surmain).Conventions
Stub d'exercice calqué sur 02 (
## Exercices/### Exercice N — Titre/# Exercice N : a completer,# TODO etudiant,# Etape,# Indice, gardeif ... is None). La réponse de l'exercice 3 (un couplage) n'est imprimée nulle part — l'indice oriente sans la révéler. Kernelspec copié de 02. Le banc déterminant utiliseslogdet(même élimination de Gauss, forme numériquement stable —detpur déborde des flottants aux grandes tailles ; expliqué dans le texte).See #17063 (curriculum) · séquencement : c.5946436584
🤖 Generated with Claude Code