examples
system:sage

<p style="text-align: center;"><span style="font-size: large;"><strong>sage days 16</strong></span></p>
<p style="text-align: center;">22 - 27 June, Barcelona</p>

<p><strong>Cusps over number fields</strong></p>

<p>The space of cusps over a number field $k$:</p>

{{{id=0|
k.<a> = NumberField(x^2 + 5)
kCusps = NFCusps(k); kCusps
///



Set of all cusps of Number Field in a with defining polynomial x^2 + 5
}}}

{{{id=4|
kCusps is NFCusps(k)
///



True
}}}

{{{id=5|
kCusps.number_field()
///



Number Field in a with defining polynomial x^2 + 5
}}}

<p>Define a cusp over a number field:</p>

{{{id=6|
NFCusp(k, a, 2/(a+1))
///



Cusp [a - 5: 2] of Number Field in a with defining polynomial x^2 + 5
}}}

{{{id=8|
kCusps((a,2))
///



Cusp [a: 2] of Number Field in a with defining polynomial x^2 + 5
}}}

{{{id=9|
kCusps(oo)
///



Infinity
}}}

<p>What can we do with a cusp?</p>

{{{id=10|
kCusps((3,0)).is_infinity()
///



True
}}}

{{{id=12|
alpha = NFCusp(k, 3, 1/a + 2); alpha
///



Cusp [a + 10: 7] of Number Field in a with defining polynomial x^2 + 5
}}}

{{{id=13|
alpha.numerator()
///



a + 10
}}}

{{{id=14|
alpha.denominator()
///



7
}}}

{{{id=15|
alpha.apply([[0,1],[-1,0]])
///



Cusp [7: -a - 10] of Number Field in a with defining polynomial x^2 + 5
}}}

{{{id=16|
alpha.ideal()
///



Fractional ideal (7, a + 3)
}}}

{{{id=17|
alpha.ABmatrix()
///



[ a + 10 3*a - 1]
[      7     2*a]
}}}

<p>We can check equivalence under $\Gamma_0(N)$ action:</p>

{{{id=18|
N = k.ideal(3)
///
}}}

{{{id=20|
alpha.is_Gamma0_equivalent(kCusps(oo), N)
///



False
}}}

{{{id=21|
beta = kCusps((3,a + 1)); beta
///



Cusp [3: a + 1] of Number Field in a with defining polynomial x^2 + 5
}}}

{{{id=22|
alpha.is_Gamma0_equivalent(beta, N)
///



True
}}}

{{{id=23|
bool, M = alpha.is_Gamma0_equivalent(beta, N, Transformation=True); M
///



[   a + 3 -2*a - 3]
[   a - 2   -a + 4]
}}}

{{{id=24|
alpha.apply(M) == beta
///



True
}}}

<p>We can list representatives for $\Gamma_0(N)$ - equivalence classes of cusps:</p>

{{{id=25|
Gamma0_NFCusps(N)
///



[Cusp [0: 1] of Number Field in a with defining polynomial x^2 + 5, Cusp [1: 3] of Number Field in a with defining polynomial x^2 + 5, Cusp [1: -a + 8] of Number Field in a with defining polynomial x^2 + 5, Cusp [1: 2*a + 7] of Number Field in a with defining polynomial x^2 + 5, Cusp [164*a - 737: 6*a - 11] of Number Field in a with defining polynomial x^2 + 5, Cusp [-529*a + 1587: 18*a - 33] of Number Field in a with defining polynomial x^2 + 5, Cusp [-47*a + 8: a + 4] of Number Field in a with defining polynomial x^2 + 5, Cusp [73*a - 170: 2*a + 1] of Number Field in a with defining polynomial x^2 + 5]
}}}

{{{id=27|
for c in Gamma0_NFCusps(N):
    print c
///



Cusp [0: 1] of Number Field in a with defining polynomial x^2 + 5
Cusp [1: 3] of Number Field in a with defining polynomial x^2 + 5
Cusp [1: -a + 8] of Number Field in a with defining polynomial x^2 + 5
Cusp [1: 2*a + 7] of Number Field in a with defining polynomial x^2 + 5
Cusp [164*a - 737: 6*a - 11] of Number Field in a with defining polynomial x^2 + 5
Cusp [-529*a + 1587: 18*a - 33] of Number Field in a with defining polynomial x^2 + 5
Cusp [-47*a + 8: a + 4] of Number Field in a with defining polynomial x^2 + 5
Cusp [73*a - 170: 2*a + 1] of Number Field in a with defining polynomial x^2 + 5
}}}

{{{id=28|
len(Gamma0_NFCusps(N)) == sum([len(list((d+N/d).invertible_residues_mod(k.unit_group().gens()))) for d in divisors(N)])*k.class_number()
///



True
}}}

<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>M-symbols over number fields</strong></p>

{{{id=29|
k.<a> = NumberField(x^3 + 11)
N = k.ideal(5)
///
}}}

{{{id=31|
P = P1NFList(N); P
///



The projective line over the ring of integers modulo Fractional ideal (5)
}}}

{{{id=32|
len(P)
///



156
}}}

{{{id=33|
N = k.ideal(a+1)
P = P1NFList(N)
///
}}}

{{{id=34|
for p in P.list():
    print p
///



M-symbol (-4*a^2: -3*a^2) of level Fractional ideal (a + 1)
M-symbol (-4*a^2: -a^2) of level Fractional ideal (a + 1)
M-symbol (-4*a^2: a^2) of level Fractional ideal (a + 1)
M-symbol (-4*a^2: 3*a^2) of level Fractional ideal (a + 1)
M-symbol (-4*a^2: 5*a^2) of level Fractional ideal (a + 1)
M-symbol (0: 1) of level Fractional ideal (a + 1)
M-symbol (5*a^2: -4*a^2) of level Fractional ideal (a + 1)
M-symbol (5*a^2: a^2) of level Fractional ideal (a + 1)
M-symbol (1: -4*a^2) of level Fractional ideal (a + 1)
M-symbol (1: -3*a^2) of level Fractional ideal (a + 1)
M-symbol (1: -2*a^2) of level Fractional ideal (a + 1)
M-symbol (1: -a^2) of level Fractional ideal (a + 1)
M-symbol (1: 0) of level Fractional ideal (a + 1)
M-symbol (1: a^2) of level Fractional ideal (a + 1)
M-symbol (1: 2*a^2) of level Fractional ideal (a + 1)
M-symbol (1: 3*a^2) of level Fractional ideal (a + 1)
M-symbol (1: 4*a^2) of level Fractional ideal (a + 1)
M-symbol (1: 5*a^2) of level Fractional ideal (a + 1)
}}}

{{{id=35|
type(P.list()[4])
///



<class 'sage.modular.modsym.p1list_nf.MSymbol'>
}}}

{{{id=36|

///
}}}