Type Alias VerifierConstraintFolder

Source
pub type VerifierConstraintFolder<'a, SC> = GenericVerifierConstraintFolder<'a, Val<SC>, <SC as StarkGenericConfig>::Challenge, Val<SC>, <SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenge>;

Aliased Type§

struct VerifierConstraintFolder<'a, SC> {
    pub preprocessed: VerticalPair<DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>, DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>>,
    pub partitioned_main: Vec<VerticalPair<DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>, DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>>>,
    pub after_challenge: Vec<VerticalPair<DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>, DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>>>,
    pub challenges: &'a [Vec<<SC as StarkGenericConfig>::Challenge>],
    pub is_first_row: <SC as StarkGenericConfig>::Challenge,
    pub is_last_row: <SC as StarkGenericConfig>::Challenge,
    pub is_transition: <SC as StarkGenericConfig>::Challenge,
    pub alpha: <SC as StarkGenericConfig>::Challenge,
    pub accumulator: <SC as StarkGenericConfig>::Challenge,
    pub public_values: &'a [<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val],
    pub exposed_values_after_challenge: &'a [Vec<<SC as StarkGenericConfig>::Challenge>],
    pub _marker: PhantomData<(<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val, <SC as StarkGenericConfig>::Challenge)>,
}

Fields§

§preprocessed: VerticalPair<DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>, DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>>§partitioned_main: Vec<VerticalPair<DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>, DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>>>§after_challenge: Vec<VerticalPair<DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>, DenseMatrix<<SC as StarkGenericConfig>::Challenge, &'a [<SC as StarkGenericConfig>::Challenge]>>>§challenges: &'a [Vec<<SC as StarkGenericConfig>::Challenge>]§is_first_row: <SC as StarkGenericConfig>::Challenge§is_last_row: <SC as StarkGenericConfig>::Challenge§is_transition: <SC as StarkGenericConfig>::Challenge§alpha: <SC as StarkGenericConfig>::Challenge§accumulator: <SC as StarkGenericConfig>::Challenge§public_values: &'a [<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val]§exposed_values_after_challenge: &'a [Vec<<SC as StarkGenericConfig>::Challenge>]§_marker: PhantomData<(<<<SC as StarkGenericConfig>::Pcs as Pcs<<SC as StarkGenericConfig>::Challenge, <SC as StarkGenericConfig>::Challenger>>::Domain as PolynomialSpace>::Val, <SC as StarkGenericConfig>::Challenge)>

Implementations

Source§

impl<F, EF, PubVar, Var, Expr> GenericVerifierConstraintFolder<'_, F, EF, PubVar, Var, Expr>
where F: Field, EF: ExtensionField<F>, Expr: FieldAlgebra + From<F> + MulAssign<Var> + AddAssign<Var> + Send + Sync, Var: Into<Expr> + Copy + Send + Sync, PubVar: Into<Expr> + Copy + Send + Sync,

Source

pub fn eval_constraints(&mut self, constraints: &SymbolicExpressionDag<F>)

Source

pub fn assert_zero(&mut self, x: impl Into<Expr>)

Trait Implementations

Source§

impl<F, EF, PubVar, Var, Expr> SymbolicEvaluator<F, Expr> for GenericVerifierConstraintFolder<'_, F, EF, PubVar, Var, Expr>
where F: Field, EF: ExtensionField<F>, Expr: FieldAlgebra + From<F> + Send + Sync, Var: Into<Expr> + Copy + Send + Sync, PubVar: Into<Expr> + Copy + Send + Sync,

Source§

fn eval_const(&self, c: F) -> Expr

Source§

fn eval_is_first_row(&self) -> Expr

Source§

fn eval_is_last_row(&self) -> Expr

Source§

fn eval_is_transition(&self) -> Expr

Source§

fn eval_var(&self, symbolic_var: SymbolicVariable<F>) -> Expr

Source§

fn eval_expr(&self, symbolic_expr: &SymbolicExpression<F>) -> E

Source§

fn eval_nodes(&self, nodes: &[SymbolicExpressionNode<F>]) -> Vec<E>
where E: Clone,

Assumes that nodes are in topological order (if B references A, then B comes after A). Simple serial evaluation in order.