pub trait WhirProver<SC: StarkProtocolConfig, PB: ProverBackend, PD, TS> {
type Error;
// Required method
fn prove_whir(
&self,
transcript: &mut TS,
common_main_pcs_data: PB::PcsData,
pre_cached_pcs_data_per_commit: Vec<Arc<PB::PcsData>>,
u_cube: &[PB::Challenge],
) -> Result<WhirProof<SC>, Self::Error>;
}Required Associated Types§
Required Methods§
Sourcefn prove_whir(
&self,
transcript: &mut TS,
common_main_pcs_data: PB::PcsData,
pre_cached_pcs_data_per_commit: Vec<Arc<PB::PcsData>>,
u_cube: &[PB::Challenge],
) -> Result<WhirProof<SC>, Self::Error>
fn prove_whir( &self, transcript: &mut TS, common_main_pcs_data: PB::PcsData, pre_cached_pcs_data_per_commit: Vec<Arc<PB::PcsData>>, u_cube: &[PB::Challenge], ) -> Result<WhirProof<SC>, Self::Error>
Prove the WHIR protocol for a collection of MLE polynomials \hat{q}_j, each in n variables,
at a single vector u \in \Fext^n.
This means applying WHIR with weight polynomial
\hat{w}(Z, \vec X) = Z * mobius_eq_poly(u)(\vec X), where mobius_eq_poly(u) is the
Möbius-adjusted equality polynomial for eval-to-coeff RS encoding.
The matrices in common_main_pcs_data and pre_cached_pcs_data_per_commit must all have
the same height.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".