Skip to main content

Round1FastPath

Trait Round1FastPath 

Source
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§

Source

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).

Source

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.

Implementors§