7#include <gtest/gtest.h>
29 std::shared_ptr<MegaZKVerificationKey>
mega_vk;
35 static constexpr size_t NUM_APP_CIRCUITS = 1;
37 PrivateFunctionExecutionMockCircuitProducer circuit_producer(NUM_APP_CIRCUITS);
38 const size_t num_circuits = circuit_producer.total_num_circuits;
39 Chonk ivc{ num_circuits };
41 for (
size_t j = 0; j < num_circuits; ++j) {
42 circuit_producer.construct_and_accumulate_next_circuit(ivc);
46 return { ivc.get_hiding_kernel_vk_and_hash()->vk, proof };
56 chonk_data.
mega_vk->to_field_elements(),
59 static_cast<size_t>(chonk_data.
mega_vk->num_public_inputs) -
80 auto builder = create_circuit<Builder>(program, { .has_ipa_claim =
true });
85 return prover_instance;
99 std::shared_ptr<VerificationKey> vk_from_valid_witness;
101 AcirProgram program = create_acir_program(chonk_data);
102 auto prover_instance = get_chonk_recursive_verifier_pk(program);
115 std::shared_ptr<VerificationKey> vk_from_constraints;
117 AcirProgram program = create_acir_program(chonk_data);
119 auto prover_instance = get_chonk_recursive_verifier_pk(program);
123 EXPECT_EQ(*vk_from_valid_witness, *vk_from_constraints);
132 AcirProgram program = create_acir_program(chonk_data);
135 auto builder = create_circuit<Builder>(program, metadata);
static ChonkData get_chonk_data()
static void SetUpTestSuite()
Flavor::VerificationKey VerificationKey
MegaZKFlavor::VerificationKey MegaZKVerificationKey
static constexpr size_t PUBLIC_INPUTS_SIZE
static std::shared_ptr< ProverInstance > get_chonk_recursive_verifier_pk(AcirProgram &program)
static AcirProgram create_acir_program(const ChonkData &chonk_data)
The IVC scheme used by the aztec client for private function execution.
static constexpr size_t PUBLIC_INPUTS_SIZE
Base Native verification key class.
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
NativeVerificationKey_< PrecomputedEntities< Commitment >, Codec, HashFunction, CommitmentKey > VerificationKey
The verification key is responsible for storing the commitments to the precomputed (non-witnessk) pol...
UltraRollupFlavor extends UltraFlavor with IPA proof support.
Output verify_proof(const Proof &proof)
Perform ultra verification.
std::filesystem::path bb_crs_path()
void init_file_crs_factory(const std::filesystem::path &path)
TEST_F(BoomerangGoblinRecursiveVerifierTests, graph_description_basic)
Construct and check a goblin recursive verification circuit.
Entry point for Barretenberg command-line interface.
std::vector< fr > HonkProof
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
std::shared_ptr< MegaZKVerificationKey > mega_vk
std::vector< FF > to_field_elements() const
Serialize proof to field elements (native mode)
static constexpr field one()
static constexpr field zero()