pub fn univariatizing_reduction_prover<F, FDomain, P, M, Backend>(
multilinears: Vec<M>,
univariatized_multilinear_evals: &[F],
univariate_challenge: F,
sumcheck_challenges: &[F],
evaluation_domain_factory: impl EvaluationDomainFactory<FDomain>,
backend: Backend,
) -> Result<Prover<FDomain, P, Backend>, Error>where
F: Field + ExtensionField<FDomain>,
FDomain: Field,
P: PackedFieldIndexable<Scalar = F> + PackedExtension<FDomain>,
M: MultilinearPoly<P> + Send + Sync,
Backend: ComputationBackend,
Expand description
Create the sumcheck prover for the univariatizing reduction of multilinears (see verifier side)
This method projects multilinears to first skip_rounds
variables, constructs a multilinear extension
of Lagrange evaluations at univariate_challenge
, and creates a regular sumcheck prover, placing
Lagrange evaluation in the last witness column.
Note that univariatized_multilinear_evals
come from a previous sumcheck with a univariate first round.