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.
Motivation
This PR would consist of implementations toward making SRS trimmable.
There are many things involved. We are currently at the first stage.
It is not finished yet.
This seems to already involve much changes, since SRS is not only about powers of
g
, but also:gamma_g
which in Marlin you only need 2 elements.g
in G2 which is not needed in Marlin but used in Sonic PC.g
but with degreemax_degree - i
which is used for degree bounds. In Marlin, all it needs has the shape of2^t - 2
.Currently the setup is too long: it generates, up to the max_degree, of all of these.
And the SRS is too long: it contains all of these.
If we look at Marlin specifically, the actual effort of setup should be only 1/3, and the SRS would also be 1/3.
Then, you can trim it further if you know that you only index and prove circuits of a specific level of complication.
Test Plan
Will need several tests to ensure that the PC proof generated from the trimmed SRS matches those from the old, full SRS. Especially, pay attention to the hiding bounds.