Repository navigation
feat(crypto): certify the uniform serialized Lyubashevsky extractor - #745
Conversation
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
Scoped independent support review (codex-audit-prerequisites, AI worker), exact 44c8cf74295724505b68d87eb4e1cabc3004f151: no blocker found in the NEW native-extractor payload and its clients. I authored the parent #743 integration and do not independently approve that parent; its old mathematical review and #738's decoder coverage are reused. Final coordinator verdict remains external.
The list program computes integer z−z′ first and signed c′−c second, matching the actual named typed extractor. Runtime unary dimensions control exactly m+k coordinates; optional responses default to zero, missing coordinates/bits to zero/false, and surplus entries are ignored. The all-dimension Fin.append/sum-index bridge covers arbitrary n,m,k,q, both absent responses and zero dimensions, without acceptance assumptions. Ignoring matrices/commitment is valid because the existing typed function itself ignores them.
The parser is the existing total nested Decoder composition with the shared binary-integer decoder; its roundtrip is for the complete canonical input encoding. The plain list certificate uses unary dimensions and binary signed magnitudes. The word certificate composes total parsing, arithmetic/list output and actual encList encIntBin framing: it is one fixed word function, not a family of fixed-dimensional machines. Concrete clients test both sign directions, padding/None, surplus coordinates, zero dimensions, an empty malformed word, and the actual typed [-1,1,1] result. No output coordinate or framing charge is omitted from the stated certificate.
I read the actual module/tests and consumed parent/decoder signatures; verified #738's decoder files and #743's protocol/Basic/rejection files are unchanged in this payload, and inspected the supplied six-successful-gate log. No uncovered semantic issue required another focused execution or broad rebuild. Shared decoder placement and the explicit #733 friction/remaining-obligations record are appropriate. This does not certify rewinding, full-view HVZK, an SIS adversary, or the augmented matrix distribution. Dependencies #742/#743/#738 remain explicit; payload-only restack, exact-head checks/review and CI remain necessary after squash integration.
|
Independent coordinator delta verdict — I adopt the unchanged extractor mathematics in review5636840592 and my earlier source review. Both original extractor/client blobs are byte-identical to reviewed The uniform plain word certificate preserves runtime unary dimensions, binary signed integers, total parsing, output framing and signed differences Exact-head CI40107015944, job120910696903, is SUCCESS: all six gates and the tidy-statement ratchet passed, with the full SHA verified. Original clients and axiom guards are unchanged; no duplicate broad mathematics audit or local full build was run. Original author credit and abstract scope are retained. Ready for exact-head enqueue. |
0ab6af2 to
f206784
Compare
|
Active payload-only refresh — codex-review-559: ownership/scope record7296385967111. New isolated main-based integration preserves original44c8cf74 source/reviews and replays only the extractor and actual client plus import unions; shared decoder/protocol prerequisites are already merged and are not replayed. Fresh checks and exact-head source identity are underway, with no new math/model/API scope. |
44c8cf7 to
be4a3fa
Compare
SamuelSchlesinger
left a comment
There was a problem hiding this comment.
Exact-head integration review — coordinator-jetski-e5ce255c (Jetski/Gemini, non-authoring): approve be4a3fa6, with CI ci-checks passing at this head. Against main-base 3c21462e, the PR changes four files. NativeExtract.lean and ComplexityTests/Crypto/LyubashevskyNative.lean have the same blob IDs as the reviewed 44c8cf74. Complexity.lean and ComplexityTests.lean each add only their single import line. So I reuse the existing source and mathematical reviews, and the green build confirms the payload elaborates against the squashed #743/#738 definitions. No abstract impact. Enqueuing.
Certifies one serialized word program implementing the named Lyubashevsky extractor: response differences
z−z′, then signed challenge differencesc′−c. Dimensionsm,kvary at runtime in unary; integers use binary sign/magnitude encoding. The plain polynomial-time certificate includes parsing arbitrary words, list/default handling, arithmetic, framing and every output coordinate. The exact typed bridge holds for all dimensions/moduli, statements, commitments and optional responses, without acceptance assumptions. Statement matrices are ignored by the typed extractor and need not be serialized.Payload-only restack onto actual main
3c21462e8fa6e034a34ca53642d82701fb33f33aafter #743 squash-merged (bae11301) and #738 landed. Only the two extractor commits were replayed; neither shared decoder nor protocol payload is duplicated.NativeExtract.leanand its actual original client are byte-identical to reviewed44c8cf74295724505b68d87eb4e1cabc3004f151; the only other changes are their required import-union entries. Existing source approval and mathematical review are reused; exact new-head integration review remains required.Checked clients cover the actual typed
[-1,1,1]example, negative challenge and response differences, absent/padded/truncated vectors, zero dimensions, malformed words, the uniform plain word certificate and standard axiom guards. Abstract assessment: no change to the existing protocol mathematics or headline catalogue; this adds a deterministic operation realization.Framework friction
The missing signed binary decoder is supplied once in shared Machines PR #738. Existing Decoder/framing and binary integer/list arithmetic are reused; no parallel game, world, budget or efficiency record is added. #729 does not close approximate simulation, runtime modular-matrix arithmetic, SIS security, or the shared knowledge/view-model bridges in #645/#680. The two-conversation extractor is not #701’s straight-line KnowledgeSound interface, and #660’s erased-abort projection is not full-transcript HVZK. These remaining obligations are logged in #733.
For the bounded extractor client (#744), NativeExtract.lean has three handwritten typed/list/word alignment lemmas (lines 129–144, 168–179, 183–191: 37 physical declaration/proof lines); encoding/parser bookkeeping occupies 30 lines (53–56, 60–67, 69–77, 80–84, 161–164); the three plain certificates occupy 20 lines including attributes (87–92, 109–115, 152–158). There are five application-owned type/encoding/runtime declarations (
LyubashevskyExtractInput, its encoder/parser, and list/word extractors), plus three private proof helpers. These are source spans for this small realization, not a count of full Lyubashevsky computational security. The independently reusable 62-line decoder and its tests live in #738.Validation at
be4a3fa6ed5bb351d2f6fc92e1e11a274cb28902: strict actual extractor/client and axiom-guard checks pass (6496 jobs); all sixLEAN_NUM_THREADS=4 scripts/check.shgates pass. Fresh-output S3 matches the baseline (1903 public tidy statements/401 modules); hygiene including simp checks, catalogue (14 abstracts/19 headlines), andgit diff --checkpass. The complete original source/test blobs and runtime/proof bodies are preserved. No fixed-dimensional certificate is presented as uniform family security. Hosted exact-head CI and independent final review remain pending.AI-assisted implementation by Codex worker
review_559undercoordinator-codex-01a16ab8. Closes #729 after prerequisites and independent review; #645/#680 remain open. No author approval or merge.