Creation and Basic Functions#

The functions described below create modular abelian varieties, combine them together in various ways, and obtain simple information about them.

Modular abelian varieties are much less restricted than spaces of modular symbols as one can take arbitrary finite direct sums.

Creating the Modular Jacobian \(J_0(N)\)#

The JZero command will create the Jacobian \(J_0(N)\) of the modular curve \(X_0(N)\) (which parameterizes isomorphism classes of pairs of elliptic curves and cyclic subgroups of order \(N\)). Higher weight motivic analogues of this Jacobian can be created. Computations can be carried out in the \(+1\) or \(-1\) quotient of homology for efficiency, though certain results will be off by factors of \(2\).

JZero(N : parameters): RngIntElt -> ModAbVar#
JZero(N, k : parameters): RngIntElt, RngIntElt -> ModAbVar#
Sign: RngIntElt                    Default: 0

Create the modular abelian variety \(J_0(N)\) of level \(N\) and weight \(2\) or weight \(k\geq 2\), i.e., the Jacobian of the modular curve \(X_0(N)\). The parameter Sign determines whether computations will be carried out in the \(+1\) or \(-1\) quotient of homology.

Example: Modabvar Creating The Modular Jacobian $J 0(N)$ (ex-a544ba)#
> JZero(23);
Modular abelian variety JZero(23) of dimension 2 and level 23 over Q
> JZero(23 : Sign := +1);
Modular abelian variety JZero(23) of dimension 2 and level 23 over Q
with sign 1
> JZero(23,4);
Modular motive JZero(23,4) of dimension 5 and level 23 over Q
> JZero(23,4 : Sign := -1);
Modular motive JZero(23,4) of dimension 5 and level 23 over Q with
sign -1
> JZero(389,2 : Sign := +1);
Modular abelian variety JZero(389) of dimension 32 and level 389
over Q with sign 1

Run in calculator

Creating the Modular Jacobians \(J_1(N)\) and \(J_H(N)\)#

The JOne command creates the Jacobian of the modular curve \(X_1(N)\) (which parameterizes isomorphism classes of pairs of elliptic curves and cyclic subgroups of order \(N\)). The command Js creates an abelian variety isogenous to \(J_1(N)\); more precisely it is the product of abelian varieties \(J_{\varepsilon}(N)\), where \(J_{\varepsilon}(N)\) is the abelian variety attached to all modular forms whose character is a Galois conjugate of \(\varepsilon\). Creating \(J_s(N)\) is much faster than creating \(J_1(N)\), since less time is spent finding the integral structure on homology.

The JH command creates the Jacobian \(J_H(N)\) of the curve \(X_H(N)\), which is the quotient of \(X_1(N)\) by the subgroup \(H\) of the integers modulo \(N\).

JOne(N : parameters): RngIntElt -> ModAbVar#
JOne(N, k : parameters): RngIntElt, RngIntElt -> ModAbVar#
Sign: RngIntElt                    Default: 0

Create the modular abelian variety \(J_1(N)\) of level \(N\) and weight \(k\), if given, or \(2\), i.e., the Jacobian of the modular curve \(X_1(N)\). Note that creating and finding the integral structure on \(J_s(N)\), which is isogenous to \(J_1(N)\), is much faster. Computing with \(J_1(N)\) may be expensive.

Js(N : parameters): RngIntElt -> ModAbVar#
Js(N, k : parameters): RngIntElt, RngIntElt -> ModAbVar#
Sign: RngIntElt                    Default: 0

A modular abelian variety that is \({\mathbb{Q}}\)-isogenous to the weight \(k\) (or \(2\)) version of \(J_1(N)\). More precisely, the direct sum of the modular abelian varieties attached to modular symbols spaces with Nebentypus.

JH(N, d : parameters): RngIntElt, RngIntElt -> ModAbVar#
JH(N, k, d : parameters): RngIntElt, RngIntElt, RngIntElt -> ModAbVar#
Sign: RngIntElt                    Default: 0

Suppose \(H\) is some (cyclic) subgroup of \(G=({\mathbb{Z}}/N{\mathbb{Z}})^*\) such that \(G/H\) has order \(d\). Create the modular abelian variety \(J_H(N)\) of level \(N\) and weight \(k\) (or \(2\) if \(k\) not given), where \(J_H(N)\) is isogenous to the Jacobian of the modular curve \(X_H(N)\) associated to the subgroup of \({\operatorname{SL}}_2({\mathbb{Z}})\) of matrices \([a,b;c,d]\) with \(c\) divisible by \(N\) and \(a\) in \(H\) modulo \(N\). It is the product of modular symbols varieties \(J(\epsilon )\) for all Dirichlet characters \(\epsilon\) that are trivial on \(H\).

The parameter Sign determines whether computations will be carried out in the \(+1\) or \(-1\) quotient of homology.

JH(N, gens : parameters): RngIntElt, [RngIntElt] -> ModAbVar#
JH(N, k, gens : parameters): RngIntElt, RngIntElt, [RngIntElt] -> ModAbVar#
Sign: RngIntElt                    Default: 0

Let \(H\) be the subgroup of \(({\mathbb{Z}}/N{\mathbb{Z}})^*\) generated by the sequence of integers, \(gens\). Create the modular abelian variety \(J_H(N)\) of level \(N\) and weight \(k\) (or \(2\) if \(k\) not given), where \(J_H(N)\) is isogenous to the Jacobian of the modular curve \(X_H(N)\) associated to the subgroup of \({\operatorname{SL}}_2({\mathbb{Z}})\) of matrices \([a,b;c,d]\) with \(c\) divisible by \(N\) and \(a\) in \(H\) modulo \(N\). It is the product of modular symbols variety \(J(\epsilon )\) for all Dirichlet characters \(\epsilon\) that are trivial on \(H\).

The parameter Sign determines whether computations will be carried out in the \(+1\) or \(-1\) quotient of homology.

Example: Modabvar Creating The Modular Jacobians $J 1(N)$ And $J H(N)$ (ex-9a6bb8)#
> JOne(13);
Modular abelian variety JOne(13) of dimension 2 and level 13 over Q
> JOne(13,4);
Modular motive JOne(13,4) of dimension 15 and level 13 over Q
> JOne(13,4 : Sign := 1);
Modular motive JOne(13,4) of dimension 15 and level 13 over Q
> JH(13,6);
Modular abelian variety J_H(13) of dimension 2 and level 13 over Q
> JH(13,3);
Modular abelian variety J_H(13) of dimension 0 and level 13 over Q
> JH(13,[-1]);
Modular abelian variety J_H(13) of dimension 2 and level 13 over Q
> JOne(17);
Modular abelian variety JOne(17) of dimension 5 and level 17 over Q
> Js(17);
Modular abelian variety Js(17) of dimension 5 and level 17 over Q
> IsIsogenous(JOne(17),Js(17));
true
> Degree(NaturalMap(JOne(17),Js(17)));
16
> JH(17,2);
Modular abelian variety J_H(17) of dimension 1 and level 17 over Q
> JH(17,4);
Modular abelian variety J_H(17) of dimension 1 and level 17 over Q
> JH(17,8);
Modular abelian variety J_H(17) of dimension 5 and level 17 over Q

Run in calculator

Abelian Varieties Attached to Modular Forms#

The following commands create abelian varieties attached to spaces of modular forms, sequences of spaces of forms, newforms, and characters. If an input space of modular forms is not cuspidal, Magma automatically replaces it with its cuspidal subspace.

ModularAbelianVariety(M : parameters): ModFrm -> ModAbVar#
Sign: RngIntElt                    Default: 0

The abelian variety attached to the modular forms space \(M\).

ModularAbelianVariety(X : parameters): [ModFrm] -> ModAbVar#
Sign: RngIntElt                    Default: 0

The abelian variety attached to the sequence \(X\) of modular forms spaces. This is the direct sum of the spaces attached to each element of the sequence.

ModularAbelianVariety(eps : parameters): GrpDrchElt -> ModAbVar#
ModularAbelianVariety(eps, k : parameters): GrpDrchElt, RngIntElt -> ModAbVar#
Sign: RngIntElt                    Default: 0

The abelian variety associated to the dirichlet character \(\epsilon\). This corresponds to the space of modular forms of weight \(k\) and character any Galois conjugate of \(\epsilon\). We include all Galois conjugates in order to obtain an abelian variety that is defined over \({\mathbb{Q}}\).

ModularAbelianVariety(f): ModFrmElt -> ModAbVar#

The abelian variety attached to the newform \(f\).

Newform(A): ModAbVar -> ModFrmElt#

A newform \(f\) such that the modular abelian variety \(A\) is isogenous to the newform abelian variety \(A_f\). An error occurs if \(A\) is not attached to a newform.

Example: Modabvar Abelian Varieties Attached To Modular Forms (ex-b5bfe5)#

We first create the modular abelian variety attached to the spaces \(S_2(\Gamma_0(11))\) and \(S_2(\Gamma_1(13))\). This is the direct sum of \(J_0(11)\) with \(J_1(13)\).

> X := [ModularForms(11,2), ModularForms(Gamma1(13),2)];
> A := ModularAbelianVariety(X); A;
Modular abelian variety of dimension 3 and level 11*13 over Q
> IsIsomorphic(A, JZero(11)*JOne(13));
true Homomorphism N(1) from modular abelian variety of dimension
3 to JZero(11) x JOne(13) (not printing 6x6 matrix)

Run in calculator

Next we create the modular abelian variety \(A\) attached to \(S_2(\Gamma_1(17))\) along with \(J_1(17)\) and \(J_s(17)\). We then note that \(A\) is isomorphic to \(J_1(17)\), but there is no reason that \(A\) should be isomorphic to \(J_s(17)\) (they are probably only isogenous). This example illustrates the fact that the abelian variety computed by Magma attached to \(S_2(\Gamma_1(17))\) is \(J_1(17)\) rather than \(J_s(17)\). (Recall that \(J_s(N)\) is a product of copies of abelian varieties corresponding to conjugacy classes of characters.)

> A := ModularAbelianVariety(ModularForms(Gamma1(17),2)); A;
Modular abelian variety of dimension 5 and level 17 over Q
> B := JOne(17); B;
Modular abelian variety JOne(17) of dimension 5 and level 17 over Q
> C := Js(17); C;
Modular abelian variety Js(17) of dimension 5 and level 17 over Q
> IsIsomorphic(A,B);
true Homomorphism from modular abelian variety of dimension 5 to
JOne(17) (not printing 10x10 matrix)
> Degree(NaturalMap(A,C));
16

Run in calculator

Example: Modabvar Abelian Varieties Attached To Modular Forms3 (ex-4f14a0)#

If \(\varepsilon\) is a Dirichlet character and \(k\geq 2\) is an integer, let \(S\) be the space of modular forms with weight \(k\) and character a Galois conjugate of \(\varepsilon\). The command ModularAbelianVariety(eps,k) computes the modular abelian variety attached to \(S\).

> G<eps> := DirichletGroup(13,CyclotomicField(12));
> Order(eps^2);
6
> ModularAbelianVariety(eps^2);
Modular abelian variety of dimension 2 and level 13 over Q
> ModularAbelianVariety(eps,3);
Modular motive of dimension 4 and level 13 over Q

Run in calculator

Next we compute the modular abelian variety attached to a newform in \(S_2(\Gamma_1(25))\).

> S := CuspForms(Gamma1(25),2);
> N := Newforms(S);
> #N;
2
> f := N[1][1];
> PowerSeries(f,4);
q + a*q^2 + 1/1355*(941*a^7 + 4820*a^6 + 11150*a^5 + 11522*a^4 +
    3582*a^3 + 10041*a^2 + 24432*a - 5718)*q^3 + O(q^4)
> A_f := ModularAbelianVariety(f);
> A_f;
Modular abelian variety Af of dimension 8 and level 5^2 over Q

Run in calculator

The abelian variety \(A_f\) also determines the newform:

> PowerSeries(Newform(A_f),4);
q + a*q^2 + 1/1355*(941*a^7 + 4820*a^6 + 11150*a^5 + 11522*a^4 +
    3582*a^3 + 10041*a^2 + 24432*a - 5718)*q^3 + O(q^4)

Run in calculator

Example: Modabvar Abelian Varieties Attached To Modular Forms5 (ex-84fa77)#

The Newform command works even if \(A\) wasn’t explicitly created using a newform.

> A := Decomposition(JZero(37))[1];
> Newform(A);
q - 2*q^2 - 3*q^3 + 2*q^4 - 2*q^5 + 6*q^6 - q^7 + O(q^8)

Run in calculator

Abelian Varieties Attached to Modular Symbols#

The commands below associate modular abelian varieties to spaces of modular symbols and to sequences of spaces of modular symbols. Conversely, they associate spaces of modular symbols to modular abelian varieties. If an input space of modular symbols is not cuspidal, it is replaced by its cuspidal subspace.

ModularAbelianVariety(M): ModSym -> ModAbVar#

The abelian variety attached to the modular symbols space \(M\).

ModularAbelianVariety(X): [ModSym] -> ModAbVar#

The abelian variety attached to the sequence \(X\) of modular symbols spaces.

ModularSymbols(A): ModAbVar -> SeqEnum#

A sequence of spaces of modular symbols associated to the abelian variety \(A\).

Example: Modabvar Abelian Varieties Attached To Modular Symbols (ex-1f9392)#

We create modular abelian varieties attached to several spaces of modular symbols.

> M := ModularSymbols(37,2);
> ModularAbelianVariety(M);
Modular abelian variety of dimension 2 and level 37 over Q
> M := ModularSymbols(Gamma1(17));
> ModularAbelianVariety(M);
Modular abelian variety of dimension 5 and level 17 over Q

Run in calculator

Note that the sign of the space of modular symbols determines the sign of the corresponding abelian variety.

> M := ModularSymbols(Gamma1(17),2,+1);
> A := ModularAbelianVariety(M); A;
Modular abelian variety of dimension 5 and level 17 over Q with sign 1

Run in calculator

We can also create an abelian variety attached to any sequence of modular symbols spaces.

> ModularAbelianVariety([ModularSymbols(11), ModularSymbols(Gamma1(13))]);
Modular abelian variety of dimension 3 and level 11*13 over Q

Run in calculator

Conversely, there is a sequence of modular symbols spaces associated to any abelian variety defined over \({\mathbb{Q}}\). These need not be the same as the spaces used to define the modular abelian variety; instead they are what is used internally in computations on that abelian variety.

> ModularSymbols(JOne(13));
[
    Modular symbols space of level 13, weight 2, character $.1,
    and dimension 2 over Cyclotomic Field of order 6 and degree 2
]
> ModularSymbols(JZero(37));
[
    Modular symbols space for Gamma_0(37) of weight 2 and
    dimension 4 over Rational Field
]
> A := JOne(17);
> ModularSymbols(A);
[
    Modular symbols space for Gamma_0(17) of weight 2 and
    dimension 2 over Rational Field,
    Modular symbols space of level 17, weight 2, character $.1,
    and dimension 2 over Cyclotomic Field of order 8 and degree 4
]

Run in calculator

Creation of Abelian Subvarieties#

Suppose \(A\) is an abelian variety and \(V\) is a vector subspace of the rational homology \(H_1(A,{\mathbb{Q}})\). Then it can be determined whether or not \(V\) is the rational homology of an abelian subvariety of \(A\), and if so that abelian subvariety can be computed.

The other commands below are used to create the zero-dimensional abelian variety.

DefinesAbelianSubvariety(A, V): ModAbVar, ModTupFld -> BoolElt, ModAbVar#

Return true if and only if the subspace \(V\) of rational homology defines an abelian subvariety of the variety \(A\). If so, also returns the abelian subvariety.

This intrinsic relies on knowing a complete decomposition of \(A\) as a product of simple abelian varieties (so it is currently restricted to abelian varieties for which such a decomposition can be computed in Magma, e.g., modular abelian varieties over \({\mathbb{Q}}\)).

ZeroModularAbelianVariety() -> ModAbVar#

The zero-dimensional abelian variety.

ZeroModularAbelianVariety(k): RngIntElt -> ModAbVar#

The zero-dimensional abelian variety of weight \(k\).

ZeroSubvariety(A): ModAbVar -> ModAbVar#

Returns the zero subvariety of the abelian variety \(A\).

Example: Modabvar Creation Of Abelian Subvarieties (ex-083b5e)#

We define two subspaces of the rational homology of \(J_0(33)\); one defines an abelian subvariety and the other does not.

> A := JZero(33);
> w3 := AtkinLehnerOperator(A,3);
> W := Kernel(Matrix(w3)+1);
> DefinesAbelianSubvariety(A,W);
true Modular abelian variety of dimension 1 and level 3*11 over Q
> V := RationalHomology(A);
> DefinesAbelianSubvariety(A,W + sub<V|[V.1]>);
false

Run in calculator

We create several zero-dimensional abelian varieties.

> ZeroModularAbelianVariety();
Modular abelian variety ZERO of dimension 0 and level 1 over Q
> ZeroModularAbelianVariety(2);
Modular abelian variety ZERO of dimension 0 and level 1 over Q
> ZeroSubvariety(JZero(11));
Modular abelian variety ZERO of dimension 0 and level 11 over Q

Run in calculator

Creation Using a Label#

As a useful shorthand, it is sometimes possible to create modular abelian varieties by giving a short string. If the string contains a single integer \(N\), e.g., 37, then the corresponding abelian variety is \(J_0(N)\). If it is of the form "<level>k<weight>", then it is the possibly motivic \(J_0(N)\) of weight \(k\). If it is of the form "<level>k<weight><isogeny code>", where <isogeny code> is one of "A", "B", \(\ldots\) "Z", "AA", "BB", \(\ldots\) "ZZ", "AAA", "BBB", \(\ldots\) then the corresponding abelian variety is JZero(N,k)(iso), where iso is a positive integer, and "A" corresponds to iso=1, "Z" to iso=26, "AA" to iso=27, "ZZ" to iso=52, "AAA" to iso=53, etc.

This labeling convention is the same as the one used for modular symbols, and extends the one used for Cremona’s database of elliptic curves, except that Cremona’s database contains some random scrambling for levels between \(56\) and \(450\). If the weight part of the label is omitted, the weight is assumed to be \(2\). To get the optimal quotient of \(J_0(N)\) with Cremona label \(s\), set the optional parameter Cremona equal to true.

ModularAbelianVariety(s : parameters): MonStgElt -> ModAbVar#
Sign   : RngIntElt                    Default: 0
Cremona: BoolElt                      Default: false

The abelian variety defined by the string \(s\). The parameter Sign determines whether computations will be carried out in the \(+1\) or \(-1\) quotient of homology. If the parameter Cremona is set to true, the optimal quotient of \(J_0(N)\) with Cremona label \(s\) will be returned.

Example: Modabvar Creation Using A Label (ex-a0cbff)#
> ModularAbelianVariety("37");
Modular abelian variety 37 of dimension 2 and level 37 over Q
> ModularAbelianVariety("37A");
Modular abelian variety 37A of dimension 1 and level 37 over Q
> ModularAbelianVariety("11k4A");
Modular motive 11k4A of dimension 2 and level 11 over Q
> ModularAbelianVariety("65C");
Modular abelian variety 65C of dimension 2 and level 5*13 over Q
> ModularDegree(ModularAbelianVariety("56A"));
4
> ModularDegree(ModularAbelianVariety("56A" : Cremona := true));
2

Run in calculator

Invariants#

Commands are available which can retrieve the base ring, dimension, character of the defining modular form, a field of definition, the level, the sign, the weights, and a short name of a modular abelian variety.

BaseRing(A): ModAbVar -> Rng#

The ring that the modular abelian variety \(A\) is defined over.

Dimension(A): ModAbVar -> RngIntElt#

The dimension of the modular abelian variety \(A\).

DirichletCharacter(A): ModAbVar -> GrpDrchElt#

If the modular abelian variety \(A = A_f\) is attached to a newform, returns the Nebentypus character of \(f\). Since \(f\) is only well-defined up to \({\operatorname{Gal}}(\overline{{\mathbb{Q}}}/{\mathbb{Q}})\) conjugacy, the character is also only well-defined up to \({\operatorname{Gal}}(\overline{{\mathbb{Q}}}/{\mathbb{Q}})\) conjugacy.

For information on Dirichlet characters, see Dirichlet Characters.

DirichletCharacters(A): ModAbVar -> List#

List of all Dirichlet characters of spaces of modular symbols associated with the modular symbols abelian variety which parameterizes \(A\).

FieldOfDefinition(A): ModAbVar -> Fld#

The best known field of definition of the modular abelian variety \(A\).

Level(A): ModAbVar -> RngIntElt#

An integer \(N\) such that the modular abelian variety \(A\) is a quotient of a power of \(J_1(N)\). Note that \(N\) need not be minimal. It is determined by how \(A\) is explicitly represented as a quotient of modular Jacobians.

Sign(A): ModAbVar -> RngIntElt#

The sign of the modular abelian variety \(A\), which is either \(0\), \(-1\), or \(+1\). If the sign is \(+1\) or \(-1\), then only the corresponding complex-conjugation eigenspace of the homology of \(A\) is computed, so various computations will be off by a factor of \(2\).

Weights(A): ModAbVar -> Set#

The set of weights of the modular abelian variety \(A\). The weight need not be unique since direct sums of modular symbols spaces of different weights are allowed.

Example: Modabvar Invariants (ex-c1b4e7)#

We illustrate all the commands for \(J_0(23)\).

> A := JZero(23);
> BaseRing(A);
Rational Field
> Dimension(A);
2
> DirichletCharacter(A);
1
> FieldOfDefinition(A);
Rational Field
> Level(A);
23
> Sign(A);
0
> Weights(A);
{ 2 }

Run in calculator

Example: Modabvar Invariants2 (ex-873cc2)#

This is an example of a nontrivial Dirichlet character.

> eps := DirichletCharacter(JOne(23)(2)); eps;
$.1^2
> Order(eps);
11

Run in calculator

Example: Modabvar Invariants3 (ex-186361)#

We illustrate the Weights command in several cases.

> Weights(JZero(11));
{ 2 }
> Weights(JZero(11,4));
{ 4 }
> Weights(JOne(13,3));
{ 3 }
> Weights(DirectSum(JZero(11),JOne(13,3)));
{ 2, 3 }
> Weights(DirectSum(JZero(11),JZero(13,3)));
{ 2 }

Run in calculator

Example: Modabvar Invariants3 (ex-9f6609)#

We display a few fields of definition.

> FieldOfDefinition(JOne(13));
Rational Field
> FieldOfDefinition(BaseExtend(JZero(11),QuadraticField(7)));
Rational Field
> FieldOfDefinition(ChangeRing(JZero(11),GF(7)));
Finite field of size 7

Run in calculator

Example: Modabvar Invariants4 (ex-6302fd)#

In the following example we quotient \(J_0(11)\) out by a \(5\)-torsion point. The resulting abelian variety might not be defined over \({\mathbb{Q}}\), and the FieldOfDefinition command currently plays it safe and returns \(\overline{{\mathbb{Q}}}\).

> A := JZero(11);
> G := nTorsionSubgroup(A,5);
> H := Subgroup([G.1]);
> H;
Finitely generated subgroup of abelian variety with invariants [ 5 ]
> FieldOfDefinition(A/H);
Algebraically closed field with no variables

Run in calculator

Conductor#

Let \(A\) be a modular abelian variety over \({\mathbb{Q}}\). The conductor command computes the conductor of \(A\) by factoring \(A\) into newform abelian varieties \(A_f\) whose conductor is \(N^d\), where \(N\) is the level of \(f\) and \(d\) is the dimension of \(A_f\).

Conductor(A): ModAbVar -> RngIntElt#

The conductor of the abelian variety \(A\). We require that \(A\) is defined over \({\mathbb{Q}}\). When \(A=A_f\) is attached to a newform of level \(N\), then the conductor of \(A\) is \(N^d\), where \(d\) is the dimension of \(A\).

Example: Modabvar Conductor (ex-4c19cf)#
> Factorization(Conductor(JZero(33)));
[ <3, 1>, <11, 3> ]
> Factorization(Conductor(JZero(11)^5));
[ <11, 5> ]
> Factorization(Conductor(OldSubvariety(JZero(46))));
[ <23, 4> ]
> Factorization(Conductor(JOne(25)));
[ <5, 24> ]

Run in calculator

Number of Points#

Given an abelian variety \(A\) over a field \(K\) a divisor and a multiple of \(\#A(K)\) can be computed. When finite, the multiple of the number of rational points is computed using reduction mod primes up to \(100\). Currently the lower bound is nontrivial only when \(A\) is a quotient of \(J_0(N)\).

NumberOfRationalPoints(A): ModAbVar -> RngIntElt, RngIntElt#

A divisor and a multiple of the cardinality of \(A(K)\), where \(A\) is a modular abelian variety defined over a field \(K\). If \(K\) is an abelian number field, then we assume the Birch and Swinnerton-Dyer conjecture.

#A: ModAbVar -> RngIntElt#

The cardinality of \(A(K)\) where \(A\) is a modular abelian variety defined over the field \(K\) if an exact value for this cardinality is known.

Example: Modabvar Number Of Points (ex-c17831)#
> #JZero(11);
5
> #JZero(23);
11
> NumberOfRationalPoints(JZero(37));
Infinity Infinity
> NumberOfRationalPoints(JOne(13));
1 19
> NumberOfRationalPoints(JOne(23));
1 408991
> Factorization(408991);
[ <11, 1>, <37181, 1> ]
> NumberOfRationalPoints(ModularAbelianVariety("43B"));
7 7

Run in calculator

Inner Twists and Complex Multiplication#

If \(f\) is a newform then an inner twist of \(f\) is a Dirichlet character \(\chi\) such that the twist of \(f\) by \(\chi\) equals a Galois conjugate of \(f\), at least at Fourier coefficients whose subscript is coprime to some fixed integer. A CM twist is a nontrivial character \(\chi\) such that \(f\) twisted by \(\chi\) equals \(f\), at least at Fourier coefficients whose subscript is coprime to some fixed integer. The commands below find the CM and inner twists of the newform corresponding to a newform abelian variety.

The optional parameter Proof to each command is by default false. If true, it uses a huge number of terms of \(q\)-expansions. If false, it uses far less (and is hence very quick), and in practice this should be fine. The computation of inner and CM twists is not provably correct, even if the Proof := true option is set. It’s very likely to be correct when Proof := true, but not provably correct. (More precisely, Magma only checks that each twist is a twist to precision \(10^{-5}\), but does not prove that this precision is sufficient.)

CMTwists(A : parameters): ModAbVar -> SeqEnum#
Proof: BoolElt                    Default: false

A sequence of the CM inner twist characters of the newform abelian variety \(A = A_f\) that are defined over the base ring of \(A\). To gain all CM twists, base extend to AlgebraicClosure(RationalField()) first.

InnerTwists(A : parameters): ModAbVar -> SeqEnum#
Proof: BoolElt                    Default: false

A sequence of the inner twist characters of the newform abelian variety \(A = A_f\) that are defined over the base ring of \(A\). To gain all inner twists, first base extend to AlgebraicClosure(RationalField()).

Example: Modabvar Inner Twists And Complex Multiplication (ex-f1874b)#

We compute the inner twists for \(J_1(13)\).

> A := JOne(13); A;
Modular abelian variety JOne(13) of dimension 2 and level 13 over Q
> CMTwists(A);
[]
> A2 := BaseExtend(A,AlgebraicClosure(RationalField()));
> CMTwists(A2);
[]
> InnerTwists(A2);
[
    1,
    $.1^5
]
> Parent($1[2]);
Group of Dirichlet characters of modulus 13 over Cyclotomic Field
of order 6 and degree 2

Run in calculator

We compute the inner twists for the second newform factor of \(J_1(23)\).

> A := Decomposition(JOne(23))[2]; A;
Modular abelian variety image(23A[2]) of dimension 10, level 23
and conductor 23^10 over Q
> InnerTwists(BaseExtend(A,AlgebraicClosure(RationalField())));
[
    1,
    $.1^20
]

Run in calculator

The CM elliptic curve \(J_0(32)\) has a nontrivial CM inner twist.

> A := JZero(32);
> InnerTwists(BaseExtend(A,AlgebraicClosure(RationalField())));
[
    1,
    $.1
]
> CMTwists(BaseExtend(A,AlgebraicClosure(RationalField())));
[
    $.1
]

Run in calculator

Quotients of \(J_0(N)\) can also have nontrivial inner twists, which are not CM twists.

> J := JZero(81);
> A := Decomposition(J)[1];
> InnerTwists(BaseExtend(A,AlgebraicClosure(RationalField())));
[
    1,
    $.1
]
> CMTwists(BaseExtend(A,AlgebraicClosure(RationalField())));
[]
> Newform(A);
q + a*q^2 + q^4 - a*q^5 + 2*q^7 + O(q^8)

Run in calculator

Example: Modabvar Inner Twists And Complex Multiplication2 (ex-77177e)#

The following is an example of a 4-dimensional abelian variety \(A=A_f\) in \(J_0(512)\) that has four inner twists, none of which are CM twists. One can use this fact to prove that if \(a_p\) is a prime-indexed Fourier coefficient of \(f\), then \(a_p^2\in {\mathbb{Z}}\). Thus no single \(a_p\) generates the degree \(4\) field generated by all \(a_n\).

> J := JZero(512, 2, +1);
> A := Decomposition(J)[7]; A;
Modular abelian variety 512G of dimension 4, level 2^9 and
conductor 2^36 over Q with sign 1
> f := Newform(A); f;
q + 1/12*(a^3 - 30*a)*q^3 + 1/12*(-a^3 + 42*a)*q^5 +
     1/6*(-a^2 + 18)*q^7 + O(q^8)
> Coefficient(f,3)^2;
6
> Coefficient(f,5)^2;
12
> Coefficient(f,7)^2;
8
> Abar := BaseExtend(JZero(512,2,+1)(7),AlgebraicClosure(RationalField()));
> InnerTwists(Abar);
[
    1,
    $.1,
    $.2,
    $.1*$.2
]
> CMTwists(Abar);
[]

Run in calculator

Predicates#

Most of the predicates below work in full generality. The ones whose domain of applicability is somewhat limited are IsIsomorphic, IsQuaternionic, and IsSelfDual. In theory, it is possible to determine isomorphism for more general classes of modular abelian varieties, but this has not yet been implemented.

CanDetermineIsomorphism(A, B): ModAbVar, ModAbVar -> BoolElt, BoolElt, MapModAbVar#

Return true if we can determine whether or not the modular abelian varieties \(A\) and \(B\) are isomorphic. If we can determine isomorphism, also returns true if \(A\) and \(B\) are isomorphic and an explicit isomorphism, or false if they are not isomorphic. If we can not determine isomorphism, also returns the reason why we cannot as a string. If \(A\) and \(B\) are simple and defined over \({\mathbb{Q}}\), then there is an algorithm to determine whether or not \(A\) and \(B\) are isomorphic; it has been implemented in most (but not all) cases in Magma. If one of \(A\) or \(B\) has simple factors of multiplicity one, then in principal it is possible, but the algorithm has not been programmed.

HasMultiplicityOne(A): ModAbVar -> BoolElt#

Return true if the simple factors of the modular abelian variety \(A\) appear with multiplicity one.

IsAbelianVariety(A): ModAbVar -> BoolElt#

Return true if \(A\) is an abelian variety, i.e., defined over a ring of characteristic \(0\) in which the conductor is invertible, or a finite field whose characteristic does not divide the conductor of \(A\). For example, if \(A\) has positive dimension and is defined over \({\mathbb{Z}}\), then Raynaud’s theorem implies that \(A\) is not an abelian variety.

IsAttachedToModularSymbols(A): ModAbVar -> BoolElt#

Return true if the underlying homology of the modular abelian variety \(A\) is being computed using a space of modular symbols. For example, this will be true for \(J_0(N)\) and for newform abelian varieties.

IsAttachedToNewform(A): ModAbVar -> BoolElt, ModAbVar, MapModAbVar#

Return true if the modular abelian variety \(A\) is isogenous to a newform abelian variety \(A_f\). This intrinsic also returns the abelian variety \(A_f\) and an explicit isogeny from \(A_f\) to \(A\).

IsIsogenous(A, B): ModAbVar, ModAbVar -> BoolElt#

Return true if the modular abelian varieties \(A\) and \(B\) are isogenous. If this can not be determined, an error occurs. It is always possible to determine whether or not \(A\) and \(B\) are isogenous when both are defined over \({\mathbb{Q}}\).

IsIsomorphic(A, B): ModAbVar, ModAbVar -> BoolElt, MapModAbVar#

Return true if the modular abelian varieties \(A\) and \(B\) are isomorphic. If so, also returns an explicit isomorphism. This command will work if \(A\) and \(B\) are defined over \({\mathbb{Q}}\) and the simple factors occur with multiplicity one, and may work otherwise, but an error may occur in the general case. Use the command CanDetermineIsomorphism to avoid getting an error.

IsOnlyMotivic(A): ModAbVar -> BoolElt#

Return true if any of the modular forms attached to the modular abelian variety \(A\) have weight bigger than \(2\).

IsQuaternionic(A): ModAbVar -> BoolElt#

Return true if and only if some simple factor of the modular abelian variety \(A\) over the base ring has quaternionic multiplication.

IsSelfDual(A): ModAbVar -> BoolElt#

Return true if the modular abelian variety \(A\) is known to be isomorphic to its dual. An error occurs if Magma is unable to decide.

IsSimple(A): ModAbVar -> BoolElt#

Return true if and only if the modular abelian variety \(A\) has no proper abelian subvarieties over BaseRing(A).

Example: Modabvar Predicates (ex-8dd5ae)#

We test whether a few objects are actually abelian varieties.

> A := JZero(11);
> A11 := ChangeRing(A,GF(11));
> IsAbelianVariety(A11);
false
> AZ := ChangeRing(A,Integers());
> IsAbelianVariety(AZ);
false
> A3 := ChangeRing(A,pAdicRing(3));
> IsAbelianVariety(A3);
true

Run in calculator

Example: Modabvar Predicates2 (ex-04b0bc)#

A modular motive is sometimes also an abelian variety, but only over the complex numbers.

> A := JZero(11,4); A;
Modular motive JZero(11,4) of dimension 2 and level 11 over Q
> IsAbelianVariety(A);
false
> IsOnlyMotivic(A);
true
> IsAbelianVariety(BaseExtend(A,ComplexField()));
true

Run in calculator

Example: Modabvar Predicates3 (ex-8a8d0c)#

Abelian varieties \(J_0(N)\) and \(J_s(N)\) are attached to modular symbols, as are newform abelian varieties.

> J := JZero(37);
> IsAttachedToModularSymbols(J);
true
> A := Decomposition(J)[1];
> IsAttachedToModularSymbols(A);
false
> t, Af := IsAttachedToNewform(A);
> IsAttachedToModularSymbols(Af);
true
> IsIsomorphic(A,Af);
true Homomorphism from 37A to 37A given on integral homology by:
[1 0]
[0 1]
> IsAttachedToModularSymbols(Js(17));
true
> IsAttachedToModularSymbols(JOne(17));
false

Run in calculator

Example: Modabvar Predicates4 (ex-51c39d)#

We test isogeny between a few abelian varieties.

> IsIsogenous(JZero(11),JOne(11));
true
> IsIsogenous(JZero(11)*JZero(11),JZero(22));
true
> IsIsogenous(JZero(11)*JZero(11),JZero(33));
false
> IsIsogenous(JZero(11),JZero(14));
false
> IsIsogenous(JZero(11)^2,JZero(22));
true
> A := JZero(37)(2); B := JOne(13);
> IsIsogenous(A*B*A, A*A*B);
true
> A := JZero(43);
> G := RationalCuspidalSubgroup(A);
> IsIsogenous(A,A/G);
true

Run in calculator

Next we test isomorphism between some abelian varieties.

> A := JZero(43);
> G := RationalCuspidalSubgroup(A);
> B := A/G;
> CanDetermineIsomorphism(A,B);
true false
> IsIsomorphic(A,B);
false
> IsIsomorphic(JZero(11),JOne(11));
false
> IsIsomorphic(JZero(13),JOne(13));
false
> IsIsomorphic(Js(13),JOne(13));
true Homomorphism from Js(13) to JOne(13) given on integral
homology by:
[ 0  0 -1  0]
[ 0  0  0 -1]
[ 1  0 -1  0]
[ 0  1  0 -1]
> CanDetermineIsomorphism(Js(17),JOne(17));
false All tests failed to decide whether A and B are isomorphic.

Run in calculator

Example: Modabvar Predicates5 (ex-1cadff)#

We test whether certain Jacobians have simple factors with multiplicity one.

> HasMultiplicityOne(JZero(43));
true
> HasMultiplicityOne(JZero(33));
false
> Decomposition(JZero(33));
[
    Modular abelian variety 33A of dimension 1, level 3*11 and
    conductor 3*11 over Q,
    Modular abelian variety N(11,33,1)(11A) of dimension 1, level
    3*11 and conductor 11 over Q,
    Modular abelian variety N(11,33,3)(11A) of dimension 1, level
    3*11 and conductor 11 over Q
]

Run in calculator

Example: Modabvar Predicates6 (ex-02b632)#

We give an example of a non-quaternionic surface.

> IsQuaternionic(JOne(13));
false

Run in calculator

Example: Modabvar Predicates7 (ex-213883)#

Jacobians are self dual, and there is a surface of level \(43\) that is self dual and a surface of level \(69\) that is not.

> IsSelfDual(JOne(13));
true
> IsSelfDual(JZero(69)(2));
false

Run in calculator

The surface \(A\) below is isomorphic to its dual. The natural polarization has kernel that is the kernel of multiplication by \(2\).

> A  := JZero(43)(2);
> A;
Modular abelian variety 43B of dimension 2, level 43 and
conductor 43^2 over Q
> IsSelfDual(A);
true
> phi := ModularPolarization(A);
> Invariants(Kernel(phi));
[ 2, 2, 2, 2 ]

Run in calculator

Example: Modabvar Predicates8 (ex-2b2535)#

We test a few abelian varieties for simplicity.

> IsSimple(JOne(25));
false
> IsSimple(JOne(13));
true
> IsSimple(JZero(11)^10);
false
> IsSimple(NewSubvariety(JZero(100)));
true

Run in calculator

Equality and Inclusion Testing#

These functions test whether two abelian varieties are exactly equal or if one is a subset of another.

A eq B: ModAbVar, ModAbVar -> BoolElt#

Return true if the modular abelian varieties \(A\) and \(B\) are equal.

A subset B: ModAbVar, ModAbVar -> BoolElt#

Return true if the modular abelian variety \(A\) is a subset of the modular abelian variety \(B\).

Example: Modabvar Equality And Inclusion Testing (ex-1eb758)#

This example illustrates that taking the direct product of abelian varieties is not commutative, as measured by equality (though it is as measured by isomorphism).

> A := JZero(11);
> B := JZero(14);
> A*B eq A*B;
true
> A*B eq B*A;
false
> IsIsomorphic(A*B, B*A);
true Homomorphism N(1) from JZero(11) x JZero(14) to JZero(14) x JZero(11)
given on integral homology by:
[0 0 1 0]
[0 0 0 1]
[1 0 0 0]
[0 1 0 0]

Run in calculator

Example: Modabvar Equality And Inclusion Testing2 (ex-b28393)#

The first inclusion below is as expected, but the second non-inclusion might be surprising. We do not consider \(J_0(11)\) as a subset of \(J_0(22)\), even though there is an injective map from one to the other, since to be a subset is much stronger than just the existence of an inclusion map.

> JZero(37) subset JZero(37);
true
> JZero(11) subset JZero(22);
false
> IsInjective(NaturalMap(JZero(11),JZero(22)));
true

Run in calculator

Modular Embedding and Parameterization#

Every modular abelian variety \(A\) is equipped with a modular parameterization and a modular embedding. The modular parameterization is a surjective homomorphism from a modular symbols abelian variety, such as \(J_0(N)\). The modular embedding is a homomorphism to a modular symbols abelian variety, which is only guaranteed to be injective in the category of abelian varieties up to isogeny, i.e., to have finite kernel as a morphism of abelian varieties. The structure of these two homomorphisms is extremely important as they completely define \(A\).

CommonModularStructure(X): [ModAbVar] -> List, List#

This intrinsic finds modular abelian varieties \(J_e\) and \(J_p\) associated to modular symbols and returns a list of finite-kernel maps from the abelian varieties in the sequence \(X\) to \(J_e\) and a list of modular parameterizations from \(J_p\) to the abelian varieties in \(X\).

ModularEmbedding(A): ModAbVar -> MapModAbVar#

A morphism with finite kernel from the modular abelian variety \(A\) to a modular abelian variety attached to modular symbols. This is only guaranteed to be an embedding in the category of abelian varieties up to isogeny.

ModularParameterization(A): ModAbVar -> MapModAbVar#

A surjective morphism to the modular abelian variety \(A\) from an abelian variety attached to modular symbols.

Example: Modabvar Modular Embedding And Parameterization (ex-319473)#
> X := [JZero(11),ModularAbelianVariety("37B")];
> CommonModularStructure(X);
[*
Homomorphism from JZero(11) to JZero(11) x JZero(37) given on integral
homology by:
[1 0 0 0 0 0]
[0 1 0 0 0 0],
Homomorphism from 37B to JZero(11) x JZero(37) given on integral
homology by:
[0 0 1 1 1 0]
[0 0 0 0 0 1]
*] [*
Homomorphism from JZero(11) x JZero(37) to JZero(11) (not printing 6x2
matrix),
Homomorphism from JZero(11) x JZero(37) to 37B (not printing 6x2
matrix)
*]

Run in calculator

Example: Modabvar Modular Embedding And Parameterization2 (ex-f77573)#

This example illustrates that the modular “embedding” need only be an embedding in the category of abelian varieties up to isogeny.

> A := JZero(37)(1);
> x := A![1/2,1];
> B := A/Subgroup([x]);
> e := ModularEmbedding(B);
> e;
Homomorphism from modular abelian variety of dimension 1 to
JZero(37)_Qbar given on integral homology by:
[ 1 -1  1  0]
[ 2 -2 -2  2]
> IsInjective(e);
false

Run in calculator

Moreover, the modular parameterization is surjective, but it need be optimal (have connected kernel).

> pi := ModularParameterization(B);
> IsSurjective(pi);
true
> ComponentGroupOfKernel(pi);
Finitely generated subgroup of abelian variety with invariants [ 2 ]
> IsOptimal(pi);
false

Run in calculator

Coercion#

Coercion can be used to create points on modular abelian varieties from vectors on a basis of integral homology, from other elements of modular abelian varieties, or from modular symbols. See the examples below, especially the last one, to understand some of the subtleties of coercion that arise because we view an abelian variety as a vector space modulo a lattice, and that lattice can be embedded in any way in \({\mathbb{Q}}^n\).

A ! x: ModAbVar, . -> BoolElt, ModAbVarElt#

Coerce \(x\) into the modular abelian variety \(A\). The argument \(x\) can be an element of a modular abelian variety, the integer \(0\), a sequence like that obtained by from Eltseq of element of \(A\) (i.e., a linear combination of integral homology), a vector on the basis for rational homology, or a tuple of the form \(\langle P(X,Y),[u,v]\rangle\) defining a modular symbol.

Example: Modabvar Coercion (ex-a27fb6)#

If you coerce a sequence of rationals or reals into an abelian variety \(A\), then Magma computes the corresponding linear combination of a basis of integral homology and returns the point it defines. The sequence must have length the rank of the integral homology.

> JZero(11)![1/2,1/5];
Element of abelian variety defined by [1/2 1/5] modulo homology

Run in calculator

If you coerce exactly two cusps (or extended reals) into \(A\), then Magma computes the point corresponding to that modular symbol.

> JZero(11)![Cusps()|1/2,1/5];
0
> JZero(11)![Sqrt(2),0];
Element of abelian variety defined by
[1.414213562373095048801688724198 0] modulo homology
> JZero(11)![Cusps()|0,Infinity()];     // cusps
Element of abelian variety defined by [0 1/5] modulo homology
> JZero(11)![0,Infinity()];             // extended reals
Element of abelian variety defined by [0 1/5] modulo homology

Run in calculator

Coercion of modular symbols also works for higher weight.

> JZero(11,4)![0,Infinity()];
Element of abelian variety defined by [-4/61 5/61 1/61 -1/61]
modulo homology
> R<x,y> := PolynomialRing(RationalField(),2);
> JZero(11,4)!<x^2,[0,Infinity()]>;
Element of abelian variety defined by [-4/61 5/61 1/61 -1/61]
modulo homology
> JZero(11,4)!<y^2,[0,Infinity()]>;
Element of abelian variety defined by [44/61 -55/61 -11/61 11/61]
modulo homology

Run in calculator

You can also coerce elements from abelian subvarieties into an ambient abelian variety.

> J := JZero(37); A := Decomposition(J)[1];
> x := A![1/5,0];
> Parent(x);
Modular abelian variety 37A of dimension 1, level 37 and
conductor 37 over Q
> x in J;
false
> y := J!x; y;
Element of abelian variety defined by [1/5 -1/5 1/5 0] modulo
homology
> y in J;
true
> Parent(y);
Modular abelian variety JZero(37) of dimension 2 and level 37 over Q

Run in calculator

Coercion also provides an easy way to create the \(0\) element.

> JZero(37)!0;
0

Run in calculator

Example: Modabvar Coercion2 (ex-49d6af)#

The following example illustrates the subtlety of coercion when the element being coerced in is a vector instead of a sequence. We create the quotient of \(J_0(11)\) by a cyclic subgroup of order \(10\). The lattice that defines \(J_0(11)\) is \({\mathbb{Z}}\times {\mathbb{Z}}\), but the lattice that defines this quotient is \((1/10){\mathbb{Z}}\times {\mathbb{Z}}\). Thus the natural quotient map on vector spaces is defined by the identity matrix. On the other hand, the matrix of the quotient with respect to a basis for integral homology has determinant \(10\).

> A := JZero(11);
> x := A![1/10,0]; x;
Element of abelian variety defined by [1/10 0] modulo homology
> Order(x);
10
> B,pi := A/Subgroup([x]);
> B;
Modular abelian variety of dimension 1 and level 11 over Qbar
> pi;
Homomorphism from JZero(11)_Qbar to modular abelian variety of
dimension 1 given on integral homology by:
[10  0]
[ 0  1]
> Matrix(pi);
[1 0]
[0 1]
> IntegralMatrix(pi);
[10  0]
[ 0  1]
> base := Basis(IntegralHomology(B)); base;
[
    (1/10    0),
    (0 1)
]

Run in calculator

If we coerce in the sequence [1/10,0] we get the point in \(B\) that is represented by \(1/10\)th of the first generator for homology. If we coerce in the vector \((1/10,0)\), we instead get the element of \(B\) represented by that element of the rational homology, which is \(0\), since the lattice that defines \(B\) is embedded in such a way that it contains \((1/10,0)\).

> y := B![1/10,0]; y;
Element of abelian variety defined by [1/10 0] modulo homology
> Order(y);
10
> z := B!base[1]; z;
0

Run in calculator

Modular Symbols to Homology#

Modular symbols determine elements of the rational homology of \(J_0(N)\), \(J_1(N)\), etc., and hence of arbitrary modular abelian varieties, by using the modular parameterization. The commands below convert from modular symbols, which are represented in various ways, to vectors on the basis for rational or integral homology.

ModularSymbolToIntegralHomology(A, x): ModAbVar, SeqEnum -> ModTupFldElt#
ModularSymbolToIntegralHomology(A, x): ModAbVar, Tup -> ModTupFldElt#

The element of integral homology of the abelian variety \(A\), naturally associated to the (formal) modular symbol \(x=P(X,Y)\{\alpha ,\beta \}\), where \(\alpha\), \(\beta\) are in \(P^1({\mathbb{Q}})\) and \(P\) is a homogeneous polynomial of degree \(2\). The returned vector is written with respect to the basis of integral homology. The argument \(x\) may be given as a sequence \([\alpha, \beta]\) or as a tuple \(\langle P(X, Y), [\alpha, \beta]\rangle\) where \(\alpha\) and \(\beta\) are in Cusps().

ModularSymbolToRationalHomology(A, x): ModAbVar, ModSymElt -> ModTupFldElt#
ModularSymbolToRationalHomology(A, x): ModAbVar, SeqEnum -> ModTupFldElt#
ModularSymbolToRationalHomology(A, x): ModAbVar, Tup -> ModTupFldElt#

The element of rational homology of the abelian variety \(A\) naturally associated to the (formal) modular symbol \(x=P(X,Y)\{\alpha ,\beta \}\), where \(\alpha\), \(\beta\) are in \(P^1({\mathbb{Q}})\) and \(P\) is a homogeneous polynomial of degree \(2\). The returned vector is written with respect to the basis of rational homology. The argument \(x\) may be given as a modular symbol, a sequence \([\alpha, \beta]\) or as a tuple \(\langle P(X, Y), [\alpha, \beta]\rangle\) where \(\alpha\) and \(\beta\) are in Cusps().

Example: Modabvar Modular Symbols To Homology (ex-5a75f8)#
> A := JZero(11);
> x := ModularSymbolToIntegralHomology(A,[0,Infinity()]); x;
(  0 1/5)
> z := A!x; z;
Element of abelian variety defined by [0 1/5] modulo homology
> Order(z);
5
> A := JZero(47);
> x := ModularSymbolToIntegralHomology(A,[0,Infinity()]); x;
(-1/23  3/23 -4/23  4/23 -3/23  1/23  2/23  8/23)
> z := A!x;
> Order(z);
23

Run in calculator

Example: Modabvar Modular Symbols To Homology2 (ex-c70b18)#
> J := JZero(11,4);
> IntegralHomology(J);
Lattice of rank 4 and degree 4
Basis:
( 3  1 -1 -1)
( 1 -1 -3  1)
( 2 -2  2  2)
( 2 -2  2 -2)
Basis Denominator: 8
> ModularSymbolToIntegralHomology(J,[0,Infinity()]);
(-4/61  5/61  1/61 -1/61)

Run in calculator

Notice that for weight greater than \(2\) the homogeneous polynomial part of the modular symbol may be omitted. If so, it defaults to \(x^{k-2}\).

> R<x,y> := PolynomialRing(RationalField(),2);
> ModularSymbolToIntegralHomology(J,<x^2,[0,Infinity()]>);
(-4/61  5/61  1/61 -1/61)
> ModularSymbolToIntegralHomology(J,<y^2,[0,Infinity()]>);
( 44/61 -55/61 -11/61  11/61)

Run in calculator

The result of coercion to rational homology is different because it is written in terms of the basis for rational homology instead of the basis for integral homology, and in this example the two basis differ.

> ModularSymbolToRationalHomology(J,[0,Infinity()]);
( -7/488  -9/488 -11/488  13/488)

Run in calculator

Coercion is also a way to define torsion points on abelian varieties.

> JZero(37)![1/5,0,0,0];
Element of abelian variety defined by [1/5 0 0 0] modulo homology

Run in calculator

Embeddings#

The Embeddings command contains a list of embeddings (up to isogeny) from \(A\) to other abelian varieties. The AssertEmbedding command allows you to add an embedding to the beginning of the list. The embeddings are used for computing intersections, sums, etc., with the embedding at the front of the list having highest priority.

Embeddings(A): ModAbVar -> List#

A list of morphisms from the modular abelian variety \(A\) into abelian varieties, which are used in making sense of intersections, sums, etc. The embeddings at the beginning of the list take precedence over those that occur later. Note that these maps might not really be injective; e.g., the modular embedding, which need only be injective on homology, is at the end of this list.

AssertEmbedding(~A, phi): ModAbVar, MapModAbVar#

Place the homomorphism \(\phi\) of abelian varieties at the beginning of Embeddings(A) where \(A\) is a modular abelian variety. The morphism \(\phi\) must have finite kernel.

Example: Modabvar Embeddings (ex-c6f53e)#

Every modular abelian variety comes equipped with at least one embedding, the “modular embedding”.

> Embeddings(JZero(11));
[*
Homomorphism from JZero(11) to JZero(11) given on integral homology by:
[1 0]
[0 1]
*]
> A := JZero(37)(1);
> Embeddings(A);
[*
Homomorphism from 37A to JZero(37) given on integral homology by:
[ 1 -1  1  0]
[ 1 -1 -1  1]
*]

Run in calculator

We add another embedding to the list of embeddings for \(A\).

> phi := NaturalMap(A,JZero(37*2));
> AssertEmbedding(~A,phi);
> Embeddings(A);
[*
Homomorphism N(1) from 37A to JZero(74) given on integral homology
by:
[-1  1 -1  0  2 -1  1  0 -2  1 -2  2 -1  2 -1  1]
[-1  0  0  0  2 -1  1 -2  0  0 -1  1 -1  2  1 -1],
Homomorphism from 37A to JZero(37) given on integral homology by:
[ 1 -1  1  0]
[ 1 -1 -1  1]
*]

Run in calculator

The following intersection would not make sense if we hadn’t chosen an embedding of \(A\) into \(J_0(74)\).

> B := Codomain(phi)(1); B;
Modular abelian variety 74A of dimension 2, level 2*37 and
conductor 2^2*37^2 over Q
> #(A meet B);
1

Run in calculator

Base Change#

The BaseExtend and ChangeRing commands allow you to change the base ring of a modular abelian variety. The BaseExtend command is the same ChangeRing, but is more restrictive. For example, if \(A\) is over \({\mathbb{Q}}\) then BaseExtend(A,GF(2)) is not allowed, but ChangeRing(A,GF(2)) is.

Abelian varieties can have their base ring set to a finite field, but there is very little that is implemented for abelian varieties over finite fields. Computing the number of points is implemented, but creation of actual points or homomorphisms is not.

CanChangeRing(A, R): ModAbVar, Rng -> BoolElt, ModAbVar#

Return true if it is possible to change the base ring of the modular abelian variety \(A\) to the ring \(R\), and the modular abelian variety over \(R\) when possible.

ChangeRing(A, R): ModAbVar, Rng -> ModAbVar#

Return the modular abelian variety obtained from the modular abelian variety \(A\) having base ring \(R\).

BaseExtend(A, R): ModAbVar, Rng -> ModAbVar#

Extend the base ring of the modular abelian variety \(A\) to the ring \(R\), if possible. This is a more restrictive version of ChangeRing.

Example: Modabvar Base Change (ex-6ca891)#

We consider \(J_1(13)\) over many fields and rings.

> A := JOne(13);
> BaseExtend(A,CyclotomicField(7));
Modular abelian variety JOne(13) of dimension 2 and level 13 over
Q(zeta_7)
> BaseExtend(A,AlgebraicClosure(RationalField()));
Modular abelian variety JOne(13)_Qbar of dimension 2 and level 13
over Qbar
> BaseExtend(A,RealField());
Modular abelian variety JOne(13)_R of dimension 2 and level 13 over R
> BaseExtend(A,ComplexField());
Modular abelian variety JOne(13)_C of dimension 2 and level 13 over C
> ChangeRing(A,GF(3));
Modular abelian variety JOne(13)_GF(3) of dimension 2 and level 13
over GF(3)
> #ChangeRing(A,GF(3));
19 19
> B := ChangeRing(A,GF(13)); B;
Modular abelian variety JOne(13)_GF(13) of dimension 2 and level 13
over GF(13)
> IsAbelianVariety(B);
false
> ChangeRing(A,Integers());
Modular abelian variety JOne(13)_Z of dimension 2 and level 13 over
Z
> ChangeRing(A,PolynomialRing(RationalField(),10));
Modular abelian variety JOne(13) of dimension 2 and level 13 over
Polynomial ring of rank 10 over Rational Field
Lexicographical Order
Variables: $.1, $.2, $.3, $.4, $.5, $.6, $.7, $.8, $.9, $.10

Run in calculator

Additional Examples#

Example: modabvar1 (ex-c4b059)#

The simplest abelian variety is an abelian variety of dimension \(0\), i.e., a point.

> A := ZeroModularAbelianVariety(); A;
Modular abelian variety ZERO of dimension 0 and level 1 over Q

Run in calculator

We create the Jacobian \(J_0(22)\) of the modular curve \(X_0(22)\) as follows:

> J := JZero(22); J;
Modular abelian variety JZero(22) of dimension 2 and level 2*11 over Q

Run in calculator

Notice that \(A\) is a subset of \(J_0(22)\).

> A subset J;
true

Run in calculator

We can also create the higher weight analogues \(J_0(N,k)\) of \(J_0(N)\), which are motives defined over \({\mathbb{Q}}\). Many computations that make sense for \(J_0(N)\) also make sense for these higher weight analogues.

> J4 := JZero(22,4); J4;
Modular motive JZero(22,4) of dimension 7 and level 2*11 over Q
> IsOnlyMotivic(J4);
true

Run in calculator

One can also create \(J_1(N)\):

> JOne(22);
Modular abelian variety JOne(22) of dimension 6 and level 2*11 over Q

Run in calculator

For efficiency purposes, it is often much quicker to do computations working only with the \(+1\) quotient of \(H_1(J_0(N),{\mathbb{Z}})\), or using only the \(-1\) quotient. These computations will be off by powers of \(2\), or subgroups will be halved and off by a power of \(2\). Nonetheless, if you know what you are doing, such computations can be very useful. Create \(J_0(N)\), but working only with the \(+1\) quotient of homology as follows:

> Jplus := JZero(22,2,+1); Jplus;
Modular abelian variety JZero(22) of dimension 2 and level 2*11 over Q
with sign 1
> Sign(Jplus);
1
> Sign(JZero(22));
0

Run in calculator

Notice that the sign is printed out when it is \(1\) or \(-1\). Also, sign \(0\) is shorthand for “no sign”, i.e., working with the full homology.

Example: additional2 (ex-d45525)#

Let \(\varepsilon:({\mathbb{Z}}/N{\mathbb{Z}})^*\to {\mathbb{Q}}(\zeta_n)^*\) be Dirichlet character. The command ModularAbelianVariety(eps) creates the modular abelian variety over \({\mathbb{Q}}\) corresponding to the cusp forms with Dirichlet character any Galois conjugate of \(\varepsilon\).

> G<eps> := DirichletGroup(22,CyclotomicField(EulerPhi(22)));
> Order(eps);
10
> Conductor(eps);
11
> A := ModularAbelianVariety(eps); A;
Modular abelian variety of dimension 0 and level 2*11 over Q
> A := ModularAbelianVariety(eps^2); A;
Modular abelian variety of dimension 4 and level 2*11 over Q

Run in calculator

Example: additional3 (ex-6edb30)#

Let \(H\) be a subgroup of \(G=({\mathbb{Z}}/N{\mathbb{Z}})^*\). The group \(({\mathbb{Z}}/N{\mathbb{Z}})^*\) acts by diamond bracket operators as a group of automorphisms on \(X_1(N)\), and the modular curve \(X_H(N)\) is the quotient of \(X_1(N)\) by the action of \(H\). Thus if \(H=1\), then \(X_H(N)=X_1(N)\), and if \(H=G\), then \(X_H(N)=X_0(N)\). The command JH(N,d) creates an abelian variety isogenous to the Jacobian of \(X_H(N)\), where \(d\) is the index of \(H\) in \(G\) (thus \(d=1\) corresponds to \(J_0(N)\)). A weight \(k\) and sign (either \(0\) or \(\pm 1\)) can be provided. More precisely, JH(N,d) is the product of \(J(\varepsilon)\), where \(\varepsilon\) varies over Dirichlet characters such that \(\varepsilon(H)=\{1\}\).

> JH(22,1);
Modular abelian variety JZero(22) of dimension 2 and level 2*11 over Q
> JH(22,10);
Modular abelian variety Js(22) of dimension 6 and level 2*11 over Q
> JH(22,2);
Modular abelian variety J_H(22) of dimension 2 and level 2*11 over Q

Run in calculator

As a shortcut, the command Js(N) creates a modular abelian variety that is isogenous to \(J_1(N)\). Thus Js(N) is the same as JH(N,d), where \(d\) is the order of \(({\mathbb{Z}}/N{\mathbb{Z}})^*\).

> Js(22);
Modular abelian variety Js(22) of dimension 6 and level 2*11 over Q
> JH(22,10) eq Js(22);
true

Run in calculator

Example: additional4 (ex-4a04ee)#

We can also create modular abelian varieties attached to spaces of modular forms and spaces of modular symbols:

> ModularAbelianVariety(ModularForms(22));
Modular abelian variety of dimension 2 and level 2*11 over Q
> ModularAbelianVariety(ModularSymbols(22));
Modular abelian variety of dimension 2 and level 2*11 over Q

Run in calculator

Example: additional5 (ex-80b083)#

Here is another example, in which the space of modular forms is on \(\Gamma_1(25)\).

> M := ModularForms(Gamma1(25)); M;
Space of modular forms on Gamma_1(25) of weight 2 and dimension
39 over Integer Ring.
> S := CuspidalSubspace(M); S;
Space of modular forms on Gamma_1(25) of weight 2 and dimension
12 over Integer Ring.
> A := ModularAbelianVariety(S); A;
Modular abelian variety of dimension 12 and level 5^2 over Q

Run in calculator

Example: additional6 (ex-7fdc4e)#

We can also construct abelian varieties attached to newforms.

> S := CuspForms(43);
> N := Newforms(S); N;
[* [*
q - 2*q^2 - 2*q^3 + 2*q^4 - 4*q^5 + 4*q^6 + O(q^8)
*], [*
q + a*q^2 - a*q^3 + (-a + 2)*q^5 - 2*q^6 + (a - 2)*q^7 + O(q^8),
q + b*q^2 - b*q^3 + (-b + 2)*q^5 - 2*q^6 + (b - 2)*q^7 + O(q^8)
*] *]
> f := N[2][1]; f;
q + a*q^2 - a*q^3 + (-a + 2)*q^5 - 2*q^6 + (a - 2)*q^7 + O(q^8)
> A := ModularAbelianVariety(f); A;
Modular abelian variety Af of dimension 2 and level 43 over Q
> Newform(A);
q + a*q^2 - a*q^3 + (-a + 2)*q^5 - 2*q^6 + (a - 2)*q^7 + O(q^8)

Run in calculator

When possible, we can also obtain a newform that gives rise to an abelian variety.

> J := JZero(43);
> D := Decomposition(J); D;
[
    Modular abelian variety 43A of dimension 1, level 43 and
    conductor 43 over Q,
    Modular abelian variety 43B of dimension 2, level 43 and
    conductor 43^2 over Q
]
> Newform(D[2]);
q + a*q^2 - a*q^3 + (-a + 2)*q^5 - 2*q^6 + (a - 2)*q^7 + O(q^8)

Run in calculator

We demonstrate here how modular abelian varieties may be described by a label, using the string “43B”. Continuing the previous code, we have:

> A := ModularAbelianVariety("43B");
> A eq D[2];
true

Run in calculator