Function Repository Resource:

LieIrrepDimension

Source Notebook

Give the classical or quantum dimension of an irreducible representation of a simple complex Lie algebra

Contributed by: Robert Coquereaux

ResourceFunction["LieIrrepDimension"][ruplet]

returns the dimension of an irreducible representation of the Lie algebra Ar which is specified by the highest weight given by the list of the components ruplet in the basis of fundamental weights.

ResourceFunction["LieIrrepDimension"]["alg",ruplet,"Classical"]

returns the dimension of an irreducible representation with highest weight specified by the list ruplet, of the simple Lie algebra whose name is the string "alg" obtained by concatenating the type of the Lie algebra with its rank.

ResourceFunction["LieIrrepDimension"]["alg",ruplet,"Quantum",q]

returns, as a function of q, the quantum dimension (q-dimension) of an integrable irreducible representation of the quantum enveloping algebra associated with the Lie algebra "alg", with the same highest-weight specification as before.

ResourceFunction["LieIrrepDimension"]["alg",ruplet,"Quantum",q,"()"]

is equal to LieIrrepDimension["alg",ruplet, "Quantum",q] but the result is expressed in terms of q-numbers denoted (n)q = (q^n-q^(-n))/(q-q^(-1)).

ResourceFunction["LieIrrepDimension"]["alg",ruplet,"Quantum",q,Y]

is equal to LieIrrepDimension["alg",ruplet, "Quantum",q] but the q-numbers in the result are denoted Y[n,q].

ResourceFunction["LieIrrepDimension"]["alg",ruplet,"Quantum",q,"QPoch"]

is equal to LieIrrepDimension["alg",ruplet, "Quantum",q] but the result is expressed in terms of the function QPochhammer.

ResourceFunction["LieIrrepDimension"]["alg",ruplet,"RootOfUnity",κ]

is a simplified expression (usually trigonometric) equal to LieIrrepDimension["alg",ruplet, "Quantum", Exp[I Pi/κ] where κ is a non-negative integer.

Details

Given a complex semisimple Lie algebra, the dimension of an irreducible representation (or irrep), characterized by its highest weight, is obtained from the Weyl dimension formula.
The Weyl dimension formula involves the product over all the positive roots of the inner products between them and the highest weight shifted by the Weyl vector.
The collection of inner products entering the Weyl dimension formula can be encoded by labels attached to the vertices of the periodic quiver of roots.
For simply-laced Lie algebras (i.e., the ADE cases) the periodic quiver of roots is deduced from the adjacency matrix of the Dynkin diagram and from the matrices that describe the fusion algebra of SU(2) at an appropriate level. For non-simply-laced cases the calculation is similar but it involves specific scaling factors for the Coxeter orbits of short and long roots.
Standard notations for classical groups and their Lie algebras:
Ar, r >= 1also called su(r+1), the Lie algebras of the special unitary groups
Dr, r >= 3also called so(2r), the Lie algebras of the special orthogonal groups (even case)
Br, r >= 2also called so(2r+1), the Lie algebras of the special orthogonal groups (odd case)
Cr, r >=2also called sp(r) or usp(2r), the Lie algebras of the (compact) symplectic groups
E6, E7, E8, G2, F4exceptional simple Lie groups.
The argument string of the function ResourceFunction["LieIrrepDimension"] refers to one of the names that appears in the previous table, for instance "A5", "D10", "G2", or "E6".
The argument ruplet is the list of components of the highest weight in the basis of fundamental weights. It specifies the chosen irreducible representation. The components can be formal symbols, or non-negative integers.
The length of ruplet must match the rank of the chosen Lie algebra.
The ordering of fundamental weights in the list of components ruplet is determined by the ordering of vertices of the associated Dynkin diagram or by the list of simple roots.This ordering is standard (from left to right) for Ar. The two special simple roots of Dr are the last two. The special simple root in E6, E7, or E8, is the last one. Non simply-laced cases: For Br, the last root to the right is the unique short simple root. For G2, the short simple root is also to the right. For Cr, the short roots (all the simple roots but one) are to the left. For F4 there should be no ambiguity. The ordering can also be inferred from the dimensions of fundamental representations.
The input pattern ResourceFunction["LieIrrepDimension"][ruplet] assumes that the Lie algebra is of type Ar, in which case the dimension of an irreducible representation specified by the list ruplet of components (xj) is given by the following expression: .
If one uses the pattern LieIrrepDimension["alg", ruplet, "Classical"], the function resource is calculated from the Weyl dimension formula by constructing the quiver of roots. In the Ar case, for any choice of the rank r, one has LieIrrepDimension["Ar", ruplet,"Classical"] = LieIrrepDimension[ruplet] but these two calls use different internal methods.
LieIrrepDimension["alg", ruplet, "Quantum",q] calculates the q-dimension (quantum dimension) and uses the same algorithm as in the classical case, but the inner products associated with the vertices of the periodic quiver of roots are calculated in terms of q-numbers.
The results obtained by calling DimensionIrrepLie["alg", ruplet, "Quantum",q], DimensionIrrepLie["alg", ruplet, "Quantum",q,Y], LieIrrepDimension["alg", ruplet, "Quantum",q,"QPoch"], or LieIrrepDimension["alg", ruplet, "Quantum",q,"()"], are mathematically equal, but formally distinct. One has Y[n,q] = Subscript[(n),q]= (q^n-q^(-n))/(q-q^(-1)).
The classical dimension (the usual dimension LieIrrepDimension["alg", ruplet,"Classical"]) is recovered from the quantum dimension LieIrrepDimension["alg", ruplet,"Quantum", q] when q goes to 1.
When q is a root of unity, namely q = Exp[I Pi/κ], with κ a non-negative integer, it is usually better to call LieIrrepDimension[string, ruplet, "RootOfUnity",κ] because the associated code tries to express the result as a simplified trigonometric expression (the simplification may be slow). For a given Lie algebra, the integer κ should be large enough for the chosen irrep specified by ruplet to exist (see an illustration of this phenomena in the section Applications).

Examples

Basic Examples (8) 

The dimension of a generic irrep of A2 = su(3):

In[1]:=
ResourceFunction["LieIrrepDimension"][{a, b}]
Out[1]=

The dimension of a generic irrep of A3 = su(4):

In[2]:=
ResourceFunction["LieIrrepDimension"][{a, b, c}]
Out[2]=

The Lie algebra Ar (also called su(r+1)) is the default:

In[3]:=
ResourceFunction["LieIrrepDimension"][{a, b, c}] == ResourceFunction["LieIrrepDimension"]["A3", {a, b, c}, "Classical"]
Out[3]=

The dimension of an irrep of the exceptional group E6:

In[4]:=
ResourceFunction[
 "LieIrrepDimension"]["E6", {2, 5, 3, 7, 1, 9}, "Classical"]
Out[4]=

The quantum dimension of an irrep of A3 in terms of the parameter q:

In[5]:=
ResourceFunction["LieIrrepDimension"]["A3", {2, 5, 7}, "Quantum", q]
Out[5]=

The same quantum dimension written in terms of q-numbers (n)q = :

In[6]:=
ResourceFunction["LieIrrepDimension"]["A3", {2, 5, 7}, "Quantum", q, "()"]
Out[6]=

The same quantum dimension written using the symbol qnum[n,q]= :

In[7]:=
ResourceFunction[
 "LieIrrepDimension"]["A3", {2, 5, 7}, "Quantum", q, qnum]
Out[7]=

The quantum dimension of an irrep of A3 when q is a root of unity:

In[8]:=
ResourceFunction[
 "LieIrrepDimension"]["A3", {2, 5, 7}, "RootOfUnity", 10]
Out[8]=
In[9]:=
% == ResourceFunction["LieIrrepDimension"]["A3", {2, 5, 7}, "Quantum",
    Exp[(I \[Pi])/10]] // FullSimplify
Out[9]=

Properties and Relations (5) 

Compute the dimensions for vector and half-spinor representations of so(10):

In[10]:=
(* Evaluate this cell to get the example input *) CloudGet["https://www.wolframcloud.com/obj/fedbf959-4c0b-489a-bff7-3488cede5763"]
Out[10]=

Recover the classical limit q1 for A3 in a particular case:

In[11]:=
ResourceFunction["LieIrrepDimension"]["A3", {2, 5, 3}, "Quantum", q]
Out[11]=
In[12]:=
{Limit[%, q -> 1], ResourceFunction["LieIrrepDimension"]["A3", {2, 5, 3}, "Classical"]}
Out[12]=

Quantum dimension of irreducible representations of A3 (generic irrep), using the symbol Y[n,s] to denote s =

In[13]:=
ResourceFunction["LieIrrepDimension"]["A3", {a, b, c}, "Quantum", s,
  Y]
Out[13]=
In[14]:=
Clear[s, Y];

Same result, using the symbol qnum[n,q] to denote q:

In[15]:=
ResourceFunction[
 "LieIrrepDimension"]["A3", {a, b, c}, "Quantum", q, qnum]
Out[15]=

Same result, in terms of the notationq:

In[16]:=
ResourceFunction["LieIrrepDimension"]["A3", {a, b, c}, "Quantum", q, "()"]
Out[16]=

Same result, written in terms of q:

In[17]:=
ResourceFunction["LieIrrepDimension"]["A3", {a, b, c}, "Quantum", q]
Out[17]=

Recover the classical limit q1 for A3 in the generic case:

In[18]:=
Limit[ResourceFunction["LieIrrepDimension"]["A3", {a, b, c}, "Quantum",
    q], q -> 1] == ResourceFunction["LieIrrepDimension"]["A3", {a, b, c}, "Classical"]
Out[18]=

Quantum dimension of an irreducible representation of A2, when at roots of unity:

In[19]:=
ResourceFunction[
 "LieIrrepDimension"] ["A2", {2, 5}, "RootOfUnity", \[Kappa]]
Out[19]=
In[20]:=
ResourceFunction["LieIrrepDimension"] ["A2", {2, 5}, "RootOfUnity", \[Kappa]] == ResourceFunction["LieIrrepDimension"] ["A2", {2, 5}, "Quantum", Exp[I Pi/\[Kappa]]] // Simplify
Out[20]=

Applications (19) 

Classical dimensions (formal input) (4) 

The Lie algebra is Ar, r = 2, 3, 4, …:

In[21]:=
ResourceFunction["LieIrrepDimension"][
 Table[Subscript[x, j], {j, 1, 2} ]]
Out[21]=
In[22]:=
ResourceFunction["LieIrrepDimension"][
 Table[Subscript[x, j], {j, 1, 3} ]]
Out[22]=
In[23]:=
ResourceFunction["LieIrrepDimension"][
 Table[Subscript[x, j], {j, 1, 4} ]]
Out[23]=

With the above syntax the following equality is used:

In[24]:=
Table[With[{r = rval}, ResourceFunction["LieIrrepDimension"][
    Table[Subscript[x, j], {j, 1, r} ]] == \!\(
\*UnderoverscriptBox[\(\[Product]\), \(p = 1\), \(r\)]\((
\*UnderoverscriptBox[\(\[Product]\), \(s = 1\), \(1 - p + r\)]\((p + 
\*UnderoverscriptBox[\(\[Sum]\), \(j = s\), \(\(-1\) + p + s\)]
\*SubscriptBox[\(x\), \(j\)])\))\)\)/BarnesG[2 + r]], {rval, 1, 7}]
Out[24]=

Special case of Ar. Timing consideration. When the rank r is large, the short syntax should be preferred:

In[25]:=
ResourceFunction["LieIrrepDimension"][UnitVector[10, 1]] // Timing
Out[25]=
In[26]:=
ResourceFunction["LieIrrepDimension"]["A10", UnitVector[10, 1], "Classical"] // Timing
Out[26]=

Other examples of Lie algebras:

In[27]:=
ResourceFunction["LieIrrepDimension"]["G2", {a, b}, "Classical"]
Out[27]=
In[28]:=
ResourceFunction["LieIrrepDimension"]["B3", {a, b, c}, "Classical"]
Out[28]=
In[29]:=
ResourceFunction["LieIrrepDimension"]["C3", {a, b, c}, "Classical"]
Out[29]=
In[30]:=
ResourceFunction["LieIrrepDimension"]["D4", {a, b, c, d}, "Classical"]
Out[30]=
In[31]:=
ResourceFunction["LieIrrepDimension"]["A6", Table[Subscript[x, j], {j, 1, 6} ], "Classical"]
Out[31]=
In[32]:=
ResourceFunction["LieIrrepDimension"]["E6", Table[Subscript[x, j], {j, 1, 6} ], "Classical"]
Out[32]=
In[33]:=
ResourceFunction["LieIrrepDimension"]["F4", Table[Subscript[x, j], {j, 1, 4} ], "Classical"]
Out[33]=

Fundamental representations of exceptional simple Lie algebras

In[34]:=
Table[ResourceFunction["LieIrrepDimension"] ["E6", UnitVector[6, p], "Classical"], {p, 1, 6}]
Out[34]=
In[35]:=
Table[ResourceFunction["LieIrrepDimension"] ["E7", UnitVector[7, p], "Classical"], {p, 1, 7}]
Out[35]=
In[36]:=
Table[ResourceFunction["LieIrrepDimension"] ["E8", UnitVector[8, p], "Classical"], {p, 1, 8}]
Out[36]=
In[37]:=
Table[ResourceFunction["LieIrrepDimension"] ["G2", UnitVector[2, p], "Classical"], {p, 1, 2}]
Out[37]=
In[38]:=
Table[ResourceFunction["LieIrrepDimension"] ["F4", UnitVector[4, p], "Classical"], {p, 1, 4}]
Out[38]=

Quantum dimensions (numeric input) (10) 

Classical dimension:

In[39]:=
res = ResourceFunction["LieIrrepDimension"] ["A3", {3, 4, 1}, "Classical"]
Out[39]=

Quantum dimension:

In[40]:=
ResourceFunction[
 "LieIrrepDimension"] ["A3", {3, 4, 1}, "Quantum", q, qnum]
Out[40]=

A nicer output using the notation (n)q for quantum numbers:

In[41]:=
ResourceFunction["LieIrrepDimension"] ["A3", {3, 4, 1}, "Quantum", q, "()"]
Out[41]=

The same quantum dimension in terms of the formal variable q:

In[42]:=
ResourceFunction["LieIrrepDimension"] ["A3", {3, 4, 1}, "Quantum", q]
Out[42]=
In[43]:=
Limit[%, q -> 1](* Recovering the classical limit *)
Out[43]=

The quantum dimension when the quantum parameter is a root of unity:

In[44]:=
ResourceFunction[
 "LieIrrepDimension"] ["A3", {3, 4, 1}, "RootOfUnity", \[Kappa]]
Out[44]=
In[45]:=
% /. \[Kappa] -> 12  (* a particular choice for \[Kappa]. Warning: \[Kappa] should be large enough for this irrep to exist *)
Out[45]=
In[46]:=
Chop[N[ %]]
Out[46]=

The same quantum dimension in terms of QPochhammer symbols:

In[47]:=
ResourceFunction[
 "LieIrrepDimension"] ["A3", {3, 4, 1}, "Quantum", q, "QPoch"]
Out[47]=
In[48]:=
% // FunctionExpand
Out[48]=
In[49]:=
Chop[N[ % /. {q -> Exp[(I \[Pi])/12]}], 10^-8]
Out[49]=

In the framework of quantum Lie algebras (actually quantum enveloping algebras of Lie algebras) at roots of unity, the parameter κ (sometimes called the altitude) is κ = g + k where g is the dual Coxeter number of the chosen Lie algebra, and where k is a non-negative integer called the level. The level k should be large enough for the chosen irreducible representation to exist (i.e. to be integrable). For Ar = su(r+1), g=r+1. The list of integrable irreps that exist at level k is given by the following command:

In[50]:=
integrableirrepsA[r_, k_] := Flatten[Apply[Table, Module[{a, li1 = Append[
       Table[ToExpression[StringJoin[ToString[a], ToString[j]]], {j, r, 1, -1}], 0], li}, li = Prepend[li1, k]; Sequence[
     Prepend[Table[{li[[j]], 0, li[[j - 1]]}, {j, 2, r + 1}], Drop[li1 - RotateLeft[li1], -1]]]]], r - 1]

For A3, g = 4, and for the irrep with highest weight {3, 4, 1} in the basis of fundamental weights, the minimal value of the level is k = 8. Indeed:

In[51]:=
Table[MemberQ[integrableirrepsA[3, k], {3, 4, 1}], {k, 1, 10}]
Out[51]=

In terms of q-dimensions, the level k (the altitude κ) should be large enough for the chosen irreducible representation to exist. For the irrep {3,4,1}, k= 8:

In[52]:=
qtrig = ResourceFunction["LieIrrepDimension"] ["A3", {3, 4, 1}, "RootOfUnity", \[Kappa]]
Out[52]=
In[53]:=
Table[With[{g = 4}, Chop@N[qtrig /. {\[Kappa] -> 4 + k} ]], {k, 7, 500, 25}](* When k = 7, the q-dimension vanishes *)
Out[53]=

For very large k one recovers the classical limit:

In[54]:=
With[{g = 4}, Limit[qtrig /. {\[Kappa] -> 4 + k}, k -> Infinity ]]
Out[54]=
In[55]:=
DiscretePlot[
 With[{g = 4}, {res, Chop@N[qtrig /. {\[Kappa] -> 4 + k} ]}], {k, 1, 250, 5}]
Out[55]=
In[56]:=
Clear[res, qtrig, integrableirrepsA]

Quantum dimensions (formal input ) (5) 

Quantum dimension:

In[57]:=
ResourceFunction[
 "LieIrrepDimension"] ["A3", {a, b, c}, "Quantum", q, qnum]
Out[57]=

Nicer output:

In[58]:=
ResourceFunction["LieIrrepDimension"] ["A3", {a, b, c}, "Quantum", q, "()"]
Out[58]=

The quantum dimension in terms of the formal variable q:

In[59]:=
ResourceFunction["LieIrrepDimension"] ["A3", {a, b, c}, "Quantum", q]
Out[59]=

Assume that q is a complex root of unity. The following command can be slow when the input (irrep) is not numeric:

In[60]:=
res = ResourceFunction["LieIrrepDimension"] ["A3", {a, b, c}, "RootOfUnity", \[Kappa]] // PowerExpand(* Value for q, a root of unity *)
Out[60]=

For the following choice of a,b,c, the integer κ should be large enough (setting κ = 4 + k, the level k should be equal or larger than 8):

In[61]:=
(res /. {a -> 3, b -> 4, c -> 1}) /. \[Kappa] -> 11
Out[61]=
In[62]:=
(res /. {a -> 3, b -> 4, c -> 1}) /. \[Kappa] -> 12
Out[62]=
In[63]:=
% // N
Out[63]=
In[64]:=
Clear[res]

Possible Issues (1) 

When q is a root of unity, q=π/κ, the value of the positive integer κ should be large enough for the representation defined by ruplet to exist (integrability condition), otherwise the result returned by LieIrrepDimension cannot be interpreted as the corresponding quantum dimension. When κ is larger than this threshold value (which depends on the choice of the algebra and on the choice of the would-be highest weight), the result returned by LieIrrepDimension remains strictly positive. In the following example, κ should be equal or larger than 12:

In[65]:=
Table[N@ResourceFunction["LieIrrepDimension"] ["A3", {3, 4, 1}, "RootOfUnity", \[Kappa]], {\[Kappa], 1, 20}]
Out[65]=

Publisher

Robert Coquereaux

Requirements

Wolfram Language 13.0 (December 2021) or above

Version History

  • 1.0.1 – 24 October 2025
  • 1.0.0 – 22 October 2025

Source Metadata

Related Resources

Author Notes

The quiver of roots of G is obtained from the fusion algebra of A1= Lie(SU(2)) at the following levels: For Ar, it is obtained from the fusion algebra of A1 at level r-1. For Dr, it is obtained from the fusion algebra of A1 at level 2r-4. For E6, E7, E8, it is obtained from the fusion algebra of A1 at levels 10, 16, 28. For non simply-laced Lie algebras, one has to introduce specific scaling coefficients.
This correspondence between the roots of classical or exceptional Lie algebras and the fusion algebra of SU(2) at finite levels (and its action on several modules) is sometimes known as a quantum McKay correspondence. In the framework of conformal field theories built on the su(2) affine Lie algebra it is related to the so-called ADE classification of modular invariant partitions functions.

License Information