43.8 Hecke operators on modular abelian varieties

Module: sage.modular.abvar.hecke_operator

Hecke operators on modular abelian varieties

Sage can compute with Hecke operators on modular abelian varieties. A Hecke operator is defined by given a modular abelian variety and an index. Given a Hecke operator, Sage can compute the characteristic polynomial, and the action of the Hecke operator on various homology groups.

TODO: Compute kernels, images, etc., of Hecke operators.

Author: William Stein (2007-03)

sage: A = J0(54)
sage: t5 = A.hecke_operator(5); t5
Hecke operator T_5 on Jacobian of the modular curve associated to the
congruence subgroup Gamma0(54)
sage: t5.charpoly().factor()
(x - 3)^2 * (x + 3)^2 * x^4
sage: B = A.new_quotient(); B
Modular abelian variety quotient of dimension 2 and level 54
sage: t5 = B.hecke_operator(5); t5
Hecke operator T_5 on Modular abelian variety quotient of dimension 2 and
level 54
sage: t5.charpoly().factor()
(x - 3)^2 * (x + 3)^2
sage: t5.action_on_homology().matrix()
[ 0  3  3 -3]
[-3  3  3  0]
[ 3  3  0 -3]
[-3  6  3 -3]

Class: HeckeOperator

class HeckeOperator
A Hecke operator acting on a modular abelian variety.
HeckeOperator( self, abvar, n)

Create the Hecke operator of index $ n$ acting on the abelian variety abvar.

Input:

abvar
- a modular abelian variety
n
- a positive integer

sage: J = J0(37)
sage: T2 = J.hecke_operator(2); T2
Hecke operator T_2 on Jacobian of the modular curve associated to the
congruence subgroup Gamma0(37)

Functions: action_on_homology,$ \,$ characteristic_polynomial,$ \,$ charpoly,$ \,$ index

action_on_homology( self, [R=Integer Ring])

Return the action of this Hecke operator on the homology $ H_1(A; R)$ of this abelian variety with coefficients in $ R$ .

sage: A = J0(43)
sage: t2 = A.hecke_operator(2); t2
Hecke operator T_2 on Jacobian of the modular curve associated to the
congruence subgroup Gamma0(43)
sage: h2 = t2.action_on_homology(); h2
Hecke operator T_2 on Integral Homology of Jacobian of the modular curve
associated to the congruence subgroup Gamma0(43)
sage: h2.matrix()
[-2  1  0  0  0  0]
[-1  1  1  0 -1  0]
[-1  0 -1  2 -1  1]
[-1  0  1  1 -1  1]
[ 0 -2  0  2 -2  1]
[ 0 -1  0  1  0 -1]
sage: h2 = t2.action_on_homology(GF(2)); h2
Hecke operator T_2 on Homology with coefficients in Finite Field of size 2
of Jacobian of the modular curve associated to the congruence subgroup
Gamma0(43)
sage: h2.matrix()
[0 1 0 0 0 0]
[1 1 1 0 1 0]
[1 0 1 0 1 1]
[1 0 1 1 1 1]
[0 0 0 0 0 1]
[0 1 0 1 0 1]

characteristic_polynomial( self, [var=x])

Return the characteristic polynomial of this Hecke operator in the given variable.

Input:

var
- a string (default: 'x')

Output: a polynomial in var over the rational numbers.

sage: A = J0(43)[1]; A
Modular abelian variety quotient of dimension 2 and level 43
sage: t2 = A.hecke_operator(2); t2
Hecke operator T_2 on Modular abelian variety quotient of dimension 2 and
level 43
sage: f = t2.characteristic_polynomial(); f
x^4 - 4*x^2 + 4
sage: f.parent()
Univariate Polynomial Ring in x over Integer Ring
sage: f.factor()
(x^2 - 2)^2
sage: t2.characteristic_polynomial('y')
y^4 - 4*y^2 + 4

charpoly( self, [var=x])

Synonym for self.characteristic_polynomial(var).

Input:

var
- string (default: 'x')

sage: A = J1(13)
sage: t2 = A.hecke_operator(2); t2
Hecke operator T_2 on Jacobian of the modular curve associated to the
congruence subgroup Gamma1(13)
sage: f = t2.charpoly(); f
x^4 + 6*x^3 + 15*x^2 + 18*x + 9
sage: f.factor()
(x^2 + 3*x + 3)^2
sage: t2.charpoly('y')
y^4 + 6*y^3 + 15*y^2 + 18*y + 9

index( self)

Return the index of this Hecke operator. (For example, if this is the operator $ T_n$ , then the index is the integer $ n$ .)

Output:

n
- a (Sage) Integer

sage: J = J1(12345)
sage: t = J.hecke_operator(997)
sage: t
Hecke operator T_997 on Jacobian of the modular curve associated to the
congruence subgroup Gamma1(12345)
sage: t.index()
997
sage: type(t.index())
<type 'sage.rings.integer.Integer'>

Special Functions: __init__,$ \,$ _repr_

_repr_( self)

String representation of this Hecke operator.

sage: J = J0(37)
sage: J.hecke_operator(2)._repr_()
'Hecke operator T_2 on Jacobian of the modular curve associated to the
congruence subgroup Gamma0(37)'

See About this document... for information on suggesting changes.