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.
The JZero command will create the Jacobian J0(N) of the modular curve X0(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.
Sign: RngIntElt Default: 0
Create the modular abelian variety J0(N) of level N and weight 2 or weight k≥2, i.e., the Jacobian of the modular curve X0(N). The parameter Sign determines whether computations will be carried out in the +1 or -1 quotient of homology.
> 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
The JOne command creates the Jacobian of the modular curve X1(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 J1(N); more precisely it is the product of abelian varieties Jeps(N), where Jeps(N) is the abelian variety attached to all modular forms whose character is a Galois conjugate of eps. Creating Js(N) is much faster than creating J1(N), since less time is spent finding the integral structure on homology.
The JH command creates the Jacobian JH(N) of the curve XH(N), which is the quotient of X1(N) by the subgroup H of the integers modulo N.
Sign: RngIntElt Default: 0
Create the modular abelian variety J1(N) of level N and weight k, if given, or 2, i.e., the Jacobian of the modular curve X1(N). Note that creating and finding the integral structure on Js(N), which is isogenous to J1(N), is much faster. Computing with J1(N) may be expensive.
Sign: RngIntElt Default: 0
A modular abelian variety that is Q-isogenous to the weight k (or 2) version of J1(N). More precisely, the direct sum of the modular abelian varieties attached to modular symbols spaces with Nebentypus.
Sign: RngIntElt Default: 0
Suppose H is some (cyclic) subgroup of G=(Z /NZ ) * such that G/H has order d. Create the modular abelian variety JH(N) of level N and weight k (or 2 if k not given), where JH(N) is isogenous to the Jacobian of the modular curve XH(N) associated to the subgroup of SL 2(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(ε ) for all Dirichlet characters ε that are trivial on H.The parameter Sign determines whether computations will be carried out in the +1 or -1 quotient of homology.
Sign: RngIntElt Default: 0
Let H be the subgroup of (Z /NZ ) * generated by the sequence of integers, gens. Create the modular abelian variety JH(N) of level N and weight k (or 2 if k not given), where JH(N) is isogenous to the Jacobian of the modular curve XH(N) associated to the subgroup of SL 2(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(ε ) for all Dirichlet characters ε that are trivial on H.The parameter Sign determines whether computations will be carried out in the +1 or -1 quotient of homology.
> 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
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.
Sign: RngIntElt Default: 0
The abelian variety attached to the modular forms space M.
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.
Sign: RngIntElt Default: 0
The abelian variety associated to the dirichlet character ε . This corresponds to the space of modular forms of weight k and character any Galois conjugate of ε . We include all Galois conjugates in order to obtain an abelian variety that is defined over Q .
The abelian variety attached to the newform f.
A newform f such that the modular abelian variety A is isogenous to the newform abelian variety Af. An error occurs if A is not attached to a newform.
We first create the modular abelian variety attached to the spaces S2(Γ0(11)) and S2(Γ1(13)). This is the direct sum of J0(11) with J1(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)Next we create the modular abelian variety A attached to S2(Γ1(17)) along with J1(17) and Js(17). We then note that A is isomorphic to J1(17), but there is no reason that A should be isomorphic to Js(17) (they are probably only isogenous). This example illustrates the fact that the abelian variety computed by Magma attached to S2(Γ1(17)) is J1(17) rather than Js(17). (Recall that Js(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
> 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 QNext we compute the modular abelian variety attached to a newform in S2(Γ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 QThe abelian variety Af 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)
> 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)
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.
The abelian variety attached to the modular symbols space M.
The abelian variety attached to the sequence X of modular symbols spaces.
A sequence of spaces of modular symbols associated to the abelian variety A.
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 QNote 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 1We 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 QConversely, there is a sequence of modular symbols spaces associated to any abelian variety defined over 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 ]
Suppose A is an abelian variety and V is a vector subspace of the rational homology H1(A, 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.
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 Q).
The zero-dimensional abelian variety.
The zero-dimensional abelian variety of weight k.
Returns the zero subvariety of the abelian variety A.
We define two subspaces of the rational homology of J0(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
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
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 J0(N). If it is of the form "<level>k<weight>", then it is the possibly motivic J0(N) of weight k. If it is of the form "<level>k<weight><isogeny code>", where <isogeny code> is one of "A", "B", ... "Z", "AA", "BB", ... "ZZ", "AAA", "BBB", ... 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 J0(N) with Cremona label s, set the optional parameter Cremona equal to true.
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 J0(N) with Cremona label s will be returned.
> 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
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.
The ring that the modular abelian variety A is defined over.
The dimension of the modular abelian variety A.
If the modular abelian variety A = Af is attached to a newform, returns the Nebentypus character of f. Since f is only well-defined up to Gal (Qbar/Q ) conjugacy, the character is also only well-defined up to Gal (Qbar/Q ) conjugacy.For information on Dirichlet characters, see Dirichlet Characters.
List of all Dirichlet characters of spaces of modular symbols associated with the modular symbols abelian variety which parameterizes A.
The best known field of definition of the modular abelian variety A.
An integer N such that the modular abelian variety A is a quotient of a power of J1(N). Note that N need not be minimal. It is determined by how A is explicitly represented as a quotient of modular Jacobians.
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.
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.
We illustrate all the commands for J0(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 }
> eps := DirichletCharacter(JOne(23)(2)); eps; $.1^2 > Order(eps); 11
> 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 }
> FieldOfDefinition(JOne(13)); Rational Field > FieldOfDefinition(BaseExtend(JZero(11),QuadraticField(7))); Rational Field > FieldOfDefinition(ChangeRing(JZero(11),GF(7))); Finite field of size 7
> 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
Let A be a modular abelian variety over Q. The conductor command computes the conductor of A by factoring A into newform abelian varieties Af whose conductor is Nd, where N is the level of f and d is the dimension of Af.
The conductor of the abelian variety A. We require that A is defined over Q . When A=Af is attached to a newform of level N, then the conductor of A is Nd, where d is the dimension of A.
> 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> ]
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 J0(N).
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.
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.
> #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
If f is a newform then an inner twist of f is a Dirichlet character χ such that the twist of f by χ 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 χ such that f twisted by χ 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.)
Proof: BoolElt Default: false
A sequence of the CM inner twist characters of the newform abelian variety A = Af that are defined over the base ring of A. To gain all CM twists, base extend to AlgebraicClosure(RationalField()) first.
Proof: BoolElt Default: false
A sequence of the inner twist characters of the newform abelian variety A = Af that are defined over the base ring of A. To gain all inner twists, first base extend to AlgebraicClosure(RationalField()).
> 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 2We compute the inner twists for the second newform factor of J1(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 ]The CM elliptic curve J0(32) has a nontrivial CM inner twist.
> A := JZero(32); > InnerTwists(BaseExtend(A,AlgebraicClosure(RationalField()))); [ 1, $.1 ] > CMTwists(BaseExtend(A,AlgebraicClosure(RationalField()))); [ $.1 ]Quotients of J0(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)
> 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); []
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.
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 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.
Return true if the simple factors of the modular abelian variety A appear with multiplicity one.
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 Z , then Raynaud's theorem implies that A is not an abelian variety.
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 J0(N) and for newform abelian varieties.
Return true if the modular abelian variety A is isogenous to a newform abelian variety Af. This intrinsic also returns the abelian variety Af and an explicit isogeny from Af to A.
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 Q .
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 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.
Return true if any of the modular forms attached to the modular abelian variety A have weight bigger than 2.
Return true if and only if some simple factor of the modular abelian variety A over the base ring has quaternionic multiplication.
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.
Return true if and only if the modular abelian variety A has no proper abelian subvarieties over BaseRing(A).
> 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
> 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
> 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
> 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
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.
> 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 ]
> IsQuaternionic(JOne(13)); false
> IsSelfDual(JOne(13)); true > IsSelfDual(JZero(69)(2)); false
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 ]
> IsSimple(JOne(25)); false > IsSimple(JOne(13)); true > IsSimple(JZero(11)^10); false > IsSimple(NewSubvariety(JZero(100))); true
These functions test whether two abelian varieties are exactly equal or if one is a subset of another.
Return true if the modular abelian varieties A and B are equal.
Return true if the modular abelian variety A is a subset of the modular abelian variety B.
> 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]
> JZero(37) subset JZero(37); true > JZero(11) subset JZero(22); false > IsInjective(NaturalMap(JZero(11),JZero(22))); true
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 J0(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.
This intrinsic finds modular abelian varieties Je and Jp associated to modular symbols and returns a list of finite-kernel maps from the abelian varieties in the sequence X to Je and a list of modular parameterizations from Jp to the abelian varieties in X.
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.
A surjective morphism to the modular abelian variety A from an abelian variety attached to modular symbols.
> 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) *]
> 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); falseMoreover, 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
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 Qn.
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 < P(X, Y), [u, v] > defining a modular symbol.
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 homologyIf 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 homologyCoercion 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
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
Coercion also provides an easy way to create the 0 element.
> JZero(37)!0; 0
> 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) ]If we coerce in the sequence [1/10,0] we get the point in B that is represented by 1/10th 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
Modular symbols determine elements of the rational homology of J0(N), J1(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.
The element of integral homology of the abelian variety A, naturally associated to the (formal) modular symbol x=P(X, Y){α , β }, where α , β are in P1(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 [α, β] or as a tuple < P(X, Y), [α, β] > where α and β are in Cusps().
The element of rational homology of the abelian variety A naturally associated to the (formal) modular symbol x=P(X, Y){α , β }, where α , β are in P1(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 [α, β] or as a tuple < P(X, Y), [α, β] > where α and β are in Cusps().
> 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
> 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)Notice that for weight greater than 2 the homogeneous polynomial part of the modular symbol may be omitted. If so, it defaults to xk - 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)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)
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
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.
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.
Place the homomorphism φ of abelian varieties at the beginning of Embeddings(A) where A is a modular abelian variety. The morphism φ must have finite kernel.
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] *]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] *]The following intersection would not make sense if we hadn't chosen an embedding of A into J0(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
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 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.
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.
Return the modular abelian variety obtained from the modular abelian variety A having base ring R.
Extend the base ring of the modular abelian variety A to the ring R, if possible. This is a more restrictive version of ChangeRing.
We consider J1(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
> A := ZeroModularAbelianVariety(); A; Modular abelian variety ZERO of dimension 0 and level 1 over QWe create the Jacobian J0(22) of the modular curve X0(22) as follows:
> J := JZero(22); J; Modular abelian variety JZero(22) of dimension 2 and level 2*11 over QNotice that A is a subset of J0(22).
> A subset J; trueWe can also create the higher weight analogues J0(N, k) of J0(N), which are motives defined over Q. Many computations that make sense for J0(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
One can also create J1(N):
> JOne(22); Modular abelian variety JOne(22) of dimension 6 and level 2*11 over Q
For efficiency purposes, it is often much quicker to do computations working only with the +1 quotient of H1(J0(N), 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 J0(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)); 0Notice 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.
> 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
> 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 QAs a shortcut, the command Js(N) creates a modular abelian variety that is isogenous to J1(N). Thus Js(N) is the same as JH(N,d), where d is the order of (Z/NZ) * .
> Js(22); Modular abelian variety Js(22) of dimension 6 and level 2*11 over Q > JH(22,10) eq Js(22); true
> 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
> 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
> 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)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)
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