74 auto inner_verification_key =
76 InnerProver inner_prover(inner_prover_instance, inner_verification_key);
79 auto stdlib_vk_and_hash =
84 recursive_transcript->enable_manifest();
89 native_transcript->enable_manifest();
90 InnerVerifier native_verifier(inner_vk_and_hash, native_transcript);
91 auto native_result = native_verifier.
verify_proof(inner_proof);
92 if (!native_result.result) {
93 throw std::runtime_error(
"Inner proof verification failed");
96 StdlibProof stdlib_inner_proof(outer_circuit, inner_proof);
103 return outer_circuit;
Manages the data that is propagated on the public inputs of an application/function circuit.
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
typename InnerFlavor::CircuitBuilder InnerBuilder
static OuterBuilder generate(uint256_t inputs[])
Generate a recursive circuit.
typename RecursiveVerifier::VerificationKey VerificationKey
bb::stdlib::public_witness_t< OuterBuilder > public_witness_ct
InnerFlavor::Commitment InnerCommitment
typename RecursiveFlavor::CircuitBuilder OuterBuilder
static InnerBuilder create_inner_circuit(uint256_t inputs[])
Create a inner circuit object. In this case an extremely simple circuit that just adds two numbers.
Curve::AffineElement Commitment
UltraCircuitBuilder CircuitBuilder
The recursive counterpart to the "native" Ultra flavor.
BuilderType CircuitBuilder
typename Flavor::VerificationKey VerificationKey
Output verify_proof(const Proof &proof)
Perform ultra verification.
A simple wrapper around a vector of stdlib field elements representing a proof.
void assert_equal(const field_t &rhs, std::string const &msg="field_t::assert_equal") const
Copy constraint: constrain that *this field is equal to rhs element.
Manages the data that is propagated on the public inputs of an application/function circuit.
void set_public()
Set each IO component to be a public input of the underlying circuit.
PairingInputs pairing_inputs
static void add_default(Builder &builder)
Add default public inputs when they are not present.
Base class templates for structures that contain data parameterized by the fundamental polynomials of...
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Output type for recursive ultra verification.
PairingPoints< Curve > points_accumulator