Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
translator_recursive_flavor.hpp
Go to the documentation of this file.
1// === AUDIT STATUS ===
2// internal: { status: Planned, auditors: [], commit: }
3// external_1: { status: not started, auditors: [], commit: }
4// external_2: { status: not started, auditors: [], commit: }
5// =====================
6
7#pragma once
18
19namespace bb {
20
31
32 public:
35 using PCS = KZG<Curve>;
41 using SubrelationSeparators = std::array<FF, NUM_SUBRELATIONS - 1>;
42
45
46 // Indicates that this flavor runs with ZK Sumcheck.
47 static constexpr bool HasZK = true;
48
49 // Number of bits in a binary limb
50 // This is not a configurable value. Relations are specifically designed for it to be 68
51 static constexpr size_t NUM_LIMB_BITS = NativeFlavor::NUM_LIMB_BITS;
52
53 // The number of multivariate polynomials on which a sumcheck prover sumcheck operates (including shifts).
55
57
58 // Mid-sumcheck minicircuit wire evaluation constants
62
63 template <typename FFType>
69
70 template <typename FFType>
77
79
80 static constexpr size_t MAX_PARTIAL_RELATION_LENGTH = compute_max_partial_relation_length<Relations>();
81
82 // BATCHED_RELATION_PARTIAL_LENGTH = algebraic degree of sumcheck relation *after* multiplying by the `pow_zeta`
83 // random polynomial e.g. For \sum(x) [A(x) * B(x) + C(x)] * PowZeta(X), relation length = 2 and random relation
84 // length = 3
87
93 public:
95 using Base::Base;
96 };
103
108
110 // Reuse the VerifierCommitments from Translator
113
115};
116} // namespace bb
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Simple stdlib verification key class for fixed-size circuits (ECCVM, Translator, AVM).
Definition flavor.hpp:330
Simple verification key class for fixed-size circuits (ECCVM, Translator, AVM).
Definition flavor.hpp:101
A base class labelling all entities (for instance, all of the polynomials used by the prover during s...
A container for commitment labels.
Container for all witness polynomials used/constructed by the prover.
static constexpr size_t NUM_ALL_ENTITIES
static constexpr RepeatedCommitmentsData REPEATED_COMMITMENTS
static void set_minicircuit_evaluations(AllEntities< FFType > &evals, const std::array< FFType, NUM_MINICIRCUIT_EVALUATIONS > &mid)
Verifier: place the 154 raw mid-sumcheck minicircuit wire evaluations into AllEntities.
static constexpr size_t NUM_FULL_CIRCUIT_EVALUATIONS
static constexpr size_t NUM_MINICIRCUIT_EVALUATIONS
static constexpr size_t LOG_MINI_CIRCUIT_SIZE
static constexpr size_t NUM_LIMB_BITS
std::tuple< TranslatorPermutationRelation< FF >, TranslatorDeltaRangeConstraintRelation< FF >, TranslatorOpcodeConstraintRelation< FF >, TranslatorAccumulatorTransferRelation< FF >, TranslatorDecompositionRelation< FF >, TranslatorNonNativeFieldRelation< FF >, TranslatorZeroConstraintsRelation< FF > > Relations_
FixedVKAndHash_< VKEntities< Commitment >, FF, TranslatorHardcodedVKAndHash > VerificationKey
The verification key stores commitments to the precomputed polynomials used by the verifier.
static constexpr size_t NUM_SUBRELATIONS
static void complete_full_circuit_evaluations(AllEntities< FFType > &evals, const std::array< FFType, NUM_FULL_CIRCUIT_EVALUATIONS > &full_circuit, std::span< const FFType > challenge)
Verifier: complete full-circuit evaluations from received array and challenge.
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
A field element for each entity of the flavor. These entities represent the prover polynomials evalua...
The recursive counterpart of the native Translator flavor.
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH
std::array< FF, NUM_SUBRELATIONS - 1 > SubrelationSeparators
TranslatorFlavor::Relations_< FF > Relations
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr RepeatedCommitmentsData REPEATED_COMMITMENTS
static constexpr size_t NUM_FULL_CIRCUIT_EVALUATIONS
static void set_minicircuit_evaluations(NativeFlavor::AllEntities< FFType > &evals, const std::array< FFType, NUM_MINICIRCUIT_EVALUATIONS > &mid)
static constexpr size_t NUM_MINICIRCUIT_EVALUATIONS
static void complete_full_circuit_evaluations(NativeFlavor::AllEntities< FFType > &evals, const std::array< FFType, NUM_FULL_CIRCUIT_EVALUATIONS > &full_circuit, std::span< const FFType > challenge)
Wrapper holding a verification key and its precomputed hash.
Definition flavor.hpp:541
Base class templates shared across Honk flavors.
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
BaseTranscript< stdlib::StdlibCodec< stdlib::field_t< UltraCircuitBuilder > >, stdlib::poseidon2< UltraCircuitBuilder > > UltraStdlibTranscript
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
field_t< CircuitBuilder > ScalarField
Definition bn254.hpp:30
Group::BaseField BaseField
Definition bn254.hpp:32
Group AffineElement
Definition bn254.hpp:34