Endomorphism Algebras and Hom Spaces

Contents

Creation

Let A and B be modular abelian varieties. Then one can create the finite-rank free abelian group of homomorphisms from A to B or the vector space of homomorphisms in the category of abelian varieties up to isogeny. It is also possible to create the endomorphism algebra of an abelian variety. Such creations do non-trivial computations until further information is requested of the structures, such as rank or basis. In particular, such creations do not compute Hom(A, B).

Hom(A, B) : ModAbVar, ModAbVar -> HomModAbVar
Hom(A, B, oQ) : ModAbVar, ModAbVar, BoolElt -> HomModAbVar
Return the group of homomorphisms from the abelian variety A to the abelian variety B. If the argument oQ is given and is true, return the vector space generated by such homomorphisms.
End(A) : ModAbVar -> HomModAbVar
End(A, oQ) : ModAbVar, BoolElt -> HomModAbVar
The endomorphism ring of the abelian variety A. If oQ is given and is true, return the endomorphism algebra.
BaseExtend(H, R) : HomModAbVar, Rng -> HomModAbVar
The space H tensor R, where H is a group of homomorphisms of a modular abelian variety and R is the rational numbers or integers. When R=Q , this is the space of homomorphisms in the category of abelian varieties up to isogeny.
HeckeAlgebra(A) : ModAbVar -> HomModAbVar
The Hecke algebra associated to the abelian variety A, which is a commutative subring of End(A) generated by Hecke operators. For an abelian variety attached to modular symbols, this is the algebra induced by Hecke operators acting on modular symbols (homology). For a general abelian variety, let π :J to A and e:A to J be the modular parameterization and embedding of A. Then this is the ring of endomorphisms obtained by pulling back the Hecke algebra on J to A using π and e, i.e., it is e * T * π , where T is the Hecke ring of J. For example, since J1(N) is represented as a quotient of J0(N), the Hecke algebra is not what you might expect but may differ by some finite index.

Example ModAbVar_Homspace-Creation (H145E65)

> A := JZero(11); B := JZero(33);
> Hom(A,B);
Group of homomorphisms from JZero(11) to JZero(33)
> Hom(A,B,true);
Group of homomorphisms from JZero(11) to JZero(33) in the category of
abelian varieties up to isogeny
> End(A);
Group of homomorphisms from JZero(11) to JZero(11)
> End(A,true);
Group of homomorphisms from JZero(11) to JZero(11) in the category of
abelian varieties up to isogeny
> BaseExtend(Hom(A,B),RationalField());
_Q: Group of homomorphisms from JZero(11) to JZero(33) in the category
of abelian varieties up to isogeny
> HeckeAlgebra(A);
HeckeAlg(JZero(11)): Group of homomorphisms from JZero(11) to JZero(11)

Subgroups and Subrings

Subgroups of Hom(A, B) can also be formed as well as subrings of End(A, B). Magma provides the computation of saturations of subgroups of Hom(A, B) where A and B are abelian varieties.

Subgroup(X) : [MapModAbVar] -> HomModAbVar
The group of homomorphisms from the abelian variety A to the abelian variety B generated by the homomorphisms of abelian varieties in the sequence X.
Subgroup(X, oQ : parameters) : [MapModAbVar], BoolElt -> HomModAbVar
    IsBasis: BoolElt                    Default: false
The group of homomorphisms generated by homomorphisms of abelian varieties in the sequence X. If the parameter IsBasis is true, then it is assumed that the elements of X are a basis for their span. If the argument oQ is true, return the vector space generated by such homomorphisms.
Subring(X) : [MapModAbVar] -> HomModAbVar
Subring(X, oQ) : [MapModAbVar], BoolElt -> HomModAbVar
The ring of endomorphisms of a modular abelian variety generated by the endomorphisms in the sequence X. It does not need to contain unity. If the argument oQ is given and is true, return the algebra generated by such endomorphisms.
Subring(phi) : MapModAbVar -> HomModAbVar
The ring of endomorphisms generated by the endomorphism φ of an abelian variety. It does not need to contain unity.
Saturation(H) : HomModAbVar -> HomModAbVar
The saturation of the group H of homomorphisms of abelian varieties in all homomorphisms. Suppose A and B are abelian varieties and H is a subgroup of Hom(A, B). Then Hom(A, B) is a free Z-module, and the saturation of H in Hom(A, B) is a group H' that contains H with finite index such that the quotient of Hom(A,B) by H' is torsion free.
RingGeneratedBy(H) : HomModAbVar -> HomModAbVar
The ring of endomorphisms generated by the endomorphisms in the group H of homomorphisms between abelian varieties.

Example ModAbVar_Homspace-Subgroups__and_Subrings (H145E66)

In this example we use the Saturation command to find the integers N up to 60 such that the Hecke algebra of J0(N) is not saturated in the full ring of endomorphisms.
> function ind(N)
>    H := HeckeAlgebra(JZero(N));
>    return Index(Saturation(H),H);
> end function;
> for N in [2..60] do
>    i := ind(N);
>    if i gt 1 then N, i; end if;
> end for;
44 2
46 2
54 3
56 2
60 2
Note that multiplicity one fails at 3 for J0(54). It might be interesting to find a precise relationship between failure of multiplicity one and the index of the Hecke algebra T in its saturation.

Example ModAbVar_Homspace-Subgroups__and_Subrings2 (H145E67)

This example illustrates constructing a subgroup.
> J := JZero(33);
> E := End(J); E;
Group of homomorphisms from JZero(33) to JZero(33)
> H := Subgroup([E.1, E.3]); H;
Group of homomorphisms from JZero(33) to JZero(33)
> Rank(H);
2

Example ModAbVar_Homspace-Subgroups__and_Subrings3 (H145E68)

We compute the subring generated by T2 on J0(100).
> T2 := HeckeOperator(JZero(100),2);
> R := Subring(T2); R;
Group of homomorphisms from JZero(100) to JZero(100)
> Rank(R);
3

Example ModAbVar_Homspace-Subgroups__and_Subrings4 (H145E69)

The Hecke operator T2 and the main Atkin-Lehner involution together generate a commutative ring of rank 10 over Z.
> J := JZero(100);
> T2 := HeckeOperator(J,2);W := AtkinLehnerOperator(J,100);
> R := Subring([End(J) | T2,W]);
> Dimension(R);
10
> Dimension(End(J));
13
> IsRing(R);
true
> IsCommutative(R);
false

Pullback and Pushforward of Hom Spaces

A homomorphism of abelian varieties induces a map from one space of homomorphisms into another. The three commands below compute the image of such maps.

Pullback(H, phi) : HomModAbVar, MapModAbVar -> HomModAbVar
Given a space of homomorphisms H in Hom(A, B) and a morphism φ :B to C, compute the image of H in Hom(A, C) via the map that sends f to f * φ .
Pullback(phi, H) : MapModAbVar, HomModAbVar -> HomModAbVar
Given a space of homomorphisms H in Hom(A, B) and a morphism φ :C to A, compute the image of H in Hom(C, B) via the map that sends f to φ * f.
Pullback(phi, H, psi) : MapModAbVar, HomModAbVar, MapModAbVar -> HomModAbVar
Suppose H is a space of homomorphisms A to B and φ :C to A and ψ :B to D. Then this intrinsic computes and returns the ring of homomorphisms of A of the form φ * f * ψ , where f is in H.

Example ModAbVar_Homspace-Pullback_and_Pushforward_of_Hom_Spaces (H145E70)

> H := Hom(JZero(11),JZero(22));
> phi := NaturalMap(JZero(22),JZero(33));
> psi := NaturalMap(JZero(33),JZero(11));
> Pullback(H,phi);
Group of homomorphisms from JZero(11) to JZero(33)
> Pullback(psi,H);
Group of homomorphisms from JZero(33) to JZero(22)
> Pullback(psi,H,phi);
Group of homomorphisms from JZero(33) to JZero(33)

Arithmetic

The + and meet command compute the sum and intersection of two subgroups of Hom(A, B).

H1 + H2 : HomModAbVar, HomModAbVar -> HomModAbVar
The subgroup generated by H1 and H2, where H1 and H2 are assumed to both be subgroups of Hom(A, B), for abelian varieties A and B.
H1 meet H2 : HomModAbVar, HomModAbVar -> HomModAbVar
The intersection of H1 and H2, where H1 and H2 are assumed to both be subgroups of Hom(A, B), for abelian varieties A and B.

Example ModAbVar_Homspace-Arithmetic (H145E71)

> J := JZero(33);
> E := End(J);
> H1 := HeckeAlgebra(J); H1;
HeckeAlg(JZero(33)): Group of homomorphisms from JZero(33) to JZero(33)
> H2 := Subgroup([E.1,E.2]); H2;
Group of homomorphisms from JZero(33) to JZero(33)
> Dimension(E);
5
> Dimension(H1);
3
> Dimension(H2);
2
> Dimension(H1 meet H2);
1
> Dimension(H1 + H2);
4

Quotients

If H1 and H2 are subspaces of Hom(A, B) then the index of H1 in H2 can be computed. The quotient H2/H1 can also be taken.

Index(H2, H1) : HomModAbVar, HomModAbVar -> RngIntElt
The index of H1 in H2, where H1 and H2 are both subgroups of Hom(A, B), for abelian varieties A and B. If H1 is contained in H2, this is just the cardinality of H2/H1, or 0 if this cardinality is infinite. If H1 is not contained in H2, then the index is by definition the generalized lattice index [H1 + H2:H1]/[H1 + H2:H2], assuming the denominator is nonzero, i.e., that H2 has finite index in H1 + H2 (an error occurs if H2 does not have finite index in H1 + H2).
Quotient(H2, H1) : HomModAbVar, HomModAbVar -> GrpAb, Map, Map
H2 / H1 : HomModAbVar, HomModAbVar -> GrpAb, Map, Map
The abelian group quotient H2/H1, a map from H2 to this quotient, and a lifting map from this quotient to H2, where H1 and H2 are subgroups of Hom(A, B) and A and B are abelian varieties.

Example ModAbVar_Homspace-Quotients (H145E72)

We define the subgroup of End(J0(54)) generated by T1, T2, T3, and T4, find that it has infinite index in the full Hecke algebra, and compute the quotient, which is Z.
> J := JZero(54);
> T := HeckeAlgebra(J);
> Dimension(T);
4
> S := Subgroup([HeckeOperator(J,n) : n in [1..4]]);
> Dimension(S);
3
> Index(T,S);
0
> Quotient(T,S);
Abelian Group isomorphic to Z
Defined on 1 generator (free)
Mapping from: HomModAbVar: T to Abelian Group isomorphic to Z
Defined on 1 generator (free) given by a rule [no inverse]
Mapping from: Abelian Group isomorphic to Z
Defined on 1 generator (free) to HomModAbVar: T given by a rule
[no inverse]
> G := T/S; G;
Abelian Group isomorphic to Z
Defined on 1 generator (free)

We compute the subgroup generated by T3, T4, T5, and T10, and find that it has index 6 in its saturation.

> S := Subgroup([HeckeOperator(J,n) : n in [3,4,5,10]]);
> Sat := Saturation(S);
> Index(Sat,S);
6
> Index(S,Sat);
1/6
> Invariants(Sat/S);
[ 6 ]

Invariants

Domain and codomain of the homomorphisms in a space of homomorphisms of abelian varieties can both be retrieved from the space as well as a field which all homomorphisms in a space are defined over.

A possibly time consuming computation is that of the discriminant of a space of homomorphisms. Discriminants of Hecke algebras are particularly interesting to compute because they are closely related to congruences between eigenforms.

Domain(H) : HomModAbVar -> ModAbVar
The domain of the homomorphisms in the group H of homomorphisms between modular abelian varieties.
Codomain(H) : HomModAbVar -> ModAbVar
The codomain of the homomorphisms in the group H of homomorphisms between modular abelian varieties.
FieldOfDefinition(H) : HomModAbVar -> ModAbVar
A field over which all homomorphisms in the group H of homomorphisms of abelian varieties are defined. It is not guaranteed to be minimal.
Discriminant(H) : HomModAbVar -> FldRatElt, AlgMatElt
The discriminant of the space H of homomorphisms of abelian varieties with respect to the trace pairing matrix. This is the trace of endomorphisms acting on homology, not left multiplication on themselves, so, e.g., the discriminant of the Hecke algebra will be 2d times as big as it would be otherwise (if the sign is 0), where d is the dimension of A. If H is over Q , this function returns the discriminant of the lattice of elements in H that are homomorphisms.

Example ModAbVar_Homspace-Invariants (H145E73)

> H := Hom(JZero(11),JZero(33));
> Domain(H);
Modular abelian variety JZero(11) of dimension 1 and level 11 over Q
> Codomain(H);
Modular abelian variety JZero(33) of dimension 3 and level 3*11 over
Q
> FieldOfDefinition(H);
Rational Field
> A := BaseExtend(JZero(11),ComplexField());
> H := End(A);
> FieldOfDefinition(H);
Complex Field
Though H=Z, so the discriminant of the abstract ring H is 1, the discriminant of the trace pairing of H acting on homology is 2:
> Discriminant(H);
2
[2]

The prime p=389 is the only known example where p divides the discriminant of the Hecke algebra of J0(p).

> T := HeckeAlgebra(JZero(389,2 : Sign := +1));
> d := Discriminant(T);
> J := JZero(389,2,+1);
> T := HeckeAlgebra(J);
> d := Discriminant(T);
> d mod 389;
0
> Factorization(d);
[ <2, 53>, <3, 4>, <5, 6>, <31, 2>, <37, 1>, <389, 1>, <3881, 1>,
<215517113148241, 1>, <477439237737571441, 1> ]
All the "action" at 389 comes from the 20-dimensional simple factor.
> A := J(5); A;
Modular abelian variety 389E of dimension 20, level 389 and
conductor 389^20 over Q with sign 1
> Factorization(Discriminant(HeckeAlgebra(A)));
[ <2, 98>, <5, 41>, <389, 1>, <215517113148241, 1>,
<477439237737571441, 1> ]

Structural Invariants

The following commands provide access to a basis and generators for spaces of homomorphisms.

Basis(H) : HomModAbVar -> SeqEnum
Generators(H) : HomModAbVar -> SeqEnum
A basis for the space H of homomorphisms of abelian varieties.
Dimension(H) : HomModAbVar -> RngIntElt
Rank(H) : HomModAbVar -> RngIntElt
The rank of the space H of homomorphisms of abelian varieties as a Z-module or Q-vector space.
Ngens(H) : HomModAbVar -> RngIntElt
The number of generators of the space H of homomorphisms of abelian varieties.
H . i : HomModAbVar, RngIntElt -> MapModAbVar
The ith generator of the space H of homomorphisms of abelian varieties.

Example ModAbVar_Homspace-Structural_Invariants (H145E74)

The following example illustrates each of the commands for Hom(J0(11), J0(33)).
> H := Hom(JZero(11),JZero(33));
> Basis(H);
[
    Homomorphism from JZero(11) to JZero(33) given on integral homology
    by:
    [ 0  2 -1 -2  0  1]
    [ 1  0 -1 -1  1  1],
    Homomorphism from JZero(11) to JZero(33) given on integral homology
    by:
    [ 1  0 -2  2 -3  0]
    [ 1 -1  0  1 -2  1]
]
> Dimension(H);
2
> Ngens(H);
2
> Rank(H);
2
> H.1;
Homomorphism from JZero(11) to JZero(33) given on integral homology by:
[ 0  2 -1 -2  0  1]
[ 1  0 -1 -1  1  1]

Matrix and Module Structure

The following commands associate lattices, vector spaces, matrix algebras, and matrix spaces to subspaces H of Hom(A, B).

Lattice(H) : HomModAbVar -> Lat
VectorSpace(H) : HomModAbVar -> ModTupFld
A lattice or vector space with basis obtained from the components of the matrices of a basis for the space H of homomorphisms of abelian varieties. This free Z-module is constructed from the Eltseqs of the all of the basis elements of H.
MatrixAlgebra(H) : HomModAbVar -> AlgMat
The matrix algebra generated by the underlying matrices of all elements in the space H of homomorphisms of abelian varieties, acting on homology.
RMatrixSpace(H) : HomModAbVar -> ModMatFld
The matrix space whose basis is the generators for the space H of homomorphisms of abelian varieties.
RModuleWithAction(H) : HomModAbVar -> ModED
A module over the ring R generated by the space H of homomorphisms of abelian varieties equipped with the action of H, where H must be a ring of endomorphisms.
RModuleWithAction(H, p) : HomModAbVar, RngIntElt -> ModED
A module over H tensor Fp equipped with the action of H tensor Fp, where H must be a ring of endomorphisms of an abelian variety that has not been tensored with Q .

Example ModAbVar_Homspace-Matrix_and_Module_Structure (H145E75)

We first demonstrate some of the commands with Hom(J0(11), J0(33)).

> H := Hom(JZero(11),JZero(33));
> Lattice(H);
Lattice of rank 2 and degree 12
Basis:
( 0  2 -1 -2  0  1  1  0 -1 -1  1  1)
( 1  0 -2  2 -3  0  1 -1  0  1 -2  1)
> RMatrixSpace(H);
RMatrixSpace of 2 by 6 matrices and dimension 2 over Integer Ring
> RMatrixSpace(BaseExtend(H,RationalField()));
KMatrixSpace of 2 by 6 matrices and dimension 2 over Rational
Field
> VectorSpace(H);
Vector space of degree 12, dimension 2 over Rational Field
User basis:
( 1  0 -2  2 -3  0  1 -1  0  1 -2  1)
( 0 -2  1  2  0 -1 -1  0  1  1 -1 -1)
Next we consider the endomorphism algebra of J0(22).
> H := End(JZero(22));
> MatrixAlgebra(H);
Matrix Algebra of degree 4 with 4 generators over Integer Ring
> RModuleWithAction(H);
RModule(IntegerRing(), 4)
Action:
[1 0 0 0]
[0 1 0 0]
[0 0 1 0]
[0 0 0 1]
[ 0  1  0  1]
[ 0  0  0  0]
[ 1  0  1 -1]
[ 0  1  0  1]
[ 0  1  0 -1]
[ 0  1  0  0]
[-1  2 -1  1]
[-1  1  0  0]
[ 0  1 -2  1]
[-1  2 -1  0]
[-1  0  1 -1]
[ 0 -1  1 -1]

Example ModAbVar_Homspace-Matrix_and_Module_Structure3 (H145E76)

The following example illustrates that MatrixAlgebra computes the algebra generated by H, even if H is not itself an algebra.
> H := Subgroup([HeckeOperator(JZero(33),2)]); H;
Group of homomorphisms from JZero(33) to JZero(33)
> A := MatrixAlgebra(H); A;
Matrix Algebra of degree 6 with 1 generator over Integer Ring
> Dimension(A);
2
> Dimension(H);
1

Predicates

These commands determine whether a space of homomorphisms is a ring, if it's commutative, if it's a field (and what field), if it was created using the HeckeAlgebra command, whether it has been tensored with Q, or whether it is saturated in the full ring of endomorphisms. Equality and inclusion can also be tested.

IsRing(H) : HomModAbVar -> BoolElt
Return true if the space H of homomorphisms of abelian varieties is a ring. (Note that a ring does not have to contain unity.)
IsField(H) : HomModAbVar -> BoolElt, Fld, Map, Map
Return true if the space H of homomorphisms of abelian varieties is a field, and if so returns that field, a map from the field to H, and a map from H to the field.
IsCommutative(H) : HomModAbVar -> BoolElt
Return true if and only if the space H of homomorphisms of abelian varieties is a commutative ring.
IsHeckeAlgebra(H) : HomModAbVar -> BoolElt
Return true if the space H of homomorphisms of abelian varieties was constructed using the HeckeAlgebra command.
IsOverQ(H) : HomModAbVar -> HomModAbVar
Return true if the space H of homomorphisms of abelian varieties is a Q-vector space instead of just a Z-module, i.e., a space of homomorphisms up to isogeny.
IsSaturated(H) : HomModAbVar -> BoolElt
Return true if the space H of homomorphisms of abelian varieties is equal to its saturation, i.e., the quotient of the ambient Hom(A, B) by H is torsion free.
H1 eq H2 : HomModAbVar, HomModAbVar -> BoolElt
Return true if the spaces H1 and H2 of homomorphisms of abelian varieties are equal.
H1 subset H2 : HomModAbVar, HomModAbVar -> BoolElt
Return true if the spaces H1 and H2 of homomorphisms of abelian varieties are both subgroups of a common Hom(A, B), and in addition H1 is a subset of H2.

Example ModAbVar_Homspace-Predicates (H145E77)

We illustrate several of the commands for the endomorphism ring of J0(33).
> H := End(JZero(33));
> IsCommutative(H);
false
> IsField(H);
false 0 0 0
> IsHeckeAlgebra(H);
false
> IsOverQ(H);
false
> IsOverQ(BaseExtend(H,RationalField()));
true
> IsRing(H);
true
> IsSaturated(H);
true
Next we compare the endomorphism ring with the Hecke algebra of J0(33).
> T := HeckeAlgebra(JZero(33));
> T eq H;
false
> T subset H;
true
> IsSaturated(T);
true
> IsRing(T);
true
> IsHeckeAlgebra(T);
true
> IsCommutative(T);
true
> IsField(BaseExtend(T,RationalField()));
false 0 0 0
The Hecke algebra of J0(33) is actually a product of 3 fields, so it is not a field. In contrast, the Hecke algebra of J0(23) is a field.
> T := HeckeAlgebra(JZero(23));
> IsField(T);
false 0 0 0
In the following code, the answer you get might be different, since computation of the defining polynomial for the number field involves a randomized algorithm.
> IsField(BaseExtend(T,RationalField()));
true Number Field with defining polynomial x^2 + 11*x + 29 over
the Rational Field
Mapping from: Number Field with defining polynomial x^2 + 11*x +
    29 over the Rational Field to HeckeAlg(JZero(23))_Q: Group of
homomorphisms from JZero(23) to JZero(23) in the category of abelian
varieties up to isogeny  given by a rule [no inverse]
Mapping from: HeckeAlg(JZero(23))_Q: Group of homomorphisms from
JZero(23) to JZero(23) in the category of abelian varieties up to
isogeny  to Number Field with defining polynomial x^2 + 11*x + 29
over the Rational Field given by a rule [no inverse]

Elements

Elements of spaces of homomorphisms exist as maps between abelian varieties as discussed in Section Homomorphisms .

H ! x : HomModAbVar, . -> BoolElt, MapModAbVar
Coerce x into the space H of homomorphisms of abelian varieties. For this coercion to be successful x must be a homomorphism between 2 abelian varieties, an integer or a rational number or a matrix coercible into the matrix space of H base extended to the rational numbers.

Example ModAbVar_Homspace-Random_Element (H145E78)

> H := End(JZero(22));
> H ! Matrix(Integers(), 4, 4,
>              [9, -4, 0, 2, 0, 6, 0, 0, 2, -6, 11, -2, 3, -4, -0, 8]);
Homomorphism from JZero(22) to JZero(22) given on integral homology by:
[ 9 -4  0  2]
[ 0  6  0  0]
[ 2 -6 11 -2]
[ 3 -4  0  8]
V2.28, 13 July 2023