|
In the genus 0 cases, the database model is just the projective line (P)1 and the uniformising parameter
t=x/y (where x, y are the projective coordinates of (P)1) is a modular function on X0(N). We have
normalised so that this function has a simple zero at the cusp 0 and a simple pole at the cusp ∞ with
q-expansion of the form q - 1 + ... when N > 1. For N=1 we just take the j-invariant as our parameter.
In the elliptic and hyperelliptic cases, the model is a minimal Weierstrass equation y2 + h(x)y=f(x) and the
x and y coordinate functions are modular functions on X0(N). We have normalised so that one of the
points at infinity of the model is the cusp ∞, so x and y have poles there. In the elliptic cases,
there is only one point at infinity. In the hyperelliptic cases, the other point at infinity is always the
image of ∞ under the hyperelliptic involution: ∞ is never a Weierstrass point in these cases.
We sometimes refer to genus zero, elliptic and hyperelliptic curves by the semi-standard term subhyperelliptic.
The models in the non-subhyperelliptic cases are ordinary projective and are sub-canonical images of X0(N).
This means that there are linearly-independent weight 2 cusp forms f1, ..., fr (which correspond to
holomorphic differentials on X0(N)) such that our model is the image of X0(N) under the map
z |-> [f1(z): ... : fr(z)] into (P)r - 1.
As stated earlier, although we sometimes used Magma's modular symbols machinery to compute a basis for forms
when deriving models, we also worked out expressions for the modular functions t, x and y and the forms
fi in terms of certain basic types. This gives the models a degree of independence from the modular symbol
machinery and also allows for faster reconstruction of q-expansions of the generating functions/forms.
We describe the basic types here. There is an intrinsic that the user may call to retrieve the information
as to how the forms are built up and one to return the actual q-expansions up to any desired precision.
In some cases, we have used the cusp forms associated to an elliptic curve of conductor N. We would have
liked to avoid this and maybe with a bit more work we may be able to find alternative expressions that avoid
using them. In fact, we should be using more of the theta series associated to quaternion algebras (this was
an oversight only discovered recently: we are currently only using the theta series attached to one isomorphism
class of maximal order for each quaternion algebra).
Leaving aside the forms associated to elliptic curves, the basic types that we have looked at are
all classical. We could also have tried to use some other basic types like the generalised eta products of Y. Yang.
The basic types fall into a number of categories:
- (i)
- Dedekind eta products.
- (ii)
- Theta series of binary quadratic forms of various kinds and theta series of quaternion algebras.
- (iii)
- Weight 2 Eisenstein series of prime level.
- (iv)
- Weight two cusp forms of elliptic curves.
Dedekind eta products for level N are of the form η(d1z)r1η(d2z)r2 ... η(dnz)rn
where the di run over a subset of the positive divisors of N, the ri are integers and η(z) is
the Dedekind η-function which has q-expansion q1/24∏n=1^∞(1 - qn). If ∑ri
is even and ∑ridi and ∑ri(N/di) are divisible by 24, the product gives a modular form of
weight (1/2)∑ri for Γ0(N) with a certain character mod N. The form only has zeroes and
poles at cusps with order given by a formula depending on N, ri and di. We use these products
to give modular functions and weight 2 forms and occasionally weight one forms to be used in combination
with weight one forms coming from theta series.
The theta series associated to binary quadratic forms come in several flavours.
If Q(x, y)=ax2 + bxy + cz2 (with a, b, c ∈(Z), a>0) has discriminant -N, then the usual
theta series θQ(z) = ∑_((x, y)∈(Z)2) qQ(x, y) is a weight one form of level N for
the quadratic character given by the Jacobi symbol ((-N/.)). The product of two of these gives a weight
2 integral form for Γ0(N).
If N ≡ 1 mod 4 and Q(x, y)=ax2 + bxy + cz2 is a form with discriminant -4N with a odd and b, c even,
the function θ(1)Q(z) = ∑_((x, y)∈(Z)2, x odd)( - 1)yqQ(x, y)/4 is a weight one form
of level N for the character ((./N))χa where χ is the quartic character giving the action of
Γ0(1) on η(z)6. If Q1, Q2 are two such forms, one of which has a ≡ 1 mod 4 and
a ≡ 3 mod 4 for the other, then θ(1)Q1θ(1)Q2 is a weight 2 integral
form for Γ0(N). Additionally, the function
θ(2)Q(z) = ∑_((x, y)∈(Z)2, x odd)qQ(x, y)/4 is a weight one form of level 2N
for the character ((./N))χaδ where δ is the unique non-trivial character that factors
through the quotient Γ0(2N)/Γ0(4N). Again, θ(2)Q1θ(2)Q2 is
a weight 2 form for Γ0(2N) if the as for Q1 and Q2 are non-congruent mod 4.
If N ≡ 3 mod 8 and Q(x, y)=ax2 + bxy + cz2 is a form with discriminant -N (here a, b, c must all
be odd), the function θ(3)Q(z) = ∑_((x, y)∈(Z)2, x odd)( - 1)yqQ(x, y)/2 is
a weight one form of level N for the character ((-N/.))χ where χ is the quadratic character giving
the action of Γ0(1) on η(z)12. The product of any two of these gives a weight 2 integral
form for Γ0(N).
If N=p1 ... pr is a product of an odd number of distinct primes, let HN be the quaternion algebra
over (Q) which is ramified precisely at ∞ and the primes pi. Let ON be a maximal
order of HN, which is a (Z)-lattice of rank 4, and QN the positive-definite quadratic form on it
given by the reduced norm Nm of HN. Then the theta function θQN(z) = ∑x ∈ON qNm(x)
is a weight two integral form for Γ0(N).
The weight 2 Eisenstein series of prime level p is the form pE2(pz) - E2(z), which is an integral
form of weight 2 for Γ0(p). Here E2(z) is the usual normalised weight 2 Eisenstein series
(which isn't a modular form for any level) with q-expansion 1 - 24q - 72q2 - ... . We usually normalise
the prime level Eisenstein series by dividing by GCD(24, p - 1) which is the GCD of its integral
coefficients.
If E is an elliptic curve over Q of conductor N, then the modular form fE(z) associated to E,
which is returned by the call ModularForm(E), is a weight 2 cusp form for Γ0(N).
We also use three standard operations on forms/functions.
If f(z) is a modular function on X0(N) then D(f) = (1/2π i)(df/dz) is a weight 2 form for Γ0(N).
If f(z) is a form/function on X0(M) and d is a positive integer dividing N/M then f(dz) is
a form/function on X0(N).
If f is a form for Γ0(N) and χ is the quadratic character with conductor d where |d|2 divides
N, then the twisted form f tensor χ is also a form for Γ0(N) where if f has the q-expansion
∑anqn then f tensor χ has q-expansion ∑anχ(n)qn.
The basic types are forms or functions of types (i)-(iv), possibly operated on by one of the above 3 operations.
Basic functions are functions of basic type or quotients of forms of basic type of the same weight.
We build modular functions as rational functions of basic functions. We build modular forms of weight 2 as
linear combinations of weight 2 forms of basic type or products of modular functions with weight 2 forms of basic
type. We give some examples below.
This procedure prints out a mini-program that is used to compute the modular functions that correspond
to t or to x, y on X0(N) in the subhyperelliptic cases or the weight 2 cusp forms f1, ..., fr
on X0(N) in the other cases. These give expressions for the forms/functions in terms of forms/functions
of basic type. The format of the mini-program is as follows.
There are a sequence of statements. Each except the last is of the form v = < expr > where v is a
variable name, < expr > is an expression and the statement assigns the value of the expression
(a modular form or
function on X0(N)) to variable v. Each expression is a string of terms separated by binary arithmetic operators
^ * / + - which have their usual meaning, are listed in precedence order and evaluate left to right for
operators of the same precedence. There may also be subexpressions in () brackets. Subexpressions in brackets
are evaluated first and replaced with their value, inner bracketed subexpressions being evaluated before
outer ones. Terms are of one of the following types, possibly modified by an operator:
- (i)
- An integer. This either multiplies a form/function, is an exponent for powering or gives a constant function.
- (ii)
- q. This is just e2π i z, the 'q' of the q-expansion.
- (iii)
- A variable that has previously been assigned to.
- (iv)
- An eta product. e{< d1 r1 >< d2 r2 > ... < dn rn >} represents the
eta product η(d1z)r1η(d2z)r2 ... η(dnz)rn.
- (v)
- Binary theta functions as described in the introduction. For a positive-definite binary quadratic form
Q(x, y)=Ax2 + Bxy + Cy2,
- th0{A B C} is the usual theta series of Q.
- th1{A B C} is (1/2)q - a/4θ(1)Q where a is A mod 4. This has q-integral q-expansion.
- th2{A B C} is (1/2)q - a/4θ(2)Q where a is A mod 4. This has q-integral q-expansion.
- th3{A B C} is (1/2)q - 1/2θ(3)Q. This has q-integral q-expansion.
(vi)Theta functions of quaternion algebras as described in the introduction. thQ{N} represents the weight 2
theta function attached to a maximal order of the quaternion algebra of level N, where N is a product of an
odd number of distinct primes. The notation is deficient here. The theta series depends on the
isomorphism class of the maximal order chosen. Currently, we are only using the maximal order returned by
Magma in the call MaximalOrder(QuaternionAlgebra(N)).
(vii)Eisenstein series. E{p} represents the weight 2 normalised Eisenstein series of prime level p,
(pE2(pz) - E2(z))/GCD(24, p - 1).
(viii)Cusp forms from elliptic curves. f{a1 a2 a3 a4 a6} represents the weight two newform associated
to the elliptic curve over Q with equation y2 + a1xy + a3y=x3 + a2x2 + a4x + a6.
Modifying operators are
- (i)
- D. D(f) is (1/2π i)(df/dz), where f is a modular function on X0(N).
- (ii)
- [d]. d is a positive integer. If f represents a form or function f(z), then f[d] represents
f(dz).
- (iii)
- < d >. If f is a form, f< d > represents the form twisted by the quadratic
character of conductor d.
The last line of the mini-program is of the form [t, 1] if X0(N) is of genus 0, [x, y, 1] if
X0(N) is elliptic or hyperelliptic, and [f1, ..., fr] otherwise, where t, x, y, fi are variables
that were assigned to in earlier lines. These give the generating functions/forms for the X0(N) model.
Returns q-expansions to precision r as Laurent series in the Laurent series ring R over Q
for the sequence of modular forms/functions of level N that define the small modular curve database model of
X0(N). As described in the introduction, the return sequence is of the form [t] if X0(N) is of genus 0,
[x, y] if X0(N) is elliptic or hyperelliptic, and [f1, ..., fr] otherwise. Here t, x and y are
Laurent series giving the q-expansions of functions which will have poles at the cusp ∞, so have
negative power terms, and the fi will actually be power series giving the q-expansions of weight 2
cusp forms.
The q-expansions are computed from the expressions which are given in the mini-program output by
qExpansionExpressions(N), generating the forms/functions from ones of basic
type for which there are fast routines to compute q-expansions.
We give some examples of the mini-programs for various levels
> qExpansionExpressions(8); //genus 0 case
x=e{<1 4><2 -2><4 2><8 -4>}
[x,1]
> qExpansionExpressions(15); //genus 1 case
F=e{<1 1><3 1><5 1><15 1>}
t=e{<1 -3><3 3><5 3><15 -3>}
s=-D(t)/F
x=(t^2-5*t-3+s)/2
y=(t^3-8*t^2-4*t+3+s*(t-3))/2
[x,y,1]
> qExpansionExpressions(30); //hyperelliptic case
F=e{<1 -1><2 3><3 1><5 1><6 -1><10 -1><15 -1><30 3>}
x=e{<1 2><2 -2><3 -1><5 -1><6 1><10 1><15 2><30 -2>}
s=-D(x)/F
y=(s+x^4+x^3+x^2)/2
[x,y,1]
> qExpansionExpressions(64); //genus 3 case
F1=e{<4 2><8 2>}
F2=F1<-8>
[(F2-F1)/4,(F2+F1)/2,F1[2]]
> qExpansionExpressions(53); //genus 4 case
t1=th1{1 2 54}
t2=th1{3 2 18}
t3=th1{9 2 6}
F1=q*t1*t2
F2=q*t2*t3
F3=(13*thQ{53}-E{53})/18
F4=f{1 -1 1 0 0}
[F1,(5*F1-3*F2-F3-F4)/2,-4*F1+2*F2+F3,-4*F1+F2+F3]
> qExpansionExpressions(63); //genus 5 case
F1=(th0{1 1 16}-th0{4 1 4})*th0{2 1 8}/2
F2=q*th1{1 2 22}*th1{3 6 10}
F3=F2[3]
F4=e{<3 2><21 2>}
[(F1-F2-F3+F4)/2,(F1-F2-F3-F4)/2,F3]
> R<q> := LaurentSeriesRing(Rationals());
> qExpansionsOfGenerators(49,R,30); //genus 1 case
[
q^-2 - q^-1 + 1 + q^3 + q^5 - q^10 - q^13 + q^20 + q^24 + O(q^31),
q^-3 - 2*q^-2 + 2*q^-1 - 1 - q + q^2 - 2*q^3 + q^4 - 2*q^5 - q^9 + 2*q^10
+ q^11 + 2*q^13 + q^15 + q^16 - 2*q^20 - q^22 - q^23 - 2*q^24 - q^25 -
q^29 + q^30 + O(q^31)
]
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|