pub struct ChipletDef<F: TowerField> {
pub permutation_checks: Vec<(String, PermutationCheckSpec)>,
/* private fields */
}Expand description
Pre-computed chiplet AIR definition.
Fields§
§permutation_checks: Vec<(String, PermutationCheckSpec)>Implementations§
Source§impl<F: TowerField> ChipletDef<F>
impl<F: TowerField> ChipletDef<F>
Sourcepub fn from_air<P: Air<F> + Send + 'static>(p: &P) -> Result<Self>where
F: TraceCompatibleField + PackableField + HardwareField + 'static,
<F as PackableField>::Packed: Copy + Send + Sync,
pub fn from_air<P: Air<F> + Send + 'static>(p: &P) -> Result<Self>where
F: TraceCompatibleField + PackableField + HardwareField + 'static,
<F as PackableField>::Packed: Copy + Send + Sync,
Snapshot a chiplet’s full AIR definition. Call once at setup; the source chiplet can be dropped after.
Sourcepub fn prefix_bus_ids(&mut self, prefix: &str, exempt: &[String])
pub fn prefix_bus_ids(&mut self, prefix: &str, exempt: &[String])
Prefixes internal bus_ids with a namespace.
Bus_ids listed in exempt are left unchanged.
Sourcepub fn expand_variants<'a>(
&self,
trace: &'a ColumnTrace,
) -> Result<Vec<PolyVariant<'a, F>>>where
F: TraceCompatibleField + 'static,
pub fn expand_variants<'a>(
&self,
trace: &'a ColumnTrace,
) -> Result<Vec<PolyVariant<'a, F>>>where
F: TraceCompatibleField + 'static,
Expand physical ColumnTrace into virtual PolyVariants. Uses embedded expander if present, else 1:1 mapping.
Sourcepub fn from_wire(
name: String,
num_columns: usize,
constraint_ast: ConstraintAst<F>,
column_layout: Vec<ColumnType>,
virtual_column_layout: Vec<ColumnType>,
boundary_constraints: Vec<BoundaryConstraint<F>>,
lagrange_pins: Vec<LagrangePin>,
expander: Option<VirtualExpander>,
permutation_checks: Vec<(String, PermutationCheckSpec)>,
) -> Result<Self>
pub fn from_wire( name: String, num_columns: usize, constraint_ast: ConstraintAst<F>, column_layout: Vec<ColumnType>, virtual_column_layout: Vec<ColumnType>, boundary_constraints: Vec<BoundaryConstraint<F>>, lagrange_pins: Vec<LagrangePin>, expander: Option<VirtualExpander>, permutation_checks: Vec<(String, PermutationCheckSpec)>, ) -> Result<Self>
Reconstruct from deserialized wire data.
Validates every embedded PermutationCheckSpec.
Trait Implementations§
Source§impl<F: TowerField> Air<F> for ChipletDef<F>
impl<F: TowerField> Air<F> for ChipletDef<F>
fn name(&self) -> String
fn num_columns(&self) -> usize
Source§fn boundary_constraints(&self) -> Vec<BoundaryConstraint<F>>
fn boundary_constraints(&self) -> Vec<BoundaryConstraint<F>>
Returns the list of boundary constraints. Each
constraint ties a specific trace cell to a public
input value. By default, returns an empty list.
Source§fn column_layout(&self) -> &[ColumnType]
fn column_layout(&self) -> &[ColumnType]
Returns the physical layout
of the columns in the trace. Read more
Source§fn virtual_column_layout(&self) -> &[ColumnType]
fn virtual_column_layout(&self) -> &[ColumnType]
Returns the virtual layout of the columns
(after unpacking). Defaults to the expander’s
layout if present, else the physical layout.
Source§fn permutation_checks(&self) -> Vec<(String, PermutationCheckSpec)>
fn permutation_checks(&self) -> Vec<(String, PermutationCheckSpec)>
Returns the permutation check
specifications for this AIR table. Read more
Source§fn lagrange_pinned_columns(&self) -> Vec<LagrangePin>
fn lagrange_pinned_columns(&self) -> Vec<LagrangePin>
Columns whose MLE evaluation must equal a fixed
Lagrange kernel at the verifier’s r_final.
Source§fn virtual_expander(&self) -> Option<&VirtualExpander>
fn virtual_expander(&self) -> Option<&VirtualExpander>
Returns the
VirtualExpander for chiplets
with physical to virtual column expansion.Source§fn parse_virtual_row(&self, bytes: &[u8], res: &mut Vec<Flat<F>>)where
F: TraceCompatibleField,
fn parse_virtual_row(&self, bytes: &[u8], res: &mut Vec<Flat<F>>)where
F: TraceCompatibleField,
Parses a raw physical row (bytes) into
the full Virtual Row (fields). Used by
the Verifier to reconstruct the virtual
trace from committed data. Read more
Source§fn constraint_ast(&self) -> ConstraintAst<F>
fn constraint_ast(&self) -> ConstraintAst<F>
Returns the constraint system as an AST-DAG.
Source§fn constraints(&self) -> Vec<Constraint<F>>
fn constraints(&self) -> Vec<Constraint<F>>
Flat expansion of
constraint_ast().Source§fn inline_chiplets(&self) -> Result<Vec<ChipletDef<F>>>
fn inline_chiplets(&self) -> Result<Vec<ChipletDef<F>>>
Chiplet defs used only for kernel dispatch.
Source§fn inline_chiplet_kernels(&self) -> Vec<InlineKernelHint>
fn inline_chiplet_kernels(&self) -> Vec<InlineKernelHint>
Each hint’s
chiplet_idx indexes into inline_chiplets().Source§impl<F: TowerField> Clone for ChipletDef<F>
impl<F: TowerField> Clone for ChipletDef<F>
Auto Trait Implementations§
impl<F> Freeze for ChipletDef<F>
impl<F> RefUnwindSafe for ChipletDef<F>where
F: RefUnwindSafe,
impl<F> Send for ChipletDef<F>
impl<F> Sync for ChipletDef<F>
impl<F> Unpin for ChipletDef<F>where
F: Unpin,
impl<F> UnsafeUnpin for ChipletDef<F>
impl<F> UnwindSafe for ChipletDef<F>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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