Expand description
Round evaluators over a shared MleStore and the provers that drive them.
A round evaluator holds the per-round-polynomial logic for one composite claim over store
columns. Evaluators hold ColIds and receive column data by
argument; they hold no mutable
per-round state — they neither fold nor track the round claim. The driving prover owns the
RoundState machine (the claim ↔ coeffs alternation) for each evaluator, and the store folds
the columns (see the mle_store module documentation).
There are two evaluator traits, one per protocol:
SumcheckRoundEvaluator, driven bySharedSumcheckProver, emits regular sumcheck round polynomials.MleCheckRoundEvaluator, driven bySharedMleCheckProver, emits the eq-factored prime round polynomials of the MLE-check protocol. Its claims all share one evaluation point, so the prover — not the evaluator — owns that point’s eq-indicator tracker and passes the round’s eq chunk and coordinate to the evaluator.
Both provers adapt a store plus a list of evaluators — one per claim — to the SumcheckProver
interface (and SharedMleCheckProver additionally to MleCheckProver), so they batch
alongside standalone provers unchanged.
Structs§
- Shared
MleCheck Prover - A
MleCheckProverover a sharedMleStoreand a group ofMleCheckRoundEvaluators. - Shared
Sumcheck Prover - A
SumcheckProverover a sharedMleStoreand a list ofSumcheckRoundEvaluators, one per claim.
Traits§
- MleCheck
Round Evaluator - Per-round-polynomial logic for one MLE-check claim over store columns.
- Sumcheck
Round Evaluator - Per-round-polynomial logic for one plain sumcheck claim over store columns.