Merged
Conversation
Removes dead code from native merkle_tree module and updates audit scope doc accordingly
--- ### Translator: concatenation layout, computable precomputed selectors, PCS cleanup Migrates Translator from interleaving to concatenation, adds verifier-side computation of structured precomputed selectors, and removes the now-dead interleaving infrastructure from the PCS. ### Impact | Metric | Before | After | Change | | ------------------------------ | --------: | -------: | --------------: | | Translator proof size | 800 | 497 | -303 fields | | Chonk proof length | 1,935 | 1,632 | -303 fields | | Chonk recursion gates | 2,395,106 | 1,684,546 | -710,560 gates | ### Concatenation layout - Replace commitments to 64 + 13 short wires with 5 commitments to their concatenations (16 per concat group) + 5 ordered polynomials. Each concatenated poly packs 16 minicircuit wires into sequential blocks (lane bits as MSB). - Preserve multi-set structure witn selectors: scattered `lagrange_masking` for concatenated polys in permutation numerator; contiguous `lagrange_ordered_masking` for ordered polys in permutation denominator. - Verifier reconstructs concatenated evaluations from individual wire evals via Lagrange subcube decomposition. ### Computable precomputed selectors - 10 of 11 precomputed selectors are structured multilinear polynomials whose evaluations the verifier computes locally in O(d) field ops (TranslatorSelectorEvaluations), takes ~60 gates. Prover skips sending them; PCS excludes their commitments. Saves 10 FR evals in proof + 10 MSMs in verifier. ### PCS - Preserve REPEATED_COMMITMENTS for Translator to combine duplicate scalar muls in Shplemini batch_mul. - Remove dead interleaving code: InterleavedBatch, set_interleaved(), P_pos/P_neg transcript handling, NUM_INTERLEAVING_CLAIMS constant, and interleaving batching from ClaimBatcher, Gemini, Shplemini, Shplonk. --- --------- Co-authored-by: suyash67 <suyashnbagad1997@gmail.com>
iakovenkos
approved these changes
Feb 19, 2026
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.
BEGIN_COMMIT_OVERRIDE
chore: update merkle tree audit scope (#20666)
feat!: translator revision (#20273)
END_COMMIT_OVERRIDE