38 const size_t NUM_CIRCUITS = circuit_producer.total_num_circuits;
39 Chonk ivc{ NUM_CIRCUITS };
41 for (
size_t idx = 0; idx < NUM_CIRCUITS; ++idx) {
42 circuit_producer.construct_and_accumulate_next_circuit(ivc);
45 return { ivc.
prove(), ivc.get_hiding_kernel_vk_and_hash() };
55 auto [proof, vk_and_hash] = construct_chonk_prover_output();
59 EXPECT_TRUE(verifier.
verify(proof));
71 auto [proof, native_vk_and_hash] = construct_chonk_prover_output();
79 StdlibProof stdlib_proof(
builder, proof);
80 ChonkRecVerifierOutput output = verifier.verify(stdlib_proof);
87 info(
"Recursive Verifier: finalized num gates = ",
builder.num_gates());
The IVC scheme used by the aztec client for private function execution.
ChonkProof prove()
Construct Chonk proof, which, if verified, fully establishes the correctness of RCG.
Verifier for Chonk IVC proofs (both native and recursive).
std::conditional_t< IsRecursive, ReductionResult, bool > Output
Output verify(const Proof &proof)
Verify a Chonk proof.
MegaFlavor::VKAndHash VKAndHash
static bool check(const Builder &circuit)
Check the witness satisifies the circuit.
UltraRollupFlavor extends UltraFlavor with IPA proof support.
The recursive counterpart to the "native" UltraRollupFlavor.
UltraRollupFlavor NativeFlavor
Wrapper holding a verification key and its precomputed hash.
PrivateFunctionExecutionMockCircuitProducer MockCircuitProducer
static void SetUpTestSuite()
static ChonkProverOutput construct_chonk_prover_output(const size_t num_app_circuits=1)
Construct a genuine Chonk prover output based on accumulation of an arbitrary set of mock circuits.
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.
ChonkProof_< true > ChonkStdlibProof
ChonkProof_< false > ChonkProof
ChonkVerifier< true > ChonkRecursiveVerifier
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
An object storing two EC points that represent the inputs to a pairing check.
std::shared_ptr< VKAndHash > vk_and_hash