use miden_core::field::ExtensionField;
use miden_crypto::stark::air::LiftedAirBuilder;
use super::{buses::LookupOpFlags, chiplet_air::ChipletLookupBuilder, main_air::MainLookupBuilder};
use crate::{
Felt, MainCols,
lookup::{ConstraintLookupBuilder, ProverLookupBuilder},
};
impl<'ab, AB> MainLookupBuilder for ConstraintLookupBuilder<'ab, AB> where
AB: LiftedAirBuilder<F = Felt>
{
}
impl<'ab, AB> ChipletLookupBuilder for ConstraintLookupBuilder<'ab, AB> where
AB: LiftedAirBuilder<F = Felt>
{
}
impl<'a, EF> MainLookupBuilder for ProverLookupBuilder<'a, Felt, EF>
where
EF: ExtensionField<Felt>,
{
fn build_op_flags(
&self,
local: &MainCols<Self::Var>,
next: &MainCols<Self::Var>,
) -> LookupOpFlags<Self::Expr> {
LookupOpFlags::from_boolean_row(&local.decoder, &local.stack, &next.decoder)
}
}
impl<'a, EF> ChipletLookupBuilder for ProverLookupBuilder<'a, Felt, EF> where
EF: ExtensionField<Felt>
{
}
#[cfg(feature = "std")]
mod debug_impls {
use super::{ChipletLookupBuilder, MainLookupBuilder};
use crate::lookup::debug::{DebugTraceBuilder, ValidationBuilder};
impl<'ab, 'r> MainLookupBuilder for ValidationBuilder<'ab, 'r> {}
impl<'ab, 'r> ChipletLookupBuilder for ValidationBuilder<'ab, 'r> {}
impl<'a> MainLookupBuilder for DebugTraceBuilder<'a> {}
impl<'a> ChipletLookupBuilder for DebugTraceBuilder<'a> {}
}