pub fn batch_prove<F, Prover>(
provers: Vec<Prover>,
channel: &mut impl IPProverChannel<F>,
) -> BatchSumcheckOutput<F>where
F: Field,
Prover: SumcheckProver<F>,Expand description
Prove a batched sumcheck protocol execution, where all provers have the same number of rounds.
The batched sumcheck reduces a set of claims about the sums of multivariate polynomials over
the boolean hypercube to their evaluation at a (shared) challenge point. This is achieved by
constructing an n_vars + 1-variate polynomial whose coefficients in the “new variable” are the
individual sum claims and evaluating it at a random point. Due to linearity of sums each claim
can be proven separately with an individual SumcheckProver followed by weighted summation of
the round polynomials.
This function performs the sumcheck protocol and returns the challenges and evaluation claims,
but does not write the evaluation claims to the channel. Use batch_prove_and_write_evals
if you need to write the evaluations to the channel.