47 static constexpr bool HasZK =
false;
83 static constexpr size_t NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>();
99 static constexpr size_t NUM_FRS_COM = field_conversion::calc_num_bn254_frs<Commitment>();
100 static constexpr size_t NUM_FRS_FR = field_conversion::calc_num_bn254_frs<FF>();
109 "\n The constant AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED is now too short\n"
110 "as is smaller than the real AVM v2 proof. Increase the padded constant \n"
111 "in constants.nr accordingly.");
152 template <
typename DataType,
typename PrecomputedAndWitnessEntitiesSuperset>
159 template <
typename DataType>
170 template <
typename DataType_>
185 static const auto labels =
249 for (
auto [polynomial, commitment] :
250 zip_view(proving_key->get_precomputed_polynomials(), this->get_all())) {
251 commitment = proving_key->commitment_key.commit(polynomial);
258 for (
auto [vk_cmt, cmt] :
zip_view(this->get_all(), precomputed_cmts)) {
269 [[maybe_unused]]
Transcript& transcript)
const override
271 throw_or_abort(
"Not intended to be used because vk is hardcoded in circuit.");
331 template <
size_t LENGTH,
size_t SKIP_COUNT>
346 template <
typename Commitment_,
typename VerificationKey>
#define AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
CommitmentKey object over a pairing group 𝔾₁.
Base Native verification key class.
uint64_t log_circuit_size
A template class for a reference array. Behaves as if std::array<T&, N> was possible.
DataType & get(ColumnAndShifts c)
static const auto & get_unshifted_labels()
const DataType & get(ColumnAndShifts c) const
PartiallyEvaluatedMultivariates()=default
PolynomialEntitiesAtFixedRow(const size_t row_idx, const Polynomials &pp)
const auto & get(ColumnAndShifts c) const
A container for the prover polynomials handles.
PolynomialEntitiesAtFixedRow< ProverPolynomials > get_row(size_t row_idx) const
ProverPolynomials & operator=(ProverPolynomials &&o) noexcept=default
~ProverPolynomials()=default
ProverPolynomials & operator=(const ProverPolynomials &)=delete
ProverPolynomials()=default
ProverPolynomials(const ProverPolynomials &o)=delete
ProverPolynomials(ProverPolynomials &&o) noexcept=default
std::vector< FF > public_inputs
CommitmentKey commitment_key
auto get_witness_polynomials()
auto get_precomputed_polynomials()
DEFINE_COMPOUND_GET_ALL(PrecomputedEntities< Polynomial >, WitnessEntities< Polynomial >)
typename Polynomial::FF FF
std::vector< Commitment > gemini_fold_comms
void serialize_full_transcript()
std::array< FF, NUM_ALL_ENTITIES > sumcheck_evaluations
std::array< Commitment, NUM_WITNESS_ENTITIES > commitments
void deserialize_full_transcript()
std::vector< bb::Univariate< FF, BATCHED_RELATION_PARTIAL_LENGTH > > sumcheck_univariates
std::vector< FF > gemini_fold_evals
Commitment shplonk_q_comm
static constexpr size_t NUM_PRECOMPUTED_COMMITMENTS
fr hash_through_transcript(const std::string &domain_separator, Transcript &transcript) const override
Unimplemented because AVM VK is hardcoded so hash does not need to be computed. Rather,...
std::vector< fr > to_field_elements() const override
Serialize verification key to field elements.
VerificationKey()=default
VerificationKey(const std::shared_ptr< ProvingKey > &proving_key)
VerificationKey(std::array< Commitment, NUM_PRECOMPUTED_COMMITMENTS > const &precomputed_cmts)
VerifierCommitments_(const std::shared_ptr< VerificationKey > &verification_key)
static const auto & get_derived_labels()
static const auto & get_wires_labels()
AvmFlavorSettings::GroupElement GroupElement
tuple_cat_t< MainRelations_< FF_ >, LookupRelations_< FF_ > > Relations_
static auto get_to_be_shifted(PrecomputedAndWitnessEntitiesSuperset &entities)
static constexpr size_t COMPUTED_AVM_PROOF_LENGTH_IN_FIELDS
AvmFlavorSettings::PolynomialHandle PolynomialHandle
static constexpr size_t NUM_SUBRELATIONS
static constexpr size_t NUM_SHIFTED_ENTITIES
AvmFlavorSettings::CommitmentHandle CommitmentHandle
std::array< FF, NUM_SUBRELATIONS - 1 > SubrelationSeparators
static constexpr size_t NUM_FRS_FR
static constexpr bool USE_PADDING
static constexpr size_t MAX_CHUNK_THREAD_PORTION_SIZE
static constexpr bool HasZK
static constexpr size_t NUM_RELATIONS
static constexpr size_t NUM_WITNESS_ENTITIES
static constexpr size_t MAX_PARTIAL_RELATION_LENGTH
static constexpr size_t NUM_WIRES
static constexpr bool USE_SHORT_MONOMIALS
static constexpr size_t BATCHED_RELATION_PARTIAL_LENGTH
static constexpr size_t NUM_FRS_COM
static constexpr size_t NUM_PRECOMPUTED_ENTITIES
AvmFlavorSettings::Commitment Commitment
static constexpr size_t NUM_ALL_ENTITIES
Relations_< FF > Relations
static constexpr bool has_zero_row
bb::VerifierCommitmentKey< Curve > VerifierCommitmentKey
G1::affine_element CommitmentHandle
G1::affine_element Commitment
bb::Polynomial< FF > Polynomial
std::span< FF > PolynomialHandle
bb::CommitmentKey< Curve > CommitmentKey
#define AVM2_DERIVED_WITNESS_ENTITIES
#define AVM2_SHIFTED_ENTITIES
#define AVM2_TO_BE_SHIFTED_E(e)
#define AVM2_WIRE_ENTITIES
#define AVM2_PRECOMPUTED_ENTITIES
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
#define DEFINE_FLAVOR_MEMBERS(DataType,...)
Define the body of a flavor class, included each member and a pointer view with which to iterate the ...
#define DEFINE_COMPOUND_GET_ALL(...)
auto & get_entity_by_column(Entities &entities, ColumnAndShifts c)
decltype(flat_tuple::tuple_cat(std::declval< input_t >()...)) tuple_cat_t
constexpr size_t MAX_AVM_TRACE_LOG_SIZE
constexpr size_t MAX_AVM_TRACE_SIZE
RefArray< T,(Ns+...)> constexpr concatenate(const RefArray< T, Ns > &... ref_arrays)
Concatenates multiple RefArray objects into a single RefArray.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
constexpr auto tuple_cat(T &&... ts)
static constexpr size_t NUM_SHIFTED_ENTITIES
static constexpr size_t NUM_WIRES
static constexpr size_t NUM_ALL_ENTITIES
static constexpr size_t NUM_PRECOMPUTED_ENTITIES
static constexpr size_t NUM_WITNESS_ENTITIES
void throw_or_abort(std::string const &err)