Skip to main content

BinaryPcsProverTranscript

Struct BinaryPcsProverTranscript 

Source
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>

Source

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.
Source

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.

Source

pub fn oracle_commitment<Com>(&mut self, commitment: Com)
where Com: Clone, C: CanObserve<Com>,

Bind one folded oracle’s Merkle root.

Source

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.

Source

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.

Source

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.

Source

pub fn abort(&mut self)

Release the completeness check without playing the rest of the description.

A caller that deliberately runs only part of a run closes it this way.

Dropping an unfinished driver otherwise panics.

Source

pub fn finish(self)

Close the transcript once every described step has been played.

§Panics

When the run played fewer steps than it was described with.

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more