Documentation

Mathlib.Order.JordanHolder

Jordan-Hölder Theorem #

This file proves the Jordan Hölder theorem for a JordanHolderLattice, a class also defined in this file. Examples of JordanHolderLattice include Subgroup G if G is a group, and Submodule R M if M is an R-module. Using this approach the theorem need not be proved separately for both groups and modules, the proof in this file can be applied to both.

Main definitions #

The main definitions in this file are JordanHolderLattice and CompositionSeries, and the relation Equivalent on CompositionSeries

A JordanHolderLattice is the class for which the Jordan Hölder theorem is proved. A Jordan Hölder lattice is a lattice equipped with a notion of maximality, IsMaximal. In the example of subgroups of a group, IsMaximal H K means that H is a maximal normal subgroup of K.

A CompositionSeries X is a finite nonempty series of elements of the lattice X such that each element is maximal inside the next. The length of a CompositionSeries X is one less than the number of elements in the series. Note that there is no stipulation that a series start from the bottom of the lattice and finish at the top. For a composition series s, s.last is the largest element of the series, and s.head is the least element.

We define an equivalence relation JordanHolderLattice.Iso on intervals generated by the relations Iso (x, x ⊔ y) (x ⊓ y, y) for IsMaximal x (x ⊔ y). This is the strongest possible equivalence relation for which we can prove the Jordan Hölder theorem. For any specific JordanHolderLattice, one must verify that Iso implies the desired weaker notion (e.g., isomorphism of quotients).

Two CompositionSeries X, s₁ and s₂ are equivalent if there is a bijection e : Fin s₁.length ≃ Fin s₂.length such that for any i, Iso (s₁ i, s₁ i.succ) (s₂ (e i), s₂ (e i.succ))

Main theorems #

The main theorem is CompositionSeries.jordan_holder, which says that if two composition series have the same least element and the same largest element, then they are Equivalent.

TODO #

Provide instances of JordanHolderLattice for subgroups.

class JordanHolderLattice (X : Type u) [Lattice X] :

A JordanHolderLattice is the class for which the Jordan Hölder theorem is proved. A Jordan Hölder lattice is a lattice equipped with a notion of maximality, IsMaximal.

Examples include Subgroup G if G is a group, and Submodule R M if M is an R-module.

In the example of subgroups, IsMaximal H K means that H is a maximal normal subgroup of K. In the example of submodules, IsMaximal M N means that M is a maximal submodule of N.

Instances
    @[instance_reducible]

    Every modular lattice is a Jordan Hölder lattice.

    Equations
    def JordanHolderLattice.Iso {X : Type u} [Lattice X] [JordanHolderLattice X] :
    X × XX × XProp

    The equivalence relation on intervals generated by the relations Iso (x, x ⊔ y) (x ⊓ y, y) for IsMaximal x (x ⊔ y). This is the strongest possibly equivalence relation for which we can prove the Jordan Hölder theorem. For any specific JordanHolderLattice, use Iso.rel to verify that Iso implies the desired weaker notion (e.g., isomorphism of quotients).

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem JordanHolderLattice.iso_symm {X : Type u} [Lattice X] [JordanHolderLattice X] {x y : X × X} (h : Iso x y) :
      Iso y x
      theorem JordanHolderLattice.iso_trans {X : Type u} [Lattice X] [JordanHolderLattice X] {x y z : X × X} (hxy : Iso x y) (hyz : Iso y z) :
      Iso x z
      theorem JordanHolderLattice.second_iso {X : Type u} [Lattice X] [JordanHolderLattice X] {x y : X} (h : IsMaximal x (xy)) :
      Iso (x, xy) (xy, y)
      theorem JordanHolderLattice.Iso.rel {X : Type u} [Lattice X] [JordanHolderLattice X] (e : X × XX × XProp) (h_refl : ∀ {x : X × X}, e x x) (h_symm : ∀ {x y : X × X}, e x ye y x) (h_trans : ∀ {x y z : X × X}, e x ye y ze x z) (h_rel : ∀ {x y : X}, IsMaximal x (xy)e (x, xy) (xy, y)) {x y : X × X} (h_iso : Iso x y) :
      e x y

      The equivalence relation on intervals implies any other notions of isomorphism.

      theorem JordanHolderLattice.isMaximal_inf_right_of_isMaximal_sup {X : Type u} [Lattice X] [JordanHolderLattice X] {x y : X} (hxz : IsMaximal x (xy)) (hyz : IsMaximal y (xy)) :
      IsMaximal (xy) y
      theorem JordanHolderLattice.isMaximal_of_eq_inf {X : Type u} [Lattice X] [JordanHolderLattice X] (x b : X) {a y : X} (ha : xy = a) (hxy : x y) (hxb : IsMaximal x b) (hyb : IsMaximal y b) :
      theorem JordanHolderLattice.second_iso_of_eq {X : Type u} [Lattice X] [JordanHolderLattice X] {x y a b : X} (hm : IsMaximal x a) (ha : xy = a) (hb : xy = b) :
      Iso (x, a) (b, y)
      @[deprecated JordanHolderLattice.iso_refl (since := "2026-07-11")]

      Alias of JordanHolderLattice.iso_refl.

      @[reducible, inline]

      A CompositionSeries X is a finite nonempty series of elements of a JordanHolderLattice such that each element is maximal inside the next. The length of a CompositionSeries X is one less than the number of elements in the series. Note that there is no stipulation that a series start from the bottom of the lattice and finish at the top. For a composition series s, s.last is the largest element of the series, and s.head is the least element.

      Equations
      Instances For
        @[simp]
        theorem CompositionSeries.inj {X : Type u} [Lattice X] [JordanHolderLattice X] (s : CompositionSeries X) {i j : Fin s.length.succ} :
        s.toFun i = s.toFun j i = j
        theorem CompositionSeries.total {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x y : X} (hx : x s) (hy : y s) :
        x y y x
        theorem CompositionSeries.ext {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} (h : ∀ (x : X), x s₁ x s₂) :
        s₁ = s₂

        Two CompositionSeries are equal if they have the same elements. See also ext_fun.

        theorem CompositionSeries.ext_iff {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} :
        s₁ = s₂ ∀ (x : X), x s₁ x s₂

        Two CompositionSeries X, s₁ and s₂ are equivalent if there is a bijection e : Fin s₁.length ≃ Fin s₂.length such that for any i, Iso (s₁ i) (s₁ i.succ) (s₂ (e i), s₂ (e i.succ))

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem CompositionSeries.Equivalent.symm {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} (h : s₁.Equivalent s₂) :
          s₂.Equivalent s₁
          theorem CompositionSeries.Equivalent.trans {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ s₃ : CompositionSeries X} (h₁ : s₁.Equivalent s₂) (h₂ : s₂.Equivalent s₃) :
          s₁.Equivalent s₃
          theorem CompositionSeries.Equivalent.smash {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ t₁ t₂ : CompositionSeries X} (hs : RelSeries.last s₁ = RelSeries.head s₂) (ht : RelSeries.last t₁ = RelSeries.head t₂) (h₁ : s₁.Equivalent t₁) (h₂ : s₂.Equivalent t₂) :
          Equivalent (RelSeries.smash s₁ s₂ hs) (RelSeries.smash t₁ t₂ ht)
          theorem CompositionSeries.Equivalent.snoc {X : Type u} [Lattice X] [JordanHolderLattice X] {s₁ s₂ : CompositionSeries X} {x₁ x₂ : X} {hsat₁ : JordanHolderLattice.IsMaximal (RelSeries.last s₁) x₁} {hsat₂ : JordanHolderLattice.IsMaximal (RelSeries.last s₂) x₂} (hequiv : s₁.Equivalent s₂) (hlast : JordanHolderLattice.Iso (RelSeries.last s₁, x₁) (RelSeries.last s₂, x₂)) :
          Equivalent (RelSeries.snoc s₁ x₁ hsat₁) (RelSeries.snoc s₂ x₂ hsat₂)
          theorem CompositionSeries.Equivalent.snoc_snoc_swap {X : Type u} [Lattice X] [JordanHolderLattice X] {s : CompositionSeries X} {x₁ x₂ y₁ y₂ : X} {hsat₁ : JordanHolderLattice.IsMaximal (RelSeries.last s) x₁} {hsat₂ : JordanHolderLattice.IsMaximal (RelSeries.last s) x₂} {hsaty₁ : JordanHolderLattice.IsMaximal (RelSeries.snoc s x₁ hsat₁).last y₁} {hsaty₂ : JordanHolderLattice.IsMaximal (RelSeries.snoc s x₂ hsat₂).last y₂} (hr₁ : JordanHolderLattice.Iso (RelSeries.last s, x₁) (x₂, y₂)) (hr₂ : JordanHolderLattice.Iso (x₁, y₁) (RelSeries.last s, x₂)) :
          Equivalent ((RelSeries.snoc s x₁ hsat₁).snoc y₁ hsaty₁) ((RelSeries.snoc s x₂ hsat₂).snoc y₂ hsaty₂)

          Given a CompositionSeries, s, and an element x such that x is maximal inside s.last there is a series, t, such that t.last = x, t.head = s.head and snoc t s.last _ is equivalent to s.

          The Jordan-Hölder theorem, stated for any JordanHolderLattice. If two composition series start and finish at the same place, they are equivalent.