Skip to main content

prove_phase_1

Function prove_phase_1 

Source
pub fn prove_phase_1<F, P, Channel, A>(
    key_collection: &KeyCollection,
    words: SegmentWords<'_>,
    prepared: &PreparedOperandClaims<F>,
    oblong_weights: &[F],
    channel: &mut Channel,
    alloc: &A,
) -> Phase1Output<F>
where F: BinaryField, P: PackedField<Scalar = F>, Channel: IPProverChannel<F>, A: Allocator,
Expand description

Proves the first phase of the shift reduction.

Builds the witness-and-batching multilinear for both segments and concatenates their rows. One sumcheck then runs over their product, against a weight table that is never materialized.

§Arguments

  • key_collection: the prover’s key collection for the constraint system.
  • words: the value-vector words.
  • prepared: the prepared claim of each operation, indexed by the operation a key names.
  • oblong_weights: the weights of the reduction’s first factor, one per bit position.
  • channel: the prover channel the interactive rounds run over.
  • alloc: the allocator the intermediate buffers are drawn from.

§Returns

The challenge point split into its axes, alongside the leftover weights. Also the two evaluations this phase reduced to.