Modular forms, modular symbols

(PARI-GP version 2.15.2)

Modular Forms

Dirichlet characters Characters are encoded in three different ways:

• a t INT D ≡ 0, 1 mod 4: the quadratic character (D/·);

• a t INTMOD Mod(m, q), m ∈ (Z/q)^{∗} using a canonical bijection with the dual group (the Conrey character χ_{q}(m, ·));

• a pair [G, chi], where G = znstar(q, 1) encodes (Z/qZ)^{∗} = ∑_{j≤k}(Z/d_{j}Z) · g_{j} and the vector chi = [c_{1}, …, c_{k}] encodes the character such that χ(g_{j}) = e(c_{j}/d_{j}).

initialize G = (Z/qZ)^{∗} G = znstar(q, 1) convert datum D to [G, χ] znchar(D) Galois orbits of Dirichlet characters chargalois(G) Spaces of modular forms Arguments of the form [N, k, χ] give the level weight and nebentypus χ; χ can be omitted: [N, k] means trivial χ. initialize S_{k}^{new}(Γ_{0}(N), χ) mfinit([N, k, χ], 0) initialize S_{k}(Γ_{0}(N), χ) mfinit([N, k, χ], 1) initialize S_{k}^{old}(Γ_{0}(N), χ) mfinit([N, k, χ], 2) initialize E_{k}(Γ_{0}(N), χ) mfinit([N, k, χ], 3) initialize M_{k}(Γ_{0}(N), χ) mfinit([N, k, χ]) find eigenforms mfsplit(M) statistics on self-growing caches getcache()

We let M = mfinit(…) denote a modular space. describe the space M mfdescribe(M) recover (N, k, χ) mfparams(M) … the space identifier (0 to 4) mfspace(M) … the dimension of M over C mfdim(M) … a C-basis (f_{i}) of M mfbasis(M) … a basis (F_{j}) of eigenforms mfeigenbasis(M) … polynomials defining Q(χ)(F_{j})/Q(χ) mffields(M)

matrix of Hecke operator T_{n} on (f_{i}) mfheckemat(M, n) eigenvalues of w_{Q} mfatkineigenvalues(M, Q) basis of period poynomials for weight k mfperiodpolbasis(k) basis of the Kohnen +-space mfkohnenbasis(M) … new space and eigenforms mfkohneneigenbasis(M, b) isomorphism S_{k}^{+}(4N, χ) → S_{2k−1}(N, χ^{2}) mfkohnenbijection(M)

Useful data can also be obtained a priori, without computing a complete modular space: dimension of S_{k}^{new}(Γ_{0}(N), χ) mfdim([N, k, χ]) dimension of S_{k}(Γ_{0}(N), χ) mfdim([N, k, χ], 1) dimension of S_{k}^{old}(Γ_{0}(N), χ) mfdim([N, k, χ], 2) dimension of M_{k}(Γ_{0}(N), χ) mfdim([N, k, χ], 3) dimension of E_{k}(Γ_{0}(N), χ) mfdim([N, k, χ], 4) Sturm’s bound for M_{k}(Γ_{0}(N), χ) mfsturm(N, k) Γ_{0}(N) cosets list of right Γ_{0}(N) cosets mfcosets(N) identify coset a matrix belongs to mftocoset Cusps a cusp is given by a rational number or oo. lists of cusps of Γ_{0}(N) mfcusps(N) number of cusps of Γ_{0}(N) mfnumcusps(N) width of cusp c of Γ_{0}(N) mfcuspwidth(N, c) is cusp c regular for M_{k}(Γ_{0}(N), χ)? mfcuspisregular([N, k, χ], c)

Create an individual modular form Besides mfbasis and mfeigenbasis, an individual modular form can be identified by a few coefficients. modular form from coefficients mftobasis(mf,vec)

There are also many predefined ones: Eisenstein series E_{k} on Sl_{2}(Z) mfEk(k) Eisenstein-Hurwitz series on Γ_{0}(4) mfEH(k) unary θ function (for character ψ) mfTheta({ψ}) Ramanujan’s Δ mfDelta()

E_{k}(χ)  mfeisenstein(k, χ)

E_{k}(χ_{1}, χ_{2}) mfeisenstein(k, χ_{1}, χ_{2}) eta quotient ∏_{i} η(a_{i,1} · z)^{a_{i,2}} mffrometaquo(a) newform attached to ell. curve E/Q mffromell(E) identify an L-function as a eigenform mffromlfun(L) θ function attached to Q > 0 mffromqf(Q) trace form in S_{k}^{new}(Γ_{0}(N), χ) mftraceform([N, k, χ]) trace form in S_{k}(Γ_{0}(N), χ) mftraceform([N, k, χ], 1) Operations on modular forms In this section, f, g and the F [i] are modular forms f × g mfmul(f, g) f/g mfdiv(f, g) f^{n} mfpow(f, n) f(q)/q^{v} mfshift(f, v) ∑_{i≤k} λ_{i}F [i], L = [λ_{1}, …, λ_{k}] mflinear(F, L)

f = g?  mfisequal(f,g)

expanding operator B_{d}(f) mfbd(f, d) Hecke operator T_{n}f mfhecke(mf, f, n) initialize Atkin–Lehner operator w_{Q} mfatkininit(mf, Q) … apply w_{Q} to f mfatkin(w_{Q}, f) twist by the quadratic char (D/·) mftwist(f, D) derivative wrt. q · d/dq mfderiv(f) see f over an absolute field mfreltoabs(f) Serre derivative (q · \frac{d}{dq} − \frac{k}{12} E_{2})f mfderivE2(f) Rankin-Cohen bracket [f, g]_{n} mfbracket(f, g, n) Shimura lift of f for discriminant D mfshimura(mf, f, D) Properties of modular forms In this section, f = ∑_{n} f_{n}q^{n} is a modular form in some space M with parameters N, k, χ. describe the form f mfdescribe(f) (N, k, χ) for form f mfparams(f) the space identifier (0 to 4) for f mfspace(mf, f) [f_{0}, …, f_{n}] mfcoefs(f, n) f_{n} mfcoef(f, n) is f a CM form? mfisCM(f) is f an eta quotient? mfisetaquo(f) Galois rep. attached to all (1, χ) eigenforms mfgaloistype(M) … single eigenform mfgaloistype(M, F) … as a polynomial fixed by Ker ρ_{F} mfgaloisprojrep(M, F) decompose f on mfbasis(M) mftobasis(M, f) smallest level on which f is defined mfconductor(M, f) decompose f on ⊕S_{k}^{new}(Γ_{0}(d)), d | N mftonew(M, f) valuation of f at cusp c mfcuspval(M, f, c) expansion at ∞ of f |_{k} γ mfslashexpansion(M, f, γ, n) n-Taylor expansion of f at i mftaylor(f, n) all rational eigenforms matching criteria mfeigensearch … forms matching criteria mfsearch Forms embedded into C Given a modular form f in M_{k}(Γ_{0}(N), χ) its field of definition Q(f) has n = [Q(f) : Q(χ)] embeddings into the complex numbers. If n = 1, the following functions return a single answer, attached to the canonical embedding of f in C[[q]]; else a vector of n results, corresponding to the n conjugates of f. complex embeddings of Q(f) mfembed(f) ... embed coefs of f mfembed(f, v) evaluate f at τ ∈ H mfeval(f, τ) L-function attached to f lfunmf(mf, f) … eigenforms of new space M lfunmf(M) Periods and symbols The functions in this section depend on [Q(f) : Q(χ)] as above. initialize symbol fs attached to f mfsymbol(M, f) evaluate symbol fs on path p mfsymboleval(fs, p) Petersson product of f and g mfpetersson(fs, gs) period polynomial of form f mfperiodpol(M, fs) period polynomials for eigensymbol F S mfmanin(F S)

Modular Symbols

Let G = Γ_{0}(N), V_{k} = Q[X, Y]_{k−2}, L_{k} = Z[X, Y]_{k−2} and Δ = Div^{0}(P^{1}(Q)). An element of Δ is a path between cusps of X_{0}(N) via the identification [b] − [a] → path from a to b, coded by the pair [a, b] where a, b are rationals or oo = (1 : 0).

Let M_{k}(G) = Hom_{G}(Δ, V_{k}) ≃ H_{c}^{1}(X_{0}(N), V_{k}); an element of M_{k}(G) is a V_{k}-valued modular symbol. There is a natural decomposition M_{k}(G) = M_{k}(G)^{+} ⊕ M_{k}(G)^{−} under the action of the ∗ involution, induced by complex conjugation. The msinit function computes either M_{k} (ε = 0) or its ±-parts (ε = ±1) and fixes a minimal set of Z[G]-generators (g_{i}) of Δ.

initialize M = M_{k}(Γ_{0}(N))^{ε} msinit(N, k, {ε = 0}) the level M msgetlevel(M) the weight k msgetweight(M) the sign ε msgetsign(M) Farey symbol attached to G mspolygon(M) … attached to H < G msfarey(F, inH) H\G and right G-action mscosets(genG, inH)

Z[G]-generators (g_{i}) and relations for Δ mspathgens(M) decompose p = [a, b] on the (g_{i}) mspathlog(M, p)

Create a symbol

Eisenstein symbol attached to cusp c msfromcusp(M, c) cuspidal symbol attached to E/Q msfromell(E) symbol having given Hecke eigenvalues msfromhecke(M, v, {H}) is s a symbol ? msissymbol(M, s) Operations on symbols the list of all s(g_{i}) mseval(M, s) evaluate symbol s on path p = [a, b] mseval(M, s, p) Petersson product of s and t mspetersson(M, s, t) Operators on subspaces An operator is given by a matrix of a fixed Q-basis. H, if given, is a stable Q-subspace of M_{k}(G): operator is restricted to H. matrix of Hecke operator T_{p} or U_{p} mshecke(M, p, {H}) matrix of Atkin-Lehner w_{Q} msatkinlehner(M, Q{H}) matrix of the ∗ involution msstar(M, {H})

Subspaces A subspace is given by a structure allowing quick projection and restriction of linear operators. Its fist component is a matrix with integer coefficients whose columns for a Q-basis. If H is a Heckestable subspace of M_{k}(G)^{+} or M_{k}(G)^{−}, it can be split into a direct sum of Hecke-simple subspaces. To a simple subspace corresponds a single normalized newform ∑_{n} a_{n}q^{n}. cuspidal subspace S_{k}(G)^{ε} mscuspidal(M) Eisenstein subspace E_{k}(G)^{ε} mseisenstein(M) new part of S_{k}(G)^{ε} msnew(M) split H into simple subspaces (of dim ≤ d) mssplit(M, H, {d}) dimension of a subspace msdim(M) (a_{1}, …, a_{B}) for attached newform msqexpansion(M, H, {B}) Z-structure from H^{1}(G, L_{k}) on subspace A mslattice(M, A)

Overconvergent symbols and p-adic L functions Let M be a full modular symbol space given by msinit and p be a prime. To a classical modular symbol ϕ of level N (v_{p}(N) ≤ 1), which is an eigenvector for T_{p} with nonzero eigenvalue a_{p}, we can attach a p-adic L-function L_{p}. The function L_{p} is defined on continuous characters of Gal(Q(μ_{p^{∞}})/Q); in GP we allow characters ⟨χ⟩^{s_{1}}τ^{s_{2}}, where (s_{1}, s_{2}) are integers, τ is the Teichmüller character and χ is the cyclotomic character. The symbol ϕ can be lifted to an overconvergent symbol Φ, taking values in spaces of p-adic distributions (represented in GP by a list of moments modulo p^{n}). mspadicinit precomputes data used to lift symbols. If flag is given, it speeds up the computation by assuming that v_{p}(a_{p}) = 0 if flag = 0 (fastest), and that v_{p}(a_{p}) ≥ flag otherwise (faster as flag increases). mspadicmoments computes distributions mu attached to Φ allowing to compute L_{p} to high accuracy. initialize Mp to lift symbols mspadicinit(M, p, n, {flag}) lift symbol ϕ mstooms(Mp, ϕ) eval overconvergent symbol Φ on path p msomseval(Mp, Φ, p) mu for p-adic L-functions mspadicmoments(Mp, S, {D = 1})

L_{p}^{(r)}(χ^{s}), s = [s_{1}, s_{2}] mspadicL(mu, {s = 0}, {r = 0}) L̂_{p}(τ^{i})(x) mspadicseries(mu, {i = 0})

Based on an earlier version by Joseph H. Silverman November 2022 v2.38. Copyright \begin{matrix}c \\ ◯ \end{matrix} 2022 K. Belabas

Permission is granted to make and distribute copies of this card provided the copyright and this permission notice are preserved on all copies. Send comments and corrections to ⟨Karim.Belabas@math.u-bordeaux.fr⟩