This section is about twists of newforms by Dirichlet characters. A newform is specified by giving a space of modular symbols that contains a single Galois-orbit (over Q or some extension of Q) of newforms. Spaces of this kind are obtained using NewformDecomposition.
To prove that f2 = f1χ holds for two newforms, the program compares their Hecke eigenvalues up to an appropriate Sturm bound. (For instance, a bound of this kind is given in Lemma 1.4 of [BS02]).
Given two spaces M1 and M2 of modular symbols that specify newforms f1 and f2 as above, and a prime p, this determines whether some Galois conjugate (over Q) of f2 is the twist of f1 by a nontrivial Dirichlet character of p-power conductor. If so, a character χ such that f2 = f1χ is also returned.
Given a space M of modular symbols that specifies a newform f as above, and a prime p, this determines whether some Galois conjugate (over Q) of f is a twist of some newform of lower level by some Dirichlet character of p-power conductor. If so, it returns false, together with the newform of lower level (specified by a space of modular symbols), and the Dirichlet character.
> M9 := CuspidalSubspace(ModularSymbols(9, 4, 1));
> newforms := NewformDecomposition(NewSubspace(M9));
> newforms;
[
Modular symbols space for Gamma_0(9) of weight 4 and dimension 1
over Rational Field
]
> f := newforms[1];
> Eigenform(f, 20);
q - 8*q^4 + 20*q^7 - 70*q^13 + 64*q^16 + 56*q^19 + O(q^20)
Note that here the coefficients for primes congruent to 2 mod 3 are all zero.
> bool, chi := IsTwist(f, f, 3); > bool; true > Parent(chi); Group of Dirichlet characters of modulus 3 over Rational Field > Conductor(chi), Order(chi); 3 2However, f is not a twist of any newform with lower level:
> bool := IsMinimalTwist(f, 3); > bool; true