pub struct StarkAirParams {
pub num_constraints: usize,
pub max_constraint_degree: usize,
pub num_quotient_chunks: usize,
pub max_combo: usize,
}Expand description
AIR-derived shape used in DEEP-ALI and composition-error bounds.
Fields§
§num_constraints: usize§max_constraint_degree: usize§num_quotient_chunks: usizeExact number of committed quotient chunks, including ZK degree padding and doubling.
max_combo: usizeDEEP-ALI max_combo: maximum number of out-of-domain points
referenced per column (typically 2 for local/next).
Implementations§
Source§impl StarkAirParams
impl StarkAirParams
Sourcepub fn from_air<F, EF, A>(
air: &A,
layout: AirLayout,
trace_domain: impl PolynomialSpace<Val = F>,
max_combo: usize,
is_zk: bool,
) -> Self
pub fn from_air<F, EF, A>( air: &A, layout: AirLayout, trace_domain: impl PolynomialSpace<Val = F>, max_combo: usize, is_zk: bool, ) -> Self
Derive num_constraints and max_constraint_degree by symbolically
evaluating the AIR’s constraints. The caller supplies max_combo
(typically 2 for an AIR using local/next rotations, 1 if
there is no transition constraint).
trace_domain must be the prover’s original trace domain (before ZK padding):
its selector model and size determine the constraint degree. is_zk selects
the prover’s degree padding and quotient-chunk doubling.
§layout must include every committed column width
layout controls which column widths the symbolic builder allocates
when evaluating constraints. A base-only layout (e.g.
AirLayout::from_air, which fills only the BaseAir widths)
leaves the permutation / lookup / preprocessed widths at 0, so
any constraints over those columns evaluate as identically zero and
are dropped — resulting in an overstated security bound.
For an AIR that uses lookups or other permutation arguments, construct the layout with the full set of widths (base + permutation
- preprocessed). For pure base AIRs,
AirLayout::from_airis safe.
Trait Implementations§
Source§impl Clone for StarkAirParams
impl Clone for StarkAirParams
impl Copy for StarkAirParams
Auto Trait Implementations§
impl Freeze for StarkAirParams
impl RefUnwindSafe for StarkAirParams
impl Send for StarkAirParams
impl Sync for StarkAirParams
impl Unpin for StarkAirParams
impl UnsafeUnpin for StarkAirParams
impl UnwindSafe for StarkAirParams
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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