50 static constexpr bool HasZK =
false;
84 static constexpr size_t NUM_SUBRELATIONS = compute_number_of_subrelations<Relations>();
100 static constexpr size_t NUM_FRS_COM = FrCodec::calc_num_fields<Commitment>();
101 static constexpr size_t NUM_FRS_FR = FrCodec::calc_num_fields<FF>();
110 "\n The constant AVM_V2_PROOF_LENGTH_IN_FIELDS_PADDED is now too short\n"
111 "as is smaller than the real AVM v2 proof. Increase the padded constant \n"
112 "in constants.nr accordingly.");
227 :
public NativeVerificationKey_<PrecomputedEntities<Commitment>, Transcript, VKSerializationMode::NO_METADATA> {
236 for (
auto [polynomial, commitment] :
zip_view(proving_key->get_precomputed(), this->get_all())) {
237 commitment = proving_key->commitment_key.commit(polynomial);
244 for (
auto [vk_cmt, cmt] :
zip_view(this->get_all(), precomputed_cmts)) {
254 [[maybe_unused]]
Transcript& transcript)
const override
256 throw_or_abort(
"Not intended to be used because vk is hardcoded in circuit.");
308 :
private AllEntities<std::unique_ptr<bb::Univariate<FF, MAX_PARTIAL_RELATION_LENGTH>>> {
338 template <
typename Commitment_,
typename VerificationKey>
346 for (
auto [commitment,
vk_commitment] :
zip_view(this->get_precomputed(), verification_key->get_all())) {
#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 univariate polynomial represented by its values on {domain_start, domain_start + 1,...
DEFINE_AVM_GETTER(unshifted, UNSHIFTED_START_IDX, NUM_UNSHIFTED_ENTITIES)
DEFINE_AVM_GETTER(precomputed, PRECOMPUTED_START_IDX, NUM_PRECOMPUTED_ENTITIES)
std::span< DataType > get_all()
std::span< const DataType > get_all() const
std::span< const std::string > get_labels() const
DEFINE_AVM_GETTER(witness, WITNESS_START_IDX, NUM_WITNESS_ENTITIES)
DEFINE_AVM_GETTER(wires, WIRE_START_IDX, NUM_WIRE_ENTITIES)
DataType & get(ColumnAndShifts c)
const DataType & get(ColumnAndShifts c) const
DEFINE_AVM_GETTER(to_be_shifted, WIRES_TO_BE_SHIFTED_START_IDX, NUM_WIRES_TO_BE_SHIFTED)
DEFINE_AVM_GETTER(derived, DERIVED_START_IDX, NUM_DERIVED_ENTITIES)
std::array< DataType, NUM_ALL_ENTITIES > entities
DEFINE_AVM_GETTER(shifted, SHIFTED_START_IDX, NUM_SHIFTED_ENTITIES)
A container for univariates used during sumcheck.
const ProverPolynomials & multivariates
const bb::Univariate< FF, MAX_PARTIAL_RELATION_LENGTH > & get(ColumnAndShifts c) const
LazilyExtendedProverUnivariates(const ProverPolynomials &multivariates)
void set_current_edge(size_t edge_idx)
PolynomialEntitiesAtFixedRow(const size_t row_idx, const Polynomials &pp)
const auto & get(ColumnAndShifts c) const
std::span< const std::string > get_labels() const
std::span< DataType > get_all()
std::span< const DataType > get_all() 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
std::span< const Polynomial > get_all() const
std::span< Polynomial > get_all()
static constexpr size_t log_circuit_size
static constexpr size_t circuit_size
std::span< const std::string > get_labels() const
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,...
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)
std::span< const std::string > get_labels() const
std::span< DataType > get_all()
std::span< const DataType > get_all() const
AvmFlavorSettings::GroupElement GroupElement
static constexpr bool IS_AVM
tuple_cat_t< MainRelations_< FF_ >, LookupRelations_< FF_ > > Relations_
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
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
constexpr auto NUM_WIRE_ENTITIES
decltype(flat_tuple::tuple_cat(std::declval< input_t >()...)) tuple_cat_t
constexpr auto NUM_UNSHIFTED_ENTITIES
constexpr std::size_t MAX_AVM_TRACE_SIZE
constexpr auto WITNESS_START_IDX
constexpr auto NUM_WIRES_TO_BE_SHIFTED
constexpr std::size_t MAX_AVM_TRACE_LOG_SIZE
constexpr auto NUM_DERIVED_ENTITIES
constexpr auto WIRES_TO_BE_SHIFTED_START_IDX
constexpr auto DERIVED_START_IDX
const std::vector< std::string > & COLUMN_NAMES
constexpr auto PRECOMPUTED_START_IDX
constexpr auto UNSHIFTED_START_IDX
constexpr auto WIRE_START_IDX
constexpr auto SHIFTED_START_IDX
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)