Skip to main content

MultiRapProver

Trait MultiRapProver 

Source
pub trait MultiRapProver<PB: ProverBackend, TS> {
    type PartialProof: Clone + Send + Sync + Serialize + DeserializeOwned;
    type Artifacts;
    type Error: Debug;

    // Required method
    fn prove_rap_constraints(
        &self,
        transcript: &mut TS,
        mpk: &DeviceMultiStarkProvingKey<PB>,
        ctx: &ProvingContext<PB>,
        common_main_pcs_data: &PB::PcsData,
    ) -> Result<(Self::PartialProof, Self::Artifacts), Self::Error>;
}
Expand description

This trait is responsible for the proving steps that reduce AIR zerocheck constraints and interaction consistency claims to polynomial opening claims.

This trait is not responsible for committing to trace matrices or for checking polynomial openings against PCS commitments.

Required Associated Types§

Source

type PartialProof: Clone + Send + Sync + Serialize + DeserializeOwned

The partial proof is the proof that the trace matrices satisfy all constraints assuming that certain polynomial opening claims are validated. In other words, it is a proof that reduces the constraint satisfaction claim to certain polynomial opening claims.

Source

type Artifacts

Other artifacts of the proof (e.g., sampled randomness) that may be passed to later stages of the protocol.

Source

type Error: Debug

Required Methods§

Source

fn prove_rap_constraints( &self, transcript: &mut TS, mpk: &DeviceMultiStarkProvingKey<PB>, ctx: &ProvingContext<PB>, common_main_pcs_data: &PB::PcsData, ) -> Result<(Self::PartialProof, Self::Artifacts), Self::Error>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<SC, TS> MultiRapProver<CpuColMajorBackend<SC>, TS> for ReferenceDevice<SC>
where SC: StarkProtocolConfig, SC::EF: TwoAdicField + ExtensionField<SC::F>, TS: FiatShamirTranscript<SC>,