openvm_sdk::prover::vm

Trait SingleSegmentVmProver

Source
pub trait SingleSegmentVmProver<SC: StarkGenericConfig> {
    // Required method
    fn prove(&self, input: impl Into<Streams<Val<SC>>>) -> Proof<SC>;
}
Expand description

Prover for a specific exe in a specific single-segment VM using a specific Stark config.

Required Methods§

Source

fn prove(&self, input: impl Into<Streams<Val<SC>>>) -> Proof<SC>

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 SingleSegmentVmProver<StarkConfig<TwoAdicFriPcs<MontyField31<BabyBearParameters>, Radix2DitParallel<MontyField31<BabyBearParameters>>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, Bn254Fr, MultiField32PaddingFreeSponge<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#0}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#1}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#2}>, TruncatedPermutation<Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, 2, 1, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Compress::{constant#2}>, 1>, ExtensionMmcs<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MerkleTreeMmcs<MontyField31<BabyBearParameters>, Bn254Fr, MultiField32PaddingFreeSponge<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#0}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#1}, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Hash::{constant#2}>, TruncatedPermutation<Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, 2, 1, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Compress::{constant#2}>, 1>>>, StarkLogUpPhase<MontyField31<BabyBearParameters>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MultiField32Challenger<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Challenger::{constant#1}, 2>>, BinomialExtensionField<MontyField31<BabyBearParameters>, 4>, MultiField32Challenger<MontyField31<BabyBearParameters>, Bn254Fr, Poseidon2<Bn254Fr, ExternalLayerConstants<Bn254Fr, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}>, Poseidon2InternalLayerBn254, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Perm::{constant#0}, p3_bn254_fr::::poseidon2::Poseidon2Bn254::{constant#0}>, openvm_stark_sdk::::config::baby_bear_poseidon2_root::Challenger::{constant#1}, 2>>> for RootVerifierLocalProver

Source§

impl<SC: StarkGenericConfig, VC: VmConfig<Val<SC>>, E: StarkFriEngine<SC>> SingleSegmentVmProver<SC> for VmLocalProver<SC, VC, E>
where Val<SC>: PrimeField32, VC::Executor: Chip<SC>, VC::Periphery: Chip<SC>,