Coxeter groups and Coxeter systems #
This file defines Coxeter groups and Coxeter systems.
Let B
be a (possibly infinite) type, and let $M = (M_{i,i'})_{i, i' \in B}$ be a matrix
of natural numbers. Further assume that $M$ is a Coxeter matrix (CoxeterMatrix
); that is, $M$ is
symmetric and $M_{i,i'} = 1$ if and only if $i = i'$. The Coxeter group associated to $M$
(CoxeterMatrix.group
) has the presentation
$$\langle \{s_i\}_{i \in B} \vert \{(s_i s_{i'})^{M_{i, i'}}\}_{i, i' \in B} \rangle.$$
The elements $s_i$ are called the simple reflections (CoxeterMatrix.simple
) of the Coxeter
group. Note that every simple reflection is an involution.
A Coxeter system (CoxeterSystem
) is a group $W$, together with an isomorphism between $W$ and
the Coxeter group associated to some Coxeter matrix $M$. By abuse of language, we also say that $W$
is a Coxeter group (IsCoxeterGroup
), and we may speak of the simple reflections $s_i \in W$
(CoxeterSystem.simple
). We state all of our results about Coxeter groups in terms of Coxeter
systems where possible.
Let $W$ be a group equipped with a Coxeter system. For all monoids $G$ and all functions
$f \colon B \to G$ whose values satisfy the Coxeter relations, we may lift $f$ to a multiplicative
homomorphism $W \to G$ (CoxeterSystem.lift
) in a unique way.
A word is a sequence of elements of $B$. The word $(i_1, \ldots, i_\ell)$ has a corresponding
product $s_{i_1} \cdots s_{i_\ell} \in W$ (CoxeterSystem.wordProd
). Every element of $W$ is the
product of some word (CoxeterSystem.wordProd_surjective
). The words that alternate between two
elements of $B$ (CoxeterSystem.alternatingWord
) are particularly important.
Implementation details #
Much of the literature on Coxeter groups conflates the set $S = \{s_i : i \in B\} \subseteq W$ of simple reflections with the set $B$ that indexes the simple reflections. This is usually permissible because the simple reflections $s_i$ of any Coxeter group are all distinct (a nontrivial fact that we do not prove in this file). In contrast, we try not to refer to the set $S$ of simple reflections unless necessary; instead, we state our results in terms of $B$ wherever possible.
Main definitions #
CoxeterMatrix.Group
CoxeterSystem
IsCoxeterGroup
CoxeterSystem.simple
: Ifcs
is a Coxeter system on the groupW
, thencs.simple i
is the simple reflection ofW
at the indexi
.CoxeterSystem.lift
: Extend a functionf : B → G
to a monoid homomorphismf' : W → G
satisfyingf' (cs.simple i) = f i
for alli
.CoxeterSystem.wordProd
CoxeterSystem.alternatingWord
References #
N. Bourbaki, Lie Groups and Lie Algebras, Chapters 4--6 chapter IV pages 4--5, 13--15
TODO #
- The simple reflections of a Coxeter system are distinct.
- Introduce some ways to actually construct some Coxeter groups. For example, given a Coxeter matrix $M : B \times B \to \mathbb{N}$, a real vector space $V$, a basis $\{\alpha_i : i \in B\}$ and a bilinear form $\langle \cdot, \cdot \rangle \colon V \times V \to \mathbb{R}$ satisfying $$\langle \alpha_i, \alpha_{i'}\rangle = - \cos(\pi / M_{i,i'}),$$ one can form the subgroup of $GL(V)$ generated by the reflections in the $\alpha_i$, and it is a Coxeter group. We can use this to combinatorially describe the Coxeter groups of type $A$, $B$, $D$, and $I$.
- State and prove Matsumoto's theorem.
- Classify the finite Coxeter groups.
Tags #
coxeter system, coxeter group
Coxeter groups #
The Coxeter relation associated to a Coxeter matrix $M$ and two indices $i, i' \in B$. That is, the relation $(s_i s_{i'})^{M_{i, i'}}$, considered as an element of the free group on $\{s_i\}_{i \in B}$. If $M_{i, i'} = 0$, then this is the identity, indicating that there is no relation between $s_i$ and $s_{i'}$.
Equations
- M.relation i i' = (FreeGroup.of i * FreeGroup.of i') ^ M.M i i'
Instances For
The set of all Coxeter relations associated to the Coxeter matrix $M$.
Equations
- M.relationsSet = Set.range (Function.uncurry M.relation)
Instances For
The Coxeter group associated to a Coxeter matrix $M$; that is, the group $$\langle \{s_i\}_{i \in B} \vert \{(s_i s_{i'})^{M_{i, i'}}\}_{i, i' \in B} \rangle.$$
Equations
- M.Group = PresentedGroup M.relationsSet
Instances For
Equations
- M.instGroupGroup = QuotientGroup.Quotient.group (Subgroup.normalClosure M.relationsSet)
The simple reflection of the Coxeter group M.group
at the index i
.
Equations
- M.simple i = PresentedGroup.of i
Instances For
The isomorphism between the Coxeter group associated to the reindexed matrix M.reindex e
and
the Coxeter group associated to M
.
Equations
- M.reindexGroupEquiv e = (QuotientGroup.congr (Subgroup.normalClosure M.relationsSet) (Subgroup.normalClosure (CoxeterMatrix.reindex e M).relationsSet) (FreeGroup.freeGroupCongr e) ⋯).symm
Instances For
Coxeter systems #
A Coxeter system CoxeterSystem M W
is a structure recording the isomorphism between
a group W
and the Coxeter group associated to a Coxeter matrix M
.
- mulEquiv : W ≃* M.Group
The isomorphism between
W
and the Coxeter group associated toM
.
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 : CoxeterMatrix B), Nonempty (CoxeterSystem M W)
Instances
The canonical Coxeter system on the Coxeter group associated to M
.
Equations
- M.toCoxeterSystem = { mulEquiv := MulEquiv.refl M.Group }
Instances For
Reindex a Coxeter system through a bijection of the indexing sets.
Equations
- cs.reindex e = { mulEquiv := cs.mulEquiv.trans (M.reindexGroupEquiv e).symm }
Instances For
Push a Coxeter system through a group isomorphism.
Equations
- cs.map e = { mulEquiv := e.symm.trans cs.mulEquiv }
Instances For
Simple reflections #
The simple reflection of W
at the index i
.
Equations
- cs.simple i = cs.mulEquiv.symm (PresentedGroup.of i)
Instances For
The simple reflections of W
generate W
as a group.
The simple reflections of W
generate W
as a monoid.
Induction principles for Coxeter systems #
If p : W → Prop
holds for all simple reflections, it holds for the identity, and it is
preserved under multiplication, then it holds for all elements of W
.
If p : W → Prop
holds for the identity and it is preserved under multiplying on the left
by a simple reflection, then it holds for all elements of W
.
If p : W → Prop
holds for the identity and it is preserved under multiplying on the right
by a simple reflection, then it holds for all elements of W
.
Homomorphisms from a Coxeter group #
If two homomorphisms with domain W
agree on all simple reflections, then they are equal.
The proposition that the values of the function f : B → G
satisfy the Coxeter relations
corresponding to the matrix M
.
Instances For
The universal mapping property of Coxeter systems. For any monoid G
,
functions f : B → G
whose values satisfy the Coxeter relations are equivalent to
monoid homomorphisms f' : W → G
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If two Coxeter systems on the same group W
have the same Coxeter matrix M : Matrix B B ℕ
and the same simple reflection map B → W
, then they are identical.
Words #
The product of the simple reflections of W
corresponding to the indices in ω
.
Instances For
The word of length m
that alternates between i
and i'
, ending with i'
.
Equations
- CoxeterSystem.alternatingWord i i' 0 = []
- CoxeterSystem.alternatingWord i i' m_2.succ = (CoxeterSystem.alternatingWord i' i m_2).concat i'
Instances For
The word of length M i i'
that alternates between i
and i'
, ending with i'
.
Equations
- CoxeterSystem.braidWord M i i' = CoxeterSystem.alternatingWord i i' (M.M i i')
Instances For
The two words of length M i i'
that alternate between i
and i'
have the same product.
This is known as the "braid relation" or "Artin-Tits relation".