Further Examples

Therefore we obtain an explicit congruence modulo 7 between a nonendoscopic form in weight (6, 3, 0) and an Eisenstein form in trivial weight. Thus, the mod 7 Galois representation associated to the system bp is reducible.

Example ModFrmAlg_orthogonal_rank4_disc193 (H151E6)

In this example we see how orthogonal modular forms of rank 4 correspond to Hilbert modular forms, by considering a rank 4 lattice with discriminant 193.
> Q := SymmetricMatrix([6,0,2,-4,-1,12,3,1,6,12]);
> M := OrthogonalModularForms(Q);
> Norm(Discriminant(Level(M)));
193
> time Dimension(M);
9
Time: 0.200
> T2 := HeckeOperator(M,2);
> T2;
[0 0 2 0 1 1 0 0 0]
[0 3 0 1 1 0 0 0 0]
[3 0 1 1 0 0 0 0 1]
[0 3 2 2 2 2 1 0 0]
[3 3 0 2 2 0 0 1 1]
[3 0 0 2 0 2 2 0 1]
[0 0 0 1 0 2 3 1 1]
[0 0 0 0 1 0 1 5 1]
[0 0 4 0 2 2 2 2 4]
> D := Decomposition(M);
> [Dimension(d) : d in D];
[ 1, 1, 7 ]
> time fs := HeckeEigenforms(M);
Time: 0.120
> #fs;
3
> [IsCuspidal(f) : f in fs];
[false, true, true]
So we have two irreducible Hecke modules in the cuspidal subspace, one of which is 1-dimensional, and the other 7-dimensional. Since the eigenforms correspond to orbit representatives under the Galois action, there is exactly one eigenform corresponding to each space, one with coefficients in Q, and the other in a number field of degree 7.

We proceed to relate this last eigenforms to an elliptic cusp form g of level 193 and character χ193, the Kronecker character of conductor 193, with LMFDB label 193.2.b.a. We first fix an embedding to identify the fields of definitions, and then verify that λp = ap2 + p(1 - χ(p)), where λp are the eigenvalues of f and ap are the eigenvalues of g.

> f := fs[3];
> chi := KroneckerCharacter(193, Rationals());
> g := qEigenform(NewformDecomposition(CuspidalSubspace(ModularSymbols([chi],2)))
> [1], 20);
> L := Parent(Coefficient(g,1));
> K<alpha> := Parent(HeckeEigenvalue(f,2));
> rts := Roots(MinimalPolynomial(alpha), L);
> h := hom<K -> L | rts[1][1]>;
> for p in PrimesUpTo(20) do
> ap := Coefficient(g,p);
> lambda_p := HeckeEigenvalue(f,p);
> assert ap^2 + p*(1-chi(p)) eq h(lambda_p);
> end for;

We proceed to relate the remaining eigenform a to Hilbert modular form over the field Q(Sqrt(193)), with LMFDB label 2.2.193-1.1.a. We verify that λp = aP a_(/line(P)) at split primes and λp = aP at inert primes.

> f := fs[2];
> K := QuadraticField(193);
> ZK := Integers(K);
> g := Eigenforms(HilbertCuspForms(K, 1*ZK, [2,2]))[1];
> g_evs := [[HeckeEigenvalue(g, P) : P in PrimeIdealsOverPrime(K,p)] :
>                                                          p in PrimesUpTo(10)];
> _<alpha> := Universe(g_evs[1]);
> (2*alpha-1)^2;
17
> time &and[HeckeEigenvalue(f,p) eq &*[HeckeEigenvalue(g,P):
>                        P in PrimeIdealsOverPrime(K,p)] : p in PrimesUpTo(20)];
true
Time: 11.450

Example ModFrmAlg_unitary_rank3_discm7-example (H151E7)

It is possible to use this package to compute unitary modular forms, and modular forms with nontrivial weight. Here we compute the spaces of unitary modular forms for the standard hermitian form over Q(Sqrt( - 7)), with varying weights.

Begin by considering trivial weight.

> K<sqrtm7> := QuadraticField(-7);
> M0 := UnitaryModularForms(K,3);
> Dimension(M0);
2
> time fs := HeckeEigenforms(M0);
Time: 0.010
> fs;
[
Eisenstein eigenform given in coordinates by
(1 1),
Cuspidal eigenform given in coordinates by
(       1 -1/7)
]

As observed in [Loe08], and expanded upon in [GV14], the first system of Hecke eigenvalues is Eisenstein, and the second one is also a lift from UUK/Q(1) x UUK/Q(1) x UUK/Q(1) of a character.

> time aPs, Ps := HeckeEigensystem(fs[1], 1 : Precision := 30);
Time: 0.490
> aPs;
[ 7, 7, 84, 630, 56, 133, 133, 553, 553, 871, 871 ]
> aPs eq [IsSplit(P) select 1 + Norm(P) + Norm(P)^2 else IsInert(P)
> select p + p^4 where _, p is IsPrincipal(P) else Norm(P) + Norm(P)^2 : P in Ps];
true
> time bPs, Ps := HeckeEigensystem(fs[2], 1 : Precision := 30);
Time: 0.000
> bPs;
[ -1, -1, 20, 54, -8, 5, 5, 41, 41, -25, -25 ]
> bPs eq [(IsSplit(P) select Trace(p^2) + Norm(P) else IsInert(P)
>   select 2*p^2+p-1 else p^2-1) where _, p is IsPrincipal(P) : P in Ps];
true

Notice that computing the eigenvalues bP for the second form was instantaneous, as the Hecke operators were already computed and cached when computing the aP's.

We now consider unitary modular forms for the same space, but with weight (3, 0, - 3). Note also that this is the representation denoted by V3, 3, 0 in [Loe08] and [GV14].

> M33 := UnitaryModularForms(K,3,[3,0,-3],0);
> time Dimension(M33);
4
Time: 1.000
> time D := Decomposition(M33);
Time: 0.900
> [Dimension(d) : d in D];
[ 2, 2 ]

As observed in [Loe08], we see that the action of the Hecke operators is not diagonalizable over K, and the space M(3, 0, - 3) = W1 direct-sum W2 decomposes as a direct sum of two 2-dimensional, Hecke-stable subspaces not diagonalizable over K. One of these spaces arises as the lift from UUK/Q(1) x UUK/Q(2) involving an elliptic modular form in S9(7, χ - 7), with LMFDB label 7.9.b.b, while the other is non-endoscopic. We proceed to verify the endoscopic space, corresponding to the elliptic modular form.

> fs := HeckeEigenforms(M33);
> E1 := BaseField(fs[1]);
> p_E<x> := DefiningPolynomial(E1);
> E1;
Number Field with defining polynomial x^2 - 6*x + 49/8 over K
> IsIsomorphic(E1, ext<K | x^2 - 46>);
true Mapping from: FldNum: E to Number Field with defining polynomial x^2 - 46
over K
> SetVerbose("AlgebraicModularForms", 1);
> time aPs33, Ps33 := HeckeEigensystem(fs[1], 1 : Precision := 30);
Time: 99.240
> mfs := Newforms(CuspForms(KroneckerCharacter(-7, CyclotomicField(7)), 9));
> g := mfs[2][1];
> evs := [Norm(P) + Norm(P)^(-3)*Coefficient(g, Norm(P)) +(IsSplit(P)
>        select 0 else p-1 where _,p is IsPrincipal(P meet Integers())) :
>        P in Ps33 | not IsRamified(P)];
> E1 := AbsoluteField(Universe(aPs33));
> Eg := Universe(evs);
> L := CompositeFields(E1, Eg)[1];
> aPs33_L := [L!aPs33[i] : i in [1..#aPs33] | not IsRamified(Ps33[i])];
> zeta := PrimitiveElement(E1);
> roots := [x[1] : x in Roots(MinimalPolynomial(zeta), L)];
> embs := [hom<E1 -> L | r> : r in roots];
> exists(emb){emb : emb in embs | [emb(y) : y in aPs33_L] eq evs};
true

We are left with the non-endoscopic form. We check that the Hecke eigenvalue at the prime frakp2 above 2 is (-7pmSqrt( - 259))/(8). This shows that the Satake polynomial is irreducible, hence the form is not a lift, and the corresponding ell-adic Galois representation is irreducible of dimension 3.

> E2 := BaseRing(fs[2]);
> L<sqrtm259> := ext<K | x^2 + 259>;
> is_isom, isom := IsIsomorphic(E2, L);
> is_isom;
true
> isom(HeckeEigenvalue(fs[2], Ps[1]));
-1/8*sqrtm259 - 7/8

Due to the large weight, the representation space is large (of dimension 64), and computations of the Hecke eigenvalues are slow. However, we could compute their values modulo primes quite quickly by using representations over finite fields.

> M33_7 := UnitaryModularForms(K,3,[3,0,-3],7);
> time D_7 := Decomposition(M33_7);
Time: 3.250
> [Dimension(d) : d in D_7];
[ 1, 3 ]
> fs_7 := HeckeEigenforms(M33_7);
> time bPs_7, Ps_7 := HeckeEigensystem(fs_7[1], 1 : Precision := 30);
Time: 14.770
> bPs_7;
[ 6, 6, 6, 5, 5, 5, 6, 6, 3, 3 ]
> ZK := Integers(K);
>  _, red := ResidueClassField(sqrtm7*ZK);
> bPs_7 eq [red(bPs[i]) : i in [1..#bPs] | Ps[i] in Ps_7];
true
> time aPs_7, Ps_7 := HeckeEigensystem(fs_7[2], 1 : Precision := 30);
Time: 22.260
> aPs_7;
[ 0, 0, 0, 0, 0, 0, 0, 0, 3, 3 ]
> aPs_7 eq [red(aPs[i]) : i in [1..#aPs] | Ps[i] in Ps_7];
true
V2.29, 21 October 2025