-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prover: implements the top-level of the limitless prover #352
base: main
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #352 +/- ##
=========================================
Coverage 70.17% 70.18%
Complexity 1070 1070
=========================================
Files 306 306
Lines 12337 12338 +1
Branches 1179 1179
=========================================
+ Hits 8658 8659 +1
Misses 3200 3200
Partials 479 479
*This pull request uses carry forward flags. Click here to find out more. |
19846ef
to
16fbcd9
Compare
16fbcd9
to
2cae000
Compare
3cec11b
to
08b8b32
Compare
// Analyze is responsible for letting the module discoverer compute how to | ||
// group best the columns into modules. | ||
Analyze(comp *wizard.CompiledIOP) | ||
ModuleList(comp *wizard.CompiledIOP) []string |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[]string -> []moduleName
Analyze(comp *wizard.CompiledIOP) | ||
ModuleList(comp *wizard.CompiledIOP) []string | ||
FindModule(col ifaces.Column) moduleName | ||
FindNbSegments(moduleName string, SegParam map[string]int) int |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A comment describing SegParam is helpful. Considering it gives the max segment size for a given module, consider map[string]int
-> map[moduleName]int
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is that a member of the module discovery interface? And what are the parameters? From the code I understand that the function returns Segparams[moduleName]
, you don't need a function to do that
@@ -108,6 +114,10 @@ func CompileLogDerivative(comp *wizard.CompiledIOP) { | |||
va.Name = zC.Name | |||
} | |||
|
|||
if comp.HasSeed { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand what comp.HasSeed has to do with how the lookup compiler works. The only important thing is how the coin are sampled but then this logic should be implemented in the coin
package.
} | ||
}) | ||
// assign the public input | ||
run.AssignColumn(z.PI.GetColID(), sv.NewRegular([]field.Element{zSum})) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should be in a dedicated logDerivative compiler object.
This reverts commit fdb2526.
// Filter LPP queries | ||
q := comp.QueriesNoParams.Data(qName) | ||
|
||
switch v := q.(type) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since you have a switch, it would be simpler to have one function for global, one for local and one for lookup, and one for projection and one for permutation. That way you don't have to do a switch in a switch, it's nicer to read that way.
You may want to move the if disc.QueryIsInModule(v, moduleName)
our of the switch as it happens in all situations
* commit all ideas * added aggregator * initial framework added * added grand product query * Added initial framework of the grand prod query * module discoverer is added * added test for AddGdProduct * Prover action added * coin in grand product test, deriveName for GP added * Test with fragment added * added documentation --------- Signed-off-by: Arijit Dutta <[email protected]> Co-authored-by: AlexandreBelling <[email protected]> Co-authored-by: Soleimani193 <[email protected]>
* initial framework for lookup * added logderivative_sum query * added documentation * getting the multiplicity table from compild iop * added preparation for lookup * added IntoLogDerivationSum during the preparation * added the check for LogDerivativeSum query * added the test for LogDerivativeSum * moving two functions from wizardutils to the column package * adding module discoverer * added more methodes to module discoverer * test for distributing LogDerivSum passes without compiling the shares of LogDerivSum * test for distribution of the expressions passes --------- Co-authored-by: arijitdutta67 <[email protected]> Co-authored-by: AlexandreBelling <[email protected]>
This PR implements issue(s) #
Checklist