Repository navigation
Add: PT-14 notebook vericoding pipeline local complet (See #16751) - #17079
Conversation
|
✅ No prose/output mismatch detected in the notebooks this PR changed. Scope = notebooks CHANGED in this PR, not the whole corpus. Explicit |
Notebook outputs-required (H.4 schema): PASS (every code cell carries an
|
Golden-Set Execution (H.7 P3)✅ 8/8 notebooks passed (certified reproducible)
Pinned lockfile: |
Notebook PR Validation: PASS
Checks: H.1 (no errors), H.3 (execution_count), C.1 (no banned patterns) |
clusterManager-Myia
left a comment
There was a problem hiding this comment.
[Hermes] VERDICT: LGTM — full-read du notebook au head d1fa7e6 (1597 lignes, P4).
Vérifications faites (notebook complet extrait au head, vue structurelle nb_view, pas le diff) :
- Exécution réelle, pas statique : les deux bancs portent leurs outputs complets (30 lignes Dafny tour par tour, 12 Lean), durées committées cohérentes entre elles et avec le body (491s + 999s ≈ 25 min 03 s annoncé).
- Valeurs du body toutes ancrées dans les outputs : 3/30 = 10.0 %, pass@1 = 0, succès {turn 2: 3}, échecs {'bypass': 7, 'verify': 20}, Lean 0/12 {'verify': 10, 'bypass': 1, 'count': 1}, LC0033 « 3 verified, 0 errors » → « 2 verified, 1 error » sur la spec réparée, exécution [0, 2, 3, 5, 9, 123] conforme=true. Rien de fabriqué.
- Gates #17040 : aucun header dupliqué, zéro prose empilée, chaque lecture suit immédiatement la cellule lue. Cellules d'exercices = stubs TODO sans solution (pas de solution-leak), sorties None affichées honnêtement.
- Garde anti-contournement réelle et pré-vérification :
assume/{:axiom}(Dafny),sorry/native_decide/axiom(Lean), plus le critère « pas de declaration uses 'sorry' » pour Lean — le parallèle §6 avec le gate proof-integrity du dépôt est exact, y compris la colonne manquante (spec creuse) correctement identifiée comme limite. - Dégradation affichée si Ollama/Dafny/lean manquent — pas de silence.
- Security scan du diff et des sources : néant.
Un cran pédagogique net au-dessus de PT-05, conclusions Mesuré/Cité hiérarchisées. Rien à changer.
Path-collision (organ #13359/#13615)Cette PR #17079 (
Le verdict terminal (#15578) signale qu'un cote de la paire est deja sur |
|
[ADJOINT PREFLIGHT] |
|
[ADJOINT PREFLIGHT] |
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Renumérotation d'accrétion au rebase (tell « collision d'identifiant », précédent #13771). Le PT-14 « lois thermodynamiques » (R08, #16741) a été mergé sur main entre l'ouverture de cette PR et le rebase : deux notebooks revendiquaient le slot
Changements embarqués : |
d1fa7e6 to
eb3da9c
Compare
|
[ADJOINT PREFLIGHT] |
Grain: DEEP/notebook-python — lane myia-po-2027:CoursIA — prev: DEEP/notebook-python #17045
Résumé
Notebook 18 de la série PostTraining : PT-16 — Vericoding, la preuve formelle comme récompense (Bursuc et al. 2025, arXiv:2509.22908, résultat R15 de l'Epic #16741). Le pipeline complet du papier, exécuté en local de bout en bout : spec → LLM local (Ollama Qwen2.5-7B-Instruct) → vrai vérificateur (
Dafny verify4.11 / binaireleanv4.34) → boucle de réparation 5 tentatives (protocole papier exact : 1 génération + 4 réparations avec l'erreur du vérificateur en feedback, réponse au format tableau JSON du papier).Ce que le notebook contient (25 cellules, 14 code, kernel
python3) :<vc-preamble>/<vc-helpers>/<vc-spec>/<vc-code>, 12 504 tâches du benchmark public (MIT), échantillon stratifié fixe embarqué (graine 42) : 30 Dafny QA-propres + 12 Lean sans import Mathlib — trouvaille d'ingénierie : ces 6 289 tâches se vérifient au binaireleannu, sans lake ni build Mathlib.ollama_chat/parse_response(format papier, tolérance unique aux fences json) /apply_replacements(substitution par offsets) / garde anti-contournement (assume,{:axiom}en Dafny ;sorry,native_decide,axiomen Lean) — rejet avant vérification, et pour Lean critère « pas d'erreur ET pas dedeclaration uses 'sorry'» (un sorry restant n'est qu'un warning : sans cette garde, tout « réussirait »).verify20,bypass7,json0 — la répartition est la leçon : le 7B maîtrise le format de réponse du papier (0 échec de parsing), tente parfois la sortie interdite (bypass— la garde anti-contournement travaille), et échoue surtout sur la preuve elle-même.verify10,bypass1,count1) — aucune tâche ne passe, ni en génération ni en réparation (papier : 26,8 % avec modèles de frontière — l'écart Dafny/Lean du papier se retrouve, amplifié, à l'échelle 7B).3 verified, 0 errors), rejetée par la spec réparée (1 error), implémentation correcte exécutée conforme au test du papier ([0,2,3,5,9,123]). Lien avec l'anti-triche du papier (~9 % de specs trop faibles sur les tâches réussies).sorryAx,native_decide,Classical.choice) ↔ garde du pipeline — et la colonne manquante : aucun des deux n'attrape la spec creuse.README de la série mis à jour : ligne PT-16 au tableau, prose d'intro (18 notebooks), progression pédagogique (PT-16 = cran au-dessus de PT-05). Bloc
CATALOG-STATUSlaissé byte-identique à main (règle catalog-pr-hygiene — l'automatisation le régénérera au merge).Validation (5 points)
Dafny verify+leanréels, 25 min 03 s end-to-end), LC0033 vérifiée/exécutée réellement, outputs sans fuite de chemin (chemins relatifs au subprocess).git grep(ollama_chat,parse_response,run_task,verdict_tentative) dans le reste du dépôt : aucune collision.Corrigés validés en boîte noire (attestation)
Harness dédié (scratchpad) rejouant les cellules pré-exercices puis injectant chaque solution à la place du stub :
spec_exige_totalite→ buggée=False, réparée=True (détection de la quantification totale).verdict_tentative→ 4/4 verdicts attendus (verify/count/bypass/json).Verdict SOTA (Prong A)
SOTA-OK. Les trois vrais outils du domaine sont installés et invoqués : Dafny 4.11 (binaire officiel,
verifyetrun), Lean 4 v4.34 (toolchain elan, binaire nu sur tâches sans import), Ollama (serveur local, modèle réel). Le LLM est le sujet du notebook (c'est sa capacité qu'on mesure), pas un outil à remplacer. La jambe Lean mesurée est bornée aux tâches sans Mathlib — bornage documenté dans le notebook (les tâches à import exigent un lake Mathlib : hors budget d'un banc notebook) ; les taux Lean à import sont cités du papier, jamais extrapolés. LC0033 : la tâche originale est Lean+Mathlib — affichée telle quelle, démontrée en portage Dafny déclaré et fidèle (même bug, même réparation), + exécution réelle de l'implémentation correcte ; sa vérification formelle complète est posée en exercice ouvert, assumé dans la prose.See #16751 (grain livré) · See #16741 (Epic Tegmark, arc B, R15).
🤖 Generated with Claude Code
Update (rebase) : renumérotation d'accrétion PT-14 → PT-16 (collision avec le PT-14 « lois thermodynamiques » mergé sur main via #16741 ; PT-15 réservé par #17196 ; mapping et justification : commentaire). Titre H1 markdown-only (cellule 0), aucune cellule code touchée, outputs committés inchangés.