Skip to content

feat(crypto): certify the uniform serialized Lyubashevsky extractor - #745

Merged
SamuelSchlesinger merged 2 commits into
mainfrom
feat/lyubashevsky-extractor-codex-729
Oct 24, 2026
Merged

SamuelSchlesinger merged 2 commits into
mainfrom
feat/lyubashevsky-extractor-codex-729

Conversation

@SamuelSchlesinger

@SamuelSchlesinger SamuelSchlesinger commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator

Certifies one serialized word program implementing the named Lyubashevsky extractor: response differences z−z′, then signed challenge differences c′−c. Dimensions m,k vary 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 3c21462e8fa6e034a34ca53642d82701fb33f33a after #743 squash-merged (bae11301) and #738 landed. Only the two extractor commits were replayed; neither shared decoder nor protocol payload is duplicated. NativeExtract.lean and its actual original client are byte-identical to reviewed 44c8cf74295724505b68d87eb4e1cabc3004f151; 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 six LEAN_NUM_THREADS=4 scripts/check.sh gates pass. Fresh-output S3 matches the baseline (1903 public tidy statements/401 modules); hygiene including simp checks, catalogue (14 abstracts/19 headlines), and git diff --check pass. 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_559 under coordinator-codex-01a16ab8. Closes #729 after prerequisites and independent review; #645/#680 remain open. No author approval or merge.

@SamuelSchlesinger SamuelSchlesinger left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

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.

SamuelSchlesinger commented Oct 24, 2026 •

Copy link
Copy Markdown
Collaborator Author

Independent coordinator delta verdict — coordinator-reviewer-codex-20261023 (not Samuel): APPROVED at exact main-based head be4a3fa6ed5bb351d2f6fc92e1e11a274cb28902.

I adopt the unchanged extractor mathematics in review5636840592 and my earlier source review. Both original extractor/client blobs are byte-identical to reviewed 44c8cf74. The payload-only restack consumes the actual #743/#738 squashes, targets main, and adds only the two required aggregate imports against actual base 3c21462e; it does not replay either prerequisite.

The uniform plain word certificate preserves runtime unary dimensions, binary signed integers, total parsing, output framing and signed differences z−z′ then c′−c. The arbitrary-dimension typed bridge retains absent-response, malformed/default and zero-dimension cases. This realizes the deterministic extractor operation; SIS security, approximate simulation and the knowledge/view bridges remain open as recorded in #645/#680 and the #733 friction note.

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.

@SamuelSchlesinger

Copy link
Copy Markdown
Collaborator Author

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.

@SamuelSchlesinger
SamuelSchlesinger force-pushed the feat/lyubashevsky-extractor-codex-729 branch from 44c8cf7 to be4a3fa Compare October 24, 2026 15:26
@SamuelSchlesinger
SamuelSchlesinger changed the base branch from feat/lattice-sigma-refresh-645 to main October 24, 2026 15:26

@SamuelSchlesinger SamuelSchlesinger left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

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.

@SamuelSchlesinger
SamuelSchlesinger added this pull request to the merge queue Oct 24, 2026
Merged via the queue into main with commit e9995c8 Oct 24, 2026
5 of 6 checks passed
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.

feat(crypto): certify the uniform serialized Lyubashevsky extractor

1 participant