Repository navigation
Add(notebooks,#15066): tranche D — atelier calculs de preuve Hilbert/LK (Tweety-02e) - #17757
Conversation
…LK (Tweety-02e)
Tweety-02e-Preuves-Hilbert-Gentzen-Lean : la même micro-théorie {p, q, r}
calculée par trois moteurs, avec les mesures qui les séparent.
- Hilbert : les trois axiomes vérifiés par deux oracles réels, une preuve
construite par chaînage avant (coût en instances/MP), plus une
contre-expérience qui réfute par la mesure l'hypothèse d'un vivier
simplement trop étroit.
- LK : hauteur et taille d'un arbre de dérivation mesurées avant/après
élimination des coupures — identité 0/1, coupure 2/4, après Hauptsatz 6/7.
Résultat honnête : le théorème garantit la suppression des coupures,
jamais l'économie de l'arbre.
- Le Hauptsatz est invoqué comme théorème du noyau
(Derivation.Canonical.constructiveHauptsatz, témoin IsCutFree), et
#print axioms nomme [propext, Classical.choice, Quot.sound].
Le versant Lean vit dans le notebook : les fichiers d'index du lake
formal_logic_lean sont sous claim actif d'une autre lane (mesuré, cf. body).
README.md : audit fichier-entier (§E) — recensement unifié (38 fichiers =
37 racine + 1 probe ; 1165 cellules dont 438 code), Tweety-02d entre dans les
tables, résidus déclarés plutôt qu'inventés.
Ré-exécution réelle par batch_reexecute.py : SUCCESS 1038 s, 13/13 cellules
exécutées, 0 sortie vide, 0 erreur ; sorties Lean réelles ([exit 0]).
Seule normalisation : metadata.papermill.*_path ramené au basename.
See #15066
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
…te prose-counts) Le workflow prose-counts refusait la PR : 15 compteurs quantitatifs en prose dans Tweety/README.md, tous sur des lignes ajoutees par la tranche D (reproduit localement : check_prose_quantitative_claims.py --diff origin/main...HEAD --strict, rc=1). Correction conforme a la prescription de l'organe (#9377 : supprimer la mesure, garder le predicat) : - comptes d'etat du depot retires du corps (« 36 notebooks principaux », « 18 notebooks », « 12 fichiers », « 6 modules ») ; - deltas historiques du changelog reformules en forme nom-d'abord (« notebooks principaux 33 -> 34 », « lignes 31 -> 33 ») : le fait historique reste, la forme perissable part ; - « (+1 ligne 2e) » -> « (+ entree 2e) ». Le rouge avait d'abord ete attribue a tort a la base par le picker (« ROUGE IMPUTE A LA BASE, tache COORDINATEUR ») ; la lecture du corps du job + le temoin de controle (PR #17753 verte sur le meme check a 06:19:33Z) etablissent qu'il etait propre a cette PR. See #15066, See #9377. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Rouge Le picker l'avait attribué à la base (« tache COORDINATEUR, unique réparateur possible ») ; la lecture du corps du job disait autre chose : Fix conforme à la prescription de l'organe (#9377 : supprimer la mesure, garder le prédicat) :
Vérifié localement après commit, plage exacte du CI : |
Path-collision (organ #13359/#13615)Cette PR #17757 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
There was a problem hiding this comment.
VERDICT: LGTM (contrainte token : COMMENT only)
[Hermes hermes-pr-review] — Notebook FULL READ au head a6430e3983 (33 cellules, 13 code, toutes executees, 0 null).
Gates #17040
- 8 lectures, toutes placees immediatement APRES leur code cell (index 3/6/11/15/18/20/22/24) ;
- cross-verif des cites numeriques dans les lectures vs outputs : Lecture[15] annonce "~2 700 formules, ~180 MP, 3 tours, 5 etapes" — output confirme
formules_connues: 2713, modus_ponens: 178, tours: 3, etapes: 5(approximations honnetes, pas fabriquees) ; - 3 exercices avec stubs
# TODO etudiant, aucune solution leak ; - prose de liaison dense mais justifiee (moteur/oracle/Hauptsatz articules).
Substance verifiee
- Section 2 : les 3 schemas Lukasiewicz (A1/A2/A3) soumis aux deux oracles — 6
Truedans le stream, contrat d'environnement visible (SimplePlReasoner installe: True, SatReasoner: True) ; - Section 3 : moteur chainage avant derive
p→pen 5 etapes avec cout mesure (instances_axiomes: 2535, formules_connues: 2169) ; chaque etape re-verifiee par les 2 oracles ([OK]x5) ; - Contre-experience (section 3) : syllogisme hypothetique valide par les oracles mais NON derive par le moteur — vivier elargi (
|candidats|=14, sous-formules ajoutees) toujourstrouvee=False. La lecon "limite structurelle, pas budget trop court" est mesuree, pas affirme ; - Section 4 : Hauptsatz
constructiveHauptsatzinvoque comme objet du noyau Lean (extraction.1/.2,#evalhauteur/taille avant/apres elimination,#print axioms), pas decrit en commentaire ; - README Tweety (+19/-12) : corps substantiel pour Tweety-02e (resume, navigation, tableau par-notebook mis a jour) — conforme a la directive README-TOTALS #17633.
Securite : 0 hit.
Bloquant : aucun. LGTM de substance.
Marker cycle: hermes-pr-review 25/09 08:58Z
[Hermes hermes-pr-review, cycle :08 25/09, host f6be46d1b7a3]
|
[ADJOINT PREFLIGHT] Verification firsthand (adjoint po-2023) :
|
|
[ADJOINT PREFLIGHT] Re-emission canonique du dossier (la version c.5829867282 etait malformee : champ Mesure a la tete exacte
Pret au merge des l'ouverture de la fenetre coordinateur. |
Grain: DEEP/notebook-lean — lane myia-po-2024:CoursIA — prev: MED/notebook-dotnet #17671
Résumé
Tranche D de l'EPIC #15066 : atelier calculs de preuve. Le notebook
Tweety-02e-Preuves-Hilbert-Gentzen-Leanfait calculer la même micro-théorie{p, q, r}par trois moteurs, et mesure la taille de ce que chacun produit.See #15066 (tranche D — l'EPIC reste ouverte : les tranches E/F ne sont pas livrées ici).
SimplePlReasoner/SatReasonerTrue/FalseLe versant Lean : un théorème du noyau, pas une procédure décrite
constructiveHauptsatz(Foundation, pin81810b9f22c4) n'est pas invoqué comme un récit : le notebook l'appelle et évalue le résultat..1du sous-type) et sa hauteur/taille sont#eval-uées contre celles de la dérivation d'origine ;Derivation.IsCutFreeest extrait (.2) et type-checké par le noyau ;#print axiomsliste ce sur quoi repose le théorème lui-même.La leçon est que l'élimination des coupures est un objet qu'on peut manipuler comme un lemme de Mathlib, pas un algorithme évoqué en commentaire.
Contre-expérience : un résultat négatif, mesuré puis expliqué
Le notebook ne se contente pas de montrer ce qui marche. La section 3 inclut une contre-expérience dont l'issue n'était pas acquise :
(p → q) → ((q → r) → (p → r))est déclaré valide par les deux oracles (True) ;p → p(5 étapes), ce qui écarte l'explication « budget global trop court ».Le notebook conclut donc à une borne structurelle de la recherche, pas quantitative. Ce paragraphe a été ajouté après mesure : une première rédaction affirmait qu'élargir le vivier suffisait — c'est faux, et la mesure l'a montré avant le commit.
Position sur l'organe natif (règle
organ-first-implementation)formal_logic_leanqui l'épingle ; c'est lui qui possèdeDerivation,Canonical.constructiveHauptsatzetIsCutFree.Foundation.FirstOrder.Hauptsatzet appelle le théorème réel. Aucune réimplémentation locale du Hauptsatz.constructiveHauptsatz(computable) /hauptsatz(noncomputable) fait l'objet de l'exercice 3 :#print axiomssur les deux, et l'échec attendu de#evalsur la seconde.Déviations déclarées
Ce lot n'ajoute aucun module de pont au lake
formal_logic_lean/et n'édite aucun de ses fichiers :FormalLogic.lean,FormalLogic/ModalZoo.leanet l'index sont sous claim actif d'une autre lane — mesuré, pas supposé. Le lac vit sousSymbolicAI/Lean/, pas sousSymbolicAI/Tweety/; le chemin est nommé ici pour que la mesure soit rejouable telle quelle :Le versant Lean de la tranche D vit donc dans le notebook (préambule Lean soumis au noyau par
lake env lean, qui hérite du toolchain et duLEAN_PATHdu pin). C'est une déviation assumée, tracée dans le changelog du README, pas un contournement silencieux.Validation
raise NotImplementedError/assert False/1/0absents des 13 cellules de code (0 hit) ; les trois exercices sont des stubs qui s'exécutent (print("Exercice a completer")).batch_reexecute.py(kernelpython3,--cwd notebook) : SUCCESS en 1038 s,REAL_EXIT=0(le code de sortie réel du lanceur, pas celui du wrapper). Contrôles sur le notebook committé : 13/13 cellules de code portent unexecution_countréel (1 → 13), 0 sortie vide, 0 sortie d'erreur.lake env leanen WSL, dont chaque sortie porte son[exit 0]. Leurs sorties impriment les nombres que la prose cite : cellule 21 →0, 2, 1, 4(hauteur/taille d'identité puis de coupure) ; cellule 23 →6, 7, 2, 4(dérivation rendue par le Hauptsatz, puis rappel) suivi de'FFL.FirstOrder.Derivation.Canonical.constructiveHauptsatz' depends on axioms: [propext, Classical.choice, Quot.sound].Exercice a completer(C.1 respectée : le notebook va au bout).metadata.papermill.input/output_pathramené aubasename(tolérance 1 desecrets-hygiene.md, qui porte sur la métadonnée et non sur une sortie). Contrôle indépendant : 0 chemin machine (D:\,/mnt/,/tmp/) dans l'ensemble des sorties.detect_consecutive_code_cells.py:Run >= 2: 0(le notebook portait un run de 2, résolu par une cellule de transition).Foundation81810b9f22c4,mathlib0df444a360ea,ProvabilityLogic01628c51f618— identiques àlake-manifest.json(assertion de la cellule 17).Foundation.FirstOrder.Hauptsatza été construit depuis le pin (962/962,Hauptsatz.oleandu 2026-09-25T06:49Z) : le théorème invoqué n'est pas un binaire préexistant.1165cellules /438code =1153 + 12(37 notebooks racine) et433 + 5(probe) — réconcilié avec la ligne 67.🤖 Generated with Claude Code