Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
BoomerangIPARecursiveTests Class Reference
Inheritance diagram for BoomerangIPARecursiveTests:
bb::CommitmentTest< NativeCurve >

Public Types

enum class  FailureMode : std::uint8_t { None , A_Zero , G_Zero , ChangePoly }
 
enum class  PolyType : std::uint8_t { Random , ManyZeros , Sparse , Zero }
 
using Fr = typename NativeCurve::ScalarField
 
using GroupElement = typename NativeCurve::Element
 
using CK = CommitmentKey< NativeCurve >
 
using VK = VerifierCommitmentKey< NativeCurve >
 
using Polynomial = bb::Polynomial< Fr >
 
using Commitment = typename NativeCurve::AffineElement
 
using StdlibProof = bb::stdlib::Proof< Builder >
 
using StdlibTranscript = UltraStdlibTranscript
 

Public Member Functions

template<size_t log_poly_length>
std::pair< std::shared_ptr< StdlibTranscript >, OpeningClaim< Curve > > create_ipa_claim (Builder &builder, Polynomial &poly, Fr x)
 Given a builder, polynomial, and challenge point, return the transcript and opening claim in circuit.
 
template<size_t log_poly_length>
Builder build_ipa_recursive_verifier_circuit (Polynomial &poly, Fr x)
 Given a poly and a challenge x, return the recursive verifier circuit.
 
template<size_t log_poly_length>
std::tuple< Polynomial, Frgenerate_poly_and_challenge (PolyType poly_type=PolyType::Random)
 
template<size_t log_poly_length>
void test_recursive_ipa (Polynomial &poly, Fr x)
 Tests IPA recursion.
 
template<size_t log_poly_length>
void test_accumulation (Polynomial &poly1, Polynomial &poly2, Fr x1, Fr x2)
 Tests IPA accumulation by accumulating two IPA claims and proving the accumulated claim.
 
- Public Member Functions inherited from bb::CommitmentTest< NativeCurve >
 CommitmentTest ()
 
const CKck ()
 
VKvk ()
 
Commitment commit (const Polynomial &polynomial)
 
Fr random_element ()
 
Polynomial random_polynomial (const size_t poly_size)
 
OpeningPair< NativeCurverandom_eval (const Polynomial &polynomial)
 
std::vector< Frrandom_evaluation_point (const size_t num_variables)
 
void verify_opening_claim (const OpeningClaim< NativeCurve > &claim, const Polynomial &witness, CommitmentKey< NativeCurve > ck=CommitmentKey< NativeCurve >())
 
void verify_opening_pair (const OpeningPair< NativeCurve > &opening_pair, const Polynomial &witness)
 
void verify_batch_opening_claim (std::span< const OpeningClaim< NativeCurve > > multi_claims, std::span< const Polynomial > witnesses)
 Ensures that a 'BatchOpeningClaim' is correct by checking that.
 
void verify_batch_opening_pair (std::vector< ProverOpeningClaim< NativeCurve > > opening_claims)
 Ensures that a set of opening pairs is correct by checking that evaluations are correct by recomputing them from each witness polynomial.
 
std::vector< UnivariateClaimData< NativeCurve > > generate_claim_data (const std::vector< size_t > &poly_sizes)
 
std::pair< std::vector< Fr >, std::vector< Fr > > combine_claims (std::vector< UnivariateClaimData< NativeCurve > > &claims)
 

Additional Inherited Members

- Static Public Member Functions inherited from bb::CommitmentTest< NativeCurve >
static void SetUpTestSuite ()
 
static void TearDownTestSuite ()
 
- Public Attributes inherited from bb::CommitmentTest< NativeCurve >
numeric::RNGengine
 
- Static Public Attributes inherited from bb::CommitmentTest< NativeCurve >
static CK commitment_key
 
static VK verification_key
 

Detailed Description

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

Member Typedef Documentation

◆ CK

◆ Commitment

◆ Fr

◆ GroupElement

◆ Polynomial

◆ StdlibProof

◆ StdlibTranscript

◆ VK

Member Enumeration Documentation

◆ FailureMode

Enumerator
None 
A_Zero 
G_Zero 
ChangePoly 

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

◆ PolyType

Enumerator
Random 
ManyZeros 
Sparse 
Zero 

Definition at line 106 of file graph_description_ipa_recursive.test.cpp.

Member Function Documentation

◆ build_ipa_recursive_verifier_circuit()

template<size_t log_poly_length>
Builder BoomerangIPARecursiveTests::build_ipa_recursive_verifier_circuit ( Polynomial poly,
Fr  x 
)
inline

Given a poly and a challenge x, return the recursive verifier circuit.

Template Parameters
log_poly_length
Parameters
poly
x
Returns
Builder

Definition at line 93 of file graph_description_ipa_recursive.test.cpp.

◆ create_ipa_claim()

template<size_t log_poly_length>
std::pair< std::shared_ptr< StdlibTranscript >, OpeningClaim< Curve > > BoomerangIPARecursiveTests::create_ipa_claim ( Builder builder,
Polynomial poly,
Fr  x 
)
inline

Given a builder, polynomial, and challenge point, return the transcript and opening claim in circuit.

Given a poly and x, first generates a native proof (and verifiers), then loads the proof into a StdLib transcript.

Template Parameters
log_poly_length
Parameters
builder
poly
x
failure_mode
Returns
std::pair<std::shared_ptr<StdlibTranscript>, OpeningClaim<Curve>>
Note
assumes that the size of poly is exactly 1 << log_poly_length.

Definition at line 52 of file graph_description_ipa_recursive.test.cpp.

◆ generate_poly_and_challenge()

template<size_t log_poly_length>
std::tuple< Polynomial, Fr > BoomerangIPARecursiveTests::generate_poly_and_challenge ( PolyType  poly_type = PolyType::Random)
inline

Definition at line 109 of file graph_description_ipa_recursive.test.cpp.

◆ test_accumulation()

template<size_t log_poly_length>
void BoomerangIPARecursiveTests::test_accumulation ( Polynomial poly1,
Polynomial poly2,
Fr  x1,
Fr  x2 
)
inline

Tests IPA accumulation by accumulating two IPA claims and proving the accumulated claim.

Creates two IPA claims, and then two IPA accumulators through recursive verification. Proves the accumulated claim and checks that it verifies.

Parameters
log_poly_length

Definition at line 156 of file graph_description_ipa_recursive.test.cpp.

◆ test_recursive_ipa()

template<size_t log_poly_length>
void BoomerangIPARecursiveTests::test_recursive_ipa ( Polynomial poly,
Fr  x 
)
inline

Tests IPA recursion.

Creates an IPA claim and then runs the recursive IPA verification and checks that the circuit is valid.

Definition at line 142 of file graph_description_ipa_recursive.test.cpp.


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