pub trait Round1FastPath<C: SetConfig>: Send + Sync {
// Required methods
fn round_1_message(&self, config: &C) -> Round1Output<C::Element>;
fn fold_with_challenge(
self: Box<Self>,
challenge: &C::Element,
config: &C,
) -> Vec<DenseMultilinearExtension<C::Element>>;
}Expand description
Opt-in hook on a MultiDegreeSumcheckGroup that bypasses
SumcheckProverState::prove_round in the first round and replaces
the full-size MLE fold by a closed-form half-size construction. Groups
that don’t supply it are run as usual.
Implementors must produce a round-1 message bit-identical to what the
standard prover would emit and post-fold MLEs bit-identical to what
fix_variables(cfg, &[r_1]) would produce on the standard
path.
Required Methods§
Sourcefn round_1_message(&self, config: &C) -> Round1Output<C::Element>
fn round_1_message(&self, config: &C) -> Round1Output<C::Element>
Closed-form computation of the round-1 polynomial tail plus the
asserted sum p_1(0) + p_1(1).
Sourcefn fold_with_challenge(
self: Box<Self>,
challenge: &C::Element,
config: &C,
) -> Vec<DenseMultilinearExtension<C::Element>>
fn fold_with_challenge( self: Box<Self>, challenge: &C::Element, config: &C, ) -> Vec<DenseMultilinearExtension<C::Element>>
Closed-form fold of the group MLEs by the verifier’s first
challenge r_1. Returns the half-size MLEs in the same order
prepare_sumcheck_group would have produced for the standard
path.