pub struct ProverData<SC: SGC> {
pub common: CommonData<SC>,
pub prover_only: ProverOnlyData<SC>,
}Expand description
Combined prover data containing both common and prover-only data.
This is a convenience struct that bundles CommonData (shared with verifier)
and ProverOnlyData (prover-exclusive) together.
Fields§
§common: CommonData<SC>Data shared between prover and verifier.
prover_only: ProverOnlyData<SC>Prover-exclusive data.
Implementations§
Source§impl<SC: SGC> ProverData<SC>
impl<SC: SGC> ProverData<SC>
Sourcepub fn empty(num_instances: usize) -> Self
pub fn empty(num_instances: usize) -> Self
Create ProverData with no preprocessed columns or lookups.
Use this when none of your Air implementations have preprocessed columns or lookups.
Source§impl<SC> ProverData<SC>
impl<SC> ProverData<SC>
Sourcepub fn from_instances<A>(
config: &SC,
instances: &[StarkInstance<'_, SC, A>],
) -> Self
pub fn from_instances<A>( config: &SC, instances: &[StarkInstance<'_, SC, A>], ) -> Self
Build ProverData directly from STARK instances.
This automatically:
- Derives trace degrees from trace heights
- Computes extended degrees (base + ZK padding)
- Sets up preprocessed columns for
Airimplementations that define them, committing to them in a single globalPcscommitment. - Deduces symbolic lookups from the STARKs
This is a convenience function mainly used for tests.
Sourcepub fn from_airs_and_degrees<A>(
config: &SC,
airs: &mut [A],
trace_ext_degree_bits: &[usize],
) -> Self
pub fn from_airs_and_degrees<A>( config: &SC, airs: &mut [A], trace_ext_degree_bits: &[usize], ) -> Self
Build ProverData from Air implementations and their extended trace degree bits.
§Arguments
trace_ext_degree_bits- Log2 of extended trace degrees (including ZK padding)
§Returns
Prover data containing the global preprocessed commitment (if at least
one Air defines preprocessed columns) and the PCS prover data.
Auto Trait Implementations§
impl<SC> Freeze for ProverData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::ProverData: Freeze,
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Freeze,
impl<SC> RefUnwindSafe for ProverData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::ProverData: RefUnwindSafe,
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: RefUnwindSafe,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: RefUnwindSafe,
impl<SC> Send for ProverData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::ProverData: Send,
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Send,
impl<SC> Sync for ProverData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::ProverData: Sync,
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Sync,
impl<SC> Unpin for ProverData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::ProverData: Unpin,
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: Unpin,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: Unpin,
impl<SC> UnsafeUnpin for ProverData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::ProverData: UnsafeUnpin,
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: UnsafeUnpin,
impl<SC> UnwindSafe for ProverData<SC>where
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::ProverData: UnwindSafe,
<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Commitment: UnwindSafe,
<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val: UnwindSafe + 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
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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