pub trait QuotientCommitter<PB: ProverBackend> {
// Required method
fn eval_and_commit_quotient(
&self,
challenger: &mut PB::Challenger,
pk_views: &[DeviceStarkProvingKey<'_, PB>],
public_values: &[Vec<PB::Val>],
cached_views_per_air: &[Vec<SingleCommitPreimage<&PB::Matrix, &PB::PcsData>>],
common_main_pcs_data: &PB::PcsData,
prover_data_after: &ProverDataAfterRapPhases<PB>,
) -> (PB::Commitment, PB::PcsData);
}
Expand description
Only needed in proof systems that use quotient polynomials.
Required Methods§
Sourcefn eval_and_commit_quotient(
&self,
challenger: &mut PB::Challenger,
pk_views: &[DeviceStarkProvingKey<'_, PB>],
public_values: &[Vec<PB::Val>],
cached_views_per_air: &[Vec<SingleCommitPreimage<&PB::Matrix, &PB::PcsData>>],
common_main_pcs_data: &PB::PcsData,
prover_data_after: &ProverDataAfterRapPhases<PB>,
) -> (PB::Commitment, PB::PcsData)
fn eval_and_commit_quotient( &self, challenger: &mut PB::Challenger, pk_views: &[DeviceStarkProvingKey<'_, PB>], public_values: &[Vec<PB::Val>], cached_views_per_air: &[Vec<SingleCommitPreimage<&PB::Matrix, &PB::PcsData>>], common_main_pcs_data: &PB::PcsData, prover_data_after: &ProverDataAfterRapPhases<PB>, ) -> (PB::Commitment, PB::PcsData)
Given a view of the PCS data from all phases of proving, first get the trace polynomials evaluated on the quotient domains. Then compute the quotient polynomial evaluated on the quotient domain and commit to it.
The lengths of
pk_views
: proving key per AIRpublic_values
: public values per AIRcached_views_per_air
: committed trace views per AIR (if any)
must be equal, and all equal to the number of AIRs.
Quotient polynomials for multiple RAP matrices are committed together into a single commitment. The quotient polynomials can be committed together even if the corresponding trace matrices are committed separately.