aboutsummaryrefslogtreecommitdiff
path: root/src/ModularArithmetic
diff options
context:
space:
mode:
authorGravatar jadep <jade.philipoom@gmail.com>2016-04-11 22:39:00 -0400
committerGravatar jadep <jade.philipoom@gmail.com>2016-04-11 22:39:00 -0400
commitef4a656933ce31144ad11f83b7f6a0758cd7e518 (patch)
treecf412e453462843e4d02b5bf342bd50cb1620219 /src/ModularArithmetic
parentce1a0e8508f53481138362f14581193b7394552b (diff)
Merge and refactor of GF25519
Diffstat (limited to 'src/ModularArithmetic')
-rw-r--r--src/ModularArithmetic/ModularBaseSystemProofs.v6
-rw-r--r--src/ModularArithmetic/PseudoMersenneBaseParamProofs.v1
-rw-r--r--src/ModularArithmetic/PseudoMersenneBaseParams.v6
3 files changed, 6 insertions, 7 deletions
diff --git a/src/ModularArithmetic/ModularBaseSystemProofs.v b/src/ModularArithmetic/ModularBaseSystemProofs.v
index 7efccbade..0a7070922 100644
--- a/src/ModularArithmetic/ModularBaseSystemProofs.v
+++ b/src/ModularArithmetic/ModularBaseSystemProofs.v
@@ -94,7 +94,9 @@ Section PseudoMersenneProofs.
replace (2^k) with ((2^k - c) + c) by ring.
rewrite Z.mul_add_distr_r.
rewrite Zplus_mod.
- rewrite <- modulus_pseudomersenne.
+ unfold c.
+ rewrite Z.sub_sub_distr, Z.sub_diag.
+ simpl.
rewrite Z.mul_comm.
rewrite mod_mult_plus; auto using modulus_nonzero.
rewrite <- Zplus_mod; auto.
@@ -379,7 +381,7 @@ Section CarryProofs.
rewrite Z.mul_comm.
rewrite Z.mul_assoc.
rewrite <- Z.pow_add_r by (apply log_cap_nonneg || apply sum_firstn_limb_widths_nonneg).
- rewrite <- k_matches_limb_widths.
+ unfold k.
replace (length limb_widths) with (S (pred (length base))) by
(subst; rewrite <- base_length; apply NPeano.Nat.succ_pred; omega).
rewrite sum_firstn_succ with (x:= log_cap (pred (length base))) by
diff --git a/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v b/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v
index 93e6bc1f0..0a58c81d2 100644
--- a/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v
+++ b/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v
@@ -121,7 +121,6 @@ Section PseudoMersenneBaseParamProofs.
Lemma k_nonneg : 0 <= k.
Proof.
- rewrite <- k_matches_limb_widths.
apply sum_firstn_limb_widths_nonneg.
Qed.
diff --git a/src/ModularArithmetic/PseudoMersenneBaseParams.v b/src/ModularArithmetic/PseudoMersenneBaseParams.v
index 09f4bc68e..3914d6219 100644
--- a/src/ModularArithmetic/PseudoMersenneBaseParams.v
+++ b/src/ModularArithmetic/PseudoMersenneBaseParams.v
@@ -12,11 +12,9 @@ Class PseudoMersenneBaseParams (modulus : Z) := {
limb_widths_good : forall i j, (i + j < length limb_widths)%nat ->
sum_firstn limb_widths (i + j) <=
sum_firstn limb_widths i + sum_firstn limb_widths j;
- k : Z;
- c : Z;
- k_matches_limb_widths : sum_firstn limb_widths (length limb_widths) = k;
- modulus_pseudomersenne : modulus = 2^k - c;
prime_modulus : Znumtheory.prime modulus;
+ k := sum_firstn limb_widths (length limb_widths);
+ c := 2 ^ k - modulus;
limb_widths_match_modulus : forall i j,
(i < length limb_widths)%nat ->
(j < length limb_widths)%nat ->