Coxeter Systems #
This file defines Coxeter systems and Coxeter groups.
A Coxeter system is a pair (W, S)
where W
is a group generated by a set of
reflections (involutions) S = {s₁,s₂,...,sₙ}
, subject to relations determined
by a Coxeter matrix M = (mᵢⱼ)
. The Coxeter matrix is a symmetric matrix with
entries mᵢⱼ
representing the order of the product sᵢsⱼ
for i ≠ j
and mᵢᵢ = 1
.
When (W, S)
is a Coxeter system, one also says, by abuse of language, that W
is a
Coxeter group. A Coxeter group W
is determined by the presentation
W = ⟨s₁,s₂,...,sₙ | ∀ i j, (sᵢsⱼ)^mᵢⱼ = 1⟩
, where 1
is the identity element of W
.
The finite Coxeter groups are classified (TODO) as the four infinite families:
Aₙ, Bₙ, Dₙ, I₂ₘ
And the exceptional systems:
E₆, E₇, E₈, F₄, G₂, H₃, H₄
Implementation details #
In this file a Coxeter system, designated as CoxeterSystem M W
, is implemented as a
structure which effectively records the isomorphism between a group W
and the corresponding
group presentation derived from a Coxeter matrix M
. From another perspective, it serves as
a set of generators for W
, tailored to the underlying type of M
, while ensuring compliance
with the relations specified by the Coxeter matrix M
.
A type class IsCoxeterGroup
is introduced, for groups that are isomorphic to a group
presentation corresponding to a Coxeter matrix which is registered in a Coxeter system.
Main definitions #
Matrix.IsCoxeter
: A matrixIsCoxeter
if it is a symmetric matrix with diagonal entries equal to one and off-diagonal entries distinct from one.Matrix.CoxeterGroup
: The group presentation corresponding to a Coxeter matrix.CoxeterSystem
: A structure recording the isomorphism between a groupW
and the group presentation corresponding to a Coxeter matrix, i.e.Matrix.CoxeterGroup M
.equivCoxeterGroup
: Coxeter groups of isomorphic types are isomorphic.IsCoxeterGroup
: A group is a Coxeter group if it is registered in a Coxeter system.CoxeterMatrix.Aₙ
: Coxeter matrix for the symmetry group of the regular n-simplex.CoxeterMatrix.Bₙ
: Coxeter matrix for the symmetry group of the regular n-hypercube and its dual, the regular n-orthoplex (or n-cross-polytope).CoxeterMatrix.Dₙ
: Coxeter matrix for the symmetry group of the n-demicube.CoxeterMatrix.I₂ₘ
: Coxeter matrix for the symmetry group of the regular (m + 2)-gon.CoxeterMatrix.E₆
: Coxeter matrix for the symmetry group of the E₆ root polytope.CoxeterMatrix.E₇
: Coxeter matrix for the symmetry group of the E₇ root polytope.CoxeterMatrix.E₈
: Coxeter matrix for the symmetry group of the E₈ root polytope.CoxeterMatrix.F₄
: Coxeter matrix for the symmetry group of the regular 4-polytope, the 24-cell.CoxeterMatrix.G₂
: Coxeter matrix for the symmetry group of the regular hexagon.CoxeterMatrix.H₃
: Coxeter matrix for the symmetry group of the regular dodecahedron and icosahedron.CoxeterMatrix.H₄
: Coxeter matrix for the symmetry group of the regular 4-polytopes, the 120-cell and 600-cell.
References #
-
N. Bourbaki, Lie Groups and Lie Algebras, Chapters 4--6 chapter IV pages 4--5, 13--15
TODO #
- The canonical map from the type to the Coxeter group
W
is an injection. - A group
W
registered in a Coxeter system is a Coxeter group. - A Coxeter group is an instance of
IsCoxeterGroup
.
Tags #
coxeter system, coxeter group
A matrix IsCoxeter
if it is a symmetric matrix with diagonal entries equal to one
and off-diagonal entries distinct from one.
- symmetric : Matrix.IsSymm M
- diagonal : ∀ (b : B), M b b = 1
Instances For
The relations corresponding to a Coxeter matrix.
Equations
- CoxeterGroup.Relations.ofMatrix M = Function.uncurry fun (b₁ b₂ : B) => (FreeGroup.of b₁ * FreeGroup.of b₂) ^ M b₁ b₂
Instances For
The set of relations corresponding to a Coxeter matrix.
Equations
Instances For
The group presentation corresponding to a Coxeter matrix.
Equations
Instances For
The canonical map from B
to the Coxeter group with generators b : B
. The term b
is mapped to the equivalence class of the image of b
in CoxeterGroup M
.
Equations
Instances For
A Coxeter system CoxeterSystem W
is a structure recording the isomorphism between
a group W
and the group presentation corresponding to a Coxeter matrix. Equivalently, this
can be seen as a list of generators of W
parameterized by the underlying type of M
, which
satisfy the relations of the Coxeter matrix M
.
- ofMulEquiv :: (
- mulEquiv : W ≃* Matrix.CoxeterGroup M
mulEquiv
is the isomorphism between the groupW
and the group presentation corresponding to a Coxeter matrixM
. - )
Instances For
A group is a Coxeter group if it admits a Coxeter system for some Coxeter matrix M
.
- nonempty_system : ∃ (B : Type u) (M : Matrix B B ℕ), Matrix.IsCoxeter M ∧ Nonempty (CoxeterSystem M W)
Instances
A Coxeter system for W
with Coxeter matrix M
indexed by B
, is associated to
a map B → W
recording the images of the indices.
Equations
- One or more equations did not get rendered due to their size.
The map sending a Coxeter system to its associated map B → W
is injective.
Extensionality rule for Coxeter systems.
The canonical Coxeter system of the Coxeter group over X
.
Equations
- CoxeterSystem.ofCoxeterGroup X D = { mulEquiv := MulEquiv.refl (Matrix.CoxeterGroup D) }
Instances For
Coxeter groups of isomorphic types are isomorphic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Reindex a Coxeter system through a bijection of the indexing sets.
Equations
- CoxeterSystem.reindex cs e = { mulEquiv := MulEquiv.trans cs.mulEquiv (CoxeterSystem.equivCoxeterGroup e) }
Instances For
Pushing a Coxeter system through a group isomorphism.
Equations
- CoxeterSystem.map cs e = { mulEquiv := MulEquiv.trans (MulEquiv.symm e) cs.mulEquiv }
Instances For
The Coxeter matrix of family A(n).
The corresponding Coxeter-Dynkin diagram is:
o --- o --- o ⬝ ⬝ ⬝ ⬝ o --- o
Equations
Instances For
The Coxeter matrix of family Bₙ.
The corresponding Coxeter-Dynkin diagram is:
4
o --- o --- o ⬝ ⬝ ⬝ ⬝ o --- o
Equations
Instances For
The Coxeter matrix of family Dₙ.
The corresponding Coxeter-Dynkin diagram is:
o
\
o --- o ⬝ ⬝ ⬝ ⬝ o --- o
/
o
Equations
Instances For
The Coxeter matrix of system E₆.
The corresponding Coxeter-Dynkin diagram is:
o
|
o --- o --- o --- o --- o
Equations
- CoxeterMatrix.E₆ = Matrix.of ![![1, 2, 3, 2, 2, 2], ![2, 1, 2, 3, 2, 2], ![3, 2, 1, 3, 2, 2], ![2, 3, 3, 1, 3, 2], ![2, 2, 2, 3, 1, 3], ![2, 2, 2, 2, 3, 1]]
Instances For
The Coxeter matrix of system F₄.
The corresponding Coxeter-Dynkin diagram is:
4
o --- o --- o --- o
Equations
- CoxeterMatrix.F₄ = Matrix.of ![![1, 3, 2, 2], ![3, 1, 4, 2], ![2, 4, 1, 3], ![2, 2, 3, 1]]
Instances For
The Coxeter matrix of system G₂.
The corresponding Coxeter-Dynkin diagram is:
6
o --- o
Equations
- CoxeterMatrix.G₂ = Matrix.of ![![1, 6], ![6, 1]]
Instances For
The Coxeter matrix of system H₃.
The corresponding Coxeter-Dynkin diagram is:
5
o --- o --- o
Equations
- CoxeterMatrix.H₃ = Matrix.of ![![1, 3, 2], ![3, 1, 5], ![2, 5, 1]]
Instances For
The Coxeter matrix of system H₄.
The corresponding Coxeter-Dynkin diagram is:
5
o --- o --- o --- o
Equations
- CoxeterMatrix.H₄ = Matrix.of ![![1, 3, 2, 2], ![3, 1, 3, 2], ![2, 3, 1, 5], ![2, 2, 5, 1]]