Skip to main content

multilinear_eval_prover

Function multilinear_eval_prover 

Source
pub fn multilinear_eval_prover<'alloc, A, F, P>(
    alloc: &'alloc A,
    witness: FieldVec<P, A>,
    eval_point: &[F],
    eval_claim: F,
) -> SharedMleCheckProver<'alloc, A, F, P, MultilinearEvalEvaluator>
where A: Allocator, F: Field, P: PackedField<Scalar = F>,
Expand description

Builds an MLE-check prover for the multilinear extension evaluation of a single multilinear.

The claim is M(z) = s for a multilinear M over the challenge field. This proves the equivalent MLE-check relation s = sum_{v in B_n} M(v) * eq(v, z). Since M is multilinear, that relation holds if and only if M(z) = s.

The reduction runs on the split-eq SharedMleCheckProver with a degree-1 evaluator. Each round expands only a small low-coordinate prefix of the eq indicator. The higher coordinates are folded in through the prover’s reduction step. The full 2^{n-1} eq tensor is never materialized, streamed, or folded per round.

§Arguments

  • witness - the multilinear whose extension is evaluated.
  • eval_point - the point of the evaluation claim.
  • eval_claim - the claimed value of the multilinear extension at that point.

§Panics

Panics if the witness length does not match the evaluation point length.