39 const bool verified = prover.
verify(proof, public_inputs);
40 EXPECT_TRUE(verified) <<
"native proof verification failed";
43 public_inputs_flat.resize(AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH,
FF::zero());
45 return { proof, public_inputs_flat };
56 GTEST_SKIP() <<
"Skipping slow test";
59 auto [proof, public_inputs_flat] = create_avm_data();
64 stdlib_public_inputs_flat.reserve(AVM_PUBLIC_INPUTS_COLUMNS_COMBINED_LENGTH);
65 for (
const auto public_input : public_inputs_flat) {
69 stdlib_public_inputs_flat.back().fix_witness();
72 stdlib_proof.reserve(AVM_V2_PROOF_LENGTH_IN_FIELDS);
73 for (
const auto proof_element : proof) {
77 stdlib_proof.back().fix_witness();
81 PublicInputs::flat_to_columns<field_t<Builder>>(stdlib_public_inputs_flat);
84 auto output = goblin_avm_verifier.verify_proof(stdlib_proof, public_inputs);
96 output.points_accumulator.fix_witness();
101 auto verification_key =
109 ASSERT_TRUE(verified);
112 info(
"Recursive Verifier: num gates = ",
builder.num_gates());
114 auto variables_in_one_gate = graph.get_variables_in_one_gate();
115 EXPECT_EQ(variables_in_one_gate.size(), 0);
Contains all the information required by a Honk prover to create a proof, constructed from a finalize...
typename ExecutionTrace::FF FF
Output verify_proof(const Proof &proof)
Perform ultra verification.
bool verify(const Proof &proof, const PublicInputs &pi)
Proof prove(tracegen::TraceContainer &&trace)
Recursive verifier of AVM2 proofs that utilizes the Goblin mechanism for efficient EC operations.
A simple wrapper around a vector of stdlib field elements representing a proof.
static std::pair< AvmProver::Proof, std::vector< FF > > create_avm_data()
static void SetUpTestSuite()
The data that is propagated on the public inputs of a rollup circuit.
bool skip_slow_tests()
Check if slow tests should be skipped.
std::pair< tracegen::TraceContainer, PublicInputs > get_minimal_trace_with_pi()
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.
UltraCircuitBuilder_< UltraExecutionTraceBlocks > UltraCircuitBuilder
UltraStaticAnalyzer StaticAnalyzer
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
static constexpr field zero()