Vanishing coefficients in two q-series related to Legendre-signed partitions

Taylor Daniels

Purdue University Mathematics
email: daniel84 <at> purdue <dot> edu

This notebook is a useful ‘companion’ to the paper “Vanishing coefficients in two q-series related to Legendre-signed partitions”. It documents the computational methods and tools used to derive the results in said paper.

10-Dissections of (Subscript[Xφ, 10]^4) and (Subscript[Yφ, 10]^4) (sec. 3)

Dissections of (Subscript[u, 1])(Subscript[u, 3]^†) and (Subscript[u, 1]^†)(Subscript[u, 3])

f[{{m_,n_,1}}]:=Expand[5(m^2)+m+5(n^2)+3n];

(* Use this to determine the (Subscript[v, r]) for below *)
m0=4;n0=4;mOr=m0+1;nOr=n0+2;
T = Reverse[Transpose[Table[
f[(({{m, n, 1}}))],
{m,-m0,m0},{n,-n0,n0}]]];
Grid[T/.{x_/;Mod[x,10]==s->Style[x,Blue,Bold],x_/;Mod[x,10]==s+5->Style[x,Red,Bold]},
Dividers->{{mOr->Black},{nOr->Black}}]

Clear[v,B,b];
(Subscript[v, 0])=(({{0, 0, 1}}));(Subscript[v, 1])=(({{1, 0, 1}}));(Subscript[v, 2])=(({{0, -1, 1}}));(Subscript[v, 3])=(({{0, 1, 1}}));(Subscript[v, 4])=(({{-1, 0, 1}}));
b=(({{2, 1, 0}, {-1, 2, 0}}));
Do[(Subscript[B, r])=ArrayFlatten[(({{b}, {(Subscript[v, r])}}))];,{r,0,4}]

(Subscript[u, 1])(Subscript[u, 3]^†)

(Subscript[u, 1])(Subscript[u, 3]^†)=∑(((-1))^m)(q^(f((m,n,1)))), therefore we want the first component of ((μ,ν,1)).(Subscript[B, r]).

(* Used on page 5 to derive the formula following (3.16) *)
TableForm[Table[{r,(q^(f[(Subscript[v, r])])),(((-1))^(PolynomialMod[({{μ,ν,1}}.(Subscript[B, r]))[[1,1]],2])),f[{{μ,ν,1}}.(Subscript[B, r])]-f[(Subscript[v, r])]},{r,0,4}]]

(Subscript[u, 1]^†)(Subscript[u, 3])

(Subscript[u, 1]^†)(Subscript[u, 3])=∑(((-1))^n)(q^(f((m,n,1)))), therefore we want the second component of ((μ,ν,1)).(Subscript[B, r]).

TableForm[Table[{r,(q^(f[(Subscript[v, r])])),(((-1))^(PolynomialMod[({{μ,ν,1}}.(Subscript[B, r]))[[1,2]],2])),f[{{μ,ν,1}}.(Subscript[B, r])]-f[(Subscript[v, r])]},{r,0,4}]]

Dissections of (Subscript[u, 2])(Subscript[u, 4]^†) and (Subscript[u, 2]^†)(Subscript[u, 4])

(* NOTE: The inputs here are "formatted" vectors, made using Ctrl with the "," key. Functionally they are no different that writing {{m,n,1}} which represents a row vector. *)

g[(({{m_, n_, 1}}))]:=Expand[5(m^2)+2m+5(n^2)+4n];

(* Use this to determine the (Subscript[v, r]) for below *)
m0=6;n0=6;mOr=m0+1;nOr=n0+2;
s=0;
T = Reverse[Transpose[Table[
g[(({{m, n, 1}}))],
{m,-m0,m0},{n,-n0,n0}]]];
Grid[T/.{x_/;Mod[x,10]==s->Style[x,Blue,Bold],x_/;Mod[x,10]==s+5->Style[x,Red,Bold]},
Dividers->{{mOr->Black},{nOr->Black}}]

Clear[v,B,b];
(Subscript[v, 0])=(({{0, 0, 1}}));(Subscript[v, 1])=(({{0, -1, 1}}));(Subscript[v, 2])=(({{-1, 1, 1}}));(Subscript[v, 3])=(({{-1, 0, 1}}));
(Subscript[v, 4])=(({{-1, -1, 1}}));(Subscript[v, 5])=(({{-1, -2, 1}}));(Subscript[v, 6])=(({{1, 1, 1}}));(Subscript[v, 7])=(({{1, 0, 1}}));
(Subscript[v, 8])=(({{1, -1, 1}}));(Subscript[v, 9])=(({{0, 1, 1}}));
b=(({{3, 1, 0}, {-1, 3, 0}}));
Do[(Subscript[B, r])=ArrayFlatten[(({{b}, {(Subscript[v, r])}}))];,{r,0,9}]

(Subscript[u, 2])(Subscript[u, 4]^†)

(* This gives the table on page 6 *)
Table[{r,(q^(g[(Subscript[v, r])])),(((-1))^(PolynomialMod[((({{μ, ν, 1}})).(Subscript[B, r]))[[1,1]],2])),g[(({{μ, ν, 1}})).(Subscript[B, r])]-g[(Subscript[v, r])]},{r,0,9}]//TableForm

Checks

The functions below can be used to empirically verify the 10-dissections of Lemma 3.1 up to a given order of q. Below we verify that formulae (3.10)—(3.13) are correct up to (at least) (q^5000).

QP::usage = "Gives ((Subscript[z, 1]);q)_∞((Subscript[z, 2]);q)_∞⋯((Subscript[z, k]);q)_∞ for (Subscript[z, i]) ∈ zList.";
(* The following definition allows for one to write, for example, QP[{q,(q^2),(q^4)},(q^5)] for QP[q,(q^5)]QP[(q^2),(q^5)]QP[(q^4),(q^5)] in place of writing out QPochhammer multiple times. *)
QP[zList_,q_]:=Product[QPochhammer[x,q],{x,zList}];

φ[q_]:=QP[{q},q];
u[k_,q_]:=QP[{(q^(5-k)),(q^(5+k)),(q^10)},(q^10)];
u†[k_,q_]:=QP[{-(q^(5-k)),-(q^(5+k)),(q^10)},(q^10)];
U[k_,q_]:=QP[{(q^(50-10k)),(q^(50+10k)),(q^100)},(q^100)];
R[k_,q_]:=((QP[{(q^k),(q^(4k))},(q^(5k))])/(QP[{(q^(2k)),(q^(3k))},(q^(5k))]));
(* The following allows us to write the formulae the way they appear in the paper and have that converted to the definitions above. *)
SymboltoFunctions={(Subscript[u, i_])->u[i,q],(SuperDagger[((Subscript[u, i_]))])->u†[i,q],(Subscript[U, i_])->U[i,q],(Subscript[φ, i_])->φ[(q^i)],(Subscript[R, i_])->R[i,q],Φ->(((φ[(q^50)])^2)/(φ[(q^100)]))};

(* Formula (3.11) *)
Series[(Subscript[u, 1])(Subscript[u, 3]^†)-((Subscript[U, 1])+(q^2)(Subscript[U, 1])(Subscript[R, 10])-(q^4)(Subscript[U, 3])-2(q^6)(Subscript[U, 2])(Subscript[U, 3])(Φ^(-1))+0(q^8))Φ/.SymboltoFunctions,{q,0,5000}]

(* Formula (3.12) *)
Series[(Subscript[u, 1]^†)(Subscript[u, 3])-((Subscript[U, 1])-(q^2)(Subscript[U, 3])(Subscript[R, 10]^(-1))+(q^4)(Subscript[U, 3])+0(q^6)-2(q^8)(Subscript[U, 1])(Subscript[U, 4])(Φ^(-1)))Φ/.SymboltoFunctions,{q,0,5000}]

(* Formula (3.12) *)
Series[((Subscript[U, 1]^2)+q (Subscript[U, 2])Φ+0(q^2)-(q^3)(Subscript[U, 2]^2)-(q^4)(Subscript[U, 1])(Subscript[U, 3])-(q^15)(Subscript[U, 4]^2)+0(q^6)-(q^7)(Subscript[U, 4])Φ-(q^8)(Subscript[U, 3]^2)+(q^9)(Subscript[U, 2])(Subscript[U, 4]))-(Subscript[u, 2])(Subscript[u, 4]^†)/.SymboltoFunctions,{q,0,5000}]

(* Formula for (3.13) *)
Series[((Subscript[U, 1]^2)-q (Subscript[U, 2])Φ+0(q^2)+(q^3)(Subscript[U, 2]^2)-(q^4)(Subscript[U, 1])(Subscript[U, 3])+(q^15)(Subscript[U, 4]^2)+0(q^6)+(q^7)(Subscript[U, 4])Φ-(q^8)(Subscript[U, 3]^2)-(q^9)(Subscript[U, 2])(Subscript[U, 4]))-(Subscript[u, 2]^†)(Subscript[u, 4])/.SymboltoFunctions,{q,0,5000}]

Symbolic Manipulations (sec. 4 and sec. 5)

Symbolic Definitions and Functions

(* These apply the first and second equations in (4.7), respectively, by essentially 'mutliplying by 1'. The names mean "R shift" and "R inverse shift".*)
RS[ex_]:=Expand[ex((R^(-1))(α^(-1))(Φ^(-1)))(α β-(q^10)γ δ)];
iRS[ex_]:=Expand[ex(R (γ^(-1))(Φ^(-1)))(α β+(q^10)γ δ)];

(* Mathematica often reorders terms when it displays them, so this function puts the monomials in order of increasing powers of R, with terms with Φ at the end. 
It is not necessary to use this for computations,nor can its output be used as such since the only way I know for Mathematica to display negative powers (R^(-k)) is to print them as strings. 
Rather, this function makes it easier to compare the output terms to those in the paper. *)
RIncOrder[ex_]:=Module[{exNoF,exF,exANoF,exAF,clNoF,clF},
exNoF=ex/.{Φ->0};
exF=ex-exNoF;
exANoF=Expand[(exNoF/.{R->a R})*(a^(Abs[Exponent[exNoF,R,Min]]))];
exAF=Expand[(exF/.{R->a R})*(a^(Abs[Exponent[exF,R,Min]]))];
clNoF=DeleteCases[CoefficientList[exANoF,a],0];
clF=DeleteCases[CoefficientList[exAF,a],0];
Row[{
Replace[clNoF/.{Power[R,i_]->StringForm["(R^(``))",i]}/.{R->StringForm["R",Null]},List[x__]->HoldForm@Plus[x]],
Replace[clF/.{Power[R,i_]->StringForm["(R^(``))",i]}/.{R->StringForm["R",Null]},List[x__]->HoldForm@Plus[x]]}]
]

(* This is ((Subscript[φ, 10]^6)/((Subscript[φ, 2])(Subscript[φ, 50]^5))), per eqn. (3.3) *)
Clear[R];
(Subscript[J, 2])=(R^(-4))+(q^2) (R^(-3))+2(q^4)(R^(-2))+3(q^6)(R^(-1))+5(q^8)-3(q^10)(R^1)+2(q^12)(R^2)-(q^14)(R^3)+(q^16)(R^4);

(* eqns. (4.3)—(4.6) *)
u1u3†=((Subscript[U, 1])+(q^2)(Subscript[U, 1])R-(q^4)(Subscript[U, 3])-2(q^6)(Subscript[U, 2])(Subscript[U, 3])(Φ^(-1))+0(q^8))Φ;
u1†u3=((Subscript[U, 1])-(q^2) (Subscript[U, 3])(R^(-1))+(q^4)(Subscript[U, 3])+0(q^6)-2(q^8)(Subscript[U, 1])(Subscript[U, 4])(Φ^(-1)))Φ;

u2u4†=(Subscript[U, 1]^2)+q (Subscript[U, 2])Φ+0(q^2)-(q^3)(Subscript[U, 2]^2)-(q^4)(Subscript[U, 1])(Subscript[U, 3])-(q^15)(Subscript[U, 4]^2)+0(q^6)-(q^7)(Subscript[U, 4])Φ-(q^8)(Subscript[U, 3]^2)+(q^9)(Subscript[U, 2])(Subscript[U, 4]);
u2†u4=(Subscript[U, 1]^2)-q (Subscript[U, 2])Φ+0(q^2)+(q^3)(Subscript[U, 2]^2)-(q^4)(Subscript[U, 1])(Subscript[U, 3])+(q^15)(Subscript[U, 4]^2)+0(q^6)+(q^7)(Subscript[U, 4])Φ-(q^8)(Subscript[U, 3]^2)-(q^9)(Subscript[U, 2])(Subscript[U, 4]);

(* eqns. (4.7) *)
UtoAlpha={(Subscript[U, 1])->α,(Subscript[U, 2])->β,(Subscript[U, 3])->γ,(Subscript[U, 4])->δ};
(* eqn. (4.8) *)
RtoAlpha={R->((α δ)/(β γ))};

(Subscript[𝔛, [2]])=0

(* (4.10) *)
(Subscript[𝔛, 2])=Expand[(R^(-2))Cancel[(1/(q^2))Coefficient[(Expand[(Subscript[J, 2])*u1†u3*u2u4†/.{q->q z}])/.{(z^(i_))->(z^(Mod[i,10]))},(z^2)]]]/.UtoAlpha
RIncOrder[(Subscript[𝔛, 2])]

(* (4.11) *)
X2RShift=Expand[2 (q^10) (α^2) γ δ (R^(-6))-4 (q^10) (α^3) δ (R^(-4))+6 (q^20)α (γ^2) δ (R^(-3))-6 (q^20) (α^2) γ δ (R^(-1))+2 (q^20) (α^3) δ R+2 (q^30) α (γ^2) δ (R^2)+iRS[-(α^2) γ Φ (R^(-7))]+(α^3) Φ (R^(-5))+iRS[-(q^10) α (γ^2) Φ (R^(-4))+3 (q^10) (α^2) γ Φ (R^(-2))+5 (q^20) (γ^3) Φ (R^(-1))]+2 (q^10) (α^3) Φ+RS[3 (q^20) α (γ^2) Φ R]]
RIncOrder[X2RShift]

(* An intermediate step between (4.11) and (4.12) which multiplies by (R^6) *)
Expand[X2RShift*(R^6)]
RIncOrder[Expand[X2RShift*(R^6)]]

(* (4.12) *)
Expand[-(α^3) β+(q^10) (α^2) γ δ-4 (q^10) (α^3) δ (R^2)-(q^10) (α^2) β γ (R^3)+5 (q^20) α (γ^2) δ (R^3)+3 (q^10) (α^3) β (R^5)-3 (q^20) (α^2) γ δ (R^5)+8 (q^20) α β (γ^2)(R^6)+2 (q^30) (γ^3) δ (R^6)+2 (q^20) (α^3) δ (R^7)+2 (q^30) α (γ^2) δ (R^8)+RS[R (α^3) Φ+2 (q^10) (R^6) (α^3) Φ]]

(* Using R=(αδ)/(βγ) and simplifying the previous. *)
FullSimplify[5 (q^10) (R^5) (α^3) β-(q^10) (R^3) (α^2) β γ+8 (q^20) (R^6) α β (γ^2)-4 (q^10) (R^2) (α^3) δ+2 (q^20) (R^7) (α^3) δ-5 (q^20) (R^5) (α^2) γ δ+5 (q^20) (R^3) α (γ^2) δ+2 (q^30) (R^8) α (γ^2) δ+2 (q^30) (R^6) (γ^3) δ/.RtoAlpha]

(Subscript[𝔜, [6]])=0

(Subscript[𝔜, 6])=Expand[(R^(-4))Cancel[(1/(q^6))Coefficient[(Expand[(Subscript[J, 2])*u1u3†*u2†u4/.{q->q z}])/.{(z^(i_))->(z^(Mod[i,10]))},(z^6)]]]/.UtoAlpha
RIncOrder[Expand[(Subscript[𝔜, 6])]]

(* (4.13) *)
Y6RShift=-2 (α^2) β γ (R^(-8))+2 (q^10) β (γ^3)(R^(-7))+6 (q^10) α β (γ^2)(R^(-5))+6 (q^10) (α^2) β γ (R^(-3))+4 (q^20) β (γ^3)(R^(-2))+2 (q^20) α β (γ^2)+5 (α^3) Φ (R^(-5))+iRS[-3 (α^2) γ Φ (R^(-7))+2 (q^10) (γ^3) Φ (R^(-6))-3 (q^10) α (γ^2) Φ (R^(-4))-(q^10) (α^2) γ Φ (R^(-2))-(q^20) (γ^3) Φ (R^(-1))]+RS[-(q^20) α (γ^2) Φ R]
RIncOrder[Y6RShift]

(* Multiplying by (R^6) *)
Expand[Y6RShift*(R^6)]
RIncOrder[Expand[Y6RShift*(R^6)]]

(* Applying (4.7) to the above *)
-2 (α^2) β γ (R^(-2))+2 (q^10) β (γ^3)(R^(-1))-3 (α^3) β-3 (q^10) (α^2) γ δ+8 (q^10) α β (γ^2)R+2 (q^20) (γ^3) δ R+3 (q^10) (α^2) β γ (R^3)-3 (q^20) α (γ^2) δ (R^3)+4 (q^20) β (γ^3)(R^4)-(q^10) (α^3) β (R^5)-(q^20) (α^2) γ δ (R^5)+RS[5 (α^3) Φ R]

FullSimplify[2 (α^3) β-(q^10) (R^5) (α^3) β-((2 (α^2) β γ)/(R^2))+3 (q^10) (R^3) (α^2) β γ+8 (q^10) R α β (γ^2)+((2 (q^10) β (γ^3))/R)+4 (q^20) (R^4) β (γ^3)-8 (q^10) (α^2) γ δ-(q^20) (R^5) (α^2) γ δ-3 (q^20) (R^3) α (γ^2) δ+2 (q^20) R (γ^3) δ/.RtoAlpha]

(Subscript[𝔛, [0]])-(Subscript[𝔜, [0]])=0

YUProd=u1†u3*u2u4†;
XUProd=u1u3†*u2†u4;

(* (Subscript[𝔛, 0])-(Subscript[𝔜, 0]) *)
W0=(Expand[Expand[((Subscript[J, 2])(YUProd-XUProd))/.{q->q z}]/.{(z^(i_))->(z^(Mod[i,10]))}]/.{z->0})/.UtoAlpha
RIncOrder[W0]

(* It is convenient to discard the common factor of (q^10) present after using (4.7) *)
W0RShift=Expand[Cancel[(-2 (q^10) α β (γ^2)(R^(-4))-2 (q^10) (α^3) δ (R^(-3))+4 (q^10) (α^2) β γ (R^(-2))+4 (q^20) α (γ^2) δ (R^(-2))-6 (q^20) β (γ^3)(R^(-1))+10 (q^20) (α^2) γ δ+6 (q^20) α β (γ^2)R-4 (q^20) (α^3) δ (R^2)-2 (q^20) (α^2) β γ (R^3)-2 (q^30) α (γ^2) δ (R^3)-2 (q^30) β (γ^3)(R^4)+iRS[(q^10) (γ^3) Φ (R^(-5))+(q^10) α (γ^2) Φ (R^(-3))+3 (q^10) (α^2) γ Φ (R^(-1))]-13 (q^20) (γ^3) Φ+RS[-5 (q^10) (α^3) Φ R-8 (q^20) α (γ^2) Φ (R^2)+(q^20) (α^2) γ Φ (R^4)])/(q^10)]]
RIncOrder[W0RShift]

(* This is the previous line * (R^(-1)) *)
(* Note: This code returns an "indeterminant expression" error; This is expected since the input to RIncOrder does not have any terms with Φ on them. Rather than over-engineer the RIncOrder function, we just leave it. *)
W0Temp=Expand[-α β (γ^2)(R^(-5))+(q^10) (γ^3) δ (R^(-5))-2 (α^3) δ (R^(-4))+5 (α^2) β γ (R^(-3))+5 (q^10) α (γ^2) δ (R^(-3))-6 (q^10) β (γ^3)(R^(-2))-2 (α^3) β (R^(-1))+18 (q^10) (α^2) γ δ (R^(-1))-2 (q^10) α β (γ^2)+8 (q^20)(γ^3) δ-4 (q^10) (α^3) δ R-(q^10) (α^2) β γ (R^2)-3 (q^20) α (γ^2) δ (R^2)-2 (q^20) β (γ^3)(R^3)+iRS[-13 (q^10) (γ^3) Φ (R^(-1))]]
RIncOrder[W0Temp]

FullSimplify[W0Temp/.Ralpha]

(Subscript[𝔛, [8]])+(Subscript[𝔜, [8]])=0

Z8=Expand[Cancel[(1/(q^8))Coefficient[Expand[((Subscript[J, 2])(XUProd+YUProd))/.{q-> q z}]/.{(z^(i_))->(z^(Mod[i,10]))},(z^8)]]]/.UtoAlpha
RIncOrder[Z8]

Z8Temp=-2 (α^3) δ (R^(-4))-2 (α^2) β γ (R^(-3))+2 (q^10) α (γ^2) δ (R^(-3))+4 (q^10) β (γ^3)(R^(-2))+6 (q^10) (α^2) γ δ (R^(-1))+10 (q^10) α β (γ^2)+6 (q^10)(α^3) δ R-4 (q^10) (α^2) β γ (R^2)+4 (q^20) α (γ^2) δ (R^2)-2 (q^20) β (γ^3)(R^3)+2 (q^20) (α^2) γ δ (R^4)+iRS[-α (γ^2) Φ (R^(-4))-8 (α^2) γ Φ (R^(-2))+5 (q^10) (γ^3) Φ (R^(-1))]+13 (α^3) Φ+RS[3 (q^10) α (γ^2) Φ R-(q^10) (α^2) γ Φ (R^3)+(q^10) (α^3) Φ (R^5)]
RIncOrder[Z8Temp]

(* Multiply the last line by R *)
Z8Temp2=-2 (α^3) δ (R^(-3))-3 (α^2) β γ (R^(-2))+(q^10) α (γ^2) δ (R^(-2))+4 (q^10) β (γ^3)(R^(-1))-8 (α^3) β-2 (q^10) (α^2) γ δ+18 (q^10) α β (γ^2)R+2 (q^20) (γ^3) δ R+6 (q^10) (α^3) δ (R^2)-5 (q^10) (α^2) β γ (R^3)+5 (q^20) α (γ^2) δ (R^3)-2 (q^20) β (γ^3)(R^4)+(q^10) (α^3) β (R^5)+(q^20) (α^2) γ δ (R^5)+RS[13 (α^3) Φ R]
RIncOrder[Z8Temp2]

FullSimplify[Z8Temp2/.RtoAlpha]

Apart[(((5 (β^5) (γ^5)+2 (q^10) (α^2) (β^2) (γ^3) (δ^3)+(q^10) (α^5) (δ^5)))/(α (β^5) (γ^5) (δ^2)))]