Folding scheme definition and implementations.
This crate provides the traits for folding schemes, the out-of-circuit
widgets and the in-circuit gadgets of their algorithms, and their associated
structures (such as keys, instances, and witnesses) in [definitions].
Concrete constructions of the following folding schemes are then implemented as submodules:
Each scheme module mirrors the same directory layout:
algorithms/: Implementations for the following algorithms:- Preprocessing/Setup: [
FoldingSchemePreprocessor] - Key generation: [
FoldingSchemeKeyGenerator] - Proof generation: [
FoldingSchemeProver] - Proof verification: [
FoldingSchemeVerifier]
- Preprocessing/Setup: [
circuits/: In-circuit (partial / full) gadgets, mainly for verification.instances/: Instance types.keys/: Key types.witnesses/: Witness types.
Example
Aggregating independent claims about solutions to an equation into a single accumulator.
This example is also runnable with
cargo run --release --example aggregate_solutions.