Skip to content

Commit

Permalink
tensor products of abelian groups
Browse files Browse the repository at this point in the history
Signed-off-by: Ali Caglayan <[email protected]>
  • Loading branch information
Alizter committed Jul 11, 2024
1 parent 3c6ad57 commit d58355b
Show file tree
Hide file tree
Showing 7 changed files with 766 additions and 1 deletion.
6 changes: 6 additions & 0 deletions theories/Algebra/AbGroups/AbelianGroup.v
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,12 @@ Defined.
Definition QuotientAbGroup (G : AbGroup) (H : Subgroup G) : AbGroup
:= (Build_AbGroup (QuotientGroup' G H (isnormal_ab_subgroup G H)) _).

Definition quotient_abgroup_map (G : AbGroup) (H : Subgroup G)
: GroupHomomorphism G (QuotientAbGroup G H).
Proof.
snrapply grp_quotient_map.
Defined.

Definition quotient_abgroup_rec {G : AbGroup}
(N : Subgroup G) (H : AbGroup)
(f : GroupHomomorphism G H) (h : forall n : G, N n -> f n = mon_unit)
Expand Down
13 changes: 13 additions & 0 deletions theories/Algebra/AbGroups/Abelianization.v
Original file line number Diff line number Diff line change
Expand Up @@ -275,6 +275,19 @@ Section AbelGroup.
Proof.
by unfold IsSemiGroupPreserving.
Defined.

Global Instance ismonoidpreserving_ab : IsMonoidPreserving ab.
Proof.
split.
1: exact _.
reflexivity.
Defined.

(** [ab] preserves negation *)
Definition ab_negate x : ab (-x) = - ab x.
Proof.
exact (preserves_negate (f:=ab) x).
Defined.

End AbelGroup.

Expand Down
4 changes: 4 additions & 0 deletions theories/Algebra/AbGroups/FreeAbelianGroup.v
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ Require Import Types.Sigma Types.Forall Types.Paths.
Require Import WildCat.Core WildCat.EquivGpd.
Require Import Algebra.AbGroups.AbelianGroup Algebra.AbGroups.Abelianization.
Require Import Algebra.Groups.FreeGroup.
Require Import Spaces.List.Core.

(** * Free Abelian Groups *)

Expand All @@ -29,6 +30,9 @@ Global Instance isfreeabgroup_isfreeabgroupon (S : Type) (F_S : AbGroup) (i : S
Definition FreeAbGroup (S : Type) : AbGroup
:= abel (FreeGroup S).

Definition freeabgroup_in {S : Type} : S -> FreeAbGroup S
:= abel_unit _ o freegroup_in.

(** The abelianization of a free group on a set is a free abelian group on that set. *)
Global Instance isfreeabgroupon_isabelianization_isfreegroup `{Funext}
{S : Type} {G : Group} {A : AbGroup} (f : S -> G) (g : G $-> A)
Expand Down
Loading

0 comments on commit d58355b

Please sign in to comment.