Repository navigation
Bound decimal conversion and cover PEM refusal cases - #14
Merged
Merged
Conversation
Rerun tests/run_tests.py with Python 3.12.3, the version the record names, so the counts include the leading-zero and PEM refusal cases. The four new fixed cases take the place of four random inputs. 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/codec-followup-regressions
branch
from
October 29, 2026 20:05
50704b5 to
7dcb6bc
Compare
orda-aska
marked this pull request as ready for review
October 29, 2026 20:12
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.
This head (7dcb6bc) is the same commit I reviewed last time. No code changed since then. The PR is now out of draft. The base is still main (3f319bf).
This PR is the base of a stack. #15 (module move) is built on top of this branch. Merge this PR first, then #15.
What I checked
- Last review, on this head:
lake buildpassed.check.pypassed. I printed all 37 theorem statements on main and here. I ran the old and newnumberin Main.lean on 960,809 strings and got identical answers. EverySpec.*name in README.md and SPEC.md exists. - Re-run today on a fresh worktree of this head:
lake build: passes.check.py --offline --run-tests: exit 0. 1 OPEN (no approval yet; spec hash 2c9d40df...). 2 PASS (37 theorems). 3 PASS (lake comparator --paranoidaccepts all 37 under every bundled kernel; no kernel failed). 4 PASS (23 Lean files). 5 PASS (1,000,000 inputs, 0 failures). 6 PASS. 7 SKIP (offline).python3.12 tests/run_tests.py(3.12.3, the version the record names): 0 failures.git diff tests/TEST-RESULTS.mdis empty, so the committed record reproduces exactly. The stale-record finding from the first review stays fixed.- A second statement check, by a different method. A Lean script dumped every constant from
import Spec(110) andimport Proofs(843 on main, 845 here) in full: types, universe levels, binder info, definition bodies and proof-term hashes. Against main, onlySpec.pem_vectorsdiffers, plus the two auxiliary proof pieces for its new conjuncts. It keeps all 22 old conjuncts in order and adds two: the standard-form empty text is refused, and two messages in one text are refused. - CI "bar / bar" passed on this head.
Blocking: none.
Non-blocking (from last time, still true)
- The title and first line say "Bound decimal conversion". Behavior does not change: main already refused more than seven significant digits. The real fix is the doc comment, which now matches the code. Please say "behavior unchanged" in the merge message.
"0"*1000 + "1"duplicates the UNUSUAL entry at tests/run_tests.py line 199. So there are three new regressions, not four. The PR body and the 7dcb6bc message still say four.- The labels
leading zerosandpemdec refusalshow up as operations in the record's "By operation" line.hexencandpemdecwould keep that line per operation. - The two PEM cases hardcode
none. The oraclepem_decodedagrees. Calling it would keep the test self-checking.
Merge order
- Merge this PR before #15. A merge commit leaves #15's diff as the move alone. I also simulated a squash of this PR: #15 still merges cleanly, and the result is exactly #15's current tree.
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.
Bound request decimal conversion to seven significant digits by stripping accepted leading zeros before conversion. Add kernel-proved and fixed differential refusals for standard-form empty PEM and multiple messages; correct the IBAN shape comment and scope the Go comparison claim. Regenerate
tests/TEST-RESULTS.md(Python 3.12.3, the version the record names) so its counts include the four new fixed cases.Refs #9. How the items of #9 map:
0×1000 +1and0×1000 added.Spec.PctReadsis the intended acceptance definition: a spec decision, not made here.Spec.pem_vectorsand the fixed cases; README Go encode sentence scoped to the labels tried.Luhn.checkDigitabove 9).#9 stays open for the Base32 work, the
PctReadsdecision and the planted-bug records.Merge order: land this before #15 (module move). #15 is rebased on top of this branch.
Validation, on the head rebased onto current main (3f319bf):
lake buildpasses;Spec.leankeeps its statement placeholders, the proofs are inProofs/.python3.12 tests/run_tests.py: 1000000/1000000 inputs agree, 0 failures; the four new fixed regressions pass.🤖 Generated with Claude Code
https://claude.ai/code/session_01QwrvNdsMA6RtgKxXn1Pmhf