Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
HypernovaRecursionConstraintTest Class Reference
Inheritance diagram for HypernovaRecursionConstraintTest:

Public Types

using Builder = MegaCircuitBuilder
 
using Flavor = MegaFlavor
 
using VerificationKey = MegaFlavor::VerificationKey
 
using FF = Flavor::FF
 
using VerifierInputs = Chonk::VerifierInputs
 
using QUEUE_TYPE = Chonk::QUEUE_TYPE
 
using VerificationQueue = Chonk::VerificationQueue
 
using PairingPoints = Chonk::PairingPoints
 

Static Public Member Functions

static Builder construct_mock_app_circuit (const std::shared_ptr< Chonk > &ivc)
 Constuct a simple arbitrary circuit to represent a mock app circuit.
 
static std::shared_ptr< VerificationKeyget_verification_key (Builder &builder_in)
 
static void construct_and_accumulate_trailing_kernels (const std::shared_ptr< Chonk > &ivc)
 
static UltraCircuitBuilder create_inner_circuit (size_t log_num_gates=10)
 
static Builder construct_mock_UH_recursion_app_circuit (const std::shared_ptr< Chonk > &ivc, const bool tamper_vk)
 Constuct a mock app circuit with a UH recursive verifier.
 
static RecursionConstraint create_recursion_constraint (const VerifierInputs &input, std::vector< FF > &witness)
 Create an ACIR RecursionConstraint given the corresponding verifier inputs.
 
static AcirProgram construct_mock_kernel_program (const VerificationQueue &verification_queue)
 Generate an acir program {constraints, witness} for a mock kernel.
 
static void construct_and_accumulate_mock_kernel (std::shared_ptr< Chonk > ivc)
 
static void construct_and_accumulate_mock_app (std::shared_ptr< Chonk > ivc)
 
static std::shared_ptr< Chonk::MegaVerificationKeyconstruct_kernel_vk_from_acir_program (AcirProgram &program)
 Construct a kernel circuit VK from an acir program with IVC recursion constraints.
 
static std::shared_ptr< Chonk::MegaVerificationKeyget_kernel_vk_from_circuit (Builder &kernel)
 

Static Public Attributes

static constexpr size_t NUM_TRAILING_KERNELS = 3
 

Protected Member Functions

void SetUp () override
 

Detailed Description

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

Member Typedef Documentation

◆ Builder

◆ FF

◆ Flavor

◆ PairingPoints

◆ QUEUE_TYPE

◆ VerificationKey

◆ VerificationQueue

◆ VerifierInputs

Member Function Documentation

◆ construct_and_accumulate_mock_app()

static void HypernovaRecursionConstraintTest::construct_and_accumulate_mock_app ( std::shared_ptr< Chonk ivc)
inlinestatic

Definition at line 247 of file hypernova_recursion_constraint.test.cpp.

◆ construct_and_accumulate_mock_kernel()

static void HypernovaRecursionConstraintTest::construct_and_accumulate_mock_kernel ( std::shared_ptr< Chonk ivc)
inlinestatic

Definition at line 237 of file hypernova_recursion_constraint.test.cpp.

◆ construct_and_accumulate_trailing_kernels()

static void HypernovaRecursionConstraintTest::construct_and_accumulate_trailing_kernels ( const std::shared_ptr< Chonk > &  ivc)
inlinestatic

Definition at line 63 of file hypernova_recursion_constraint.test.cpp.

◆ construct_kernel_vk_from_acir_program()

static std::shared_ptr< Chonk::MegaVerificationKey > HypernovaRecursionConstraintTest::construct_kernel_vk_from_acir_program ( AcirProgram program)
inlinestatic

Construct a kernel circuit VK from an acir program with IVC recursion constraints.

Parameters
programAcir program representing a kernel circuit
Returns
std::shared_ptr<Chonk::MegaVerificationKey>

Definition at line 260 of file hypernova_recursion_constraint.test.cpp.

◆ construct_mock_app_circuit()

static Builder HypernovaRecursionConstraintTest::construct_mock_app_circuit ( const std::shared_ptr< Chonk > &  ivc)
inlinestatic

Constuct a simple arbitrary circuit to represent a mock app circuit.

Definition at line 39 of file hypernova_recursion_constraint.test.cpp.

◆ construct_mock_kernel_program()

static AcirProgram HypernovaRecursionConstraintTest::construct_mock_kernel_program ( const VerificationQueue verification_queue)
inlinestatic

Generate an acir program {constraints, witness} for a mock kernel.

The IVC contains and internal verification queue that contains proofs to be recursively verified. Construct an AcirProgram with a RecursionConstraint for each entry in the ivc verification queue. (In practice these constraints would come directly from calls to verify_proof in noir).

Note
This method needs the number of public inputs in each proof-to-be-verified so they can be extracted and provided separately as is required in the acir constraint system.
Parameters
ivc
inner_circuit_num_pub_inputsNum pub inputs for each circuit whose accumulation is recursively verified
Returns
Builder

Definition at line 216 of file hypernova_recursion_constraint.test.cpp.

◆ construct_mock_UH_recursion_app_circuit()

static Builder HypernovaRecursionConstraintTest::construct_mock_UH_recursion_app_circuit ( const std::shared_ptr< Chonk > &  ivc,
const bool  tamper_vk 
)
inlinestatic

Constuct a mock app circuit with a UH recursive verifier.

Definition at line 110 of file hypernova_recursion_constraint.test.cpp.

◆ create_inner_circuit()

static UltraCircuitBuilder HypernovaRecursionConstraintTest::create_inner_circuit ( size_t  log_num_gates = 10)
inlinestatic

Definition at line 82 of file hypernova_recursion_constraint.test.cpp.

◆ create_recursion_constraint()

static RecursionConstraint HypernovaRecursionConstraintTest::create_recursion_constraint ( const VerifierInputs input,
std::vector< FF > &  witness 
)
inlinestatic

Create an ACIR RecursionConstraint given the corresponding verifier inputs.

In practice such constraints are created via a call to verify_proof(...) in noir

Parameters
inputbberg style proof and verification key
witnessArray of witnesses into which the above data is placed
Returns
RecursionConstraint

Definition at line 163 of file hypernova_recursion_constraint.test.cpp.

◆ get_kernel_vk_from_circuit()

static std::shared_ptr< Chonk::MegaVerificationKey > HypernovaRecursionConstraintTest::get_kernel_vk_from_circuit ( Builder kernel)
inlinestatic

Definition at line 271 of file hypernova_recursion_constraint.test.cpp.

◆ get_verification_key()

static std::shared_ptr< VerificationKey > HypernovaRecursionConstraintTest::get_verification_key ( Builder builder_in)
inlinestatic

Definition at line 48 of file hypernova_recursion_constraint.test.cpp.

◆ SetUp()

void HypernovaRecursionConstraintTest::SetUp ( )
inlineoverrideprotected

Definition at line 279 of file hypernova_recursion_constraint.test.cpp.

Member Data Documentation

◆ NUM_TRAILING_KERNELS

constexpr size_t HypernovaRecursionConstraintTest::NUM_TRAILING_KERNELS = 3
staticconstexpr

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


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