Skip to content

Commit e69c02c

Browse files
claudehyperpolymath
authored andcommitted
chore(proof-suite): refresh stale status labels to verified passing (35/37)
Roadmap item 3 (full proof suite green). A full local runner pass — idris2 0.8 + agda 2.6.3 + Rocq 9.0, now awk-portable since #47 — reports **35/37 passing, 2 regressed**. The key finding: the suite was far greener than its labels. `M5-yoneda.agda` is not a stub — it is a complete 386-line self-contained Yoneda formalization that compiles (my earlier "agda 0/1" was the same path/module-name trap as the idris files: run from repo root vs. `cd` into the dir + basename). Likewise the ~20 `not-started`-labelled rocq entries (M6–M14, S6–S10, E6–E11) all compile and define their headline symbol. So this flips 21 stale `not-started` + 1 stale `in-progress` (M1) labels to `passing`, verified by that runner pass. The 2 not locally verifiable — `M2` (mathcomp) and `E1` (Coquelicot, ndim port) — keep their prior CI-canonical `passing` status: their dependency sources live on `gitlab.inria.fr` / `erratique.ch` (403 in this github-only environment) but pass in CI. `REPORT.a2ml` and the per-entry sidecars are intentionally NOT regenerated from this local run (they would show those 2 as locally-regressed); the nightly CI run with the full toolchain regenerates the canonical evidence. Manifest stays well-formed (parens 500/500; 37 entries parse; all `passing`); revision-log entry added; `last-manifest-update` bumped. https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We
1 parent c9a9e92 commit e69c02c

3 files changed

Lines changed: 33 additions & 26 deletions

File tree

.machine_readable/6a2/STATE.a2ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
@state(version="2.0"):
88
phase: "implementation"
9-
next_action: "User roadmap (in order): (1) parser/typecheck gap-fill [DONE: function/type/agent dup-detection this branch] — remaining gap-fill candidates: the `trace { }` standalone-statement parse gap (semantic_analysis_example.007:71 fails), and extend dup-detection to protocols/behaviours/supervisors if wanted. (2) L10 RUNG 3b — cross-handler residues via agent state (partly runtime: residue cell in agent state + evaluator Holding/Spent, ResidueCell/takeForReverse:Maybe). (3) FULL PROOF SUITE GREEN — write M5-yoneda.agda (only agda entry, not-started/stub); the 3 rocq holdouts (M2 mathcomp, E1_ndim+S3_ndim Coquelicot) are CI-only by network policy. (4) CONSOLIDATE."
10-
last_action: "Roadmap item 1 — extended DuplicateDefinition to FUNCTION/TYPE/AGENT (branch claude/dup-detection-fn-type-agent). These were gathered but silently last-win on redefinition; check_duplicate_definitions now flags two top-level fn/type/agent of the same name (within-kind, per parsed decl, so an `agent Name(args)` ref in a supervisor children: list is NOT a duplicate — verified no false positives across all examples). 4 new tests; 901 oo7-core lib pass; fmt+clippy clean. Also re-verified machine-checking with the local toolchain: ROCQ 35/38 .v compile (3 network-walled), AGDA 0/1 (M5-yoneda not-started), IDRIS2 16/16 incl L10 (EchoResidue+EchoResidueLinear). Prior this session: governance/handover docs (#48), runner awk fix (#47), Rocq 9 local (35/37), #46 import+locale+choreography dup-detection, #45 just gate. Echidna still unspecified placeholder."
9+
next_action: "User roadmap — only (4) CONSOLIDATE remains. (1) gap-fill DONE (#49 fn/type/agent dup-detect; #46 import/locale/choreography). (2) L10 rung 3b STATIC half DONE (#50, branch l10-rung3b-static); rung-3b RUNTIME half (evaluator Holding/Spent replay) still a follow-on. (3) PROOF SUITE: verified 35/37 passing locally (full runner: idris2+agda+Rocq9), manifest labels refreshed to all-37-passing this branch; M2(mathcomp)+E1(Coquelicot) CI-only by github-only network. Optional leftovers: trace{} standalone-statement parse gap; M5/M1 were stale-labelled not actually missing. CONSOLIDATE = sweep docs/AFFIRMATION/status to the verified state, fold the open branches."
10+
last_action: "Roadmap item 3 — PROOF SUITE GREEN verified + manifest status refresh (branch claude/proof-suite-status-refresh). Ran the FULL canonical-proof-suite-runner with the local toolchain (idris2 0.8 + agda 2.6.3 + Rocq 9.0, now awk-portable via #47): Summary 35/37 passing, 2 regressed. CRUCIAL finding: M5-yoneda.agda is NOT a stub — it's a complete 386-line self-contained Yoneda formalization that COMPILES runner-style (my earlier 'agda 0/1' was the same path/module-name trap as idris — must cd into dir + basename); likewise ~20 'not-started'-labelled rocq entries (M6-M14,S6-S10,E6-E11) actually compile+define their symbol. So the suite was far greener than the labels. Refreshed 21 not-started + 1 in-progress(M1) -> passing (verified); M2(mathcomp)+E1(Coquelicot ndim) kept prior CI-canonical passing (network-blocked locally). Did NOT regenerate REPORT/sidecars (would show M2/E1 locally-regressed; nightly CI regenerates canonical). Manifest balanced 500/500, 37 entries all passing, revision-log entry added. Prior this session: rung-3b static (#50), #49 fn/type/agent dup, #48 docs, #47 awk fix, Rocq9 local, #46/#45."
1111
updated: 2026-06-19T21:45:00Z
1212

1313
@blockers:

.machine_readable/session-log.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,5 @@
4343
[2026-06-19 21:47:43] Governance + handover artifacts (branch claude/affirmation-and-handover, off latest main 2c52cf6). User asked to (1) store the must/intend/wish status tables in-repo, (2) write a paste-ready prompt for the next 007 Claude, (3) make an AFFIRMATION.adoc per standards-repo guidance, timestamped. Delivered: AFFIRMATION.adoc (root) — RSR-convention attestation (SPDX+AsciiDoc+a2ml attestation ethos+contractile must/intend/wish vocab), timestamp 2026-06-19T21:43:26Z, commit 2c52cf6; affirms musts met (Harvard, L1-L10, honest proofs, RSR hygiene), labels intends in_progress (rung 3b, gap-fill, full suite) and the two owner-side blocks (Actions billing, github-only network) honestly. docs/status/must-intend-wish-2026-06-19.adoc — the full Echidna (thin: placeholder, no spec) + 007 tables. docs/handover/NEXT-CLAUDE-PROMPT.md — paste-ready handoff incl. env gotchas (billing-blocked CI+admin-merge, github-only network, OPAMROOT=/root/.opam3 rocq9 switch, assail-pollutes-session-log, branch/gate discipline). standards-repo AFFIRMATION template NOT retrievable (public but out of session MCP scope; web search 0 results; tree listings errored) so followed confirmed conventions + said so in the doc. Reworded believe_me/sorry/etc. examples out of the docs to stay banned-token-clean. Doc-only; A2ML 6a2 clean. Pushing -> draft PR.
4444

4545
[2026-06-19 23:08:35] Roadmap item 1 (parser/typecheck gap-fill) — extend DuplicateDefinition to FUNCTION/TYPE/AGENT (branch claude/dup-detection-fn-type-agent off main). These three are gathered (gather_function/type/agent_decl) but silently last-win on redefinition; added Function/TypeDecl/Agent arms to check_duplicate_definitions (within-kind, keyed on (kind,name), per parsed top-level decl). SAFETY: text-grep flagged apparent dup agent names in 5 examples, but inspection showed the 2nd occurrence is always `agent Name(args)` in a supervisor children: list (a REFERENCE, not a top-level decl) — so the per-decl check ignores them; confirmed empirically (oo7 check on every example → zero false positives). 4 tests (dup fn/type/agent + agent-reference-in-supervisor-not-a-dup); fixed the regression snippet after learning `agent Name(args)` is only valid in supervisor children:, not as a control_stmt. 901 oo7-core lib pass (was 897); fmt+clippy clean. Also (answering user q on "done intra-body"): re-verified machine-checking with local provers — ROCQ 35/38 .v (3 walled: M2 mathcomp, E1_ndim+S3_ndim Coquelicot), AGDA 0/1 (M5-yoneda not-started), IDRIS2 16/16 incl L10. User roadmap remaining: (2) L10 rung 3b, (3) full proof suite green (write M5 agda; rocq holdouts CI-only), (4) consolidate. Pushing -> draft PR.
46+
47+
[2026-06-19 23:57:43] Roadmap item 3 — PROOF SUITE GREEN + manifest status refresh (branch claude/proof-suite-status-refresh off main c9a9e92). Ran full canonical-proof-suite-runner with local toolchain (idris2 0.8 + agda 2.6.3 + Rocq 9.0; runner awk-portable since #47): Summary 35/37 passing, 2 regressed. KEY: M5-yoneda.agda is a COMPLETE 386-line self-contained Yoneda proof that compiles runner-style — my earlier agda 0/1 was the path/module-name trap (run from repo-root vs cd-into-dir+basename, same as idris). ~20 not-started-labelled rocq entries (M6-M14/S6-S10/E6-E11) also compile+define-symbol. Refreshed 21 not-started + 1 in-progress(M1) -> passing (sed, verified by the runner pass); M2(mathcomp) + E1(Coquelicot ndim port) kept prior CI-canonical passing (their dep sources gitlab.inria.fr/erratique.ch are 403 in this github-only env). Did NOT commit the runner-regenerated REPORT/STATUS/sidecars (they show M2/E1 as locally-regressed; nightly CI regenerates the canonical evidence with full toolchain) — reverted them. Manifest now 37/37 passing, parens 500/500 balanced, 37 entries parse, revision-log entry added, last-manifest-update bumped to 2026-06-19. Only roadmap item (4) CONSOLIDATE remains; rung-3b RUNTIME half is a separate follow-on. Pushing -> draft PR.

audits/canonical-proof-suite/MANIFEST.a2ml

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
(suite-spec-version "1.1-proposed")
3636
(suite-spec-date "2026-04-18")
3737
(canonical-doc "audits/canonical-proof-suite/README.adoc")
38-
(last-manifest-update "2026-06-15")
38+
(last-manifest-update "2026-06-19")
3939
(status "active"))
4040

4141
;; ========================================================
@@ -76,7 +76,7 @@
7676
(prover "idris2")
7777
(proof-file "proofs/canonical-proof-suite/M1InfinitudeOfPrimes.idr")
7878
(expected-symbol "infinitudeOfPrimes")
79-
(status "in-progress")
79+
(status "passing")
8080
(porting-source "agda-stdlib Data.Nat.Primality; Idris2 stdlib examples"))
8181

8282
(entry
@@ -117,7 +117,7 @@
117117
(prover "agda")
118118
(proof-file "proofs/canonical-proof-suite/M5-yoneda.agda")
119119
(expected-symbol "yoneda")
120-
(status "not-started")
120+
(status "passing")
121121
(porting-source "agda-categories; mathlib4 CategoryTheory.Yoneda"))
122122

123123
;; ========================================================
@@ -241,7 +241,7 @@
241241
(prover "rocq")
242242
(proof-file "proofs/canonical-proof-suite/M6_deduction_theorem.v")
243243
(expected-symbol "deduction_theorem")
244-
(status "not-started")
244+
(status "passing")
245245
(porting-source "Coq stdlib Classical; Isabelle/HOL Main; mathlib4 Logic.Basic"))
246246

247247
(entry
@@ -251,7 +251,7 @@
251251
(prover "rocq")
252252
(proof-file "proofs/canonical-proof-suite/S6_mass_action.v")
253253
(expected-symbol "mass_action_equilibrium")
254-
(status "not-started")
254+
(status "passing")
255255
(porting-source "No standard formal-library port; derive from Gibbs-free-energy minimum"))
256256

257257
(entry
@@ -261,7 +261,7 @@
261261
(prover "rocq")
262262
(proof-file "proofs/canonical-proof-suite/E6_cstr_mass_balance.v")
263263
(expected-symbol "cstr_steady_state_closure")
264-
(status "not-started")
264+
(status "passing")
265265
(porting-source "No standard formal-library port; first-principles balance equation"))
266266

267267
(entry
@@ -271,7 +271,7 @@
271271
(prover "rocq")
272272
(proof-file "proofs/canonical-proof-suite/M7_linearity_of_expectation.v")
273273
(expected-symbol "linearity_of_expectation")
274-
(status "not-started")
274+
(status "passing")
275275
(porting-source "mathlib4 Probability.Basic; Isabelle/HOL Probability"))
276276

277277
;; ========================================================
@@ -285,7 +285,7 @@
285285
(prover "rocq")
286286
(proof-file "proofs/canonical-proof-suite/M8_rank_nullity.v")
287287
(expected-symbol "rank_nullity_theorem")
288-
(status "not-started")
288+
(status "passing")
289289
(porting-source "mathlib4 LinearAlgebra.Dimension; Coq mathcomp.algebra; Isabelle HOL-Analysis"))
290290

291291
(entry
@@ -295,7 +295,7 @@
295295
(prover "rocq")
296296
(proof-file "proofs/canonical-proof-suite/M9_unique_factorization.v")
297297
(expected-symbol "unique_factorization")
298-
(status "not-started")
298+
(status "passing")
299299
(porting-source "mathlib4 RingTheory.UniqueFactorizationDomain; mathcomp"))
300300

301301
(entry
@@ -305,7 +305,7 @@
305305
(prover "rocq")
306306
(proof-file "proofs/canonical-proof-suite/M10_knot_composition_monoid.v")
307307
(expected-symbol "knot_composition_monoid")
308-
(status "not-started")
308+
(status "passing")
309309
(porting-source "No standard formal-library port; KnotTheory.jl + Schubert's prime-decomposition as reference"))
310310

311311
(entry
@@ -315,7 +315,7 @@
315315
(prover "rocq")
316316
(proof-file "proofs/canonical-proof-suite/M11_pigeonhole.v")
317317
(expected-symbol "pigeonhole_principle")
318-
(status "not-started")
318+
(status "passing")
319319
(porting-source "mathlib4 Combinatorics.Pigeonhole; Coq Finite; Isabelle HOL-Library"))
320320

321321
(entry
@@ -325,7 +325,7 @@
325325
(prover "rocq")
326326
(proof-file "proofs/canonical-proof-suite/E7_carnot_efficiency.v")
327327
(expected-symbol "carnot_efficiency_bound")
328-
(status "not-started")
328+
(status "passing")
329329
(porting-source "Isabelle HOL-Thermo; derive from second-law/Clausius inequality"))
330330

331331
;; ========================================================
@@ -339,7 +339,7 @@
339339
(prover "rocq")
340340
(proof-file "proofs/canonical-proof-suite/S7_lorentz_velocity_addition.v")
341341
(expected-symbol "lorentz_velocity_addition")
342-
(status "not-started")
342+
(status "passing")
343343
(porting-source "mathlib4 (in progress); Coq mathcomp-analysis"))
344344

345345
(entry
@@ -349,7 +349,7 @@
349349
(prover "rocq")
350350
(proof-file "proofs/canonical-proof-suite/E8_nyquist_shannon.v")
351351
(expected-symbol "nyquist_shannon_sufficient_rate")
352-
(status "not-started")
352+
(status "passing")
353353
(porting-source "No standard formal-library port; infotheo may have adjacent results"))
354354

355355
(entry
@@ -359,7 +359,7 @@
359359
(prover "rocq")
360360
(proof-file "proofs/canonical-proof-suite/M12_dominated_convergence.v")
361361
(expected-symbol "dominated_convergence")
362-
(status "not-started")
362+
(status "passing")
363363
(porting-source "mathlib4 MeasureTheory.DominatedConvergence; Coquelicot; Isabelle HOL-Analysis"))
364364

365365
(entry
@@ -369,7 +369,7 @@
369369
(prover "rocq")
370370
(proof-file "proofs/canonical-proof-suite/S8_hardy_weinberg.v")
371371
(expected-symbol "hardy_weinberg_equilibrium")
372-
(status "not-started")
372+
(status "passing")
373373
(porting-source "No standard formal-library port; derive from allele-frequency algebra"))
374374

375375
(entry
@@ -379,7 +379,7 @@
379379
(prover "rocq")
380380
(proof-file "proofs/canonical-proof-suite/E9_newton_convergence.v")
381381
(expected-symbol "newton_quadratic_convergence")
382-
(status "not-started")
382+
(status "passing")
383383
(porting-source "Isabelle HOL-Analysis; Coq Coquelicot"))
384384

385385
;; ========================================================
@@ -393,7 +393,7 @@
393393
(prover "rocq")
394394
(proof-file "proofs/canonical-proof-suite/M13_hahn_banach.v")
395395
(expected-symbol "hahn_banach_extension")
396-
(status "not-started")
396+
(status "passing")
397397
(porting-source "mathlib4 Analysis.NormedSpace.HahnBanach; Isabelle HOL Hahn_Banach"))
398398

399399
(entry
@@ -403,7 +403,7 @@
403403
(prover "rocq")
404404
(proof-file "proofs/canonical-proof-suite/M14_max_flow_min_cut.v")
405405
(expected-symbol "max_flow_min_cut")
406-
(status "not-started")
406+
(status "passing")
407407
(porting-source "Isabelle HOL Flow_Networks; no canonical mathlib port yet"))
408408

409409
(entry
@@ -413,7 +413,7 @@
413413
(prover "rocq")
414414
(proof-file "proofs/canonical-proof-suite/S9_chandrasekhar.v")
415415
(expected-symbol "chandrasekhar_mass_bound")
416-
(status "not-started")
416+
(status "passing")
417417
(porting-source "No standard formal-library port; derive from hydrostatic equilibrium + degenerate-gas equation of state"))
418418

419419
(entry
@@ -423,7 +423,7 @@
423423
(prover "rocq")
424424
(proof-file "proofs/canonical-proof-suite/S10_r_naught_threshold.v")
425425
(expected-symbol "r_naught_threshold")
426-
(status "not-started")
426+
(status "passing")
427427
(porting-source "No standard formal-library port; derive from SIR / SIS stability analysis"))
428428

429429
(entry
@@ -433,7 +433,7 @@
433433
(prover "rocq")
434434
(proof-file "proofs/canonical-proof-suite/E10_bathtub_reliability.v")
435435
(expected-symbol "weibull_bathtub_bound")
436-
(status "not-started")
436+
(status "passing")
437437
(porting-source "No standard formal-library port; derive from Weibull hazard function"))
438438

439439
(entry
@@ -443,7 +443,7 @@
443443
(prover "rocq")
444444
(proof-file "proofs/canonical-proof-suite/E11_kirchhoff.v")
445445
(expected-symbol "kirchhoff_laws")
446-
(status "not-started")
446+
(status "passing")
447447
(porting-source "Isabelle HOL Circuits (community); derive from charge + energy conservation"))
448448

449449
;; ========================================================
@@ -535,4 +535,9 @@
535535
(date "2026-06-15")
536536
(author "Jonathan D.A. Jewell")
537537
(change "add L-series — L1 (EchoResidue) + L2 (EchoResidueLinear): gate 007's own Layer-10 echo-types reversibility proofs (proofs/idris2/*.idr, idris2, %default total) alongside the M/S/E entries. Reworded the two files' in-file disclaimer comments so the banned-construct substring scan does not false-positive on the very tokens they disclaim.")
538-
(rationale "The Layer-10 proofs are the language's load-bearing metatheory but were checked only ad hoc (idris2 --check) outside the gated suite. Gating gives them the same nightly banned-construct + symbol-defined enforcement as the canonical entries; domain language keeps them honestly distinct from the famous-theorem ports — these prove 007's OWN type system, not classical results."))))
538+
(rationale "The Layer-10 proofs are the language's load-bearing metatheory but were checked only ad hoc (idris2 --check) outside the gated suite. Gating gives them the same nightly banned-construct + symbol-defined enforcement as the canonical entries; domain language keeps them honestly distinct from the famous-theorem ports — these prove 007's OWN type system, not classical results."))
539+
(entry
540+
(date "2026-06-19")
541+
(author "Jonathan D.A. Jewell")
542+
(change "status refresh: flipped 21 stale not-started + 1 stale in-progress (M1) labels to passing, verified by a full local runner pass (idris2 0.8 + agda 2.6.3 + Rocq 9.0). Runner summary: 35/37 passing. The 2 not locally verifiable — M2 (mathcomp) and E1 (Coquelicot, ndim port) — keep their prior CI-canonical passing status; their dependency sources are unreachable from this github-only environment (mathcomp -> hierarchy-builder -> coq-elpi -> elpi -> menhir@gitlab.inria.fr + cmdliner@erratique.ch; Coquelicot@gitlab.inria.fr; all 403). REPORT.a2ml and the per-entry sidecars are intentionally NOT regenerated from this local run, since they would show those 2 as locally-regressed; the nightly CI run with the full toolchain regenerates the canonical evidence.")
543+
(rationale "The not-started / in-progress labels predated the proofs landing. 35 of 37 entries compile, define their headline expected-symbol, and are banned-clean under the local toolchain; the remaining 2 pass in CI. The labels now match verified reality rather than the historical aspiration."))))

0 commit comments

Comments
 (0)