Skip to main content

Verifier

Struct Verifier 

Source
pub struct Verifier<F: Field, EF: ExtensionField<F>> { /* private fields */ }
Expand description

Verifier-side layout and claim registry.

Implementations§

Source§

impl<F: Field, EF: ExtensionField<F>> Verifier<F, EF>

Source

pub fn new(tables: &[TableShape], strategy: LayoutStrategy) -> Self

Reconstructs the verifier-side layout from table shapes.

§Algorithm
  • Sort table indices by arity ascending.
  • Iterate reversed, so largest tables get placed first.
  • Each column occupies one slot of size 2^arity.
  • Stacked arity equals log2 of total stacked size, rounded up.
Source

pub const fn strategy(&self) -> LayoutStrategy

Return the layout strategy this verifier was constructed with.

Downstream protocols read it to dispatch on the binding direction without threading the strategy through their own state.

Source

pub fn num_variables_table(&self, table_idx: usize) -> usize

Returns the arity of the source table at the given index.

Source

pub fn add_claim<Ch>( &mut self, table_idx: usize, polys: &[usize], evals: &[EF], challenger: &mut Ch, )
where Ch: FieldChallenger<F> + GrindingChallenger<Witness = F>,

Records concrete opening claims for one table.

§Arguments
  • table_idx — source table index.
  • polys — column indices that were opened; must be non-empty.
  • evals — claimed evaluations, aligned with the column list.
  • challenger — Fiat–Shamir transcript.
§Fiat–Shamir
  • Samples the opening point internally from the challenger.
  • Absorbs the evaluations into the transcript.
  • Mirrors exactly the prover’s eval absorption order.
§Panics
  • Columns list must be non-empty.
  • Column list and evaluation list must have equal length.
  • Every column index must be in range for this table.
Source

pub fn add_virtual_eval<Ch>(&mut self, eval: EF, challenger: &mut Ch)
where Ch: FieldChallenger<F> + GrindingChallenger<Witness = F>,

Records a virtual evaluation claim on the full stacked polynomial.

§Fiat–Shamir
  • Samples the opening point from the challenger.
  • Absorbs the evaluation into the transcript.
  • Mirrors exactly the prover’s add_virtual_eval absorption order.
Source

pub fn sum(&self, alpha: EF) -> EF

Computes the batched claimed sum across concrete and virtual openings.

    sum = sum_{i}  alpha^i * eval_i
§Traversal order
  • Concrete openings first, walked in stacked-polynomial order.
  • Virtual claims continue the alpha sequence after the concrete ones.
Source

pub fn constraint(&self, alpha: EF) -> Constraint<F, EF>

Builds the verifier-side equality constraint batching every claim.

§Contributions
  • Concrete opening: equality at the selector-lifted claim point.
  • Virtual claim: equality at the full stacked point.

Trait Implementations§

Source§

impl<F: Clone + Field, EF: Clone + ExtensionField<F>> Clone for Verifier<F, EF>

Source§

fn clone(&self) -> Verifier<F, EF>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<F: Debug + Field, EF: Debug + ExtensionField<F>> Debug for Verifier<F, EF>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<F, EF> Freeze for Verifier<F, EF>

§

impl<F, EF> RefUnwindSafe for Verifier<F, EF>

§

impl<F, EF> Send for Verifier<F, EF>

§

impl<F, EF> Sync for Verifier<F, EF>

§

impl<F, EF> Unpin for Verifier<F, EF>
where F: Unpin, EF: Unpin,

§

impl<F, EF> UnsafeUnpin for Verifier<F, EF>

§

impl<F, EF> UnwindSafe for Verifier<F, EF>
where F: UnwindSafe, EF: 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<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