Repository navigation
Put template proof modules and declarations under Clamp - #23
Merged
Merged
Conversation
This was referenced Oct 29, 2026
orda-aska
force-pushed
the
gpt-forge/library-owned-template
branch
from
October 29, 2026 19:59
aab7144 to
99fd6ea
Compare
orda-aska
marked this pull request as ready for review
October 29, 2026 19:59
zero-aska
approved these changes
Oct 30, 2026
zero-aska
left a comment
Contributor
There was a problem hiding this comment.
Approving as a maintainer who did not write this, under MERGE-SOP.
I opened #22, which proposed this layout. I did not write this PR. The commit is by ahrazzle, the rebase was committed by Claude, and the PR was opened by orda-aska.
What changed since my earlier review of aab7144:
- This is a pure rebase onto main f4ebf8d.
git range-diffshows the one commit unchanged. The PR's diff against its base is byte-identical to the one I reviewed. - Between the two heads, only main's own files changed: CANDIDATES.md, FOUNDING-BRIEF.md and README.md, from #21 and #24. No Lean, test, comparator.json, bar.toml or lakefile file changed.
- The PR is now ready for review, and the body was updated.
- #22 now records the maintainer decision, including this template move to
Clamp.SpecandClamp.Proofs.
What I ran on head 99fd6ea, on Linux with Lean 4.35.0:
lake buildin bar/template: OK, 11 jobs. The only warnings are the two expectedsorrys in Clamp/Spec.lean.python3 -m unittest discover -s bar/tests: 82 tests, OK, 10 skipped. This includes the new template test.BAR_LEAN=1 python3 -m unittest discover -s bar/tests -k LeanTest: 10 of 10 pass.check.py bar/template --offline --run-testsexits 0:- Items 2 to 6 PASS.
- Item 1 is OPEN. The template records no approval. The spec hash is still 522b0fcb....
- Item 3:
lake comparator --paranoidaccepts both theorems under every bundled kernel. - Item 5: a million inputs, 0 failures, and tests/TEST-RESULTS.md is reproduced byte for byte.
- Item 7 is SKIP because the run was offline.
- The checker I ran is byte-identical to bar/check.py on this head and on main.
- The checker's statement walk matches code and spec modules by exact name, not by prefix. So
Clamp.Specsitting underClampdoes not blur the line between spec and code. - Statements: I printed both theorems from Clamp.Spec and Clamp.Proofs as raw terms. I compared them with Spec.* and Proofs.* on current main. They are identical once the names are mapped, with the same term hashes. The proofs use the same axioms as before.
- Docs: I grepped the whole tree again for the old names and paths. The only hits are the new test's own checks that Spec.lean and Proofs.lean are gone. The files that main added do not mention template module names.
- CI: template / bar, self-test and lean-self-test all pass on 99fd6ea.
Earlier findings:
- Draft: fixed. It is now ready.
- The UTF wording: fixed. The body now says utf uses the
Utfprefix. #22 now records the decision, so no maintainer decision is left open for this PR. - The Mac claim about the Lean tests: fixed.
- Main had moved: fixed by the rebase.
Blocking: none.
Non-blocking (carried over, still true at this head):
- For the library moves under #22: item 1 of check.py finds spec authors with
git log -- <spec files>, which does not follow renames. On this head,git log --format='%h %an' -- bar/template/Clamp/Spec.leanshows only 99fd6ea. With--followit also shows cb59fbb, which wrote the old Spec.lean. This changes nothing for the template, which has no approval. But each library that moves its spec needs a completespec_authors, or check.py should follow renames. - The template README says lakefile.toml "names the libraries and the executable, and sets nothing else". It now also sets
roots. #26 rewords that line for the license key, but the merged text still says "and nothing else". This is wording only. - The new test pins the shipped template only. check.py does not enforce library-owned names in libraries. That matches #22, and no doc claims it is enforced.
Other open PRs (current heads):
- #25 merges cleanly with this one. With both applied, 98 unit tests and the 10 Lean tests pass. The body says #25 needs a rebase, but git does not need one.
- #26 conflicts with this PR on one line in bar/template/lakefile.toml. #26 adds
license = "Apache-2.0"next to thedefaultTargetsline that this PR changes. Keep both lines. With that fix, 82 unit tests pass, the template builds, and the check gives items 2 to 6 PASS. Whichever of the two merges second has to resolve it. - #27 merges cleanly, and 105 unit tests pass with both applied.
- #28 shares no files with this PR.
This PR is not stacked on another PR. It can merge on its own, onto main f4ebf8d.
Generated by Claude Code
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.
Moves the template's specification and proofs to
Clamp.SpecandClamp.Proofs, theorem names included, as #22 proposes. The same change updates:bar/README.mdandplaybook/verified-bar.md.A new regression test rejects a return to shared top-level template modules.
Refs #22. This is the template part. The library moves are separate PRs, each referencing #22: bencode#5, codec#15, csv#4, dns#5, ip#5, json#5, pep440#5, png#5, protobuf#6, rfc#10, semver#6, toml#6, utf#9 and uuid#4. utf uses the prefix
Utf, one of the two options #22 offers. Approving these PRs is how the convention in #22 gets agreed.Validation (rebased on main f4ebf8d)
lake buildof the template passes on Lean 4.35.0.python3 -m unittest discover -s bar/tests: OK, 10 skipped. The LeanTest cases needBAR_LEAN=1and bubblewrap, and CI runs them.bar/check.py bar/template --offline --no-lean: item 1 OPEN (no approval), items 2 and 4 to 6 PASS.This touches template files that #25 and #26 also edit. Whichever merges second needs a small rebase.
🤖 Generated with Claude Code
https://claude.ai/code/session_01QwrvNdsMA6RtgKxXn1Pmhf