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

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

#include <multilinear_batching_flavor.hpp>

Public Member Functions

 ProvingKey ()=default
 
 ProvingKey (ProverClaim &&accumulator_claim, ProverClaim &&instance_claim)
 Construct from accumulator and instance claims.
 

Public Attributes

ProverPolynomials polynomials
 
std::vector< FFaccumulator_challenge
 
std::vector< FFinstance_challenge
 
std::vector< FFaccumulator_evaluations
 
std::vector< FFinstance_evaluations
 
size_t circuit_size
 
Commitment non_shifted_accumulator_commitment
 
Commitment shifted_accumulator_commitment
 
Commitment non_shifted_instance_commitment
 
Commitment shifted_instance_commitment
 
Polynomial preshifted_accumulator
 
Polynomial preshifted_instance
 

Detailed Description

The proving key for multilinear batching sumcheck.

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

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

  • Accumulator claim: P_acc(r_acc) = v_acc (from previous folding rounds)
  • Instance claim: P_inst(r_inst) = v_inst (from the incoming circuit)

The multilinear batching sumcheck proves both claims simultaneously by checking: sum_x [ P_acc(x) * eq(x, r_acc) ] = v_acc sum_x [ P_inst(x) * eq(x, r_inst) ] = v_inst

where eq(x, r) is the equality polynomial that is 1 when x = r and 0 elsewhere on the hypercube.

After sumcheck, both claims are reduced to evaluations at a new random point u, producing a single combined claim that can be verified with one polynomial opening.

Field mapping from ProverClaim to ProvingKey:

  • non_shifted_polynomial → polynomials.batched_unshifted_{accumulator,instance}
  • shifted_polynomial → polynomials.batched_shifted_{accumulator,instance} (via .shifted())
  • challenge → {accumulator,instance}_challenge + polynomials.eq_{accumulator,instance}
  • {non_shifted,shifted}_evaluation → {accumulator,instance}_evaluations
  • {non_shifted,shifted}_commitment → {non_shifted,shifted}_{accumulator,instance}_commitment
  • shifted_polynomial → preshifted_{accumulator,instance} (for new claim computation)

Definition at line 201 of file multilinear_batching_flavor.hpp.

Constructor & Destructor Documentation

◆ ProvingKey() [1/2]

bb::MultilinearBatchingFlavor::ProvingKey::ProvingKey ( )
default

◆ ProvingKey() [2/2]

bb::MultilinearBatchingFlavor::ProvingKey::ProvingKey ( ProverClaim &&  accumulator_claim,
ProverClaim &&  instance_claim 
)

Construct from accumulator and instance claims.

Takes ownership via move semantics. After construction, the claims are consumed.

Definition at line 14 of file multilinear_batching_flavor.cpp.

Member Data Documentation

◆ accumulator_challenge

std::vector<FF> bb::MultilinearBatchingFlavor::ProvingKey::accumulator_challenge

Definition at line 207 of file multilinear_batching_flavor.hpp.

◆ accumulator_evaluations

std::vector<FF> bb::MultilinearBatchingFlavor::ProvingKey::accumulator_evaluations

Definition at line 211 of file multilinear_batching_flavor.hpp.

◆ circuit_size

size_t bb::MultilinearBatchingFlavor::ProvingKey::circuit_size

Definition at line 214 of file multilinear_batching_flavor.hpp.

◆ instance_challenge

std::vector<FF> bb::MultilinearBatchingFlavor::ProvingKey::instance_challenge

Definition at line 208 of file multilinear_batching_flavor.hpp.

◆ instance_evaluations

std::vector<FF> bb::MultilinearBatchingFlavor::ProvingKey::instance_evaluations

Definition at line 212 of file multilinear_batching_flavor.hpp.

◆ non_shifted_accumulator_commitment

Commitment bb::MultilinearBatchingFlavor::ProvingKey::non_shifted_accumulator_commitment

Definition at line 217 of file multilinear_batching_flavor.hpp.

◆ non_shifted_instance_commitment

Commitment bb::MultilinearBatchingFlavor::ProvingKey::non_shifted_instance_commitment

Definition at line 219 of file multilinear_batching_flavor.hpp.

◆ polynomials

ProverPolynomials bb::MultilinearBatchingFlavor::ProvingKey::polynomials

Definition at line 204 of file multilinear_batching_flavor.hpp.

◆ preshifted_accumulator

Polynomial bb::MultilinearBatchingFlavor::ProvingKey::preshifted_accumulator

Definition at line 223 of file multilinear_batching_flavor.hpp.

◆ preshifted_instance

Polynomial bb::MultilinearBatchingFlavor::ProvingKey::preshifted_instance

Definition at line 224 of file multilinear_batching_flavor.hpp.

◆ shifted_accumulator_commitment

Commitment bb::MultilinearBatchingFlavor::ProvingKey::shifted_accumulator_commitment

Definition at line 218 of file multilinear_batching_flavor.hpp.

◆ shifted_instance_commitment

Commitment bb::MultilinearBatchingFlavor::ProvingKey::shifted_instance_commitment

Definition at line 220 of file multilinear_batching_flavor.hpp.


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