|
5 | 5 | "id": "752688e6", |
6 | 6 | "metadata": { |
7 | 7 | "papermill": { |
8 | | - "duration": 0.003885, |
9 | | - "end_time": "2026-09-25T09:21:11.930752", |
| 8 | + "duration": 0.001856, |
| 9 | + "end_time": "2026-10-08T11:02:10.940231+00:00", |
10 | 10 | "exception": false, |
11 | | - "start_time": "2026-09-25T09:21:11.926867", |
| 11 | + "start_time": "2026-10-08T11:02:10.938375+00:00", |
12 | 12 | "status": "completed" |
13 | 13 | }, |
14 | 14 | "tags": [] |
|
32 | 32 | "id": "94b1f321", |
33 | 33 | "metadata": { |
34 | 34 | "papermill": { |
35 | | - "duration": 0.002235, |
36 | | - "end_time": "2026-09-25T09:21:11.935711", |
| 35 | + "duration": 0.001356, |
| 36 | + "end_time": "2026-10-08T11:02:10.943131+00:00", |
37 | 37 | "exception": false, |
38 | | - "start_time": "2026-09-25T09:21:11.933476", |
| 38 | + "start_time": "2026-10-08T11:02:10.941775+00:00", |
39 | 39 | "status": "completed" |
40 | 40 | }, |
41 | 41 | "tags": [] |
|
60 | 60 | "id": "45c25256", |
61 | 61 | "metadata": { |
62 | 62 | "papermill": { |
63 | | - "duration": 0.00199, |
64 | | - "end_time": "2026-09-25T09:21:11.939702", |
| 63 | + "duration": 0.001424, |
| 64 | + "end_time": "2026-10-08T11:02:10.946134+00:00", |
65 | 65 | "exception": false, |
66 | | - "start_time": "2026-09-25T09:21:11.937712", |
| 66 | + "start_time": "2026-10-08T11:02:10.944710+00:00", |
67 | 67 | "status": "completed" |
68 | 68 | }, |
69 | 69 | "tags": [] |
70 | 70 | }, |
71 | 71 | "source": [ |
72 | | - "## 2. Où entrer : les huit carnets\n", |
| 72 | + "## 2. Où entrer : les quinze carnets\n", |
73 | 73 | "\n", |
74 | | - "La sous-série vit dans le dossier [`Serre100/`](Serre100/README.md) — huit carnets, un README et le lake. Le tableau dit, par carnet, ce qu'il distille.\n", |
| 74 | + "La sous-série vit dans le dossier [`Serre100/`](Serre100/README.md) — quinze carnets, un README et le lake. Le tableau dit, par carnet, ce qu'il distille.\n", |
75 | 75 | "\n", |
76 | 76 | "| # | Carnet | Ce qu'il distille |\n", |
77 | 77 | "|---|---|---|\n", |
|
83 | 83 | "| 06 | [bulles diaboliques de Minkowski](Serre100/06-bulles-minkowski.ipynb) | la géométrie des nombres, calculée |\n", |
84 | 84 | "| 07 | [zéros de fonctions L, gaps et statistique GUE](Serre100/07-zeros-fonctions-l-gaps-gue.ipynb) | les zéros et leurs écarts, confrontés à la statistique GUE |\n", |
85 | 85 | "| 08 | [Serre dans Mathlib](Serre100/08-serre-dans-mathlib-Lean.ipynb) | le tour des cinq monuments de Serre présents dans Mathlib |\n", |
86 | | - "\n", |
87 | | - "Sept carnets tournent sur le kernel `python3` ; le huitième exige le kernel Lean et le lake construit. La section 5 **mesure** cette répartition au lieu de la supposer." |
| 86 | + "| 09 | [τ de Ramanujan](Serre100/09-congruences-tau-lacunarite-delta.ipynb) | les congruences de τ, la borne de Deligne, et la lacunarité qui s'arrête aux portes de Δ |\n", |
| 87 | + "| 10 | [empilements de sphères](Serre100/10-empilements-borne-lp-cohn-elkies.ipynb) | la borne linéaire de Cohn–Elkies, évaluée par programmation linéaire |\n", |
| 88 | + "| 11 | [corps quadratiques imaginaires](Serre100/11-corps-quadratiques-reciprocite-quadratique.ipynb) | la réciprocité quadratique et les densités de Chebotarev |\n", |
| 89 | + "| 12 | [formes quadratiques binaires](Serre100/12-formes-quadratiques-binaires-nombre-classes.ipynb) | le nombre de classes des formes quadratiques binaires |\n", |
| 90 | + "| 13 | [loi de réciprocité quadratique II](Serre100/13-jacobi-kronecker-reciprocite-II.ipynb) | le symbole de Jacobi et le symbole de Kronecker |\n", |
| 91 | + "| 14 | [composition de Gauss](Serre100/14-formes-quadratiques-composition-gauss.ipynb) | la composition des formes quadratiques et le nombre de classes h(D) |\n", |
| 92 | + "| 15 | [quatre carrés de Lagrange](Serre100/15-quatre-carres-lagrange.ipynb) | tout entier est somme de quatre carrés |\n", |
| 93 | + "\n", |
| 94 | + "Quatorze carnets tournent sur le kernel `python3` ; seul `08` exige le kernel Lean et le lake construit. La section 5 **mesure** cette répartition au lieu de la supposer." |
88 | 95 | ] |
89 | 96 | }, |
90 | 97 | { |
91 | 98 | "cell_type": "markdown", |
92 | 99 | "id": "318cad0c", |
93 | 100 | "metadata": { |
94 | 101 | "papermill": { |
95 | | - "duration": 0.001109, |
96 | | - "end_time": "2026-09-25T09:21:11.942407", |
| 102 | + "duration": 0.001395, |
| 103 | + "end_time": "2026-10-08T11:02:10.949053+00:00", |
97 | 104 | "exception": false, |
98 | | - "start_time": "2026-09-25T09:21:11.941298", |
| 105 | + "start_time": "2026-10-08T11:02:10.947658+00:00", |
99 | 106 | "status": "completed" |
100 | 107 | }, |
101 | 108 | "tags": [] |
|
125 | 132 | "id": "abf1c43a", |
126 | 133 | "metadata": { |
127 | 134 | "papermill": { |
128 | | - "duration": 0.001007, |
129 | | - "end_time": "2026-09-25T09:21:11.945413", |
| 135 | + "duration": 0.001292, |
| 136 | + "end_time": "2026-10-08T11:02:10.951706+00:00", |
130 | 137 | "exception": false, |
131 | | - "start_time": "2026-09-25T09:21:11.944406", |
| 138 | + "start_time": "2026-10-08T11:02:10.950414+00:00", |
132 | 139 | "status": "completed" |
133 | 140 | }, |
134 | 141 | "tags": [] |
|
146 | 153 | "id": "6ff0b75f", |
147 | 154 | "metadata": { |
148 | 155 | "papermill": { |
149 | | - "duration": 0.000933, |
150 | | - "end_time": "2026-09-25T09:21:11.947345", |
| 156 | + "duration": 0.001666, |
| 157 | + "end_time": "2026-10-08T11:02:10.954920+00:00", |
151 | 158 | "exception": false, |
152 | | - "start_time": "2026-09-25T09:21:11.946412", |
| 159 | + "start_time": "2026-10-08T11:02:10.953254+00:00", |
153 | 160 | "status": "completed" |
154 | 161 | }, |
155 | 162 | "tags": [] |
156 | 163 | }, |
157 | 164 | "source": [ |
158 | 165 | "## 5. Mesurer la surface de la sous-série\n", |
159 | 166 | "\n", |
160 | | - "Un capstone sert à décider **si on entre**. La question concrète du lecteur — « qu'est-ce que je dois installer pour lire ces huit carnets ? » — a une réponse objective : elle est écrite dans les carnets eux-mêmes, sous forme d'importations.\n", |
| 167 | + "Un capstone sert à décider **si on entre**. La question concrète du lecteur — « qu'est-ce que je dois installer pour lire ces quinze carnets ? » — a une réponse objective : elle est écrite dans les carnets eux-mêmes, sous forme d'importations.\n", |
161 | 168 | "\n", |
162 | | - "La cellule suivante parcourt les huit carnets, classe leurs importations (stdlib / externe) et relève le kernel déclaré par chacun. Les cellules qu'`ast` ne peut pas lire — magics Jupyter, et surtout le code **Lean** du carnet 08 — sont **comptées et affichées**, jamais silencieusement ignorées : c'est ce compteur qui explique pourquoi 08 n'expose aucune importation Python." |
| 169 | + "La cellule suivante parcourt les quinze carnets, classe leurs importations (stdlib / externe) et relève le kernel déclaré par chacun. Les cellules qu'`ast` ne peut pas lire — magics Jupyter, et surtout le code **Lean** du carnet 08 — sont **comptées et affichées**, jamais silencieusement ignorées : c'est ce compteur qui explique pourquoi 08 n'expose aucune importation Python." |
163 | 170 | ] |
164 | 171 | }, |
165 | 172 | { |
|
168 | 175 | "id": "12a8b74d", |
169 | 176 | "metadata": { |
170 | 177 | "execution": { |
171 | | - "iopub.execute_input": "2026-10-02T04:55:47.171949Z", |
172 | | - "iopub.status.busy": "2026-10-02T04:55:47.171667Z", |
173 | | - "iopub.status.idle": "2026-10-02T04:55:47.633481Z", |
174 | | - "shell.execute_reply": "2026-10-02T04:55:47.632468Z" |
| 178 | + "iopub.execute_input": "2026-10-08T11:02:10.959058Z", |
| 179 | + "iopub.status.busy": "2026-10-08T11:02:10.958852Z", |
| 180 | + "iopub.status.idle": "2026-10-08T11:02:11.641179Z", |
| 181 | + "shell.execute_reply": "2026-10-08T11:02:11.640366Z" |
175 | 182 | }, |
176 | 183 | "papermill": { |
177 | | - "duration": 0.035154, |
178 | | - "end_time": "2026-09-25T09:21:11.984113", |
| 184 | + "duration": 0.685815, |
| 185 | + "end_time": "2026-10-08T11:02:11.642310+00:00", |
179 | 186 | "exception": false, |
180 | | - "start_time": "2026-09-25T09:21:11.948959", |
| 187 | + "start_time": "2026-10-08T11:02:10.956495+00:00", |
181 | 188 | "status": "completed" |
182 | 189 | }, |
183 | 190 | "tags": [] |
|
187 | 194 | "name": "stdout", |
188 | 195 | "output_type": "stream", |
189 | 196 | "text": [ |
190 | | - "10 carnets dans Serre100/\n", |
| 197 | + "15 carnets dans Serre100/\n", |
191 | 198 | "\n", |
192 | 199 | "carnet kernel cells hors AST imports hors stdlib\n", |
193 | 200 | "----------------------------------------------------------------------------------------------\n", |
|
199 | 206 | ] |
200 | 207 | }, |
201 | 208 | { |
202 | | - "name": "stderr", |
| 209 | + "name": "stdout", |
203 | 210 | "output_type": "stream", |
204 | 211 | "text": [ |
205 | | - "<unknown>:6: SyntaxWarning: invalid escape sequence '\\s'\n", |
206 | | - "<unknown>:8: SyntaxWarning: invalid escape sequence '\\l'\n" |
| 212 | + "06-bulles-minkowski.ipynb python3 - matplotlib, numpy\n", |
| 213 | + "07-zeros-fonctions-l-gaps-gue.ipynb python3 - matplotlib\n", |
| 214 | + "08-serre-dans-mathlib-Lean.ipynb lean4-wsl 14 aucun\n", |
| 215 | + "09-congruences-tau-lacunarite-delta.ipynb python3 - matplotlib\n" |
207 | 216 | ] |
208 | 217 | }, |
209 | 218 | { |
210 | 219 | "name": "stdout", |
211 | 220 | "output_type": "stream", |
212 | 221 | "text": [ |
213 | | - "06-bulles-minkowski.ipynb python3 - matplotlib, numpy\n", |
214 | | - "07-zeros-fonctions-l-gaps-gue.ipynb python3 - matplotlib\n", |
215 | | - "08-serre-dans-mathlib.ipynb lean4-wsl 14 aucun\n", |
216 | | - "09-congruences-tau-lacunarite-delta.ipynb python3 - matplotlib\n", |
217 | 222 | "10-empilements-borne-lp-cohn-elkies.ipynb python3 - matplotlib, numpy, scipy\n", |
| 223 | + "11-corps-quadratiques-reciprocite-quadratique.ipynb python3 - aucun\n", |
| 224 | + "12-formes-quadratiques-binaires-nombre-classes.ipynb python3 - aucun\n", |
| 225 | + "13-jacobi-kronecker-reciprocite-II.ipynb python3 - aucun\n", |
| 226 | + "14-formes-quadratiques-composition-gauss.ipynb python3 - aucun\n", |
| 227 | + "15-quatre-carres-lagrange.ipynb python3 - aucun\n", |
218 | 228 | "\n", |
219 | 229 | "Dependances externes de toute la sous-serie : matplotlib, mpl_toolkits, numpy, scipy\n" |
220 | 230 | ] |
|
285 | 295 | "id": "b74a13ea", |
286 | 296 | "metadata": { |
287 | 297 | "papermill": { |
288 | | - "duration": 0.001615, |
289 | | - "end_time": "2026-09-25T09:21:11.987773", |
| 298 | + "duration": 0.001667, |
| 299 | + "end_time": "2026-10-08T11:02:11.645834+00:00", |
290 | 300 | "exception": false, |
291 | | - "start_time": "2026-09-25T09:21:11.986158", |
| 301 | + "start_time": "2026-10-08T11:02:11.644167+00:00", |
292 | 302 | "status": "completed" |
293 | 303 | }, |
294 | 304 | "tags": [] |
295 | 305 | }, |
296 | 306 | "source": [ |
297 | 307 | "La mesure confirme le diptyque et **précise** la convention déclarée :\n", |
298 | 308 | "\n", |
299 | | - "- **Sept carnets sur huit** tournent sur `python3` — un seul (`08`) déclare le kernel `lean4-wsl`, et c'est précisément lui qui n'expose **aucune** importation Python : toutes ses cellules de code sont du Lean, donc hors de portée d'`ast`. Le compteur de cellules illisibles est ce qui rend ce « aucun » lisible comme du Lean, et non comme une absence de dépendance.\n", |
300 | | - "- La sous-série est bien **portée par la bibliothèque standard** : aucune dépendance de calcul n'apparaît.\n", |
301 | | - "- Mais la formule « aucune dépendance au-delà de matplotlib » est **imprécise** : `numpy` est importé par **deux** carnets, `05` et `06` — une seule cellule chacun. Dans les deux cas l'usage est **côté figure**, jamais côté arithmétique : en `05`, `np.array` construit les deux matrices passées à `imshow` (tables de caractères $S_3$ et $S_4$ en carte de chaleur) ; en `06`, `np.linspace`/`np.outer`/(`np.cos`, `np.sin`) maillent la sphère passée à `plot_surface`.\n", |
| 309 | + "- **Quatorze carnets sur quinze** tournent sur `python3` — un seul (`08`) déclare le kernel `lean4-wsl`, et c'est précisément lui qui n'expose **aucune** importation Python : toutes ses cellules de code sont du Lean, donc hors de portée d'`ast`. Le compteur de cellules illisibles est ce qui rend ce « aucun » lisible comme du Lean, et non comme une absence de dépendance.\n", |
| 310 | + "- La sous-série est **majoritairement portée par la bibliothèque standard** : douze carnets sur quinze n'importent, hors figures, aucune dépendance de calcul.\n", |
| 311 | + "- Mais la formule « aucune dépendance au-delà de matplotlib » est **imprécise** : `numpy` est importé par **trois** carnets (`05`, `06` et `10`), et `scipy` par un seul (`10`). En `05` et `06` l'usage de `numpy` est **côté figure** — `np.array` construit les deux matrices passées à `imshow` en `05` (tables de caractères $S_3$ et $S_4$ en carte de chaleur) ; `np.linspace`/`np.outer`/`np.cos`/`np.sin` maillent la sphère passée à `plot_surface` en `06`. En `10`, il est **côté calcul** : `np.linalg`, `np.exp` et `np.sqrt` portent l'évaluation numérique de la borne de Cohn–Elkies, et `scipy.optimize.linprog` résout le programme linéaire qui la certifie.\n", |
302 | 312 | "\n", |
303 | | - "Autrement dit : pour lire la sous-série, `pip install matplotlib numpy` suffit, et l'arithmétique des carnets ne dépend que de la stdlib. C'est la version **mesurée** de la convention — les exercices 1 et 2 la vérifient plus finement." |
| 313 | + "Autrement dit : pour lire la sous-série, `pip install matplotlib numpy scipy` suffit (`mpl_toolkits` est fourni par `matplotlib`). Hors figures, douze carnets sur quinze ne dépendent que de la bibliothèque standard ; `numpy` n'entre dans un calcul qu'au carnet `10`, qui y joint `scipy`. C'est la version **mesurée** de la convention — les exercices 1 et 2 la vérifient plus finement." |
304 | 314 | ] |
305 | 315 | }, |
306 | 316 | { |
307 | 317 | "cell_type": "markdown", |
308 | 318 | "id": "504a93a2", |
309 | 319 | "metadata": { |
310 | 320 | "papermill": { |
311 | | - "duration": 0.0018, |
312 | | - "end_time": "2026-09-25T09:21:11.990681", |
| 321 | + "duration": 0.001635, |
| 322 | + "end_time": "2026-10-08T11:02:11.649194+00:00", |
313 | 323 | "exception": false, |
314 | | - "start_time": "2026-09-25T09:21:11.988881", |
| 324 | + "start_time": "2026-10-08T11:02:11.647559+00:00", |
315 | 325 | "status": "completed" |
316 | 326 | }, |
317 | 327 | "tags": [] |
|
327 | 337 | "id": "0947538b", |
328 | 338 | "metadata": { |
329 | 339 | "papermill": { |
330 | | - "duration": 0.002015, |
331 | | - "end_time": "2026-09-25T09:21:11.993665", |
| 340 | + "duration": 0.001626, |
| 341 | + "end_time": "2026-10-08T11:02:11.652436+00:00", |
332 | 342 | "exception": false, |
333 | | - "start_time": "2026-09-25T09:21:11.991650", |
| 343 | + "start_time": "2026-10-08T11:02:11.650810+00:00", |
334 | 344 | "status": "completed" |
335 | 345 | }, |
336 | 346 | "tags": [] |
|
351 | 361 | "id": "84387dc6", |
352 | 362 | "metadata": { |
353 | 363 | "execution": { |
354 | | - "iopub.execute_input": "2026-10-02T04:55:47.637031Z", |
355 | | - "iopub.status.busy": "2026-10-02T04:55:47.636759Z", |
356 | | - "iopub.status.idle": "2026-10-02T04:55:47.641716Z", |
357 | | - "shell.execute_reply": "2026-10-02T04:55:47.640659Z" |
| 364 | + "iopub.execute_input": "2026-10-08T11:02:11.656889Z", |
| 365 | + "iopub.status.busy": "2026-10-08T11:02:11.656452Z", |
| 366 | + "iopub.status.idle": "2026-10-08T11:02:11.661493Z", |
| 367 | + "shell.execute_reply": "2026-10-08T11:02:11.660773Z" |
358 | 368 | }, |
359 | 369 | "papermill": { |
360 | | - "duration": 0.005443, |
361 | | - "end_time": "2026-09-25T09:21:12.000106", |
| 370 | + "duration": 0.00833, |
| 371 | + "end_time": "2026-10-08T11:02:11.662416+00:00", |
362 | 372 | "exception": false, |
363 | | - "start_time": "2026-09-25T09:21:11.994663", |
| 373 | + "start_time": "2026-10-08T11:02:11.654086+00:00", |
364 | 374 | "status": "completed" |
365 | 375 | }, |
366 | 376 | "tags": [] |
|
400 | 410 | "id": "64b5c7e0", |
401 | 411 | "metadata": { |
402 | 412 | "papermill": { |
403 | | - "duration": 0.0, |
404 | | - "end_time": "2026-09-25T09:21:12.002659", |
| 413 | + "duration": 0.002037, |
| 414 | + "end_time": "2026-10-08T11:02:11.666253+00:00", |
405 | 415 | "exception": false, |
406 | | - "start_time": "2026-09-25T09:21:12.002659", |
| 416 | + "start_time": "2026-10-08T11:02:11.664216+00:00", |
407 | 417 | "status": "completed" |
408 | 418 | }, |
409 | 419 | "tags": [] |
|
424 | 434 | "id": "1ee0d93f", |
425 | 435 | "metadata": { |
426 | 436 | "execution": { |
427 | | - "iopub.execute_input": "2026-10-02T04:55:47.644979Z", |
428 | | - "iopub.status.busy": "2026-10-02T04:55:47.644754Z", |
429 | | - "iopub.status.idle": "2026-10-02T04:55:47.649547Z", |
430 | | - "shell.execute_reply": "2026-10-02T04:55:47.648210Z" |
| 437 | + "iopub.execute_input": "2026-10-08T11:02:11.671190Z", |
| 438 | + "iopub.status.busy": "2026-10-08T11:02:11.670899Z", |
| 439 | + "iopub.status.idle": "2026-10-08T11:02:11.674761Z", |
| 440 | + "shell.execute_reply": "2026-10-08T11:02:11.673954Z" |
431 | 441 | }, |
432 | 442 | "papermill": { |
433 | | - "duration": 0.005001, |
434 | | - "end_time": "2026-09-25T09:21:12.010341", |
| 443 | + "duration": 0.007353, |
| 444 | + "end_time": "2026-10-08T11:02:11.675620+00:00", |
435 | 445 | "exception": false, |
436 | | - "start_time": "2026-09-25T09:21:12.005340", |
| 446 | + "start_time": "2026-10-08T11:02:11.668267+00:00", |
437 | 447 | "status": "completed" |
438 | 448 | }, |
439 | 449 | "tags": [] |
|
467 | 477 | "id": "d2543d15", |
468 | 478 | "metadata": { |
469 | 479 | "papermill": { |
470 | | - "duration": 0.001027, |
471 | | - "end_time": "2026-09-25T09:21:12.013424", |
| 480 | + "duration": 0.001761, |
| 481 | + "end_time": "2026-10-08T11:02:11.679168+00:00", |
472 | 482 | "exception": false, |
473 | | - "start_time": "2026-09-25T09:21:12.012397", |
| 483 | + "start_time": "2026-10-08T11:02:11.677407+00:00", |
474 | 484 | "status": "completed" |
475 | 485 | }, |
476 | 486 | "tags": [] |
|
491 | 501 | "id": "0f5dbbff", |
492 | 502 | "metadata": { |
493 | 503 | "execution": { |
494 | | - "iopub.execute_input": "2026-10-02T04:55:47.653123Z", |
495 | | - "iopub.status.busy": "2026-10-02T04:55:47.652800Z", |
496 | | - "iopub.status.idle": "2026-10-02T04:55:47.658208Z", |
497 | | - "shell.execute_reply": "2026-10-02T04:55:47.656920Z" |
| 504 | + "iopub.execute_input": "2026-10-08T11:02:11.683533Z", |
| 505 | + "iopub.status.busy": "2026-10-08T11:02:11.683215Z", |
| 506 | + "iopub.status.idle": "2026-10-08T11:02:11.687697Z", |
| 507 | + "shell.execute_reply": "2026-10-08T11:02:11.687039Z" |
498 | 508 | }, |
499 | 509 | "papermill": { |
500 | | - "duration": 0.006044, |
501 | | - "end_time": "2026-09-25T09:21:12.020729", |
| 510 | + "duration": 0.008043, |
| 511 | + "end_time": "2026-10-08T11:02:11.688864+00:00", |
502 | 512 | "exception": false, |
503 | | - "start_time": "2026-09-25T09:21:12.014685", |
| 513 | + "start_time": "2026-10-08T11:02:11.680821+00:00", |
504 | 514 | "status": "completed" |
505 | 515 | }, |
506 | 516 | "tags": [] |
|
535 | 545 | "id": "9bfe3694", |
536 | 546 | "metadata": { |
537 | 547 | "papermill": { |
538 | | - "duration": 0.001638, |
539 | | - "end_time": "2026-09-25T09:21:12.024894", |
| 548 | + "duration": 0.001715, |
| 549 | + "end_time": "2026-10-08T11:02:11.692590+00:00", |
540 | 550 | "exception": false, |
541 | | - "start_time": "2026-09-25T09:21:12.023256", |
| 551 | + "start_time": "2026-10-08T11:02:11.690875+00:00", |
542 | 552 | "status": "completed" |
543 | 553 | }, |
544 | 554 | "tags": [] |
|
548 | 558 | "\n", |
549 | 559 | "Trois choses, dans cet ordre :\n", |
550 | 560 | "\n", |
551 | | - "1. **Un point d'entrée** : la sous-série Serre 100 est un diptyque de huit carnets, chacun rendant un énoncé de Serre calculable ; le dossier [`Serre100/`](Serre100/README.md) est son README.\n", |
| 561 | + "1. **Un point d'entrée** : la sous-série Serre 100 est un diptyque de quinze carnets, chacun rendant un énoncé de Serre calculable ; le dossier [`Serre100/`](Serre100/README.md) est son README.\n", |
552 | 562 | "2. **Un résultat formel cité** : le lake [`serre100_lean/`](Serre100/serre100_lean/) porte cinq modules FR et leurs miroirs `_en` — les noms cités en section 3 sont ceux des déclarations qui existent, et le carnet [08](Serre100/08-serre-dans-mathlib-Lean.ipynb) les fait tourner dans un noyau Lean réel.\n", |
553 | | - "3. **Une surface mesurée** : sept carnets sur `python3`, un sur `lean4-wsl` ; deux dépendances externes (`matplotlib`, `numpy`), toutes deux côté figure, l'arithmétique restant en bibliothèque standard.\n", |
| 563 | + "3. **Une surface mesurée** : quatorze carnets sur `python3`, un sur `lean4-wsl` ; quatre dépendances externes (`matplotlib`, `mpl_toolkits`, `numpy`, `scipy`), dont `numpy` et `scipy` n'entrent dans un calcul qu'au carnet `10`.\n", |
554 | 564 | "\n", |
555 | 565 | "Cette forme — un capstone à la racine qui présente la sous-série et cite son lake, le dossier qui porte les carnets, le lake qui porte les preuves — est **l'escalier** que la série applique à ses sous-séries : le parcours principal garde une entrée explicite vers chacune, sans que le lecteur ait à en connaître l'existence par ailleurs.\n", |
556 | 566 | "\n", |
|
574 | 584 | "name": "python", |
575 | 585 | "nbconvert_exporter": "python", |
576 | 586 | "pygments_lexer": "ipython3", |
577 | | - "version": "3.13.15" |
| 587 | + "version": "3.13.3" |
| 588 | + }, |
| 589 | + "papermill": { |
| 590 | + "default_parameters": {}, |
| 591 | + "duration": 2.385164, |
| 592 | + "end_time": "2026-10-08T11:02:11.933472+00:00", |
| 593 | + "environment_variables": {}, |
| 594 | + "exception": null, |
| 595 | + "input_path": "MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-37-Capstone-Serre100.ipynb", |
| 596 | + "output_path": "MyIA.AI.Notebooks/SymbolicAI/Lean/Lean-37-Capstone-Serre100.ipynb", |
| 597 | + "parameters": {}, |
| 598 | + "start_time": "2026-10-08T11:02:09.548308+00:00", |
| 599 | + "version": "2.7.0" |
578 | 600 | } |
579 | 601 | }, |
580 | 602 | "nbformat": 4, |
|
0 commit comments