Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
multilinear_batching_prover.test.cpp
Go to the documentation of this file.
6
7#include <gtest/gtest.h>
8
9namespace bb {
10namespace {
11
15
16MultilinearBatchingProverClaim create_valid_claim()
17{
19
21
23 for (size_t i = 0; i < MultilinearBatchingFlavor::VIRTUAL_LOG_N; i++) {
24 claim.challenge[i] = FF::random_element();
25 }
26
27 const size_t dyadic_size = 16;
28 claim.non_shifted_polynomial = Polynomial(dyadic_size);
29 claim.shifted_polynomial = Polynomial::shiftable(dyadic_size);
30
32 for (size_t i = 1; i < dyadic_size; i++) {
35 }
36
37 claim.non_shifted_commitment = Commitment::random_element();
38 claim.shifted_commitment = Commitment::random_element();
39
40 auto eq_polynomial = ProverEqPolynomial<FF>::construct(claim.challenge, 4);
41
42 // Compute non-shifted evaluation
43 claim.non_shifted_evaluation = 0;
44 for (size_t i = 0; i < claim.non_shifted_polynomial.size(); i++) {
45 claim.non_shifted_evaluation += claim.non_shifted_polynomial.at(i) * eq_polynomial.at(i);
46 }
47
48 // Compute shifted evaluation using the shifted polynomial
49 auto shifted = claim.shifted_polynomial.shifted();
50 claim.shifted_evaluation = 0;
51 for (size_t i = 0; i < shifted.size(); i++) {
52 claim.shifted_evaluation += shifted.at(i) * eq_polynomial.at(i);
53 }
54
55 claim.dyadic_size = dyadic_size;
56 return claim;
57}
58
59TEST(MultilinearBatchingProver, ConstructProof)
60{
61 auto transcript = std::make_shared<Transcript>();
62 auto accumulator_claim = std::make_shared<MultilinearBatchingProverClaim>(create_valid_claim());
63 auto instance_claim = std::make_shared<MultilinearBatchingProverClaim>(create_valid_claim());
64 MultilinearBatchingProver prover{ accumulator_claim, instance_claim, transcript };
65
66 auto proof = prover.construct_proof();
67 EXPECT_FALSE(proof.empty());
68}
69} // namespace
70} // namespace bb
Common transcript class for both parties. Stores the data for the current round, as well as the manif...
Structured polynomial class that represents the coefficients 'a' of a_0 + a_1 x .....
Polynomial shifted() const
Returns a Polynomial the left-shift of self.
Fr & at(size_t index)
Our mutable accessor, unlike operator[]. We abuse precedent a bit to differentiate at() and operator[...
static Polynomial shiftable(size_t virtual_size)
Utility to create a shiftable polynomial of given virtual size.
std::size_t size() const
static Polynomial< FF > construct(std::span< const FF > challenges, size_t log_num_monomials)
Construct eq(X, r) coefficient table over Boolean hypercube {0,1}^d.
Entry point for Barretenberg command-line interface.
Definition api.hpp:5
TEST(BoomerangMegaCircuitBuilder, BasicCircuit)
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
static field random_element(numeric::RNG *engine=nullptr) noexcept