pub struct MultiTraceStarkProver<'c, SC: StarkGenericConfig> {
pub config: &'c SC,
}
Expand description
Proves multiple chips with interactions together. This prover implementation is specialized for Interactive AIRs.
Fields§
§config: &'c SC
Implementations§
Source§impl<'c, SC: StarkGenericConfig> MultiTraceStarkProver<'c, SC>
impl<'c, SC: StarkGenericConfig> MultiTraceStarkProver<'c, SC>
pub fn new(config: &'c SC) -> Self
pub fn pcs(&self) -> &SC::Pcs
pub fn committer(&self) -> TraceCommitter<'_, SC>
Sourcepub fn prove<'a>(
&self,
challenger: &mut SC::Challenger,
mpk: &'a MultiStarkProvingKey<SC>,
proof_input: ProofInput<SC>,
) -> Proof<SC>
pub fn prove<'a>( &self, challenger: &mut SC::Challenger, mpk: &'a MultiStarkProvingKey<SC>, proof_input: ProofInput<SC>, ) -> Proof<SC>
Specialized prove for InteractiveAirs. Handles trace generation of the permutation traces. Assumes the main traces have been generated and committed already.
Public values: for each AIR, a separate list of public values. The prover can support global public values that are shared among all AIRs, but we currently split public values per-AIR for modularity.
Auto Trait Implementations§
impl<'c, SC> Freeze for MultiTraceStarkProver<'c, SC>
impl<'c, SC> RefUnwindSafe for MultiTraceStarkProver<'c, SC>where
SC: RefUnwindSafe,
impl<'c, SC> Send for MultiTraceStarkProver<'c, SC>where
SC: Sync,
impl<'c, SC> Sync for MultiTraceStarkProver<'c, SC>where
SC: Sync,
impl<'c, SC> Unpin for MultiTraceStarkProver<'c, SC>
impl<'c, SC> UnwindSafe for MultiTraceStarkProver<'c, SC>where
SC: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more