Skip to main content

PcsTranscript

Struct PcsTranscript 

Source
pub struct PcsTranscript<EF, L>
where L: Lmcs, <L as Lmcs>::F: Field, EF: ExtensionField<<L as Lmcs>::F>,
{ pub deep_transcript: DeepTranscript<<L as Lmcs>::F, EF>, pub fri_transcript: FriTranscript<<L as Lmcs>::F, EF, <L as Lmcs>::Commitment>, pub query_pow_witness: <L as Lmcs>::F, pub query_indices: Vec<usize>, pub deep_witnesses: Vec<<L as Lmcs>::BatchProof>, pub fri_witnesses: Vec<<L as Lmcs>::BatchProof>, }
Expand description

Structured transcript view for the full PCS interaction.

Captures observed transcript data plus parsed LMCS batch openings for inspection.

Fields§

§deep_transcript: DeepTranscript<<L as Lmcs>::F, EF>

DEEP transcript data (evals, PoW witness, challenges).

§fri_transcript: FriTranscript<<L as Lmcs>::F, EF, <L as Lmcs>::Commitment>

FRI transcript data (round commitments/challenges, final polynomial).

§query_pow_witness: <L as Lmcs>::F

Proof-of-work witness for query sampling.

§query_indices: Vec<usize>

Query indices in sampling order (domain indices, may contain duplicates).

§deep_witnesses: Vec<<L as Lmcs>::BatchProof>

Batch witness per trace tree (leaf data + Merkle witness).

§fri_witnesses: Vec<<L as Lmcs>::BatchProof>

Batch witness per FRI round (leaf data + Merkle witness).

Implementations§

Source§

impl<EF, L> PcsTranscript<EF, L>
where L: Lmcs, <L as Lmcs>::F: TwoAdicField, EF: ExtensionField<<L as Lmcs>::F>,

Source

pub fn from_verifier_channel<Ch, const N: usize>( params: &PcsParams, lmcs: &L, commitments: &[(<L as Lmcs>::Commitment, Vec<usize>)], log_lde_height: u8, eval_points: [EF; N], channel: &mut Ch, ) -> Result<PcsTranscript<EF, L>, TranscriptError>
where Ch: VerifierChannel<F = <L as Lmcs>::F, Commitment = <L as Lmcs>::Commitment>,

Parse a PCS transcript from a verifier channel without validation.

Composes DeepTranscript, FriTranscript, and per-query LMCS batch proofs. Does not verify any claims; validation happens in verify_multi. Commitment widths must match the committed rows (including any alignment padding), and all commitments are expected to be lifted to the same log_lde_height.

log_lde_height is the log₂ of the LDE evaluation domain height (i.e. the height of the committed LDE matrices). When a trace degree is known, it is typically log_trace_height + params.fri.log_blowup (plus any extension used by the caller).

Auto Trait Implementations§

§

impl<EF, L> Freeze for PcsTranscript<EF, L>
where <L as Lmcs>::F: for<'de> Sized + Freeze, EF: Freeze,

§

impl<EF, L> RefUnwindSafe for PcsTranscript<EF, L>
where <L as Lmcs>::F: for<'de> Sized + RefUnwindSafe, EF: RefUnwindSafe, <L as Lmcs>::BatchProof: RefUnwindSafe, <L as Lmcs>::Commitment: RefUnwindSafe,

§

impl<EF, L> Send for PcsTranscript<EF, L>
where <L as Lmcs>::F: for<'de> Sized, <L as Lmcs>::BatchProof: Send, <L as Lmcs>::Commitment: Send,

§

impl<EF, L> Sync for PcsTranscript<EF, L>
where <L as Lmcs>::F: for<'de> Sized, <L as Lmcs>::BatchProof: Sync, <L as Lmcs>::Commitment: Sync,

§

impl<EF, L> Unpin for PcsTranscript<EF, L>
where <L as Lmcs>::F: for<'de> Sized + Unpin, EF: Unpin, <L as Lmcs>::BatchProof: Unpin, <L as Lmcs>::Commitment: Unpin,

§

impl<EF, L> UnsafeUnpin for PcsTranscript<EF, L>
where <L as Lmcs>::F: for<'de> Sized + UnsafeUnpin, EF: UnsafeUnpin,

§

impl<EF, L> UnwindSafe for PcsTranscript<EF, L>
where <L as Lmcs>::F: for<'de> Sized + UnwindSafe, EF: UnwindSafe, <L as Lmcs>::BatchProof: UnwindSafe, <L as Lmcs>::Commitment: UnwindSafe,

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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