diff options
author | Jason Gross <jgross@mit.edu> | 2017-05-13 10:46:17 -0400 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2017-05-13 10:46:17 -0400 |
commit | 4ecdd6ca43af688e5cd36ec9ab2496c4e192477d (patch) | |
tree | e67cd24bf8cd7de2dee68253a5a6db3b5f567241 /src/Util/ZUtil/ZSimplify | |
parent | facfba480b7ce797ecf70e9d128d0392d1250360 (diff) |
Split off ZUtil initial hint databases
Diffstat (limited to 'src/Util/ZUtil/ZSimplify')
-rw-r--r-- | src/Util/ZUtil/ZSimplify/Core.v | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/Util/ZUtil/ZSimplify/Core.v b/src/Util/ZUtil/ZSimplify/Core.v new file mode 100644 index 000000000..a21fa766b --- /dev/null +++ b/src/Util/ZUtil/ZSimplify/Core.v @@ -0,0 +1,15 @@ +Require Import Coq.ZArith.ZArith. +Require Export Crypto.Util.ZUtil.Hints.Core. + +Hint Rewrite Z.div_1_r Z.mul_1_r Z.mul_1_l Z.sub_diag Z.mul_0_r Z.mul_0_l Z.add_0_l Z.add_0_r Z.opp_involutive Z.sub_0_r Z_mod_same_full Z.sub_simpl_r Z.sub_simpl_l Z.add_opp_diag_r Z.add_opp_diag_l Zmod_0_l Z.add_simpl_r Z.add_simpl_l Z.opp_0 Zmod_0_r Zmod_mod Z.mul_succ_l Z.mul_succ_r Z.shiftr_0_r Z.shiftr_0_l Z.mod_1_r Zmod_0_l Zmod_0_r Z.shiftl_0_r Z.shiftl_0_l Z.shiftr_0_r Z.shiftr_0_l Z.sub_diag : zsimplify_fast. + +Hint Rewrite Z.div_1_r Z.mul_1_r Z.mul_1_l Z.sub_diag Z.mul_0_r Z.mul_0_l Z.add_0_l Z.add_0_r Z.opp_involutive Z.sub_0_r Z_mod_same_full Z.sub_simpl_r Z.sub_simpl_l Z.add_opp_diag_r Z.add_opp_diag_l Zmod_0_l Z.add_simpl_r Z.add_simpl_l Z.opp_0 Zmod_0_r Zmod_mod Z.mul_succ_l Z.mul_succ_r Z.shiftr_0_r Z.shiftr_0_l Z.mod_1_r Zmod_0_l Zmod_0_r Z.shiftl_0_r Z.shiftl_0_l Z.shiftr_0_r Z.shiftr_0_l Zplus_minus Z.add_diag Z.abs_0 Z.sgn_0 Nat2Z.inj_0 Z2Nat.inj_0 : zsimplify. +Hint Rewrite Z.div_mul Z.div_1_l Z.div_same Z.mod_same Z.div_small Z.mod_small Z.div_add Z.div_add_l Z.mod_add Z.div_0_l Z.mod_mod Z.mod_small Z_mod_zero_opp_full Z.mod_1_l using zutil_arith : zsimplify. +Hint Rewrite <- Z.opp_eq_mul_m1 Z.one_succ Z.two_succ : zsimplify. +Hint Rewrite <- Z.div_mod using zutil_arith : zsimplify. +Hint Rewrite (fun x y => proj2 (Z.eqb_neq x y)) using assumption : zsimplify. +Hint Rewrite Z.mul_0_l Z.mul_0_r Z.mul_1_l Z.mul_1_r Z.add_0_l Z.add_0_r Z.sub_0_l Z.sub_0_r Zdiv_0_l Zdiv_0_r Zdiv_1_r Zmod_0_l Zmod_0_r Zmod_1_r Z.opp_0 Z.abs_0 Z.sgn_0 Nat2Z.inj_0 Z2Nat.inj_0 : zsimplify_const. + +Hint Rewrite <- Z.one_succ Z.two_succ : zsimplify_const. + +Hint Rewrite Nat2Z.id N2Z.id : zsimplify. |