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 homomorphismfhas 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 homomorphismfsatisfies 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).