aboutsummaryrefslogtreecommitdiff
path: root/src/ModularArithmetic/ModularBaseSystemField.v
diff options
context:
space:
mode:
Diffstat (limited to 'src/ModularArithmetic/ModularBaseSystemField.v')
-rw-r--r--src/ModularArithmetic/ModularBaseSystemField.v16
1 files changed, 5 insertions, 11 deletions
diff --git a/src/ModularArithmetic/ModularBaseSystemField.v b/src/ModularArithmetic/ModularBaseSystemField.v
index f5bedd644..b26ca027d 100644
--- a/src/ModularArithmetic/ModularBaseSystemField.v
+++ b/src/ModularArithmetic/ModularBaseSystemField.v
@@ -11,6 +11,7 @@ Local Open Scope Z_scope.
Section ModularBaseSystemField.
Context `{prm : PseudoMersenneBaseParams} {sc : SubtractionCoefficient modulus prm}
(k_ c_ : Z) (k_subst : k = k_) (c_subst : c = c_).
+ Local Existing Instance prime_modulus.
Local Notation base := (Pow2Base.base_from_limb_widths limb_widths).
Local Notation digits := (tuple Z (length limb_widths)).
@@ -35,17 +36,13 @@ Section ModularBaseSystemField.
apply carry_mul_rep; apply decode_rep.
Qed.
- Lemma zero_neq_one : eq zero one -> False.
- Proof.
- cbv [eq zero one]. erewrite !encode_rep. intro A.
- eapply (PrimeFieldTheorems.Fq_1_neq_0 (prime_q := prime_modulus)).
- congruence.
- Qed.
+ Lemma _zero_neq_one : not (eq zero one).
+ Proof. cbv [eq zero one]. erewrite !encode_rep; apply zero_neq_one. Qed.
Lemma modular_base_system_field :
@field digits eq zero one opp add_opt sub_opt (carry_mul_opt k_ c_) inv div.
Proof.
- eapply (Field.isomorphism_to_subfield_field (phi := decode) (fieldR := PrimeFieldTheorems.field_modulo (prime_q := prime_modulus))).
+ eapply (Field.isomorphism_to_subfield_field (phi := decode)).
Grab Existential Variables.
+ intros; eapply encode_rep.
+ intros; eapply encode_rep.
@@ -55,9 +52,7 @@ Section ModularBaseSystemField.
+ intros; eapply sub_decode.
+ intros; eapply add_decode.
+ intros; eapply encode_rep.
- + cbv [eq zero one]. erewrite !encode_rep. intro A.
- eapply (PrimeFieldTheorems.Fq_1_neq_0 (prime_q := prime_modulus)).
- congruence.
+ + eapply _zero_neq_one.
+ trivial.
+ repeat intro. cbv [div]. congruence.
+ repeat intro. cbv [inv]. congruence.
@@ -65,7 +60,6 @@ Section ModularBaseSystemField.
+ repeat intro. cbv [eq]. erewrite !sub_decode. congruence.
+ repeat intro. cbv [eq]. erewrite !add_decode. congruence.
+ repeat intro. cbv [opp]. congruence.
- + cbv [eq]. auto using ModularArithmeticTheorems.F_eq_dec.
Qed.
End ModularBaseSystemField. \ No newline at end of file