This chapter presents the facilities provided in Magma for class field theory. The main objects of interest are abelian extensions of number fields (FldAb) and maps between abelian groups and ideal groups.
Class field theory is concerned with the classification of all abelian extensions of a given field. In particular, this covers abelian extensions of number fields, local fields and global function fields. While this chapter deals with the number field case only, Magma can also perform computations in the other cases. For the case of global function fields, see Chapter CLASS FIELD THEORY FOR GLOBAL FUNCTION FIELDS and for the case of p-adic local fields, Section Class Field Theory.
Abstractly, class field theory parametrizes abelian extensions in terms of abelian groups defined with respect to the base field. In Magma, ray class groups and their quotients are used to define the extensions. Ray class groups and their quotients are always represented as maps between a finite abelian group (GrpAb) and the power structure of ideals (PowIdeal). The maps are usually obtained as products of the map returned by ray class groups and quotient maps.
In theory, a class field is completely determined by the corresponding class group (map). Currently there is only a small number of invariants that can be computed directly from the map; for most other properties the class field has to be converted into a number field by computing a set of defining equations.
Class field theory classifies all abelian extensions of a given number field k in terms of quotients of ray class groups. Ray class groups should be thought of as generalized class groups in that they can be defined similarly to class groups: 1 to U to k * to I to Cl to 1 where k * is the multiplicative group of k, U is the group of units, and I the group of fractional ideals. (Recall, the class group is defined as the quotient of the ideals modulo the principal ideals). To define ray class groups we need to refine all of the above terms. Let o = Zk be the ring of integers in k and fix an integral ideal m0 in o. Furthermore, let m_∞ be a subset of the real embeddings of k into C and, formally, m := (m0, m_∞). Then for x ∈k define x mod * m = 1 iff Biggl{ ((vp(x - 1) ≥vp(m0) for all prime ideals p) atop (s(x)>0 for s ∈m_∞)) Let Im denote the group of fractional ideals that are coprime to m0, Um the units u such that u mod * m = 1 and Pm the elements x∈k such that x mod * m = 1. Then 1 to Um to Pm to Im to Clmto 1 defines the ray class groups modulo m. For m = (1o, emptyset), this corresponds to the usual class group. Given two moduli m and n such that m0|n0 and m_∞⊆n_∞ we have canonical surjections Cln to Clm.
Now, let H be a subgroup such that Pm < H < Im. There exists a minimal n such that the canonical embedding Clm/H to Cln is injective. This n is called the conductor of H.
The main theorem of class field theory asserts the following correspondence between abelian extensions K/k of k and quotients of ray class groups: Let K/k be abelian and G := Gal(K/k) the group of k-automorphisms of K. For each prime ideal p of k that is unramified in K, let Frob(p, K/k) be the Frobenius automorphism, i.e. the unique s∈G such that s(x) = xN mod p for all x∈k. Extend this map multiplicatively to all ideals coprime to dK/k, the discriminant of K/k. This is known as the Artin-map and is denoted by (a, K/k). Class field theory asserts the existence of some modulus m and a subgroup H such that G isomorphic to Clm/H by the Artin-map.
Conversely, for each ray class group Clm and each subgroup Pm< H there is an abelian extension K/k with the above property.
The correspondence is one-to-one if one restricts to pairs Clm and H such that m is the conductor of H.
For m = (1o, emptyset), the corresponding field K is called the Hilbert class field of k (in the wide sense).
Perhaps best understood is the Hilbert class field. As conjectured by Hilbert and proved by Furtwängler, all ideals of k become principal in the Hilbert class field Hk. Furthermore, Hk is the maximal unramified abelian extension of k.
A different interpretation of H is provided by norm groups. We have H = < NK/k(a) | a ∈IKm > This result may be used to convert an abelian number field into an abelian extension. In addition, class field theory asserts that, for an arbitrary normal extension K/k, the norm group defined above corresponds to the maximal abelian subfield.
In Magma maps are used to represent the ideal groups. If necessary, the map can be augmented by supplying m i.e. an integral ideal m0 and a sequence of indices of the real places in m_∞. The map returned as a second return value from ClassGroup or RayClassGroup carries the necessary information to recover m, even if this is hidden from the user. As an example, we consider the Hilbert class field of k := Q(α) with α3 + α2 + 3α - 6 = 0 with class group C4.
> k := NumberField(Polynomial([ -6, 3, 1, 1 ]));Now, the easiest way to get the Hilbert class field is to call HilbertClassField directly on k:
> K := HilbertClassField(k); > K; Number Field with defining polynomial $.1^4 + (76*k.1^2 - 420*k.1 - 488)*$.1^2\ + 32080*k.1^2 + 41984*k.1 + 95168 over kLet us now verify some of the properties, starting with the discriminant. Since K/k is totally unramified, the discriminant of the maximal order should be 1:
> O := MaximalOrder(K); > O; Maximal Order of Equation Order with defining polynomial x^4 + [-488, -420, 76]*x^2 + [95168, 41984, 32080] over its ground order > Discriminant(O); Ideal Basis: [1 0 0] [0 1 0] [0 0 1]Now let us check that all ideals of k are principal in K. In order to do so, it is sufficient to demonstrate that a generator of the class group becomes principal:
> g, m := ClassGroup(k); > g;m; Abelian Group isomorphic to Z/4 Defined on 1 generator Relations: 4*g.1 = 0 Mapping from: GrpAb: g to Set of ideals of Maximal Equation Order with defining polynomial x^3 + x^2 + 3*x - 6 over its ground order > i := m(g.1); > I := O!!i; > IsPrincipal(I); true > f,g := IsPrincipal(I); > g; [[2193497788678474035456, -1238066307883451022336, -2319265120953032748288], [394272965034846395136, -222653406238254306432, -417025104282566694144], [167087257584, 71708840496, 32825469008], [495632919, -279332235, -523526213]] / 10917386545536However, to use the more sophisticated functions, the construction of the class fields needs to be done step--by--step. We first create an abelian extension as an object of type FldAb. Since we wish to see how much of the class group becomes trivial in the quadratic subfield K1 of K (capitulates in K1), we also define this.
> aK := AbelianExtension(m); > g, m := ClassGroup(k); > q, mq := quo<g | 2*g.1>; > m2 := Inverse(mq)*m;m2; Mapping from: GrpAb: q to Set of ideals of Maximal Equation Order with defining polynomial x^3 + x^2 + 3*x - 6 over Z Composition of Mapping from: GrpAb: q to GrpAb: g and Mapping from: GrpAb: g to Set of ideals of Maximal Equation Order with defining polynomial x^3 + x^2 + 3*x - 6 over Z > aK2 := AbelianExtension(m2);This demonstrates a very important technique: the creation of a quotient group of the class group together with the corresponding map.
A few invariants such as degree and discriminant may be calculated directly from aK without the (costly) computation of a defining equation.
> Discriminant(aK); Principal Ideal Generator: [1, 0, 0] [ 4, 4 ]The second return value denotes the signature of the field as an extension of Q.
Now we compute a defining equation for aK2 and see what happens to the class group of k.
> O := MaximalOrder(aK2);O; Maximal Order of Equation Order with defining polynomial x^2 + [-5, -2, -1] over its ground order > O!!m(g.1); > IsPrincipal($1); false > IsPrincipal($2^2); trueSo only "half" of the class group capitulates in aK2, the remaining part collapses in aK.