Introduction to Drinfeld modular forms


This tutorial outlines the definitions, the notations, and the implementation of Drinfeld modular forms in SageMath. We assume that the reader has basic knowledge of classical modular forms, as we will often make analogies to this setting. We also assume little knowledge of Drinfeld modules; for this topic, the interested reader can consult the SageMath reference manual Drinfeld modules.

Preliminary notations

Let q be a prime power and let A be the ring of functions of P1/Fq which are regular outside a closed point . This ring is the polynomial ring Fq[T]. We denote by K:=Fq(T) rational function field. We endow K with the 1/T-adic valuation and let K:=Fq((1/T)) be the completion of K. Next, we define C to be the completion of an algebraic closure of K. Lastly, we denote by τ:xxq the q-Frobenius.

Note

The above construction of C is the same as the construction of Cp in the case of p-adic numbers (see Wikipedia article P-adic_number#Algebraic_closure).

In SageMath, we create the rational function field by first creating a univariate polynomial ring over Fq and, following this, by constructing its field of fractions:

sage: A = GF(3)['T']
sage: K.<T> = Frac(A)
sage: K
Fraction Field of Univariate Polynomial Ring in T over Finite Field of size 3
sage: K.base()  # returns A
Univariate Polynomial Ring in T over Finite Field of size 3
>>> from sage.all import *
>>> A = GF(Integer(3))['T']
>>> K = Frac(A, names=('T',)); (T,) = K._first_ngens(1)
>>> K
Fraction Field of Univariate Polynomial Ring in T over Finite Field of size 3
>>> K.base()  # returns A
Univariate Polynomial Ring in T over Finite Field of size 3

Drinfeld period domain and action of GLr(K)

In the classical setting, the domain of any modular form is the complex upper half plane H:={wC:im(w)>0}. The analogue of this plane in the function field setting is the Drinfeld period domain of rank r>1 and it is defined by

Ωr(C):=Pr1(C){K-rational hyperplanes}.

This space is a rigid analytic space and, after fixing an arbitrary nonzero constant ξ in C, we identify its elements with the set of column vectors (w1,,wr1,wr)T in Cr such that the wi are K-linearly independant and wr=ξ. Note that ξ is unspecified, but the reader can assume that ξ=1 without any loss of significant information. Its value can be interesting simply for normalization purposes.

We define a left action of GLr(K) on Ωr(C) by setting

γ(w):=j(γ,w)1γw

where j(γ,w):=ξ1(last entry of γw).

Universal Drinfeld module over Ωr(C)

For any w=(w1,,wr1,ξ) in Ωr(C) we have a corresponding discrete A-module Λw which is free of rank r:

Λw:=Aw1Awr1Aξ.

An important result is that we have analytic uniformization which is the analogue of complex uniformization for elliptic curves. In our setting, elliptic curves are replaced by Drinfeld modules. In short, there exists a corresponding Drinfeld module

ϕw:TT+g1(w)τ++gr1(w)τr1+gr(w)τr.

such that the exponential of ϕw induces an isomorphism (of abelian group) between the additive group C and the quotient C/Λw. Background material on Drinfeld modules and their analytic uniformization can be found in section 4.3 and 4.6 of [Gos1998].

The Drinfeld module ϕw:AC{τ} is called the universal Drinfeld Fq[T]-module over Ωr(C) and its coefficients gi:Ωr(C)C are rigid analytic functions satisfying the invariance property:

gi(γ(w))=j(γ,w)1qigi(w), γGLr(A)

where gr(w) never vanishes. Moreover, these coefficients gi admits an expansion at infinity, analogous to q-expansion principle for classical modular forms. The functions gi are known as the coefficients forms at T. More generally, the coefficients of the image ϕaw for any aA are called the coefficient forms at a and they are an algebraic combination of the coefficient forms at T.

In the rank two case, the expansion at infinity is of the form

gi(w)=i=0an(gi)u(w)i

where u(w):=e(w)1 and e is the exponential function of the Carlitz module ρ:TT+τ. The analytic parameter u is called the parameter at infinity.

A Drinfeld modular form of rank r, weight k, type m for GLr(A) is a rigid analytic function

f:Ωr(C)C

such that

  • f(γ(w))=det(γ)mj(γ,w)kf(w) for all γ in GLr(A) and wΩr(C);

  • f is holomorphic at infinity.

Without diving into the details, we mention that the second condition is similar to the classical case. More specifically, in the rank two situation, the expansion of f is given by a power series in u f=n0an(f)un where an(f)C.

Lastly, we also mention that the integer m only depends on its class modulo q1.

Note that all the above theory is covered in much greater details in part I of [BRP2018].

Ring of Drinfeld modular forms

Letting Mkr,m(GLr(A)) denote the space of rank r, weight k(q1)Z and type m Drinfeld modular forms, we define

Mr,0(GLr(A)):=kZZMkr,0(GLr(A))

to be the graded ring of all Drinfeld modular forms of type 0. The graduation is given by the weight of a modular form. Similarly, we let Mr(GLr(A))Mr,0(GLr(A)) be the ring of all Drinfeld modular forms of rank r and arbitrary type. By theorem 17.5 in part III of [BRP2018], we have

Mr,0(GLr(A))=C[g1,,gr1,gr].

and

Mr(GLr(A))=C[g1,,gr1,hr].

where hr is a weight (qr1)/(q1) modular forms of type 1 which is a (q1)-root of gr sometimes known as Gekeler’s h function, see theorem 3.8 of [Gek2017] for the precise definition of this function.

SageMath implementation

In SageMath, we model the ring of type 0 Drinfeld modular forms over K as a finitely generated ring in the coefficients forms gi:

K[g1,,gr1,gr].

Hence, any ring element is seen as a formal algebraic combination of the coefficient forms gi over K. Likewise, the ring of arbitrary type forms is generated by g1,gr1,hr.

To create the ring of type zero and rank r Drinfeld modular forms, one uses the class DrinfeldModularForms:

sage: A = GF(3)['T']
sage: K.<T> = Frac(A)
sage: M = DrinfeldModularForms(K, 3)  # rank 3
sage: M
Ring of Drinfeld modular forms of rank 3 over Fraction Field of Univariate Polynomial Ring in T over Finite Field of size 3
>>> from sage.all import *
>>> A = GF(Integer(3))['T']
>>> K = Frac(A, names=('T',)); (T,) = K._first_ngens(1)
>>> M = DrinfeldModularForms(K, Integer(3))  # rank 3
>>> M
Ring of Drinfeld modular forms of rank 3 over Fraction Field of Univariate Polynomial Ring in T over Finite Field of size 3

To create the ring of arbitrary types modular forms, one passes the keyword argument has_type=True:

sage: M = DrinfeldModularForms(K, 4, has_type=True)
sage: M.gens()
[g1, g2, g3, h4]
sage: h4 = M.3
sage: h4.weight()
40
>>> from sage.all import *
>>> M = DrinfeldModularForms(K, Integer(4), has_type=True)
>>> M.gens()
[g1, g2, g3, h4]
>>> h4 = M.gen(3)
>>> h4.weight()
40

For more information about the functionalities of the implementation, one should consult the documentation of the main classes:

References

A good introduction to Drinfeld modular forms of rank 2, see Gekeler’s paper [Gek1988]. See also [BRP2018] for a detailed exposition of the arbitrary rank theory.