(** Properties of shifts *)

(* Specifications: *)
Lemma shiftr_spec' : forall a n m, (a >> n).[m] = a.[m+n].
Lemma shiftl_spec_high' : forall a n m, n<=m -> (a << n).[m] = a.[m-n].
Lemma shiftr_div_pow2 : forall a n, a >> n == a / 2^n.
Lemma shiftl_mul_pow2 : forall a n, a << n == a * 2^n.
Lemma shiftl_spec_alt : forall a n m, (a << n).[m+n] = a.[m].
#[global]
Instance shiftr_wd : Proper (eq==>eq==>eq) shiftr.