Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
r""" Examples of finite Weyl groups """ #***************************************************************************** # Copyright (C) 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net> # # Distributed under the terms of the GNU General Public License (GPL) # http://www.gnu.org/licenses/ #******************************************************************************
r""" An example of finite Weyl group: the symmetric group, with elements in list notation.
The purpose of this class is to provide a minimal template for implementing finite Weyl groups. See :class:`~sage.groups.perm_gps.permgroup_named.SymmetricGroup` for a full featured and optimized implementation.
EXAMPLES::
sage: S = FiniteWeylGroups().example() sage: S The symmetric group on {0, ..., 3} sage: S.category() Category of finite weyl groups
The elements of this group are permutations of the set `\{0,\ldots,3\}`::
sage: S.one() (0, 1, 2, 3) sage: S.an_element() (1, 2, 3, 0)
The group itself is generated by the elementary transpositions::
sage: S.simple_reflections() Finite family {0: (1, 0, 2, 3), 1: (0, 2, 1, 3), 2: (0, 1, 3, 2)}
Only the following basic operations are implemented:
- :meth:`.one` - :meth:`.product` - :meth:`.simple_reflection` - :meth:`.Element.has_right_descent`.
All the other usual Weyl group operations are inherited from the categories::
sage: S.cardinality() 24 sage: S.long_element() (3, 2, 1, 0) sage: S.cayley_graph(side = "left").plot() Graphics object consisting of 120 graphics primitives
Alternatively, one could have implemented :meth:`sage.categories.coxeter_groups.CoxeterGroups.ElementMethods.apply_simple_reflection` instead of :meth:`.simple_reflection` and :meth:`.product`. See ``CoxeterGroups().example()``.
TESTS::
sage: TestSuite(S).run() """
""" EXAMPLES::
sage: S = sage.categories.examples.finite_weyl_groups.SymmetricGroup(4) sage: S == FiniteWeylGroups().example(4) True """
""" EXAMPLES::
sage: FiniteWeylGroups().example() The symmetric group on {0, ..., 3}
"""
def one(self): """ Implements :meth:`Monoids.ParentMethods.one`.
EXAMPLES::
sage: FiniteWeylGroups().example().one() (0, 1, 2, 3) """
""" Implements :meth:`CoxeterGroups.ParentMethods.index_set`.
EXAMPLES::
sage: FiniteWeylGroups().example().index_set() [0, 1, 2] """
""" Implement :meth:`CoxeterGroups.ParentMethods.simple_reflection` by returning the transposition `(i, i+1)`.
EXAMPLES::
sage: FiniteWeylGroups().example().simple_reflection(2) (0, 1, 3, 2) """
""" Implements :meth:`Semigroups.ParentMethods.product`.
EXAMPLES::
sage: s = FiniteWeylGroups().example().simple_reflections() sage: s[1] * s[2] (0, 2, 3, 1) """
""" Return the degrees of ``self``.
EXAMPLES::
sage: W = FiniteWeylGroups().example() sage: W.degrees() (2, 3, 4) """
""" Implements :meth:`CoxeterGroups.ElementMethods.has_right_descent`.
EXAMPLES::
sage: S = FiniteWeylGroups().example() sage: s = S.simple_reflections() sage: (s[1] * s[2]).has_descent(2) True sage: S._test_has_descent() """
|