Type Alias SymbolicInteraction

Source
pub type SymbolicInteraction<F> = Interaction<SymbolicExpression<F>>;

Aliased Type§

struct SymbolicInteraction<F> {
    pub message: Vec<SymbolicExpression<F>>,
    pub count: SymbolicExpression<F>,
    pub bus_index: u16,
    pub count_weight: u32,
}

Fields§

§message: Vec<SymbolicExpression<F>>§count: SymbolicExpression<F>§bus_index: u16

The bus index specifying the bus to send the message over. All valid instantiations of BusIndex are safe.

§count_weight: u32

Determines the contribution of each interaction message to a linear constraint on the trace heights in the verifier.

For each bus index and trace, count_weight values are summed per interaction on that bus index and multiplied by the trace height. The total sum over all traces is constrained by the verifier to not overflow the field characteristic ( p ).

This is used to impose sufficient conditions for bus constraint soundness and setting a proper value depends on the bus and the constraint it imposes.

Trait Implementations

Source§

impl<Expr: Clone> Clone for Interaction<Expr>

Source§

fn clone(&self) -> Interaction<Expr>

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<Expr: Debug> Debug for Interaction<Expr>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de, Expr> Deserialize<'de> for Interaction<Expr>
where Expr: Deserialize<'de>,

Source§

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<Expr: PartialEq> PartialEq for Interaction<Expr>

Source§

fn eq(&self, other: &Interaction<Expr>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<Expr> Serialize for Interaction<Expr>
where Expr: Serialize,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl<Expr: Eq> Eq for Interaction<Expr>

Source§

impl<Expr> StructuralPartialEq for Interaction<Expr>