aboutsummaryrefslogtreecommitdiff
path: root/theories/Numbers/Integer/Abstract/ZBits.v
diff options
context:
space:
mode:
Diffstat (limited to 'theories/Numbers/Integer/Abstract/ZBits.v')
-rw-r--r--theories/Numbers/Integer/Abstract/ZBits.v8
1 files changed, 5 insertions, 3 deletions
diff --git a/theories/Numbers/Integer/Abstract/ZBits.v b/theories/Numbers/Integer/Abstract/ZBits.v
index bf03cf0205..39e9f02c53 100644
--- a/theories/Numbers/Integer/Abstract/ZBits.v
+++ b/theories/Numbers/Integer/Abstract/ZBits.v
@@ -710,11 +710,13 @@ Proof.
intros. now rewrite <- 2 shiftl_opp_r, shiftl_shiftl, opp_sub_distr, add_comm.
Qed.
-Lemma shiftr_shiftr : forall a n m, 0<=n -> 0<=m ->
+Lemma shiftr_shiftr : forall a n m, 0<=m ->
(a >> n) >> m == a >> (n+m).
Proof.
- intros a n m Hn Hm.
- now rewrite !shiftr_div_pow2, pow_add_r, div_div by order_pos.
+ intros a n p Hn. bitwise.
+ rewrite 3 shiftr_spec; trivial.
+ now rewrite (add_comm n p), add_assoc.
+ now apply add_nonneg_nonneg.
Qed.
(** shifts and constants *)