Frequently Asked Questions


Question 1:

Subject: modsym.gp
   Date: Fri, 11 Feb 2000 13:48:35 -0600 (CST)
   From: Felipe Voloch 
     To: [email protected]
Hi, Can you tell me what the function modsym in modsym.gp outputs? I can guess that the first few things are the M-symbols and presumably you list relations among them and which are the basis elements and so on, but I'd like to know what is what in the output.
Thanks,
Felipe

Answer:

I'll describe the output for X0(11). We have:
? modsym(11)       // Modular symbols of weight 2 for Gamma_0(11):
%1 = [11, 
          [[0, 1, 1], 
           [1, 1, 1],      
           [1, 2, 1], 
           [1, 3, 1], 
           [1, 4, 1], 
           [1, 5, 1]], 
          [0, 1, 1, 1, 1, 1; 
           0, 2, 3, 4, 5, 6; 
           0, 0, 2, 5, 3, 4; 
           0, 0, 0, 2, 6, 3; 
           0, 0, 0, 0, 2, 5; 
           0, 0, 0, 0, 0, 2], 
          [[1, 4], 
           [1, 0, 0, 0, 0, 0; 
            0, 0, 2, 1, -1, -2]
          ], 
          [[0; 
            1], 
           Mat([0, 1])
          ]
      ]
I've formated the output so it is easier to read. What are all of these lists and matrices?
  1. First, 11 is the level.
  2. The second entry
      [[0, 1, 1], 
       [1, 1, 1],      
       [1, 2, 1], 
       [1, 3, 1], 
       [1, 4, 1], 
       [1, 5, 1]]
    
    is a list of generating Manin symbols; see, e.g., Section 2.2 of Cremona's book Algorithms for Modular Elliptic Curves, especially the section on Implementation. The Manin symbol n*(c:d) is represented by [c,d,n]; the coefficient n is 1 in the above output.
  3. The third entry
              [0, 1, 1, 1, 1, 1; 
               0, 2, 3, 4, 5, 6; 
               0, 0, 2, 5, 3, 4; 
               0, 0, 0, 2, 6, 3; 
               0, 0, 0, 0, 2, 5; 
               0, 0, 0, 0, 0, 2], 
    
    is a hash matrix used to quickly go from an M-symbol to its internal representation; this speeds up internal computations with M-symbols.
  4. The fourth item
              [[1, 4], 
               [1, 0, 0, 0, 0, 0; 
                0, 0, 2, 1, -1, -2]
              ], 
    
    give the relations that define the quotient space of modular symbols. In this example, every Manin symbol can be written as a linear combination of the 1st and 4th Manin symbols [0, 1, 1] and [1, 3, 1]. The columns of the matrix
               [1, 0, 0, 0, 0, 0; 
                0, 0, 2, 1, -1, -2]
    
    encode this data. For example, the third Manin symbol [1, 2, 1] is equivalent to 2 times [1,3,1].
  5. The first entry of the fifth item
              [[0; 
                1], 
               Mat([0, 1])
              ]
    
    encodes the kernel of the boundary map in terms of the free generators. Thus the +1 part of the homology is the one-dimensional Q-vector space generated by the second freely-generating Manin symbol [1, 3, 1]. The second matrix, which is dual to the first, is used internally to speed up computations.