openvm_stark_backend::prover

Trait Prover

Source
pub trait Prover {
    type ProvingKeyView<'a>
       where Self: 'a;
    type ProvingContext<'a>
       where Self: 'a;
    type Proof;

    // Required method
    fn prove<'a>(
        &'a mut self,
        pk: Self::ProvingKeyView<'a>,
        ctx: Self::ProvingContext<'a>,
    ) -> Self::Proof;
}
Expand description

Trait for STARK/SNARK proving at the highest abstraction level.

Required Associated Types§

Source

type ProvingKeyView<'a> where Self: 'a

Source

type ProvingContext<'a> where Self: 'a

Source

type Proof

Required Methods§

Source

fn prove<'a>( &'a mut self, pk: Self::ProvingKeyView<'a>, ctx: Self::ProvingContext<'a>, ) -> Self::Proof

The prover should own the challenger, whose state mutates during proving.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<SC, PB, PD> Prover for Coordinator<SC, PB, PD>
where SC: StarkGenericConfig, PB: ProverBackend<Val = Val<SC>, Challenge = SC::Challenge, Commitment = Com<SC>, Challenger = SC::Challenger>, PD: ProverDevice<PB>,

Source§

type Proof = HalProof<PB>

Source§

type ProvingKeyView<'a> = &'a DeviceMultiStarkProvingKey<'a, PB> where Self: 'a

Source§

type ProvingContext<'a> = ProvingContext<'a, PB> where Self: 'a