aboutsummaryrefslogtreecommitdiff
path: root/src/Util
diff options
context:
space:
mode:
authorGravatar Jason Gross <jagro@google.com>2016-07-29 15:00:26 -0700
committerGravatar Jason Gross <jagro@google.com>2016-07-29 15:05:22 -0700
commitd6f283bf82771dd1d1d341cf55b84fa2f05a81d0 (patch)
treeaee9664f59a5aebbe7ab4aeb30be80c355800bc1 /src/Util
parent04825173022abc6e38d8e95651b9194460d6956a (diff)
Add a ZUtil rewrite hint
After | File Name | Before || Change ---------------------------------------------------------------------------------- 1m47.58s | Total | 1m48.64s || -0m01.06s ---------------------------------------------------------------------------------- 0m33.26s | Specific/GF25519 | 0m33.64s || -0m00.38s 0m15.83s | ModularArithmetic/ModularBaseSystemProofs | 0m15.32s || +0m00.50s 0m12.07s | Experiments/SpecEd25519 | 0m11.90s || +0m00.16s 0m07.18s | Specific/GF1305 | 0m07.17s || +0m00.00s 0m04.53s | ModularArithmetic/Pow2BaseProofs | 0m04.31s || +0m00.22s 0m03.89s | ModularArithmetic/Tutorial | 0m04.09s || -0m00.19s 0m03.87s | BaseSystemProofs | 0m03.88s || -0m00.00s 0m03.24s | ModularArithmetic/ModularBaseSystemOpt | 0m03.33s || -0m00.08s 0m02.60s | Util/ZUtil | 0m02.59s || +0m00.01s 0m02.30s | Encoding/PointEncodingPre | 0m02.22s || +0m00.07s 0m01.60s | ModularArithmetic/ModularArithmeticTheorems | 0m01.84s || -0m00.24s 0m01.58s | ModularArithmetic/PrimeFieldTheorems | 0m01.61s || -0m00.03s 0m01.19s | BaseSystem | 0m01.65s || -0m00.46s 0m01.17s | ModularArithmetic/ExtendedBaseVector | 0m01.19s || -0m00.02s 0m01.01s | Experiments/DerivationsOptionRectLetInEncoding | 0m01.34s || -0m00.33s 0m00.99s | Encoding/ModularWordEncodingTheorems | 0m01.00s || -0m00.01s 0m00.97s | ModularArithmetic/BarrettReduction/Z | 0m00.93s || +0m00.03s 0m00.92s | Util/NumTheoryUtil | 0m01.37s || -0m00.45s 0m00.92s | Testbit | 0m00.87s || +0m00.05s 0m00.89s | ModularArithmetic/ModularBaseSystemField | 0m00.94s || -0m00.04s 0m00.84s | ModularArithmetic/PseudoMersenneBaseParamProofs | 0m00.86s || -0m00.02s 0m00.84s | ModularArithmetic/ModularBaseSystemListProofs | 0m00.84s || +0m00.00s 0m00.72s | Experiments/SpecificCurve25519 | 0m00.73s || -0m00.01s 0m00.67s | ModularArithmetic/Pre | 0m00.55s || +0m00.12s 0m00.64s | ModularArithmetic/ModularBaseSystemList | 0m00.60s || +0m00.04s 0m00.64s | Encoding/ModularWordEncodingPre | 0m00.67s || -0m00.03s 0m00.62s | ModularArithmetic/ExtPow2BaseMulProofs | 0m00.62s || +0m00.00s 0m00.62s | Spec/ModularWordEncoding | 0m00.61s || +0m00.01s 0m00.61s | ModularArithmetic/ModularBaseSystem | 0m00.60s || +0m00.01s 0m00.53s | ModularArithmetic/Pow2Base | 0m00.57s || -0m00.03s 0m00.43s | Spec/ModularArithmetic | 0m00.38s || +0m00.04s 0m00.41s | ModularArithmetic/PseudoMersenneBaseParams | 0m00.42s || -0m00.01s
Diffstat (limited to 'src/Util')
-rw-r--r--src/Util/ZUtil.v1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/Util/ZUtil.v b/src/Util/ZUtil.v
index 670227ba8..6f0577fa5 100644
--- a/src/Util/ZUtil.v
+++ b/src/Util/ZUtil.v
@@ -26,6 +26,7 @@ Hint Resolve (fun a b H => proj1 (Z.mod_pos_bound a b H)) (fun a b H => proj2 (Z
Create HintDb zsimplify discriminated.
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 : 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 using lia : zsimplify.
+Hint Rewrite <- Z.opp_eq_mul_m1 : zsimplify.
(** "push" means transform [-f x] to [f (-x)]; "pull" means go the other way *)
Create HintDb push_Zopp discriminated.