Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey Class Reference

The proving key for multilinear batching sumcheck. More...

#include <multilinear_batching_flavor.hpp>

Public Member Functions

 ProvingKey ()=default
 
 ProvingKey (std::vector< ProverClaim > &&claims)
 

Public Attributes

ProverPolynomials polynomials
 
std::array< Polynomial, NUM_CLAIMSpreshifted_polynomials
 
std::array< Commitment, NUM_CLAIMSnon_shifted_commitments
 
std::array< Commitment, NUM_CLAIMSshifted_commitments
 
std::array< FF, NUM_CLAIMSnon_shifted_evaluations
 
std::array< FF, NUM_CLAIMSshifted_evaluations
 
size_t circuit_size = 0
 

Detailed Description

template<size_t NumClaims>
class bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey

The proving key for multilinear batching sumcheck.

In HyperNova folding, we reduce NumClaims polynomial evaluation claims to one via sumcheck.

Each claim asserts: "polynomial P evaluated at point r equals v", i.e., P(r) = v.

The multilinear batching sumcheck proves all claims simultaneously by checking: sum_x [ sum_i \gamma^i P_i(x) * eq(x, r_i) ] = \sum_i \gamma^i v_i

where eq(x, r) is the equality polynomial that is 1 when x = r and 0 elsewhere on the hypercube, and \gamma is the polynomial batching challenge applied as a public per-slot relation coefficient.

After sumcheck, all claims are reduced to evaluations of the original polynomials at a new random point u. These are then combined into a single accumulator claim using a fresh challenge \rho (drawn once the claimed evaluations are bound to the transcript), so that the single opening of the combined commitment binds each P_i(u) individually.

Definition at line 166 of file multilinear_batching_flavor.hpp.

Constructor & Destructor Documentation

◆ ProvingKey() [1/2]

template<size_t NumClaims>
bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::ProvingKey ( )
default

◆ ProvingKey() [2/2]

template<size_t NumClaims>
bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::ProvingKey ( std::vector< ProverClaim > &&  claims)
explicit

Definition at line 16 of file multilinear_batching_prover.cpp.

Member Data Documentation

◆ circuit_size

template<size_t NumClaims>
size_t bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::circuit_size = 0

Definition at line 174 of file multilinear_batching_flavor.hpp.

◆ non_shifted_commitments

template<size_t NumClaims>
std::array<Commitment, NUM_CLAIMS> bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::non_shifted_commitments

Definition at line 170 of file multilinear_batching_flavor.hpp.

◆ non_shifted_evaluations

template<size_t NumClaims>
std::array<FF, NUM_CLAIMS> bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::non_shifted_evaluations

Definition at line 172 of file multilinear_batching_flavor.hpp.

◆ polynomials

template<size_t NumClaims>
ProverPolynomials bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::polynomials

Definition at line 168 of file multilinear_batching_flavor.hpp.

◆ preshifted_polynomials

template<size_t NumClaims>
std::array<Polynomial, NUM_CLAIMS> bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::preshifted_polynomials

Definition at line 169 of file multilinear_batching_flavor.hpp.

◆ shifted_commitments

template<size_t NumClaims>
std::array<Commitment, NUM_CLAIMS> bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::shifted_commitments

Definition at line 171 of file multilinear_batching_flavor.hpp.

◆ shifted_evaluations

template<size_t NumClaims>
std::array<FF, NUM_CLAIMS> bb::MultilinearBatchingFlavor_< NumClaims >::ProvingKey::shifted_evaluations

Definition at line 173 of file multilinear_batching_flavor.hpp.


The documentation for this class was generated from the following files: