Dirichlet Characters
Let \(R\) be a ring. Then a Dirichlet character over \(R\) of modulus \(N\) is a homomorphism
where \(R^*\) is the group of invertible elements of \(R\). We extend \(\varepsilon\) to a set theoretic map on the whole of \({\mathbb{Z}}\) by defining \(\varepsilon(x) = 0\) if \(\gcd(x,N)\neq 1\). The conductor of \(\varepsilon\) is the smallest positive integer \(M\) such that the homomorphism \(({\mathbb{Z}}/N{\mathbb{Z}})^* \rightarrow R^*\) factors through \(({\mathbb{Z}}/M{\mathbb{Z}})^*\) via the natural map \(({\mathbb{Z}}/N{\mathbb{Z}})^*\rightarrow ({\mathbb{Z}}/M{\mathbb{Z}})^*\).
Creation
- DirichletGroup(N): RngIntElt -> GrpDrch
The group of Dirichlet characters modulo \(N\) with values in
RationalField(). (Note that this is a group of exponent at most \(2\).)
- FullDirichletGroup(N): RngIntElt -> GrpDrch
The group of Dirichlet characters modulo \(N\) taking values in the \(m\)th cyclotomic field, where \(m\) is the exponent of the unit group modulo \(N\).
- DirichletGroup(N, R): RngIntElt, Rng -> GrpDrch
The group of Dirichlet characters modulo \(N\) with values in the ring \(R\). Here \(R\) can be the integers, rationals, a number field, or a finite field. (Note that this group may be smaller than the full Dirichlet group.)
- DirichletGroup(N, R, z, r): RngIntElt, Rng, RngElt, RngIntElt -> GrpDrch
The group of Dirichlet characters mod \(N\) with values in the cyclic subgroup generated by the root of unity \(z\) in the ring \(R\). Here \(z\) must be an element of \(R\) of exact order \(r\) (where \(r\) may be smaller than the exponent of the full Dirichlet group).
- BaseExtend(G, R): GrpDrch, Rng -> GrpDrch
- BaseExtend(G, R, z): GrpDrch, Rng, RngElt -> GrpDrch
The group of Dirichlet characters corresponding to \(G\) with values in the ring \(R\). In the second form, the distinguished root of unity of the base ring of \(G\) is identified with the given element \(z\).
Element Creation
- Elements(G): GrpDrch -> [GrpDrchElt]
A sequence containing all Dirichlet characters in the Dirichlet group \(G\).
- G ! x: GrpDrch, Any -> GrpDrchElt
This coerces the given element \(x\) into the Dirichlet group \(G\). Here \(x\) may be a Dirichlet character belonging to a different group, or a sequence of integers specifying an element of the
AbelianGroupof \(G\).
- KroneckerCharacter(D): RngIntElt -> GrpDrchElt
- KroneckerCharacter(D, R): RngIntElt, Rng -> GrpDrchElt
The Kronecker character \(n\mapsto (d/n)\), where \(d\) is the fundamental discriminant associated to the integer \(D\).
When a ring \(R\) is given, this is returned as a character with values in \(R\).
Attributes of Dirichlet Groups
- Modulus(G): GrpDrch -> RngIntElt
The integer \(N\) such that G is a group of Dirichlet characters on \({\mathbb{Z}}/N\).
- Generators(G): GrpDrch -> [GrpDrchElt]
A sequence containing generators for the Dirichlet group \(G\).
- UnitGenerators(G): GrpDrch -> [RngIntElt]
This returns an ordered sequence of integers that reduce to “canonical” generators of the unit group of \(Z/N\), where \(N\) is the modulus of G.
- GaloisConjugacyRepresentatives(G): GrpDrch -> [GrpDrchElt]
- GaloisConjugacyRepresentatives(seq): [GrpDrchElt] -> [GrpDrchElt]
This returns a sequence containing one representative from each Galois conjugacy class (over \({\mathbb{Q}}\)) of characters corresponding to a character in the given group or the given sequence.
- AbelianGroup(G): GrpDrch -> GrpAb, Map
This returns a finite abelian group isomorphic to the given group \(G\) of Dirichlet characters (as an abstract group), and secondly returns a map from the abstract group to \(G\).
It is necessary to use this function in order to make group theoretic constructions involving \(G\).
Attributes of Elements
- Modulus(chi): GrpDrchElt -> RngIntElt
The modulus of the group of Dirichlet characters that contains \(\chi\).
- Conductor(chi): GrpDrchElt -> RngIntElt
The minimal conductor of the Dirichlet character \(\chi\). (That is, the smallest integer \(M\) such that
chiis well-defined on the unit group of \(Z/M\).)
- ElementToSequence(chi): GrpDrchElt -> SeqEnum
A sequence of integers specifying the Dirichlet character \(\chi\) (in terms of generators of the group containing \(\chi\)).
- x eq y: GrpDrchElt, GrpDrchElt -> BoolElt
Return
trueiff the given characters have the same modulus and values.
- Order(chi): GrpDrchElt -> RngIntElt
The order of the given element \(\chi\) in a group of Dirichlet characters.
- IsTrivial(chi): GrpDrchElt -> BoolElt
Returns
trueif and only if the Dirichlet character \(\chi\) has order \(1\).
- IsPrimitive(chi): GrpDrchElt -> BoolElt
Returns
trueiff the Dirichlet character \(\chi\) is primitive (equivalently, if its conductor equals its modulus).
- AssociatedPrimitiveCharacter(chi): GrpDrchElt -> GrpDrchElt
The primitive character modulo the conductor of \(\chi\) which takes the same values (on units) as \(\chi\).
- IsEven(chi): GrpDrchElt -> BoolElt
Returns
trueif and only ifEvaluate(chi,-1)is equal to \(1\). Note that in characteristic \(0\), the space of modular forms of weight \(k\) and character \(\chi\) is zero if \(\chi\) is even and \(k\) is odd.
- IsOdd(chi): GrpDrchElt -> BoolElt
Returns
trueif and only ifEvaluate(chi,-1)is equal to \(-1\). Note that in characteristic \(0\), the space of modular forms of weight \(k\) and character \(\chi\) is zero if \(\chi\) is odd and \(k\) is even.
- IsTotallyEven(chi): GrpDrchElt -> BoolElt
For a Dirichlet character \(\chi\), this is
trueif and only if every character in theDecompositionof \(\chi\) (into prime power components) is even.
Evaluation
- Evaluate(chi, n): GrpDrchElt, RngIntElt -> RngElt
- chi(n): GrpDrchElt, RngIntElt -> RngElt
The value of the Dirichlet character \(\chi\) at the integer \(n\).
- ValueList(chi): GrpDrchElt -> [RngElt]
A sequence containing the values \([\chi(1),..,\chi(N)]\) of the given character \(\chi\), where \(N\) is the modulus of \(\chi\).
The list of values is stored; then in later calls to
Evaluate, the stored value is returned.
Arithmetic
- x * y: GrpDrchElt, GrpDrchElt -> GrpDrchElt
- x / y: GrpDrchElt, GrpDrchElt -> GrpDrchElt
The product or quotient (respectively) of the Dirichlet characters \(x\) and \(y\). This is a Dirichlet character of modulus equal to the least common multiple of the moduli of \(x\) and \(y\). The base rings and chosen roots of unity of the parents of \(x\) and \(y\) are equal.
- x ^ n: GrpDrchElt, RngIntElt -> GrpDrchElt
The Dirichlet character \(x\) raised to the power of \(n\), where \(n\) is any integer.
Example
- Example: Dirichlet Characters Modulo 5 (ex-19f11f)
Run in calculator (opens in a new tab)
We begin by constructing the group of characters \(({\mathbb{Z}}/5{\mathbb{Z}})^*\rightarrow{\mathbb{Q}}^*\).
> G<a> := DirichletGroup(5); G; // The default base field is Q. Group of Dirichlet characters of modulus 5 over Rational Field > #G; 2 > [Evaluate(a, n) : n in [1..5]]; [ 1, -1, -1, 1, 0 ] > Eltseq(a); [ 2 ] > a eq G![2]; true > IsEven(a); true > IsOdd(a); false > IsTrivial(a); false
Next we create a character by building it up “locally”.
> G1<a4> := DirichletGroup(4); > Conductor(a4); 4 > G2<a5> := DirichletGroup(25); > Conductor(a5); 5 > eps := a4*a5; > Modulus(eps); 100 > Conductor(eps); 20 > Evaluate(eps,7) eq Evaluate(a4,7)*Evaluate(a5,7); true
Characters can be constructed over various fields.
> G<a> := DirichletGroup(7,GF(7)); > #G; 6 > Evaluate(a,2); 2 > > G<a3,a5> := DirichletGroup(15,CyclotomicField(EulerPhi(15))); > G; Group of Dirichlet characters of modulus 15 over Cyclotomic Field of order 8 and degree 4 > #G; 8 > Conductor(a3); 3 > Conductor(a5); 5 > Order(a5); 4 > Evaluate(a5,2); zeta_8^2
If \(D\) is a fundamental discriminant, then
KroneckerCharacter(D)is the quadratic Dirichlet character corresponding to the quadratic field \({\mathbb{Q}}(\sqrt{D})\). The following code verifies thatKroneckerCharacterandKroneckerSymbolagree in the case \(D=209\).> chi := KroneckerCharacter(209); > for n in [1..209] do > assert Evaluate(chi,n) eq KroneckerSymbol(209,n); > end for;
If \(E\) is an elliptic curve with newform \(f_E\), then the twist \(E_D\) corresponds to \(f_E\) twisted by this character, as illustrated below.
> E := EllipticCurve(CremonaDatabase(),"11A"); > f := qEigenform(E,8); f; q - 2*q^2 - q^3 + 2*q^4 + q^5 + 2*q^6 - 2*q^7 + O(q^8) > chi := KroneckerCharacter(-7); > qEigenform(QuadraticTwist(E,-7),8); q - 2*q^2 + q^3 + 2*q^4 - q^5 - 2*q^6 + O(q^8) > R<q> := Parent(f); > &+[Evaluate(chi,n)*Coefficient(f,n)*q^n : n in [1..7]] + O(q^8); q - 2*q^2 + q^3 + 2*q^4 - q^5 - 2*q^6 + O(q^8)