You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I think issemigrouppreserving_mult_rng_int_mult can be proven by combining some pieces that will be useful on their own. See below for a sketch.
Group.v:
(** [grp_pow g n] commutes with [g]. Actually, for the inductive step below, we might need to know that if [g] commutes with [h], then [g] commutes with powers of [h]? *)Definition grp_pow_commutes {G : Group} (n : Int) (g : G)
: (grp_pow g n) * g = g * (grp_pow g n).
(** If [g] and [h] commute, then [grp_pow (g * h) n] = (grp_pow g n) * (grp_pow h n)]. *)(* Note that part of the proof that [ab_mul] is a homomorphism will be covered by this. *)Definition grp_pow_mul {G : Group} (n : Int) (g h : G)
(c : g * h = h * g)
: grp_pow (g * h) n] = (grp_pow g n) * (grp_pow h n).
(** [grp_pow] satisfies a multiplicative law of exponents. *)Definition grp_pow_int_mul {G : Group} (m n : Int) (g : G)
: grp_pow g (m * n)%int = grp_pow (grp_pow g m) n.
(* This will follow from the previous two. *)
Rings/Z.v:
Definition rng_int_mult_foo {R : Ring} (r : R) (n : Int)
: rng_int_mult r n = (rng_int_mult 1 n) * r.
(* I think issemigrouppreserving_mult_rng_int_mult will follow from the previous item and grp_pow_int_mul. *)
Based on a comment I made in in #2000 (comment)_
I think
issemigrouppreserving_mult_rng_int_mult
can be proven by combining some pieces that will be useful on their own. See below for a sketch.Group.v:
Rings/Z.v:
cc: @ThomatoTomato
The text was updated successfully, but these errors were encountered: