Skip to main content

prove

Function prove 

Source
pub fn prove<F, P>(
    entries: &[TensorEntry<F>],
    claims: &[AxisClaim<F>],
    channel: &mut impl IPProverChannel<F>,
) -> AxisClaim<F>
where F: Field, P: PackedField<Scalar = F>,
Expand description

Proves a fold of evaluation claims on one tensor, returning the claim they folded to.

The claims all name the same tensor at different points. One sumcheck reduces them to one point.

What comes out has the same shape as what went in, so a caller can fold again.

§Cost

Per round, one pass over the entries per claim.

Nothing is materialized over the product of the axes. So the axes may span a space far larger than the entry list.

§Panics

Panics if no claim is given, or if the claims disagree about the axis widths.