Subgroups generated by families of elements
Content created by Egbert Rijke and Fredrik Bakke.
Created on 2023-10-13.
Last modified on 2023-11-24.
module group-theory.subgroups-generated-by-families-of-elements-groups where
Imports
open import foundation.dependent-pair-types open import foundation.function-types open import foundation.identity-types open import foundation.images open import foundation.images-subtypes open import foundation.logical-equivalences open import foundation.propositional-truncations open import foundation.subtypes open import foundation.universal-property-image open import foundation.universe-levels open import group-theory.groups open import group-theory.homomorphisms-groups open import group-theory.images-of-group-homomorphisms open import group-theory.subgroups open import group-theory.subgroups-generated-by-subsets-groups open import group-theory.subsets-groups open import group-theory.trivial-subgroups
Idea
Consider a family (xᵢ)ᵢ
of elements in a group G
.
The subgroup generated by (xᵢ)ᵢ
is the
subgroup generated by the subset
of all the elements of the form xᵢ
for some i
in the indexing type of
(xᵢ)ᵢ
. In other words, the subgroup generated by (xᵢ)ᵢ
is the least
subgroup that contains all the elements xᵢ
. In
informal writing, the subgroup generated by the family of elements (xᵢ)ᵢ
is
denoted by ⟨xᵢ⟩
Definitions
The predicate of being a subgroup generated by a family of elements
module _ {l1 l2 l3 : Level} (G : Group l1) {I : UU l2} (x : I → type-Group G) (H : Subgroup l3 G) where is-subgroup-generated-by-family-of-elements-Group : UUω is-subgroup-generated-by-family-of-elements-Group = {l4 : Level} (K : Subgroup l4 G) → leq-Subgroup G H K ↔ ((i : I) → is-in-Subgroup G K (x i)) contains-element-is-subgroup-generated-by-family-of-elements-Group : is-subgroup-generated-by-family-of-elements-Group → (i : I) → is-in-Subgroup G H (x i) contains-element-is-subgroup-generated-by-family-of-elements-Group U = forward-implication (U H) (refl-leq-Subgroup G H) leq-subgroup-is-subgroup-generated-by-family-of-elements-Group : is-subgroup-generated-by-family-of-elements-Group → {l4 : Level} (K : Subgroup l4 G) (k : (i : I) → is-in-Subgroup G K (x i)) → leq-Subgroup G H K leq-subgroup-is-subgroup-generated-by-family-of-elements-Group U K = backward-implication (U K)
The subgroup generated by a family of elements in a group
module _ {l1 l2 : Level} (G : Group l1) {I : UU l2} (x : I → type-Group G) where generating-subset-subgroup-family-of-elements-Group : subset-Group (l1 ⊔ l2) G generating-subset-subgroup-family-of-elements-Group = subtype-im x subgroup-family-of-elements-Group : Subgroup (l1 ⊔ l2) G subgroup-family-of-elements-Group = subgroup-subset-Group G generating-subset-subgroup-family-of-elements-Group subset-subgroup-family-of-elements-Group : subset-Group (l1 ⊔ l2) G subset-subgroup-family-of-elements-Group = subset-Subgroup G subgroup-family-of-elements-Group is-in-subgroup-family-of-elements-Group : type-Group G → UU (l1 ⊔ l2) is-in-subgroup-family-of-elements-Group = is-in-Subgroup G subgroup-family-of-elements-Group is-closed-under-eq-subgroup-family-of-elements-Group : {x y : type-Group G} → is-in-subgroup-family-of-elements-Group x → x = y → is-in-subgroup-family-of-elements-Group y is-closed-under-eq-subgroup-family-of-elements-Group = is-closed-under-eq-Subgroup G subgroup-family-of-elements-Group is-closed-under-eq-subgroup-family-of-elements-Group' : {x y : type-Group G} → is-in-subgroup-family-of-elements-Group y → x = y → is-in-subgroup-family-of-elements-Group x is-closed-under-eq-subgroup-family-of-elements-Group' = is-closed-under-eq-Subgroup' G subgroup-family-of-elements-Group contains-unit-subgroup-family-of-elements-Group : contains-unit-subset-Group G subset-subgroup-family-of-elements-Group contains-unit-subgroup-family-of-elements-Group = contains-unit-Subgroup G subgroup-family-of-elements-Group is-closed-under-multiplication-subgroup-family-of-elements-Group : is-closed-under-multiplication-subset-Group G subset-subgroup-family-of-elements-Group is-closed-under-multiplication-subgroup-family-of-elements-Group = is-closed-under-multiplication-Subgroup G subgroup-family-of-elements-Group is-closed-under-inverses-subgroup-family-of-elements-Group : is-closed-under-inverses-subset-Group G subset-subgroup-family-of-elements-Group is-closed-under-inverses-subgroup-family-of-elements-Group = is-closed-under-inverses-Subgroup G subgroup-family-of-elements-Group abstract is-subgroup-generated-by-family-of-elements-subgroup-family-of-elements-Group : is-subgroup-generated-by-family-of-elements-Group G x subgroup-family-of-elements-Group is-subgroup-generated-by-family-of-elements-subgroup-family-of-elements-Group H = logical-equivalence-reasoning leq-Subgroup G subgroup-family-of-elements-Group H ↔ generating-subset-subgroup-family-of-elements-Group ⊆ subset-Subgroup G H by is-subgroup-generated-by-subset-subgroup-subset-Group G ( subtype-im x) ( H) ↔ ((i : I) → is-in-Subgroup G H (x i)) by is-image-subtype-subtype-im x (subset-Subgroup G H) abstract contains-element-subgroup-family-of-elements-Group : (i : I) → is-in-subgroup-family-of-elements-Group (x i) contains-element-subgroup-family-of-elements-Group i = contains-subset-subgroup-subset-Group G ( generating-subset-subgroup-family-of-elements-Group) ( x i) ( unit-trunc-Prop (i , refl)) abstract leq-subgroup-family-of-elements-Group : {l : Level} (H : Subgroup l G) → ((i : I) → is-in-Subgroup G H (x i)) → leq-Subgroup G subgroup-family-of-elements-Group H leq-subgroup-family-of-elements-Group H = backward-implication ( is-subgroup-generated-by-family-of-elements-subgroup-family-of-elements-Group H)
Properties
Any two subgroups generated by the same family of elements contain the same elements
module _ {l1 l2 l3 l4 : Level} (G : Group l1) {I : UU l2} (x : I → type-Group G) (H : Subgroup l3 G) (Hu : is-subgroup-generated-by-family-of-elements-Group G x H) (K : Subgroup l4 G) (Ku : is-subgroup-generated-by-family-of-elements-Group G x K) where has-same-elements-is-subgroup-generated-by-family-of-elements-Group : has-same-elements-Subgroup G H K pr1 (has-same-elements-is-subgroup-generated-by-family-of-elements-Group y) = leq-subgroup-is-subgroup-generated-by-family-of-elements-Group G x H Hu K ( contains-element-is-subgroup-generated-by-family-of-elements-Group G x ( K) ( Ku)) ( y) pr2 (has-same-elements-is-subgroup-generated-by-family-of-elements-Group y) = leq-subgroup-is-subgroup-generated-by-family-of-elements-Group G x K Ku H ( contains-element-is-subgroup-generated-by-family-of-elements-Group G x ( H) ( Hu)) ( y)
Any subgroup that has the same elements as the subgroup generated by a family of elements x
satisfies the universal property of the subgroup generated by the family of elements x
module _ {l1 l2 l3 : Level} (G : Group l1) {I : UU l2} (x : I → type-Group G) (H : Subgroup l3 G) where is-subgroup-generated-by-family-of-elements-has-same-elements-Subgroup : has-same-elements-Subgroup G (subgroup-family-of-elements-Group G x) H → is-subgroup-generated-by-family-of-elements-Group G x H is-subgroup-generated-by-family-of-elements-has-same-elements-Subgroup p U = logical-equivalence-reasoning leq-Subgroup G H U ↔ subtype-im x ⊆ subset-Subgroup G U by is-subgroup-generated-by-subset-has-same-elements-Subgroup G ( subtype-im x) ( H) ( p) ( U) ↔ ((i : I) → is-in-Subgroup G U (x i)) by is-image-subtype-subtype-im x (subset-Subgroup G U)
The image of the subgroup ⟨x⟩
generated by a family of elements x
under a group homomorphism f
is the subgroup ⟨f ∘ x⟩
generated by the family of elements f ∘ x
There are three ways to state this fact:
- The image of the subgroup
⟨x⟩
under the group homomorphismf
has the same elements as the subgroup⟨f ∘ x⟩
. - The subgroup
⟨f ∘ x⟩
satisfies the universal property of the image of the group⟨x⟩
under the group homomorphismf
. - The image of the subgroup
⟨x⟩
under the group homomorphismf
satisfies the universal property of the subgroup generated by the family of elementsf ∘ x
.
module _ {l1 l2 l3 : Level} (G : Group l1) (H : Group l2) (f : hom-Group G H) {I : UU l3} (x : I → type-Group G) where compute-image-subgroup-family-of-elements-Group : has-same-elements-Subgroup H ( im-hom-Subgroup G H f (subgroup-family-of-elements-Group G x)) ( subgroup-family-of-elements-Group H (map-hom-Group G H f ∘ x)) compute-image-subgroup-family-of-elements-Group h = logical-equivalence-reasoning is-in-im-hom-Subgroup G H f (subgroup-family-of-elements-Group G x) h ↔ is-in-subgroup-subset-Group H ( im-subtype (map-hom-Group G H f) (subtype-im x)) ( h) by compute-image-subgroup-subset-Group G H f (subtype-im x) h ↔ is-in-subgroup-family-of-elements-Group H (map-hom-Group G H f ∘ x) h by inv-iff ( has-same-elements-subgroup-subset-has-same-elements-subset-Group H ( subtype-im (map-hom-Group G H f ∘ x)) ( im-subtype (map-hom-Group G H f) (subtype-im x)) ( compute-subtype-im-comp (map-hom-Group G H f) x) ( h)) is-image-subgroup-family-of-elements-Group : is-image-subgroup-hom-Group G H f ( subgroup-family-of-elements-Group G x) ( subgroup-family-of-elements-Group H (map-hom-Group G H f ∘ x)) is-image-subgroup-family-of-elements-Group = is-image-subgroup-has-same-elements-Subgroup G H f ( subgroup-family-of-elements-Group G x) ( subgroup-family-of-elements-Group H (map-hom-Group G H f ∘ x)) ( compute-image-subgroup-family-of-elements-Group) is-subgroup-generated-by-family-of-elements-image-subgroup-family-of-elements-Group : is-subgroup-generated-by-family-of-elements-Group H ( map-hom-Group G H f ∘ x) ( im-hom-Subgroup G H f (subgroup-family-of-elements-Group G x)) is-subgroup-generated-by-family-of-elements-image-subgroup-family-of-elements-Group = is-subgroup-generated-by-family-of-elements-has-same-elements-Subgroup H ( map-hom-Group G H f ∘ x) ( im-hom-Subgroup G H f (subgroup-family-of-elements-Group G x)) ( inv-iff ∘ compute-image-subgroup-family-of-elements-Group)
The subgroup ⟨xᵢ⟩
is trivial if and only if unit-Group G = xᵢ
for every i
module _ {l1 l2 : Level} (G : Group l1) {I : UU l2} (x : I → type-Group G) where is-trivial-subgroup-family-of-elements-Group : ((i : I) → is-unit-Group' G (x i)) → is-trivial-Subgroup G (subgroup-family-of-elements-Group G x) is-trivial-subgroup-family-of-elements-Group = leq-subgroup-family-of-elements-Group G x (trivial-Subgroup G) is-family-of-units-is-trivial-subgroup-family-of-elements-Group : is-trivial-Subgroup G (subgroup-family-of-elements-Group G x) → (i : I) → is-unit-Group' G (x i) is-family-of-units-is-trivial-subgroup-family-of-elements-Group H i = H (x i) (contains-element-subgroup-family-of-elements-Group G x i)
Recent changes
- 2023-11-24. Egbert Rijke. Abelianization (#877).
- 2023-10-13. Egbert Rijke and Fredrik Bakke. The commutator subgroup (#835).