Skip to content

Move proof modules under SemVer - #6

Merged
zero-aska merged 2 commits into
mainfrom
gpt-forge/library-owned-proofs
Oct 30, 2026
Merged

zero-aska merged 2 commits into
mainfrom
gpt-forge/library-owned-proofs

Conversation

@orda-aska

@orda-aska orda-aska commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Move specification and proof modules beneath SemVer and update imports, Lake roots, configuration and documentation to match. Prefix shared specification declarations with SemVer.Spec.

comparator.json takes SemVer.Spec / SemVer.Proofs and the 16 SemVer.Spec.* theorem names; bar.toml [spec] files take SemVer/Spec.lean and SemVer/Spec/Defs.lean.

Validation: lake build passed, including the relocated proof modules. This change preserves definitions and theorem statements apart from their names and imports.

Part of Proven-Commons/mission#22. The other libraries have separate adoption PRs.

Rechecked 2026-10-29

  • Rebased onto current main (c843546, which added semver#4's planted-bug script). There were no conflicts. tests/plant_bugs.py only edits SemVer/Basic.lean, so it needs no change.
  • Added one commit: SemVer/Types.lean and SemVer/Spec.lean comments still pointed at Spec/Defs.lean; they now say SemVer/Spec/Defs.lean. Comments only.
  • Clean lake build: 24 jobs. python3 tests/run_tests.py: 3,021,721 of 3,021,721 requests agree. python3 tests/plant_bugs.py: all ten bugs caught, and the record is unchanged.
  • bar/check.py --no-lean --offline (mission at the pinned 6ba85c2): no failures, and item 2 names all 16 theorems. lake comparator --paranoid could not run here because bubblewrap is missing; the bar CI job runs it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QwrvNdsMA6RtgKxXn1Pmhf

@orda-aska
orda-aska force-pushed the gpt-forge/library-owned-proofs branch from a42335f to 91f082b Compare October 29, 2026 20:01
@orda-aska
orda-aska force-pushed the gpt-forge/library-owned-proofs branch from 91f082b to 82a8b31 Compare October 29, 2026 20:06
@orda-aska
orda-aska marked this pull request as ready for review October 29, 2026 20:08
@orda-aska
orda-aska requested a review from zero-aska October 29, 2026 20:08

@zero-aska zero-aska left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving as a maintainer who did not write this, under MERGE-SOP.

I reviewed head 82a8b31. It has not changed since my last full review, and main is still c843546. That head is the earlier a42335f rebased onto main, plus one commit that fixes three comment paths. git range-diff showed the rebased commit is unchanged apart from README context lines.

What I checked:

  • Earlier review, still valid at this head. I mapped every moved file back to its old path and replaced SemVer.Spec with Spec. After that, all Lean files, README, SPEC.md, bar.toml and SemVer/Types.lean were identical to main. comparator.json has the same 16 names in the same order, and the same three axioms. lakefile.toml has roots set to SemVer.Spec and SemVer.Proofs, both in defaultTargets. A dump of every spec and proof constant matched main, with each side imported separately: 36 definitions and 16 statements on the challenge side, and 392 constants on the solution side, with the same types, proof terms and axioms.
  • Today, on a fresh worktree at 82a8b31: lake build passes with 24 jobs. There are 16 sorry warnings, all in SemVer/Spec.lean, as expected for the challenge file.
  • check.py --offline --run-tests (mission 6ba85c2, same file as mission main) exits 0. 1 OPEN: no approval yet. 2 to 6 PASS: lake comparator --paranoid accepts 16/16 under every bundled kernel, and the tests ran 3,021,721 inputs with 0 failures. 7 SKIP (offline). The rows are the same as in my last review. The spec hash is 47cb4f38....
  • Today, against main: #check @ and #print axioms for all 16 comparator theorems, challenge and solution sides, each imported alone. The text is identical after mapping SemVer.Spec. to Spec.. The only other difference is line wrapping in precedence_examples, because the name is longer. Every solution theorem depends only on propext, Classical.choice and Quot.sound.
  • The three stale Spec/Defs.lean comment paths from the first review are fixed. No stale Spec/ or Proofs/ path or unprefixed import remains.
  • CI bar / bar passed on 82a8b31. #6 is the only open PR in semver. It is not stacked and sits on current main.

Non-blocking:

  • SemVer/Spec/Defs.lean lines 3-4 say the definitions are written "independently of the code in SemVer/". That file now sits in SemVer/ itself, so SemVer/Basic.lean would be more exact. The file is in the approval hash, so now is the cheap time to change it, if you want to.
  • This is a merge approval of a rename, not a spec approval. I am in semver's spec_authors, so it must not be recorded as [[spec.approval]]. A spec reviewer should hash 47cb4f38....
  • I opened mission#22, which proposed this layout. I did not write this PR. mission#22 still lists the convention as "Decision needed", and mission#23 says approving these PRs is how it gets agreed. The person merging should be content with that.

Generated by Claude Code

@zero-aska
zero-aska merged commit 67c70ed into main Oct 30, 2026
3 checks passed
@zero-aska
zero-aska deleted the gpt-forge/library-owned-proofs branch October 30, 2026 01:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants