chore(proofs): gate L10 echo-types proofs in canonical suite + e2e example#43
Merged
Conversation
…e example Harden and gate what the L10 work landed, fully in-site (local verification; CI billing remains blocked). Gate the two Layer-10 proofs as first-class canonical-proof-suite entries so they get the same nightly enforcement as the M/S/E classics: - New `language` domain in audits/canonical-proof-suite/MANIFEST.a2ml: * L1 — proofs/idris2/EchoResidue.idr, headline `reverseAfterIrreversibleIllTyped` * L2 — proofs/idris2/EchoResidueLinear.idr, headline `reverseLinear` 37 entries total; manifest paren-balanced; the runner's awk parses both with the correct prover/path/symbol. - The runner's `scan_banned` is a whole-file substring match (`grep -qF`), so the two files' own "zero believe_me / assert_total / sorry" disclaimer comments would have false-flagged them as `stub`. Reworded those four comment lines to "no escape hatches" phrasing — meaning preserved, banned tokens gone. Verified locally exactly as the runner invokes (cd into the file's dir, check the basename): both `idris2 --check` exit 0, zero banned constructs, and the expected-symbol has a signature + clause. REPORT.a2ml is intentionally NOT regenerated here — this host has no Rocq 9, so a local run would falsely downgrade the rocq entries; the nightly suite regenerates it with the full toolchain. Also add examples/named_reversibility.007 exercising `reversible as <name>` / `reverse <name>` end-to-end: `oo7 parse`, `oo7 check`, and `oo7 run` all pass. CHANGELOG + 6a2 STATE updated; A2ML 6a2 validation clean. https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We
hyperpolymath
marked this pull request as ready for review
June 15, 2026 19:03
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Hardening follow-up to the L10 echo-residue work — fully in-site (local verification; CI billing remains blocked, so this was the "continue in-site" path). Two things:
1. Gate the L10 proofs in the canonical proof suite
The Layer-10 echo-types proofs were checked only ad-hoc (
idris2 --check) outside the gated suite. They're now first-class entries inaudits/canonical-proof-suite/MANIFEST.a2ml, getting the same nightly enforcement as the M/S/E classics — a newlanguagedomain:L1proofs/idris2/EchoResidue.idrreverseAfterIrreversibleIllTypedL2proofs/idris2/EchoResidueLinear.idrreverseLinear37 entries total; manifest paren-balanced (490/490); the runner's own awk parses both with the correct prover/path/symbol.
Subtle fix: the runner's
scan_bannedis a whole-file substring match (grep -qF), so the two files' own "zerobelieve_me/assert_total/sorry" disclaimer comments would have false-flagged them asstub. Reworded those four comment lines to "no escape hatches" phrasing — meaning preserved, banned tokens gone.Verified locally exactly as the runner invokes (it
cds into the file's dir and checks the basename, somodule EchoResiduematchesEchoResidue.idr):idris2 --check→ exit 0 for bothverify_idris2_symbol(signature + clause) → PASS for both headlinesREPORT.a2mlis intentionally not regenerated here: this host has no Rocq 9, so a local run would falsely downgrade the ~30 rocq entries — the nightly suite regenerates it with the full toolchain.2. End-to-end example
examples/named_reversibility.007exercisesreversible as <name>/reverse <name>through the whole pipeline. Builtoo7and ran the e2e sections:oo7 parse→ PASSoo7 check→ PASS (type check passed)oo7 run→ PASSVerification
Scope
Pure hardening — no compiler/grammar/typechecker changes (rung 3a already merged in #42). 7 files: manifest + 2 proof comment rewords + example + CHANGELOG + STATE + session-log.
https://claude.ai/code/session_018CaSgNjNURC7ocsyjYh9We
Generated by Claude Code