pub struct CircuitProgram<F: TowerField> { /* private fields */ }Expand description
A Circuit’s compiled program.
Trait Implementations§
Source§impl<F: TowerField> Air<F> for CircuitProgram<F>
impl<F: TowerField> Air<F> for CircuitProgram<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 fixed_columns(&self) -> Vec<FixedColumn<F>>
fn fixed_columns(&self) -> Vec<FixedColumn<F>>
Columns pinned to a fixed shape, bound by MLE
equality at
r_final. Each shape must be a pure
function of the row index, not the witness.Source§fn virtual_expander(&self) -> Option<&VirtualExpander>
fn virtual_expander(&self) -> Option<&VirtualExpander>
Returns the
VirtualExpander for chiplets
with physical to virtual column expansion.
Non-reuse entries must tile column_layout()
exactly; an uncovered column is bound by nothing.Source§fn constraint_ast(&self) -> ConstraintAst<F>
fn constraint_ast(&self) -> ConstraintAst<F>
Returns the constraint system as an AST-DAG.
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§fn constraints(&self) -> Vec<Constraint<F>>
fn constraints(&self) -> Vec<Constraint<F>>
Flat expansion of
constraint_ast().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§impl<F: Clone + TowerField> Clone for CircuitProgram<F>
impl<F: Clone + TowerField> Clone for CircuitProgram<F>
Source§impl<F: TowerField> Program<F> for CircuitProgram<F>
impl<F: TowerField> Program<F> for CircuitProgram<F>
Source§fn num_public_inputs(&self) -> usize
fn num_public_inputs(&self) -> usize
Number of public inputs for this program.
Source§fn chiplet_defs(&self) -> Result<Vec<ChipletDef<F>>>
fn chiplet_defs(&self) -> Result<Vec<ChipletDef<F>>>
Returns independent AIR chiplet definitions.
Each chiplet gets its own trace, commitment,
ZeroCheck, and evaluation argument.
Connected to the main trace via GPA bus.
Auto Trait Implementations§
impl<F> Freeze for CircuitProgram<F>
impl<F> RefUnwindSafe for CircuitProgram<F>
impl<F> Send for CircuitProgram<F>
impl<F> Sync for CircuitProgram<F>
impl<F> Unpin for CircuitProgram<F>
impl<F> UnsafeUnpin for CircuitProgram<F>
impl<F> UnwindSafe for CircuitProgram<F>
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> 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