pub trait StackedReductionProver<'a, PB: ProverBackend, PD> {
// Required methods
fn new(
device: &'a PD,
stacked_per_commit: Vec<&'a PB::PcsData>,
need_rot_per_commit: Vec<Vec<bool>>,
r: &[PB::Challenge],
lambda: PB::Challenge,
) -> Self;
fn batch_sumcheck_uni_round0_poly(
&mut self,
) -> UnivariatePoly<PB::Challenge>;
fn fold_ple_evals(&mut self, u_0: PB::Challenge);
fn batch_sumcheck_poly_eval(
&mut self,
round: usize,
u_prev: PB::Challenge,
) -> [PB::Challenge; 2];
fn fold_mle_evals(&mut self, round: usize, u_round: PB::Challenge);
fn into_stacked_openings(self) -> Vec<Vec<PB::Challenge>>;
}Expand description
Helper trait for proving the reduction of column opening claims and column rotation opening claims to opening claims of column polynomials of the stacked matrix.
Returns the reduction proof and the random vector u of length 1 + n_stack.
Required Methods§
Sourcefn new(
device: &'a PD,
stacked_per_commit: Vec<&'a PB::PcsData>,
need_rot_per_commit: Vec<Vec<bool>>,
r: &[PB::Challenge],
lambda: PB::Challenge,
) -> Self
fn new( device: &'a PD, stacked_per_commit: Vec<&'a PB::PcsData>, need_rot_per_commit: Vec<Vec<bool>>, r: &[PB::Challenge], lambda: PB::Challenge, ) -> Self
We only provide a view to the stacked PcsData per commitment because the WHIR prover will
still use the PLE evaluations of the stacked matrices later. The order of
stacked_per_commit is common_main, preprocessed for trace_idx=0 (if any), cached_0 for trace_idx=0, ..., preprocessed for trace_idx=1 (if any), ....
The lambda is the batching randomness for the batch sumcheck.
Sourcefn batch_sumcheck_uni_round0_poly(&mut self) -> UnivariatePoly<PB::Challenge>
fn batch_sumcheck_uni_round0_poly(&mut self) -> UnivariatePoly<PB::Challenge>
Return the s_0 batched polynomial from univariate round 0 of sumcheck.
fn fold_ple_evals(&mut self, u_0: PB::Challenge)
fn batch_sumcheck_poly_eval( &mut self, round: usize, u_prev: PB::Challenge, ) -> [PB::Challenge; 2]
fn fold_mle_evals(&mut self, round: usize, u_round: PB::Challenge)
fn into_stacked_openings(self) -> Vec<Vec<PB::Challenge>>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".