78 std::shared_ptr<VerifierInstance>,
79 const std::string& domain_separator);
105 const std::vector<FF>&
deltas,
137 return inst !=
nullptr ? inst->dyadic_size() : 0;
bb::CommitmentKey< Curve > CommitmentKey
static constexpr size_t NUM_SUBRELATIONS
NativeTranscript Transcript
Structured polynomial class that represents the coefficients 'a' of a_0 + a_1 x .....
Univariate< FF, BATCHED_EXTENDED_LENGTH, NUM_INSTANCES > CombinerQuotient
std::shared_ptr< ProverInstance > accumulator
std::array< std::shared_ptr< ProverInstance >, NUM_INSTANCES > ProverInstances
BB_PROFILE FoldingResult< Flavor > prove()
Execute the folding prover.
UnivariateSubrelationSeparators alphas
std::tuple< std::vector< FF >, UnivariateSubrelationSeparators, UnivariateRelationParameters, FF, CombinerQuotient > combiner_quotient_round(const std::vector< FF > &gate_challenges, const std::vector< FF > &deltas, const ProverInstances &instances)
Steps 6 - 11 of the paper.
UnivariateRelationParameters relation_parameters
static constexpr size_t BATCHED_EXTENDED_LENGTH
static constexpr size_t NUM_SUBRELATIONS
typename Flavor::template ProtogalaxyTupleOfTuplesOfUnivariates< NUM_INSTANCES > TupleOfTuplesOfUnivariates
CombinerQuotient combiner_quotient
CommitmentKey commitment_key
ProtogalaxyProver_()=default
typename Flavor::Transcript Transcript
void run_oink_prover_on_one_incomplete_instance(std::shared_ptr< ProverInstance >, std::shared_ptr< VerifierInstance >, const std::string &domain_separator)
For each Prover instance derived from a circuit, prior to folding, we need to complete the computatio...
std::array< std::shared_ptr< VerifierInstance >, NUM_INSTANCES > VerifierInstances
std::shared_ptr< Transcript > transcript
ProtogalaxyProver_(const ProverInstances &prover_insts, const VerifierInstances &verifier_insts, const std::shared_ptr< Transcript > &transcript, ExecutionTraceUsageTracker trace_usage_tracker=ExecutionTraceUsageTracker{})
void run_oink_prover_on_each_incomplete_instance()
Create inputs to folding protocol (an Oink interaction).
Polynomial< FF > perturbator
bb::RelationParameters< Univariate< FF, EXTENDED_LENGTH, 0, SKIP_COUNT > > UnivariateRelationParameters
VerifierInstances verifier_insts_to_fold
typename Flavor::CommitmentKey CommitmentKey
static constexpr size_t EXTENDED_LENGTH
FF perturbator_evaluation
std::tuple< std::vector< FF >, Polynomial< FF > > perturbator_round(const std::shared_ptr< const ProverInstance > &accumulator)
Steps 2 - 5 of the paper.
size_t get_max_dyadic_size() const
Get the maximum dyadic circuit size among all prover instances.
std::array< Univariate< FF, BATCHED_EXTENDED_LENGTH >, NUM_SUBRELATIONS - 1 > UnivariateSubrelationSeparators
void update_target_sum_and_fold(const ProverInstances &instances, const CombinerQuotient &combiner_quotient, const UnivariateSubrelationSeparators &alphas, const UnivariateRelationParameters &univariate_relation_parameters, const FF &perturbator_evaluation)
Steps 12 - 13 of the paper plus the prover folding work.
ProverInstances prover_insts_to_fold
A purely static class (never add state to this!) consisting of functions used by the Protogalaxy prov...
A ProverInstance is normally constructed from a finalized circuit and it contains all the information...
The VerifierInstance encapsulates all the necessary information for a Mega Honk Verifier to verify a ...
typename Flavor::Polynomial Polynomial
Entry point for Barretenberg command-line interface.
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Tracks the cumulative usage of the execution trace across a series of circuits.