use super::*;
impl<E: Environment> Boolean<E> {
#[doc(hidden)]
pub fn is_less_than_or_equal_constant(circuit_bits_le: &[Boolean<E>], constant_bits_le: &[bool]) -> Boolean<E> {
if circuit_bits_le.len() != constant_bits_le.len() {
E::halt(format!("Mismatching length of bits ({} != {})", circuit_bits_le.len(), constant_bits_le.len()))
}
!constant_bits_le.iter().zip_eq(circuit_bits_le).fold(Boolean::constant(false), |rest_is_less, (this, that)| {
if *this { that.bitand(&rest_is_less) } else { that.bitor(&rest_is_less) }
})
}
#[doc(hidden)]
pub fn assert_less_than_or_equal_constant(circuit_bits_le: &[Boolean<E>], constant_bits_le: &[bool]) {
let is_less_than_or_equal = Boolean::is_less_than_or_equal_constant(circuit_bits_le, constant_bits_le);
E::assert(is_less_than_or_equal).expect("less_than_or_equal assertion failed");
}
}