Theta Series

857 days ago by jimlb

The following matrices are the ones we will need to use. 

This worksheet is to calculate the generators as given in the Aoki-Ibukiyama paper.   You probably want less terms below so they are easier to read if you want to do comparisons.  This just shows how to do the easiest ones; one still needs $\theta_4$ and $\chi_{14}$.  Note that $\theta_4$ and $\chi_{14}$ are cusp forms ($\chi_{14}$ from the Aoki-Ibukiyama paper and $\theta_{4}$ from an earlier paper on level 3), but we will still need them for the expansion.

A2=matrix([[2,1],[1,2]]);A2 
       
E6=matrix([[2,-1,0,0,0,0],[-1,2,-1,0,0,0],[0,-1,2,-1,0,-1],[0,0,-1,2,-1,0],[0,0,0,-1,2,0],[0,0,-1,0,0,2]]);E6 
       
E6star=3*E6.inverse();E6star 
       
S4=matrix([[1,0,3/2,0],[0,1,0,3/2],[3/2,0,3,0],[0,3/2,0,3]]);S4 
       
var('q1','q2','q3', 'z','tau','w') 
       
A2 = QuadraticForm(ZZ,2,[2,1,2]);A2 
       
Quadratic form in 2 variables over Integer Ring with coefficients: 
[ 2 1 ]
[ * 2 ]
Quadratic form in 2 variables over Integer Ring with coefficients: 
[ 2 1 ]
[ * 2 ]
alpha1=A2.theta_series_degree_2(100);alpha1 
       
{(0, 0, 0): 1,
 (0, 0, 1): 0,
 (0, 0, 2): 4,
 (0, 0, 3): 2,
 (0, 0, 4): 0,
 (0, 0, 5): 2,
 (0, 0, 6): 0,
 (0, 0, 7): 0,
 (0, 0, 8): 8,
 (0, 0, 9): 0,
 (0, 0, 10): 0,
 (0, 0, 11): 0,
 (0, 0, 12): 6,
 (0, 0, 13): 0,
 (0, 0, 14): 0,
 (0, 0, 15): 0,
 (0, 0, 16): 0,
 (0, 0, 17): 4,
 (0, 0, 18): 4,
 (0, 0, 19): 0,
 (0, 0, 20): 6,
 (0, 0, 21): 0,
 (0, 0, 22): 0,
 (0, 0, 23): 4,
 (0, 0, 24): 0,
 (0, 0, 25): 0,
 (2, 1, 2): 4,
 (2, 2, 8): 8,
 (3, 0, 5): 4}
{(0, 0, 0): 1,
 (0, 0, 1): 0,
 (0, 0, 2): 4,
 (0, 0, 3): 2,
 (0, 0, 4): 0,
 (0, 0, 5): 2,
 (0, 0, 6): 0,
 (0, 0, 7): 0,
 (0, 0, 8): 8,
 (0, 0, 9): 0,
 (0, 0, 10): 0,
 (0, 0, 11): 0,
 (0, 0, 12): 6,
 (0, 0, 13): 0,
 (0, 0, 14): 0,
 (0, 0, 15): 0,
 (0, 0, 16): 0,
 (0, 0, 17): 4,
 (0, 0, 18): 4,
 (0, 0, 19): 0,
 (0, 0, 20): 6,
 (0, 0, 21): 0,
 (0, 0, 22): 0,
 (0, 0, 23): 4,
 (0, 0, 24): 0,
 (0, 0, 25): 0,
 (2, 1, 2): 4,
 (2, 2, 8): 8,
 (3, 0, 5): 4}
Alpha1 
       
Alpha1=0; for j in [0..28]: Alpha1=Alpha1 + alpha1.items()[j][1]*q1^(alpha1.items()[j][0][0])*q2^(alpha1.items()[j][0][1])*q3^(alpha1.items()[j][0][2]) 
       

Since $\chi_{14}$ involves derivatives, it is probably best to encode these as functions with exponentials rather than formal $q$-series. 

Alpha1exp=0; for j in [0..28]: Alpha1exp=Alpha1exp + alpha1.items()[j][1]*e^(2*pi*i*z*alpha1.items()[j][0][0])*e^(2*pi*i*tau*alpha1.items()[j][0][1])*e^(2*pi*i*w*alpha1.items()[j][0][2]) 
       
Alpha1exp;Alpha1exp.derivative(z,1); 
       

E6=QuadraticForm(ZZ,6,[2,-1,0,0,0,0,2,-1,0,0,0,2,-1,0,-1,2,-1,0,2,0,2]);E6 
       
Quadratic form in 6 variables over Integer Ring with coefficients: 
[ 2 -1 0 0 0 0 ]
[ * 2 -1 0 0 0 ]
[ * * 2 -1 0 -1 ]
[ * * * 2 -1 0 ]
[ * * * * 2 0 ]
[ * * * * * 2 ]
Quadratic form in 6 variables over Integer Ring with coefficients: 
[ 2 -1 0 0 0 0 ]
[ * 2 -1 0 0 0 ]
[ * * 2 -1 0 -1 ]
[ * * * 2 -1 0 ]
[ * * * * 2 0 ]
[ * * * * * 2 ]
E6star=QuadraticForm(ZZ,6,[4,5,6,4,2,3,10,12,8,4,6,18,12,6,9,10,5,6,4,3,6]);E6star 
       
Quadratic form in 6 variables over Integer Ring with coefficients: 
[ 4 5 6 4 2 3 ]
[ * 10 12 8 4 6 ]
[ * * 18 12 6 9 ]
[ * * * 10 5 6 ]
[ * * * * 4 3 ]
[ * * * * * 6 ]
Quadratic form in 6 variables over Integer Ring with coefficients: 
[ 4 5 6 4 2 3 ]
[ * 10 12 8 4 6 ]
[ * * 18 12 6 9 ]
[ * * * 10 5 6 ]
[ * * * * 4 3 ]
[ * * * * * 6 ]
thetaE6=E6.theta_series_degree_2(100);thetaE6 
       
thetaE6.items()[102] 
       
ThetaE6=0; for j in [0..102]: ThetaE6=ThetaE6 + thetaE6.items()[j][1]*q1^(thetaE6.items()[j][0][0])*q2^(thetaE6.items()[j][0][1])*q3^(thetaE6.items()[j][0][2]) 
       
ThetaE6 
       
thetaE6star=E6star.theta_series_degree_2(120);thetaE6star 
       
thetaE6star.items()[30] 
       
ThetaE6star=0; for j in [0..30]: ThetaE6star=ThetaE6star + thetaE6star.items()[j][1]*q1^(thetaE6star.items()[j][0][0])*q2^(thetaE6star.items()[j][0][1])*q3^(thetaE6star.items()[j][0][2]) 
       
ThetaE6star; 
       
Beta3 = ThetaE6 - 10*Alpha1^3 + 9*ThetaE6star; beta3.expand() 
       
Delta3=ThetaE6 - 9*ThetaE6star; Delta3.expand() 
       
var('x1','x2','x3','x4','y1','y2','y3','y4'); 
       
X=matrix([[x1],[x2],[x3],[x4]]);Y=matrix([[y1],[y2],[y3],[y4]]);Y 
       
Q=matrix([[(X.transpose()*S4*X), X.transpose()*S4*Y],[Y.transpose()*S4*X, Y.transpose()*S4*Y]]);Q 
       
c=x1*y3-x3*y1+x2*y4-y2*x4;c;d=x1*y4-y1*x4+x3*y2-y3*x2+x1*y2-y1*x2;d 
       

Z=matrix([[tau,z],[z,w]]);Z 
       
j=1 Theta4=0; for x1 in [-j..j]: for x2 in [-j..j]: for x2 in [-j..j]: for x3 in [-j..j]: for x4 in [-j..j]: for y1 in [-j..j]: for y2 in [-j..j]: for y3 in [-j..j]: for y4 in [-j..j]: Theta4 = Theta4 + ((x1*y3-x3*y1+x2*y4-y2*x4)^2 - (x1*y4-y1*x4+x3*y2-y3*x2+x1*y2-y1*x2)^2); Q1=(matrix([[x1],[x2],[x3],[x4]]).transpose()*S4*matrix([[x1],[x2],[x3],[x4]])) 
       
*e^(2*pi*i*(matrix([[(matrix([[x1],[x2],[x3],[x4]]).transpose()*S4*matrix([[x1],[x2],[x3],[x4]])), matrix([[x1],[x2],[x3],[x4]]).transpose()*S4*matrix([[y1],[y2],[y3],[y4]])],[matrix([[y1],[y2],[y3],[y4]]).transpose()*S4*matrix([[x1],[x2],[x3],[x4]]), matrix([[y1],[y2],[y3],[y4]]).transpose()*S4*matrix([[y1],[y2],[y3],[y4]])]])*Z).trace())) 
       
for x1 in [-2..2]: for x2 in [-2..2]: for x3 in [-2..2]: for x4 in [-2..2]: for y1 in [-2..2]: for y2 in [-2..2]: for y3 in [-2..2]: for y4 in [-2..2]: (c^2-d^2) 
       
WARNING: Output truncated!  
full_output.txt































































...











































^C
Traceback (click to the left of this block for traceback)
...
__SAGE__
WARNING: Output truncated!  
full_output.txt































































...











































^C
Traceback (most recent call last):                            for y3 in [-2..2]:
  File "", line 1, in <module>
    
  File "/tmp/tmpjK1XTI/___code___.py", line 3, in <module>
    exec compile(u'for x1 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n    for x2 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n        for x3 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n            for x4 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n                for y1 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n                    for y2 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n                        for y3 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n                            for y4 in (ellipsis_range(-_sage_const_2 ,Ellipsis,_sage_const_2 )):\n                                (c**_sage_const_2 -d**_sage_const_2 )
  File "", line 9, in <module>
    
  File "/usr/local/sage-6.10/local/lib/python2.7/site-packages/sage/repl/rich_output/display_manager.py", line 746, in displayhook
    return self._backend.displayhook(plain_text, rich_output)
  File "/usr/local/sage-6.10/local/lib/python2.7/site-packages/sage/repl/rich_output/backend_base.py", line 538, in displayhook
    return self.display_immediately(plain_text, rich_output)
  File "/usr/local/sage-6.10/local/lib/python2.7/site-packages/sage/repl/rich_output/backend_sagenb.py", line 368, in display_immediately
    print(rich_output.mathjax())
  File "sage/ext/interrupt/interrupt.pyx", line 203, in sage.ext.interrupt.interrupt.sage_python_check_interrupt (/usr/local/sage-6.10/src/build/cythonized/sage/ext/interrupt/interrupt.c:1891)
  File "sage/ext/interrupt/interrupt.pyx", line 88, in sage.ext.interrupt.interrupt.sig_raise_exception (/usr/local/sage-6.10/src/build/cythonized/sage/ext/interrupt/interrupt.c:925)
KeyboardInterrupt
__SAGE__