pub type RecursiveVerifierConstraintFolder<'a, C> = GenericVerifierConstraintFolder<'a, <C as Config>::F, <C as Config>::EF, Felt<<C as Config>::F>, Ext<<C as Config>::F, <C as Config>::EF>, SymbolicExt<<C as Config>::F, <C as Config>::EF>>;
Aliased Type§
struct RecursiveVerifierConstraintFolder<'a, C> {
pub preprocessed: VerticalPair<DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>, DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>>,
pub main: VerticalPair<DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>, DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>>,
pub perm: VerticalPair<DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>, DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>>,
pub perm_challenges: &'a [Ext<<C as Config>::F, <C as Config>::EF>],
pub cumulative_sum: Ext<<C as Config>::F, <C as Config>::EF>,
pub is_first_row: Ext<<C as Config>::F, <C as Config>::EF>,
pub is_last_row: Ext<<C as Config>::F, <C as Config>::EF>,
pub is_transition: Ext<<C as Config>::F, <C as Config>::EF>,
pub alpha: Ext<<C as Config>::F, <C as Config>::EF>,
pub accumulator: SymbolicExt<<C as Config>::F, <C as Config>::EF>,
pub public_values: &'a [Felt<<C as Config>::F>],
pub _marker: PhantomData<(<C as Config>::F, <C as Config>::EF)>,
}
Fields§
§preprocessed: VerticalPair<DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>, DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>>
The preprocessed trace.
main: VerticalPair<DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>, DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>>
The main trace.
perm: VerticalPair<DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>, DenseMatrix<Ext<<C as Config>::F, <C as Config>::EF>, &'a [Ext<<C as Config>::F, <C as Config>::EF>]>>
The permutation trace.
perm_challenges: &'a [Ext<<C as Config>::F, <C as Config>::EF>]
The challenges for the permutation.
cumulative_sum: Ext<<C as Config>::F, <C as Config>::EF>
The cumulative sum of the permutation.
is_first_row: Ext<<C as Config>::F, <C as Config>::EF>
The selector for the first row.
is_last_row: Ext<<C as Config>::F, <C as Config>::EF>
The selector for the last row.
is_transition: Ext<<C as Config>::F, <C as Config>::EF>
The selector for the transition.
alpha: Ext<<C as Config>::F, <C as Config>::EF>
The constraint folding challenge.
accumulator: SymbolicExt<<C as Config>::F, <C as Config>::EF>
The accumulator for the constraint folding.
public_values: &'a [Felt<<C as Config>::F>]
The public values.
_marker: PhantomData<(<C as Config>::F, <C as Config>::EF)>
The marker type.
Trait Implementations
Source§impl<'a, F, EF, PubVar, Var, Expr> AirBuilder for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
EF: ExtensionField<F>,
PubVar: Into<Expr> + Copy,
impl<'a, F, EF, PubVar, Var, Expr> AirBuilder for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
EF: ExtensionField<F>,
PubVar: Into<Expr> + Copy,
type F = F
type Expr = Expr
type Var = Var
type M = VerticalPair<DenseMatrix<Var, &'a [Var]>, DenseMatrix<Var, &'a [Var]>>
fn main( &self, ) -> <GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as AirBuilder>::M
fn is_first_row( &self, ) -> <GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as AirBuilder>::Expr
fn is_last_row( &self, ) -> <GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as AirBuilder>::Expr
fn is_transition_window( &self, size: usize, ) -> <GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as AirBuilder>::Expr
fn assert_zero<I>(&mut self, x: I)
fn is_transition(&self) -> Self::Expr
Source§fn when<I>(&mut self, condition: I) -> FilteredAirBuilder<'_, Self>
fn when<I>(&mut self, condition: I) -> FilteredAirBuilder<'_, Self>
Returns a sub-builder whose constraints are enforced only when
condition
is nonzero.Source§fn when_ne<I1, I2>(&mut self, x: I1, y: I2) -> FilteredAirBuilder<'_, Self>
fn when_ne<I1, I2>(&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>
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>
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>
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>
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
.fn assert_one<I>(&mut self, x: I)
fn assert_eq<I1, I2>(&mut self, x: I1, y: I2)
Source§fn assert_bool<I>(&mut self, x: I)
fn assert_bool<I>(&mut self, x: I)
Assert that
x
is a boolean, i.e. either 0 or 1.Source§impl<'a, F, EF, PubVar, Var, Expr> AirBuilderWithPublicValues for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<F = EF, Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
EF: ExtensionField<F>,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
PubVar: Into<Expr> + Copy,
impl<'a, F, EF, PubVar, Var, Expr> AirBuilderWithPublicValues for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<F = EF, Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
EF: ExtensionField<F>,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
PubVar: Into<Expr> + Copy,
type PublicVar = PubVar
fn public_values( &self, ) -> &[<GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as AirBuilderWithPublicValues>::PublicVar]
Source§impl<'a, F, EF, PubVar, Var, Expr> ExtensionBuilder for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<F = EF, Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
EF: ExtensionField<F>,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
PubVar: Into<Expr> + Copy,
impl<'a, F, EF, PubVar, Var, Expr> ExtensionBuilder for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<F = EF, Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
EF: ExtensionField<F>,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
PubVar: Into<Expr> + Copy,
type EF = EF
type ExprEF = Expr
type VarEF = Var
fn assert_zero_ext<I>(&mut self, x: I)where
I: Into<<GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as ExtensionBuilder>::ExprEF>,
fn assert_eq_ext<I1, I2>(&mut self, x: I1, y: I2)
fn assert_one_ext<I>(&mut self, x: I)
Source§impl<'a, F, EF, PubVar, Var, Expr> MultiTableAirBuilder for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<F = EF, Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
EF: ExtensionField<F>,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
PubVar: Into<Expr> + Copy,
impl<'a, F, EF, PubVar, Var, Expr> MultiTableAirBuilder for GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr>where
Expr: Sub<F, Output = Expr, Output = Expr> + Mul<Var, Output = Expr, Output = Expr> + Mul<F> + MulAssign<EF> + AbstractField<F = EF, Output = Expr, Output = Expr> + From<F> + Add<Var> + Add<F> + Sub<Var>,
F: Field,
EF: ExtensionField<F>,
Var: Into<Expr> + Copy + Add<F, Output = Expr, Output = Expr, Output = Expr> + Add + Add<Expr> + Sub<F, Output = Expr, Output = Expr, Output = Expr> + Sub + Sub<Expr> + Mul<F, Output = Expr, Output = Expr, Output = Expr> + Mul + Mul<Expr> + Send + Sync,
PubVar: Into<Expr> + Copy,
Source§fn cumulative_sum(
&self,
) -> <GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as MultiTableAirBuilder>::Sum
fn cumulative_sum( &self, ) -> <GenericVerifierConstraintFolder<'a, F, EF, PubVar, Var, Expr> as MultiTableAirBuilder>::Sum
Returns the cumulative sum of the permutation.