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 #

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

Equations
Instances For
    def Subgroup.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 n times.

    Equations
    Instances For
      theorem Subgroup.map_derivedSeries_le_derivedSeries {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (f : G →* G') (n : ℕ) :
      theorem AddSubgroup.map_derivedSeries_le_derivedSeries {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] (f : G →+ G') (n : ℕ) :
      theorem Subgroup.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 AddSubgroup.derivedSeries_le_map_derivedSeries {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] {f : G →+ G'} (hf : Function.Surjective ⇑f) (n : ℕ) :
      theorem Subgroup.map_derivedSeries_eq {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Surjective ⇑f) (n : ℕ) :
      theorem AddSubgroup.map_derivedSeries_eq {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup G'] {f : G →+ G'} (hf : Function.Surjective ⇑f) (n : ℕ) :
      @[deprecated Subgroup.derivedSeries (since := "2026-10-17")]
      def derivedSeries (G : Type u_1) [Group G] :

      Alias of Subgroup.derivedSeries.


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

      Equations
      Instances For
        @[deprecated Subgroup.derivedSeries_zero (since := "2026-10-17")]

        Alias of Subgroup.derivedSeries_zero.

        @[deprecated Subgroup.derivedSeries_succ (since := "2026-10-17")]

        Alias of Subgroup.derivedSeries_succ.

        @[deprecated Subgroup.derivedSeries_normal (since := "2026-10-17")]
        theorem derivedSeries_normal (G : Type u_1) [Group G] (n : ℕ) :

        Alias of Subgroup.derivedSeries_normal.

        @[deprecated Subgroup.derivedSeries_one (since := "2026-10-17")]

        Alias of Subgroup.derivedSeries_one.

        @[deprecated Subgroup.derivedSeries_antitone (since := "2026-10-17")]

        Alias of Subgroup.derivedSeries_antitone.

        @[deprecated Subgroup.derivedSeries_characteristic (since := "2026-10-17")]

        Alias of Subgroup.derivedSeries_characteristic.

        @[deprecated Subgroup.map_derivedSeries_le_derivedSeries (since := "2026-10-17")]
        theorem map_derivedSeries_le_derivedSeries {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] (f : G →* G') (n : ℕ) :

        Alias of Subgroup.map_derivedSeries_le_derivedSeries.

        @[deprecated Subgroup.derivedSeries_le_map_derivedSeries (since := "2026-10-17")]
        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 : ℕ) :

        Alias of Subgroup.derivedSeries_le_map_derivedSeries.

        @[deprecated Subgroup.map_derivedSeries_eq (since := "2026-10-17")]
        theorem map_derivedSeries_eq {G : Type u_1} {G' : Type u_2} [Group G] [Group G'] {f : G →* G'} (hf : Function.Surjective ⇑f) (n : ℕ) :

        Alias of Subgroup.map_derivedSeries_eq.

        class AddGroup.IsSolvable (G : Type u_3) [AddGroup G] :

        An additive group G is solvable if its derived series is eventually trivial.

        Instances
          class Group.IsSolvable (G : Type u_1) [Group G] :

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

          Instances
            @[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.

            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.

              theorem Group.isSolvable_of_comm {G : Type u_3} [hG : Group G] (h : ∀ (a b : G), a * b = b * a) :
              theorem AddGroup.isSolvable_of_comm {G : Type u_3} [hG : AddGroup 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''] :
              theorem AddGroup.isSolvable_of_ker_le_range {G : Type u_1} [AddGroup G] {G' : Type u_3} {G'' : Type u_4} [AddGroup G'] [AddGroup 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'] :
              theorem AddGroup.isSolvable_of_isSolvable_injective {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup 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] :
              theorem AddGroup.isSolvable_of_surjective {G : Type u_1} {G' : Type u_2} [AddGroup G] [AddGroup 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')
              instance AddGroup.instIsSolvableSum {G : Type u_1} [AddGroup G] {G' : Type u_3} [AddGroup 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 Group.not_isSolvable_of_mem_derivedSeries {G : Type u_1} [Group G] {g : G} (h1 : g ≠ 1) (h2 : ∀ (n : ℕ), g ∈ Subgroup.derivedSeries G n) :
              theorem AddGroup.not_isSolvable_of_mem_derivedSeries {G : Type u_1} [AddGroup G] {g : G} (h1 : g ≠ 0) (h2 : ∀ (n : ℕ), g ∈ AddSubgroup.derivedSeries G n) :
              @[deprecated Group.not_isSolvable_of_mem_derivedSeries (since := "2026-10-17")]
              theorem not_isSolvable_of_mem_derivedSeries {G : Type u_1} [Group G] {g : G} (h1 : g ≠ 1) (h2 : ∀ (n : ℕ), g ∈ Subgroup.derivedSeries G n) :

              Alias of Group.not_isSolvable_of_mem_derivedSeries.

              @[deprecated Group.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 ∈ Subgroup.derivedSeries G n) :

              Alias of Group.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.