-
Notifications
You must be signed in to change notification settings - Fork 234
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Protogalaxy folding of challenges (#2935)
We need to fold challenges as well. This means a refactor around how relation parameters are specified and relation degrees are calculated. The `RelationParameters` class is now templated on a generic type `T` that could be a field or could be a `Univariate` class. We need separate terminology for the length (==degree + 1) of a polynomial depending on whether we regard the challenges as constants or variables. I settled on "partial" and "total" since I think "partial degree" and "total degree" is what you'd expect in math. The way we calculate the total degree is to add some adjust ment factors. We only had to add these in three relations (the only three that make use of relation parameters). NB I focused only on relations for flavors where we intend to do folding. If $f$ has length $l_f$ and $g$ has length $l_g$, then $f(g(X))$ has degree $(l_f-1)\cdot (l_g-1)$, hence its length is $(l_f - 1) \cdot (l_g - 1) + 1$. We need to calculate these of this form in cases now where the challenge parameters in $f$ are regarded as variable. Since I had to refactor the relations, I do some light touching up of the relations for uniformity. I also move the Goblin Translator relations into a folder (like we already had for ECCVM) and move some of the Goblin relations that were contained in other relation files out into their own files. I made some comments en route to calculating the total degree of the auxiliary relation. I leave those in since I think they'll be helpful later.
- Loading branch information
1 parent
524cecf
commit 7ed30e8
Showing
49 changed files
with
978 additions
and
741 deletions.
There are no files selected for viewing
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
This file contains 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
Oops, something went wrong.