pub struct BinaryPcsProverTranscript<'a, F: TranscriptField, EF, C> { /* private fields */ }Expand description
Prover-side transcript of one binary-tower PCS run.
The challenger is borrowed, not consumed.
The run sits inside a larger protocol, whose transcript continues where this one stops.
Implementations§
Source§impl<'a, F, EF, C> BinaryPcsProverTranscript<'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> BinaryPcsProverTranscript<'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.
A sumcheck round seeds a sub-transcript of its own, so no step of it belongs here.
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>,
Bind one folded oracle’s Merkle root.
Sourcepub fn final_codeword(&mut self, codeword: &[EF])
pub fn final_codeword(&mut self, codeword: &[EF])
Bind the final codeword, which travels in the clear.
§Panics
When the codeword is not the length the run was described with.
Sourcepub fn query_pow(&mut self) -> F
pub fn query_pow(&mut self) -> F
Grind the site guarding the query positions.
§Returns
The witness the search found, or zero when the site asks for no work.
Sourcepub fn query_pairs(&mut self) -> Vec<usize>
pub fn query_pairs(&mut self) -> Vec<usize>
Draw the distinct fold pairs this run opens.
§Returns
Each pair’s low-indexed position, in ascending order.
Auto Trait Implementations§
impl<'a, F, EF, C> !UnwindSafe for BinaryPcsProverTranscript<'a, F, EF, C>
impl<'a, F, EF, C> Freeze for BinaryPcsProverTranscript<'a, F, EF, C>
impl<'a, F, EF, C> RefUnwindSafe for BinaryPcsProverTranscript<'a, F, EF, C>
impl<'a, F, EF, C> Send for BinaryPcsProverTranscript<'a, F, EF, C>
impl<'a, F, EF, C> Sync for BinaryPcsProverTranscript<'a, F, EF, C>
impl<'a, F, EF, C> Unpin for BinaryPcsProverTranscript<'a, F, EF, C>
impl<'a, F, EF, C> UnsafeUnpin for BinaryPcsProverTranscript<'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