List of coset representatives for \(\Gamma_H(N)\) in \(\SL_2(\ZZ)\)#

class sage.modular.modsym.ghlist.GHlist(group)[source]#

Bases: SageObject

A class representing a list of coset representatives for \(\Gamma_H(N)\) in \(\SL_2(\ZZ)\).

list()[source]#

Return a list of vectors representing the cosets. Do not change the returned list!

EXAMPLES:

sage: L = sage.modular.modsym.ghlist.GHlist(GammaH(4,[])); L.list()
[(0, 1), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3)]
>>> from sage.all import *
>>> L = sage.modular.modsym.ghlist.GHlist(GammaH(Integer(4),[])); L.list()
[(0, 1), (0, 3), (1, 0), (1, 1), (1, 2), (1, 3), (2, 1), (2, 3), (3, 0), (3, 1), (3, 2), (3, 3)]
normalize(u, v)[source]#

Given a pair \((u,v)\) of integers, return the unique pair \((u', v')\) such that the pair \((u', v')\) appears in self.list() and \((u, v)\) is equivalent to \((u', v')\).

This will only make sense if \({\rm gcd}(u, v, N) = 1\); otherwise the output will not be an element of self.

EXAMPLES:

sage: sage.modular.modsym.ghlist.GHlist(GammaH(24, [17, 19])).normalize(17, 6)
(1, 6)
sage: sage.modular.modsym.ghlist.GHlist(GammaH(24, [7, 13])).normalize(17, 6)
(5, 6)
sage: sage.modular.modsym.ghlist.GHlist(GammaH(24, [5, 23])).normalize(17, 6)
(7, 18)
>>> from sage.all import *
>>> sage.modular.modsym.ghlist.GHlist(GammaH(Integer(24), [Integer(17), Integer(19)])).normalize(Integer(17), Integer(6))
(1, 6)
>>> sage.modular.modsym.ghlist.GHlist(GammaH(Integer(24), [Integer(7), Integer(13)])).normalize(Integer(17), Integer(6))
(5, 6)
>>> sage.modular.modsym.ghlist.GHlist(GammaH(Integer(24), [Integer(5), Integer(23)])).normalize(Integer(17), Integer(6))
(7, 18)