fn index_array(
        &mut self,
        array: &[impl Into<Self::Expr> + Clone],
        index_bitmap: &[impl Into<Self::Expr> + Clone],
    ) -> Self::Expr {
        let mut result = Self::Expr::zero();

        for (value, i) in array.iter().zip_eq(index_bitmap) {
            result = result.clone() + value.clone().into() * i.clone().into();
        }

        result
    }
Index an array of expressions using an index bitmap.  This function assumes that the
`EIndex` type is a boolean and that `index_bitmap`'s entries sum to 1.
crates/stark/src/air/builder.rs