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
self, abvar, n) |
Create the Hecke operator of index
acting on the abelian
variety abvar.
Input:
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
self, [R=Integer Ring]) |
Return the action of this Hecke operator on the homology
of this abelian variety with coefficients in
.
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]
self, [var=x]) |
Return the characteristic polynomial of this Hecke operator in the given variable.
Input:
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
self, [var=x]) |
Synonym for self.characteristic_polynomial(var)
.
Input:
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
self) |
Return the index of this Hecke operator. (For example, if this
is the operator
, then the index is the integer
.)
Output:
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_
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)'