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