(** Unsigned right shifts and unsigned divisions by powers of 2. *)

(* Specifications: *)
Lemma Zshiftr_div_two_p:
forall x n, 0 <= n -> Z.shiftr x n = x / two_p n.
Lemma shru_div_two_p:
forall x y,
shru x y = repr (unsigned x / two_p (unsigned y)).
Theorem divu_pow2:
forall x n logn,
is_power2 n = Some logn ->
divu x n = shru x logn.
Lemma Zshiftr_div_two_p:
forall x n, 0 <= n -> Z.shiftr x n = x / two_p n.
Lemma shru_div_two_p:
forall x y,
shru x y = repr (unsigned x / two_p (unsigned y)).
Theorem divu_pow2:
forall x n logn,
is_power2 n = Some logn ->
divu x n = shru x logn.