Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
sumcheck_test_flavor.hpp File Reference

Minimal test flavors for sumcheck testing without UltraFlavor dependencies. More...

Go to the source code of this file.

Classes

class  bb::DependentTestRelationImpl< FF_ >
 A linearly dependent test relation for sumcheck testing. More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >
 A flexible, minimal test flavor for sumcheck testing. More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >::PrecomputedEntities< DataType >
 Precomputed polynomials (selectors) More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >::WitnessEntities< DataType >
 Witness polynomials. More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >::ShiftedEntities< DataType >
 Shifted witness polynomials. More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >::AllEntities< DataType >
 All entities combined. More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >::ProverPolynomials
 Container for prover polynomials. More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >::AllValues
 Container for evaluations. More...
 
class  bb::SumcheckTestFlavor_< CurveType, HasZK_, UseShortMonomials_ >::PartiallyEvaluatedMultivariates
 Partially evaluated multivariates for folded sumcheck. More...
 

Namespaces

namespace  bb
 Entry point for Barretenberg command-line interface.
 

Typedefs

template<typename FF >
using bb::DependentTestRelation = Relation< DependentTestRelationImpl< FF > >
 
using bb::SumcheckTestFlavor = SumcheckTestFlavor_< curve::BN254, false, true >
 Base test flavor (BN254, non-ZK, short monomials)
 
using bb::SumcheckTestFlavorZK = SumcheckTestFlavor_< curve::BN254, true, true >
 Zero-knowledge variant.
 
using bb::SumcheckTestFlavorFullBary = SumcheckTestFlavor_< curve::BN254, false, false >
 Full barycentric extension variant.
 
using bb::SumcheckTestFlavorGrumpkinZK = SumcheckTestFlavor_< curve::Grumpkin, true, true >
 Grumpkin ZK variant.
 
using bb::SumcheckTestFlavorZKFullBary = SumcheckTestFlavor_< curve::BN254, true, false >
 ZK + Full barycentric combination.
 

Detailed Description

Minimal test flavors for sumcheck testing without UltraFlavor dependencies.

Motivation

This file provides simplified flavors designed specifically for testing sumcheck in isolation. Using these flavors instead of UltraFlavor has several advantages:

  • Faster tests (only 13 entities vs 41 in UltraFlavor)
  • Clearer tests (only arithmetic relation, no lookups/permutations/etc)
  • No coupling to circuit builder complexity
  • Easy to create variants for specific test scenarios

Available Flavors

  • SumcheckTestFlavor: Base flavor (non-ZK, short monomials, arithmetic only)
  • SumcheckTestFlavorZK: Zero-knowledge variant (HasZK = true)
  • SumcheckTestFlavorFullBary: Full barycentric extension (USE_SHORT_MONOMIALS = false)

Usage Example

// In sumcheck.test.cpp, instead of:
// using Flavor = UltraFlavor;
// Use:
using Flavor = SumcheckTestFlavor;
using FF = typename Flavor::FF;
// Create simple test polynomials
ProverPolynomials prover_polynomials(circuit_size);
// Set up arithmetic relation: q_arith * (q_m * w_l * w_r + q_l * w_l + q_r * w_r + q_o * w_o + q_4 * w_4 + q_c)
prover_polynomials.q_arith = Polynomial({ 1, 1, 1, 1 });
prover_polynomials.q_l = Polynomial({ 1, 1, 1, 1 });
prover_polynomials.w_l = Polynomial({ 2, 3, 4, 5 });
// ... set other polynomials as needed
// Run sumcheck as usual
SumcheckProver<Flavor> prover(...);
auto output = prover.prove(...);
A container for the prover polynomials.
typename Curve::ScalarField FF
typename ECCVMFlavor::ProverPolynomials ProverPolynomials
Note
Tests can now use template parameters to configure the flavor.

Definition in file sumcheck_test_flavor.hpp.