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

#include <mega_flavor.hpp>

Inheritance diagram for bb::MegaFlavor:
bb::MegaZKFlavor

Classes

class  AllEntities
 A base class labelling all entities (for instance, all of the polynomials used by the prover during sumcheck) in this Honk variant along with particular subsets of interest. More...
 
class  AllValues
 A field element for each entity of the flavor. These entities represent the prover polynomials evaluated at one point. More...
 
class  CommitmentLabels
 A container for commitment labels. More...
 
class  DerivedEntities
 
class  PartiallyEvaluatedMultivariates
 A container for storing the partially evaluated multivariates produced by sumcheck. More...
 
class  PrecomputedEntities
 A base class labelling precomputed entities and (ordered) subsets of interest. More...
 
class  ProverPolynomials
 A container for the prover polynomials handles. More...
 
class  ShiftedEntities
 Class for ShiftedEntities, containing the shifted witness polynomials. More...
 
class  VerificationKey
 The verification key is responsible for storing the commitments to the precomputed (non-witness) polynomials used by the verifier. More...
 
class  VerifierCommitments_
 
class  WireEntities
 
class  WitnessEntities
 Container for all witness polynomials used/constructed by the prover. More...
 

Public Types

using CircuitBuilder = MegaCircuitBuilder
 
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 TraceBlocks = MegaExecutionTraceBlocks
 
using Transcript = NativeTranscript
 
template<typename FF >
using Relations_ = std::tuple< bb::UltraArithmeticRelation< FF >, bb::UltraPermutationRelation< FF >, bb::LogDerivLookupRelation< FF >, bb::DeltaRangeConstraintRelation< FF >, bb::EllipticRelation< FF >, bb::MemoryRelation< FF >, bb::NonNativeFieldRelation< FF >, bb::EccOpQueueRelation< FF >, bb::DatabusLookupRelation< FF >, bb::Poseidon2ExternalRelation< FF >, bb::Poseidon2InternalRelation< FF > >
 
using Relations = Relations_< FF >
 
using SubrelationSeparators = std::array< FF, NUM_SUBRELATIONS - 1 >
 
template<size_t NUM_KEYS>
using ProtogalaxyTupleOfTuplesOfUnivariatesNoOptimisticSkipping = decltype(create_protogalaxy_tuple_of_tuples_of_univariates< Relations, NUM_KEYS >())
 
template<size_t NUM_KEYS>
using ProtogalaxyTupleOfTuplesOfUnivariates = decltype(create_protogalaxy_tuple_of_tuples_of_univariates< Relations, NUM_KEYS, true >())
 
using PrecomputedData = PrecomputedData_< Polynomial, NUM_PRECOMPUTED_ENTITIES >
 
template<size_t LENGTH>
using ProverUnivariates = AllEntities< bb::Univariate< FF, LENGTH > >
 A container for univariates used during Protogalaxy folding and sumcheck.
 
template<size_t LENGTH, size_t SKIP_COUNT>
using ProverUnivariatesWithOptimisticSkipping = AllEntities< bb::Univariate< FF, LENGTH, 0, SKIP_COUNT > >
 A container for univariates used during Protogalaxy folding and sumcheck with some of the computation optmistically ignored.
 
using ExtendedEdges = ProverUnivariates< MAX_PARTIAL_RELATION_LENGTH >
 A container for univariates produced during the hot loop in sumcheck.
 
using WitnessCommitments = WitnessEntities< Commitment >
 A container for the witness commitments.
 
using VerifierCommitments = VerifierCommitments_< Commitment, VerificationKey >
 

Static Public Member Functions

static constexpr size_t DECIDER_PROOF_LENGTH (size_t virtual_log_n=VIRTUAL_LOG_N)
 
static constexpr size_t PROOF_LENGTH_WITHOUT_PUB_INPUTS (size_t virtual_log_n=VIRTUAL_LOG_N)
 

Static Public Attributes

static constexpr size_t VIRTUAL_LOG_N = std::max(CONST_PG_LOG_N, MEGA_AVM_LOG_N)
 
static constexpr bool USE_SHORT_MONOMIALS = true
 
static constexpr bool HasZK = false
 
static constexpr bool USE_PADDING = true
 
static constexpr size_t NUM_WIRES = CircuitBuilder::NUM_WIRES
 
static constexpr size_t NUM_ALL_ENTITIES = 60
 
static constexpr size_t NUM_PRECOMPUTED_ENTITIES = 31
 
static constexpr size_t NUM_WITNESS_ENTITIES = 24
 
static constexpr size_t NUM_FOLDED_ENTITIES = NUM_PRECOMPUTED_ENTITIES + NUM_WITNESS_ENTITIES
 
static constexpr size_t NUM_SHIFTED_WITNESSES = 5
 
static constexpr RepeatedCommitmentsData REPEATED_COMMITMENTS
 
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
 
static constexpr size_t MAX_TOTAL_RELATION_LENGTH = compute_max_total_relation_length<Relations>()
 
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH + 1
 
static constexpr size_t NUM_RELATIONS = std::tuple_size_v<Relations>
 
static constexpr size_t num_frs_comm = bb::field_conversion::calc_num_bn254_frs<Commitment>()
 
static constexpr size_t num_frs_fr = bb::field_conversion::calc_num_bn254_frs<FF>()
 
static constexpr size_t OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS
 
static constexpr size_t NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>()
 
static constexpr bool has_zero_row = true
 

Detailed Description

Definition at line 33 of file mega_flavor.hpp.

Member Typedef Documentation

◆ CircuitBuilder

◆ Commitment

◆ CommitmentKey

◆ Curve

Definition at line 36 of file mega_flavor.hpp.

◆ ExtendedEdges

A container for univariates produced during the hot loop in sumcheck.

Definition at line 549 of file mega_flavor.hpp.

◆ FF

Definition at line 37 of file mega_flavor.hpp.

◆ GroupElement

Definition at line 38 of file mega_flavor.hpp.

◆ PCS

Definition at line 40 of file mega_flavor.hpp.

◆ Polynomial

Definition at line 41 of file mega_flavor.hpp.

◆ PrecomputedData

◆ ProtogalaxyTupleOfTuplesOfUnivariates

◆ ProtogalaxyTupleOfTuplesOfUnivariatesNoOptimisticSkipping

◆ ProverUnivariates

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

A container for univariates used during Protogalaxy folding and sumcheck.

During folding and sumcheck, the prover evaluates the relations on these univariates.

Definition at line 536 of file mega_flavor.hpp.

◆ ProverUnivariatesWithOptimisticSkipping

template<size_t LENGTH, size_t SKIP_COUNT>
using bb::MegaFlavor::ProverUnivariatesWithOptimisticSkipping = AllEntities<bb::Univariate<FF, LENGTH, 0, SKIP_COUNT> >

A container for univariates used during Protogalaxy folding and sumcheck with some of the computation optmistically ignored.

During folding and sumcheck, the prover evaluates the relations on these univariates.

Definition at line 544 of file mega_flavor.hpp.

◆ Relations

Definition at line 88 of file mega_flavor.hpp.

◆ Relations_

◆ SubrelationSeparators

Definition at line 126 of file mega_flavor.hpp.

◆ TraceBlocks

◆ Transcript

Definition at line 45 of file mega_flavor.hpp.

◆ VerifierCommitmentKey

◆ VerifierCommitments

◆ WitnessCommitments

A container for the witness commitments.

Definition at line 554 of file mega_flavor.hpp.

Member Function Documentation

◆ DECIDER_PROOF_LENGTH()

static constexpr size_t bb::MegaFlavor::DECIDER_PROOF_LENGTH ( size_t  virtual_log_n = VIRTUAL_LOG_N)
inlinestaticconstexpr

Definition at line 106 of file mega_flavor.hpp.

◆ PROOF_LENGTH_WITHOUT_PUB_INPUTS()

static constexpr size_t bb::MegaFlavor::PROOF_LENGTH_WITHOUT_PUB_INPUTS ( size_t  virtual_log_n = VIRTUAL_LOG_N)
inlinestaticconstexpr

Definition at line 117 of file mega_flavor.hpp.

Member Data Documentation

◆ BATCHED_RELATION_PARTIAL_LENGTH

constexpr size_t bb::MegaFlavor::BATCHED_RELATION_PARTIAL_LENGTH = MAX_PARTIAL_RELATION_LENGTH + 1
staticconstexpr

Definition at line 96 of file mega_flavor.hpp.

◆ has_zero_row

constexpr bool bb::MegaFlavor::has_zero_row = true
staticconstexpr

Definition at line 139 of file mega_flavor.hpp.

◆ HasZK

constexpr bool bb::MegaFlavor::HasZK = false
staticconstexpr

Definition at line 53 of file mega_flavor.hpp.

◆ MAX_PARTIAL_RELATION_LENGTH

constexpr size_t bb::MegaFlavor::MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
staticconstexpr

Definition at line 90 of file mega_flavor.hpp.

◆ MAX_TOTAL_RELATION_LENGTH

constexpr size_t bb::MegaFlavor::MAX_TOTAL_RELATION_LENGTH = compute_max_total_relation_length<Relations>()
staticconstexpr

Definition at line 91 of file mega_flavor.hpp.

◆ NUM_ALL_ENTITIES

constexpr size_t bb::MegaFlavor::NUM_ALL_ENTITIES = 60
staticconstexpr

Definition at line 60 of file mega_flavor.hpp.

◆ NUM_FOLDED_ENTITIES

constexpr size_t bb::MegaFlavor::NUM_FOLDED_ENTITIES = NUM_PRECOMPUTED_ENTITIES + NUM_WITNESS_ENTITIES
staticconstexpr

Definition at line 67 of file mega_flavor.hpp.

◆ num_frs_comm

constexpr size_t bb::MegaFlavor::num_frs_comm = bb::field_conversion::calc_num_bn254_frs<Commitment>()
staticconstexpr

Definition at line 99 of file mega_flavor.hpp.

◆ num_frs_fr

constexpr size_t bb::MegaFlavor::num_frs_fr = bb::field_conversion::calc_num_bn254_frs<FF>()
staticconstexpr

Definition at line 100 of file mega_flavor.hpp.

◆ NUM_PRECOMPUTED_ENTITIES

constexpr size_t bb::MegaFlavor::NUM_PRECOMPUTED_ENTITIES = 31
staticconstexpr

Definition at line 63 of file mega_flavor.hpp.

◆ NUM_RELATIONS

constexpr size_t bb::MegaFlavor::NUM_RELATIONS = std::tuple_size_v<Relations>
staticconstexpr

Definition at line 97 of file mega_flavor.hpp.

◆ NUM_SHIFTED_WITNESSES

constexpr size_t bb::MegaFlavor::NUM_SHIFTED_WITNESSES = 5
staticconstexpr

Definition at line 69 of file mega_flavor.hpp.

◆ NUM_SUBRELATIONS

constexpr size_t bb::MegaFlavor::NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>()
staticconstexpr

Definition at line 125 of file mega_flavor.hpp.

◆ NUM_WIRES

constexpr size_t bb::MegaFlavor::NUM_WIRES = CircuitBuilder::NUM_WIRES
staticconstexpr

Definition at line 57 of file mega_flavor.hpp.

◆ NUM_WITNESS_ENTITIES

constexpr size_t bb::MegaFlavor::NUM_WITNESS_ENTITIES = 24
staticconstexpr

Definition at line 65 of file mega_flavor.hpp.

◆ OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS

constexpr size_t bb::MegaFlavor::OINK_PROOF_LENGTH_WITHOUT_PUB_INPUTS
staticconstexpr
Initial value:
=
static constexpr size_t NUM_WITNESS_ENTITIES
static constexpr size_t num_frs_comm

Definition at line 103 of file mega_flavor.hpp.

◆ REPEATED_COMMITMENTS

constexpr RepeatedCommitmentsData bb::MegaFlavor::REPEATED_COMMITMENTS
staticconstexpr
Initial value:
= RepeatedCommitmentsData(
static constexpr size_t NUM_PRECOMPUTED_ENTITIES
static constexpr size_t NUM_SHIFTED_WITNESSES

Definition at line 71 of file mega_flavor.hpp.

◆ USE_PADDING

constexpr bool bb::MegaFlavor::USE_PADDING = true
staticconstexpr

Definition at line 56 of file mega_flavor.hpp.

◆ USE_SHORT_MONOMIALS

constexpr bool bb::MegaFlavor::USE_SHORT_MONOMIALS = true
staticconstexpr

Definition at line 51 of file mega_flavor.hpp.

◆ VIRTUAL_LOG_N

constexpr size_t bb::MegaFlavor::VIRTUAL_LOG_N = std::max(CONST_PG_LOG_N, MEGA_AVM_LOG_N)
staticconstexpr

Definition at line 49 of file mega_flavor.hpp.


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