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

Native flavor for multilinear batching sumcheck with NumClaims polynomials. More...

#include <multilinear_batching_flavor.hpp>

Classes

class  AllEntities
 Define a bespoke AllEntities holding all the values: [unshifted values, shifted values, eq values]. More...
 
class  AllValues
 
class  PartiallyEvaluatedMultivariates
 
class  ProverPolynomials
 
class  ProvingKey
 The proving key for multilinear batching sumcheck. More...
 

Public Types

using Curve = curve::BN254
 
using FF = Curve::ScalarField
 
using GroupElement = Curve::Element
 
using Commitment = Curve::AffineElement
 
using PCS = KZG< Curve >
 
using Polynomial = bb::Polynomial< FF >
 
using CommitmentKey = bb::CommitmentKey< Curve >
 
using VerifierCommitmentKey = bb::VerifierCommitmentKey< Curve >
 
using Transcript = NativeTranscript
 
using Codec = FrCodec
 
template<typename FF_ >
using Relations_ = std::tuple< bb::MultilinearBatchingRelation< FF_, NUM_CLAIMS > >
 
using Relations = Relations_< FF >
 
using SubrelationSeparator = FF
 
using ProverClaim = MultilinearBatchingProverClaim
 
template<size_t LENGTH>
using ProverUnivariates = AllEntities< bb::Univariate< FF, LENGTH > >
 
using ExtendedEdges = ProverUnivariates< MAX_PARTIAL_RELATION_LENGTH >
 

Static Public Member Functions

template<typename PartiallyEvaluatedPolynomials >
static void extend_eq_polynomials_for_virtual_round (PartiallyEvaluatedPolynomials &partially_evaluated_polynomials, const std::vector< FF > &multivariate_challenge, const size_t round_idx)
 Given the eq polynomial at (u_1, .., u_N, 0, .., 0) compute its value at (u_1, .., u_N, 1, 0, .., 0) for use in the virtual rounds.
 

Static Public Attributes

static constexpr size_t NUM_CLAIMS = NumClaims
 
static constexpr size_t VIRTUAL_LOG_N = CONST_FOLDING_LOG_N
 
static constexpr bool USE_SHORT_MONOMIALS = false
 
static constexpr bool HasZK = false
 
static constexpr size_t TRACE_OFFSET = 0
 
static constexpr bool USE_PADDING = true
 
static constexpr size_t NUM_ALL_ENTITIES = 3 * NUM_CLAIMS
 
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
 
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH
 
static constexpr size_t NUM_RELATIONS = std::tuple_size_v<Relations>
 
static constexpr size_t NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>()
 

Detailed Description

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

Native flavor for multilinear batching sumcheck with NumClaims polynomials.

Definition at line 30 of file multilinear_batching_flavor.hpp.

Member Typedef Documentation

◆ Codec

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::Codec = FrCodec

Definition at line 41 of file multilinear_batching_flavor.hpp.

◆ Commitment

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::Commitment = Curve::AffineElement

Definition at line 35 of file multilinear_batching_flavor.hpp.

◆ CommitmentKey

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::CommitmentKey = bb::CommitmentKey<Curve>

Definition at line 38 of file multilinear_batching_flavor.hpp.

◆ Curve

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::Curve = curve::BN254

Definition at line 32 of file multilinear_batching_flavor.hpp.

◆ ExtendedEdges

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::ExtendedEdges = ProverUnivariates<MAX_PARTIAL_RELATION_LENGTH>

Definition at line 193 of file multilinear_batching_flavor.hpp.

◆ FF

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::FF = Curve::ScalarField

Definition at line 33 of file multilinear_batching_flavor.hpp.

◆ GroupElement

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::GroupElement = Curve::Element

Definition at line 34 of file multilinear_batching_flavor.hpp.

◆ PCS

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::PCS = KZG<Curve>

Definition at line 36 of file multilinear_batching_flavor.hpp.

◆ Polynomial

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::Polynomial = bb::Polynomial<FF>

Definition at line 37 of file multilinear_batching_flavor.hpp.

◆ ProverClaim

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::ProverClaim = MultilinearBatchingProverClaim

Definition at line 146 of file multilinear_batching_flavor.hpp.

◆ ProverUnivariates

template<size_t NumClaims>
template<size_t LENGTH>
using bb::MultilinearBatchingFlavor_< NumClaims >::ProverUnivariates = AllEntities<bb::Univariate<FF, LENGTH> >

Definition at line 192 of file multilinear_batching_flavor.hpp.

◆ Relations

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::Relations = Relations_<FF>

Definition at line 59 of file multilinear_batching_flavor.hpp.

◆ Relations_

template<size_t NumClaims>
template<typename FF_ >
using bb::MultilinearBatchingFlavor_< NumClaims >::Relations_ = std::tuple<bb::MultilinearBatchingRelation<FF_, NUM_CLAIMS> >

Definition at line 58 of file multilinear_batching_flavor.hpp.

◆ SubrelationSeparator

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::SubrelationSeparator = FF

Definition at line 67 of file multilinear_batching_flavor.hpp.

◆ Transcript

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::Transcript = NativeTranscript

Definition at line 40 of file multilinear_batching_flavor.hpp.

◆ VerifierCommitmentKey

template<size_t NumClaims>
using bb::MultilinearBatchingFlavor_< NumClaims >::VerifierCommitmentKey = bb::VerifierCommitmentKey<Curve>

Definition at line 39 of file multilinear_batching_flavor.hpp.

Member Function Documentation

◆ extend_eq_polynomials_for_virtual_round()

template<size_t NumClaims>
template<typename PartiallyEvaluatedPolynomials >
static void bb::MultilinearBatchingFlavor_< NumClaims >::extend_eq_polynomials_for_virtual_round ( PartiallyEvaluatedPolynomials &  partially_evaluated_polynomials,
const std::vector< FF > &  multivariate_challenge,
const size_t  round_idx 
)
inlinestatic

Given the eq polynomial at (u_1, .., u_N, 0, .., 0) compute its value at (u_1, .., u_N, 1, 0, .., 0) for use in the virtual rounds.

Witness polynomials of length N < VIRTUAL_LOG_N are extended by zero via multiplication by \prod_{i = N + 1}^{VIRTUAL_LOG_N} (1 - X_i). In this way, we run sumcheck on a fixed number of VIRTUAL_LOG_N rounds. For eq polynomials, this extension is not correct. Eq polynomials eq(X, Y) are defined as \prod_{i = 1}^{VIRTUAL_LOG_N} ((1 - X_i) (1 - Y_i) + X_i Y_i) so their extensions at a new edge require their true value at 0 and 1

Definition at line 207 of file multilinear_batching_flavor.hpp.

Member Data Documentation

◆ BATCHED_RELATION_PARTIAL_LENGTH

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH
staticconstexpr

Definition at line 64 of file multilinear_batching_flavor.hpp.

◆ HasZK

template<size_t NumClaims>
constexpr bool bb::MultilinearBatchingFlavor_< NumClaims >::HasZK = false
staticconstexpr

Definition at line 49 of file multilinear_batching_flavor.hpp.

◆ MAX_PARTIAL_RELATION_LENGTH

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
staticconstexpr

Definition at line 61 of file multilinear_batching_flavor.hpp.

◆ NUM_ALL_ENTITIES

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::NUM_ALL_ENTITIES = 3 * NUM_CLAIMS
staticconstexpr

Definition at line 56 of file multilinear_batching_flavor.hpp.

◆ NUM_CLAIMS

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::NUM_CLAIMS = NumClaims
staticconstexpr

Definition at line 44 of file multilinear_batching_flavor.hpp.

◆ NUM_RELATIONS

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::NUM_RELATIONS = std::tuple_size_v<Relations>
staticconstexpr

Definition at line 65 of file multilinear_batching_flavor.hpp.

◆ NUM_SUBRELATIONS

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>()
staticconstexpr

Definition at line 66 of file multilinear_batching_flavor.hpp.

◆ TRACE_OFFSET

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::TRACE_OFFSET = 0
staticconstexpr

Definition at line 50 of file multilinear_batching_flavor.hpp.

◆ USE_PADDING

template<size_t NumClaims>
constexpr bool bb::MultilinearBatchingFlavor_< NumClaims >::USE_PADDING = true
staticconstexpr

Definition at line 53 of file multilinear_batching_flavor.hpp.

◆ USE_SHORT_MONOMIALS

template<size_t NumClaims>
constexpr bool bb::MultilinearBatchingFlavor_< NumClaims >::USE_SHORT_MONOMIALS = false
staticconstexpr

Definition at line 48 of file multilinear_batching_flavor.hpp.

◆ VIRTUAL_LOG_N

template<size_t NumClaims>
constexpr size_t bb::MultilinearBatchingFlavor_< NumClaims >::VIRTUAL_LOG_N = CONST_FOLDING_LOG_N
staticconstexpr

Definition at line 47 of file multilinear_batching_flavor.hpp.


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