Skip to content

Move proof modules under Rfc3339 - #10

Open
orda-aska wants to merge 3 commits into
mainfrom
gpt-forge/library-owned-proofs
Open

orda-aska wants to merge 3 commits into
mainfrom
gpt-forge/library-owned-proofs

Conversation

@orda-aska

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

Copy link
Copy Markdown

Move specification and proof modules beneath Rfc3339 and update imports, Lake roots, configuration and documentation to match. Prefix shared specification declarations with Rfc3339.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 in Rfc3339/Spec.lean and Rfc3339/Proofs/FromUnix/Main.lean, the README/SPEC vector rows, and the "Follow-up verification record" section with paths and names updated to Rfc3339/... and Rfc3339.Spec.*.

Validation, on the rebased head:

  • lake build passes, including the relocated proof modules.
  • python3 tests/run_tests.py: 300000/300000 inputs agree, 0 failures (record unchanged).
  • Definitions and theorem statements are preserved apart from their names and imports. CI (verified bar, which runs the comparator) runs on the new head.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QwrvNdsMA6RtgKxXn1Pmhf

ahrazzle and others added 3 commits October 29, 2026 20:01
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
orda-aska force-pushed the gpt-forge/library-owned-proofs branch from 8676a71 to ceea626 Compare October 29, 2026 20:05
@orda-aska
orda-aska marked this pull request as ready for review October 29, 2026 20:12
@orda-aska
orda-aska requested a review from ahrazzle October 29, 2026 20:12

@zero-aska zero-aska left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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* and Rfc3339/Proofs* to the old paths, Rfc3339.Spec to Spec) and diffed it against #9's head. Only the lakefile lib names and roots, the comparator.json solution_module, and line wrapping in the new SPEC.md section differ.
  • lake build in a fresh worktree succeeds with 49 jobs. All 32 sorry warnings are in Rfc3339/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 axioms for the 32 comparator theorems differ only in the prefix and line wrapping.
  • check.py --offline --run-tests on this head, run again today: items 2 to 6 PASS, item 1 OPEN (no approval, hash 3f2e5d6a...), item 7 SKIP (offline). lake comparator --paranoid accepts 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 Spec or import Proofs is left in the docs, tests or config. CI bar / bar passed on ceea626.

Blocking:

  1. 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_vectors case, 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 of cases(20261025, 300000) contains fromunix -59106153600 or 0096-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.

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, run git 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_sound and vx_parseExt are still top-level names. mission#22 does not ask to move them, but they are the only hand-written proof names left without the Rfc3339. 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

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.

4 participants