diff options
author | Jason Gross <jgross@mit.edu> | 2017-06-13 13:16:24 -0400 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2017-06-13 13:16:24 -0400 |
commit | a0e440df3081cba037b5f8517f0d6fabb62d3801 (patch) | |
tree | 7082a69d7b32e56e37a1beb0547bc41ce38450f1 /src/Util/ZUtil | |
parent | b4b711cba32a21806c6c0aae53be40c04af60cb3 (diff) |
Add Z.mul_split
Diffstat (limited to 'src/Util/ZUtil')
-rw-r--r-- | src/Util/ZUtil/Definitions.v | 2 | ||||
-rw-r--r-- | src/Util/ZUtil/MulSplit.v | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/Util/ZUtil/Definitions.v b/src/Util/ZUtil/Definitions.v index 6fc969dfd..ff15dc83c 100644 --- a/src/Util/ZUtil/Definitions.v +++ b/src/Util/ZUtil/Definitions.v @@ -35,4 +35,6 @@ Module Z. then add_get_carry (Z.log2 bound) x y else ((x + y) mod bound, (x + y) / bound). + Definition mul_split (s x y : Z) : Z * Z + := ((x * y) mod s, (x * y) / s). End Z. diff --git a/src/Util/ZUtil/MulSplit.v b/src/Util/ZUtil/MulSplit.v new file mode 100644 index 000000000..e0448fe69 --- /dev/null +++ b/src/Util/ZUtil/MulSplit.v @@ -0,0 +1,10 @@ +Require Import Coq.ZArith.ZArith. +Require Import Crypto.Util.ZUtil.Definitions. +Local Open Scope Z_scope. + +Module Z. + Lemma mul_split_mod s x y : fst (Z.mul_split s x y) = (x * y) mod s. + Proof. reflexivity. Qed. + Lemma mul_split_div s x y : snd (Z.mul_split s x y) = (x * y) / s. + Proof. reflexivity. Qed. +End Z. |