22 using NativeFF =
typename Flavor::Curve::ScalarFieldNative;
81 alpha = FF::from_witness(
builder, verification_key->alpha);
83 auto other_comms = verification_key->witness_commitments.get_all();
86 comm = Commitment::from_witness(
builder, other_comms[comm_idx]);
89 size_t challenge_idx = 0;
90 gate_challenges = std::vector<FF>(verification_key->gate_challenges.size());
92 challenge = FF::from_witness(
builder, verification_key->gate_challenges[challenge_idx]);
101 FF::from_witness(
builder, verification_key->relation_parameters.public_input_delta);
104 if constexpr (NativeFlavor::HasZK) {
106 Commitment::from_witness(
builder, verification_key->gemini_masking_commitment);
122 native_honk_vk->log_circuit_size =
static_cast<uint64_t
>(
vk_and_hash->vk->log_circuit_size.get_value());
123 native_honk_vk->num_public_inputs =
static_cast<uint64_t
>(
vk_and_hash->vk->num_public_inputs.get_value());
124 native_honk_vk->pub_inputs_offset =
static_cast<uint64_t
>(
vk_and_hash->vk->pub_inputs_offset.get_value());
126 for (
auto [
vk, final_verifier_inst] :
zip_view(
vk_and_hash->vk->get_all(), native_honk_vk->get_all())) {
127 final_verifier_inst =
vk.get_value();
135 for (
auto [comm, inst_comm] :
137 inst_comm = comm.get_value();
142 inst_challenge = challenge.get_value();
153 if constexpr (NativeFlavor::HasZK) {
157 return verifier_inst;
A container for commitment labels.
The verification key is responsible for storing the commitments to the precomputed (non-witnessk) pol...
typename Curve::ScalarField FF
ECCVMCircuitBuilder CircuitBuilder
typename G1::affine_element Commitment
NativeTranscript Transcript
The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a ...
std::vector< FF > gate_challenges
WitnessCommitments witness_commitments
SubrelationSeparator alpha
Commitment gemini_masking_commitment
RelationParameters< FF > relation_parameters
The stdlib counterpart of VerifierInstance, used in recursive folding verification.
RecursiveVerifierInstance_(Builder *builder, std::shared_ptr< VKAndHash > vk_and_hash)
typename Flavor::VerificationKey VerificationKey
typename Flavor::Transcript Transcript
RecursiveVerifierInstance_(Builder *builder, std::shared_ptr< NativeVerifierInstance > verification_key)
WitnessCommitments witness_commitments
typename Flavor::VKAndHash VKAndHash
typename Flavor::NativeFlavor NativeFlavor
typename Flavor::CommitmentLabels CommitmentLabels
typename NativeFlavor::VerifierCommitmentKey VerifierCommitmentKey
typename Flavor::Curve::ScalarFieldNative NativeFF
std::shared_ptr< VKAndHash > vk_and_hash
typename Flavor::NativeFlavor::VerificationKey NativeVerificationKey
std::vector< FF > public_inputs
RecursiveVerifierInstance_(Builder *builder, std::shared_ptr< NativeVerificationKey > vk)
typename Flavor::SubrelationSeparator SubrelationSeparator
std::vector< FF > gate_challenges
SubrelationSeparator alpha
RecursiveVerifierInstance_(Builder *builder)
typename Flavor::Commitment Commitment
RelationParameters< FF > relation_parameters
NativeVerifierInstance get_value()
Return the underlying native VerifierInstance.
typename Flavor::CircuitBuilder Builder
typename Flavor::WitnessCommitments WitnessCommitments
Commitment gemini_masking_commitment
CommitmentLabels commitment_labels
std::shared_ptr< VerificationKey > get_vk() const
Get the verification key.
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.