Returns the Weyl group of type type.
INPUT:
EXAMPLES: The following constructions yield the same result, namely a weight lattice and its corresponding Weyl group:
sage: G = WeylGroup(['F',4])
sage: L = G.lattice()
or alternatively and equivalently:
sage: L = RootSystem(['F',4]).ambient_space()
sage: G = L.weyl_group()
Either produces a weight lattice, with access to its roots and weights.
sage: G = WeylGroup(['F',4])
sage: G.order()
1152
sage: [s1,s2,s3,s4] = G.simple_reflections()
sage: w = s1*s2*s3*s4; w
[ 1/2 1/2 1/2 1/2]
[-1/2 1/2 1/2 -1/2]
[ 1/2 1/2 -1/2 -1/2]
[ 1/2 -1/2 1/2 -1/2]
sage: type(w)
<class 'sage.combinat.root_system.weyl_group.WeylGroupElement'>
sage: w.order()
12
sage: w.length() # length function on Weyl group
4
sage: L = G.lattice()
sage: fw = L.fundamental_weights(); fw
Finite family {1: (1, 1, 0, 0), 2: (2, 1, 1, 0), 3: (3/2, 1/2, 1/2, 1/2), 4: (1, 0, 0, 0)}
sage: rho = sum(fw); rho
(11/2, 5/2, 3/2, 1/2)
sage: w.action(rho) # action of G on weight lattice
(5, -1, 3, 2)
Class for a Weyl Group elements
EXAMPLES:
sage: w = WeylGroup(['A',3])
sage: s1 = w.simple_reflection(1)
sage: s2 = w.simple_reflection(2)
sage: s1 == s1
True
sage: s1 == s2
False
EXAMPLES:
sage: G = WeylGroup(['A',2])
sage: s1 = G.simple_reflection(1)
sage: loads(dumps(s1))
[0 1 0]
[1 0 0]
[0 0 1]
EXAMPLES:
sage: w = WeylGroup(['A',2])
sage: s1 = w.simple_reflection(1)
sage: s1*s1
[1 0 0]
[0 1 0]
[0 0 1]
Returns the action of self on the vector v.
EXAMPLES:
sage: w = WeylGroup(['A',2])
sage: s1 = w.simple_reflection(1)
sage: v = w.lattice()([1,0,0])
sage: s1.action(v)
(0, 1, 0)
Returns the ambient lattice associated with self.
EXAMPLES:
sage: w = WeylGroup(['A',2])
sage: s1 = w.simple_reflection(1)
sage: s1.lattice()
Ambient space of the Root system of type ['A', 2]
Returns the length of self, which is the smallest number of simple reflections into which the element can be decomposed.
EXAMPLES:
sage: w = WeylGroup(['A',3])
sage: s1 = w.simple_reflection(1)
sage: s2 = w.simple_reflection(2)
sage: s1.length()
1
sage: (s1*s2).length()
2
Returns self as a matrix.
EXAMPLES:
sage: w = WeylGroup(['A',2])
sage: s1 = w.simple_reflection(1)
sage: m = s1.matrix(); m
[0 1 0]
[1 0 0]
[0 0 1]
sage: m.parent()
Full MatrixSpace of 3 by 3 dense matrices over Rational Field
Returns self’s parent.
EXAMPLES:
sage: w = WeylGroup(['A',2])
sage: s1 = w.simple_reflection(1)
sage: s1.parent()
Weyl Group of type ['A', 2] (as a matrix group acting on the ambient space)
Class for a Weyl Group with generators (simple reflections)
EXAMPLES:
sage: W = WeylGroup(['A',2])
sage: W(1)
[1 0 0]
[0 1 0]
[0 0 1]
sage: W(2)
...
TypeError: no way to coerce element into self.
TESTS:
sage: G1 = WeylGroup(CartanType(['A',2]))
sage: G2 = WeylGroup(CartanType(['A',2]))
sage: G1 == G2
True
EXAMPLES:
sage: G = WeylGroup(['F',4])
sage: G == loads(dumps(G))
True
EXAMPLES:
sage: WeylGroup(['A', 1])
Weyl Group of type ['A', 1] (as a matrix group acting on the ambient space)
sage: WeylGroup(['A', 3, 1])
Weyl Group of type ['A', 3, 1] (as a matrix group acting on the root space)
Returns the CartanType associated to self.
EXAMPLES:
sage: G = WeylGroup(['F',4])
sage: G.cartan_type()
['F', 4]
Returns the GAP character table as a string. For larger tables you may preface this with a command such as gap.eval(“SizeScreen([120,40])”) in order to widen the screen.
EXAMPLES:
sage: print WeylGroup(['A',3]).character_table()
CT1
<BLANKLINE>
2 3 2 2 . 3
3 1 . . 1 .
<BLANKLINE>
1a 4a 2a 3a 2b
<BLANKLINE>
X.1 1 -1 -1 1 1
X.2 3 1 -1 . -1
X.3 2 . . -1 2
X.4 3 -1 1 . -1
X.5 1 1 1 1 1
Returns the generators of self, i.e. the simple reflections.
EXAMPLES:
sage: G = WeylGroup(['A',3])
sage: G.gens()
[[0 1 0 0]
[1 0 0 0]
[0 0 1 0]
[0 0 0 1],
[1 0 0 0]
[0 0 1 0]
[0 1 0 0]
[0 0 0 1],
[1 0 0 0]
[0 1 0 0]
[0 0 0 1]
[0 0 1 0]]
Returns the ambient lattice of self’s type.
EXAMPLES:
sage: G = WeylGroup(['F',4])
sage: G.lattice()
Ambient space of the Root system of type ['F', 4]
Returns a list of the elements of self.
EXAMPLES:
sage: G = WeylGroup(['A',1])
sage: G.list()
[[0 1]
[1 0], [1 0]
[0 1]]
Returns the long Weyl group element.
EXAMPLES:
sage: [WeylGroup(t).long_element().length() for t in ['A',5],['B',3],['C',3],['D',4],['G',2],['F',4],['E',6]]
[15, 9, 9, 12, 6, 24, 36]
Returns the simple reflection.
EXAMPLES:
sage: G = WeylGroup(['F',4])
sage: G.simple_reflection(1)
[1 0 0 0]
[0 0 1 0]
[0 1 0 0]
[0 0 0 1]
Returns the list of the simple reflections of self.
EXAMPLES:
sage: G = WeylGroup(['F',4])
sage: [s1,s2,s3,s4] = G.simple_reflections()
sage: w = s1*s2*s3*s4; w
[ 1/2 1/2 1/2 1/2]
[-1/2 1/2 1/2 -1/2]
[ 1/2 1/2 -1/2 -1/2]
[ 1/2 -1/2 1/2 -1/2]
sage: s4^2==G.unit()
True
sage: type(w)
<class 'sage.combinat.root_system.weyl_group.WeylGroupElement'>
Returns the unit element of the Weyl group
EXAMPLES:
sage: e = WeylGroup(['A',3]).unit(); e
[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]
sage: type(e)
<class 'sage.combinat.root_system.weyl_group.WeylGroupElement'>
Returns the Weyl group of type ct. This function is wrapped by a cache object so that the Weyl group only gets computed once for each type.
EXAMPLES:
sage: from sage.combinat.root_system.weyl_group import _WeylGroup
sage: e = CartanType(['A',2]).root_system().ambient_space()
sage: _WeylGroup(e)
Weyl Group of type ['A', 2] (as a matrix group acting on the ambient space)