19template <
typename Builder>
38 size_t public_inputs_size,
45 BB_ASSERT_EQ(proof_size, ClientIVCRecursiveVerifier::StdlibProof::PROOF_LENGTH_WITHOUT_PUB_INPUTS());
47 size_t num_inner_public_inputs = public_inputs_size - IO::PUBLIC_INPUTS_SIZE;
48 uint32_t pub_inputs_offset = MegaZKFlavor::has_zero_row ? 1 : 0;
52 auto honk_vk = create_mock_honk_vk<MegaZKFlavor, IO>(
53 1 << MegaZKFlavor::VIRTUAL_LOG_N, pub_inputs_offset, num_inner_public_inputs);
57 for (
auto& vk_element : honk_vk->to_field_elements()) {
58 builder.set_variable(key_fields[
offset].witness_index, vk_element);
63 bb::HonkProof civc_proof = create_mock_civc_proof<Builder>(num_inner_public_inputs);
67 for (
auto& proof_element : civc_proof) {
68 builder.set_variable(proof_fields[
offset].witness_index, proof_element);
84[[nodiscard(
"IPA claim and Pairing points should be accumulated")]] HonkRecursionConstraintOutput<Builder>
87 bool has_valid_witness_assignments)
97 std::vector<uint32_t> proof_indices =
105 if (!has_valid_witness_assignments) {
106 size_t total_pub_inputs_size = input.
public_inputs.size() + IO::PUBLIC_INPUTS_SIZE;
107 size_t proof_size_without_pub_inputs = input.
proof.size() - IO::PUBLIC_INPUTS_SIZE;
110 builder, proof_size_without_pub_inputs, total_pub_inputs_size, key_fields, proof_fields);
#define BB_ASSERT_EQ(actual, expected,...)
static field_t from_witness_index(Builder *ctx, uint32_t witness_index)
Output verify(const StdlibProof &)
Creates a circuit that executes the ClientIvc verification algorithm.
RecursiveFlavor::VerificationKey RecursiveVK
RecursiveDeciderVerificationKeys::VKAndHash RecursiveVKAndHash
Manages the data that is propagated on the public inputs of a hiding kernel circuit.
UltraKeccakFlavor::VerificationKey VerificationKey
Entry point for Barretenberg command-line interface.
std::vector< fr > HonkProof
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
OpeningClaim< Curve > opening_claim
stdlib::Proof< Builder > ipa_proof
PairingAccumulator points_accumulator
OpeningClaim< grumpkin< Builder > > ipa_claim
PairingPoints< Builder > points_accumulator
stdlib::Proof< Builder > ipa_proof