pub struct SymbolicConstraints<F> {
pub constraints: Vec<SymbolicExpression<F>>,
pub interactions: Vec<SymbolicInteraction<F>>,
}
Expand description
Symbolic constraints for a single AIR with interactions. The constraints contain the constraints on the logup partial sums.
Fields§
§constraints: Vec<SymbolicExpression<F>>
All constraints of the RAP, including the constraints on the logup partial sums.
interactions: Vec<SymbolicInteraction<F>>
Symbolic representation of chip interactions. This is used by the prover for after challenge trace generation, and some partial information may be used by the verifier.
However, any contributions to the quotient polynomial from
logup are already included in constraints
and do not need to
be separately calculated from interactions
.
Implementations§
Source§impl<F: Field> SymbolicConstraints<F>
impl<F: Field> SymbolicConstraints<F>
pub fn max_constraint_degree(&self) -> usize
pub fn get_log_quotient_degree(&self) -> usize
Sourcepub fn max_interaction_degrees(&self) -> (usize, usize)
pub fn max_interaction_degrees(&self) -> (usize, usize)
Returns the maximum field degree and count degree across all interactions
Trait Implementations§
Source§impl<F: Clone> Clone for SymbolicConstraints<F>
impl<F: Clone> Clone for SymbolicConstraints<F>
Source§fn clone(&self) -> SymbolicConstraints<F>
fn clone(&self) -> SymbolicConstraints<F>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<F: Debug> Debug for SymbolicConstraints<F>
impl<F: Debug> Debug for SymbolicConstraints<F>
Source§impl<'de, F> Deserialize<'de> for SymbolicConstraints<F>where
F: Field,
impl<'de, F> Deserialize<'de> for SymbolicConstraints<F>where
F: Field,
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl<F: Field> From<SymbolicConstraints<F>> for SymbolicConstraintsDag<F>
impl<F: Field> From<SymbolicConstraints<F>> for SymbolicConstraintsDag<F>
Source§fn from(sc: SymbolicConstraints<F>) -> Self
fn from(sc: SymbolicConstraints<F>) -> Self
Converts to this type from the input type.
Source§impl<F: Field> From<SymbolicConstraintsDag<F>> for SymbolicConstraints<F>
impl<F: Field> From<SymbolicConstraintsDag<F>> for SymbolicConstraints<F>
Source§fn from(dag: SymbolicConstraintsDag<F>) -> Self
fn from(dag: SymbolicConstraintsDag<F>) -> Self
Converts to this type from the input type.
Source§impl<F: PartialEq> PartialEq for SymbolicConstraints<F>
impl<F: PartialEq> PartialEq for SymbolicConstraints<F>
Source§impl<F> Serialize for SymbolicConstraints<F>where
F: Field,
impl<F> Serialize for SymbolicConstraints<F>where
F: Field,
impl<F: Eq> Eq for SymbolicConstraints<F>
impl<F> StructuralPartialEq for SymbolicConstraints<F>
Auto Trait Implementations§
impl<F> Freeze for SymbolicConstraints<F>
impl<F> RefUnwindSafe for SymbolicConstraints<F>where
F: RefUnwindSafe,
impl<F> Send for SymbolicConstraints<F>
impl<F> Sync for SymbolicConstraints<F>
impl<F> Unpin for SymbolicConstraints<F>where
F: Unpin,
impl<F> UnwindSafe for SymbolicConstraints<F>where
F: UnwindSafe + RefUnwindSafe,
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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