Skip to main content

PermutationAirBuilder

Trait PermutationAirBuilder 

pub trait PermutationAirBuilder: ExtensionBuilder {
    type MP: WindowAccess<Self::VarEF>;
    type RandomVar: Into<Self::ExprEF> + Copy;
    type PermutationVar: Into<Self::ExprEF> + Clone;

    // Required methods
    fn permutation(&self) -> Self::MP;
    fn permutation_randomness(&self) -> &[Self::RandomVar];
    fn permutation_values(&self) -> &[Self::PermutationVar];
}
Expand description

Trait for builders supporting permutation arguments (e.g., for lookup constraints).

Required Associated Types§

type MP: WindowAccess<Self::VarEF>

Two-row window over the permutation trace columns.

type RandomVar: Into<Self::ExprEF> + Copy

Randomness variable type used in permutation commitments.

type PermutationVar: Into<Self::ExprEF> + Clone

Value type for expected cumulated values used in global lookup arguments.

Required Methods§

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

Return the current and next row slices of the permutation trace.

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

Return the list of randomness values for permutation argument.

fn permutation_values(&self) -> &[Self::PermutationVar]

Return the expected cumulated values for global lookup arguments.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

§

impl<'a, F, EF> PermutationAirBuilder for DebugConstraintBuilder<'a, F, EF>
where F: Field, EF: ExtensionField<F>,

§

type MP = RowWindow<'a, EF>

§

type RandomVar = EF

§

type PermutationVar = EF

§

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

§

impl<F, EF> PermutationAirBuilder for SymbolicAirBuilder<F, EF>
where F: Field, EF: ExtensionField<F>, SymbolicExpr<ExtLeaf<F, EF>>: Algebra<EF>,

§

type MP = DenseMatrix<<SymbolicAirBuilder<F, EF> as ExtensionBuilder>::VarEF>

§

type RandomVar = SymbolicVariableExt<F, EF>

§

type PermutationVar = SymbolicVariableExt<F, EF>