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

Public Types

using Builder = MegaCircuitBuilder
 
using Flavor = MegaFlavor
 
using VerificationKey = MegaFlavor::VerificationKey
 
using FF = Flavor::FF
 
using VerifierInputs = ClientIVC::VerifierInputs
 
using QUEUE_TYPE = ClientIVC::QUEUE_TYPE
 
using VerificationQueue = ClientIVC::VerificationQueue
 
using ArithmeticConstraint = AcirFormat::PolyTripleConstraint
 
using PairingPoints = ClientIVC::PairingPoints
 

Static Public Member Functions

static Builder construct_mock_app_circuit (const std::shared_ptr< ClientIVC > &ivc)
 Constuct a simple arbitrary circuit to represent a mock app circuit.
 
static std::shared_ptr< VerificationKeyget_verification_key (Builder &builder_in, const TraceSettings &trace_settings)
 
static void construct_and_accumulate_trailing_kernels (const std::shared_ptr< ClientIVC > &ivc, TraceSettings trace_settings)
 
static UltraCircuitBuilder create_inner_circuit (size_t log_num_gates=10)
 
static Builder construct_mock_UH_recursion_app_circuit (const std::shared_ptr< ClientIVC > &ivc, const bool tamper_vk)
 Constuct a mock app circuit with a UH recursive verifier.
 
static RecursionConstraint create_recursion_constraint (const VerifierInputs &input, SlabVector< 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< ClientIVC > ivc, TraceSettings trace_settings)
 
static void construct_and_accumulate_mock_app (std::shared_ptr< ClientIVC > ivc, TraceSettings trace_settings)
 
static std::shared_ptr< ClientIVC::MegaVerificationKeyconstruct_kernel_vk_from_acir_program (AcirProgram &program, const TraceSettings &trace_settings)
 Construct a kernel circuit VK from an acir program with IVC recursion constraints.
 
static std::shared_ptr< ClientIVC::MegaVerificationKeyget_kernel_vk_from_circuit (Builder &kernel, TraceSettings trace_settings)
 

Static Public Attributes

static constexpr size_t NUM_TRAILING_KERNELS = 3
 

Protected Member Functions

void SetUp () override
 

Detailed Description

Definition at line 19 of file pg_recursion_constraint.test.cpp.

Member Typedef Documentation

◆ ArithmeticConstraint

◆ Builder

◆ FF

◆ Flavor

◆ PairingPoints

◆ QUEUE_TYPE

◆ VerificationKey

◆ VerificationQueue

◆ VerifierInputs

Member Function Documentation

◆ construct_and_accumulate_mock_app()

static void IvcRecursionConstraintTest::construct_and_accumulate_mock_app ( std::shared_ptr< ClientIVC ivc,
TraceSettings  trace_settings 
)
inlinestatic

Definition at line 251 of file pg_recursion_constraint.test.cpp.

◆ construct_and_accumulate_mock_kernel()

static void IvcRecursionConstraintTest::construct_and_accumulate_mock_kernel ( std::shared_ptr< ClientIVC ivc,
TraceSettings  trace_settings 
)
inlinestatic

Definition at line 241 of file pg_recursion_constraint.test.cpp.

◆ construct_and_accumulate_trailing_kernels()

static void IvcRecursionConstraintTest::construct_and_accumulate_trailing_kernels ( const std::shared_ptr< ClientIVC > &  ivc,
TraceSettings  trace_settings 
)
inlinestatic

Definition at line 64 of file pg_recursion_constraint.test.cpp.

◆ construct_kernel_vk_from_acir_program()

static std::shared_ptr< ClientIVC::MegaVerificationKey > IvcRecursionConstraintTest::construct_kernel_vk_from_acir_program ( AcirProgram program,
const TraceSettings trace_settings 
)
inlinestatic

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

Parameters
programAcir program representing a kernel circuit
trace_settingsneeded for construction of the VK
Returns
std::shared_ptr<ClientIVC::MegaVerificationKey>

Definition at line 265 of file pg_recursion_constraint.test.cpp.

◆ construct_mock_app_circuit()

static Builder IvcRecursionConstraintTest::construct_mock_app_circuit ( const std::shared_ptr< ClientIVC > &  ivc)
inlinestatic

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

Definition at line 38 of file pg_recursion_constraint.test.cpp.

◆ construct_mock_kernel_program()

static AcirProgram IvcRecursionConstraintTest::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 220 of file pg_recursion_constraint.test.cpp.

◆ construct_mock_UH_recursion_app_circuit()

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

Constuct a mock app circuit with a UH recursive verifier.

Definition at line 114 of file pg_recursion_constraint.test.cpp.

◆ create_inner_circuit()

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

Definition at line 84 of file pg_recursion_constraint.test.cpp.

◆ create_recursion_constraint()

static RecursionConstraint IvcRecursionConstraintTest::create_recursion_constraint ( const VerifierInputs input,
SlabVector< 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 167 of file pg_recursion_constraint.test.cpp.

◆ get_kernel_vk_from_circuit()

static std::shared_ptr< ClientIVC::MegaVerificationKey > IvcRecursionConstraintTest::get_kernel_vk_from_circuit ( Builder kernel,
TraceSettings  trace_settings 
)
inlinestatic

Definition at line 277 of file pg_recursion_constraint.test.cpp.

◆ get_verification_key()

static std::shared_ptr< VerificationKey > IvcRecursionConstraintTest::get_verification_key ( Builder builder_in,
const TraceSettings trace_settings 
)
inlinestatic

Definition at line 47 of file pg_recursion_constraint.test.cpp.

◆ SetUp()

void IvcRecursionConstraintTest::SetUp ( )
inlineoverrideprotected

Definition at line 286 of file pg_recursion_constraint.test.cpp.

Member Data Documentation

◆ NUM_TRAILING_KERNELS

constexpr size_t IvcRecursionConstraintTest::NUM_TRAILING_KERNELS = 3
staticconstexpr

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


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