From 0e0a73376a4c602b7e26ddae045a7c0884670a5a Mon Sep 17 00:00:00 2001 From: Jason Gross Date: Fri, 31 Mar 2017 20:06:24 -0400 Subject: Add Z.log2_up_le_pow2_full --- src/Util/ZUtil.v | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/Util/ZUtil.v') diff --git a/src/Util/ZUtil.v b/src/Util/ZUtil.v index 88370e533..e8cf62ce0 100644 --- a/src/Util/ZUtil.v +++ b/src/Util/ZUtil.v @@ -2192,6 +2192,15 @@ Module Z. | rewrite Z.log2_up_eqn0 by omega; simpl; omega ]. Qed. + Lemma log2_up_le_pow2_full : forall a b : Z, (0 <= b)%Z -> (a <= 2 ^ b)%Z <-> (Z.log2_up a <= b)%Z. + Proof. + intros a b H. + destruct (Z_lt_le_dec 0 a); [ apply Z.log2_up_le_pow2; assumption | ]. + split; transitivity 0%Z; try omega; auto with zarith. + rewrite Z.log2_up_eqn0 by omega. + reflexivity. + Qed. + Lemma ones_lt_pow2 x y : 0 <= x <= y -> Z.ones x < 2^y. Proof. rewrite Z.ones_equiv, Z.lt_pred_le. -- cgit v1.2.3