Skip to main content

Module multi_degree

Module multi_degree 

Source
Expand description

Multi-degree sumcheck: runs multiple degree groups in lockstep with shared verifier randomness, producing a common evaluation point.

§Protocol

Given G degree groups each with (degree_g, mles_g, comb_fn_g):

  1. Absorb metadata: num_vars, num_groups, per-group degrees
  2. For each round i = 1..num_vars:
    • Each group computes its round polynomial P_g (parallelizable)
    • Absorb all round messages in deterministic order
    • Sample ONE shared challenge r_i
    • All groups fix variable i at r_i
  3. Each group produces a subclaim at the shared point r = (r_1, …, r_n)

Structs§

MultiDegreeSubClaims
Sub-claims: shared evaluation point + per-group expected evaluation.
MultiDegreeSumcheck
MultiDegreeSumcheckGroup
A single degree group for the multi-degree sumcheck: (degree, mles, comb_fn).
MultiDegreeSumcheckProof
Proof for a multi-degree sumcheck.
Round1Output
Output of a Round1FastPath::round_1_message call. Carries the asserted sum and the round-1 polynomial tail (evaluations at 1, 2, ..., degree, omitting the constant term) that the framework wraps into a regular SumcheckProverMsg and absorbs into the transcript.

Traits§

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