Struct FilteredAirBuilder

Source
pub struct FilteredAirBuilder<'a, AB: AirBuilder> {
    pub inner: &'a mut AB,
    /* private fields */
}
Expand description

A wrapper around an AirBuilder that enforces constraints only when a specified condition is met.

This struct allows selectively applying constraints to certain rows or under certain conditions in the AIR, without modifying the underlying logic. All constraints asserted through this filtered builder will be multiplied by the given condition, effectively disabling them when condition evaluates to zero.

Fields§

§inner: &'a mut AB

Reference to the underlying inner AirBuilder where constraints are ultimately recorded.

Implementations§

Source§

impl<AB: AirBuilder> FilteredAirBuilder<'_, AB>

Source

pub fn condition(&self) -> AB::Expr

Trait Implementations§

Source§

impl<AB: AirBuilder> AirBuilder for FilteredAirBuilder<'_, AB>

Source§

type F = <AB as AirBuilder>::F

Underlying field type. Read more
Source§

type Expr = <AB as AirBuilder>::Expr

Serves as the output type for an AIR constraint evaluation.
Source§

type Var = <AB as AirBuilder>::Var

The type of the variable appearing in the trace matrix. Read more
Source§

type M = <AB as AirBuilder>::M

Matrix type holding variables.
Source§

fn main(&self) -> Self::M

Return the matrix representing the main (primary) trace registers.
Source§

fn is_first_row(&self) -> Self::Expr

Expression evaluating to 1 on the first row, 0 elsewhere.
Source§

fn is_last_row(&self) -> Self::Expr

Expression evaluating to 1 on the last row, 0 elsewhere.
Source§

fn is_transition_window(&self, size: usize) -> Self::Expr

Expression evaluating to 1 on rows except the last size - 1 rows, 0 otherwise.
Source§

fn assert_zero<I: Into<Self::Expr>>(&mut self, x: I)

Assert that the given element is zero. Read more
Source§

fn is_transition(&self) -> Self::Expr

Expression evaluating to 1 on all transition rows (not last row), 0 on last row.
Source§

fn when<I: Into<Self::Expr>>( &mut self, condition: I, ) -> FilteredAirBuilder<'_, Self>

Returns a sub-builder whose constraints are enforced only when condition is nonzero.
Source§

fn when_ne<I1: Into<Self::Expr>, I2: Into<Self::Expr>>( &mut self, x: I1, y: I2, ) -> FilteredAirBuilder<'_, Self>

Returns a sub-builder whose constraints are enforced only when x != y.
Source§

fn when_first_row(&mut self) -> FilteredAirBuilder<'_, Self>

Returns a sub-builder whose constraints are enforced only on the first row.
Source§

fn when_last_row(&mut self) -> FilteredAirBuilder<'_, Self>

Returns a sub-builder whose constraints are enforced only on the last row.
Source§

fn when_transition(&mut self) -> FilteredAirBuilder<'_, Self>

Returns a sub-builder whose constraints are enforced on all rows except the last.
Source§

fn when_transition_window( &mut self, size: usize, ) -> FilteredAirBuilder<'_, Self>

Returns a sub-builder whose constraints are enforced on all rows except the last size - 1.
Source§

fn assert_zeros<const N: usize, I: Into<Self::Expr>>(&mut self, array: [I; N])

Assert that every element of a given array is 0. Read more
Source§

fn assert_bools<const N: usize, I: Into<Self::Expr>>(&mut self, array: [I; N])

Assert that a given array consists of only boolean values.
Source§

fn assert_one<I: Into<Self::Expr>>(&mut self, x: I)

Assert that x element is equal to 1.
Source§

fn assert_eq<I1: Into<Self::Expr>, I2: Into<Self::Expr>>( &mut self, x: I1, y: I2, )

Assert that the given elements are equal.
Source§

fn assert_bool<I: Into<Self::Expr>>(&mut self, x: I)

Assert that x is a boolean, i.e. either 0 or 1. Read more
Source§

impl<'a, AB: Debug + AirBuilder> Debug for FilteredAirBuilder<'a, AB>
where AB::Expr: Debug,

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<AB: ExtensionBuilder> ExtensionBuilder for FilteredAirBuilder<'_, AB>

Source§

type EF = <AB as ExtensionBuilder>::EF

Extension field type.
Source§

type ExprEF = <AB as ExtensionBuilder>::ExprEF

Expression type over extension field elements.
Source§

type VarEF = <AB as ExtensionBuilder>::VarEF

Variable type over extension field elements.
Source§

fn assert_zero_ext<I>(&mut self, x: I)
where I: Into<Self::ExprEF>,

Assert that an extension field expression is zero.
Source§

fn assert_eq_ext<I1, I2>(&mut self, x: I1, y: I2)
where I1: Into<Self::ExprEF>, I2: Into<Self::ExprEF>,

Assert that two extension field expressions are equal.
Source§

fn assert_one_ext<I>(&mut self, x: I)
where I: Into<Self::ExprEF>,

Assert that an extension field expression is equal to one.
Source§

impl<AB: PairBuilder> PairBuilder for FilteredAirBuilder<'_, AB>

Source§

fn preprocessed(&self) -> Self::M

Return a matrix of preprocessed registers.
Source§

impl<AB: PermutationAirBuilder> PermutationAirBuilder for FilteredAirBuilder<'_, AB>

Source§

type MP = <AB as PermutationAirBuilder>::MP

Matrix type over extension field variables representing a permutation.
Source§

type RandomVar = <AB as PermutationAirBuilder>::RandomVar

Randomness variable type used in permutation commitments.
Source§

fn permutation(&self) -> Self::MP

Return the matrix representing permutation registers.
Source§

fn permutation_randomness(&self) -> &[Self::RandomVar]

Return the list of randomness values for permutation argument.

Auto Trait Implementations§

§

impl<'a, AB> Freeze for FilteredAirBuilder<'a, AB>
where <AB as AirBuilder>::Expr: Freeze,

§

impl<'a, AB> RefUnwindSafe for FilteredAirBuilder<'a, AB>

§

impl<'a, AB> Send for FilteredAirBuilder<'a, AB>
where <AB as AirBuilder>::Expr: Send, AB: Send,

§

impl<'a, AB> Sync for FilteredAirBuilder<'a, AB>
where <AB as AirBuilder>::Expr: Sync, AB: Sync,

§

impl<'a, AB> Unpin for FilteredAirBuilder<'a, AB>
where <AB as AirBuilder>::Expr: Unpin,

§

impl<'a, AB> !UnwindSafe for FilteredAirBuilder<'a, AB>

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