Class Field Theory

The class field theory of local fields classifies abelian extensions of local field in a way similar to the way global class field theory deals with extensions of number fields and global function fields.

While the origins of local class field theory are, via completions and localisations, in the global case, today it is a theory in its own. Although local class field theory can be used to obtain global results, it has very powerful generalisations that the global case (currently) does not allow.

Local class fields are classified in terms of the norm group, ie. the multiplicative group of norms of elements, rather than some ideal or divisor class group as in the global case. Since the multiplicative group of a local field is far better understood than the ideal group of a global field, the theory is much more explicit and easier in the local case.

Contents

Unit Group

In contrast to the case of global fields, the multiplicative group of both p-adic rings and fields has a well understood structure which can be computed by algorithms developed and implemented by S. Pauli [Pau06]. It should be noted that all the unit group related functions operate on fixed-precision rings only.

PrincipalUnitGroupGenerators(R) : RngPad -> SeqEnum
PrincipalUnitGroupGenerators(R) : FldPad -> SeqEnum
The principal units of a p-adic ring or field R are elements of the form 1 + π ZR where π is a uniformizing element of R and ZR is the ring of integers. This function returns a sequence of generators for this group.
PrincipalUnitGroup(R) : RngPad -> GrpAb, Map
PrincipalUnitGroup(R) : RngPadResExt -> GrpAb, Map
PrincipalUnitGroup(R) : RngPadRes -> GrpAb, Map
The principal units of a p-adic ring or field R are elements of the form 1 + π ZR where π is a uniformizing element of R and ZR is the ring of integers. This function returns an abstract abelian group isomorphic to the group of principal units and an explicit isomorphism, ie. a map between the abstract group and the p-adic ring or field.
UnitGroup(R) : RngPad -> GrpAb, Map
Given a p-adic ring R of fixed precision, this function computes an abstract abelian group isomorphic to the unit group as well as an explicit map between the abstract group and R.
UnitGroup(F) : FldPad -> GrpAb, Map
Given a p-adic field F of fixed precision, this function computes an abstract abelian group isomorphic to the multiplicative group of F as well as an explicit map between the abstract group and F.
UnitGroupGenerators(R) : RngPad -> SeqEnum
UnitGroupGenerators(R) : RngPadRes -> SeqEnum
Given a p-adic ring with fixed precision, this function computes generators for its unit group.
UnitGroupGenerators(F) : FldPad -> SeqEnum
Given a p-adic field with fixed precision, this function computes generators for its multiplicative group.
pSelmerGroup(p,F) : RngIntElt, FldPad -> GrpAb, Map
Given a l-adic field F, return the p-Selmer group, i.e., the group F * /F * p, as an abstract group, as well as the map from F * to the abstract group.

Norm Group

Given two p-adic field F/k the norm group of F in k, ie. the image of the norm map from F to k is the central object of local class field theory. Since the norm map will always operate on some multiplicative group, all functions in this section will take the map returned by UnitGroup as an argument as this then allows the convenient way of describing the norm group as a subgroup of some explicit finitely generated abelian group.

NormGroup(R, m) : FldPad, Map -> GrpAb, Map
NormGroup(R, m) : RngPad, Map -> GrpAb, Map
Given a p-adic ring or field R extending S and a description of the unit group of S encoded by a map m from some abstract abelian group to S as computed by UnitGroup, compute the image of the norm map as a subgroup. The map returned is the embedding map returned form the subgroup constructor.
NormEquation(R, m, b) : FldPad, Map, RngElt -> BoolElt, RngElt
NormEquation(R, m, b) : RngPad, Map, RngElt -> BoolElt, RngElt
Given a p-adic ring R defined over S, the unit group of S encoded by the map m as computed by UnitGroup(S) and some element b∈S, try to compute an element a∈R such that the norm of a equals b. In case such an element exists, it is returned as a second value.
NormEquation(m1, m2, G) : Map, Map, GrpAb -> GrpAb, Map
Given two p-adic rings R and S and their unit groups UR and US as parameterized by the maps m1: UR to R and USto S as well as a subgroup G<US, compute the preimage of G under the norm map operating on the unit groups.
Norm(m1, m2, G) : Map, Map, GrpAb -> GrpAb
Given two p-adic rings R and S and their unit groups UR and US as parameterized by the maps m1: UR to R and USto S as well as a subgroup G<UR, compute the image of G under the norm map operating on the unit groups.
NormKernel(m1, m2) : Map, Map -> GrpAb
Given two p-adic rings R and S and their unit groups UR and US as parameterized by the maps m1: UR to R and USto S compute the kernel of the norm map from UR to US as a subgroup of UR.

Class Fields

Class fields, that is abelian extensions are parameterized by their norm groups. Pauli, in [Pau06] gave explicit algorithms to solve the reverse problem of class field theory: given a suitable subgroup of some (abstractly given) multiplicatively group of some p-adic field, compute explicit defining equations for the class field.

ClassField(m, G) : Map, GrpAb -> FldAb
Given a p-adic field S and its multiplicative group US specified by the map m: US to S and a suitable subgroup G<US, this function computes for each cyclic factor of US/G an explicit defining equation for the class field corresponding to this factor.
NormGroupDiscriminant(m, G) : Map, GrpAb -> RngIntElt
Given a p-adic field S and its multiplicative group US specified by the map m: US to S and a suitable subgroup G<US, this function computes the valuation of the discriminant of the extension parameterized by G without computing explicit equations for it.
V2.28, 13 July 2023