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
, and a notion
of isomorphism of pairs Iso
. In the example of subgroups of a group, IsMaximal H K
means that
H
is a maximal normal subgroup of K
, and Iso (H₁, K₁) (H₂, K₂)
means that the quotient
H₁ / K₁
is isomorphic to the quotient H₂ / K₂
. Iso
must be symmetric and transitive and must
satisfy the second isomorphism theorem Iso (H, H ⊔ K) (H ⊓ K, 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.
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, and potentially for modular lattices.
It is not entirely clear how this should be done. Possibly there should be no global instances
of JordanHolderLattice
, and the instances should only be defined locally in order to prove
the Jordan-Hölder theorem for modules/groups and the API should be transferred because many of the
theorems in this file will have stronger versions for modules. There will also need to be an API for
mapping composition series across homomorphisms. It is also probably possible to
provide an instance of JordanHolderLattice
for any ModularLattice
, and in this case the
Jordan-Hölder theorem will say that there is a well defined notion of length of a modular lattice.
However an instance of JordanHolderLattice
for a modular lattice will not be able to contain
the correct notion of isomorphism for modules, so a separate instance for modules will still be
required and this will clash with the instance for modular lattices, and so at least one of these
instances should not be a global instance.
[!NOTE] The previous paragraph indicates that the instance of
JordanHolderLattice
for submodules should be obtained viaModularLattice
. This is not the case inmathlib4
. SeeJordanHolderModule.instJordanHolderLattice
.
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
, and a notion
of isomorphism of pairs Iso
. In the example of subgroups of a group, IsMaximal H K
means that
H
is a maximal normal subgroup of K
, and Iso (H₁, K₁) (H₂, K₂)
means that the quotient
H₁ / K₁
is isomorphic to the quotient H₂ / K₂
. Iso
must be symmetric and transitive and must
satisfy the second isomorphism theorem Iso (H, H ⊔ K) (H ⊓ K, K)
.
Examples include Subgroup G
if G
is a group, and Submodule R M
if M
is an R
-module.
- IsMaximal : X → X → Prop
- lt_of_isMaximal {x y : X} : JordanHolderLattice.IsMaximal x y → x < y
- sup_eq_of_isMaximal {x y z : X} : JordanHolderLattice.IsMaximal x z → JordanHolderLattice.IsMaximal y z → x ≠ y → x ⊔ y = z
- isMaximal_inf_left_of_isMaximal_sup {x y : X} : JordanHolderLattice.IsMaximal x (x ⊔ y) → JordanHolderLattice.IsMaximal y (x ⊔ y) → JordanHolderLattice.IsMaximal (x ⊓ y) x
- iso_symm {x y : X × X} : JordanHolderLattice.Iso x y → JordanHolderLattice.Iso y x
- iso_trans {x y z : X × X} : JordanHolderLattice.Iso x y → JordanHolderLattice.Iso y z → JordanHolderLattice.Iso x z
- second_iso {x y : X} : JordanHolderLattice.IsMaximal x (x ⊔ y) → JordanHolderLattice.Iso (x, x ⊔ y) (x ⊓ y, y)
Instances
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
- CompositionSeries X = RelSeries JordanHolderLattice.IsMaximal
Instances For
Two CompositionSeries
are equal if they have the same elements. See also ext_fun
.
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
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.