pub trait RapPartialProver<PB: ProverBackend> {
// Required method
fn partially_prove(
&self,
challenger: &mut PB::Challenger,
mpk: &DeviceMultiStarkProvingKeyView<'_, PB>,
trace_views: Vec<AirView<PB::Matrix, PB::Val>>,
) -> (PB::RapPartialProof, ProverDataAfterRapPhases<PB>);
}
Expand description
This trait is responsible for all partial proving of after challenge rounds (a.k.a layers) in a RAP after the main trace has been committed.
The partial prover may:
- observe and/or sample challenges
- commit to additional trace data
- generate other partial proof data
Required Methods§
Sourcefn partially_prove(
&self,
challenger: &mut PB::Challenger,
mpk: &DeviceMultiStarkProvingKeyView<'_, PB>,
trace_views: Vec<AirView<PB::Matrix, PB::Val>>,
) -> (PB::RapPartialProof, ProverDataAfterRapPhases<PB>)
fn partially_prove( &self, challenger: &mut PB::Challenger, mpk: &DeviceMultiStarkProvingKeyView<'_, PB>, trace_views: Vec<AirView<PB::Matrix, PB::Val>>, ) -> (PB::RapPartialProof, ProverDataAfterRapPhases<PB>)
The trace_views
are the respective (owned) trace matrices, evaluated on the trace domain.
Currently this function does not provide a view of any already committed data associated
with the trace views, although that data is available.
The AirView are owned matrices because it is expected these matrices may be dropped after this function call.