Function vstd::std_specs::bits::axiom_u32_leading_zeros

source ·
pub broadcast proof fn axiom_u32_leading_zeros(i: u32)
Expand description
ensures
0 <= #[trigger] u32_leading_zeros(i) <= 32,
i == 0 <==> u32_leading_zeros(i) == 32,
0 <= u32_leading_zeros(i) < 32
    ==> (i >> sub(31u32, u32_leading_zeros(i) as u32)) & 1u32 != 0u32,
i >> sub(32, u32_leading_zeros(i) as u32) == 0,
forall |j: u32| {
    32 - u32_leading_zeros(i) <= j < 32 ==> #[trigger] (i >> j) & 1u32 == 0u32
},