Remark two_p_range:
  forall n,
  0 <= n < zwordsize ->
  0 <= two_p n <= max_unsigned.Remark Z_one_bits_zero:
  forall n i, Z_one_bits n 0 i = nil.Remark Z_one_bits_two_p:
  forall n x i,
  0 <= x < Z.of_nat n ->
  Z_one_bits n (two_p x) i = (i + x) :: nil.

Theorem mul_pow2: forall x n logn, is_power2 n = Some logn -> mul x n = shl x logn.