Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
AcirHonkRecursionConstraint< RecursiveFlavor > Class Template Reference
Inheritance diagram for AcirHonkRecursionConstraint< RecursiveFlavor >:

Public Types

using InnerFlavor = typename RecursiveFlavor::NativeFlavor
 
using InnerBuilder = typename InnerFlavor::CircuitBuilder
 
using InnerDeciderProvingKey = DeciderProvingKey_< InnerFlavor >
 
using InnerProver = bb::UltraProver_< InnerFlavor >
 
using InnerVerificationKey = typename InnerFlavor::VerificationKey
 
using InnerVerifier = bb::UltraVerifier_< InnerFlavor >
 
using OuterBuilder = typename RecursiveFlavor::CircuitBuilder
 
using OuterFlavor = std::conditional_t< IsMegaBuilder< OuterBuilder >, MegaFlavor, std::conditional_t< HasIPAAccumulator< InnerFlavor >, UltraRollupFlavor, UltraFlavor > >
 
using OuterDeciderProvingKey = DeciderProvingKey_< OuterFlavor >
 
using OuterProver = bb::UltraProver_< OuterFlavor >
 
using OuterVerificationKey = typename OuterFlavor::VerificationKey
 
using OuterVerifier = bb::UltraVerifier_< OuterFlavor >
 

Public Member Functions

InnerBuilder create_inner_circuit ()
 
template<typename BuilderType >
BuilderType create_outer_circuit (std::vector< InnerBuilder > &inner_circuits, bool dummy_witnesses=false)
 Create a circuit that recursively verifies one or more circuits.
 
bool verify_proof (const std::shared_ptr< OuterDeciderProvingKey > &proving_key, const std::shared_ptr< OuterVerificationKey > &verification_key, const HonkProof &proof)
 

Static Protected Member Functions

static void SetUpTestSuite ()
 

Detailed Description

template<typename RecursiveFlavor>
class AcirHonkRecursionConstraint< RecursiveFlavor >

Definition at line 17 of file honk_recursion_constraint.test.cpp.

Member Typedef Documentation

◆ InnerBuilder

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::InnerBuilder = typename InnerFlavor::CircuitBuilder

Definition at line 21 of file honk_recursion_constraint.test.cpp.

◆ InnerDeciderProvingKey

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::InnerDeciderProvingKey = DeciderProvingKey_<InnerFlavor>

Definition at line 22 of file honk_recursion_constraint.test.cpp.

◆ InnerFlavor

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::InnerFlavor = typename RecursiveFlavor::NativeFlavor

Definition at line 20 of file honk_recursion_constraint.test.cpp.

◆ InnerProver

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::InnerProver = bb::UltraProver_<InnerFlavor>

Definition at line 23 of file honk_recursion_constraint.test.cpp.

◆ InnerVerificationKey

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::InnerVerificationKey = typename InnerFlavor::VerificationKey

Definition at line 24 of file honk_recursion_constraint.test.cpp.

◆ InnerVerifier

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::InnerVerifier = bb::UltraVerifier_<InnerFlavor>

Definition at line 25 of file honk_recursion_constraint.test.cpp.

◆ OuterBuilder

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::OuterBuilder = typename RecursiveFlavor::CircuitBuilder

Definition at line 26 of file honk_recursion_constraint.test.cpp.

◆ OuterDeciderProvingKey

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::OuterDeciderProvingKey = DeciderProvingKey_<OuterFlavor>

Definition at line 31 of file honk_recursion_constraint.test.cpp.

◆ OuterFlavor

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::OuterFlavor = std::conditional_t<IsMegaBuilder<OuterBuilder>, MegaFlavor, std::conditional_t<HasIPAAccumulator<InnerFlavor>, UltraRollupFlavor, UltraFlavor> >

Definition at line 27 of file honk_recursion_constraint.test.cpp.

◆ OuterProver

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::OuterProver = bb::UltraProver_<OuterFlavor>

Definition at line 32 of file honk_recursion_constraint.test.cpp.

◆ OuterVerificationKey

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::OuterVerificationKey = typename OuterFlavor::VerificationKey

Definition at line 33 of file honk_recursion_constraint.test.cpp.

◆ OuterVerifier

template<typename RecursiveFlavor >
using AcirHonkRecursionConstraint< RecursiveFlavor >::OuterVerifier = bb::UltraVerifier_<OuterFlavor>

Definition at line 34 of file honk_recursion_constraint.test.cpp.

Member Function Documentation

◆ create_inner_circuit()

template<typename RecursiveFlavor >
InnerBuilder AcirHonkRecursionConstraint< RecursiveFlavor >::create_inner_circuit ( )
inline

constraints produced by Noir program: fn main(x : u32, y : pub u32) { let z = x ^ y;

constrain z != 10; }

Definition at line 36 of file honk_recursion_constraint.test.cpp.

◆ create_outer_circuit()

template<typename RecursiveFlavor >
template<typename BuilderType >
BuilderType AcirHonkRecursionConstraint< RecursiveFlavor >::create_outer_circuit ( std::vector< InnerBuilder > &  inner_circuits,
bool  dummy_witnesses = false 
)
inline

Create a circuit that recursively verifies one or more circuits.

This function is parametized by BuilderType because we want to use this function to produce Ultra/UltraRollup circuits sometimes and also Mega circuits other times.

Template Parameters
BuilderType
Parameters
inner_circuits
Returns
Composer

Definition at line 140 of file honk_recursion_constraint.test.cpp.

◆ SetUpTestSuite()

template<typename RecursiveFlavor >
static void AcirHonkRecursionConstraint< RecursiveFlavor >::SetUpTestSuite ( )
inlinestaticprotected

Definition at line 229 of file honk_recursion_constraint.test.cpp.

◆ verify_proof()

template<typename RecursiveFlavor >
bool AcirHonkRecursionConstraint< RecursiveFlavor >::verify_proof ( const std::shared_ptr< OuterDeciderProvingKey > &  proving_key,
const std::shared_ptr< OuterVerificationKey > &  verification_key,
const HonkProof proof 
)
inline

Definition at line 208 of file honk_recursion_constraint.test.cpp.


The documentation for this class was generated from the following file: