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

The recursive counterpart to MegaZKFlavor. More...

#include <mega_zk_recursive_flavor.hpp>

Classes

class  AllValues
 

Public Types

using CircuitBuilder = BuilderType
 
using Curve = stdlib::bn254< CircuitBuilder >
 
using PCS = KZG< Curve >
 
using GroupElement = typename Curve::Element
 
using FF = typename Curve::ScalarField
 
using Commitment = typename Curve::Element
 
using NativeFlavor = MegaZKFlavor
 
using Codec = stdlib::StdlibCodec< FF >
 
using Transcript = StdlibTranscript< CircuitBuilder >
 
using Relations = MegaZKFlavor::Relations_< FF >
 
using SubrelationSeparator = FF
 
using VerificationKey = StdlibVerificationKey_< CircuitBuilder, NativeFlavor::PrecomputedEntities< Commitment >, NativeFlavor::VerificationKey >
 
using WitnessCommitments = MegaZKFlavor::WitnessEntities< Commitment >
 
using CommitmentLabels = MegaZKFlavor::CommitmentLabels
 
using VKAndHash = VKAndHash_< FF, VerificationKey >
 

Static Public Member Functions

static constexpr size_t FINAL_PCS_MSM_SIZE (size_t log_n=VIRTUAL_LOG_N)
 
static const CommitmentLabelscommitment_labels ()
 

Static Public Attributes

static constexpr size_t VIRTUAL_LOG_N = MegaZKFlavor::VIRTUAL_LOG_N
 
static constexpr bool USE_SHORT_MONOMIALS = MegaZKFlavor::USE_SHORT_MONOMIALS
 
static constexpr bool HasZK = true
 
static constexpr bool HasGeminiMasking = false
 
static constexpr bool USE_PADDING = MegaZKFlavor::USE_PADDING
 
static constexpr size_t NUM_WIRES = MegaZKFlavor::NUM_WIRES
 
static constexpr size_t NUM_ALL_ENTITIES = MegaZKFlavor::NUM_ALL_ENTITIES
 
static constexpr size_t NUM_PRECOMPUTED_ENTITIES = MegaZKFlavor::NUM_PRECOMPUTED_ENTITIES
 
static constexpr size_t NUM_WITNESS_ENTITIES = MegaZKFlavor::NUM_WITNESS_ENTITIES
 
static constexpr size_t NUM_SHIFTED_ENTITIES = MegaZKFlavor::NUM_SHIFTED_ENTITIES
 
static constexpr size_t NUM_UNSHIFTED_ENTITIES = MegaZKFlavor::NUM_UNSHIFTED_ENTITIES
 
static constexpr bool HasDataBus = MegaZKFlavor::HasDataBus
 
static constexpr size_t NUM_BUS_COLUMNS = MegaZKFlavor::NUM_BUS_COLUMNS
 
static constexpr bool HasLogDerivLookup = MegaZKFlavor::HasLogDerivLookup
 
static constexpr bool HasElliptic = MegaZKFlavor::HasElliptic
 
static constexpr bool HasMemory = MegaZKFlavor::HasMemory
 
static constexpr bool HasNonNativeField = MegaZKFlavor::HasNonNativeField
 
static constexpr bool HasEccOpQueue = MegaZKFlavor::HasEccOpQueue
 
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
 
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH = MegaZKFlavor::BATCHED_RELATION_PARTIAL_LENGTH
 
static constexpr RepeatedCommitmentsData REPEATED_COMMITMENTS = MegaZKFlavor::REPEATED_COMMITMENTS
 
static constexpr size_t NUM_RELATIONS = std::tuple_size_v<Relations>
 
static constexpr size_t NUM_SUBRELATIONS = MegaZKFlavor::NUM_SUBRELATIONS
 

Detailed Description

template<typename BuilderType>
class bb::MegaZKRecursiveFlavor_< BuilderType >

The recursive counterpart to MegaZKFlavor.

Mirrors MegaRecursiveFlavor_ but references MegaZKFlavor (reduced relation set, fewer entities) so that the in-circuit recursive verifier evaluates the same polynomials and relations as the native prover. Runs with ZK Sumcheck (HasZK = true) and without a Gemini masking polynomial.

Template Parameters
BuilderTypeDetermines the arithmetization of the verifier circuit defined based on this flavor.

Definition at line 25 of file mega_zk_recursive_flavor.hpp.

Member Typedef Documentation

◆ CircuitBuilder

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::CircuitBuilder = BuilderType

Definition at line 27 of file mega_zk_recursive_flavor.hpp.

◆ Codec

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::Codec = stdlib::StdlibCodec<FF>

Definition at line 34 of file mega_zk_recursive_flavor.hpp.

◆ Commitment

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::Commitment = typename Curve::Element

Definition at line 32 of file mega_zk_recursive_flavor.hpp.

◆ CommitmentLabels

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::CommitmentLabels = MegaZKFlavor::CommitmentLabels

Definition at line 91 of file mega_zk_recursive_flavor.hpp.

◆ Curve

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::Curve = stdlib::bn254<CircuitBuilder>

Definition at line 28 of file mega_zk_recursive_flavor.hpp.

◆ FF

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::FF = typename Curve::ScalarField

Definition at line 31 of file mega_zk_recursive_flavor.hpp.

◆ GroupElement

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::GroupElement = typename Curve::Element

Definition at line 30 of file mega_zk_recursive_flavor.hpp.

◆ NativeFlavor

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::NativeFlavor = MegaZKFlavor

Definition at line 33 of file mega_zk_recursive_flavor.hpp.

◆ PCS

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::PCS = KZG<Curve>

Definition at line 29 of file mega_zk_recursive_flavor.hpp.

◆ Relations

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::Relations = MegaZKFlavor::Relations_<FF>

Definition at line 59 of file mega_zk_recursive_flavor.hpp.

◆ SubrelationSeparator

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::SubrelationSeparator = FF

Definition at line 74 of file mega_zk_recursive_flavor.hpp.

◆ Transcript

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::Transcript = StdlibTranscript<CircuitBuilder>

Definition at line 35 of file mega_zk_recursive_flavor.hpp.

◆ VerificationKey

◆ VKAndHash

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::VKAndHash = VKAndHash_<FF, VerificationKey>

Definition at line 94 of file mega_zk_recursive_flavor.hpp.

◆ WitnessCommitments

template<typename BuilderType >
using bb::MegaZKRecursiveFlavor_< BuilderType >::WitnessCommitments = MegaZKFlavor::WitnessEntities<Commitment>

Definition at line 89 of file mega_zk_recursive_flavor.hpp.

Member Function Documentation

◆ commitment_labels()

template<typename BuilderType >
static const CommitmentLabels & bb::MegaZKRecursiveFlavor_< BuilderType >::commitment_labels ( )
inlinestatic

Definition at line 92 of file mega_zk_recursive_flavor.hpp.

◆ FINAL_PCS_MSM_SIZE()

template<typename BuilderType >
static constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::FINAL_PCS_MSM_SIZE ( size_t  log_n = VIRTUAL_LOG_N)
inlinestaticconstexpr

Definition at line 66 of file mega_zk_recursive_flavor.hpp.

Member Data Documentation

◆ BATCHED_RELATION_PARTIAL_LENGTH

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::BATCHED_RELATION_PARTIAL_LENGTH = MegaZKFlavor::BATCHED_RELATION_PARTIAL_LENGTH
staticconstexpr

Definition at line 64 of file mega_zk_recursive_flavor.hpp.

◆ HasDataBus

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasDataBus = MegaZKFlavor::HasDataBus
staticconstexpr

Definition at line 49 of file mega_zk_recursive_flavor.hpp.

◆ HasEccOpQueue

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasEccOpQueue = MegaZKFlavor::HasEccOpQueue
staticconstexpr

Definition at line 56 of file mega_zk_recursive_flavor.hpp.

◆ HasElliptic

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasElliptic = MegaZKFlavor::HasElliptic
staticconstexpr

Definition at line 53 of file mega_zk_recursive_flavor.hpp.

◆ HasGeminiMasking

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasGeminiMasking = false
staticconstexpr

Definition at line 41 of file mega_zk_recursive_flavor.hpp.

◆ HasLogDerivLookup

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasLogDerivLookup = MegaZKFlavor::HasLogDerivLookup
staticconstexpr

Definition at line 52 of file mega_zk_recursive_flavor.hpp.

◆ HasMemory

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasMemory = MegaZKFlavor::HasMemory
staticconstexpr

Definition at line 54 of file mega_zk_recursive_flavor.hpp.

◆ HasNonNativeField

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasNonNativeField = MegaZKFlavor::HasNonNativeField
staticconstexpr

Definition at line 55 of file mega_zk_recursive_flavor.hpp.

◆ HasZK

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::HasZK = true
staticconstexpr

Definition at line 40 of file mega_zk_recursive_flavor.hpp.

◆ MAX_PARTIAL_RELATION_LENGTH

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>()
staticconstexpr

Definition at line 61 of file mega_zk_recursive_flavor.hpp.

◆ NUM_ALL_ENTITIES

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_ALL_ENTITIES = MegaZKFlavor::NUM_ALL_ENTITIES
staticconstexpr

Definition at line 44 of file mega_zk_recursive_flavor.hpp.

◆ NUM_BUS_COLUMNS

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_BUS_COLUMNS = MegaZKFlavor::NUM_BUS_COLUMNS
staticconstexpr

Definition at line 50 of file mega_zk_recursive_flavor.hpp.

◆ NUM_PRECOMPUTED_ENTITIES

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_PRECOMPUTED_ENTITIES = MegaZKFlavor::NUM_PRECOMPUTED_ENTITIES
staticconstexpr

Definition at line 45 of file mega_zk_recursive_flavor.hpp.

◆ NUM_RELATIONS

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_RELATIONS = std::tuple_size_v<Relations>
staticconstexpr

Definition at line 72 of file mega_zk_recursive_flavor.hpp.

◆ NUM_SHIFTED_ENTITIES

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_SHIFTED_ENTITIES = MegaZKFlavor::NUM_SHIFTED_ENTITIES
staticconstexpr

Definition at line 47 of file mega_zk_recursive_flavor.hpp.

◆ NUM_SUBRELATIONS

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_SUBRELATIONS = MegaZKFlavor::NUM_SUBRELATIONS
staticconstexpr

Definition at line 73 of file mega_zk_recursive_flavor.hpp.

◆ NUM_UNSHIFTED_ENTITIES

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_UNSHIFTED_ENTITIES = MegaZKFlavor::NUM_UNSHIFTED_ENTITIES
staticconstexpr

Definition at line 48 of file mega_zk_recursive_flavor.hpp.

◆ NUM_WIRES

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_WIRES = MegaZKFlavor::NUM_WIRES
staticconstexpr

Definition at line 43 of file mega_zk_recursive_flavor.hpp.

◆ NUM_WITNESS_ENTITIES

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::NUM_WITNESS_ENTITIES = MegaZKFlavor::NUM_WITNESS_ENTITIES
staticconstexpr

Definition at line 46 of file mega_zk_recursive_flavor.hpp.

◆ REPEATED_COMMITMENTS

template<typename BuilderType >
constexpr RepeatedCommitmentsData bb::MegaZKRecursiveFlavor_< BuilderType >::REPEATED_COMMITMENTS = MegaZKFlavor::REPEATED_COMMITMENTS
staticconstexpr

Definition at line 70 of file mega_zk_recursive_flavor.hpp.

◆ USE_PADDING

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::USE_PADDING = MegaZKFlavor::USE_PADDING
staticconstexpr

Definition at line 42 of file mega_zk_recursive_flavor.hpp.

◆ USE_SHORT_MONOMIALS

template<typename BuilderType >
constexpr bool bb::MegaZKRecursiveFlavor_< BuilderType >::USE_SHORT_MONOMIALS = MegaZKFlavor::USE_SHORT_MONOMIALS
staticconstexpr

Definition at line 38 of file mega_zk_recursive_flavor.hpp.

◆ VIRTUAL_LOG_N

template<typename BuilderType >
constexpr size_t bb::MegaZKRecursiveFlavor_< BuilderType >::VIRTUAL_LOG_N = MegaZKFlavor::VIRTUAL_LOG_N
staticconstexpr

Definition at line 37 of file mega_zk_recursive_flavor.hpp.


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