pub struct BinaryPcsVerifierTranscript<'a, F: TranscriptField, EF, C> { /* private fields */ }Expand description
Verifier-side transcript of one binary-tower PCS run.
Mirrors the prover driver step for step, so the two walk one description.
Implementations§
Source§impl<'a, F, EF, C> BinaryPcsVerifierTranscript<'a, F, EF, C>where
F: TranscriptField,
EF: Field + AlgebraIdentity<F>,
C: CanObserve<F> + CanSample<F> + CanSampleUniformBits<F> + GrindingChallenger<Witness = F>,
impl<'a, F, EF, C> BinaryPcsVerifierTranscript<'a, F, EF, C>where
F: TranscriptField,
EF: Field + AlgebraIdentity<F>,
C: CanObserve<F> + CanSample<F> + CanSampleUniformBits<F> + GrindingChallenger<Witness = F>,
Sourcepub fn new(challenger: &'a mut C, shape: BinaryPcsShape) -> Self
pub fn new(challenger: &'a mut C, shape: BinaryPcsShape) -> Self
Seed the transcript from the shape.
§Arguments
challenger: sponge of the surrounding protocol, borrowed for this run.shape: the numbers that fix this run’s transcript.
Sourcepub fn fold_batch<R>(&mut self, run: impl FnOnce(&mut C) -> R) -> R
pub fn fold_batch<R>(&mut self, run: impl FnOnce(&mut C) -> R) -> R
Lend the sponge to the delegated sumcheck rounds of one fold batch.
Sourcepub fn oracle_commitment<Com>(&mut self, commitment: Com)where
Com: Clone,
C: CanObserve<Com>,
pub fn oracle_commitment<Com>(&mut self, commitment: Com)where
Com: Clone,
C: CanObserve<Com>,
Replay one folded oracle’s Merkle root.
Sourcepub fn final_codeword(
&mut self,
codeword: &[EF],
) -> Result<(), TranscriptFailure<F>>
pub fn final_codeword( &mut self, codeword: &[EF], ) -> Result<(), TranscriptFailure<F>>
Replay the final codeword the proof carries.
§Errors
When the codeword is not the length the run was described with.
Sourcepub fn query_pow(&mut self, witness: F) -> Result<(), TranscriptFailure<F>>
pub fn query_pow(&mut self, witness: F) -> Result<(), TranscriptFailure<F>>
Replay the grind guarding the query positions.
§Errors
- The witness is not zero where the site asks for no work.
- The witness misses the difficulty the site requires.
Sourcepub fn query_pairs(&mut self) -> Vec<usize>
pub fn query_pairs(&mut self) -> Vec<usize>
Redraw the distinct fold pairs this run opens.
Auto Trait Implementations§
impl<'a, F, EF, C> !UnwindSafe for BinaryPcsVerifierTranscript<'a, F, EF, C>
impl<'a, F, EF, C> Freeze for BinaryPcsVerifierTranscript<'a, F, EF, C>
impl<'a, F, EF, C> RefUnwindSafe for BinaryPcsVerifierTranscript<'a, F, EF, C>where
VerifierState<'static, &'a mut C, FieldUnit<F>>: RefUnwindSafe,
PhantomData<EF>: RefUnwindSafe,
impl<'a, F, EF, C> Send for BinaryPcsVerifierTranscript<'a, F, EF, C>
impl<'a, F, EF, C> Sync for BinaryPcsVerifierTranscript<'a, F, EF, C>
impl<'a, F, EF, C> Unpin for BinaryPcsVerifierTranscript<'a, F, EF, C>
impl<'a, F, EF, C> UnsafeUnpin for BinaryPcsVerifierTranscript<'a, F, EF, C>
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