Skip to content
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

Generic Prover #1074

Merged
Merged

Conversation

gabriel-barrett
Copy link
Member

This PR changes the prover API quite a bit

  1. Prover is generic over a FrameLike type, no more hardcoded to the Multiframe
  2. Prover is no more tied to coprocessors
  3. Prover no longer has a function over Frames

This PR was motivated by the work on systems. I think the API today is too rigid and I'm trying to make it more flexible. I've removed things which I believe has no business being inside the prover, like coprocessors, since this is a property of the multiframe, which is subject to change. Frames are also not important to the prover, only the multiframe is. Plus, with coroutines we might not build a vector of frames anymore, but a more complicated structure. We will need to translate that structure into a ordered multiframe structure however. As of now, the prove function requires a Vec but we might generalize that to iterators or something

@gabriel-barrett gabriel-barrett requested review from a team as code owners January 22, 2024 18:38
Copy link
Member

@huitseeker huitseeker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like this in that it's a meaningful simplification of the proving traits.

We can see that there is a bit of code duplication in evaluate_and_prove and prove_from_frames between the Nova and Supernova instances of Prover. This is perhaps a sign that those two methods are meant for a common trait between each of those two structs, one that would give access to the right "frame factory" in each instance. It would be good to figure out if there isn't a way to write that trait a consider if it helps. But I don't think that needs to block the present PR either.

@gabriel-barrett gabriel-barrett added this pull request to the merge queue Jan 23, 2024
Merged via the queue into lurk-lab:main with commit 8046da0 Jan 23, 2024
11 checks passed
@gabriel-barrett gabriel-barrett deleted the simplified-proof-traits branch January 23, 2024 18:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants