Corollary Ztestbit_two_p_m1:
  forall n i, 0 <= n -> 0 <= i ->
  Z.testbit (two_p n - 1) i = if zlt i n then true else false.

Theorem shrx_carry: forall x y, ltu y (repr (zwordsize - 1)) = true -> shrx x y = add (shr x y) (shr_carry x y).