aboutsummaryrefslogtreecommitdiff
path: root/src/Util/ZUtil/ZSimplify
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-05-13 10:46:17 -0400
committerGravatar Jason Gross <jgross@mit.edu>2017-05-13 10:46:17 -0400
commit4ecdd6ca43af688e5cd36ec9ab2496c4e192477d (patch)
treee67cd24bf8cd7de2dee68253a5a6db3b5f567241 /src/Util/ZUtil/ZSimplify
parentfacfba480b7ce797ecf70e9d128d0392d1250360 (diff)
Split off ZUtil initial hint databases
Diffstat (limited to 'src/Util/ZUtil/ZSimplify')
-rw-r--r--src/Util/ZUtil/ZSimplify/Core.v15
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.