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

Public Types

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

Static Public Member Functions

static Builder construct_mock_app_circuit (const std::shared_ptr< SumcheckClientIVC > &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< SumcheckClientIVC > &ivc)
 
static UltraCircuitBuilder create_inner_circuit (size_t log_num_gates=10)
 
static Builder construct_mock_UH_recursion_app_circuit (const std::shared_ptr< SumcheckClientIVC > &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< SumcheckClientIVC > ivc)
 
static void construct_and_accumulate_mock_app (std::shared_ptr< SumcheckClientIVC > ivc)
 
static std::shared_ptr< SumcheckClientIVC::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< SumcheckClientIVC::MegaVerificationKeyget_kernel_vk_from_circuit (Builder &kernel)
 

Static Public Attributes

static constexpr size_t NUM_TRAILING_KERNELS = 3
 

Protected Member Functions

void SetUp () override
 
void TearDown () override
 

Detailed Description

Definition at line 20 of file sumcheck_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 SumcheckIvcRecursionConstraintTest::construct_and_accumulate_mock_app ( std::shared_ptr< SumcheckClientIVC ivc)
inlinestatic

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

◆ construct_and_accumulate_mock_kernel()

static void SumcheckIvcRecursionConstraintTest::construct_and_accumulate_mock_kernel ( std::shared_ptr< SumcheckClientIVC ivc)
inlinestatic

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

◆ construct_and_accumulate_trailing_kernels()

static void SumcheckIvcRecursionConstraintTest::construct_and_accumulate_trailing_kernels ( const std::shared_ptr< SumcheckClientIVC > &  ivc)
inlinestatic

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

◆ construct_kernel_vk_from_acir_program()

static std::shared_ptr< SumcheckClientIVC::MegaVerificationKey > SumcheckIvcRecursionConstraintTest::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<SumcheckClientIVC::MegaVerificationKey>

Definition at line 264 of file sumcheck_pg_recursion_constraint.test.cpp.

◆ construct_mock_app_circuit()

static Builder SumcheckIvcRecursionConstraintTest::construct_mock_app_circuit ( const std::shared_ptr< SumcheckClientIVC > &  ivc)
inlinestatic

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

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

◆ construct_mock_kernel_program()

static AcirProgram SumcheckIvcRecursionConstraintTest::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 sumcheck_pg_recursion_constraint.test.cpp.

◆ construct_mock_UH_recursion_app_circuit()

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

Constuct a mock app circuit with a UH recursive verifier.

Definition at line 113 of file sumcheck_pg_recursion_constraint.test.cpp.

◆ create_inner_circuit()

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

Definition at line 83 of file sumcheck_pg_recursion_constraint.test.cpp.

◆ create_recursion_constraint()

static RecursionConstraint SumcheckIvcRecursionConstraintTest::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 sumcheck_pg_recursion_constraint.test.cpp.

◆ get_kernel_vk_from_circuit()

static std::shared_ptr< SumcheckClientIVC::MegaVerificationKey > SumcheckIvcRecursionConstraintTest::get_kernel_vk_from_circuit ( Builder kernel)
inlinestatic

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

◆ get_verification_key()

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

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

◆ SetUp()

void SumcheckIvcRecursionConstraintTest::SetUp ( )
inlineoverrideprotected

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

◆ TearDown()

void SumcheckIvcRecursionConstraintTest::TearDown ( )
inlineoverrideprotected

Definition at line 292 of file sumcheck_pg_recursion_constraint.test.cpp.

Member Data Documentation

◆ NUM_TRAILING_KERNELS

constexpr size_t SumcheckIvcRecursionConstraintTest::NUM_TRAILING_KERNELS = 3
staticconstexpr

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


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