Examples of finite Coxeter groups¶
- class sage.categories.examples.finite_coxeter_groups.DihedralGroup(n=5)[source]¶
Bases:
UniqueRepresentation
,Parent
An example of finite Coxeter group: the \(n\)-th dihedral group of order \(2n\).
The purpose of this class is to provide a minimal template for implementing finite Coxeter groups. See
DihedralGroup
for a full featured and optimized implementation.EXAMPLES:
sage: G = FiniteCoxeterGroups().example()
>>> from sage.all import * >>> G = FiniteCoxeterGroups().example()
This group is generated by two simple reflections \(s_1\) and \(s_2\) subject to the relation \((s_1s_2)^n = 1\):
sage: G.simple_reflections() Finite family {1: (1,), 2: (2,)} sage: s1, s2 = G.simple_reflections() sage: (s1*s2)^5 == G.one() True
>>> from sage.all import * >>> G.simple_reflections() Finite family {1: (1,), 2: (2,)} >>> s1, s2 = G.simple_reflections() >>> (s1*s2)**Integer(5) == G.one() True
An element is represented by its reduced word (a tuple of elements of \(self.index_set()\)):
sage: G.an_element() (1, 2) sage: list(G) [(), (1,), (2,), (1, 2), (2, 1), (1, 2, 1), (2, 1, 2), (1, 2, 1, 2), (2, 1, 2, 1), (1, 2, 1, 2, 1)]
>>> from sage.all import * >>> G.an_element() (1, 2) >>> list(G) [(), (1,), (2,), (1, 2), (2, 1), (1, 2, 1), (2, 1, 2), (1, 2, 1, 2), (2, 1, 2, 1), (1, 2, 1, 2, 1)]
This reduced word is unique, except for the longest element where the chosen reduced word is \((1,2,1,2\dots)\):
sage: G.long_element() (1, 2, 1, 2, 1)
>>> from sage.all import * >>> G.long_element() (1, 2, 1, 2, 1)
- class Element[source]¶
Bases:
ElementWrapper
- apply_simple_reflection_right(i)[source]¶
Implement
CoxeterGroups.ElementMethods.apply_simple_reflection()
.EXAMPLES:
sage: D5 = FiniteCoxeterGroups().example(5) sage: [i^2 for i in D5] # indirect doctest [(), (), (), (1, 2, 1, 2), (2, 1, 2, 1), (), (), (2, 1), (1, 2), ()] sage: [i^5 for i in D5] # indirect doctest [(), (1,), (2,), (), (), (1, 2, 1), (2, 1, 2), (), (), (1, 2, 1, 2, 1)]
>>> from sage.all import * >>> D5 = FiniteCoxeterGroups().example(Integer(5)) >>> [i**Integer(2) for i in D5] # indirect doctest [(), (), (), (1, 2, 1, 2), (2, 1, 2, 1), (), (), (2, 1), (1, 2), ()] >>> [i**Integer(5) for i in D5] # indirect doctest [(), (1,), (2,), (), (), (1, 2, 1), (2, 1, 2), (), (), (1, 2, 1, 2, 1)]
- has_right_descent(i, positive=False, side='right')[source]¶
Implement
SemiGroups.ElementMethods.has_right_descent()
.EXAMPLES:
sage: D6 = FiniteCoxeterGroups().example(6) sage: s = D6.simple_reflections() sage: s[1].has_descent(1) True sage: s[1].has_descent(1) True sage: s[1].has_descent(2) False sage: D6.one().has_descent(1) False sage: D6.one().has_descent(2) False sage: D6.long_element().has_descent(1) True sage: D6.long_element().has_descent(2) True
>>> from sage.all import * >>> D6 = FiniteCoxeterGroups().example(Integer(6)) >>> s = D6.simple_reflections() >>> s[Integer(1)].has_descent(Integer(1)) True >>> s[Integer(1)].has_descent(Integer(1)) True >>> s[Integer(1)].has_descent(Integer(2)) False >>> D6.one().has_descent(Integer(1)) False >>> D6.one().has_descent(Integer(2)) False >>> D6.long_element().has_descent(Integer(1)) True >>> D6.long_element().has_descent(Integer(2)) True
- wrapped_class¶
alias of
tuple
- coxeter_matrix()[source]¶
Return the Coxeter matrix of
self
.EXAMPLES:
sage: FiniteCoxeterGroups().example(6).coxeter_matrix() [1 6] [6 1]
>>> from sage.all import * >>> FiniteCoxeterGroups().example(Integer(6)).coxeter_matrix() [1 6] [6 1]
- degrees()[source]¶
Return the degrees of
self
.EXAMPLES:
sage: FiniteCoxeterGroups().example(6).degrees() (2, 6)
>>> from sage.all import * >>> FiniteCoxeterGroups().example(Integer(6)).degrees() (2, 6)
- index_set()[source]¶
Implement
CoxeterGroups.ParentMethods.index_set()
.EXAMPLES:
sage: D4 = FiniteCoxeterGroups().example(4) sage: D4.index_set() (1, 2)
>>> from sage.all import * >>> D4 = FiniteCoxeterGroups().example(Integer(4)) >>> D4.index_set() (1, 2)
- sage.categories.examples.finite_coxeter_groups.Example[source]¶
alias of
DihedralGroup