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 matrixIsCoxeterif 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 groupWand 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
Wis an injection. - A group
Wregistered 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
mulEquivis the isomorphism between the groupWand 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
- CoxeterSystem.funLike = { coe := fun (cs : CoxeterSystem M W) (b : B) => (MulEquiv.symm cs.mulEquiv) (PresentedGroup.of b), coe_injective' := ⋯ }
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]]