Cusps and Rational Points

Letting H * denote the extended complex upper half-plane {z ∈C|Im(z) > 0}∪(Q)∪∞, X0(N)((C)) identifies with the quotient space H * 0(N) and the cusps are the images of (Q)∪∞. A complete set of representatives of cusps are the images of the points a/d where d runs through positive divisors of N and, for each d, a runs through a set of integer representatives of ((Z)/(d, N/d)(Z)) x relatively prime to d. In particular, if (d, N/d)≤2, we just get 1/d. The image of the cusp at ∞ identifies with the image of 1/N.

With respect to the rational structure of X0(N), the cusps are all algebraic points defined over cyclotomic fields. Specifically, for a given d|N, the a/d are a set of Galois-conjugate points, each one having (Q)(μ(d, N/d)) as the field of definition, and the Galois group of (Q)(μ(d, N/d)) over (Q) acts simply transitively on this set. In particular, if (d, N/d)≤2, the cusp 1/d is a (Q)-rational point on X0(N). Thus, ∞~1/N and 0=0/1~1/1 are always rational cusps.

The cuspidal points on the models for small modular curves are stored in the database. More precisely, for each d|N, the database stores either a rational point for the cusp 1/d, if (d, N/d)≤2, or a cluster that defines the (Q)-conjugate set of cusps (a/d), if (d, N/d)>2. The user can access these through an intrinsic. If the model C for X0(N) is singular, some cusps may correspond to singular points on C. There may be two cusps that lie over the same node of C. In any case, the place over each conjugate class of cusps (a/d) is unique (different for different d) and the database contains information to determine which place belongs to which cusp for places above a singular cuspidal point on the model. There is an intrinsic to return the curve place above each (Q)-conjugate set of cusps (a/d).

Non-cuspidal rational points are of particular interest since they correspond to classes of elliptic curves defined over (Q) with a cyclic N-isogeny also defined over (Q) up to twist. On the complete set of curves X0(N) of genus > 0, there are very few non-cuspidal rational points and all such were determined by Mazur and others in the 1970s. The database stores the list of non-cuspidal rational points for each level N. These are never singular points on the chosen models.

Cusp(CN,N,d) : Crv, RngIntElt, RngIntElt -> Any
The curve CN should be a base change of the small modular database curve of level N to a field K of characteristic 0. d is a positive divisor of N. Returns the point on CN corresponding to the cusp 1/d, if (d, N/d)≤2, or returns the cluster (zero-dimensional scheme) defined over K that is the reduced subscheme of CN consisting of the φ((d, N/d)) cusps a/d, if (d, N/d)>2 where φ is Euler's totient function.
CuspIsSingular(N,d) : RngIntElt, RngIntElt -> BoolElt
Returns whether the points lying under the cusps a/d for d|N on the small modular curve database model for X0(N) are singular. For a given d, they either all are or all are not.
CuspPlaces(CN,N,d) : Crv, RngIntElt, RngIntElt -> SeqEnum[PlcCrvElt]
The curve CN should be a base change of the small modular database curve of level N to a field K of characteristic 0. d is a positive divisor of N. Returns the sequence of places of CN that correspond to the φ((d, N/d)) cusps a/d. If (d, N/d)≤2 or K = (Q) there will only be one place. However, if K is a proper extension of Q, the (Q)-conjugate cusps a/d may split into several Galois orbits over K.
NonCuspidalQRationalPoints(CN,N) : Crv, RngIntElt -> SeqEnum
The curve CN should be a base change of the small modular database curve of level N of genus > 0 to a field K of characteristic 0. Returns the sequence of points on CN that correspond to non-cuspidal points in X0(N)((Q)). There are only a small number of N for which this is a non-empty set and the rational points are non-singular ones on all of our models.

Example SmallModCrv_sm_mod_crvs_cusps (H138E4)

> C := SmallModularCurve(32);
> C;
Elliptic Curve defined by y^2 = x^3 + 4*x over Rational Field
> Cusp(C,32,32); //cusp at infinity
(0 : 1 : 0)
> Cusp(C,32,8);
Cluster over Rational Field defined by
$.1^2 + 4*$.3^2,
$.2
> Degree($1);
2
> C<x,y,z> := SmallModularCurve(63);
> Cusp(C,63,1); // cusp at 0
(1 : 1 : 1)
> Cusp(C,63,7); // cusp at 1/7
(1 : 1 : 1)
> CuspIsSingular(63,1);
true
> CuspIsSingular(63,7);
true
> CuspPlaces(C,63,1);
[
    Place (2) at (1 : 1 : 1)
]
> CuspPlaces(C,63,7);
[
    Place (1) at (1 : 1 : 1)
]
> Cusp(C,63,3);
Cluster over Rational Field defined by
x - y,
y^2 + y*z + z^2
> Cusp(C,63,21);
Cluster over Rational Field defined by
x - y,
y^2 + y*z + z^2
> CuspPlaces(C,63,3)[1];
Place at ($.1 : $.1 : 1)
> CuspPlaces(C,63,21)[1];
Place at ($.1 : $.1 : 1)
> $1 eq $2;
false
V2.28, 13 July 2023