Lie ART
Lie ART
Lie ART
com/science/article/pii/S0010465515000119
Manuscript_013560ddcb3b68c08de1be1fa77ec5e3
a Universität Würzburg, Institut für Theoretische Physik und Astrophysik, Emil-Hilb-Weg 22, 97074 Würzburg, Germany
b Department of Physics and Astronomy, Vanderbilt University, Nashville, TN 37235
Abstract
We present the Mathematica application “LieART” (Lie Algebras and Representation Theory) for computa-
tions frequently encountered in Lie algebras and representation theory, such as tensor product decomposition
and subalgebra branching of irreducible representations. LieART can handle all classical and exceptional Lie
algebras. It computes root systems of Lie algebras, weight systems and several other properties of irreducible
representations. LieART’s user interface has been created with a strong focus on usability and thus allows
the input of irreducible representations via their dimensional name, while the output is in the textbook style
used in most particle-physics publications. The unique Dynkin labels of irreducible representations are used
internally and can also be used for input and output. LieART exploits the Weyl reflection group for most of
the calculations, resulting in fast computations and a low memory consumption. Extensive tables of proper-
ties, tensor products and branching rules of irreducible representations are included as online supplementary
material.
Keywords: Lie algebra; Lie group; representation theory; irreducible representation; tensor product;
branching rule; GUT; model building
Contents
1 Introduction 4
3 Quick Start 6
3.1 Entering Irreducible Representations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Decomposing Tensor Products . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.3 Decomposition to Subalgebras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
∗ Correspondingauthor
Email addresses: [email protected] (Robert Feger), [email protected]
(Thomas W. Kephart)
© 2018 published by Elsevier. This manuscript is made available under the Elsevier user license
https://www.elsevier.com/open-access/userlicense/1.0/
3.4 Young Tableaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5 Benchmarks 39
6 LATEX Package 40
8 Acknowledgments 40
2
Program Summary
3
1. Introduction
Lie groups are a key ingredient in modern physics, while smaller Lie groups like SU(2) and SO(3, 1), enter the
quantum mechanics of elementary chemistry and condensed matter physics, the full spectrum of Lie groups,
i.e., the classical groups SU(N ), SO(N ) and Sp(2N ) and the exceptionals E6 , E7 , E8 , F4 and G2 , have all
appeared with varying degrees of frequency in particle physics. Lie groups have many other application e.g.,
to the theoretical physics of gravity, string theory, etc. as well as applications to engineering and elsewhere.
Here we will focus on the Lie algebras of the compact forms of Lie groups that are most useful for particle
physics. Most of the results are easily extended to the non-compact forms.
Shortly after the Standard Model was completed, Grand Unified Theories (GUTs) were proposed, where the
Standard-Model gauge group SU(3)C ×SU(2)L ×U(1)Y is embedded in a higher symmetry, typically SU(5)
[3], SO(10) [4, 5] or E6 [6], although other choices have been tried. Major reviews appeared on the uses of
Lie algebras [7, 8], including tables of irreducible representations (irreps) and their invariants. There are
also a number of useful textbooks that cover the topic [9, 10, 11]. While extensive tables already exist for
building GUT models, it has sometimes been necessary to go beyond what is tabulated in the literature.
Our purpose here is to give extended tables that will satisfy most modern model-building requirements,
but also provide the software that allows one to go further as the situation may require. In describing the
software we will incorporate a review of most of the necessary group-theory background. This includes root
and weight systems, the associated Weyl groups for all the classical and exceptional Lie algebras, orthogonal
basis systems, and Weyl-group orbits, which are used in our method of calculating tensor products and irrep
decompositions.
The theory of Lie algebras is in a mature state and many algorithms have been established to facilitate com-
putations in representation theory. The correspondence of irreps to Young tableaux, especially for SU(N )’s,
with algorithms for decomposing tensor products and subalgebra decomposition, even allows complex calcu-
lations involving high-dimensional irreps by hand. Lie-algebra related computations have been implemented
multiple times on the computer in many different programming languages. Popular programs with a similar
aim as the software presented here are [12, 13, 14]. However, at the time we started the project no such
implementation existed for the computer-algebra system Mathematica. (Meanwhile a package for compu-
tations in finite-dimensional and affine Lie algebras has been published [15] that has a similar intention
as our software, as well as a package for the calculation of the 2-loop renormalization-group equations of
supersymmetric models based on gauge groups incorporating many Lie algebra related computations [16]).
Mathematica® is a computer algebra software by Wolfram Research, Inc. which is widely used especially
among particle physicists.
Originally intended as an in-house solution for a computerized grand-unified-model scan of SU(N )’s in
Mathematica [17], we present here the Mathematica application LieART (Lie Algebras and Representation
Theory), that makes tensor products and subalgebra branching of irreps of the classical and exceptional
Lie algebras available for this platform. LieART’s code exploits the Weyl reflection group, inherent in all
simple Lie algebras, in many parts of the algorithms, which makes computations fast and at the same time
economical on memory. We also focused on the usability of LieART with a particle physicist as user in
mind: Irreps can be entered by their dimensional name, a nomenclature that physicists prefer over the more
unique Dynkin label. LieART displays results in textbook style used in most particle-physics publications,
e.g., 10 for the conjugated 10-dimensional irrep of SU(5) instead of the corresponding Dynkin label (0010).
The Dynkin label is used internally, but can also be used as input and output. LieART can also display
results in terms of LATEX commands, that are defined in a supplemental LATEX style file for the inclusion of
results in publications.
The paper is organized as follows: In Section 2 we give instructions for downloading and installing LieART, as
well as locating its documentation integrated in Mathematica’s help system. Section 3 comprises a quick-start
tutorial for LieART, introducing the most important functions for the most common tasks in an example-
based fashion. Section 4 presents a self-contained overview of the Lie algebra theory used in LieART and
gives notes on its implementation. Section 5 gives benchmarks for a few tensor-product decompositions and
a subalgebra decomposition of a large irrep. In Section 6 we present a LATEX style file included in LieART
for displaying weights, roots and irreps properly. In Section 7 we conclude and give an outlook on future
versions. As online supplementary material we include an extensive collection of tables with properties of
4
irreps, tensor products and branching rules. These tables follow [7] in selection and presentation style, but
extend most of the results. We plan to maintain and further extend our tables, which can be used directly
as lookup tables without the aid of LieART.
2.1. Download
LieART is hosted by Hepforge, IPPP Durham. The LieART project home page is
http://lieart.hepforge.org/
and the LieART Mathematica application can be downloaded as tar.gz archive from
http://www.hepforge.org/downloads/lieart/
2.4. Documentation
The documentation of LieART is integrated in Mathematica’s help system. After restarting Mathematica
the following path should lead to LieART’s documentation:
Help → Documentation Center
→ Add-Ons & Packages (at the bottom)
→ LieART, Button labeled "Documentation"
(Alternatively, a search for “LieART” (with the correct case) in the Documentation Center leads to the
same page.) The displayed page serves as the documentation home of LieART and includes links to the
descriptions of its most important functions.
The documentation of LieART includes a Quick Start Tutorial for the impatient, which can be found
near the bottom of LieART’s documentation home under the section Tutorials.
Tables of representation properties, tensor products and branching rules generated by LieART can be found
in the section Tables at the bottom of LieART’s documentation home.
5
3. Quick Start
This section provides a tutorial introducing the most important and frequently used functions of LieART
for Lie-algebra and representation-theory related calculations. The functions are introduced based on simple
examples that can easily be modified and extended to the user’s desired application. Most examples use
irreducible representations (irreps) of SU(5), which most textbooks use in examples since it is less trivial
than SU(3), but small enough to return results almost instantly on any recent computer. Also, SU(5)
frequently appears in unified model building since the Standard-Model gauge group is one of its maximal
subgroups. This tutorial can also be found in the LieART documentation integrated into the Mathematica
Documentation Center as “Quick Start Tutorial” under the section “Tutorials” on the LieART documentation
home.
This loads the package:
In[1]:= « LieART‘
The algebraClass follows the Dynkin classification of simple Lie algebras and can only be A, B, C, D for the
classical algebras and E6, E7, E8, F4 and G2 for the exceptional algebras. The precise classical algebra is
determined by the length of the Dynkin label.
Entering the 10 of SU(5) by its Dynkin label and algebra class:
In[2]:= Irrep[A][0,0,1,0]//FullForm
Out[2]:= Irrep[A][0,0,1,0]
Irreps may also be entered by their dimensional name. The package transforms the irrep into its Dynkin
label. Since the algebra of an irrep of a classical Lie algebra becomes ambiguous with only the dimensional
name, it has to be specified.
6
Entering the 10 of SU(5) by its dimensional name specifying the algebra by its Dynkin classification A4 :
In[6]:= Irrep[A4][Bar[10]]//InputForm
Out[6]:= Irrep[A][0,0,1,0]
Irreps of product algebras like SU(3)⊗SU(2)⊗U(1) are specified by ProductIrrep with the individual
irreps of simple Lie algebras as arguments.
In[9]:= %//InputForm
Out[9]:= ProductIrrep[Irrep[A][1,0],Irrep[A][0,1]]
In[10]:= ProductIrrep[Irrep[A][1,0],Irrep[A][0,1]]
Out[10]:= (3,3)
Take for example the left-handed quark doublet in the Standard-Model gauge group SU(3)⊗SU(2)⊗U(1)
(The U(1) charge is not typeset in bold face):
In[11]:= ProductIrrep[Irrep[SU3][3],Irrep[SU2][2],Irrep[U1][1/3]]
Out[11]:= (3,2)(1/3)
In[12]:= %//InputForm
Out[12]:= ProductIrrep[Irrep[A][1,0],Irrep[A][1],Irrep[U][1/3]]
7
Decompose the tensor product 8⊗8 of SU(3):
In[16]:= DecomposeProduct[Irrep[SU3][8],Irrep[SU3][8]]
Out[16]:= 1 + 2(8) + 10 + 10 + 27
Internally a sum of irreps is represented by IrrepPlus and IrrepTimes, an analog of the built-in functions
Plus and Times:
In[17]:= %//InputForm
IrrepPlus[Irrep[A][0,0], IrrepTimes[2, Irrep[A][1,1]],
Out[17]:=
Irrep[A][3, 0], Irrep[A][0,3], Irrep[A][2,2]]
Results can be transformed into a list of irreps with IrrepList, suitable for further processing with
Mathematica built-in functions like Select or Cases:
In[18]:= %//IrrepList
Out[18]:= {1,8,8,10,10,27}
Decompose the tensor product 4⊗4⊗6⊗15 of SU(4):
In[19]:= DecomposeProduct[Irrep[SU4][4],Irrep[SU4][4],Irrep[SU4][6],Irrep[SU4][15]]
Out[19]:= 2(1) + 7(15) + 4(200 ) + 35 + 5(45) + 3(45) + 3(84) + 2(175) + 256
The Mathematica built-in command Times for products is replaced by DecomposeProduct for irreps as
arguments. E.g., decompose the tensor product 10⊗24⊗45 of SU(5):
In[20]:= Irrep[SU5][Bar[10]]*Irrep[SU5][24]*Irrep[SU5][45]
00 0 0
Out[20]:= 3(5)+6(45)+3(50)+5(70)+2(105)+175 +6(280)+2(280 )+420+450 +3(480)+2(720)+1120+2520
For powers of irreps the Mathematica built-in command Power may be used. E.g., decompose the tensor
product 27⊗27⊗27 of E6 :
In[21]:= Irrep[E6][27]^3
Out[21]:= 1 + 2(78) + 3(650) + 2925 + 3003 + 2(5824)
8
Decompose the 10 and the 5 of SU(5) to SU(3)⊗SU(2)⊗U(1) (DecomposeIrrep is Listable):
In[25]:= DecomposeIrrep[{Irrep[SU5][10],Irrep[SU5][Bar[5]]},ProductAlgebra[SU3,SU2,U1]]
Out[25]:= {(3, 1)(4) + (3, 2)(−1) + (1, 1)(−6), (3, 1)(−2) + (1, 2)(3)}
Branching rules for all totally antisymmetric irreps, so-called basic irreps, of SU(6) to SU(3)⊗SU(3)⊗U(1):
In[30]:= IrrepRule[#,DecomposeIrrep[#,ProductAlgebra[SU3,SU3,U1]]]&/@
BasicIrreps[SU6]//TableForm
6 → (3, 1)(1) + (1, 3)(−1)
15 → (3, 1)(2) + (1, 3)(−2) + (3, 3)(0)
20 → (1, 1)(3) + (1, 1)(−3) + (3, 3)(−1) + (3, 3)(1)
Out[30]:=
15 → (3, 1)(−2) + (1, 3)(2) + (3, 3)(0)
6 → (3, 1)(−1) + (1, 3)(1)
Out[31]:=
Display Young tableaux of SU(4) irreps with a maximum of one column per box count:
In[32]:= Row[Row[{#,": ",YoungTableau[#]}]&/@
SortBy[Irrep[A]@@@Tuples[{0,1},3],Dim],Spacer[10]]
Out[32]:= 1: • 4: 4: 6: 15 : 20 : 20 : 64 :
9
4. Theoretical Background and Implementation
In this section we give a self-contained overview of the Lie algebra theory used and implemented in LieART. It
is subdivided into parts discussing basic properties of Lie algebras, roots, weights, Weyl orbits, representations
and decompositions. Every subsection begins with a list of the relevant LieART functions followed by text
that introduces the necessary theory with reference to the functions and notes on their implementation. This
section is not intended as a pedagogical introduction to Lie algebras and we refer the reader to the excellent
literature serving this purpose [7, 9, 11].
4.1. Algebras
4.1.1. Definition
A Lie Algebra is a vector space g over a field F with the Lie bracket [·, ·] as binary operation, which is
bilinear, alternating and fulfills the Jacoby identity. The Lie bracket is often referred to as the commutator.
The Lie brackets of the generators ti of the Lie algebra are
with the so-called structure constants fijk , that fully determine the algebra. A Lie algebra is called simple
when it contains no non-trivial ideals. A semi-simple Lie algebra is a sum of simple ones.
10
6
1 2 3 n−1 n
An E6
1 2 3 4 5
7
1 2 3 n−1 n
Bn E7
1 2 3 4 5 6
8
1 2 3 n−1 n
Cn E8
1 2 3 4 5 6 7
n−1 F4
1 2 3 n−2
1 2 3 4
Dn
n G2
1 2
Figure 1: Dynkin Diagrams of classical and exceptional simple Lie algebras.
4.1.2. Roots
The generators ti of a simple Lie algebra in the Cartan-Weyl basis fall into two sets: The so-called Cartan
subalgebra, H, contains all simultaneously diagonalizable generators hi , i.e., the generators are Hermitian
and mutually commute (the Cartan subalgebra is abelian):
The number of simultaneously diagonalizable generators n is called the rank of the algebra, and can be
determined by the function Rank[expr ] in LieART. We denote all other generators as eα . They satisfy n
eigenvalue equations with the generators of the Cartan subalgebra hi :
[hi , eα ] = αi eα , i = 1, . . . , n, (3)
which is a subset of (1) and thus the αi are structure constants, which are real numbers due to the hermiticity
of the hi ’s. Since the αi are the solutions to the eigenvalue equation (3) the vectors α=(α1 , . . . , αn ) are called
the root vectors, which lie in an n-dimensional euclidian space, called the root space. Roots are functionals
mapping the Cartan subalgebra H onto the real numbers (the eigenvalues), for all generators ti , which also
includes the hi where the eigenvalues are zero. Thus, a Lie algebra has as many roots as generators. The
roots are labeled by the root vectors, which we will use in its place from now on.
A zero root with an n-fold degeneracy is associated with the Cartan subalgebra. In the Cartan-Weyl basis
the other generators come in conjugated pairs e†α =e−α and correspond to the ladder operators of SU(2).
So-called positive roots correspond to the raising operator eα and negative roots to the lowering operators
e−α . If α is a root so is −α.
Some of the positive roots can be written as sum of others. Those for which this is not possible are called
simple roots and a Lie algebra has as many simple roots as its rank. It is clear that specifying the simple
roots fully determines a Lie algebra and thus can be used to replace (1), because all structure constants can
be derived therefrom.
11
Type Cartan Name Rank Description
classical An SU(n+1) n≥1 Special unitary algebras of n+1 complex dimension
Bn SO(2n+1) n≥3 Special orthogonal algebras of odd (2n+1) real dimension
Cn Sp(2n) n≥2 Symplectic algebras of even (2n) complex dimension
Dn SO(2n) n≥4 Special orthogonal algebras of even (2n) real dimension
exceptional E6 E6 6 Exceptional algebra of rank 6
E7 E7 7 Exceptional algebra of rank 7
E8 E8 8 Exceptional algebra of rank 8
F4 F4 4 Exceptional algebra of rank 4
G2 G2 2 Exceptional algebra of rank 2
When these low-dimension Lie algebras occur in a calculation, choose the SU(2) form in (4a) and (4b), the
Sp(4) form in (4c) and the SU(4) form in (4d) when using LieART.
4.1.4. Bases
With respect to the Weyl reflection group, inherent in all compact Lie algebras, as we will explain later, it
is convenient to express the root space in an orthogonal coordinate system, which is a subspace of Euclidian
space. The specific subspace varies with the Lie algebra. For An it is a subspace of Rn+1 , where the
coordinates sum to one. As the simple roots define the Lie algebra, they are explicitly specified in LieART
12
using orthogonal coordinates and can be retrieved by OrthogonalSimpleRoots[algebra]. E.g., the four
simple roots of A4 (SU(5)) in orthogonal coordinates are:
In[33]:= OrthogonalSimpleRoots[A4]//Column
(1, −1, 0, 0, 0)
(0, 1, −1, 0, 0)
Out[33]:=
(0, 0, 1, −1, 0)
(0, 0, 0, 1, −1)
The so-called Cartan matrix exhibits the non-orthogonality of the simple roots. It is defined as
2 (αi , αj )
Aij = i, j = 1, . . . , n (5)
(αj , αj )
where the scalar product (·, ·) is the ordinary scalar product of Rn+1 in the case of An . Most textbooks
translate the Dynkin diagrams to the corresponding Cartan matrix as a starting point. And in fact, the rows
of the Cartan matrix are the simple roots in the so-called ω-basis, which is the bases of fundamental weights,
also called the Dynkin basis. (Weights will be introduced later in the context of representations.) The Cartan
matrix is implemented in LieART as the function CartanMatrix[algebra] following the definition of (5).
The Cartan matrix for A4 reads:
In[34]:= CartanMatrix[A4]
2 −1 0 0
−1 2 −1 0
Out[34]:=
0 −1 2 −1
0 0 −1 2
Besides the orthogonal basis, and the ω-basis, the α-basis is also useful. As the name indicates it is the basis
of simple roots and it explicitly shows how, e.g., a root is composed out of simple roots. Neither the ω-basis
nor the α-basis is orthogonal. The Cartan matrix mediates between the ω- and α-bases:
n
X n
X
αi = Aij ωj , ωi = (A−1 )ij αj . (6)
j=1 j=1
where the ωi are the fundamental weights, which we will define later. These bases are dual to each other in
the sense that
2 (αi , ωj )
≡ (αi∨ , ωj ) = δij , i, j = 1, . . . , n (7)
(αi , αi )
where αi∨ is the so-called coroot of αi defined as
2α
α∨ = . (8)
(α, α)
The transformation to the orthogonal basis can be derived from (7): Expressing αi and ωj in orthogonal
coordinates as α̂i and ω̂j (7) reads
2α̂i · ω̂j
≡ α̂i∨ · ω̂j = δij , i, j = 1, . . . , n (9)
α̂i · α̂i
using the ordinary scalar product of Rm , where m is the dimension of the orthogonal subspace. Using the
matrices  and Ω̂ with the simple coroots α̂i∨ and the fundamental weights ω̂j as rows, we can write (9) as
the matrix equation:
ÂΩ̂T = In (10)
where both  and Ω̂ are n×m matrices, where Ω̂ is defined below in 12. Please note that the dimension of
the orthogonal space m is not necessarily the same as the rank of the algebra n. These exceptions are: An
with m=n + 1, E6 with m=8, E7 with m=8 and G2 with m=3. For all others m=n holds. The matrix of the
simple coroots in the orthogonal basis  is easily calculated from the simple roots given in LieART, but the
13
matrix of fundamental weights in the orthogonal basis Ω̂ must be determined by (10). In the cases where Â
is not a square matrix its inverse does not exist. Because the rows of Â, which are the simple coroots in the
orthogonal basis, are linear independent, ÂÂT is invertible and the so-called right-inverse Â+ can be found
via
Â+ = ÂT (ÂÂT )−1 (11)
which satisfies: ÂÂ+ =In , i.e., by comparing with (10) the matrix Ω̂T can be identified with Â+, in other
words the fundamental weights as rows of Ω̂ in terms of simple coroots as rows of  are
Ω̂ = (Â+)T = (ÂÂT )−1 Â (12)
The Mathematica built-in function PseudoInverse[matrix ] yields the right-inverse for our case of a
matrix with linear independent rows, i.e., the implementation of the second equality in (12) is not needed.
The matrix of the fundamental weights Ω̂ is implemented as OmegaMatrix[algebra], e.g., for A4 :
In[35]:= OmegaMatrix[A4]
4
5
− 15 − 15 − 15 − 15
3 3
− 25 − 25 − 25
5 5
Out[35]:= 2
2 2
5 5 5
− 35 − 35
1 1 1 1
5 5 5 5
− 45
and the function OrthogonalFundamentalWeights[algebra] adds the proper heads to the rows of Ω̂,
to identify them as weights is the orthogonal basis. We will discuss (fundamental) weights in Section 4.1.6
in more detail.
The matrix of the fundamental weights in the orthogonal basis Ω̂ mediates between the ω-basis and the
orthogonal basis:
Xn Xn
ωi = Ω̂ij ej , ei = (Ω̂−1 )ij ωj . (13)
j=1 j=1
(Roots and weights in the ω-basis are displayed with framed boxes following the notation of most textbooks.)
A root in LieART is represented by three different heads: RootOrthogonal[algebraClass][label ] for
a root in the orthogonal basis, RootOmega[algebraClass][label ] in the ω-basis and in the α-basis by
RootAlpha[algebraClass][label ]. The algebraClass can only be A, B, C or D to indicate a classical Lie
algebra or E6, E7, E8, F4 or G2 for the exceptionals. The label stands for the comma-separated coordinates.
This form of the roots is displayed in InputForm and FullForm. E.g., the first simple root of A4 in all
three bases reads:
In[38]:= {#,OmegaBasis[#],AlphaBasis[#]}&@First[OrthogonalSimpleRoots[A4]]//InputForm
Out[38]:= {RootOrthogonal[A][1,-1,0,0,0], RootOmega[A][2,-1,0,0], RootAlpha[A][1,0,0,0]}
14
4.1.5. Scalar Product
The standard choice for the length factors (αj , αj ) in (5) is 2 for the longer roots, if there are two root
lengths. The factors 2/ (αj , αj ) can only take three different values which are: 1 for all roots of An , Dn ,
E6 , E7 , E8 and for the long roots of Bn , Cn , F4 and G2 ; 2 for the short roots of Bn , Cn and F4 and 3 for
the short root of G2 . Their implementation in LieART is in the form of diagonal matrices with the inverse
factors for the simple roots corresponding to the row on the main diagonal, i.e.,
1 1
D = diag (α1 , α1 ) , . . . , (αn , αn ) (14)
2 2
as defined in [18]. E.g., for F4 , to avoid a trivial example, we have:
In[39]:= DMatrix[F4]
1 0 0 0
0 1 0 0
Out[39]:=
0 0 1 0
2
0 0 0 12
where the xi and yj are coordinates of x and y in the ω-basis. The matrix
(αj , αj )
Gij = (A−1 )ij = (A−1 )ij Dj (16)
2
is called quadratic-form matrix or metric tensor of the Lie algebra. The scalar product is available in
LieART as ScalarProduct[weightOrRoot1 ,weightOrRoot2 ], where weightOrRoot1 and weightOrRoot2
may be roots or weights in the orthogonal basis, the α-basis or the ω-basis. The function recognizes the
basis by the heads of weightOrRoot1 and weightOrRoot2 . The LieART function for the metric tensor G is
MetricTensor[algebra], e.g., for A4 :
In[40]:= MetricTensor[A4]
4 3 2 1
5 5 5 5
3 6 4 2
5 5 5 5
Out[40]:= 2
5 4 6 3
5 5 5
1 2 3 4
5 5 5 5
4.1.6. Representation
A representation is a linear map of the Lie algebra into the general linear group, i.e., the matrix group,
that preserves the Lie bracket relations. It is a homomorphism that maps the generators ti onto invertible
matrices Ti , that satisfy the same “commutation” relations as the Lie algebra, namely
[Ti , Tj ] = fijk Tk , (17)
where the [·, ·] is now the commutator.
Points in the vector space that the matrices act on can be labeled by the set of eigenvalues of the matrices
representing the generators of the Cartan subalgebra. Such a set of eigenvalues is called a weight vector, and
the associated functional weight, denoted by λ. They are defined in root space which is called weight space in
this context. The weights and weight vectors of a representation correspond to roots and root vectors of the
algebra. In fact, weights can be expressed as rational linear combinations of roots, and, as pointed out in this
section, eventually by simple roots. In particular, the structure functions themselves form a representation
of the algebra: the adjoint representation, which has the same dimension as the algebra, namely the number
of roots.
15
4.2. Weyl Group Orbits
The finite group W (L), called the Weyl group of the Lie algebra L, is a reflection group inherent in the
root systems of all simple Lie algebras. The Coxeter groups are an abstraction of reflection groups and
the so-called Coxeter-Dynkin diagram describing Coxeter groups are closely related to the Dynkin diagrams
presented here. In fact the Coxeter-Dynkin diagram corresponding to the Dynkin diagram describes the
Weyl group of the Lie algebra.
The transformations ri generating the Weyl group are reflections of a vector x in root space at the hyperplanes
orthogonal to the simple roots αi of the Lie algebra defined by
2 (x, αi )
ri x = x − αi , i = 1, . . . , n, x ∈ Rn . (18)
(αi , αi )
16
argument is omitted, all simple roots of the algebra associated with weightOrRoot are used. The function
applies Reflect in a nested fashion and removes duplicate points in every step. The orbit of an An root
or weight is constructed in a special way for performance reasons: The weightOrRoot is transformed to the
orthogonal basis and the other points of its orbit are constructed by permuting its coordinates using the
built-in Mathematica function Permutations. For example, the orbit of the first simple root of A4 is
In[42]:= Orbit[First[OrthogonalSimpleRoots[A4]]]
{(−1, 0, 0, 0, 1),(−1, 0, 0, 1, 0),(−1, 0, 1, 0, 0),(−1, 1, 0, 0, 0),(0, −1, 0, 0, 1),
(0, −1, 0, 1, 0),(0, −1, 1, 0, 0),(0, 0, −1, 0, 1),(0, 0, −1, 1, 0),(0, 0, 0, −1, 1),
Out[42]:=
(0, 0, 0, 1, −1),(0, 0, 1, −1, 0),(0, 0, 1, 0, −1),(0, 1, −1, 0, 0),(0, 1, 0, −1, 0),
(0, 1, 0, 0, −1),(1, −1, 0, 0, 0),(1, 0, −1, 0, 0),(1, 0, 0, −1, 0),(1, 0, 0, 0, −1)}
which is in fact the A4 root system without the zero roots.
With the same set of Weyl group generators, defined by the roots used, every vector is uniquely associated
with only one orbit. In turn every element of an orbit allows us to generate the entire orbit by reflecting at
the hyperplanes defined by the roots. The hyperplanes divide the space into so-called Weyl chambers. An
orbit has no more than one distinct element in every chamber and the Weyl group permutes the chambers.
The so-called dominant chamber has elements with only positive coordinates in the ω-basis, which serves as
a definite element for the orbits associated with them. The test function DominantQ[weightOrRoot] gives
True if weightOrRoot is in the dominant chamber and False otherwise. The dominant root of Out[42]
in the ω-basis is
In[43]:= OmegaBasis[Select[%, DominantQ]]
n o
Out[43]:= 1 0 0 1
If an orbit is created by LieART it is saved as a DownValue of Orbit associated with its dominant root or
weight. Whenever an orbit of a non-dominant weight or root is needed, LieART first seeks the DownValues
of Orbit for the weight or root, to see if the orbit has already been generated. Reusing computed orbits
saves CPU time especially for Lie algebras other than An and the described procedure avoids saving the
same orbit multiple times as DownValue involving different roots or weights.
The size of the orbit, i.e., its numbers of elements, denoted by |O(x)|, is implemented as the function
DimOrbit[weightOrRoot,simpleroots] or DimOrbit[weightOrRoot] if all simple roots of the associated
Lie algebras should be used. The size of the orbit in Out[42] is
In[44]:= DimOrbit[First[OrthogonalSimpleRoots[A4]]]
Out[44]:= 20
4.3. Roots
The roots of a Lie algebra can be built from the simple roots. There are two traditional approaches:
(a) building the roots from linear combinations of simple roots. Since not all linear combinations of simple
roots are roots, the difficulty lies in filtering out combinations that are roots. (b) Starting from a highest
root the roots can be constructed by subtracting simple roots. LieART uses yet another approach: It builds
the orbits of the simple roots by applying the Weyl group of the Lie algebra and adds the n-fold degenerated
zero roots corresponding to the Cartan subalgebra. The simple roots of the same length belong to the same
17
orbit, e.g., for An there is only one orbit besides the zero orbit (see Out[42]). Nevertheless, the orbits of
all simple roots are generated and then united. The fact that non-zero roots are non-degenerate allows us
to remove duplicate roots obtained by the described procedure.
The function RootSystem[algebra] constructs the root system by the procedure described above. As a
non-trivial example we demonstrate the procedure on G2 , which has two non-trivial orbits and the zero
orbit: The two simple roots of G2
In[45]:= OmegaBasis[OrthogonalSimpleRoots[G2]]
n o
Out[45]:= 2 −1 , −3 2
yields the full G2 root system, displayed in spindle shape, as defined below in section 4.4.1
In[49]:= RootSystem[G2, SpindleShape -> True]
0 1
3 −1
1 0
−1 1
−3 2 2 −1
Out[49]:= 0 0 0 0
−2 1 3 −2
1 −1
−1 0
−3 1
0 −1
where a row stands for the same height of the roots. The height of a root is defined as the sum of coefficients
in its linear combination of simple roots, i.e., the sum of coordinates in the α-basis. It is implemented by
Height[root]. The highest root has the largest height, implemented in LieART as HighestRoot[algebra],
which simply returns the first root of the root system, since the latter is sorted by the height of the roots
decreasingly. E.g. for G2 :
In[50]:= HighestRoot[G2]
Out[50]:= 0 1
The positive roots are the roots that are only positive linear combinations of simple roots, i.e., the coordinates
in the α-basis are all positive, with at least one being non-zero, to exclude the zero roots. The function
PositiveRootQ[root] tests if root is positive. The root may be in any basis and will be transformed
into the α-basis, where its coordinates are tested accordingly. The number of positive roots are explicitly
18
stated as NumberOfPositiveRoots[algebra] in LieART. It serves as a limiter to the nested reflections
for the generation of Weyl group orbits. There is a theorem stating that the maximum number of reflections
building an element of the Weyl group is equal to the number of positive roots of the corresponding Lie
algebra.
Since the root system is sorted by height, the positive roots come first. PositiveRoots[algebra] extracts
only those with the use of NumberOfPositiveRoots[algebra]. E.g., for G2 :
In[51]:= PositiveRoots[G2]
n o
Out[51]:= 0 1 , 3 −1 , 1 0 , −1 1 , −3 2 , 2 −1
4.4. Representations
As explained in Section 4.1.6 a representation is a set of matrices that satisfies the same commutation
relations as the algebra. Each of the matrices can be labeled by the weight vector with the eigenvalues of the
matrices corresponding to the generators of the Cartan subalgebra, and we will refer to the weight vector
simply as weight. The weight vector has the dimension of the Cartan subalgebra, i.e., the rank of the algebra,
and not the dimension of the space the matrices act on. The latter depends on the particular representation.
The weights λ can be written as linear combination of simple roots and a crucial theorem states that the
so-called Dynkin labels ai defined as
2 (λ, αi )
ai = , i = 1, . . . , n (19)
(αi , αi )
are integers for all simple roots αi . (Please note that this is also true if λ is replaced by any simple root,
since this constitutes an element of the Cartan matrix as defined in (5).) The Dynkin labels are in particular
used to label weights (and roots). The smallest non-zero weights with ai ≥ 0 are called the fundamental
19
weights ωi . They define the ω-basis or Dynkin basis already introduced. They are implemented in LieART
as OrthogonalFundamentalWeights[algebra] in the orthogonal basis and we have given an example
for A4 in Out[37]. The Dynkin labels ai of a weight λ are the coefficients of its linear combination of
fundamental weights, i.e., the ai are the coordinates in the ω-basis, which can be displayed as a row vector
with comma separated entries or as a framed box following the convention of some textbooks:
n
X
λ= ai ωi = (a1 , a2 , . . . , an ) = a1 a2 . . . an . (20)
i=1
A weight in LieART is represented by three different heads, depending on its basis, in analogy with the
roots: WeightOrthogonal[algebraClass][label ] for a weight in the orthogonal basis, in the α-basis
WeightAlpha[algebraClass][label ] and simply Weight[algebraClass][label ] in the ω-basis, where we
omit the explicit “Omega” for brevity, because the ω-basis is the natural basis for weights. (The same can
be said for the α-basis for roots, favoring the shorter head Root instead of RootAlpha in the α-basis.
Unfortunately this would clash with the built-in Mathematica function Root[f ,k ] representing the k th
root of a polynomial equation defined by f [x] = 0.) The algebraClass can only be A, B, C or D to indicate a
classical Lie algebra or E6, E7, E8, F4 or G2 for the exceptionals. The label stands for the comma-separated
coordinates. This form of the weight is displayed in InputForm and FullForm. E.g., the first fundamental
weight of A4 in all three bases reads:
In[52]:= {#,AlphaBasis[#],OmegaBasis[#]}&
@First[OrthogonalFundamentalWeights[A4]]//InputForm
{WeightOrthogonal[A][4/5,-1/5,-1/5,-1/5,-1/5], WeightAlpha[A][4/5,3/5,2/5,1/5],
Out[52]:=
Weight[A][1,0,0,0]}
Since weights are linear combinations of roots, many properties of roots translate to weights. The Weyl
group also applies to weights and the weight space is also divided into Weyl chambers. A weight with only
positive coordinates lies in the dominant Weyl chamber and is called a dominant weight. In analogy with
the highest root, every irreducible representation (irrep) has a non-degenerate highest weight, denoted as
Λ, which is also a dominant weight, but not necessarily the only dominant weight of the irrep. The weight
system of the irrep can be computed from the highest weight Λ by subtracting simple roots. Thus, a highest
weight Λ uniquely defines the irrep, and since a particular Lie algebra has infinitely many irreps, it serves
as a label for the irrep itself using the same denotation, Λ.
In LieART an irrep is represented by Irrep[algebraClass][label ], where algebraClass defines the Lie
algebra class in the same manner as for weights and roots, and label is the comma-separated label of the
highest weight of the irrep. E.g., the 10 dimensional irrep of A4 has the highest weight (0, 1, 0, 0) and thus
the irrep can be entered as Irrep[A][0,1,0,0].
The so-called Dynkin label of an irrep is similar to the notation of a weight, but since the highest weight has
only positive label entries the commas between them can be ommitted, as long as this is unambiguous. The
Dynkin label in LieART is displayed in StandardForm, e.g., the 10 of A4 :
In[53]:= Irrep[A][0,1,0,0]//StandardForm
Out[53]:= (0100)
If at least one of the entries in the Dynkin labels has more than a single digit, all entries are separated by
commas to avoid ambiguities, which is the standard textbook convention:
In[54]:= Irrep[A][0, 10, 3, 1] // StandardForm
Out[54]:= (0, 10, 3, 1)
20
may be obtained by different subtraction routes, but it always involves the same number of simple roots,
thus its level is unique. As explained earlier, the α-basis exhibits the coefficients of the linear combination of
simple roots, which are rational numbers in general. The difference between these coefficients of the weight
and the highest weight show how many times each simple roots has been subtracted from the latter. The
sum over these differences, for each simple root, gives the level of the weight:
n
X
(21)
L(λ, Λ) = Λ̄i − λ̄i
i=1
where λ = (λ̄1 , . . . , λ̄n ) and Λ = (Λ̄1 , . . . , Λ̄n ) is the weight and highest weight in the α-basis, respectively.
The LieART function WeightLevel[weight,irrep] implements this procedure. The highest level of an
irrep is called its height. Please note that the highest weight has the lowest level, which is zero. The weight
with the highest level has the coefficients of the highest weight in the alpha basis, with negative sign and
rearranged (if the irrep is complex), i.e., the sum over them is the negative of the sum of the highest weight.
Thus, the height of an irrep with highest weight Λ is
n
X
ht(Λ) = 2 Λ̄i , (22)
i=1
where ∆ denotes the positive root system, δ=(1, 1, . . . , 1) is half the sum of all positive roots in the ω-basis
+
and mλ+kα is the already computed multiplicity of a weight λ + kα that is higher than λ. The sum over k
is finite because the weight λ + kα must be a member of the weight system of the irrep under consideration.
The recursive nature of the Freudenthal formula makes the computation of weight multiplicities the most
CPU time consuming procedure in the determination of the weight system of an irrep. The algorithm
developed in [19] exploits the Weyl group in both the weight and the root system. The weight system of
an irrep is a collection of Weyl group orbits, represented by their unique dominant weight. The multiplicity
of the dominant weight is the same for all weights of the associated orbit. Thus, a weight system can be
constructed by (a) determining the dominant weights of the irrep, (b) computing their multiplicity and (c)
generating the orbits of the dominants weights with the same multiplicity by application of the Weyl group
of the associated algebra.
In LieART the function SingleDominantWeightSystem[irrep] determines the dominant weights of irrep
by successively subtracting positive roots starting from the highest weight and keeping only the dominant
weight of the result in every step. This process terminates, because there are smallest dominant weights,
i.e., the fundamental weights, constituting a lower boundary. E.g., the 40 of A4 has two distinct dominant
weights:
In[55]:= SingleDominantWeightSystem[Irrep[A][0, 0, 1, 1]]
Out[55]:= { 0 0 1 1 , 0 1 0 0 }
Thus, an improved version of the Freudenthal formula considers only dominant weights λ. The second
exploitable property is the existence of a stabilizer of the weight, a subgroup of its Weyl group W that fixes
the weight:
StabW (λ) = WT := {w ∈ W | wλ = λ} . (24)
The stabilizer WT reduces the number of independent scalar products and previous computed multiplicities,
because for w ∈ WT , (λ+kα, α) = (w(λ+kαi ), wαi ) = ((λ+kwαi ), wαi ) and mλ+kαi =mw(λ+kαi ) =mλ+kwαi .
21
Since the elements of the Weyl group W are reflections at simple roots, the stabilizer group is defined by
the reflection at simple roots that Pmap λ onto itself. Because of (18) this is the case, when (λ, αi ) = 0. If λ
is expressed in the ω-basis as λ= ni ωi the scalar product with the ith simple root is zero, when ni = 0.
Let T be a set of these indices, i.e., T = {i | ni =0}, and let ∆T be the root system based on the simple roots
labeled by T .
The group ŴT , which is the inclusion of WT and the negative identity element w=−1 as ŴT = hWT , −1i,
decomposes the root system into orbits o1 , . . . , or , defined by ŴT αi . Each orbit has a unique representative
ξi in the positive roots (ξi ∈∆+ ). The ξi ’s are those P positive roots, that have non-zero coefficients in the
ω-basis at the positions where λ has zeros, i.e., ξi = mi ωi with mi ≥0 for i∈T .
The computation of the multiplicity mλ of the dominant weight λ is then accomplished by the modified
Freudenthal formula:
n
X ∞
X
|oi | (λ+kξi , ξi ) mλ+kξi = [(Λ+δ, Λ+δ) − (λ+δ, λ+δ)] mλ (25)
i=1 k=1
where |oi | are the sizes of the orbits. It is important to note that these sizes are |oi | = |WT ξi | if ξi ∈∆T and
|oi | =2 |WT ξT | if ξi ∈∆
/ T , because in the former case the negative roots are included in WT ξi , i.e., the −1,
while only positive roots are in the orbit WT ξi if ξi ∈∆/ T , requiring a factor of 2 for the same reason as on
the left-hand side of (23). It is ξi ∈∆T if (λ, ξi ) =0.
The higher weight λ + kξi is not necessarily a dominant weight, but can always be reflected to the dominant
chamber to obtain the corresponding multiplicity that is already computed.
The computation of weight multiplicities is implemented in LieART as WeightMultiplicity[weight,irrep]
following the above algorithm, using several helper functions: T[weight] gives the set T , the positions of
zeros of the coefficients of weight in the ω-basis, Xis[algebra,t] determines the ξ’s based on the set T
which should be supplied via the argument t, Alphas[algebra,t] gives αi with i ∈ T to construct the orbit
WT ξi . XisAndMul[algebra,t] yields a list of the ξi ’s together with their associated orbit size |oi |. Since
the possible subsets T of zeros in the weight coefficients for a specific algebra are limited, we follow the
suggestion of [19] and save this in list form as XisAndMul for reuse upon first evaluation in the course of a
calculation. Saved values of XisAndMul can be retrieved by Definition[XisAndMul].
Take for example the dominant weight 0 1 0 0 of the 40 of A4 from Out[55]. The set of indices T is
In[56]:= T[Weight[A][0,1,0,0]]
1
Out[56]:= 3
4
or in InputForm: {{1},{3},{4}}. (The structure as “list of lists” is due to the use of the Mathematica
built-in functions Position and Extract.) The ξi ’s and the sizes of their associated orbits |oi | are
In[57]:= XisAndMul[A4, T[Weight[A][0,1,0,0]]]
1 0 0 1 12
Out[57]:= 0 −1 1 1 6
2 −1 0 0 2
and the weight multiplicity of the dominant weight in the 40 of A4 is:
In[58]:= WeightMultiplicity[Weight[A][0,1,0,0], Irrep[A][0,0,1,1]]
Out[58]:= 2
The LieART function DominantWeightSystem[irrep] gives a list of the dominant weights of irrep along
with their multiplicities:
In[59]:= DominantWeightSystem[Irrep[A][0,0,1,1]]
!
0 0 1 1 1
Out[59]:=
0 1 0 0 2
22
Thus, the weight system of the 40 consists of the Weyl group orbit of 0 0 1 1 and 0 1 0 0 , where
every weight of the latter has a multiplicity of two. The function WeightSystem[irrep] generates these
orbits based on DominantWeightSystem and explicitly duplicates weights according to the multiplicity. If
no further processing is intended the option SpindleShape->True turns the output into a spindle shape
display, with weights of the same level in one row. E.g., the weight system of the 40 of A4 in spindle shape
is
In[60]:= WeightSystem[Irrep[A][0,0,1,1]]
0 0 1 1
0 0 2 −1 0 1 −1 2
0 1 0 0 0 1 0 0 1 −1 0 2
−1 0 0 2 0 1 1 −2 0 2 −2 1 1 −1 1 0 1 −1 1 0
−1 0 1 0 −1 0 1 0 0 2 −1 −1 1 −1 2 −2 1 0 −1 1 1 0 −1 1
Out[60]:= −1 0 2 −2 −1 1 −1 1 −1 1 −1 1 1 0 0 −1 1 0 0 −1 2 −2 0 1
−1 1 0 −1 −1 1 0 −1 0 −1 0 1 0 −1 0 1 1 1 −2 0 2 −2 1 −1
−2 0 0 1 −1 2 −2 0 0 −1 1 −1 0 −1 1 −1 2 −1 −1 0
−2 0 1 −1 0 0 −1 0 0 0 −1 0
−2 1 −1 0 1 −2 0 0
−1 −1 0 0
Index. Another important property of an irrep Λ is its index, denoted as l(Λ), which is an eigenvalue of the
Casimir invariant normalized to be an integer:
dim(Λ)
l(Λ) = (Λ, Λ + 2δ) , (27)
ord(L)
23
where ord(L) is the order of the Lie algebra L, which is equivalent to the number of roots or the dimension
of the adjoint irrep. The index is related to the length of the weights and has applications in renormalization
group equations and elsewhere. The corresponding LieART function is Index[irrep]. E.g., the index of
the 40 of A4 is:
In[64]:= Index[Irrep[A][0,0,1,1]]
Out[64]:= 22
The label of irrep does not need to be numerical, similar to Dim.
Congruency Class. The congruency class expands the concept of n-ality of SU(N ), which in turn is a gener-
alization of SU(3) triality, to all other simple Lie algebras. LieART uses congruency classes to characterize
irreps, especially for the distinction of irreps of the same dimension and with the same index. We follow the
definitions of [8, 20], labeling the congruency class by the congruency number, which is a single number for
An , Bn , Cn , E6 , E7 , E8 , F4 and G2 and a two component vector for Dn . For an irreducible representation
(a1 a2 . . . an ) the congruency number (vector) c is:
n
X
An : c= kak (mod n + 1) (28a)
k=1
Bn : c = an (mod 2) (28b)
b n−1
2 c
X
Cn : c= a2k+1 (mod 2) (28c)
k=0
an−1 + an (mod 2)
Dn : c=
b n−3
2 c
(28d)
P
a2k+1 + (n − 2)an−1 + nan (mod 4)
2
k=0
E6 : c = a1 − a2 + a4 − a5 (mod 3) (28e)
E7 : c = a4 + a6 + a7 (mod 2) (28f)
E 8 , F4 , G2 : c=0 (28g)
Please note that the congruency class definitions of [8, 20], which we use, differ from [7] for the Dn ’s : For
D4 , i.e. SO(8), the second component of [7] is half of the definition above. The congruency class for D5 is
only a single number in [7], which is the same as the second component of the D5 congruency class vector of
our definition from [8, 20] (with no factor of 2).
These congruency numbers (vectors) c are implemented as CongruencyClass[irrep] in LieART. E.g., the
congruency numbers of the three eight dimensional irreps of SO(8) are all distiguished by their congruency
number vector:
In[65]:= CongruencyClass[{Irrep[D][1,0,0,0], Irrep[D][0,0,1,0], Irrep[D][0,0,0,1]}]
Out[65]:= {(02),(12),(10)}
The head of a congruency vector is CongruencyVector and it is displayed as (c1 c2 ), i.e. without commas
separating the two components similar to the Dynkin label of irreps.
24
with the same dimension have primes (dim0 ) in their dimensional name, e.g., the 1750 of A4 is unrelated to
the 175. Irreps can be related by conjugation, when they are complex. One of the irreps is written with an
overbar (dim). E.g., the 10 of A4 is the conjugate of the 10. Due to the high symmetry of SO(8) irrep,
more than two related irreps of the same dimension exist. In the case of SO(8) subscripts specify the irreps
completely.
The introduced properties of representations, the dimension, the index and the congruency class serve us
well to discriminate between irreps with the same dimension. LieART has an algorithm implemented that
determines the dimensional name of an irrep, following the naming conventions of [7]:
1. To determine the dimensional name of a specific irrep, LieART collects other irreps of the same di-
mensionality by brute-force scanning through a generated set of irreps.
2. Irreps that are related by conjugation or the symmetry of SO(8) not only have the same dimension, but
also the same index. Unrelated irreps of equal dimension have different indices and can be organized
and labeled by their indices. They are sorted by ascending index and labeled with primes (dim0 )
accordingly, starting with no prime. E.g., the names of the two unrelated 70 dimensional irreps of A4
are (the congruency class of A4 is called “Quintality”):
3. Related irreps of the same dimensionality have the same index, but mostly (see below) different con-
gruency class numbers. For Lie algebras other than SO(8), only the conjugate of complex irreps are
related. The convention here is that the irrep with higher congruency class number of the conjugated
pair is labeled with an overbar (dim). Since e.g. the 700 is a complex irrep it has a related conjugated
0
irrep, the 70 , i.e., overbars and primes may both appear in the labeling of an irrep. The above table
for the determination of the primes involves only the lower congruency class number irreps of same
0
dimensional and same index irreps. Consider the 700 and its conjugate, the 70 :
If the congruency class number of a complex irrep is zero, it conjugate also has a congruency class
number of zero. In this case, where all three, the dimension, the index and the congruency class number
are the same, the structure of the Dynkin labels are consulted: With the Dynkin label interpreted as
digits of an integer number, the smaller “number” is labeled with the overbar. E.g., the 126 dimensional
irreps of A4 are
25
Dynkin Dimension Index Congruency vector Name
(1000) 8 1 (01) 8v
(0001) 8 1 (10) 8s
(0010) 8 1 (11) 8c
Some irreps with more than one non-zero digit of the Dynkin label with the same congruency vectors
as above are labeled the same way if they are unique. However, if there is more than one irrep with
the same dimension, index and also congruency vector, there is more than one digit of the Dynkin
label non-zero. The subscript label is then a mixture like “sv”, and the ordering is determined by the
Dynkin digit beginning with the largest. E.g. the 224 dimensional irreps of SO(8):
There are also cases where the congruency vector is zero in both components for all irreps of the same
dimension and index. In this case subtracting the same integer from every Dynkin digit to obtain irreps
with non-zero congruency class vector has proven to be a reliable way to label the irreps. E.g., the
35 dimensional irreps can be related to the 8 dimensional ones and, e.g., the primed 840 dimensional
irreps to the 56 dimensional ones:
In LieART the function DimName[irrep] determines the dimensional name according to the algorithm de-
scribed above, which is automatically displayed if an irrep is displayed in TraditionalForm. Several inter-
nal helper functions are called by DimName. The function GetIrrepByDim[algebra,dim,maxDynkinDigit]
provides irreps with the same dimension, which are then gathered into sublists by DimName. The function
SortSameDimAndIndex sorts the irreps of same dimension and index by their congruency class, and au-
tomatically by the Dynkin label viewed as “numbers”, if the congruency class numbers are the same. The
positions of the lists of same-index irreps determines the number of primes to apply and the position of
the irrep within the same-index list, whether it should be labeled by an overbar. In case of an SO(8) irrep
DimName branches to the function SO8Label[irrep], which uses SimpleSO8Label to give a subscript of
“v”, “s” and “c” in the case where the congruency vector in unique. If the congruency vector is not unique,
but non-zero, ConcatSO8Label concatenates the mixed subscripts like “sv” in the correct ordering. If the
congruency vector is zero in both components the irrep is related to irreps with non-zero congruency vector
by ReducedDynkinLabel.
26
Limitations. The determination of the primes has one limitation, which requires explanation: The function
GetIrrepByDim[algebra,dim,maxDynkinDigit] determines irreps of the same dimension. In a brute-force
fashion it generates “all” irreps and extracts only those that have the dimension dim. Since there are infinite
many irreps of any Lie algebra, it must be constrained. This is done by imposing a maximum Dynkin digit
to use for the generation of Dynkin labels. Since the numbers of possible Dynkin labels grow rapidly with
the maximum Dynkin digit allowed, the limit should be very low. To compare the irrep in question with
others it should be at least its maximum Dynkin digit, e.g., for (2031) it is “3”. The related irreps only have
a permutation of the Dynkin label, thus they are included in the generated list of irreps up to a Dynkin
digit of “3” in the example. However, for the determination of the primes for the unrelated irreps it may
not suffice to generate irreps only up to the maximum Dynkin digit of the irrep in question: The number of
primes are determined by the position in a list of same-dimensional irreps sorted by the index. If there is an
irrep with a higher maximal Dynkin digit, e.g., “4” in our example, but at the same time has a lower index
than the irrep it question, this procedure would give the irrep in question too few primes. This situation
rarely happens, especially in An ’s, but e.g. for G2 it happens as early as the 77 dimensional irrep:
When determining the name of (02) of G2 the Dynkin labels would only be generated up to a maximum
Dynkin digit of “2”, the (30) would not appear and thus the (02) would be labeled without any prime. The
determination of the name of (30) would “see” the (02), but would determine no prime for (30) because
of its lower index compared to (02). For these two irreps the problem can be solved by generating irreps
up to the maximum Dynkin digit plus one for the irrep in question, i.e., up to “3” for (02). Because the
Dynkin label of a G2 irrep is small, this is easily manageable. In fact, we have implemented the addition of
three to the maximum Dynkin digit for G2 , because for some higher dimensions the problem will reappear.
However, for Lie algebras with long Dynkin labels, the number of generated Dynkin labels becomes large
and its construction slows LieART down and consumes a large amount of memory. We have found a balance
between accuracy and efficiency, which pushes this problem to very high dimensional irreps, by defining the
following number to add to the maximum Dynkin digit of the irrep in question: 1 for An ,Bn ,Cn and Dn with
n ≤ 4, 0 for An ,Bn ,Cn and Dn with n ≥ 5, 1 for E6 and F4 , 0 for E7 and E8 and 3 for G2 . Please note that
this limitation is only connected to the labeling of irreps with primes. Computations in LieART are always
performed using the Dynkin label as in the FullForm. If in doubt one can always use the Dynkin label
displayed in StandardForm, InputForm and FullForm which serves as the unique identifier of an irrep.
Besides its Dynkin label, the alternative definition of Irrep as Irrep[algebra][dimname] can be used
to specify an irrep by its dimensional name as dimname and its algebra as algebra. The algebra must be
fully specified, such as A4, SU5, E6, not only the algebra class such as A. The dimname is an integer for
the dimension with a Bar[dim] wrapped around it for a conjugated irrep or an IrrepPrime[dim,n] for
an irrep with n primes. If only one prime is needed the second argument n may be omitted. The Bar and
0
IrrepPrime can be combined in any sequence. E.g., the 175 can be entered by
In[66]:= Irrep[A4][IrrepPrime[Bar[175]]]//InputForm
Out[66]:= Irrep[A][0, 0, 2, 1]
Alternatives are Irrep[SU5][IrrepPrime[Bar[175]]], Irrep[SU5][Bar[IrrepPrime[175]]]
and Irrep[A4][IrrepPrime[Bar[175],1]]. Internally the function GetIrrepByDimName[algebra,
dimname] determines the corresponding Dynkin label. It uses the function GetIrrepByDim mentioned
above to find all irreps with the same dimension and then extract the irrep with the identical dimensional
name. If the user specifies an irrep that does not exist, e.g. an 11 of A4 , the comparison must stop at some
point. It has been chosen that GetIrrepByDim generates only irreps with a maximum Dynkin digit as set
by the global variable $MaxDynkinDigit. The default is $MaxDynkinDigit=3. The consequence is that
the determination of the correct Dynkin label of the entered irrep may abort, because the irrep does not
exist or that it involves a Dynkin digit higher that $MaxDynkinDigit=3. The latter is the case for the
700 with a Dynkin label of (0004). LieART prints an error message indicating the two possible scenarios:
27
In[67]:= Irrep[A4][IrrepPrime[70]]//InputForm
Irrep::noirrep: Either an irrep with the dimension name 700 does not exist
Out[67]:= in SU(5) or it has at least one Dynkin digit higher than 3. Try with
$MaxDynkinDigit set to a higher value than 3. »
Increasing $MaxDynkinDigit to 4 resolves the issue:
In[68]:= $MaxDynkinDigit=4;
Irrep[A4][IrrepPrime[70]]//InputForm
Out[68]:= Irrep[A][0,0,0,4]
Tensor products of irreps can be decomposed into a direct sum of irreps. The product of two irreps R1 and
R2 can be decomposed as X
R1 ⊗ R2 = mi Ri (29)
i
28
In[69]:= DecomposeProduct[Irrep[SU3][8], Irrep[SU3][8]]
Out[69]:= 1 + 2(8) + 10 + 10 + 27
In the straight forward approach one adds all weights of the second 8 to each weight of the first 8, using
the built-in Mathematica function Outer. One filters out only the dominant weights and tallies multiple
occurrences thereof using the LieART function DominantWeightsAndMul[weights], which also sorts the
weights according to their height, when viewed as a highest weight of an irrep. For the SU(3) tensor product
8⊗8 the dominant weights along with their multiplicities are
In[70]:= DominantWeightsAndMul[Flatten[Outer[Plus, WeightSystem[Irrep[SU3][8]],
WeightSystem[Irrep[SU3][8]]]]]
2 2 1
0 3 2
3 0 2
Out[70]:=
1 1 6
0 0 10
The dominant weight with the largest height 2 2 must be the highest weight of an irrep. The dominant
weight system of the (22) (the 27) of SU(3) is
In[71]:= DominantWeightSystem[Irrep[A][2, 2]]
2 2 1
0 3 1
3 0 1
Out[71]:=
1 1 2
0 0 3
It contains all dominant weights appearing in the tensor product, but with mostly smaller multiplicities.
The irrep (22) can be filtered out by subtracting the multiplicities in Out[71] from Out[70]. The LieART
function SortOutIrrep[dominantWeightsAndMul ] performs the task of computing the dominant weight
system of the irrep corresponding to the largest height weight and subtracting it from the tensor product. It
returns the dominant weights of the tensor product with the ones of the irrep removed and passes the latter
using the Sow and Reap mechanism of Mathematica:
In[72]:= Reap[SortOutIrrep[%%]]
0 3 1
3 0 1
Out[72]:= {
1 1
, (27)}
4
0 0 7
The function SortOutIrrep is applied recursively until the list of dominant weights with multiplicities of
the tensor product is empty. E.g., applying SortOutIrrep to the dominants weights of Out[72] filters
out the (03) (the 10) of SU(3):
In[73]:= Reap[SortOutIrrep[First[%]]]
3 0 1
Out[73]:= {
1 1 , (10)}
3
0 0 6
The irreps filtered out by SortOutIrrep are collected by the LieART function GetIrreps and can be
displayed as the result of the decomposition. However, LieART computes the tensor product decomposition
by an implementation of Klimyk’s formula, which is far more efficient than the straight-forward procedure
described above, but the sorting-out algorithm is still used for subalgebra decomposition in Section 4.6.
29
4.5.2. Algorithm Based on Klimyk’s Formula
Adding all weights of R2 to each weight of R1 is costly for large irreps. LieART’s algorithm to decom-
pose tensor-product implements Klimyk’s formula [21, 22], which improves the runtime of tensor product
decompositions considerably: Let λ1 and λ2 be weights and Λ1 and Λ2 the highest weights of R1 and R2 ,
respectively. Instead of adding all weights λ1 to each weight λ2 , the weights λ1 are added only to the highest
weight Λ2 of R2 together with half the sum of positive simple roots, δ=(1, . . . , 1), building the set of weights
µ = λ1 + Λ2 + δ. (32)
Each µ is reflected to the dominant chamber, yielding a highest weight denoted as {µ}, with sgn(µ) as the
parity of the reflection. Of these dominant weights all that lie on a chamber wall are dropped. The irreps in
the decomposition are R({µ} − δ). Klimyk’s formula reads
X
R1 (Λ1 ) ⊗ R2 (Λ2 ) = m1λ1 t(λ1 + Λ2 + δ)R({λ1 + Λ2 + δ} − δ), (33)
λ1
where m1λ1 denotes the multiplicity of λ1 in R1 . We define t(µ) to be sgn(µ) if µ has a trivial-stabilizer
subgroup Stab(µ) = {1} (see (24)), and zero if the stabilizer subgroup is non-trivial, i.e. the weight lies on
a chamber wall:
sgn(µ) : Stab(µ) = {1}
t(µ) = . (34)
0 : else
We will demonstrate this algorithm with LieART in the following paragraphs.
As a demonstration of the algorithm implemented we consider the decomposition of the SU(3) tensor product
6⊗3, which is
In[74]:= DecomposeProduct[Irrep[SU3][6], Irrep[SU3][3]]
Out[74]:= 8 + 10
LieART normally reorders the arguments of DecomposeProduct by their dimension, which usually sim-
plifies the application of Klimyk’s formula. But for didactical reasons we assume in the following that the
irreps are not reordered. LieART generates the weight system with weight multiplicities of the 6:
In[75]:= WeightSystemWithMul[Irrep[SU3][6]]
2 0 1
−2 2
1
0 −2 1
Out[75]:=
0 1 1
1 −1 1
−1 0 1
We add all weights of the 6 to the highest weight of the 3, i.e. HighestWeight[Irrep[SU3][3]] = 1 0 ,
and Delta[SU3]= 1 1 , according to (32). The highest weight Λ2 and δ can be added directly, but to add
the sum to all weights in the weight system with multiplicities LieART provides the command Add:
In[76]:= mu = Add[WeightSystemWithMul[Irrep[SU3][6]], HighestWeight[Irrep[SU3][3]] +
Delta[SU3]]
4 1 1
0 3 1
2 −1 1
Out[76]:=
2 2 1
3 0 1
1 1 1
LieART reflects these weights to the dominant chamber yielding the corresponding dominant weights and
30
the parity of the reflection, i.e. sgn(µ) = (−1)l , where l is the number of reflections needed to reach the
dominant chamber:
In[77]:= ReflectToDominantWeightWithMul /@ mu
4 1 1
0 3 1
1 1
− 1
Out[77]:=
2 2 1
3 0 1
1 1 1
LieART subtracts δ yielding highest weights and constructs the irreps in the decomposition R({λ1 +Λ2 +δ}−δ):
In[79]:= ToIrrep/@Add[TrivialStabilizerWeights[ReflectToDominantWeightWithMul/@mu],
-delta]
10 1
1 − 1
Out[79]:=
8
1
1 1
While the irreps in the left column correspond to R({λ1 + Λ2 + δ} − δ) in Klimyks formula, the multiplicities
in the right column correspond to m1λ1 sgn(λ1 + Λ2 + δ). Summing up the decomposition accordingly we
see that the 1 drops out and we obtain the result 8 + 10 as already stated in Out[74].
31
rules label the boxes of each row of the right Young tableau alphabetically:
8⊗8 = ⊗ a a (35)
b
Bump the boxes of the first row of the right tableau (labeled with a’s) to the ends of the left tableau to form
valid Young tableaux and the additional condition that no a’s are in the same column, as this would change
symmetric indices to antisymmetric ones. (see crossed out tableau, which is also not a valid SU(3) tableau,
because it has four (or N +1 in general for SU(N )) boxes in a column):
a
⊗ a a = a a ⊕ a ⊕ (36)
⊕ a ⊕ ⊗ b
b a a
a a
a
As the next step bump the boxes of the next row to all tableaux obtained by the first step obeying the same
rules, but keep only tableaux with an admissible sequence of letters, when reading the letters from right to
left, row by row. A sequence of letters is admissible if at any point at least as many a’s have occurred as b’s
and likewise for b’s and c’s, etc. The sequences abcd, aaabc, abab are admissible, but abba, acb are not. In
our example only the sequence baa is not admissible, which appears in the four crossed-out tableaux:
a a
⊗ a a =
a
a
b ⊕ a a ⊕ ⊕
b b
b
a
a
b ⊕ a ⊕ ⊕
a a
a b
b
(37)
a
b
a
⊕ ⊕
b
a
a
b
a ⊕ a
a a b
Removing the labeling with a’s and b’s, we obtain the SU(3) tensor product decomposition of 8⊗8 in terms
of Young tableaux:
⊗ = ⊕ ⊕ ⊕ ⊕ ⊕ (38)
Finally we knock out triples (full columns with three boxes) to find:
⊗ = ⊕ ⊕ ⊕ ⊕ ⊕ •
(39)
8 ⊗ 8 = 27 ⊕ 10 ⊕ 10 ⊕ 8 ⊕ 8 ⊕1
In LieART the Young tableau algorithm is automatically applied to tensor products of SU(N ) irreps using
DecomposeProduct[irreps]. After sorting the irrep with fewer boxes to the right (which we will call irrep2
opposed to the first one named irrep1 ), the function processes through irrep2 ’s rows to bump boxes to irrep1 .
The function BoxesToBump[irrep2 , row ] gives the number of boxes in the current row to bump to the
tableau of irrep1 . The function AllowedRows[irrep1 , nboxes] determines the rows of irrep1 that are
allowed to bump boxes to yielding a valid young tableau with an admissible sequence. The latter is checked
by the helper function AllowedCombination. The function AddToTableau[irrep1 , rowcombinations]
performs the bumping of the boxes of one row of irrep2 in all allowed combinations (rowcombinations) to
irrep1 . The result of the bumping is directly expressed in terms of a changed Dynkin label.
32
4.6. Subalgebra Decomposition
The LieART function DecomposeIrrep[irrep, subalgebra] decomposes an irrep of a simple Lie algebra
into a maximal subalgebra specified by subalgebra, which can be simple, semi-simple or non-semi-simple. To
decompose an irrep of a semi-simple or non-semi-simple irrep, a third argument pos allows one to specify
which part of productIrrep should be decomposed into the subalgebra.
The implementation of DecomposeIrrep in LieART uses so-called projection matrices. These matrices
project the weights of an irrep into the specified subalgebra. The resulting weights are further processed
in the same manner as in Section 4.6: Only the dominant weights of the decomposed weights are kept,
because they uniquely define the orbits of the subalgebra and thus its irreps. In the next step the irreps
comprised in the collection of dominant weights are sorted out using the same LieART functions as for
the generic tensor product decomposition, discussed in section 4.5.1. It is clear that the major task is the
determination of the projection matrices. They are different for each algebra-maximal-subalgebra pair and
are not unique. I.e., a projection is not unique and thus the matrices are not unique in general. Our
matrices are correct and consistent, but one may find different projection matrices in the literature, which
are also correct. (An extensive collection of projection matrices can be found in [23] for the Lie algebra An
and in [24] for the Lie algebras Bn , Cn and Dn .) Once a projection matrix is known it can be used for
the decomposition of all irreps of the algebra-maximal-subalgebra pair. E.g., the projection matrix for the
branching SU(5) → SU(3)⊗SU(2)⊗U(1) is
In[80]:= ProjectionMatrix[SU5,ProductAlgebra[SU3,SU2,U1]]
33
1 0 0 0
0 1 0 0
Out[80]:=
0
0 0 1
2 4 6 3
The determination of the projection matrices is closely connected to the problem of finding maximal subalge-
bras and we defer the description of its implementation in LieART to the next section. Taking the projection
matrix Out[80] as given we demonstrate the algorithm of DecomposeIrrep to find the branching rule
for the 10 of SU(5) to SU(3)⊗SU(2)⊗U(1), which is
In[81]:= DecomposeIrrep[Irrep[SU5][10],ProductAlgebra[SU3,SU2,U1]]
Out[81]:= (1, 1)(−6) + (3, 1)(4) + (3, 2)(−1)
The LieART function Project[projectionMatrix ,weights] applies the projectionMatrix to each of the
weights and a subsequent GroupProjectedWeights[projectedWeights,target] groups the Dynkin label
of each of the projectedWeights according to the subalgebra specified by target. In the case of our example
each weight of the 10 of SU(5) decomposes to SU(3)⊗SU(2)⊗U(1) as:
In[82]:= IrrepRule @@@ Transpose[{WeightSystem[Irrep[SU5][10]],
Row/@GroupProjectedWeights[Project[ProjectionMatrix[SU5,
ProductAlgebra[SU3,SU2,U1]],WeightSystem[Irrep[SU5][10]]],
ProductAlgebra[SU3,SU2,U1]]}]
0 1 0 0 → 0 1 0 4
1 −1 1 0 → 1 −1 0 4
−1 0 1 0 → −1 0 0 4
1 0 −1 1 → 1 0 1 −1
−1 1 −1 1 → −1 1 1 −1
Out[82]:=
1 0 0 −1 → 1 0 −1 −1
−1 1 0 −1 → −1 1 −1 −1
0 −1 0 1 → 0 −1 1 −1
0 −1 1 −1 → 0 −1 −1 −1
0 0 −1 0 → 0 0 0 −6
The algorithm of DecomposeIrrep differs slightly and keeps only the dominant weights after projection
and groups only them yielding
0 1 0 4
1 0 1 −1 (40)
0 0 0 −6
for our example. A combination of the functions GetAllProductIrrep and GetProductIrrep filter
out the product irreps, (3, 1)(4), (1, 1)(−6) and (3, 2)(−1) in our case, by applying the function GetIrrep
known from section 4.5.1 to the weights.
34
and the removed dot, i.e., simple root, becomes the U(1) generator. E.g., the non-semisimple subalgebra
SU(3)⊗SU(2)⊗U(1) can be obtained from SU(5) by removing the third dot from its Dynkin diagram:
1 2 3 4 1 2 1
Since the Dynkin label of a weight represents it composition of simple roots (explicitly in the α-basis),
dropping a simple root (dot) from the Dynkin diagram corresponds to dropping the associated digit from
the Dynkin label. The U(1) charge is the coefficient of the dropped simple root in the weight’s linear
combination of simple roots, i.e., the associated digit of the Dynkin label in the α-basis, which is often
normalized to give integer values. Accordingly, in Out[82] the third Dynkin digit of the weight of the 10
has been removed after the projection and by expressing the weight system in the α-basis
In[83]:= AlphaBasis[WeightSystem[Irrep[SU5][10]]]//Column
(3/5, 6/5, 4/5, 2/5)
(3/5, 1/5, 4/5, 2/5)
(-2/5, 1/5, 4/5, 2/5)
(3/5, 1/5, -1/5, 2/5)
(-2/5, 1/5, -1/5, 2/5)
Out[83]:=
(3/5, 1/5, -1/5, -3/5)
(-2/5, 1/5, -1/5, -3/5)
(-2/5, -4/5, -1/5, 2/5)
(-2/5, -4/5, -1/5, -3/5)
(-2/5, -4/5, -6/5, -3/5)
we see that the U(1) charge at the end are the third coordinate of the weight in the α-basis multiplied by
5 to give integer values. To summarize, the third Dynkin digit has been moved to the end (i.e., third and
forth digits have been interchanged) and only it has been projected into the α basis and rescaled.
Writing the weights of the 10 as columns of a matrix Ŵ and the weights with the third digit expressed in
non-normalized α-basis coordinates moved to the end as rows of a matrix Ŵ 0 , the projection matrix P̂ can
be determined from
P̂ Ŵ = Ŵ 0 (41)
with the right-inverse Ŵ+ of Ŵ (see section 4.1.4), since Ŵ is in general not a rectangular matrix:
P̂ = Ŵ 0 Ŵ+ . (42)
As mentioned above the projection matrix found by this procedure can now be used to decompose any SU(5)
irrep into SU(3)⊗SU(2)⊗U(1). The 10 is actually not the smallest irrep needed for the determination of the
projection matrix. The 10 as well as all other irreps can be built from tensor products of the 5, which we
call the generating irrep of SU(5). In the orthogonal algebras only tensor products of the so-called spinor
representations can construct all other irreps of the algebra. Thus, they must be used for the determination
of the projection matrices. The generating irreps of representative Lie algebras are listed in Table 4.2.
In fact LieART excludes the zero-weights from the generating irreps, if any, i.e., only the lowest non-trivial
orbit is needed for the determination of the projection matrices.
The calculation of a projection requires the knowledge of the simple root to drop from the Dynkin diagram for
a specified algebra-subalgebra pair. LieART provides an extra package file called BranchingRules.m, list-
ing this information for the implemented branching rules along with special embeddings to be discussed later.
The file will be extended to encompass more branching rules in future versions of LieART, but may also be
extended by the user. The definition for the more general branching rule SU(n) → SU(N −k)⊗SU(k)⊗U(1),
including the demonstrated case SU(5) → SU(3)⊗SU(2)⊗U(1), reads:
ProjectionMatrix[origin:Algebra[A][n_],
ProductAlgebra[Algebra[A][m_],Algebra[A][k_],Algebra[U][1]]] :=
NonSemiSimpleSubalgebra[origin,-k-1] /; m==(n-k-1)
35
Algebra Irrep Irrep
(Dynkin) (Name)
A4 (SU(5)) (1000) 5
B4 (SO(9)) (0001) 16
C4 (Sp(8)) (1000) 8
D4 (SO(8)) (0001) 8s
E6 (100000) 27
E7 (0000010) 56
E8 (00000010) 248
F4 (0001) 26
G2 (10) 7
Semisimple Subalgebras. To obtain a semisimple subalgebra without a U(1) generator, a root from the so-
called extended Dynkin diagram is removed. The extended Dynkin diagram is constructed by adding the
most negative root to the set of simple roots. (The negative of the highest root γ gives the most negative root
−γ to form the extended Dynkin diagram.) The resulting set of roots is linearly dependent, but removing
one root restores the linear independence yielding a valid system of simple root of a subalgebra, which in
general is semisimple. The highest roots γ and the according extended root −γ for representative Lie algebras
are listed in Table 4.3. The non-zero entries in the Dynkin label of −γ prescribe to which existing dot in
Table 4.3: Highest roots γ and most negative roots −γ of representative Lie algebras.
the Dynkin diagram it should connect, since the Dynkin label in the ω-basis encode the angle between two
simple roots. A “1” is an angle of 120°, symbolized by a single connected line in the Dynkin diagram. A “2”
is an angle of 135°, expressed by a double line in the Dynkin diagram. The minus sign gives negative angles
or reverses the order of roots. The extended Dynkin diagrams for all classical and exceptional Lie Algebras
are shown in Figure 2. Please note that the double line connecting the extended root −γ for Cn is according
to the “−2” in its Dynkin label.
To demonstrate the determination of the projection matrix from using the generating irrep, we cannot use an
irrep of SU(N ), because dropping a root from the extended Dynkin diagram of SU(N ) returns SU(N ). Thus,
SU(N ) has no regular maximal semisimple subalgebra. (Please note that some SU(N )’s have special maximal
semisimple subalgebras, e.g., SU(4) → SU(2)⊗SU(2).) Instead we consider the subalgebra branching of
SO(7)→SU(2)⊗SU(2)⊗SU(2) (B3 →A1 ⊗A1 ⊗A1 ). The maximal subalgebra SU(2)⊗SU(2)⊗SU(2) is obtained
from the extended Dynkin diagram of SO(7) (B3 ) by removing the second dot:
36
−γ
−γ
6
An E6
1 2 3 n−1 n 1 2 3 4 5
1 7
2 3 4 n−1 n
Bn E7
−γ 1 2 3 4 5 6
−γ 8
−γ 1 2 3 n−1 n
Cn E8
1 2 3 4 5 6 7 −γ
1
n−1 F4
2 3 4 n−2
−γ 1 2 3 4
Dn
n G2
−γ
−γ 2 3
Figure 2: Extended Dynkin Diagrams of classical and exceptional simple Lie algebras.
1
SU(2) SU(2) SU(2)
2 3
SO(7)
1 1 1
−γ
To derive the projection matrix, we investigate the decomposition of the SO(7) generating irrep (the 8)
into three SU(2)s. Extending the Dynkin diagram with −γ has the effect that each weight w gets extended
by one entry with the coefficient of the weight relative to −γ, obtained by their scalar product: (w, −γ).
The so-called extended weight scheme of the lowest non-trivial orbit of a generating irrep is determined
by the LieART function ExtendedWeightScheme[algebra,simpleRootToDrop], which directly removes
the Dynkin digits associated to the simple root to drop, specified by simpleRootToDrop. For the lowest
non-trivial orbit of the generating irrep of SO(7) these two steps are:
0 0 1 0 −1 0 1 0 −1 1
0 1 −1 0 −1 1 −1 0 −1 −1
1 −1 1 1 0 −1 1 1 0 1
−1 0 1 insert −γ −1 0 0 1 drop 2 −1 0 1
−−−−−−→ −−−−→ (43)
1 0 −1 1 0 0 −1 1 0 −1
−1 1 −1 −1 0 1 −1 −1 0 −1
0 −1 1 0 1 −1 1 0 1 1
0 0 −1 0 1 0 −1 0 1 −1
With the weight of the SO(7) generating irrep as columns of the matrix Ŵ and the weights in the 3 SU(2)
decomposition (right-hand side of (43)) as columns of Ŵ 0 the projection matrix P̂ is computed as described
for non-semisimple regular subalgebras as P̂ =Ŵ 0 Ŵ+ with the right-inverse Ŵ+ of Ŵ .
37
The definition for the branching rule SO(7)→SU(2)⊗SU(2)⊗SU(2) in the file BranchingRules.m reads:
ProjectionMatrix[origin:Algebra[B][3],
ProductAlgebra[Algebra[A][1],Algebra[A][1],Algebra[A][1]]]:=
SemiSimpleSubalgebra[origin,2]
Special Subalgebras. Special maximal subalgebras cannot be derived from the root system. The embedding
of a special subalgebra does not follow a general pattern and must be derived for every algebra-subalgebra
pair individually. Generating irreps are also used to derive the subalgebra embedding, which may be simple
or semisimple and can involve more than one irrep of the subalgebra. LieART is not equipped with an
algorithm to determine the maximal special subalgebras, but provides an interface to declare the embeddings
(BranchingRules.m), which can be taken from the literature [7, 8].
As an example we consider SO(7) (B3 ) again, which has G2 as special maximal subalgebra. The generating
spinor irrep of SO(7), the 8, decomposes to the G2 singlet plus the 7. The weights of the 8 of SO(7) and
the weights of both the 1 and 7 of G2 are brought into lexicographical order to define the projection matrix:
1 0 −1 → 2 −1
1 −1 1 → 1 0
0 1 −1 → 1 −1
0 0 1 → 0 0
(44)
0 0 −1 → 0 0
0 −1 1 → −1 1
−1 1 −1 → −1 0
−1 0 1 → −2 1
Arranging the weights on the left-hand side of (44) as columns of Ŵ and the weights of the right-hand side
as columns of Ŵ 0 , the projection matrix P̂ is again computed via P̂ =Ŵ 0 Ŵ+ with the right-inverse Ŵ+ of
Ŵ .
These procedures are performed by the LieART function SpecialSubalgebra[origin,targetirreps]. The
definition for the branching rule SO(7)→G2 in the file BranchingRules.m reads:
ProjectionMatrix[origin:Algebra[B][3],ProductAlgebra[G2]]:=
SpecialSubalgebra[origin,
{ProductIrrep[Irrep[G2][0,0]],ProductIrrep[Irrep[G2][1,0]]}]
Please note that irreps of the subalgebra must be gathered in a list ({. . . }), even if it is a single irrep. The
projection matrix for SO(7)→G2 is
In[84]:= ProjectionMatrix[B3,ProductAlgebra[G2]]
2 1 0
Out[84]:=
−1 −1 0
38
5. Benchmarks
In this section we give runtime benchmarks for the tensor-product decomposition. Because exceptional
algebras have complicated Weyl reflection groups of high orders, computations involving them are much
more CPU and memory demanding than with classical algebras of equal rank. In Table 5.1 we give runtime
benchmarks for the tensor-product decomposition of exceptional algebra irrep powers. We compute 27 n
for n = 2, . . . , 8 and 78 n for n = 2, . . . , 7 in E6 and 248 n for n = 2, . . . , 7 in E8 . For the timings we
use the Mathematica command Timing[], which gives the CPU time spent in the Mathematica kernel
in seconds. The command Timing[] does not include the time needed for the display of results in the
front end. As pointed out in Section 4.4.3, in TraditionalForm irreps are displayed by their dimensional
names, while computations are performed by their Dynkin labels. The determination of the dimensional
name can be very time consuming depending on the algebra and the irrep. This time is allotted to the
display of computation results and thus not measured with Timing[]. For most of the examples in Table
5.1 computed in TraditionalForm you will find significant differences between the displayed time and
the wall-clock time due to this effect, but this is intended as we want to give an estimate of the actual time
needed for decompositions and not the display of results. With StandardForm as output setting this effect
can be circumvented since this will display only the Dynkin digits of the irreps that are used internally and
no dimensional-name determination is performed.
Please note that each of the timings in Table 5.1 are taken with a newly launched Kernel to avoid speedup
due to caching of intermediate results from previous computations.
Table 5.1: Timings for tensor product decomposition of powers of 27 E6 , 78 E6 and 248 E8 . The second column gives the
power and the third the number of terms in the decomposition (i.e., the number of distinct irreps in the decomposition, where
the multiplicity can be quite high. For example there are 630 copies of the 1728 irrep in 277 of E6 .). The last column shows
the timing of the computation in seconds taken with Mathematica 8.0.1 on an Apple® iMac® with an Intel® Core™ i5 750
(2.66 GHz) processor and 4 GB RAM.
39
6. LATEX Package
LieART comes with a LATEX package (lieart.sty in the subdirectory latex/) that defines commands
to display irreps, roots and weights properly (see Table 6.1), which are displayed by LieART using the
LaTeXForm on an appropriate expression, e.g.:
In[85]:= DecomposeProduct[Irrep[SU3][8],Irrep[SU3][8]]//LaTeXForm
Out[85]:= $\irrep{1}+2(\irrep{8})+\irrep{10}+\irrepbar{10}+\irrep{27}$
We have programmed the Mathematica application LieART, which brings Lie-algebra and representation-
theory related computations to Mathematica. It provides functions for the decomposition of tensor products
and branching rules of irreducible representations, which are of high interest in particle physics, especially
unified model building. LieART exploits the Weyl reflection group in most of its applications, making it fast
and memory efficient. The user interface focuses on usability, allowing one to enter irreducible representations
by their dimensional name and giving results in textbook style. We have reproduced and extended existing
tabulated data on irreducible representations, their tensor products and branching rules.
In future versions we plan to add more branching rules to LieART. Currently, only a selection of common
branching rules used in the tables are implemented. We consider the tables given as online supplementary
material as dynamical: They are included in LieART as Mathematica notebooks and can easily modified and
extended by the user. Tables for algebras of high rank and/or higher dimensional irreducible representations
have large CPU time and high memory consumption. Nevertheless, we plan to extend the tables even further
and make them available online in a standard format (pdf and/or html).
8. Acknowledgments
We thank Carl Albright for many useful discussions that led to the development of LieART. We also thank
Tanja Feger for checking the tables against those found in [7]. We thank Savdeep Sethi and Bruce Westbury
for runtime comparisons with LiE [12], which led to the implementation of Klymik’s formula for tensor
products. We thank Florian Hartmann, Constantin Sluka and Giulia Ferlito for reporting bugs in the initial
version.
Most of the work was performed while RPF was affiliated with the Department of Physics and Astronomy,
Vanderbilt University, Nashville, and his work was supported by a fellowship within the Postdoc-Programme
of the German Academic Exchange Service (DAAD). The work of RPF and TWK was supported by US
DOE grant # E-FG05-85ER40226. The work of TWK was also supported by DoE grant # DE-SC0011981.
40
References
[1] E. Dynkin, Semisimple subalgebras of semisimple Lie algebras, Trans.Am.Math.Soc. 6 (1957) 111.
[2] E. Dynkin, Maximal subgroups of the classical groups, Trans.Am.Math.Soc. 6 (1957) 245.
[3] H. Georgi, S. Glashow, Unity of All Elementary Particle Forces, Phys.Rev.Lett. 32 (1974) 438–441.
doi:10.1103/PhysRevLett.32.438.
[4] H. Georgi. Particles And Fields: Williamsburg 1974. AIP Conference Proceedings No. 23 - C. E. Carlson
(eds.).
[5] H. Fritzsch, P. Minkowski, Unified Interactions of Leptons and Hadrons, Annals Phys. 93 (1975) 193–
266. doi:10.1016/0003-4916(75)90211-0.
[6] F. Gursey, P. Ramond, P. Sikivie, A Universal Gauge Theory Model Based on E6, Phys.Lett. B60 (1976)
177. doi:10.1016/0370-2693(76)90417-2.
[7] R. Slansky, Group Theory for Unified Model Building, Phys.Rept. 79 (1981) 1–128. doi:10.1016/
0370-1573(81)90092-2.
[8] W. G. McKay, J. Patera, Tables of dimensions, indices, and branching rules for representations of simple
Lie algebras, Lecture Notes in Pure and Applied Mathematics, Dekker, New York, NY, 1981.
[9] H. Georgi, Lie Algebras in Particle Physics. from Isospin to Unified Theories, Front.Phys. 54 (1982)
1–255.
[10] P. Ramond, Group theory: A physicist’s survey, Cambridge University Press, Cambridge, UK, 2010.
[11] R. Cahn, Semi-simple lie algebras and their representations, Vol. 59 of Front.Phys., Benjamin Cummings,
Menlo Park, CA, 1984.
[12] M. van Leeuwen, A. Cohen, B. Lisser, LiE, A Package for Lie Group Computations, Computer Algebra
Nederland, Amsterdam, 1992.
URL http://young.sp2mi.univ-poitiers.fr/~marc/LiE/
[13] B. G. Wybourne, Schur (2002).
URL http://smc.vnet.net/Schur.html
[14] T. Nutma, Simplie (2009).
URL http://code.google.com/p/simplie/
[15] A. Nazarov, Affine.m - Mathematica package for computations in representation theory of finite-
dimensional and affine Lie algebrasarXiv:1107.4681.
[16] R. M. Fonseca, Calculating the renormalisation group equations of a susy model with susyno, Computer
Physics Communications 183 (10) (2012) 2298 – 2306. arXiv:1106.5016, doi:10.1016/j.cpc.
2012.05.017.
[17] C. H. Albright, R. P. Feger, T. W. Kephart, An explicit SU(12) family and flavor unification model
with natural fermion masses and mixings, Phys.Rev. D86 (2012) 015012. arXiv:1204.5471, doi:
10.1103/PhysRevD.86.015012.
[18] A. Klimyk, J. Patera, Orbit Functions, SIGMA 2 (2006) 6–66. arXiv:math-ph/0601037, doi:
10.3842/SIGMA.2006.006.
[19] R. V. Moody, J. Patera, Fast Recursion Formula for Weight Multiplicities, Bull.Amer.Math.Soc.(N.S.)
7 (1) (1982) 237–242.
[20] F. Lemire, J. Patera, Congruence number, a generalization of SU(3) triality, J.Math.Phys. 21 (8) (1980)
2026. doi:10.1063/1.524711.
41
[21] A. U. Klimyk, Decomposition of the direct product of irreducible representations of a semisimple Lie
algebra into irreducible representations, American Mathematical Society Translations: Series 2 76 (1967)
63.
[22] J. Humphreys, Introduction to Lie Algebras and Representation Theory, Springer, New York, 1972.
[23] M. Larouche, M. Nesterenko, J. Patera, Branching rules for the Weyl group orbits of the Lie algebra A(n),
J. Phys. A: Math. Theor. 42 (48) (2009) 485203. arXiv:0909.2337, doi:10.1088/1751-8113/
42/48/485203.
[24] M. Larouche, J. Patera, Branching rules for Weyl group orbits of simple Lie algebras B(n), C(n)
and D(n), J. Phys. A: Math. Theor. 44 (11) (2011) 115203. arXiv:1101.6043, doi:10.1088/
1751-8113/44/11/115203.
42