diff options
author | Andres Erbsen <andreser@mit.edu> | 2017-06-14 00:36:23 -0400 |
---|---|---|
committer | Andres Erbsen <andreser@mit.edu> | 2017-06-14 13:05:52 -0400 |
commit | 53d6e0a991ce110864b2293eb25feca4042186eb (patch) | |
tree | 5a63e122cd2444aa12531f5f7a3bef159c7cca69 /src/Algebra/Group.v | |
parent | 362eaa5da1f291b86aa04e8d745738a647ee34ce (diff) |
ScalarMult: Z -> G -> G (closes #193)
Diffstat (limited to 'src/Algebra/Group.v')
-rw-r--r-- | src/Algebra/Group.v | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/src/Algebra/Group.v b/src/Algebra/Group.v index 01325de3f..76c53bcb1 100644 --- a/src/Algebra/Group.v +++ b/src/Algebra/Group.v @@ -1,5 +1,5 @@ Require Import Coq.Classes.Morphisms Crypto.Util.Relations (*Crypto.Util.Tactics*). -Require Import Crypto.Algebra.Hierarchy Crypto.Algebra.Monoid Crypto.Algebra.ScalarMult. +Require Import Crypto.Algebra.Hierarchy Crypto.Algebra.Monoid. Section BasicProperties. Context {T eq op id inv} `{@group T eq op id inv}. @@ -86,22 +86,6 @@ Section Homomorphism. apply inv_unique. rewrite <- Monoid.homomorphism, left_inverse, homomorphism_id; reflexivity. Qed. - - Section ScalarMultHomomorphism. - Context {MUL} {MUL_is_scalarmult:@ScalarMult.is_scalarmult G EQ OP ID MUL }. - Context {mul} {mul_is_scalarmult:@ScalarMult.is_scalarmult H eq op id mul }. - Lemma homomorphism_scalarmult n P : phi (MUL n P) = mul n (phi P). - Proof using Type*. eapply ScalarMult.homomorphism_scalarmult, homomorphism_id. Qed. - - Import ScalarMult. - Lemma opp_mul : forall n P, inv (mul n P) = mul n (inv P). - Proof using groupH mul_is_scalarmult. - induction n; intros. - { rewrite !scalarmult_0_l, inv_id; reflexivity. } - { rewrite <-NPeano.Nat.add_1_l, Plus.plus_comm at 1. - rewrite scalarmult_add_l, scalarmult_1_l, inv_op, scalarmult_S_l, cancel_left; eauto. } - Qed. - End ScalarMultHomomorphism. End Homomorphism. Section GroupByIsomorphism. |