fix: [ECCVM] accumulator propagation across "no-op" rows in MSM table.#20357
Open
notnotraju wants to merge 1 commit intonextfrom
Open
fix: [ECCVM] accumulator propagation across "no-op" rows in MSM table.#20357notnotraju wants to merge 1 commit intonextfrom
notnotraju wants to merge 1 commit intonextfrom
Conversation
iakovenkos
reviewed
Feb 12, 2026
| // accumulator one past the last MSM row and then not turn off the constraint when `msm_transition == 1`.) | ||
| // - lagrange_first = 1 (row 0): the first row of the trace is zero-padded and the next row | ||
| // starts a fresh MSM whose accumulator is initialized via first_add, not by continuity. | ||
| auto no_op_selector = |
Contributor
There was a problem hiding this comment.
likely also need to gate the hiding row
Contributor
Author
There was a problem hiding this comment.
Hm, I don't think so -- the hiding op-code is q_eq = 1 and q_reset = 1, while the MSM table is only populated when q_mul = 1 (plus some non-triviality conditions). In other words, the second row of the MSM table (i.e., row-index 1) should already be active/meaningful.
iakovenkos
reviewed
Feb 13, 2026
| * @brief Compute random Fiat-Shamir challenges and derived polynomials (logderivative inverse, grand product) | ||
| * needed to check ECCVMSetRelation and ECCVMLookupRelation. | ||
| */ | ||
| RelationParameters<FF> compute_full_relation_params(ProverPolynomials& polynomials) |
Contributor
There was a problem hiding this comment.
i think there's a custom method for this in RelationParameters
Contributor
There was a problem hiding this comment.
worth checking at least
iakovenkos
approved these changes
Feb 13, 2026
Contributor
iakovenkos
left a comment
There was a problem hiding this comment.
lgtm! thanks for adding the tests
This commit ensures proper accumulator propagation when the MSM table contains "no-op" rows (rows where no operation is being performed). Added failure tests to verify the fix. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
8c0224b to
0cebefc
Compare
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.
If phase selectors are all 0 in the MSM table, make sure that the accumulator propagates.
Added corruption/failure tests.