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

refactor: Remove MultiFrameTrait #1026

Merged
merged 9 commits into from
Jan 9, 2024

Conversation

huitseeker
Copy link
Contributor

Removes the MultiFrameTrait

Closes #1015.

@huitseeker huitseeker requested review from a team as code owners January 6, 2024 21:02
@huitseeker huitseeker requested a review from a team as a code owner January 6, 2024 21:16
@huitseeker huitseeker force-pushed the less_mutliframe branch 2 times, most recently from c51468e to 40c7337 Compare January 6, 2024 22:31
arthurpaulino
arthurpaulino previously approved these changes Jan 7, 2024
Copy link
Contributor

@arthurpaulino arthurpaulino left a comment

Choose a reason for hiding this comment

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

Thank you!!

@huitseeker huitseeker enabled auto-merge January 7, 2024 13:41
gabriel-barrett
gabriel-barrett previously approved these changes Jan 8, 2024
- Deleted the `outer_synthesize` method from the `Prover` trait.
- Removed unused import and unused type alias from `src/proof/mod.rs`
- Refactor multiple traits including CEKState, FrameLike, and EvaluationStore among others, reducing the number of generic parameters from two to one.
- Unify all pointer types to `Ptr`, eliminating separation between `ExprPtr` and `ContPtr`, resulting in simplified function signatures and traits.
- Update all references of `ContPtr` to the new unified `Ptr` type throughout the code base for consistency.
- Update test functions in `src/proof/tests/mod.rs` to expect the new `Ptr` type instead of `ContPtr`.
- Adjust the function definitions in `MultiFrameTrait` to align with the new unified `Ptr` generic parameter.
…rame`

- Refactored `MultiFrameTrait` related methods in `src/proof/mod.rs` to use `Store<F>`, `Ptr` and `Frame` directly instead of associated types.
- Updated `prove_recursively` method in `RecursiveSNARKTrait` and Prover methods to reflect these changes.
- Incorporated the usage of `Store<F>` in place of `<M>::Store` in `src/proof/supernova.rs` and `src/proof/tests/mod.rs`, leading to adjustments across various function definitions.
- Implemented the option to switch between parallel and sequential computation in the recursive SNARK proofing in `src/proof/nova.rs`.
- In `src/lem/multiframe.rs`, simplified type specifications across various methods to directly use existing types like `Store<F>`, `Frame` and `Ptr`.
- Updated `cache_witness()` function to handle errors more efficiently and carried out general code refactoring and simplification for overall improvement.
- Removed dependency on `MultiFrameTrait` and `StepCircuit`, `SuperStepCircuit` from various sections, simplifying the imports.
- Simplified the `LurkProof` data structure by removing the `M: MultiFrameTrait` parameter.
- Adapted the `prover` variable type to be more generic across various files and functions such as `end2end_benchmark` and `prove_benchmark`.
- Updated `NovaProver` struct and instantiation, removing `MultiFrameTrait` application. Replaced `MultiFrameTrait` usage with `C1LEM`.
- Refactored proof structures in code, including modifications to function calls, assertions, proof verification and synthesis, shifting towards a simpler or more direct format.
- The changes do not seem to alter the program's fundamental logic, but rather its structuring and instantiation.
…Trait

- Overhauled the `supernova.rs` code, replacing `MultiFrameTrait` with `nova::C1LEM`
- Removed usage of `MultiFrameTrait` in `SuperNovaProver`, further refining its scope and purpose
- Updated `Prover` code to reflect the change in usage from `MultiFrameTrait` to `C1LEM`
- Enhanced `sha256_nivc.rs` example by directly implementing `SuperNovaProver` without `MultiFrame`, and adding proof size output and verification functionality.
- Replaced the `MultiFrameTrait` with `C1LEM` across various functions in different files which made `circuit_cache_key` method and other related methods non-generic.
- Updated method calls reflecting changes of generic parameters to use `C1LEM` in place of `MultiFrameTrait` and also in cache handling methods in `supernova.rs` file.
- Removed `MultiFrame` usage in several benchmark methods - namely `end2end_benchmark`, `prove_benchmark`, `prove_compressed_benchmark`, `verify_benchmark`, and `verify_compressed_benchmark`.
- Updated `public_params` function and its related functions to work with changes of replacing `MultiFrameTrait` with `C1LEM`, this included adjusting the return type of `public_params` and modifications in `DiskCache` struct in `public_parameters/mod.rs` file.
- Examples and benchmarks using `public_params` function refactored to no longer require `MultiFrame` as a generic argument, this occurred in `examples/circom.rs`, `benches/fibonacci.rs`, and `benches/sha256.rs` files.
- `DiskCache` struct heavily refactored with the replacement of `MultiFrameTrait` with `C1LEM`, impacting `read` and `write` methods return types in `public_parameters/disk_cache.rs` file.
- The usage of `get_from_disk_cache_or_update_with` and `get_from_mem_cache_or_update_with` functions in `public_parameters/mem_cache.rs` file changed with the adoption of `C1LEM`.
- The `Instance` struct in the `src/public_parameters/instance.rs` was simplified and restructured to no longer depend on `MultiFrameTrait` and its associated methods and return types updated accordingly.
- Refactored code, replacing the use of the `M: StepCircuit<F> + MultiFrameTrait<'a, F, C>` generic with the more specific `C1LEM<'a, F, C>` struct.
- Redesigned the `public_params` and `circuits` function outputs to return `C1LEM<'a, F, C>` instead of `M`.
- Observed substantial edits within code used for proof checking, compressed proof verification, and result checking.
- Eliminated usage of `MultiFrameTrait<'a, F, C>` and `MultiFrame` import from function parameters and file imports respectively across a number of files.
- Updated various function calls to accommodate the `C1LEM<'a, F, C>` struct instead of `M`.
- Altered the `public_params` function in `supernova.rs` by updating the return type and modifying setup for non-uniform circuit and public params.
- Removed `MultiFrameTrait` from various files due to its deprecation and switched to direct use of 'MultiFrame' methods.
- Updated 'Provable' and 'Prover' traits to accommodate removal of `MultiFrameTrait`, with relevant modifications in methods `proof` and `evaluate_and_prove`.
- Renamed 'io_to_scalar_vector' function to 'to_scalar_vector' and applied this change in the trait methods.
- Introduced debugging and verification of the circuit's constraint system in 'prove_recursively' function in `nova.rs`.
- The 'MultiFrame' struct underwent significant reorganization to replace 'MultiFrameTrait', including new getter methods, building methods and potential performance improvements in synthesizing frames.
- Reorganized Frame allocation and handling in the `MultiFrame` instances for more effective synthesization.
@gabriel-barrett gabriel-barrett self-requested a review January 9, 2024 18:58
@huitseeker huitseeker added this pull request to the merge queue Jan 9, 2024
github-actions bot pushed a commit that referenced this pull request Jan 9, 2024
Merged via the queue into lurk-lab:main with commit 2542602 Jan 9, 2024
12 checks passed
@huitseeker huitseeker deleted the less_mutliframe branch January 9, 2024 19:38
gabriel-barrett pushed a commit to gabriel-barrett/lurk-rs that referenced this pull request Jan 10, 2024
* refactor: Simplify `Prover` trait in `proof` module

- Deleted the `outer_synthesize` method from the `Prover` trait.
- Removed unused import and unused type alias from `src/proof/mod.rs`

* refactor: Refactor generic parameters in proof evaluation traits

- Refactor multiple traits including CEKState, FrameLike, and EvaluationStore among others, reducing the number of generic parameters from two to one.
- Unify all pointer types to `Ptr`, eliminating separation between `ExprPtr` and `ContPtr`, resulting in simplified function signatures and traits.
- Update all references of `ContPtr` to the new unified `Ptr` type throughout the code base for consistency.
- Update test functions in `src/proof/tests/mod.rs` to expect the new `Ptr` type instead of `ContPtr`.
- Adjust the function definitions in `MultiFrameTrait` to align with the new unified `Ptr` generic parameter.

* refactor: Refactor proof module to directly use `Store<F>`, `Ptr`, `Frame`

- Refactored `MultiFrameTrait` related methods in `src/proof/mod.rs` to use `Store<F>`, `Ptr` and `Frame` directly instead of associated types.
- Updated `prove_recursively` method in `RecursiveSNARKTrait` and Prover methods to reflect these changes.
- Incorporated the usage of `Store<F>` in place of `<M>::Store` in `src/proof/supernova.rs` and `src/proof/tests/mod.rs`, leading to adjustments across various function definitions.
- Implemented the option to switch between parallel and sequential computation in the recursive SNARK proofing in `src/proof/nova.rs`.
- In `src/lem/multiframe.rs`, simplified type specifications across various methods to directly use existing types like `Store<F>`, `Frame` and `Ptr`.
- Updated `cache_witness()` function to handle errors more efficiently and carried out general code refactoring and simplification for overall improvement.

* refactor: Refactor proof structures, removing MultiFrame usage

- Removed dependency on `MultiFrameTrait` and `StepCircuit`, `SuperStepCircuit` from various sections, simplifying the imports.
- Simplified the `LurkProof` data structure by removing the `M: MultiFrameTrait` parameter.
- Adapted the `prover` variable type to be more generic across various files and functions such as `end2end_benchmark` and `prove_benchmark`.
- Updated `NovaProver` struct and instantiation, removing `MultiFrameTrait` application. Replaced `MultiFrameTrait` usage with `C1LEM`.
- Refactored proof structures in code, including modifications to function calls, assertions, proof verification and synthesis, shifting towards a simpler or more direct format.
- The changes do not seem to alter the program's fundamental logic, but rather its structuring and instantiation.

* refactor: Refactor SupernovaProver to use C1LEM instead of MultiFrameTrait

- Overhauled the `supernova.rs` code, replacing `MultiFrameTrait` with `nova::C1LEM`
- Removed usage of `MultiFrameTrait` in `SuperNovaProver`, further refining its scope and purpose
- Updated `Prover` code to reflect the change in usage from `MultiFrameTrait` to `C1LEM`
- Enhanced `sha256_nivc.rs` example by directly implementing `SuperNovaProver` without `MultiFrame`, and adding proof size output and verification functionality.

* refactor: Replace MultiFrameTrait with C1LEM across codebase

- Replaced the `MultiFrameTrait` with `C1LEM` across various functions in different files which made `circuit_cache_key` method and other related methods non-generic.
- Updated method calls reflecting changes of generic parameters to use `C1LEM` in place of `MultiFrameTrait` and also in cache handling methods in `supernova.rs` file.
- Removed `MultiFrame` usage in several benchmark methods - namely `end2end_benchmark`, `prove_benchmark`, `prove_compressed_benchmark`, `verify_benchmark`, and `verify_compressed_benchmark`.
- Updated `public_params` function and its related functions to work with changes of replacing `MultiFrameTrait` with `C1LEM`, this included adjusting the return type of `public_params` and modifications in `DiskCache` struct in `public_parameters/mod.rs` file.
- Examples and benchmarks using `public_params` function refactored to no longer require `MultiFrame` as a generic argument, this occurred in `examples/circom.rs`, `benches/fibonacci.rs`, and `benches/sha256.rs` files.
- `DiskCache` struct heavily refactored with the replacement of `MultiFrameTrait` with `C1LEM`, impacting `read` and `write` methods return types in `public_parameters/disk_cache.rs` file.
- The usage of `get_from_disk_cache_or_update_with` and `get_from_mem_cache_or_update_with` functions in `public_parameters/mem_cache.rs` file changed with the adoption of `C1LEM`.
- The `Instance` struct in the `src/public_parameters/instance.rs` was simplified and restructured to no longer depend on `MultiFrameTrait` and its associated methods and return types updated accordingly.

* refactor: Refactor generic functions to specific C1LEM use

- Refactored code, replacing the use of the `M: StepCircuit<F> + MultiFrameTrait<'a, F, C>` generic with the more specific `C1LEM<'a, F, C>` struct.
- Redesigned the `public_params` and `circuits` function outputs to return `C1LEM<'a, F, C>` instead of `M`.
- Observed substantial edits within code used for proof checking, compressed proof verification, and result checking.
- Eliminated usage of `MultiFrameTrait<'a, F, C>` and `MultiFrame` import from function parameters and file imports respectively across a number of files.
- Updated various function calls to accommodate the `C1LEM<'a, F, C>` struct instead of `M`.
- Altered the `public_params` function in `supernova.rs` by updating the return type and modifying setup for non-uniform circuit and public params.

* refactor: Refactor and remove `MultiFrameTrait` across modules

- Removed `MultiFrameTrait` from various files due to its deprecation and switched to direct use of 'MultiFrame' methods.
- Updated 'Provable' and 'Prover' traits to accommodate removal of `MultiFrameTrait`, with relevant modifications in methods `proof` and `evaluate_and_prove`.
- Renamed 'io_to_scalar_vector' function to 'to_scalar_vector' and applied this change in the trait methods.
- Introduced debugging and verification of the circuit's constraint system in 'prove_recursively' function in `nova.rs`.
- The 'MultiFrame' struct underwent significant reorganization to replace 'MultiFrameTrait', including new getter methods, building methods and potential performance improvements in synthesizing frames.
- Reorganized Frame allocation and handling in the `MultiFrame` instances for more effective synthesization.

* chore: clippy
gabriel-barrett pushed a commit to gabriel-barrett/lurk-rs that referenced this pull request Jan 10, 2024
* refactor: Simplify `Prover` trait in `proof` module

- Deleted the `outer_synthesize` method from the `Prover` trait.
- Removed unused import and unused type alias from `src/proof/mod.rs`

* refactor: Refactor generic parameters in proof evaluation traits

- Refactor multiple traits including CEKState, FrameLike, and EvaluationStore among others, reducing the number of generic parameters from two to one.
- Unify all pointer types to `Ptr`, eliminating separation between `ExprPtr` and `ContPtr`, resulting in simplified function signatures and traits.
- Update all references of `ContPtr` to the new unified `Ptr` type throughout the code base for consistency.
- Update test functions in `src/proof/tests/mod.rs` to expect the new `Ptr` type instead of `ContPtr`.
- Adjust the function definitions in `MultiFrameTrait` to align with the new unified `Ptr` generic parameter.

* refactor: Refactor proof module to directly use `Store<F>`, `Ptr`, `Frame`

- Refactored `MultiFrameTrait` related methods in `src/proof/mod.rs` to use `Store<F>`, `Ptr` and `Frame` directly instead of associated types.
- Updated `prove_recursively` method in `RecursiveSNARKTrait` and Prover methods to reflect these changes.
- Incorporated the usage of `Store<F>` in place of `<M>::Store` in `src/proof/supernova.rs` and `src/proof/tests/mod.rs`, leading to adjustments across various function definitions.
- Implemented the option to switch between parallel and sequential computation in the recursive SNARK proofing in `src/proof/nova.rs`.
- In `src/lem/multiframe.rs`, simplified type specifications across various methods to directly use existing types like `Store<F>`, `Frame` and `Ptr`.
- Updated `cache_witness()` function to handle errors more efficiently and carried out general code refactoring and simplification for overall improvement.

* refactor: Refactor proof structures, removing MultiFrame usage

- Removed dependency on `MultiFrameTrait` and `StepCircuit`, `SuperStepCircuit` from various sections, simplifying the imports.
- Simplified the `LurkProof` data structure by removing the `M: MultiFrameTrait` parameter.
- Adapted the `prover` variable type to be more generic across various files and functions such as `end2end_benchmark` and `prove_benchmark`.
- Updated `NovaProver` struct and instantiation, removing `MultiFrameTrait` application. Replaced `MultiFrameTrait` usage with `C1LEM`.
- Refactored proof structures in code, including modifications to function calls, assertions, proof verification and synthesis, shifting towards a simpler or more direct format.
- The changes do not seem to alter the program's fundamental logic, but rather its structuring and instantiation.

* refactor: Refactor SupernovaProver to use C1LEM instead of MultiFrameTrait

- Overhauled the `supernova.rs` code, replacing `MultiFrameTrait` with `nova::C1LEM`
- Removed usage of `MultiFrameTrait` in `SuperNovaProver`, further refining its scope and purpose
- Updated `Prover` code to reflect the change in usage from `MultiFrameTrait` to `C1LEM`
- Enhanced `sha256_nivc.rs` example by directly implementing `SuperNovaProver` without `MultiFrame`, and adding proof size output and verification functionality.

* refactor: Replace MultiFrameTrait with C1LEM across codebase

- Replaced the `MultiFrameTrait` with `C1LEM` across various functions in different files which made `circuit_cache_key` method and other related methods non-generic.
- Updated method calls reflecting changes of generic parameters to use `C1LEM` in place of `MultiFrameTrait` and also in cache handling methods in `supernova.rs` file.
- Removed `MultiFrame` usage in several benchmark methods - namely `end2end_benchmark`, `prove_benchmark`, `prove_compressed_benchmark`, `verify_benchmark`, and `verify_compressed_benchmark`.
- Updated `public_params` function and its related functions to work with changes of replacing `MultiFrameTrait` with `C1LEM`, this included adjusting the return type of `public_params` and modifications in `DiskCache` struct in `public_parameters/mod.rs` file.
- Examples and benchmarks using `public_params` function refactored to no longer require `MultiFrame` as a generic argument, this occurred in `examples/circom.rs`, `benches/fibonacci.rs`, and `benches/sha256.rs` files.
- `DiskCache` struct heavily refactored with the replacement of `MultiFrameTrait` with `C1LEM`, impacting `read` and `write` methods return types in `public_parameters/disk_cache.rs` file.
- The usage of `get_from_disk_cache_or_update_with` and `get_from_mem_cache_or_update_with` functions in `public_parameters/mem_cache.rs` file changed with the adoption of `C1LEM`.
- The `Instance` struct in the `src/public_parameters/instance.rs` was simplified and restructured to no longer depend on `MultiFrameTrait` and its associated methods and return types updated accordingly.

* refactor: Refactor generic functions to specific C1LEM use

- Refactored code, replacing the use of the `M: StepCircuit<F> + MultiFrameTrait<'a, F, C>` generic with the more specific `C1LEM<'a, F, C>` struct.
- Redesigned the `public_params` and `circuits` function outputs to return `C1LEM<'a, F, C>` instead of `M`.
- Observed substantial edits within code used for proof checking, compressed proof verification, and result checking.
- Eliminated usage of `MultiFrameTrait<'a, F, C>` and `MultiFrame` import from function parameters and file imports respectively across a number of files.
- Updated various function calls to accommodate the `C1LEM<'a, F, C>` struct instead of `M`.
- Altered the `public_params` function in `supernova.rs` by updating the return type and modifying setup for non-uniform circuit and public params.

* refactor: Refactor and remove `MultiFrameTrait` across modules

- Removed `MultiFrameTrait` from various files due to its deprecation and switched to direct use of 'MultiFrame' methods.
- Updated 'Provable' and 'Prover' traits to accommodate removal of `MultiFrameTrait`, with relevant modifications in methods `proof` and `evaluate_and_prove`.
- Renamed 'io_to_scalar_vector' function to 'to_scalar_vector' and applied this change in the trait methods.
- Introduced debugging and verification of the circuit's constraint system in 'prove_recursively' function in `nova.rs`.
- The 'MultiFrame' struct underwent significant reorganization to replace 'MultiFrameTrait', including new getter methods, building methods and potential performance improvements in synthesizing frames.
- Reorganized Frame allocation and handling in the `MultiFrame` instances for more effective synthesization.

* chore: clippy
gabriel-barrett pushed a commit to gabriel-barrett/lurk-rs that referenced this pull request Jan 11, 2024
* refactor: Simplify `Prover` trait in `proof` module

- Deleted the `outer_synthesize` method from the `Prover` trait.
- Removed unused import and unused type alias from `src/proof/mod.rs`

* refactor: Refactor generic parameters in proof evaluation traits

- Refactor multiple traits including CEKState, FrameLike, and EvaluationStore among others, reducing the number of generic parameters from two to one.
- Unify all pointer types to `Ptr`, eliminating separation between `ExprPtr` and `ContPtr`, resulting in simplified function signatures and traits.
- Update all references of `ContPtr` to the new unified `Ptr` type throughout the code base for consistency.
- Update test functions in `src/proof/tests/mod.rs` to expect the new `Ptr` type instead of `ContPtr`.
- Adjust the function definitions in `MultiFrameTrait` to align with the new unified `Ptr` generic parameter.

* refactor: Refactor proof module to directly use `Store<F>`, `Ptr`, `Frame`

- Refactored `MultiFrameTrait` related methods in `src/proof/mod.rs` to use `Store<F>`, `Ptr` and `Frame` directly instead of associated types.
- Updated `prove_recursively` method in `RecursiveSNARKTrait` and Prover methods to reflect these changes.
- Incorporated the usage of `Store<F>` in place of `<M>::Store` in `src/proof/supernova.rs` and `src/proof/tests/mod.rs`, leading to adjustments across various function definitions.
- Implemented the option to switch between parallel and sequential computation in the recursive SNARK proofing in `src/proof/nova.rs`.
- In `src/lem/multiframe.rs`, simplified type specifications across various methods to directly use existing types like `Store<F>`, `Frame` and `Ptr`.
- Updated `cache_witness()` function to handle errors more efficiently and carried out general code refactoring and simplification for overall improvement.

* refactor: Refactor proof structures, removing MultiFrame usage

- Removed dependency on `MultiFrameTrait` and `StepCircuit`, `SuperStepCircuit` from various sections, simplifying the imports.
- Simplified the `LurkProof` data structure by removing the `M: MultiFrameTrait` parameter.
- Adapted the `prover` variable type to be more generic across various files and functions such as `end2end_benchmark` and `prove_benchmark`.
- Updated `NovaProver` struct and instantiation, removing `MultiFrameTrait` application. Replaced `MultiFrameTrait` usage with `C1LEM`.
- Refactored proof structures in code, including modifications to function calls, assertions, proof verification and synthesis, shifting towards a simpler or more direct format.
- The changes do not seem to alter the program's fundamental logic, but rather its structuring and instantiation.

* refactor: Refactor SupernovaProver to use C1LEM instead of MultiFrameTrait

- Overhauled the `supernova.rs` code, replacing `MultiFrameTrait` with `nova::C1LEM`
- Removed usage of `MultiFrameTrait` in `SuperNovaProver`, further refining its scope and purpose
- Updated `Prover` code to reflect the change in usage from `MultiFrameTrait` to `C1LEM`
- Enhanced `sha256_nivc.rs` example by directly implementing `SuperNovaProver` without `MultiFrame`, and adding proof size output and verification functionality.

* refactor: Replace MultiFrameTrait with C1LEM across codebase

- Replaced the `MultiFrameTrait` with `C1LEM` across various functions in different files which made `circuit_cache_key` method and other related methods non-generic.
- Updated method calls reflecting changes of generic parameters to use `C1LEM` in place of `MultiFrameTrait` and also in cache handling methods in `supernova.rs` file.
- Removed `MultiFrame` usage in several benchmark methods - namely `end2end_benchmark`, `prove_benchmark`, `prove_compressed_benchmark`, `verify_benchmark`, and `verify_compressed_benchmark`.
- Updated `public_params` function and its related functions to work with changes of replacing `MultiFrameTrait` with `C1LEM`, this included adjusting the return type of `public_params` and modifications in `DiskCache` struct in `public_parameters/mod.rs` file.
- Examples and benchmarks using `public_params` function refactored to no longer require `MultiFrame` as a generic argument, this occurred in `examples/circom.rs`, `benches/fibonacci.rs`, and `benches/sha256.rs` files.
- `DiskCache` struct heavily refactored with the replacement of `MultiFrameTrait` with `C1LEM`, impacting `read` and `write` methods return types in `public_parameters/disk_cache.rs` file.
- The usage of `get_from_disk_cache_or_update_with` and `get_from_mem_cache_or_update_with` functions in `public_parameters/mem_cache.rs` file changed with the adoption of `C1LEM`.
- The `Instance` struct in the `src/public_parameters/instance.rs` was simplified and restructured to no longer depend on `MultiFrameTrait` and its associated methods and return types updated accordingly.

* refactor: Refactor generic functions to specific C1LEM use

- Refactored code, replacing the use of the `M: StepCircuit<F> + MultiFrameTrait<'a, F, C>` generic with the more specific `C1LEM<'a, F, C>` struct.
- Redesigned the `public_params` and `circuits` function outputs to return `C1LEM<'a, F, C>` instead of `M`.
- Observed substantial edits within code used for proof checking, compressed proof verification, and result checking.
- Eliminated usage of `MultiFrameTrait<'a, F, C>` and `MultiFrame` import from function parameters and file imports respectively across a number of files.
- Updated various function calls to accommodate the `C1LEM<'a, F, C>` struct instead of `M`.
- Altered the `public_params` function in `supernova.rs` by updating the return type and modifying setup for non-uniform circuit and public params.

* refactor: Refactor and remove `MultiFrameTrait` across modules

- Removed `MultiFrameTrait` from various files due to its deprecation and switched to direct use of 'MultiFrame' methods.
- Updated 'Provable' and 'Prover' traits to accommodate removal of `MultiFrameTrait`, with relevant modifications in methods `proof` and `evaluate_and_prove`.
- Renamed 'io_to_scalar_vector' function to 'to_scalar_vector' and applied this change in the trait methods.
- Introduced debugging and verification of the circuit's constraint system in 'prove_recursively' function in `nova.rs`.
- The 'MultiFrame' struct underwent significant reorganization to replace 'MultiFrameTrait', including new getter methods, building methods and potential performance improvements in synthesizing frames.
- Reorganized Frame allocation and handling in the `MultiFrame` instances for more effective synthesization.

* chore: clippy
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.

[LUR-21] Remove the MultiFrameTrait trait
5 participants