SU3-ASYM

A companion Mathematica package to the paper “On the number of n-dimensional representations of SU(3), the Bernoulli numbers, and the Witten zeta function”

Dan Romik
Department of Mathematics
University of California, Davis

October 4, 2016

This notebook was created using Mathematica 8 and later updated (version 1.2) using Mathematica 11.

Release notes:
• Version 1.0 (March 11, 2015). Initial version.
• Version 1.1 (March 12, 2015). Added section 5 with code for numerical computation of the sequence r(n).
• Version 1.2 (October 4, 2016). Updated equation numbers and the formulas for the constant K to correspond to the October 1, 2016 revision of the paper.

1. Introduction

This Mathematica package accompanies my paper “On the number of n-dimensional representations of SU(3), the Bernoulli numbers, and the Witten zeta function”. Its goal is to help readers of the paper quickly perform algebraic and numerical computations that verify a few claims made in the paper.

The algebraic computations can all be done by hand in a few minutes, but the computer-aided verification is a lot easier and less time-consuming.

To proceed, open each of the sections below and follow the instructions.

2. Bernoulli numbers

Verification of Lemma 2.2

This section verifies equation (33) in the paper used in the proof of Lemma 2.2. First, run the code below to define the functions F[n,k], R[n,k] and G[n,k], and the expressions on the two sides of equation (33), denoted LHS33 and RHS33. The code also defines a useful function called SimplifyTogether[] that brings calculation results to a pleasant form.

SimplifyTogether[expr_]:=Together[FullSimplify[expr]];

F[n_,k_]:=(1/(3n+1))×(((2n+1)!)/((n!)^2))×((Binomial[n,k])/(Binomial[3n,n+k]));

R[n_,k_]:=((k (2n-k+1) (11(n^2)+2(k^2)-5n k+27n-6k+16))/(3(n+1)(3n+2)(3n+4)(n-k+1)));

G[n_,k_]:=F[n,k]R[n,k];

LHS33=F[n+1,k]-F[n,k];
RHS33=G[n,k]-G[n,k+1];

The next line will show what LHS33/F[n,k] simplifies to after applying the SimplifyTogether function. Run it to see what happens.

SimplifyTogether[LHS33/F[n,k]]

Now do the same for RHS33/F[n,k].

SimplifyTogether[RHS33/F[n,k]]

You can probably see that the two outputs are the same, but just to make sure, run SimplifyTogether on the difference of LHS33 and RHS33 divided by F[n,k]. If you get 0, that means equation (33) is correct.

SimplifyTogether[(LHS33-RHS33)/F[n,k]]

Verification of Lemma 2.3

Here, we verify equation (38) used in the proof of Lemma 2.3. First, run the code below to load the definitions of the functions F1, F2, U, V, W, R1, R2, G1, G2.

SimplifyTogether[expr_]:=Together[FullSimplify[expr]]; (* Repeat the definition of SimplifyTogether from the previous section so both sections can be run independently *)

F1[n_,m_,j_]:=(((-1))^(n+j))((Binomial[n,j]Binomial[3n,m+j-n])/(Binomial[3n,n+j]));
F2[n_,m_,j_]:=((Binomial[n,j]Binomial[n+j-1,m+j-n])/(Binomial[3n,n+j]));

U[n_,m_]:=(m+2)(2n-m-1);
V[n_,m_]:=-2(m^2)-5(n^2)+8m n+9n-4m-2;
W[n_,m_]:=-(4n-m)(2n-m-1);

R1[n_,m_,j_]:=((j(3n+1)(2n-j+1))/(n-m-j-1));
R2[n_,m_,j_]:=((j(m-2n+1)(2n-j+1))/(n-m-j-1));

G1[n_,m_,j_]:=F1[n,m,j]R1[n,m,j];
G2[n_,m_,j_]:=F2[n,m,j]R2[n,m,j];

Now, define the expressions on the left-hand side and the right-hand side of equation (38). Note that there is a parameter α that takes the values α=1 and α=2, so we define two quantities, LHS38one and LHS38two, for the left-hand side (corresponding to the two values of α), and similarly for the right-hand side.

LHS38one=U[n,m]F1[n,m+2,j]+V[n,m]F1[n,m+1,j]+W[n,m]F1[n,m,j];
RHS38one=G1[n,m,j+1]-G1[n,m,j];

LHS38two=U[n,m]F2[n,m+2,j]+V[n,m]F2[n,m+1,j]+W[n,m]F2[n,m,j];
RHS38two=G2[n,m,j+1]-G2[n,m,j];

The next four lines of code show what happens when we SimplifyTogether each of the expressions LHS38one/F1[n,m,j], RHS38one/F1[n,m,j], LHS38two/F2[n,m,j], RHS38two/F2[n,m,j].

SimplifyTogether[LHS38one/F1[n,m,j]]

SimplifyTogether[RHS38one/F1[n,m,j]]

SimplifyTogether[LHS38two/F2[n,m,j]]

SimplifyTogether[RHS38two/F2[n,m,j]]

Again, we can visually see that LHS38one/F1[n,m,j] == RHS38one/F1[n,m,j] and that LHS38two/F2[n,m,j] == RHS38two/F2[n,m,j]. To verify this, SimplifyTogether the differences; if the answers are 0, that means equation (34) is correct.

SimplifyTogether[(LHS38one-RHS38one)/F1[n,m,j]]

SimplifyTogether[(LHS38two-RHS38two)/F2[n,m,j]]

New Bernoulli number summation identities

This subsection numerically verifies for small values of n the two new Bernoulli number summation identities that appear in Section 12.1 of the paper.

First, we define the functions P[n,k] and Q[n,k], and the expressions on the left-hand side and right-hand side of equations (107) and (108).

P[n_,k_]:=(((2n-1))^2)-4(k-1)(n-k);
Q[n_,k_]:=((((k^2)-k n+(n^2)) (-1+4 (k^2)-4 k n+4 (n^2))-6 k (k-n) n)/((n(2k+1)(2n-2k+1))));

LHS107=((BernoulliB[6n-2])/(6n-2));
RHS107=-(1/(2(6n-1)))Binomial[4n,2n]Sum[Binomial[2n,2k-1]P[n,k]((BernoulliB[2n+2k-2])/(2n+2k-2))((BernoulliB[4n-2k])/(4n-2k)),{k,1,n}];

LHS108=((BernoulliB[6n])/(6n));
RHS108=-(2/(3(6n+1)))(((4n+1)!)/(((2n)!)^2))Sum[Binomial[2n,2k]Q[n,k]((BernoulliB[2n+2k])/(2n+2k))((BernoulliB[4n-2k])/(4n-2k)),{k,0,n}];

The next two lines of code illustrate the identity in equation (107). Run them and see what happens.

Table[LHS107,{n,1,7}]

Table[RHS107,{n,1,7}]

The next two lines similarly illustrate the identity in equation (108).

Table[LHS108,{n,1,7}]

Table[RHS108,{n,1,7}]

3. Numerical values of constants

In this section we define the numerical constants X, Y, (Subscript[A, 1]), (Subscript[A, 2]), (Subscript[A, 3]), (Subscript[A, 4]), K that appear in the paper, and compute their numerical values. We also compute the derivative ω’(0) of the Witten zeta function of SU(3), and the “intriguing integral” that appears in the formula for ω’(0).

The constant K is defined in terms of two different formulas, so we also check that they are equivalent.

Run the code below to load the definitions. Note that the evaluation will take a few seconds. This time is spent doing the high-precision numerical integration to compute “IntriguingIntegral”.

X=((((1/9)((Gamma[(1/3)])^2)Zeta[(5/3)]))^(3/10));
Y=-Sqrt[Pi]Zeta[(1/2)]Zeta[(3/2)];

(Subscript[A, 1])=5(X^2);
(Subscript[A, 2])=(X^(-1))Y;
(Subscript[A, 3])=(3/80)(X^(-4))(Y^2);
(Subscript[A, 4])=(11/3200)(X^(-7))(Y^3);

IntriguingIntegral=NIntegrate[(1/2)×((Zeta[(3/2)+I t]Zeta[-(3/2)-I t])/(((3/2)+I t)Cosh[π t])),{t,-Infinity,Infinity},WorkingPrecision->25,PrecisionGoal->20,AccuracyGoal->20];
WittenZetaDerivativeAt0=(1/12)(1+EulerGamma)+(3/4)Log[2Pi]-2Zeta'[-1]+IntriguingIntegral;
WittenZetaDerivativeAt0SecondFormula=Log[2π]; (* A much simplified formula proved in a 2016 paper by J. Borwein and K. Dilcher *)

K=((Sqrt[3])/(Sqrt[5π]))(X^(1/3))Exp[-(1/2560)(X^(-10))(Y^4)+WittenZetaDerivativeAt0];

Ksecondformula=((2(Sqrt[3π]))/(Sqrt[5]))(X^(1/3))Exp[-(1/2560)(X^(-10))(Y^4)];

Now let’s print the numerical values of (Subscript[A, 1]),(Subscript[A, 2]),(Subscript[A, 3]),(Subscript[A, 4]).

N[{(Subscript[A, 1]),(Subscript[A, 2]),(Subscript[A, 3]),(Subscript[A, 4])},20]

Run the next instruction to get the numerical value of the “intriguing integral” that appears in our formula for ω'(0).

IntriguingIntegral

The next instruction evaluates ω’(0).

WittenZetaDerivativeAt0

Evaluate the next command to verify that the Borwein-Dilcher formula gives numerically the same result as our formula.

N[WittenZetaDerivativeAt0SecondFormula,28]

The next two instructions output the value of the constant K, computed using each of the two equivalent formulas in the paper.

K

N[Ksecondformula,28]

4. Simplification of constants

In this section we verify the simplification of the constants (Subscript[B, 1]),(Subscript[B, 2]),(Subscript[B, 3]),(Subscript[B, 4]),(Subscript[B, 5]) that appears in section 11 of the paper. Run the code below to define the relevant constants (Subscript[μ, 1]),(Subscript[μ, 2]),(Subscript[τ, 1]),(Subscript[τ, 2]),(Subscript[τ, 3]),u,v, (Subscript[B, 1]),(Subscript[B, 2]),(Subscript[B, 3]),(Subscript[B, 4]),(Subscript[B, 5]).

(Subscript[μ, 1])=((2^(2/3))/3)((Gamma[(1/3)])^2)Zeta[(5/3)];
(Subscript[μ, 2])=(Sqrt[2π])Zeta[(1/2)]Zeta[(3/2)];

(Subscript[τ, 1])=2(X^2);
(Subscript[τ, 2])=(3/10)(X^(-1))Y;
(Subscript[τ, 3])=(3/400)(X^(-4))(Y^2);

u=(Subscript[τ, 2])/(Subscript[τ, 1]);
v=(Subscript[τ, 3])/(Subscript[τ, 1]);

(Subscript[B, 1])=(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3));
(Subscript[B, 2])=(2/3)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3))u+(Subscript[μ, 2])((Subscript[τ, 1])^(-1/2));
(Subscript[B, 3])=(2/3)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3))v+(5/9)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3))(u^2)+(1/2)(Subscript[μ, 2])((Subscript[τ, 1])^(-1/2))u;
(Subscript[B, 4])=(10/9)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3))u v+(40/81)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3))(u^3)+(1/2)(Subscript[μ, 2])((Subscript[τ, 1])^(-1/2))v+(3/8)(Subscript[μ, 2])((Subscript[τ, 1])^(-1/2))(u^2);
(Subscript[B, 5])=(5/9)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3)) (v^2)+(40/27)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3))(u^2)v+(110/243)(Subscript[μ, 1])((Subscript[τ, 1])^(-2/3))(u^4)+(3/4)(Subscript[μ, 2])((Subscript[τ, 1])^(-1/2))u v+(5/16)(Subscript[μ, 2])((Subscript[τ, 1])^(-1/2))(u^3);

In the paper it is claimed that each of (Subscript[B, 1]),(Subscript[B, 2]),(Subscript[B, 3]),(Subscript[B, 4]),(Subscript[B, 5]) is a multiple of a certain power of X times a certain power of Y by some explicit rational numbers. The next line of code computes these numbers:

{(Subscript[B, 1])/((X^2)),(Subscript[B, 2])/((X^(-1))Y),(Subscript[B, 3])/((X^(-4))(Y^2)),(Subscript[B, 4])/((X^(-7))(Y^3)),(Subscript[B, 5])/((X^(-10))(Y^4))}//Simplify

5. Numerical computation of the sequence r(n)

In this section we compute the initial values of the sequence r(n) defined section 1.1 of the paper. This is done by expanding the generating function given in equation (2) as a power series. Run the code below to define the relevant functions.

dimtable[a_]:=Table[1/2m n(m+n),{m,1,a},{n,1,a}];
irrepdims[bound_]:=Sort[Select[Flatten[Table[1/2m n (m+n),{m,1,Ceiling[Sqrt[2bound]]},{n,1,Ceiling[Sqrt[2bound]]}]],#≤bound&]];
rvalues[n_]:=Module[{dims},
dims=irrepdims[n];
CoefficientList[Series[Product[1/(1-x^dims[[j]]),{j,1,Length[dims]}],{x,0,n}],x]
];

Calling the function rvalues[n] will now compute the values r(k) for k=0,1,...,n. Try running the line below.

rvalues[100]