From a201b0a8e525cab5c3cb019ccd707b7367aa3ecc Mon Sep 17 00:00:00 2001 From: jadep Date: Tue, 12 Mar 2019 15:30:56 -0400 Subject: add some hints to the global databases --- src/Util/ZUtil/Div.v | 4 ++-- src/Util/ZUtil/Hints/PullPush.v | 3 +++ src/Util/ZUtil/Hints/ZArith.v | 2 ++ src/Util/ZUtil/Le.v | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src/Util') diff --git a/src/Util/ZUtil/Div.v b/src/Util/ZUtil/Div.v index 7012f83c0..4995ba76b 100644 --- a/src/Util/ZUtil/Div.v +++ b/src/Util/ZUtil/Div.v @@ -45,10 +45,10 @@ Module Z. Lemma div_add' a b c : c <> 0 -> (a + c * b) / c = a / c + b. Proof. intro; rewrite <- Z.div_add, (Z.mul_comm c); try lia. Qed. - Lemma div_add_l' a b c : b <> 0 -> (b * a + c) / b = a + c / b. Proof. intro; rewrite <- Z.div_add_l, (Z.mul_comm b); lia. Qed. - + Hint Rewrite Z.div_add' Z.div_add_l' using zutil_arith : push_Zdiv. + Hint Rewrite <- Z.div_add' Z.div_add_l' using zutil_arith : pull_Zdiv. Hint Rewrite div_add_l' div_add' using zutil_arith : zsimplify. Lemma div_sub a b c : c <> 0 -> (a - b * c) / c = a / c - b. diff --git a/src/Util/ZUtil/Hints/PullPush.v b/src/Util/ZUtil/Hints/PullPush.v index a6d4e94b4..a56357c1a 100644 --- a/src/Util/ZUtil/Hints/PullPush.v +++ b/src/Util/ZUtil/Hints/PullPush.v @@ -14,6 +14,8 @@ Hint Rewrite Z.mul_add_distr_l Z.mul_add_distr_r Z.mul_sub_distr_l Z.mul_sub_dis Hint Rewrite <- Z.mul_add_distr_l Z.mul_add_distr_r Z.mul_sub_distr_l Z.mul_sub_distr_r : pull_Zmul. Hint Rewrite Z.div_div using zutil_arith : pull_Zdiv. Hint Rewrite <- Z.div_div using zutil_arith : push_Zdiv. +Hint Rewrite Z.div_add Z.div_add_l using zutil_arith : push_Zdiv. +Hint Rewrite <- Z.div_add Z.div_add_l using zutil_arith : pull_Zdiv. Hint Rewrite <- Z.mul_mod Z.add_mod Zminus_mod using zutil_arith : pull_Zmod. Hint Rewrite Zminus_mod_idemp_l Zminus_mod_idemp_r : pull_Zmod. Hint Rewrite Z_mod_nz_opp_full using zutil_arith : push_Zmod. @@ -21,6 +23,7 @@ Hint Rewrite Z_mod_same_full : push_Zmod. Hint Rewrite Nat2Z.id : push_Zof_nat. Hint Rewrite N2Z.id : push_Zto_N. Hint Rewrite N2Z.id : pull_Zof_N. +Hint Rewrite Z2Nat.id Z2Nat.inj_succ using zutil_arith : push_Zto_nat. Hint Rewrite N2Z.inj_pos N2Z.inj_abs_N N2Z.inj_add N2Z.inj_mul N2Z.inj_sub_max N2Z.inj_succ N2Z.inj_pred_max N2Z.inj_min N2Z.inj_max N2Z.inj_div N2Z.inj_quot N2Z.inj_rem N2Z.inj_div2 N2Z.inj_pow N2Z.inj_0 nat_N_Z : push_Zof_N. Hint Rewrite N2Z.inj_compare N2Z.inj_testbit : pull_Zof_N. Hint Rewrite <- N2Z.inj_abs_N N2Z.inj_add N2Z.inj_mul N2Z.inj_sub_max N2Z.inj_succ N2Z.inj_pred_max N2Z.inj_min N2Z.inj_max N2Z.inj_div N2Z.inj_quot N2Z.inj_rem N2Z.inj_div2 N2Z.inj_pow : pull_Zof_N. diff --git a/src/Util/ZUtil/Hints/ZArith.v b/src/Util/ZUtil/Hints/ZArith.v index 2aa70dc97..97b7f261f 100644 --- a/src/Util/ZUtil/Hints/ZArith.v +++ b/src/Util/ZUtil/Hints/ZArith.v @@ -8,3 +8,5 @@ Hint Resolve (fun n m => proj1 (Z.pred_le_mono n m)) : zarith. Hint Resolve (fun a b => proj2 (Z.lor_nonneg a b)) : zarith. Hint Resolve Zmult_le_compat_r Zmult_le_compat_l Z_div_le Z.add_le_mono Z.sub_le_mono : zarith. +Hint Resolve Z.lt_gt Z.lt_le_incl : zarith. +Hint Resolve Nat2Z.is_nonneg : zarith. diff --git a/src/Util/ZUtil/Le.v b/src/Util/ZUtil/Le.v index a32d0fdd0..d49931818 100644 --- a/src/Util/ZUtil/Le.v +++ b/src/Util/ZUtil/Le.v @@ -61,4 +61,4 @@ Module Z. Lemma le_add_1_iff x y : x + 1 <= y <-> x < y. Proof. lia. Qed. -End Z. +End Z. \ No newline at end of file -- cgit v1.2.3