Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tensor products of abelian groups #2021

Merged
merged 45 commits into from
Jul 22, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
3c6ad57
grp_pow_commutes
Alizter Jul 8, 2024
d58355b
tensor products of abelian groups
Alizter Jul 9, 2024
5b89691
more comments and simplify some proofs
Alizter Jul 10, 2024
b733df5
add universal property
Alizter Jul 11, 2024
f9c589c
TensorProduct: fix typos in comments
jdchristensen Jul 12, 2024
df441c6
TensorProduct: drop (P 0) from induction principles
jdchristensen Jul 12, 2024
87afe85
Abelianization: rename ab map to abel_in
Alizter Jul 13, 2024
4c9a8d2
fix abel_in negation lemma usage
Alizter Jul 13, 2024
4f84baf
Abelianization: inline proof of abel_unit
jdchristensen Jul 13, 2024
82b0feb
simplify induction principles
Alizter Jul 13, 2024
b63352a
remove unneeded lemma
Alizter Jul 13, 2024
5dee8c1
small simplifications
Alizter Jul 13, 2024
8b88d03
simplify induction hypothesis to +
Alizter Jul 13, 2024
08a26b1
cleanup names
Alizter Jul 13, 2024
edc74fa
TensorProduct: simplify proof of induction principle
jdchristensen Jul 13, 2024
9373e4d
fix typo
Alizter Jul 13, 2024
baa3a89
TensorProduct: update comments
jdchristensen Jul 13, 2024
920db0c
Add grp_homo_op_agree, and use it in many places
jdchristensen Jul 13, 2024
ee4daf5
TensorProduct: factor out defn of bilinear pairs to make goals small
jdchristensen Jul 13, 2024
4758acc
Simplifications involving grp_pow and ab_mul
jdchristensen Jul 16, 2024
4001f97
Merge branch 'master' into ab-tensor
Alizter Jul 17, 2024
42207b7
fix arguments of grp_homo_map
Alizter Jul 17, 2024
4d246eb
bilinear -> biadditive for consistency
Alizter Jul 17, 2024
5873da3
TensorProduct, QuotientGroup: some speed-ups
jdchristensen Jul 18, 2024
d5ba157
stagger definition of twist
Alizter Jul 18, 2024
afac23b
simpl arg hint for ab_tensor_prod_twist_map
Alizter Jul 18, 2024
5b06920
make `FreeGroup_rec o freegroup_in` definitionally the identity
Alizter Jul 19, 2024
1589b71
FreeGroup, TensorProduct: some cleanups
jdchristensen Jul 19, 2024
0a58839
remove reduction rules as they are definitional
Alizter Jul 19, 2024
67e9b6c
cleanup in FreeGroup.v
Alizter Jul 19, 2024
1d49f73
add comment about words_rec
Alizter Jul 19, 2024
7c74b6e
remove exact idpath
Alizter Jul 19, 2024
7ddd945
FreeGroup: use a instead of x for a "letter" in A + A
jdchristensen Jul 20, 2024
46c1bf0
use more list operations in FreeGroup.v
Alizter Jul 20, 2024
e2f8d74
write a little intro for tensor products
Alizter Jul 20, 2024
f2c9ec7
small changes to comments
Alizter Jul 20, 2024
1b5da89
TensorProduct: update introductory comments
jdchristensen Jul 20, 2024
b687878
premetric.v: get rid of shadowed definition of uncurry
jdchristensen Jul 22, 2024
a6873f0
fix typo
Alizter Jul 22, 2024
da27427
TensorProduct: simplify and/or speed up some proofs
jdchristensen Jul 22, 2024
25a60a4
TensorProduct.v: updates to comments
jdchristensen Jul 22, 2024
aed0f0d
Abelianization.v: minor stylistic changes
jdchristensen Jul 22, 2024
49c2b7e
TensorProduct: speed up some *ind_hprop* lines
jdchristensen Jul 22, 2024
a2f3382
remove redundant quotient_abgroup_map
Alizter Jul 22, 2024
ade3c43
fix wording in comment
Alizter Jul 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.

Alizter marked this conversation as resolved.
Show resolved Hide resolved
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.
Alizter marked this conversation as resolved.
Show resolved Hide resolved

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
Loading