Weyl Groups

sage.combinat.root_system.weyl_group.WeylGroup(x)

Returns the Weyl group of type type.

INPUT:

  • ct - a Cartan Type.

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 sage.combinat.root_system.weyl_group.WeylGroupElement(g, parent)

Class for a Weyl Group elements

__cmp__(other)

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
__init__(g, parent)

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]
_mul_(other)

EXAMPLES:

sage: w = WeylGroup(['A',2])
sage: s1 = w.simple_reflection(1)
sage: s1*s1
[1 0 0]
[0 1 0]
[0 0 1]
action(v)

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)
lattice()

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]
length()

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
matrix()

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
parent()

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 sage.combinat.root_system.weyl_group.WeylGroup_gens(gens, L)

Class for a Weyl Group with generators (simple reflections)

__call__(x)

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.
__cmp__(other)

TESTS:

sage: G1 = WeylGroup(CartanType(['A',2]))
sage: G2 = WeylGroup(CartanType(['A',2]))
sage: G1 == G2
True
__init__(gens, L)

EXAMPLES:

sage: G = WeylGroup(['F',4])
sage: G == loads(dumps(G))
True
__repr__()

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)
cartan_type()

Returns the CartanType associated to self.

EXAMPLES:

sage: G = WeylGroup(['F',4])
sage: G.cartan_type()
['F', 4]
character_table()

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
gens()

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]]
lattice()

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]
list()

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]]
long_element()

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]
simple_reflection(i)

Returns the i^{th} 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]
simple_reflections()

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'>
unit()

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'>
sage.combinat.root_system.weyl_group._WeylGroup(lattice)

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)

Previous topic

Root systems

Next topic

Weyl Characters

This Page