pub trait RecursionMemoryAirBuilder: RecursionInteractionAirBuilder {
    // Provided methods
    fn recursion_eval_memory_access<E: Into<Self::Expr> + Clone>(
        &mut self,
        timestamp: impl Into<Self::Expr>,
        addr: impl Into<Self::Expr>,
        memory_access: &impl MemoryCols<E, Block<E>>,
        is_real: impl Into<Self::Expr>,
    ) { ... }
    fn recursion_eval_memory_access_single<E: Into<Self::Expr> + Clone>(
        &mut self,
        timestamp: impl Into<Self::Expr>,
        addr: impl Into<Self::Expr>,
        memory_access: &impl MemoryCols<E, E>,
        is_real: impl Into<Self::Expr>,
    ) { ... }
    fn eval_memory_access_timestamp<E: Into<Self::Expr> + Clone>(
        &mut self,
        timestamp: impl Into<Self::Expr>,
        mem_access: &impl MemoryAccessTimestampCols<E>,
        is_real: impl Into<Self::Expr> + Clone,
    ) { ... }
    fn eval_range_check_28bits(
        &mut self,
        value: impl Into<Self::Expr>,
        limb_16: impl Into<Self::Expr> + Clone,
        limb_12: impl Into<Self::Expr> + Clone,
        is_real: impl Into<Self::Expr> + Clone,
    ) { ... }
}

Provided Methods§

source

fn recursion_eval_memory_access<E: Into<Self::Expr> + Clone>( &mut self, timestamp: impl Into<Self::Expr>, addr: impl Into<Self::Expr>, memory_access: &impl MemoryCols<E, Block<E>>, is_real: impl Into<Self::Expr>, )

source

fn recursion_eval_memory_access_single<E: Into<Self::Expr> + Clone>( &mut self, timestamp: impl Into<Self::Expr>, addr: impl Into<Self::Expr>, memory_access: &impl MemoryCols<E, E>, is_real: impl Into<Self::Expr>, )

source

fn eval_memory_access_timestamp<E: Into<Self::Expr> + Clone>( &mut self, timestamp: impl Into<Self::Expr>, mem_access: &impl MemoryAccessTimestampCols<E>, is_real: impl Into<Self::Expr> + Clone, )

Verifies that the memory access happens after the previous memory access.

source

fn eval_range_check_28bits( &mut self, value: impl Into<Self::Expr>, limb_16: impl Into<Self::Expr> + Clone, limb_12: impl Into<Self::Expr> + Clone, is_real: impl Into<Self::Expr> + Clone, )

Verifies the inputted value is within 28 bits.

This method verifies that the inputted is less than 2^24 by doing a 16 bit and 12 bit range check on it’s limbs. It will also verify that the limbs are correct. This method is needed since the memory access timestamp check (see Self::eval_memory_access_timestamp) needs to assume the clk is within 28 bits.

Object Safety§

This trait is not object safe.

Implementors§