Skip to main content

new

Function new 

Source
pub fn new<'alloc, A, F, P>(
    alloc: &'alloc A,
    layer: FieldVec<P, A>,
    pad_len: usize,
    eval_point: Vec<F>,
    claim: F,
) -> OnePadMleCheckProver<F, impl MleCheckProver<F> + 'alloc>
where A: Allocator, F: Field, P: PackedField<Scalar = F>,
Expand description

Creates the prover for one padded product-check layer.

§Arguments

  • layer - The unpadded child layer, whose low and high halves on its highest variable are the two multilinears whose product this layer reduces.
  • pad_len - Length of eval_point’s padding segment. Zero leaves the inner reduction uncorrected.
  • eval_point - The padded layer’s claim point, [padding | real].
  • claim - The padded layer’s claimed evaluation at eval_point.

§Preconditions

  • layer.log_len() >= 1
  • eval_point.len() == layer.log_len() - 1 + pad_len

§Panics

Panics if the padding segment’s equality weight $q$ is zero, which requires one of its coordinates — all verifier challenges — to equal one, and so happens with probability at most $\nu / |K|$.