模形式与Hecke算子¶
同余子群¶
定义¶
同余子群是群的子群 \(\mathrm{SL}_2(\ZZ)\) 行列式的 \(\pm 1\) 包含以下内容的整数矩阵
对于某个正整数 \(N\) 。自.以来 \(\Gamma(N)\) 在中具有有限索引 \(\mathrm{SL}_2(\ZZ)\) ,所有同余子群都有有限指数。反之亦然,尽管在许多其他设置中是正确的(请参见 [paper of Serre] )。
The inverse image \(\Gamma_0(N)\) of the subgroup of upper triangular matrices in \(\mathrm{SL}_2(\ZZ/N\ZZ)\) is a congruence subgroup, as is the inverse image \(\Gamma_1(N)\) of the subgroup of matrices of the form \(\left(\begin{smallmatrix}1&*\\0&1\end{smallmatrix}\right)\). Also, for any subgroup \(H\subset (\ZZ/N\ZZ)^*\), the inverse image \(\Gamma_H(N)\) of the subgroup of \(\mathrm{SL}_2(\ZZ/N\ZZ)\) of all elements of the form \(\left(\begin{smallmatrix}a&*\\0&d\end{smallmatrix}\right)\) with \(d \in H\) is a congruence subgroup.
我们可以使用Gamma0、Gamma1和GammaH命令在Sage中创建上述每个同余子组。
sage: Gamma0(8)
Congruence Subgroup Gamma0(8)
sage: Gamma1(13)
Congruence Subgroup Gamma1(13)
sage: GammaH(11,[3])
Congruence Subgroup Gamma_H(11) with H generated by [3]
GammaH命令的第二个参数是子组的生成器列表 \(H\) 的 \((\ZZ/N\ZZ)^*\) 。
发电机¶
SAGE可以计算这些子群的生成器列表。Sage使用的算法是一个简单的通用过程,它使用同余子组的陪集表示(易于枚举)来获得生成元列表 [[ref my modular forms book] ]。
不幸的是,Sage计算的生成器列表很大。改进这一点将是一个优秀的Sage开发项目,它将涉及许多美丽的数学。
更新(2012年3月):上文提到的项目已经实施(由几个人,特别是Hartmut Monien,在Chris Kurth早期工作的基础上进行)。Sage现在使用基于Farey符号的更高级的算法,该算法计算 minimal 一组发电机。
sage: Gamma0(2).gens()
(
[1 1] [ 1 -1]
[0 1], [ 2 -1]
)
sage: Gamma0(2).gens(algorithm="todd-coxeter") # the old implementation
(
[1 1] [-1 0] [ 1 -1] [ 1 -1] [-1 1]
[0 1], [ 0 -1], [ 0 1], [ 2 -1], [-2 1]
)
sage: len(Gamma1(13).gens())
15
模数形式¶
定义¶
同余子群上的模形式 \(\Gamma\) 整数权重的 \(k\) 是全纯函数 \(f(z)\) 在上半平面上
such that for every matrix \(\left(\begin{smallmatrix}a&b\\c&d\end{smallmatrix}\right)\in\Gamma\), we have
A cusp form is a modular form that vanishes at all of the cusps \(\QQ \cup \{i\infty\}\).
If \(\Gamma\) contains \(\Gamma_1(N)\) for some \(N\), then \(\left(\begin{smallmatrix}1&1\\0&1\end{smallmatrix}\right)\in\Gamma\), so the modular form condition implies that \(f(z) = f(z+1)\). This, coupled with the holomorphicity condition, implies that \(f(z)\) has a Fourier expansion
with \(a_n\in\CC\). We let \(q = e^{2\pi i z}\), and call \(f = \sum_{n=0}^{\infty} a_n q^n\) the \(q\)-expansion of \(f\).
Sage中的创造¶
Henceforth we assume that \(\Gamma\) is either \(\Gamma_1(N)\), \(\Gamma_0(N)\), or \(\Gamma_H(N)\) for some \(H\) and \(N\). The complex vector space \(M_k(\Gamma)\) of all modular forms of weight \(k\) on \(\Gamma\) is a finite dimensional vector space.
我们创造了空间 \(M_k(\Gamma)\) 在Sage中输入 ModularForms(G, k)
哪里 \(G\) 是同余子群,且 \(k\) 就是重量。
sage: ModularForms(Gamma0(25), 4)
Modular Forms space of dimension 11 for ...
sage: S = CuspForms(Gamma0(25),4, prec=15); S
Cuspidal subspace of dimension 5 of Modular Forms space ...
sage: S.basis()
[
q + q^9 - 8*q^11 - 8*q^14 + O(q^15),
q^2 - q^7 - q^8 - 7*q^12 + 7*q^13 + O(q^15),
q^3 + q^7 - 2*q^8 - 6*q^12 - 5*q^13 + O(q^15),
q^4 - q^6 - 3*q^9 + 5*q^11 - 2*q^14 + O(q^15),
q^5 - 4*q^10 + O(q^15)
]
尺寸公式¶
Sage使用简单的算术公式计算所有这些空间的尺寸,而不是实际计算有问题的空间的基数。事实上,Sage拥有所有软件中最通用的模块形式尺寸公式集合;类型 help(sage.modular.dims)
查看用于实现这些维公式的算术函数列表。
sage: ModularForms(Gamma1(949284), 456).dimension()
11156973844800
sage: from sage.modular.dims import dimension_cusp_forms
sage: a = [dimension_cusp_forms(Gamma0(N),2) for N in [1..25]]; a
[0, 0, ..., 1, 0, 0, 1, 1, 0, 1, 0, 1, 1, 1, 2, 2, 1, 0]
sage: oeis(a) # optional - internet
0: A001617: Genus of modular group Gamma_0(n). Or, genus of modular curve X_0(n).
Sage没有简单的公式来计算模式权重空间的尺寸 \(1\) ,因为这样的公式可能并不存在。
菱形括号运算符¶
The space \(M_k(\Gamma_1(N))\) is equipped with an action of \((\ZZ/N\ZZ)^*\) by diamond bracket operators \(\langle d \rangle\), and this induces a decomposition
其中和是有限阿贝尔群的所有复特征标的和 \((\ZZ/N\ZZ)^*\) 。这些字符被称为狄利克雷特字符,它在数论中是核心的。
The factors \(M_k(N,\varepsilon)\) then have bases whose \(q\)-expansions are elements of \(R[[q]]\), where \(R = \ZZ[\varepsilon]\) is the ring generated over \(\ZZ\) by the image of \(\varepsilon\). We illustrate this with \(N=k=5\) below, where DirichletGroup will be described later.
sage: CuspForms(DirichletGroup(5).0, 5).basis()
[
q + (-zeta4 - 1)*q^2 + (6*zeta4 - 6)*q^3 - ... + O(q^6)
]
狄利克雷特字符¶
使用命令DirichletGroup(N,R)创建模数的所有Dirichlet特征标的组 \(N\) 在环中取值 \(R\) 。如果 \(R\) 被省略,则默认为割圆字段。
sage: G = DirichletGroup(8); G
Group of Dirichlet characters modulo 8 with values in Cyclotomic Field of order 2 and degree 1
sage: v = G.list(); v
[Dirichlet character modulo 8 of conductor 1 mapping 7 |--> 1, 5 |--> 1,
Dirichlet character modulo 8 of conductor 4 mapping 7 |--> -1, 5 |--> 1,
Dirichlet character modulo 8 of conductor 8 mapping 7 |--> 1, 5 |--> -1,
Dirichlet character modulo 8 of conductor 8 mapping 7 |--> -1, 5 |--> -1]
sage: eps = G.0; eps
Dirichlet character modulo 8 of conductor 4 mapping 7 |--> -1, 5 |--> 1
sage: eps.values()
[0, 1, 0, -1, 0, 1, 0, -1]
Sage两者都通过给出一个“矩阵”来表示狄利克雷特字符,即 \((\ZZ/N\ZZ)^*\) ,并作为模整数的向量 \(n\) 。多年来,我在这两种表现形式之间左右为难,直到J·奎尔和我意识到最好的方法是同时使用这两种方法,并使它们之间的转换变得容易。
sage: parent(eps.element())
Vector space of dimension 2 over Ring of integers modulo 2
在给定狄利克雷特征的情况下,Sage还可以计算相关的Jacobi和、Gauss和、广义Bernoulli数、导体、Galois轨道等。
分解 \(M_k(\Gamma_1(N))\)¶
回想一下,Dirichlet字符给出了一个分解
给定一个狄利克雷特角色 \(\varepsilon\) 我们输入ModularForms(EPS,Weight)来创建具有该字符和给定整数权重的模块表单空间。例如,我们创造了重量形式的空间 \(5\) 以字符为模数 \(8\) 上面是 \(-1\) 在……上面 \(3\) 和 \(1\) 在……上面 \(5\) 具体如下。
sage: ModularForms(eps,5)
Modular Forms space of dimension 6, character [-1, 1] and
weight 5 over Rational Field
sage: sum([ModularForms(eps,5).dimension() for eps in v])
11
sage: ModularForms(Gamma1(8),5)
Modular Forms space of dimension 11 ...
备注
练习:计算所有空间的尺寸 \(M_2(37,\varepsilon)\) 对于所有Dirichlet角色 \(\varepsilon\) 。
黑克算子¶
The space \(M_k(\Gamma)\) is equipped with an action of a commuting ring \(\mathbb{T}\) of Hecke operators \(T_n\) for \(n\geq 1\). A standard computational problem in the theory of modular forms is to compute an explicit basis of \(q\)-expansion for \(M_k(\Gamma)\) along with matrices for the action of any Hecke operator \(T_n\), and to compute the subspace \(S_k(\Gamma)\) of cusp forms.
sage: M = ModularForms(Gamma0(11),4)
sage: M.basis()
[
q + 3*q^3 - 6*q^4 - 7*q^5 + O(q^6),
q^2 - 4*q^3 + 2*q^4 + 8*q^5 + O(q^6),
1 + O(q^6),
q + 9*q^2 + 28*q^3 + 73*q^4 + 126*q^5 + O(q^6)
]
sage: M.hecke_matrix(2)
[0 2 0 0]
[1 2 0 0]
[0 0 9 0]
[0 0 0 9]
我们还可以计算尖点子空间上的Hecke算子。
sage: S = M.cuspidal_subspace()
sage: S.hecke_matrix(2)
[0 2]
[1 2]
sage: S.hecke_matrix(3)
[ 3 -8]
[-4 -5]
打开Hecke运算符 \(M_k(\Gamma_1(N))\)¶
在第一次编写这些讲座时,Sage还没有实现对Hecke运算符的计算 \(M_k(\Gamma_1(N))\) ,但随后添加了以下内容:
sage: M = ModularForms(Gamma1(5),2)
sage: M
Modular Forms space of dimension 3 for Congruence Subgroup
Gamma1(5) of weight 2 over Rational Field
sage: M.hecke_matrix(2)
[ -21 0 -240]
[ -2 0 -23]
[ 2 1 24]
通过首先计算模符号上的Hecke运算符来计算它们 \(\Gamma_1(N)\) ,这是一种 \(\mathbb{T}\) -同构于的模 \(M_k(\Gamma_1(N))\) (见 模数符号 )。
sage: ModularSymbols(Gamma1(5),2,sign=1).hecke_matrix(2)
[ 2 1 1]
[ 1 2 -1]
[ 0 0 -1]