21 using NativeFF =
typename Flavor::Curve::ScalarFieldNative;
73 alphas[alpha_idx] = FF::from_witness(
builder, verification_key->alphas[alpha_idx]);
76 auto other_comms = verification_key->witness_commitments.get_all();
79 comm = Commitment::from_witness(
builder, other_comms[comm_idx]);
83 size_t challenge_idx = 0;
84 gate_challenges = std::vector<FF>(verification_key->gate_challenges.size());
86 challenge = FF::from_witness(
builder, verification_key->gate_challenges[challenge_idx]);
95 FF::from_witness(
builder, verification_key->relation_parameters.public_input_delta);
110 native_honk_vk->log_circuit_size =
static_cast<uint64_t
>(
vk_and_hash->vk->log_circuit_size.get_value());
111 native_honk_vk->num_public_inputs =
static_cast<uint64_t
>(
vk_and_hash->vk->num_public_inputs.get_value());
112 native_honk_vk->pub_inputs_offset =
static_cast<uint64_t
>(
vk_and_hash->vk->pub_inputs_offset.get_value());
114 for (
auto [
vk, final_decider_vk] :
zip_view(
vk_and_hash->vk->get_all(), native_honk_vk->get_all())) {
115 final_decider_vk =
vk.get_value();
122 inst_alpha = alpha.get_value();
125 for (
auto [comm, inst_comm] :
127 inst_comm = comm.get_value();
133 inst_challenge = challenge.get_value();
148 this->vk_and_hash->vk->log_circuit_size);
150 this->vk_and_hash->vk->num_public_inputs);
152 this->vk_and_hash->vk->pub_inputs_offset);
154 for (
const Commitment& commitment : this->vk_and_hash->vk->get_all()) {
163 this->relation_parameters.
eta_two);
168 this->relation_parameters.
gamma);
173 this->gate_challenges);
DataType hash_independent_buffer()
Hashes the independent hash buffer and clears it.
void add_to_independent_hash_buffer(const std::string &label, const T &element)
Adds an element to an independent hash buffer.
The DeciderVerificationKey encapsulates all the necessary information for a Mega Honk Verifier to ver...
RelationParameters< FF > relation_parameters
SubrelationSeparators alphas
std::vector< FF > gate_challenges
WitnessCommitments witness_commitments
A container for commitment labels.
The verification key is responsible for storing the commitments to the precomputed (non-witness) poly...
WitnessEntities< Commitment > WitnessCommitments
A container for the witness commitments.
std::array< FF, NUM_SUBRELATIONS - 1 > SubrelationSeparators
static constexpr size_t NUM_SUBRELATIONS
NativeTranscript Transcript
MegaCircuitBuilder CircuitBuilder
Curve::AffineElement Commitment
The stdlib counterpart of DeciderVerificationKey, used in recursive folding verification.
typename Flavor::VKAndHash VKAndHash
NativeDeciderVerificationKey get_value()
Return the underlying native DeciderVerificationKey.
typename Flavor::CommitmentLabels CommitmentLabels
RecursiveDeciderVerificationKey_(Builder *builder, std::shared_ptr< VKAndHash > vk_and_hash)
CommitmentLabels commitment_labels
typename Flavor::Curve::ScalarFieldNative NativeFF
RecursiveDeciderVerificationKey_(Builder *builder)
typename Flavor::NativeFlavor NativeFlavor
typename Flavor::NativeFlavor::VerificationKey NativeVerificationKey
RecursiveDeciderVerificationKey_(Builder *builder, std::shared_ptr< NativeVerificationKey > vk)
typename Flavor::WitnessCommitments WitnessCommitments
WitnessCommitments witness_commitments
typename Flavor::VerificationKey VerificationKey
std::vector< FF > gate_challenges
std::vector< FF > public_inputs
typename Flavor::Commitment Commitment
RelationParameters< FF > relation_parameters
FF hash_through_transcript(const std::string &domain_separator, Transcript &transcript) const
SubrelationSeparators alphas
typename NativeFlavor::VerifierCommitmentKey VerifierCommitmentKey
typename Flavor::CircuitBuilder Builder
typename Flavor::SubrelationSeparators SubrelationSeparators
typename Flavor::Transcript Transcript
RecursiveDeciderVerificationKey_(Builder *builder, std::shared_ptr< NativeDeciderVerificationKey > verification_key)
std::shared_ptr< VKAndHash > vk_and_hash
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
void hash(State &state) noexcept
VerifierCommitmentKey< Curve > vk
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Container for parameters used by the grand product (permutation, lookup) Honk relations.