Documentation

Mathlib.GroupTheory.IsSubnormal

Subnormal subgroups #

In this file, we define subnormal subgroups.

We also show some basic results about the interaction of subnormality and simplicity of groups. These should cover most of the results needed in this case.

Main Definition #

IsSubnormal H: A subgroup H of a group G satisfies IsSubnormal if

Main Statements #

Implementation Notes #

We deviate from the common informal definition of subnormality and use an inductive predicate. This turns out to be more convenient to work with. We show the equivalence of the current definition with the existence of chains in isSubnormal_iff.

inductive Subgroup.IsSubnormal {G : Type u_1} [Group G] :

A subgroup H of a group G satisfies IsSubnormal if

  • either H = ⊤;
  • or there is a subgroup K of G containing H and such that H is normal in K and K satisfies IsSubnormal.

Equivalently, H.IsSubnormal means that there is a chain of subgroups H₀ ≤ H₁ ≤ ... ≤ Hₙ such that

  • H = H₀,
  • G = Hₙ,
  • for each i ∈ {0, ..., n - 1}, Hᵢ is a normal subgroup of Hᵢ₊₁.

See isSubnormal_iff for this characterisation.

Instances For
    theorem Subgroup.Normal.isSubnormal {G : Type u_1} [Group G] {H : Subgroup G} (hn : H.Normal) :

    A normal subgroup is subnormal.

    @[simp]

    The trivial subgroup is subnormal.

    A subnormal subgroup of a simple group is normal.

    A subnormal subgroup of a simple group is either trivial or the whole group.

    theorem Subgroup.IsSubnormal.exists_normal_and_le_and_lt_top_of_ne {G : Type u_1} [Group G] {H : Subgroup G} (hN : H.IsSubnormal) (ne_top : H ) :
    ∃ (K : Subgroup G), K.Normal H K K <

    A proper subnormal subgroup is contained in a proper normal subgroup.

    theorem Subgroup.IsSubnormal.lt_normal {G : Type u_1} [Group G] {H : Subgroup G} (hN : H.IsSubnormal) :
    H = ∃ (K : Subgroup G), K.Normal H K K <

    A subnormal subgroup is either the whole group or it is contained in a proper normal subgroup.

    theorem Subgroup.IsSubnormal.isSubnormal_iff {G : Type u_1} [Group G] {H : Subgroup G} :
    H.IsSubnormal ∃ (n : ) (f : Subgroup G), Monotone f (∀ (i : ), ((f i).subgroupOf (f (i + 1))).Normal) f 0 = H f n =

    A characterisation of satisfying IsSubnormal in terms of chains of subgroups, each normal in the following one.

    The sequence stabilises once it reaches , which is guaranteed at the asserted n.

    theorem Subgroup.IsSubnormal.exists_chain {G : Type u_1} [Group G] {H : Subgroup G} :
    H.IsSubnormal∃ (n : ) (f : Subgroup G), Monotone f (∀ (i : ), ((f i).subgroupOf (f (i + 1))).Normal) f 0 = H f n =

    Alias of the forward direction of Subgroup.IsSubnormal.isSubnormal_iff.


    A characterisation of satisfying IsSubnormal in terms of chains of subgroups, each normal in the following one.

    The sequence stabilises once it reaches , which is guaranteed at the asserted n.

    theorem Subgroup.IsSubnormal.trans' {G : Type u_1} [Group G] {K : Subgroup G} {H : Subgroup K} (Hsn : H.IsSubnormal) (Ksn : K.IsSubnormal) :

    Subnormality is transitive.

    This version involves an explicit subtype; the version IsSubnormal.trans does not.

    theorem Subgroup.IsSubnormal.trans {G : Type u_1} [Group G] {H K : Subgroup G} (HK : H K) (Hsn : (H.subgroupOf K).IsSubnormal) (Ksn : K.IsSubnormal) :

    If H is a subnormal subgroup of K and K is a subnormal subgroup of G, then H is a subnormal subgroup of G.