pub struct AirShape {
pub num_composed_constraints: u32,
pub max_constraint_degree: u32,
pub num_quotient_chunks: u32,
pub max_combo: u32,
pub num_deep_terms: Option<u32>,
pub lookup: Option<LookupShape>,
}Expand description
Shape of the AIRs being proved, aggregated over every AIR in the proof.
Fields§
§num_composed_constraints: u32Total constraints batched into the composition polynomial, plus one slot for each AIR
beyond the first when a second challenge batches multiple AIRs together (0 slots for a
single-AIR statement, which needs no cross-AIR batching challenge).
max_constraint_degree: u32Maximum constraint degree over all AIRs.
num_quotient_chunks: u32Exact committed quotient chunk count, including ZK degree padding and doubling.
max_combo: u32Maximum number of out-of-domain points referenced per committed column — one per distinct
point the AIR’s rotations induce: 2 for an AIR that opens local and next, 1 for an
AIR whose constraints all read a single row, and higher for a wider rotation set.
Read by the out-of-domain round, independent of Self::num_deep_terms.
num_deep_terms: Option<u32>Total committed columns opened by a DEEP-quotient batching argument, plus one slot per
out-of-domain point, or None when the protocol performs no α/β column-batching reduction
over its committed openings. The budget’s out-of-domain round is charged regardless of this
field; None only waives the separate DEEP-composition round.
lookup: Option<LookupShape>Lookup argument shape, or None when the protocol has no lookup round.
A present shape with zero fractions is invalid and reports zero security.
Trait Implementations§
impl Copy for AirShape
impl Eq for AirShape
impl StructuralPartialEq for AirShape
Auto Trait Implementations§
impl Freeze for AirShape
impl RefUnwindSafe for AirShape
impl Send for AirShape
impl Sync for AirShape
impl Unpin for AirShape
impl UnsafeUnpin for AirShape
impl UnwindSafe for AirShape
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