A complete implementation of the Hypernova folding scheme (see section 5 of the paper) in arkworks.
This implementation is not meant to be used in production. Its purpose is to help us refine the interfaces and abstractions, so that multifolding can be integrated into a wider Hypernova implementation. A complete Hypernova implementation includes IVC, an in-circuit multifolding verifier, and R1CS-to-CCS and Plonkish-to-CCS compilers.
See src/multifolding.rs:test_basic_multifolding()
for a demonstration of the multifolding.
See TODO.md
for open future tasks.
As usual, you can run the tests using cargo test --release
.
Shoutout to Espresso Systems for the Hyperplonk implementation that included useful multivariate polynomial routines.