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

MultiFrameTrait #642

Merged
merged 6 commits into from
Aug 30, 2023
Merged

MultiFrameTrait #642

merged 6 commits into from
Aug 30, 2023

Conversation

porcuquine
Copy link
Contributor

This PR attempts to partially address #639 my creating MultiFrameTrait and implementing it for MultiFrame.

In order to accomplish this without also implementing the LEM equivalent, it comments out inclusion of the duplicated LEM code as necessary.

A logical next step would be an attempt to implement MultiFrameTrait for LEM in such a way that the duplication can be reduced or eliminated.

@porcuquine porcuquine requested review from a team as code owners August 30, 2023 01:04
@porcuquine
Copy link
Contributor Author

CI is failing, but tests do pass in the primary crate. I'll try to clean up the rest later, but this is as far as I can this for the moment.

@porcuquine
Copy link
Contributor Author

There are also a couple more traits (from_frames and make_dummy) that did not need to be moved into the trait to make tests pass. I'll add those a little later.

porcuquine and others added 3 commits August 29, 2023 21:34
* --wip--

* refactor: Refactor proof and public parameters to account for difference in MultiFrame implementations (#643)

* Arc the Func.

---------

Co-authored-by: porcuquine <porcuquine@users.noreply.github.com>
Co-authored-by: François Garillot <4142+huitseeker@users.noreply.github.com>
@porcuquine porcuquine requested a review from a team as a code owner August 30, 2023 17:44
@porcuquine porcuquine merged commit b98e592 into lem-integration Aug 30, 2023
@porcuquine porcuquine deleted the multiframe-trait branch August 30, 2023 17:49
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit to huitseeker/lurk-rs that referenced this pull request Sep 27, 2023
- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see lurk-lab#629 (and its history, incl. lurk-lab#642, lurk-lab#707) and lurk-lab#677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,
huitseeker added a commit that referenced this pull request Sep 28, 2023
* feat: Introduce MultiFrame trait

Mutability leftovers (see #680)

- Updated benchmarking scripts to no longer mutate the `store` variable during evaluation frames retrieval.
- Reformed `get_evaluation_frames` method across several files to use immutable references to `store` instead of mutable references.

Multiframe definition

- Introduced several new traits - `CEKState`, `FrameLike`, `EvaluationStore` and `MultiFrameTrait` to manage complex evaluation and circuit proof operations in the `proof/mod.rs` file.
- Detailed implementations of the above traits introduced in `circuit/circuit_frame.rs`, providing methods for handling evaluation frames, synthesizing data from multiple frames and more.

* refactor: make nova proofs use the generic trait

- uses the generic MultiFrame trait introduced in the prior commit to generically prove using nova,
- For references on the latest work defining this trait, see #629 (and its history, incl. #642, #707) and #677.

- make the benches use the generic trait, so LEM can bench similarly,
- make the examples use the generic trait, so LEM can example similarly,
- make Supernova use the generic trait, so LEM can NIVC similarly,

* use a type alias to simplify test calls

---------

Co-authored-by: Arthur Paulino <arthurleonardo.ap@gmail.com>
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.

1 participant