Coxeter Groups¶
-
sage.categories.coxeter_groups.
CoxeterGroups
¶ The category of Coxeter groups.
A Coxeter group is a group \(W\) with a distinguished (finite) family of involutions \((s_i)_{i\in I}\), called the simple reflections, subject to relations of the form \((s_is_j)^{m_{i,j}} = 1\).
\(I\) is the index set of \(W\) and \(|I|\) is the rank of \(W\).
See Wikipedia article Coxeter_group for details.
EXAMPLES:
sage: C = CoxeterGroups(); C Category of coxeter groups sage: C.super_categories() [Category of generalized coxeter groups] sage: W = C.example(); W The symmetric group on {0, ..., 3} sage: W.simple_reflections() Finite family {0: (1, 0, 2, 3), 1: (0, 2, 1, 3), 2: (0, 1, 3, 2)}
Here are some further examples:
sage: FiniteCoxeterGroups().example() The 5-th dihedral group of order 10 sage: FiniteWeylGroups().example() The symmetric group on {0, ..., 3} sage: WeylGroup(["B", 3]) Weyl Group of type ['B', 3] (as a matrix group acting on the ambient space) sage: S4 = SymmetricGroup(4); S4 Symmetric group of order 4! as a permutation group sage: S4 in CoxeterGroups().Finite() True
Those will eventually be also in this category:
sage: DihedralGroup(5) Dihedral group of order 10 as a permutation group
Todo
add a demo of usual computations on Coxeter groups.
See also
sage.combinat.root_system
WeylGroups
GeneralizedCoxeterGroups
Warning
It is assumed that morphisms in this category preserve the distinguished choice of simple reflections. In particular, subobjects in this category are parabolic subgroups. In this sense, this category might be better named
Coxeter Systems
. In the long run we might want to have two distinct categories, one for Coxeter groups (with morphisms being just group morphisms) and one for Coxeter systems:sage: CoxeterGroups().is_full_subcategory(Groups()) False sage: from sage.categories.generalized_coxeter_groups import GeneralizedCoxeterGroups sage: CoxeterGroups().is_full_subcategory(GeneralizedCoxeterGroups()) True