Documentation

Mathlib.GroupTheory.Generators

Group generators as data #

Main definitions #

Main results #

Implementation notes #

References #

Tags #

group generators, generating set, finitely generated

structure Group.Generators (G : Type u_5) [Group G] (ι : Type u_6) :
Type (max u_5 u_6)

The generators of a group are given by a generating family indexed by ι and an assignment val : ι → G such that Subgroup.closure (Set.range val) = ⊤.

  • val : ιG

    The generating family itself: val i is the element of G indexed by i : ι.

  • closure_eq_top : Subgroup.closure (Set.range self.val) =

    The subgroup closure of the generators is the whole group.

Instances For
    @[reducible, inline]
    abbrev Group.Generators.lift {G : Type u_1} {ι : Type u_3} [Group G] (P : Generators G ι) :

    The canonical surjection from the free group on the generators to G.

    Equations
    Instances For
      theorem Group.Generators.lift_surjective {G : Type u_1} {ι : Type u_3} [Group G] (P : Generators G ι) :
      @[deprecated Group.Generators.lift_surjective (since := "2026-08-21")]
      theorem Group.Generators.lift_val_surjective {G : Type u_1} {ι : Type u_3} [Group G] (P : Generators G ι) :

      Alias of Group.Generators.lift_surjective.

      @[simp]
      theorem Group.Generators.range_lift_eq_top {G : Type u_1} {ι : Type u_3} [Group G] (P : Generators G ι) :
      theorem Group.Generators.hom_ext {G : Type u_1} {ι : Type u_3} [Group G] (P : Generators G ι) {M : Type u_5} [Monoid M] (f g : G →* M) (h : ∀ (i : ι), f (P.val i) = g (P.val i)) :
      f = g

      If two homomorphisms coincide on the elements of a generating family, then they are equal.

      def Group.Generators.ofSet {G : Type u_1} [Group G] {S : Set G} (h : Subgroup.closure S = ) :
      Generators G S

      The generating family obtained using a generating set S : Set G.

      Equations
      Instances For
        @[simp]
        theorem Group.Generators.ofSet_val {G : Type u_1} [Group G] {S : Set G} (hS : Subgroup.closure S = ) :
        def Group.Generators.ofFreeGroupHom {G : Type u_1} {ι : Type u_3} [Group G] (φ : FreeGroup ι →* G) ( : Function.Surjective φ) :

        The generating family given by a the canonical surjection from FreeGroup ι.

        Equations
        Instances For
          @[simp]
          theorem Group.Generators.ofFreeGroupHom_val {G : Type u_1} {ι : Type u_3} [Group G] (φ : FreeGroup ι →* G) ( : Function.Surjective φ) :
          @[simp]
          theorem Group.Generators.ofFreeGroupHom_lift {G : Type u_1} {ι : Type u_3} [Group G] (φ : FreeGroup ι →* G) ( : Function.Surjective φ) :
          (ofFreeGroupHom φ ).lift = φ

          The canonical surjection attached to ofFreeGroupHom φ hφ is φ.

          def Group.Generators.map {G : Type u_1} {H : Type u_2} {ι : Type u_3} [Group G] [Group H] (P : Generators G ι) (f : G →* H) (hf : Function.Surjective f) :

          The transport of a generating family along a surjective homomorphism.

          Equations
          • P.map f hf = { val := f P.val, closure_eq_top := }
          Instances For
            @[simp]
            theorem Group.Generators.map_val {G : Type u_1} {H : Type u_2} {ι : Type u_3} [Group G] [Group H] (P : Generators G ι) (f : G →* H) (hf : Function.Surjective f) :
            (P.map f hf).val = f P.val
            def Group.Generators.reindex {G : Type u_1} {ι : Type u_3} {ι' : Type u_4} [Group G] (P : Generators G ι) {e : ι'ι} (he : Function.Surjective e) :

            The transport of a generating family along a surjection of index types.

            Equations
            Instances For
              @[simp]
              theorem Group.Generators.reindex_val {G : Type u_1} {ι : Type u_3} {ι' : Type u_4} [Group G] (P : Generators G ι) {e : ι'ι} (he : Function.Surjective e) :
              (P.reindex he).val = P.val e
              theorem Group.Generators.fg {G : Type u_1} {ι : Type u_3} [Group G] [Finite ι] (P : Generators G ι) :
              FG G

              If G has a finite generating family, then G is finitely generated.

              theorem Group.fg_iff_nonempty_finite_generators {G : Type u_1} [Group G] :
              FG G ∃ (n : ), Nonempty (Generators G (Fin n))

              A group is finitely generated if and only if it admits a finite generating family.