aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jason Gross <jagro@google.com>2016-07-26 11:34:24 -0700
committerGravatar Jason Gross <jagro@google.com>2016-07-26 12:46:49 -0700
commit7e010d065c9f6f28b467c104c693e4cb00f5cb22 (patch)
tree04288c65bc73beb41220536287a5ba643805ddaa /src
parent9b705fd8e7cffc81b386cd3a34e3b050a8d3d637 (diff)
Add another ZUtil lemma
After | File Name | Before || Change ---------------------------------------------------------------------------------- 1m39.75s | Total | 1m39.99s || -0m00.24s ---------------------------------------------------------------------------------- 0m31.61s | Specific/GF25519 | 0m31.72s || -0m00.10s 0m14.64s | ModularArithmetic/ModularBaseSystemProofs | 0m14.65s || -0m00.00s 0m11.16s | Experiments/SpecEd25519 | 0m11.19s || -0m00.02s 0m07.06s | Specific/GF1305 | 0m06.94s || +0m00.11s 0m03.95s | ModularArithmetic/Tutorial | 0m03.68s || +0m00.27s 0m03.91s | ModularArithmetic/Pow2BaseProofs | 0m03.94s || -0m00.02s 0m03.59s | BaseSystemProofs | 0m03.72s || -0m00.13s 0m03.11s | ModularArithmetic/ModularBaseSystemOpt | 0m03.10s || +0m00.00s 0m02.40s | Util/ZUtil | 0m02.30s || +0m00.10s 0m01.53s | ModularArithmetic/PrimeFieldTheorems | 0m01.52s || +0m00.01s 0m01.52s | Encoding/PointEncodingPre | 0m01.49s || +0m00.03s 0m01.48s | ModularArithmetic/ModularArithmeticTheorems | 0m01.53s || -0m00.05s 0m01.12s | BaseSystem | 0m01.40s || -0m00.27s 0m01.10s | ModularArithmetic/ExtendedBaseVector | 0m01.07s || +0m00.03s 0m00.98s | Experiments/DerivationsOptionRectLetInEncoding | 0m00.95s || +0m00.03s 0m00.93s | ModularArithmetic/BarrettReduction/Z | 0m00.89s || +0m00.04s 0m00.89s | Encoding/ModularWordEncodingPre | 0m00.80s || +0m00.08s 0m00.84s | Util/NumTheoryUtil | 0m00.81s || +0m00.02s 0m00.84s | ModularArithmetic/ModularBaseSystemField | 0m00.86s || -0m00.02s 0m00.74s | ModularArithmetic/ModularBaseSystemListProofs | 0m00.79s || -0m00.05s 0m00.67s | Experiments/SpecificCurve25519 | 0m00.65s || +0m00.02s 0m00.66s | Encoding/ModularWordEncodingTheorems | 0m00.64s || +0m00.02s 0m00.62s | Testbit | 0m00.59s || +0m00.03s 0m00.58s | ModularArithmetic/PseudoMersenneBaseParamProofs | 0m00.57s || +0m00.01s 0m00.57s | ModularArithmetic/ExtPow2BaseMulProofs | 0m00.59s || -0m00.02s 0m00.57s | Spec/ModularWordEncoding | 0m00.58s || -0m00.01s 0m00.54s | ModularArithmetic/ModularBaseSystem | 0m00.54s || +0m00.00s 0m00.54s | ModularArithmetic/ModularBaseSystemList | 0m00.55s || -0m00.01s 0m00.45s | ModularArithmetic/Pre | 0m00.43s || +0m00.02s 0m00.40s | ModularArithmetic/PseudoMersenneBaseParams | 0m00.57s || -0m00.16s 0m00.40s | ModularArithmetic/Pow2Base | 0m00.59s || -0m00.18s 0m00.35s | Spec/ModularArithmetic | 0m00.35s || +0m00.00s
Diffstat (limited to 'src')
-rw-r--r--src/Util/ZUtil.v5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/Util/ZUtil.v b/src/Util/ZUtil.v
index 20fd446e8..b87c20b79 100644
--- a/src/Util/ZUtil.v
+++ b/src/Util/ZUtil.v
@@ -1061,6 +1061,11 @@ Module Z.
Definition mul_div_le'
:= fun x y z w p H0 H1 H2 H3 => @Z.le_trans _ _ w (@Z.mul_div_le x y z H0 H1 H2 H3) p.
Hint Resolve mul_div_le' : zarith.
+ Lemma mul_div_le'' x y z w : y <= w -> 0 <= x -> 0 <= y -> 0 < z -> x <= z -> x * y / z <= w.
+ Proof.
+ rewrite (Z.mul_comm x y); intros; apply mul_div_le'; assumption.
+ Qed.
+ Hint Resolve mul_div_le'' : zarith.
Lemma two_p_two_eq_four : 2^(2) = 4.
Proof. reflexivity. Qed.