Repository navigation
Conversation
README.md, SPEC.md and the docstring of Spec.fromUnixSeconds_vectors now name the new year-start case, so the claims match the theorem. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QwrvNdsMA6RtgKxXn1Pmhf
orda-aska
force-pushed
the
gpt-forge/library-owned-proofs
branch
from
October 29, 2026 20:05
8676a71 to
ceea626
Compare
orda-aska
marked this pull request as ready for review
October 29, 2026 20:12
zero-aska
requested changes
Oct 30, 2026
zero-aska
left a comment
There was a problem hiding this comment.
Requesting changes: this PR carries #9's two commits, and with them the same wrong coverage claim that blocks #9. The move itself is clean.
This PR is stacked on #9 (6824199 is an ancestor of this head). Merge #9 first, then this one. Its diff against main holds #9's two commits plus the move commit ceea626, so an approval here would also cover #9's text.
What I checked (head ceea626, base main 7ca89c9):
- Nothing has been pushed since my earlier full check of this head, and main has not moved. So there is no new diff.
- The move commit is a pure rename. I mapped the head tree back (
Rfc3339/Spec*andRfc3339/Proofs*to the old paths,Rfc3339.SpectoSpec) and diffed it against #9's head. Only the lakefile lib names and roots, the comparator.jsonsolution_module, and line wrapping in the new SPEC.md section differ. lake buildin a fresh worktree succeeds with 49 jobs. All 32sorrywarnings are inRfc3339/Spec.lean. There are no other warnings.- I dumped every constant in the spec and proof modules. All 79 spec constants and all 1117 proof constants match #9's head once the prefix is mapped back. Axioms match for every theorem.
#check @and#print axiomsfor the 32 comparator theorems differ only in the prefix and line wrapping. check.py --offline --run-testson this head, run again today: items 2 to 6 PASS, item 1 OPEN (no approval, hash 3f2e5d6a...), item 7 SKIP (offline).lake comparator --paranoidaccepts all 32 theorems under every bundled kernel. The tests ran 300,000 inputs with 0 failures. Main gives the same rows apart from the hash.- Against main, the only statement change is #9's new first conjunct of
Rfc3339.Spec.fromUnixSeconds_vectors. - Every Lean name and file path in README and SPEC.md resolves. No
Spec/,Proofs/,import Specorimport Proofsis left in the docs, tests or config. CIbar / barpassed on ceea626.
Blocking:
- The text this PR inherits from #9 says the proved second came from the year-start grid. It did not.
- SPEC.md, lines 180 to 183: "The 0096-12-31 UTC midnight case is now also a kernel-computed
Rfc3339.Spec.fromUnixSeconds_vectorscase, rather than only a differential calendar-grid case." - Rfc3339/Spec.lean, line 165: "0096-12-31 at midnight, from the year-start grid".
The proved second is -59106153600, which is 0096-12-31T00:00:00Z. On that day the grid sends only 23:59:59Z (-59106067201).
Reproduce at this head: load tests/run_tests.py with importlib.-59106153600 in set(unix_grid())is False.-59106067201 in set(unix_grid())is True. None of the 300,000 cases ofcases(20261025, 300000)containsfromunix -59106153600or0096-12-31T00:00:00.
Fix it in #9 (see my review there), then rebase this PR on the fixed #9, or on main after #9 merges. If #9 switches the vector to -59106067201, change Rfc3339/Spec.lean and Rfc3339/Proofs/FromUnix/Main.lean here the same way. Once the rebase is in, I will recheck the rename and approve if nothing else changed.
- SPEC.md, lines 180 to 183: "The 0096-12-31 UTC midnight case is now also a kernel-computed
Non-blocking:
- Nine Lean comments still use the old path form, such as
Spec/Defs.lean. They are at Rfc3339/Spec.lean:11, Rfc3339/Spec/Ixdtf.lean:5 and :43, Rfc3339/Spec/Leap.lean:6, Rfc3339/Types.lean:4 and :8, Rfc3339/IxdtfTypes.lean:4, Rfc3339/Proofs/DayNumber.lean:3 and Rfc3339/Proofs/Instant.lean:3. To list them, rungit grep -nE '(^|[^/A-Za-z])(Spec|Proofs)/[A-Za-z]+\.lean' -- '*.lean'. Five are spec files, so a fix costs less now than after a spec approval. The rebase is a good moment to fix them. vx_validB,vx_validB_soundandvx_parseExtare still top-level names. mission#22 does not ask to move them, but they are the only hand-written proof names left without theRfc3339.prefix.- Merge order: if #9 merges with a merge commit, this PR then merges cleanly. If #9 is squash- or rebase-merged, this PR conflicts in README.md, SPEC.md, Rfc3339/Spec.lean and Rfc3339/Proofs/FromUnix/Main.lean and needs another rebase.
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.
Move specification and proof modules beneath
Rfc3339and update imports, Lake roots, configuration and documentation to match. Prefix shared specification declarations withRfc3339.Spec.Part of Proven-Commons/mission#22. The other libraries have separate adoption PRs.
Merge order: this lands second, after #9. The branch is rebased on top of #9's branch (base stays
main), so until #9 merges this PR also shows #9's two commits; review only the top commit, "Move proof modules and spec names under Rfc3339". Once #9 merges, the diff here is the move alone. In the rebase, #9's additions were carried into the moved files: the 0096-12-31 vector inRfc3339/Spec.leanandRfc3339/Proofs/FromUnix/Main.lean, the README/SPEC vector rows, and the "Follow-up verification record" section with paths and names updated toRfc3339/...andRfc3339.Spec.*.Validation, on the rebased head:
lake buildpasses, including the relocated proof modules.python3 tests/run_tests.py: 300000/300000 inputs agree, 0 failures (record unchanged).🤖 Generated with Claude Code
https://claude.ai/code/session_01QwrvNdsMA6RtgKxXn1Pmhf