Timings for Z.v
Require Import Spaces.Pos.Core Spaces.Int.
Require Import Algebra.AbGroups.AbelianGroup.
Local Set Universe Minimization ToSet.
Local Open Scope int_scope.
Local Open Scope mc_add_scope.
(** * The group of integers *)
(** See also Cyclic.v for a definition of the integers as the free group on one generator. *)
Definition abgroup_Z@{} : AbGroup@{Set}.
(** For every group [G] and element [g : G], the map sending an integer to that power of [g] is a homomorphism. See [ab_mul] for the homomorphism [G -> G] when [G] is abelian. *)
Definition grp_pow_homo {G : Group} (g : G)
: GroupHomomorphism abgroup_Z G.
snapply Build_GroupHomomorphism.
intros m n; apply grp_pow_add.
(** [ab_mul] (and [grp_pow]) give multiplication in [abgroup_Z]. *)
Definition abgroup_Z_ab_mul (z z' : Int)
: ab_mul (A:=abgroup_Z) z z' = z * z'.
lhs napply (grp_pow_succ (G:=abgroup_Z)).
rhs napply int_mul_succ_l.
lhs napply (grp_pow_pred (G:=abgroup_Z)).
rhs napply int_mul_pred_l.