Probably the most significant difference between the class field theories for number fields and function fields is the fact that function fields allow an analytic description of abelian extensions in general where number fields (currently) only admit the analytical view for extensions of the rationals (cyclotomic fields) and imaginary quadratic fields (CM-theory).
The analytic description is based on Drinfeld-modules of rank 1 (or in the case of the rational function field the Carlitz-module). Informally, a Drinfeld module is a representation of some (infinite) maximal order of a function field into the ring of additive polynomials over some appropriate ring containing the original field. Similar to CM-theory, abelian extensions are then generated by adjoining torsion points under this action.
For a rational function field k = Fq(t) and a polynomial f in k[t], compute the image of f under the Carlitz module as an element in the ring of twisted polynomials R. Specifically, the Carlitz module is the representation induced by sending t to F + t where F is the transcendental element of R, the Frobenius of k. As Fq[t] is freely generated by t, this defines a homomorphism (a representation) of Fq[t] into the twisted polynomials over k.
> Fq<w> := GF(4); > k<t> := RationalFunctionField(Fq); > R<T> := TwistedPolynomials(k:q := 4);Suppose we want to create the Ray-class field modulo p := t2 + t + w, ie we want to find an abelian extension unramified outside p and the infinite place.
> p := t^2+t+w; > P := CarlitzModule(R, p); > F := Polynomial(P); > Factorisation(F); [ <T, 1>, <T^15 + (t^4 + t + 1)*T^3 + t^2 + t + w, 1> ] > K := FunctionField($1[2][1]); > a := Support(DifferentDivisor(K)); > a[1]; (t^2 + t + w, K.1) > [ IsFinite(x) : x in a]; [ true, false, false, false, false, false ] > RamificationIndex(a[1]); 15So, this shows that the field has the ramification behaviour we wanted. However, the Carlitz-module will give us more information: We will demonstrate that the automorphism group of K is isomorphic to the unit group of Fq[t]/p under this module.
> q, mq := quo<Integers(k)|p>; > au := func<X|Evaluate(Polynomial(CarlitzModule(R, X)), K.1)>; > [ <IsUnit(x), Evaluate(DefiningPolynomial(K), au(x@@mq)) eq 0> > : x in q]; [ <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <true, true>, <false, false> ]Now we try to create the same field using the algebraic class field machinery:
> D, U := NormGroup(K); > Conductor(D, U); ($.1^2 + $.1 + w) + (1/$.1)So this also shows that K is ramified exactly at p and the infinite places and, since the multiplicity is one, tamely ramified at both places.
> A := AbelianExtension(D, U); > F := FunctionField(A); > F; Algebraic function field defined over Algebraic function field defined over GF(2^2) by $.2 + 1 by $.1^3 + ($.1^2 + $.1 + w)^2 $.1^5 + w^2*$.1^3 + w*$.1 + (w^2*$.1^4 + w^2*$.1^2 + 1)/($.1^6 + $.1^5 + w^2*$.1^4 + $.1^3 + $.1^2 + w^2*$.1 + 1) > HasRoot(Polynomial(K, DefiningPolynomials(F)[1])); true K.1^10 + (t^2 + t + w)*K.1^4 + (t^2 + t + w)*K.1 > HasRoot(Polynomial(K, DefiningPolynomials(F)[2])); true w/(t^2 + t + w)*K.1^12 + (w*t^2 + w*t + 1)/(t^2 + t + w)*K.1^6 + w*K.1^3
For F a global function field and p a place, compute an algebraic description of "the" Drinfeld module of rank 1 defined for the ring of functions integral outside p. More precisely, let R be the ring of functions integral outside p, ie. functions having their only poles at R. In Magma this is represented by changing the representation of the function field so that p is the only infinite place. Then R becomes simply the finite maximal order. Furthermore, let C be the completion of F at p and tilde C be the closure of the algebraic closure of C, thus D will play the role of the complex numbers in this theory, while C is closely related to the reals. By means of mapping R to its image in D⊂C, we obtain a lattice Λ of rank 1. Related to this lattice are certain exponential functions (analytic functions where the set of zeros is Λ). The transformation behaviour of such functions can be used to define a map from R to the endomorphisms of C, represented as additive (twisted) polynomials. In particular, under suitable normalisation, the lattice Λ as defined above, the transformation behaviour can be realised over the Hilbert-class field of F. Since a Drinfeld module is uniquely defined by specifying a single image of a non-constant element of R, this function returns a non-constant (as first return value) and the image as a twisted polynomial over the Hilbert-class field as a second. In case the place is of degree one, the Drinfeld module will also be sign-normalized.
Given D, the image of a non-constant element under a Drinfeld module for the ring R of functions integral outside p, an element x in R, compute the image of x.
We begin by defining a curve.
> k<w> := GF(4); > kt<t> := PolynomialRing(k); > kty<y> := PolynomialRing(kt); > F := FunctionField(y^3+w*t^5+w*t); > Genus(F); 1 > ClassNumber(F); 3Now, to define a Drinfeld module, we need to single out an "infinite" place:
> p := InfinitePlaces(F)[1]; > Degree(p); 1Since the place p is of degree 1, our Drinfeld module will be sign-normalised.
> A, D := AnalyticDrinfeldModule(F, p); > H<h> := CoefficientRing(D); > A; w^2/(x + 1)*F.1 > D; T_4^2 + ((w*x^5 + 1)/(x^5 + x)*$.1^2*h^2 + (w^2*x^5 + w^2*x^4 + w^2*x + 1)/(x^4 + x^3 + x^2 + x)*F.1^2*h + (x^4 + x^2 + w)/(x^2 + 1)*$.1^2)*T_4 + w^2/(x + 1)*F.1So, the Drinfeld module is uniquely determined by the image of a single non-constant (A) which is chosen to have maximal valuation at p and sign 1.
The values of the Drinfeld module are defined over H which is the Hilbert-class field of F, ie. the maximal abelian unramified extension where p is completely split.
> Sign(A, p); 1 > Valuation(A, p); -2To compute the value of "the" Drinfeld module of a different element we use Extend:
> b := F!t; > Extend(D, b, p); w*T_4^3 + ((w*x^20 + w*x^19 + w*x^18 + w*x^17 + w*x^16 + w*x^15 + w*x^14 + w*x^13 + w*x^12 + w*x^11 + w*x^10 + w*x^9 + w*x^8 + w*x^7 + w*x^6 + w*x^5 + w*x^4 + w*x^3 + w*x^2 + w*x + w)/(x^4 + x^3 + x^2 + x)*$.1^2*h^2 + (w^2*x^20 + w^2*x^19 + w^2*x^16 + w^2*x^15 + w^2*x^4 + w^2*x^3 + w^2)/(x^3 + x^2 + x + 1)*$.1^2*h + (x^20 + x^18 + x^12 + x^10 + w*x^4 + w*x^2 + w^2)/(x^2 + 1)*$.1^2)*T_4^2 + ((w*x^5 + w^2*x^3 + w^2*x^2 + x + w)/(x^2 + 1)*$.1*h^2 + (w^2*x^5 + w^2*x^4 + x^3 + w)/(x + 1)*$.1*h + (x^5 + w^2*x^3 + w*x^2 + w^2*x)*$.1)*T_4 + xTo compute a "Ray-class field" from here we can use the following:
> P := Places(F, 2)[1]; > a,b := TwoGenerators(P); > GCD(Extend(D, a, p), Extend(D, b, p)); T_4^2 + ((w*x^5 + 1)/(x^5 + x)*$.1^2*h^2 + (w^2*x^5 + w^2*x^4 + w^2*x + 1)/(x^4 + x^3 + x^2 + x)*$.1^2*h + (x^4 + x^2 + w)/(x^2 + 1)*$.1^2)*T_4 + w^2/(x + 1)*$.1 + w^2 > Polynomial($1); T_4^16 + ((w*x^5 + 1)/(x^5 + x)*F.1^2*h^2 + (w^2*x^5 + w^2*x^4 + w^2*x + 1)/(x^4 + x^3 + x^2 + x)*F.1^2*h + (x^4 + x^2 + w)/(x^2 + 1)*F.1^2)*T_4^4 + (w^2/(x + 1)*F.1 + w^2)*T_4 > R := FunctionField($1 div Parent($1).1); > R; Algebraic function field defined over H by T_4^15 + ((w*x^5 + 1)/(x^5 + x)*F.1^2*h^2 + (w^2*x^5 + w^2*x^4 + w^2*x + 1)/(x^4 + x^3 + x^2 + x)*F.1^2*h + (x^4 + x^2 + w)/(x^2 + 1)*F.1^2)*T_4^3 + w^2/(x + 1)*F.1 + w^2This should be an abelian extension over F, ramified only at p and P. So let's try to verify that:
> f := MinimalPolynomial(R.1, F); > Degree(f); 45 > Ra := FunctionField(f:Check := false); > NormGroup(Ra:Cond := 1*p+P); (1/x, 1/x^2*F.1) + (x^2 + x + w^2, F.1 + x + 1) Abelian Group isomorphic to Z Defined on 1 generator in supergroup: $.1 = 2*$.1 + 3*$.2 + $.3 (free) > D, sub_group := $1; > W := AbelianExtension(D, sub_group); > W; Abelian extension of type [ 3, 15 ] Defined modulo (1/x, 1/x^2*$.1) + (x^2 + x + w^2, $.1 + x + 1) over Algebraic function field defined over Univariate rational function field over GF(2^2) by y^3 + w*t^5 + w*t > FunctionField(W); Algebraic function field defined over F by $.1^3 + (x + 1)^-2 * (x^2 + x + w^2)^-1 * (F.1 + w*x + w) * (F.1 + w^2*x + w^2) $.1^3 + (x) * (x + 1)^-4 * (F.1 + x + 1)^2 * (x^2 + x + w^2)^-1 * (F.1 + w*x + w) * (F.1 + w^2*x + w^2) $.1^5 + (1/(x^2 + 1)*F.1^2 + w^2/(x + 1)*F.1 + (x^2 + x + 1))*$.1^3 + (w/(x^2 + 1)*F.1^2 + w*x*F.1 + (x^4 + x^2 + 1))*$.1 + (x^2 + x + 1)/(x^2 + 1)*F.1^2 + w^2*x*F.1 + x^4 + w^2*x^2 + w*x + w^2 > WW := $1; > [HasRoot(Polynomial(Ra, x)) : x in DefiningPolynomials(WW)]; [ true, true, true]
InfBound: RngIntElt Default: 5
Map: Map Default: id
Class: DivFunElt Default: 0
Limit: RngIntElt Default: ∞
Scale: RngElt Default: false
In Drinfeld's theory of elliptic modules, one associates an exponential function to a lattice. The transformation of this function under scaling of the lattice gives then rise to the "Drinfeld-module". This function computes an approximation to the exponential of the "standard-lattice". More precisely: let R be the ring of functions integral outside the place p and let C be the completion of the function field at p. Considered as a subset of C, R is a 1-dimensional lattice Λ in Drinfelds sense. The exponential associated to this lattice is the function exp: z to z∏'(1 - z/l) where the product is taken over all non-zero lattice points l. This function can be seen to be an additive analytic function.For n>0, let now L(np) be the Riemann-Roch spaces and fn : z to z∏'(1 - z/l) (the product is over the non-zero elements of L(np)). It can be seen that fn to exp as n to∞. This intrinsic computes fn for n equal the value of InfBound. If Limit is given then the twised polynomial representing fn is truncated at that term. If Class is given and contains the divisor d, then instead of L(np) we use L(np + d) which will approximate a (in general) non-isomorphic exponential coming from the lattice from the ideal representing the finite part of d.
If Map is given, then the map is applied to each element in L(np) first, thus allowing to compute analytic approximations instead of alegebraic ones. Additionally, if Scale is given, the elements of L(np) are multiplied by this value before the functions are formed, corresponding to a scaling of the lattice.
The exponential is evaluated at x, the first argument. Typically, x will be the transcendental element of a polynomial ring, a twisted polynomial ring or a power series ring.
InfBound: RngIntElt Default: 5
Map: Map Default: id
Class: DivFunElt Default: 0
Limit: RngIntElt Default: ∞
Scale: RngElt Default: false
Let Λ be the lattice as described for Exp above. By Drinfeld's theory, the exponential functions of Λ and xΛ are related through some polynomial. This function computed the polynomial for x, which is "the" image of x under the Drinfeld module defined by Λ. The use of the parameters is as for Exp above.
Let F be a twisted polynomial, typically over a completion. This function tries to conjugate F so that the coefficients are integral with small valuations. On success, true, the new polynomial and the element used to normalise F is returned.
Let F be a twisted polynomial, typically over a completion. This function tries to conjugate F so that the highest coefficient is an element in the residue class field. On success, true, the new polynomial and the element used to normalise F is returned.
Given a non-trivial image F under a Drinfeld module with the "infinite place" p, compute a basis for a submodule of the lattice underlying F. The parameter RelPrec is used to limit the number of coefficients of the exponential that are reconstructed, thus it also limits the dimenstion of the submodule.