aboutsummaryrefslogtreecommitdiff
path: root/src/ModularArithmetic
diff options
context:
space:
mode:
authorGravatar Jason Gross <jagro@google.com>2016-07-02 12:08:02 -0700
committerGravatar Jason Gross <jagro@google.com>2016-07-02 12:18:52 -0700
commitcd6c4f1297a6604fa4691a5f13808b721194f13b (patch)
tree71075b2573818cae036f87a7efda7f3372eb4e3e /src/ModularArithmetic
parent2939418894d78c095cd9142ce99c615f2d61dda6 (diff)
Make ZUtil more uniform
The standard library uses Z.*, and Z* and Z_* are compatibility notations. We follow suit. Also, eliminate a few lemmas that are duplicates of ones in the standard library.
Diffstat (limited to 'src/ModularArithmetic')
-rw-r--r--src/ModularArithmetic/ModularBaseSystemOpt.v8
-rw-r--r--src/ModularArithmetic/ModularBaseSystemProofs.v28
-rw-r--r--src/ModularArithmetic/PrimeFieldTheorems.v4
-rw-r--r--src/ModularArithmetic/PseudoMersenneBaseParamProofs.v12
4 files changed, 26 insertions, 26 deletions
diff --git a/src/ModularArithmetic/ModularBaseSystemOpt.v b/src/ModularArithmetic/ModularBaseSystemOpt.v
index 116fe10e5..9bb3128ad 100644
--- a/src/ModularArithmetic/ModularBaseSystemOpt.v
+++ b/src/ModularArithmetic/ModularBaseSystemOpt.v
@@ -22,7 +22,7 @@ Definition Z_div_opt := Eval compute in Z.div.
Definition Z_pow_opt := Eval compute in Z.pow.
Definition Z_opp_opt := Eval compute in Z.opp.
Definition Z_shiftl_opt := Eval compute in Z.shiftl.
-Definition Z_shiftl_by_opt := Eval compute in Z_shiftl_by.
+Definition Z_shiftl_by_opt := Eval compute in Z.shiftl_by.
Definition nth_default_opt {A} := Eval compute in @nth_default A.
Definition set_nth_opt {A} := Eval compute in @set_nth A.
@@ -499,11 +499,11 @@ Section Multiplication.
cbv [BaseSystem.mul mul mul_each mul_bi mul_bi' zeros ext_base reduce].
rewrite <- mul'_opt_correct.
change @base with base_opt.
- rewrite map_shiftl by apply k_nonneg.
+ rewrite Z.map_shiftl by apply k_nonneg.
rewrite c_subst.
rewrite k_subst.
change @map with @map_opt.
- change @Z_shiftl_by with @Z_shiftl_by_opt.
+ change @Z.shiftl_by with @Z_shiftl_by_opt.
reflexivity.
Defined.
@@ -668,4 +668,4 @@ Section Canonicalization.
auto using freeze_opt_preserves_rep.
Qed.
-End Canonicalization. \ No newline at end of file
+End Canonicalization.
diff --git a/src/ModularArithmetic/ModularBaseSystemProofs.v b/src/ModularArithmetic/ModularBaseSystemProofs.v
index 6f82a8950..a8bd93097 100644
--- a/src/ModularArithmetic/ModularBaseSystemProofs.v
+++ b/src/ModularArithmetic/ModularBaseSystemProofs.v
@@ -110,7 +110,7 @@ Section PseudoMersenneProofs.
rewrite Z.sub_sub_distr, Z.sub_diag.
simpl.
rewrite Z.mul_comm.
- rewrite mod_mult_plus; auto using modulus_nonzero.
+ rewrite Z.mod_add_l; auto using modulus_nonzero.
rewrite <- Zplus_mod; auto.
Qed.
@@ -304,8 +304,8 @@ Section CarryProofs.
rewrite nth_default_base_succ by omega.
rewrite Z.mul_assoc.
rewrite (Z.mul_comm _ (2 ^ log_cap i)).
- rewrite mul_div_eq; try ring.
- apply gt_lt_symmetry.
+ rewrite Z.mul_div_eq; try ring.
+ apply Z.gt_lt_iff.
apply Z.pow_pos_nonneg; omega || apply log_cap_nonneg.
Qed.
@@ -337,7 +337,7 @@ Section CarryProofs.
rewrite <- Z.add_opp_l, <- Z.opp_sub_distr.
unfold pow2_mod.
rewrite Z.land_ones by apply log_cap_nonneg.
- rewrite <- mul_div_eq by (apply gt_lt_symmetry; apply Z.pow_pos_nonneg; omega || apply log_cap_nonneg).
+ rewrite <- Z.mul_div_eq by (apply Z.gt_lt_iff; apply Z.pow_pos_nonneg; omega || apply log_cap_nonneg).
rewrite Z.shiftr_div_pow2 by apply log_cap_nonneg.
rewrite Zopp_mult_distr_r.
rewrite Z.mul_comm.
@@ -485,7 +485,7 @@ Section CanonicalizationProofs.
Lemma max_bound_pos : forall i, (i < length base)%nat -> 0 < max_bound i.
Proof.
- unfold max_bound, log_cap; intros; apply Z_ones_pos_pos.
+ unfold max_bound, log_cap; intros; apply Z.ones_pos_pos.
apply limb_widths_pos.
rewrite nth_default_eq.
apply nth_In.
@@ -495,7 +495,7 @@ Section CanonicalizationProofs.
Lemma max_bound_nonneg : forall i, 0 <= max_bound i.
Proof.
- unfold max_bound; intros; auto using Z_ones_nonneg.
+ unfold max_bound; intros; auto using Z.ones_nonneg.
Qed.
Local Hint Resolve max_bound_nonneg.
@@ -874,7 +874,7 @@ Section CanonicalizationProofs.
apply Z.add_le_mono.
+ apply carry_bounds_0_upper; auto; omega.
+ apply Z.mul_le_mono_pos_l; auto.
- apply Z_shiftr_ones; auto;
+ apply Z.shiftr_ones; auto;
[ | pose proof (B_compat_log_cap (pred (length base))); omega ].
split.
- apply carry_bounds_lower; auto; omega.
@@ -913,7 +913,7 @@ Section CanonicalizationProofs.
+ rewrite <-max_bound_log_cap, <-Z.add_1_l.
apply Z.add_le_mono.
- rewrite Z.shiftr_div_pow2 by apply log_cap_nonneg.
- apply Z_div_floor; auto.
+ apply Z.div_floor; auto.
destruct i.
* simpl.
eapply Z.le_lt_trans; [ apply carry_full_bounds_0; auto | ].
@@ -996,7 +996,7 @@ Section CanonicalizationProofs.
+ rewrite <-max_bound_log_cap, <-Z.add_1_l.
rewrite Z.shiftr_div_pow2 by apply log_cap_nonneg.
apply Z.add_le_mono.
- - apply Z_div_floor; auto.
+ - apply Z.div_floor; auto.
eapply Z.le_lt_trans; [ eapply carry_full_2_bounds_0; eauto | ].
replace (Z.succ 1) with (2 ^ 1) by ring.
rewrite <-max_bound_log_cap.
@@ -1202,7 +1202,7 @@ Section CanonicalizationProofs.
Lemma max_ones_nonneg : 0 <= max_ones.
Proof.
unfold max_ones.
- apply Z_ones_nonneg.
+ apply Z.ones_nonneg.
pose proof limb_widths_nonneg.
induction limb_widths.
cbv; congruence.
@@ -1217,19 +1217,19 @@ Section CanonicalizationProofs.
unfold max_ones.
intros ? ? x_range.
rewrite Z.land_comm.
- rewrite Z.land_ones by apply Z_le_fold_right_max_initial.
+ rewrite Z.land_ones by apply Z.le_fold_right_max_initial.
apply Z.mod_small.
split; try omega.
eapply Z.lt_le_trans; try eapply x_range.
apply Z.pow_le_mono_r; try omega.
rewrite log_cap_eq.
destruct (lt_dec i (length limb_widths)).
- + apply Z_le_fold_right_max.
+ + apply Z.le_fold_right_max.
- apply limb_widths_nonneg.
- rewrite nth_default_eq.
auto using nth_In.
+ rewrite nth_default_out_of_bounds by omega.
- apply Z_le_fold_right_max_initial.
+ apply Z.le_fold_right_max_initial.
Qed.
Lemma full_isFull'_true : forall j us, (length us = length base) ->
@@ -1817,7 +1817,7 @@ Section CanonicalizationProofs.
+ match goal with |- (?a ?= ?b) = (?c ?= ?d) =>
rewrite (Z.compare_antisym b a); rewrite (Z.compare_antisym d c) end.
apply CompOpp_inj; rewrite !CompOpp_involutive.
- apply gt_lt_symmetry in Hgt.
+ apply Z.gt_lt_iff in Hgt.
etransitivity; try apply Z_compare_decode_step_lt; auto; omega.
Qed.
diff --git a/src/ModularArithmetic/PrimeFieldTheorems.v b/src/ModularArithmetic/PrimeFieldTheorems.v
index 2021e8514..a2f606f30 100644
--- a/src/ModularArithmetic/PrimeFieldTheorems.v
+++ b/src/ModularArithmetic/PrimeFieldTheorems.v
@@ -460,8 +460,8 @@ Section SquareRootsPrime5Mod8.
apply Z2N.inj_iff; try zero_bounds.
rewrite <- Z.mul_cancel_l with (p := 2) by omega.
ring_simplify.
- rewrite mul_div_eq by omega.
- rewrite mul_div_eq by omega.
+ rewrite Z.mul_div_eq by omega.
+ rewrite Z.mul_div_eq by omega.
rewrite (Zmod_div_mod 2 8 q) by
(try omega; apply Zmod_divide; omega || auto).
rewrite q_5mod8.
diff --git a/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v b/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v
index 49b1875ce..9e4e4b3ba 100644
--- a/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v
+++ b/src/ModularArithmetic/PseudoMersenneBaseParamProofs.v
@@ -163,7 +163,7 @@ Section PseudoMersenneBaseParamProofs.
rewrite (Z.mul_comm r).
subst r.
assert (i + j - length base < length base)%nat by omega.
- rewrite mul_div_eq by (apply gt_lt_symmetry; apply Z.mul_pos_pos;
+ rewrite Z.mul_div_eq by (apply Z.gt_lt_iff; apply Z.mul_pos_pos;
[ | subst b; rewrite nth_default_base; try assumption ];
apply Z.pow_pos_nonneg; omega || apply k_nonneg || apply sum_firstn_limb_widths_nonneg).
rewrite (Zminus_0_l_reverse (b i * b j)) at 1.
@@ -172,7 +172,7 @@ Section PseudoMersenneBaseParamProofs.
repeat rewrite nth_default_base by assumption.
do 2 rewrite <- Z.pow_add_r by (apply sum_firstn_limb_widths_nonneg || apply k_nonneg).
symmetry.
- apply mod_same_pow.
+ apply Z.mod_same_pow.
split.
+ apply Z.add_nonneg_nonneg; apply sum_firstn_limb_widths_nonneg || apply k_nonneg.
+ rewrite base_length in *; apply limb_widths_match_modulus; assumption.
@@ -183,7 +183,7 @@ Section PseudoMersenneBaseParamProofs.
Proof.
intros.
repeat rewrite nth_default_base by omega.
- apply mod_same_pow.
+ apply Z.mod_same_pow.
split; [apply sum_firstn_limb_widths_nonneg | ].
destruct (NPeano.Nat.eq_dec i 0); subst.
+ case_eq limb_widths; intro; unfold sum_firstn; simpl; try omega; intros l' lw_eq.
@@ -218,7 +218,7 @@ Section PseudoMersenneBaseParamProofs.
destruct In_b_base as [i nth_err_b].
apply nth_error_subst in nth_err_b.
rewrite nth_err_b.
- apply gt_lt_symmetry.
+ apply Z.gt_lt_iff.
apply Z.pow_pos_nonneg; omega || apply sum_firstn_limb_widths_nonneg.
Qed.
@@ -236,9 +236,9 @@ Section PseudoMersenneBaseParamProofs.
intros; subst b r.
repeat rewrite nth_default_base by omega.
rewrite (Z.mul_comm _ (2 ^ (sum_firstn limb_widths (i+j)))).
- rewrite mul_div_eq by (apply gt_lt_symmetry; apply Z.pow_pos_nonneg; omega || apply sum_firstn_limb_widths_nonneg).
+ rewrite Z.mul_div_eq by (apply Z.gt_lt_iff; apply Z.pow_pos_nonneg; omega || apply sum_firstn_limb_widths_nonneg).
rewrite <- Z.pow_add_r by apply sum_firstn_limb_widths_nonneg.
- rewrite mod_same_pow; try ring.
+ rewrite Z.mod_same_pow; try ring.
split; [ apply sum_firstn_limb_widths_nonneg | ].
apply limb_widths_good.
rewrite <- base_length; assumption.