Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::HypernovaFoldingProver Class Reference

#include <hypernova_prover.hpp>

Public Types

using Flavor = MegaFlavor
 
using FF = Flavor::FF
 
using Polynomial = bb::Polynomial< FF >
 
using Commitment = Flavor::Commitment
 
using ProverInstance = ProverInstance_< Flavor >
 
using Accumulator = MultilinearBatchingProverClaim
 
using VerificationKey = Flavor::VerificationKey
 
using VerifierCommitments = Flavor::VerifierCommitments
 
using MegaOinkProver = OinkProver< Flavor >
 
using MegaSumcheckProver = SumcheckProver< Flavor >
 
using MegaSumcheckOutput = SumcheckOutput< Flavor >
 
using Transcript = Flavor::Transcript
 

Public Member Functions

 HypernovaFoldingProver (std::shared_ptr< Transcript > &transcript)
 
Accumulator instance_to_accumulator (const std::shared_ptr< ProverInstance > &instance)
 Turn an instance into an accumulator by running Sumcheck.
 
std::pair< HonkProof, Accumulatorfold (const Accumulator &accumulator, const std::shared_ptr< ProverInstance > &instance)
 Fold an instance into an accumulator. Folding happens in place.
 
HonkProof export_proof ()
 Export the proof contained in the transcript.
 

Public Attributes

std::shared_ptr< Transcripttranscript
 

Private Member Functions

Accumulator sumcheck_output_to_accumulator (MegaSumcheckOutput &sumcheck_output, const std::shared_ptr< ProverInstance > &instance, const std::shared_ptr< VerificationKey > &honk_vk)
 

Static Private Member Functions

template<size_t N>
static Polynomial batch_polynomials (RefArray< Polynomial, N > polynomials_to_batch, const size_t &full_batched_size, const std::array< FF, N > &challenges)
 Batch prover polynomials. Batching happens in place into the first polynomial in the RefArray supplied.
 

Detailed Description

Definition at line 15 of file hypernova_prover.hpp.

Member Typedef Documentation

◆ Accumulator

◆ Commitment

◆ FF

◆ Flavor

◆ MegaOinkProver

◆ MegaSumcheckOutput

◆ MegaSumcheckProver

◆ Polynomial

◆ ProverInstance

◆ Transcript

◆ VerificationKey

◆ VerifierCommitments

Constructor & Destructor Documentation

◆ HypernovaFoldingProver()

bb::HypernovaFoldingProver::HypernovaFoldingProver ( std::shared_ptr< Transcript > &  transcript)
inline

Definition at line 32 of file hypernova_prover.hpp.

Member Function Documentation

◆ batch_polynomials()

template<size_t N>
HypernovaFoldingProver::Polynomial bb::HypernovaFoldingProver::batch_polynomials ( RefArray< Polynomial, N >  polynomials_to_batch,
const size_t &  full_batched_size,
const std::array< FF, N > &  challenges 
)
staticprivate

Batch prover polynomials. Batching happens in place into the first polynomial in the RefArray supplied.

Template Parameters
N
Parameters
shiftableIf it is set to true, then the polynomials are aggregated as shiftable polynomials

Definition at line 85 of file hypernova_prover.cpp.

◆ export_proof()

HonkProof bb::HypernovaFoldingProver::export_proof ( )
inline

Export the proof contained in the transcript.

Returns
HonkProof

Definition at line 58 of file hypernova_prover.hpp.

◆ fold()

std::pair< HonkProof, HypernovaFoldingProver::Accumulator > bb::HypernovaFoldingProver::fold ( const Accumulator accumulator,
const std::shared_ptr< ProverInstance > &  instance 
)

Fold an instance into an accumulator. Folding happens in place.

Parameters
accumulator
instance
Returns
std::pair<HonkProof, Accumulator>

Definition at line 139 of file hypernova_prover.cpp.

◆ instance_to_accumulator()

HypernovaFoldingProver::Accumulator bb::HypernovaFoldingProver::instance_to_accumulator ( const std::shared_ptr< ProverInstance > &  instance)

Turn an instance into an accumulator by running Sumcheck.

Parameters
instance
Returns
Accumulator

Definition at line 107 of file hypernova_prover.cpp.

◆ sumcheck_output_to_accumulator()

HypernovaFoldingProver::Accumulator bb::HypernovaFoldingProver::sumcheck_output_to_accumulator ( HypernovaFoldingProver::MegaSumcheckOutput sumcheck_output,
const std::shared_ptr< ProverInstance > &  instance,
const std::shared_ptr< VerificationKey > &  honk_vk 
)
private

Definition at line 12 of file hypernova_prover.cpp.

Member Data Documentation

◆ transcript

std::shared_ptr<Transcript> bb::HypernovaFoldingProver::transcript

Definition at line 30 of file hypernova_prover.hpp.


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