Skip to content

Docs(smt,#19278): confirmer le mapping carnet <-> livre Yurichev (sections et folios lus sur le PDF archivé) - #24571

Open
jsboige wants to merge 3 commits into
mainfrom
fix/19278-yurichev-mapping
Open

jsboige wants to merge 3 commits into
mainfrom
fix/19278-yurichev-mapping

Conversation

@jsboige

@jsboige jsboige commented Nov 4, 2026 •

Copy link
Copy Markdown
Owner

Grain: MED/readme -- lane myia-po-2024:CoursIA-2 -- prev: DEEP/notebook-python #24361

Ce que fait cette PR

Elle confirme les mappings « carnet <-> livre » que les deux README de la famille SMT laissaient a a_confirmer :

  • l'index chapitre de Z3-API/README.md : lignes Z3-15 et Z3-16 ;
  • le tableau de mapping des carnets Z3-Linq2Z3, dans les deux README (section + folio desormais en colonne) ;
  • l'avertissement « defaut biblio » du README Z3-Linq2Z3, leve : il etait propre au siege qui l'avait constate.

Elle precise en outre ce que le mapping ne dit pas : il relie chaque carnet a la section de l'ouvrage qui traite le meme sujet, il n'affirme pas que le carnet reprend l'instance de l'ouvrage.

Mesures (firsthand)

  • Copie archivee lue : G:\Mon Drive\MyIA\IA\Bibliographie IA\Symbolic\2023 - SAT_SMT_by_example.pdf, instrument PyMuPDF 1.27.2.3.
  • Folio = index PDF − 1 : le folio imprime est la premiere ligne de texte de la page (en pied de page pour les ouvertures de chapitre, ou la page s'ouvre sur une table de matieres). Releve sur une vingtaine de reperes : index 12 -> folio 11 (« Chapter 1 / Introduction »), index 15 -> 14 (« Chapter 2 / Basics »), index 206 -> 205 (« 8.1 Sudoku »), index 213 -> 212 (« 8.1.2 »), index 233 -> 232 (« 8.2 Zebra puzzle »), index 277 -> 276 (« 8.10 Alphametics »), index 347 -> 346 (« 12.1 A simple Latin square »), index 362 -> 361 (« 12.4 »), index 398 -> 397 (« 14.5 »), index 406 -> 405 (« 14.8 »), index 634 -> 633 (« 22.8 »), index 91 -> 90 (« 3.13.2 »), index 93 -> 92 (« 3.13.3 »), index 114 -> 113 (« 4.5 »), index 133 -> 132 (« 5.1 »), index 333 -> 332 (« Chapter 10 / Knapsack problems »), index 384 -> 383 (« Chapter 14 / MaxSAT/MaxSMT »).
  • Numeros de section releves sur la page, jamais dans le sommaire imprime : 8.1.2 Simple sudoku in SMT using functions and array, 12.1 A simple Latin square, 12.4 Magic/Latin square of Knut Vik design, 14.5 Assignment problem, 14.8 Packing students into a dorm, 22.8 Job Shop Scheduling/Problem, 3.13.2 Unsat core, 4.5 Simplifying long and messy expressions using Z3, 5.1 Integer overflow, 8.10 Alphametics. Le sommaire imprime et le corps ne portent pas la meme pagination (mesure du 23/10/2026 sur cette meme copie).
  • Le PDF s'ouvre normalement depuis ce poste : fitz.open() rend le document entier. Le defaut constate le 05/10/2026 ne vaut que pour le siege qui l'a constate.

Deux points de fond

  • Z3-16 (Meal-Planner) : le livre lui-meme formule le §22.8 en termes de restaurant (« each dish is a job », « each stage/task require specific kitchen appliance and/or chef ») : l'ancrage du plan hebdomadaire est dans l'ouvrage, pas une analogie forcee. Le §14.5 (probleme d'affectation, Optimize + Distinct) couvre la partie « choix des plats par categorie ».
  • Z3-15 (tableaux imbriques 2D) : l'ouvrage n'a pas de section « nested arrays » ; l'ancrage reel est Ch. 12 Latin squares (§12.1, §12.4 et son §12.4.1 « Using Z3Py ») et §8.1.2 (Sudoku encode par tableaux). Le mapping le dit ainsi, sans section inventee.

Ce que le mapping ne dit pas

La confrontation instance par instance des trois carnets dont l'exemple est le plus directement l'image du livre :

  • 13_Cryptarithmetic_SMT reprend bien l'alphametique du livre (§8.10, p. 276 — SEND + MORE = MONEY, memes lettres S E N D M O R Y et meme equation positionnelle).
  • 02_Sudoku_Theorem_vs_Array en reprend le cadre d'encodage (§8.1.2, p. 212), pas la grille : celle du livre (§8.1, p. 205) est le « world's hardest sudoku » a 23 indices, et la grille du carnet est celle de Norvig a 30 indices, absente de l'ouvrage.
  • 18_Einsteins_Riddle en reprend le cadre d'encodage (§8.2, p. 232), pas le puzzle : l'instance du livre a pour reponse que le Japonais possede le zebre, le carnet resout une variante renommee dont la reponse est « l'Allemand qui possede le poisson ».

La note « Portee du mapping » ajoute cette precision aux deux tableaux.

Portee

  • Markdown pur, deux fichiers de README. Aucune cellule de carnet touchee -> pas de re-execution due (C.2 sans objet).
  • python scripts/notebook_tools/check_prose_quantitative_claims.py --diff origin/main...HEAD : rc=0.
  • Controle REST sur les fichiers de toutes les PRs ouvertes : aucune ne touche ces deux README -> pas de collision au merge.
  • Les credits explicites dans les cellules d'introduction (travail 3 de Referencement SMT/Solvers (2/4) : Yurichev SAT/SMT by Example comme ouvrage-ancrage des series Z3-API et Z3-Linq2Z3 #19278) ne font pas partie de cette PR : ils touchent des cellules de carnet et font l'objet d'une tranche separee.

Fichiers

  • MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-API/README.md
  • MyIA.AI.Notebooks/SymbolicAI/SMT/Z3-Linq2Z3/README.md

See #19278

🤖 Generated with Claude Code

…lecture du PDF archivé

Les deux README SMT portaient des lignes 'a confirmer' : l'index Z3-15/Z3-16 et le mapping des carnets Z3-Linq2Z3. Le PDF etait illisible sur le siege qui avait produit ces lignes (defaut propre au siege, leve le 04/11/2026) ; la copie archivee a ete lue depuis un poste equippe (G: monte, PyMuPDF 1.27.2.3).

Folio = index PDF - 2 (calibre sur les pieds de page et les tetes de chapitre lues sur la page) ; numeros de section releves sur la page elle-meme, jamais dans le sommaire imprime, dont la pagination diverge du corps.

Aucune cellule de carnet touchee : pas de re-execution due (C.2 sans objet).

See #19278

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

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Trivial-diff advisory (#15740, non bloquant).
genre readme dans la famille META (docs/guard/ledger/readme/test) + diff de 61 lignes changees (<= 100) + aucune exception ecrite dans le body : le litmus de la trivialite (une douzaine d'instances scannees a la suite) est credible. Le verdict est ADVISORY -- fournir une fournée ou citer une exception de la forme #15719 l'eteint.
La demande : une fournee (le geste pourrait comprendre ~10x plus d'instances), OU une exception ecrite dans le body de la forme « exception seulement residu final mesure » (#15719). Editer le body re-deroule cet organe et retire le label.

jsboige and others added 2 commits November 4, 2026 06:28
…citée

Deux corrections sur le mapping carnet <-> livre des README de la famille SMT :

1. **Formule du folio.** Le README affirmait « folio = index PDF - 2 ». Mesure sur
   la copie archivee : le folio est la premiere ligne de texte de la page (en pied
   de page pour les ouvertures de chapitre), donc **folio = index PDF - 1** —
   verifie sur une vingtaine de reperes (index 206 -> folio 205, index 277 -> 276,
   index 348 -> 347, index 471 -> 470). Les 17 folios cites dans les tableaux
   etaient justes ; c'est la formule qui etait fausse.

2. **Portee du mapping.** Le tableau relie chaque carnet a la section de l'ouvrage
   qui traite le meme sujet, sans pretendre que le carnet reprend l'**instance**
   de l'ouvrage. La note le dit desormais : `13_Cryptarithmetic_SMT` reprend bien
   l'alphametique du livre (§8.10, p. 276) ; `02_Sudoku_Theorem_vs_Array` et
   `18_Einsteins_Riddle` en reprennent le **cadre d'encodage** (§8.1.2, p. 212 ;
   §8.2, p. 232) pour des instances qui leur sont propres.

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

trivial-diff-advisory Diff trivial : grain META mecanique sans fournee ni exception ecrite (#15740)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant