Ramification

mdsage.ramification.atkin_lehner_divisors(N)

Returns an iterator over all divisors M of N such that gcd(M, M/N) = 1.

EXAMPLES:

sage: from mdsage import *
sage: list(atkin_lehner_divisors(4*9))
[1, 4, 9, 36]
mdsage.ramification.atkin_lehner_ramification_degree(N, d)

Returns the ramification degree of X_0(N) -> X_0(N)/w_d. See: Hyperelliptic Quotients of Modular Curves X_0(N) by Masahiro FURUMOTO and Yuji HASEGAWA for correctnes. If gcd(d, N/d) != 1 it replaces d by the largest divisor of N that has still the same prime divisors as d.

INPUT:

  • N - an positive integer

  • d - an positive integer dividing N

OUTPUT:

The ramification degree of X_0(N) -> X_0(N)/w_d

EXAMPLES:

sage: from mdsage import *
sage: [(d, atkin_lehner_ramification_degree(105, d)) for d in 105.divisors()]
[(1, 0), (3, 0), (5, 8), (7, 0), (15, 0), (21, 8), (35, 16), (105, 8)]
sage: G = Gamma0(105)
sage: M = ModularSymbols(G,sign=1)
sage: S = M.cuspidal_submodule()
sage: S.dimension()
13
sage: [(d, (S.atkin_lehner_operator(d) - 1).kernel().dimension()) for d in 105.divisors()]
[(1, 13), (3, 7), (5, 5), (7, 7), (15, 7), (21, 5), (35, 3), (105, 5)]
mdsage.ramification.small_ramification(bound)

returns a dictionary of all N for such that the ramification degree of $X_0(N) o X_0(N)^+$ is small

INPUT:

  • bound (optional) - an integer up to which ramification degree to compute the levels N

OUTPUT:

  • a dictionary whose keys are ramification degrees and whose values are lists of levels N such that $X_0(N) o X_0(N)^+$ has that ramification degree.

EXAMPLES:

sage: from mdsage import *
sage: small_ramification(2)
{0: [1],
 2: [2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 16, 18, 22, 25, 28, 37, 58]}
sage: # if the following fails the data in our article is also incorrect
sage: {(k,len(v),max(v)) for k,v in small_ramification(100).items()}
{(0, 1, 1),
 (2, 18, 58),
 (4, 48, 253),
 (6, 32, 652),
 (8, 128, 1012),
 (10, 39, 1318),
 (12, 173, 2608),
 (14, 35, 2293),
 (16, 329, 4048),
 (18, 62, 5692),
 (20, 225, 5377),
 (22, 40, 6637),
 (24, 576, 10432),
 (26, 63, 11302),
 (28, 257, 13297),
 (30, 88, 14422),
 (32, 790, 18748),
 (34, 56, 18397),
 (36, 482, 22768),
 (38, 74, 30493),
 (40, 785, 30178),
 (42, 130, 29437),
 (44, 375, 34318),
 (46, 78, 47338),
 (48, 1618, 41728),
 (50, 77, 43717),
 (52, 389, 50317),
 (54, 125, 48742),
 (56, 992, 62302),
 (58, 77, 48778),
 (60, 817, 83218),
 (62, 96, 85402),
 (64, 1857, 106177),
 (66, 175, 92698),
 (68, 493, 102958),
 (70, 127, 94378),
 (72, 1963, 134773),
 (74, 104, 91228),
 (76, 506, 121972),
 (78, 170, 92458),
 (80, 2309, 120712),
 (82, 118, 151237),
 (84, 1019, 166798),
 (86, 106, 137197),
 (88, 1413, 150382),
 (90, 238, 149053),
 (92, 577, 189352),
 (94, 112, 184438),
 (96, 4289, 198958),
 (98, 132, 161302),
 (100, 844, 200722)}