Documentation

Mathlib.GroupTheory.Solvable

Solvable Groups #

In this file we introduce the notion of a solvable group. We define a solvable group as one whose derived series is eventually trivial. This requires defining the commutator of two subgroups and the derived series of a group.

Main definitions #

def derivedSeries (G : Type u_1) [Group G] :

The derived series of the group G, obtained by starting from the subgroup and repeatedly taking the commutator of the previous subgroup with itself for n times.

Equations
Instances For
    @[simp]
    theorem derivedSeries_zero (G : Type u_1) [Group G] :
    @[simp]
    theorem derivedSeries_succ (G : Type u_1) [Group G] (n : ) :
    theorem derivedSeries_normal (G : Type u_1) [Group G] (n : ) :
    @[simp]
    theorem derivedSeries_one (G : Type u_1) [Group G] :
    theorem map_derivedSeries_le_derivedSeries {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (f : G →* G') (n : ) :
    theorem derivedSeries_le_map_derivedSeries {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Surjective f) (n : ) :
    theorem map_derivedSeries_eq {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Surjective f) (n : ) :
    class Group.IsSolvable (G : Type u_1) [Group G] :

    A group G is solvable if its derived series is eventually trivial. We use this definition because it's the most convenient one to work with.

    • solvable : ∃ (n : ), derivedSeries G n =

      A group G is solvable if its derived series is eventually trivial.

    Instances
      theorem Group.isSolvable_def (G : Type u_1) [Group G] :
      IsSolvable G ∃ (n : ), derivedSeries G n =
      @[deprecated Group.IsSolvable (since := "2026-07-16")]
      def IsSolvable (G : Type u_1) [Group G] :

      Alias of Group.IsSolvable.


      A group G is solvable if its derived series is eventually trivial. We use this definition because it's the most convenient one to work with.

      Equations
      Instances For
        @[deprecated Group.isSolvable_def (since := "2026-07-17")]
        theorem isSolvable_def (G : Type u_1) [Group G] :

        Alias of Group.isSolvable_def.

        @[instance 100]
        instance Group.instIsSolvable {G : Type u_3} [CommGroup G] :
        theorem Group.isSolvable_of_comm {G : Type u_3} [hG : Group G] (h : ∀ (a b : G), a * b = b * a) :
        @[deprecated Group.isSolvable_of_comm (since := "2026-07-16")]
        theorem isSolvable_of_comm {G : Type u_3} [hG : Group G] (h : ∀ (a b : G), a * b = b * a) :

        Alias of Group.isSolvable_of_comm.

        @[deprecated Group.isSolvable_of_top_eq_bot (since := "2026-07-16")]

        Alias of Group.isSolvable_of_top_eq_bot.

        @[instance 100]
        theorem Group.isSolvable_of_ker_le_range {G : Type u_1} [Group G] {G' : Type u_3} {G'' : Type u_4} [Group G'] [Group G''] (f : G' →* G) (g : G →* G'') (hfg : g.ker f.range) [hG' : IsSolvable G'] [hG'' : IsSolvable G''] :
        @[deprecated Group.isSolvable_of_ker_le_range (since := "2026-07-16")]
        theorem solvable_of_ker_le_range {G : Type u_1} [Group G] {G' : Type u_3} {G'' : Type u_4} [Group G'] [Group G''] (f : G' →* G) (g : G →* G'') (hfg : g.ker f.range) [hG' : Group.IsSolvable G'] [hG'' : Group.IsSolvable G''] :

        Alias of Group.isSolvable_of_ker_le_range.

        theorem Group.isSolvable_of_isSolvable_injective {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Injective f) [IsSolvable G'] :
        @[deprecated Group.isSolvable_of_isSolvable_injective (since := "2026-07-16")]
        theorem solvable_of_solvable_injective {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Injective f) [Group.IsSolvable G'] :

        Alias of Group.isSolvable_of_isSolvable_injective.

        theorem Group.isSolvable_of_surjective {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Surjective f) [IsSolvable G] :
        @[deprecated Group.isSolvable_of_surjective (since := "2026-07-16")]
        theorem solvable_of_surjective {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Surjective f) [Group.IsSolvable G] :

        Alias of Group.isSolvable_of_surjective.

        instance Group.instIsSolvableProd {G : Type u_1} [Group G] {G' : Type u_3} [Group G'] [IsSolvable G] [IsSolvable G'] :
        IsSolvable (G × G')
        @[deprecated Group.IsSolvable.commutator_lt_top_of_nontrivial (since := "2026-07-16")]

        Alias of Group.IsSolvable.commutator_lt_top_of_nontrivial.

        @[deprecated Group.IsSolvable.commutator_lt_of_ne_bot (since := "2026-07-16")]
        theorem IsSolvable.commutator_lt_of_ne_bot {G : Type u_1} [Group G] [Group.IsSolvable G] {H : Subgroup G} (hH : H ) :
        H, H < H

        Alias of Group.IsSolvable.commutator_lt_of_ne_bot.

        @[deprecated Group.isSolvable_iff_commutator_lt (since := "2026-07-16")]
        theorem isSolvable_iff_commutator_lt {G : Type u_1} [Group G] [WellFoundedLT (Subgroup G)] :
        Group.IsSolvable G ∀ (H : Subgroup G), H H, H < H

        Alias of Group.isSolvable_iff_commutator_lt.

        theorem IsSimpleGroup.comm_iff_isSolvable {G : Type u_1} [Group G] [IsSimpleGroup G] :
        (∀ (a b : G), a * b = b * a) Group.IsSolvable G
        theorem not_isSolvable_of_mem_derivedSeries {G : Type u_1} [Group G] {g : G} (h1 : g 1) (h2 : ∀ (n : ), g derivedSeries G n) :
        @[deprecated not_isSolvable_of_mem_derivedSeries (since := "2026-07-16")]
        theorem not_solvable_of_mem_derivedSeries {G : Type u_1} [Group G] {g : G} (h1 : g 1) (h2 : ∀ (n : ), g derivedSeries G n) :

        Alias of not_isSolvable_of_mem_derivedSeries.

        @[deprecated Equiv.Perm.not_isSolvable_fin_5 (since := "2026-07-16")]

        Alias of Equiv.Perm.not_isSolvable_fin_5.

        @[deprecated Equiv.Perm.not_isSolvable (since := "2026-07-16")]

        Alias of Equiv.Perm.not_isSolvable.