diff options
author | Jason Gross <jgross@mit.edu> | 2016-11-17 22:22:25 -0500 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2016-11-17 22:22:39 -0500 |
commit | 2045f9ffb67c72363871c7cae2a1d1fb996e0306 (patch) | |
tree | c7aa7fb251eed18d05f77b530c3399ab4100f73b /src | |
parent | 92f64f828136f04ca88670303cd028f6f6cc7553 (diff) |
Copy bounds
```bash
$ pushd src/SpecificGen; pushd
$ pushd && for i in *.json; do ./copy_bounds.sh $i; done && pushd
```
Diffstat (limited to 'src')
-rw-r--r-- | src/SpecificGen/GF2213_32ExtendedAddCoordinates.v | 77 | ||||
-rw-r--r-- | src/SpecificGen/GF2519_32ExtendedAddCoordinates.v | 77 | ||||
-rw-r--r-- | src/SpecificGen/GF25519_32ExtendedAddCoordinates.v | 77 | ||||
-rw-r--r-- | src/SpecificGen/GF25519_64ExtendedAddCoordinates.v | 77 | ||||
-rw-r--r-- | src/SpecificGen/GF41417_32ExtendedAddCoordinates.v | 77 | ||||
-rw-r--r-- | src/SpecificGen/GF5211_32ExtendedAddCoordinates.v | 77 |
6 files changed, 192 insertions, 270 deletions
diff --git a/src/SpecificGen/GF2213_32ExtendedAddCoordinates.v b/src/SpecificGen/GF2213_32ExtendedAddCoordinates.v index 3ab6d9ada..0e2937fcc 100644 --- a/src/SpecificGen/GF2213_32ExtendedAddCoordinates.v +++ b/src/SpecificGen/GF2213_32ExtendedAddCoordinates.v @@ -10,58 +10,45 @@ Require Import Crypto.SpecificGen.GF2213_32. Require Import Crypto.CompleteEdwardsCurve.ExtendedCoordinates. Definition edwards_extended_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - add sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). Definition edwards_extended_carry_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - carry_add carry_sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). -Print edwards_extended_add_coordinates. Create HintDb edwards_extended_add_coordinates_correct discriminated. -Section noncarry. - Local Existing Instance field2213_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F2213_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_F2213_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_F2213_32_decode)) +Local Existing Instance field2213_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F2213_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_F2213_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_F2213_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End noncarry. -Section carry. - Local Existing Instance carry_field2213_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F2213_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_carry_F2213_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_carry_F2213_32_decode)) +Lemma edwards_extended_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. +Local Existing Instance carry_field2213_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F2213_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_carry_F2213_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_carry_F2213_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_carry_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_carry_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End carry. +Lemma edwards_extended_carry_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_carry_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. Lemma fieldwise_eq_edwards_extended_add_coordinates_carry_nocarry td P Q : Tuple.fieldwise diff --git a/src/SpecificGen/GF2519_32ExtendedAddCoordinates.v b/src/SpecificGen/GF2519_32ExtendedAddCoordinates.v index 32ac4258f..6eec2524e 100644 --- a/src/SpecificGen/GF2519_32ExtendedAddCoordinates.v +++ b/src/SpecificGen/GF2519_32ExtendedAddCoordinates.v @@ -10,58 +10,45 @@ Require Import Crypto.SpecificGen.GF2519_32. Require Import Crypto.CompleteEdwardsCurve.ExtendedCoordinates. Definition edwards_extended_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - add sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). Definition edwards_extended_carry_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - carry_add carry_sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). -Print edwards_extended_add_coordinates. Create HintDb edwards_extended_add_coordinates_correct discriminated. -Section noncarry. - Local Existing Instance field2519_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F2519_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_F2519_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_F2519_32_decode)) +Local Existing Instance field2519_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F2519_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_F2519_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_F2519_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End noncarry. -Section carry. - Local Existing Instance carry_field2519_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F2519_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_carry_F2519_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_carry_F2519_32_decode)) +Lemma edwards_extended_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. +Local Existing Instance carry_field2519_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F2519_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_carry_F2519_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_carry_F2519_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_carry_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_carry_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End carry. +Lemma edwards_extended_carry_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_carry_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. Lemma fieldwise_eq_edwards_extended_add_coordinates_carry_nocarry td P Q : Tuple.fieldwise diff --git a/src/SpecificGen/GF25519_32ExtendedAddCoordinates.v b/src/SpecificGen/GF25519_32ExtendedAddCoordinates.v index 0fdab1b24..d4cd36b5c 100644 --- a/src/SpecificGen/GF25519_32ExtendedAddCoordinates.v +++ b/src/SpecificGen/GF25519_32ExtendedAddCoordinates.v @@ -10,58 +10,45 @@ Require Import Crypto.SpecificGen.GF25519_32. Require Import Crypto.CompleteEdwardsCurve.ExtendedCoordinates. Definition edwards_extended_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - add sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). Definition edwards_extended_carry_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - carry_add carry_sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). -Print edwards_extended_add_coordinates. Create HintDb edwards_extended_add_coordinates_correct discriminated. -Section noncarry. - Local Existing Instance field25519_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F25519_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_F25519_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_F25519_32_decode)) +Local Existing Instance field25519_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F25519_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_F25519_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_F25519_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End noncarry. -Section carry. - Local Existing Instance carry_field25519_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F25519_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_carry_F25519_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_carry_F25519_32_decode)) +Lemma edwards_extended_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. +Local Existing Instance carry_field25519_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F25519_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_carry_F25519_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_carry_F25519_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_carry_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_carry_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End carry. +Lemma edwards_extended_carry_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_carry_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. Lemma fieldwise_eq_edwards_extended_add_coordinates_carry_nocarry td P Q : Tuple.fieldwise diff --git a/src/SpecificGen/GF25519_64ExtendedAddCoordinates.v b/src/SpecificGen/GF25519_64ExtendedAddCoordinates.v index 3c6f47518..5e3319ccb 100644 --- a/src/SpecificGen/GF25519_64ExtendedAddCoordinates.v +++ b/src/SpecificGen/GF25519_64ExtendedAddCoordinates.v @@ -10,58 +10,45 @@ Require Import Crypto.SpecificGen.GF25519_64. Require Import Crypto.CompleteEdwardsCurve.ExtendedCoordinates. Definition edwards_extended_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - add sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). Definition edwards_extended_carry_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - carry_add carry_sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). -Print edwards_extended_add_coordinates. Create HintDb edwards_extended_add_coordinates_correct discriminated. -Section noncarry. - Local Existing Instance field25519_64. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F25519_64_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_F25519_64_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_F25519_64_decode)) +Local Existing Instance field25519_64. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F25519_64_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_F25519_64_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_F25519_64_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End noncarry. -Section carry. - Local Existing Instance carry_field25519_64. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F25519_64_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_carry_F25519_64_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_carry_F25519_64_decode)) +Lemma edwards_extended_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. +Local Existing Instance carry_field25519_64. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F25519_64_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_carry_F25519_64_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_carry_F25519_64_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_carry_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_carry_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End carry. +Lemma edwards_extended_carry_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_carry_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. Lemma fieldwise_eq_edwards_extended_add_coordinates_carry_nocarry td P Q : Tuple.fieldwise diff --git a/src/SpecificGen/GF41417_32ExtendedAddCoordinates.v b/src/SpecificGen/GF41417_32ExtendedAddCoordinates.v index f75f179e8..2223b482a 100644 --- a/src/SpecificGen/GF41417_32ExtendedAddCoordinates.v +++ b/src/SpecificGen/GF41417_32ExtendedAddCoordinates.v @@ -10,58 +10,45 @@ Require Import Crypto.SpecificGen.GF41417_32. Require Import Crypto.CompleteEdwardsCurve.ExtendedCoordinates. Definition edwards_extended_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - add sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). Definition edwards_extended_carry_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - carry_add carry_sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). -Print edwards_extended_add_coordinates. Create HintDb edwards_extended_add_coordinates_correct discriminated. -Section noncarry. - Local Existing Instance field41417_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F41417_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_F41417_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_F41417_32_decode)) +Local Existing Instance field41417_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F41417_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_F41417_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_F41417_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End noncarry. -Section carry. - Local Existing Instance carry_field41417_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F41417_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_carry_F41417_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_carry_F41417_32_decode)) +Lemma edwards_extended_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. +Local Existing Instance carry_field41417_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F41417_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_carry_F41417_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_carry_F41417_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_carry_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_carry_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End carry. +Lemma edwards_extended_carry_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_carry_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. Lemma fieldwise_eq_edwards_extended_add_coordinates_carry_nocarry td P Q : Tuple.fieldwise diff --git a/src/SpecificGen/GF5211_32ExtendedAddCoordinates.v b/src/SpecificGen/GF5211_32ExtendedAddCoordinates.v index f1dcad937..b5a67ed4f 100644 --- a/src/SpecificGen/GF5211_32ExtendedAddCoordinates.v +++ b/src/SpecificGen/GF5211_32ExtendedAddCoordinates.v @@ -10,58 +10,45 @@ Require Import Crypto.SpecificGen.GF5211_32. Require Import Crypto.CompleteEdwardsCurve.ExtendedCoordinates. Definition edwards_extended_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - add sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). Definition edwards_extended_carry_add_coordinates td P Q := -Eval cbv iota beta delta [ - Extended.add_coordinates - carry_add carry_sub mul - ] in (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). -Print edwards_extended_add_coordinates. Create HintDb edwards_extended_add_coordinates_correct discriminated. -Section noncarry. - Local Existing Instance field5211_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F5211_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_F5211_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_F5211_32_decode)) +Local Existing Instance field5211_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_F5211_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_F5211_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_F5211_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End noncarry. -Section carry. - Local Existing Instance carry_field5211_32. - Hint Rewrite - (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F5211_32_decode)) - (Ring.homomorphism_add(H1 :=homomorphism_carry_F5211_32_decode)) - (Ring.homomorphism_sub(H1 :=homomorphism_carry_F5211_32_decode)) +Lemma edwards_extended_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ add sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. +Local Existing Instance carry_field5211_32. +Hint Rewrite + (Ring.homomorphism_mul(is_homomorphism:=homomorphism_carry_F5211_32_decode)) + (Ring.homomorphism_add(H1 :=homomorphism_carry_F5211_32_decode)) + (Ring.homomorphism_sub(H1 :=homomorphism_carry_F5211_32_decode)) : edwards_extended_add_coordinates_correct. - Lemma edwards_extended_carry_add_coordinates_correct td P Q : - Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) - = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). - Proof. - change (edwards_extended_carry_add_coordinates td P Q) - with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). - destruct_head' prod. - simpl. - rewrite_strat topdown hints edwards_extended_add_coordinates_correct. - reflexivity. - Qed. -End carry. +Lemma edwards_extended_carry_add_coordinates_correct td P Q : + Tuple.map (n:=4) decode (edwards_extended_carry_add_coordinates td P Q) + = (@ExtendedCoordinates.Extended.add_coordinates _ F.add F.sub F.mul (decode td) (Tuple.map (n:=4) decode P) (Tuple.map (n:=4) decode Q)). +Proof. + change (edwards_extended_carry_add_coordinates td P Q) + with (@ExtendedCoordinates.Extended.add_coordinates _ carry_add carry_sub mul td P Q). + destruct_head' prod. + simpl. + rewrite_strat topdown hints edwards_extended_add_coordinates_correct. + reflexivity. +Qed. Lemma fieldwise_eq_edwards_extended_add_coordinates_carry_nocarry td P Q : Tuple.fieldwise |