2#include "../commitment_key.test.hpp"
7#include <gtest/internal/gtest-internal.h>
14static constexpr size_t LOG_DEGREE = 4;
15static constexpr size_t MAX_POLY_DEGREE = 1UL << LOG_DEGREE;
17using CurveTypes = ::testing::Types<curve::BN254, curve::Grumpkin>;
31 auto setup = this->generate_claim_data({ MAX_POLY_DEGREE, MAX_POLY_DEGREE / 2 });
34 auto prover_opening_claims = ClaimData::prover_opening_claims(setup);
35 const auto batched_opening_claim = ShplonkProver::prove(this->
ck(), prover_opening_claims, prover_transcript);
37 this->verify_opening_pair(batched_opening_claim.opening_pair, batched_opening_claim.polynomial);
43 const auto batched_verifier_claim = ShplonkVerifier::reduce_verification(
44 this->
vk().get_g1_identity(), ClaimData::verifier_opening_claims(setup), verifier_transcript);
46 this->verify_opening_claim(batched_verifier_claim, batched_opening_claim.polynomial);
59 auto setup = this->generate_claim_data({ MAX_POLY_DEGREE, MAX_POLY_DEGREE / 2 });
62 auto prover_opening_claims = ClaimData::prover_opening_claims(setup);
63 const auto batched_opening_claim = ShplonkProver::prove(this->
ck(), prover_opening_claims, prover_transcript);
65 this->verify_opening_pair(batched_opening_claim.opening_pair, batched_opening_claim.polynomial);
78 auto verifier_opening_claims = ClaimData::verifier_opening_claims(setup);
79 auto verifier = ShplonkVerifier::reduce_verification_no_finalize(verifier_opening_claims, verifier_transcript);
82 auto batched_verifier_claim = verifier.export_batch_opening_claim(this->
vk().get_g1_identity());
87 std::move(batched_verifier_claim), verifier_transcript);
88 ASSERT_TRUE(this->
vk().pairing_check(final_proof_points[0], final_proof_points[1]));
91 auto vk = create_verifier_commitment_key<VerifierCommitmentKey<curve::Grumpkin>>();
93 batched_verifier_claim,
vk, verifier_transcript);
static std::shared_ptr< BaseTranscript > prover_init_empty()
For testing: initializes transcript with some arbitrary data so that a challenge can be generated aft...
static std::shared_ptr< BaseTranscript > verifier_init_empty(const std::shared_ptr< BaseTranscript > &transcript)
For testing: initializes transcript based on proof data then receives junk data produced by BaseTrans...
IPA (inner product argument) commitment scheme class.
static PairingPointsType reduce_verify_batch_opening_claim(BatchOpeningClaim< Curve > &&batch_opening_claim, const std::shared_ptr< Transcript > &transcript, const size_t expected_final_msm_size=0)
Computes the input points for the pairing check needed to verify a KZG opening claim obtained from a ...
static void compute_opening_proof(const CK &ck, const ProverOpeningClaim< Curve > &opening_claim, const std::shared_ptr< Transcript > &prover_trancript)
Computes the KZG commitment to an opening proof polynomial at a single evaluation point.
Entry point for Barretenberg command-line interface.
TYPED_TEST_SUITE(ShpleminiTest, TestSettings)
::testing::Types< curve::BN254, curve::Grumpkin > CurveTypes
TYPED_TEST(ShpleminiTest, CorrectnessOfMultivariateClaimBatching)
CommitmentKey< Curve > ck
VerifierCommitmentKey< Curve > vk
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept