Skip to main content

Notes on class field theory

Section 4.5 Making the reciprocity map explicit

It is natural to ask whether the local reciprocity map can be described more explicitly. In fact, given an explicit cocycle ϕ generating H2(L/K), we can trace through the arguments to get the local reciprocity map. However, the argument is somewhat messy, so I won’t torture you with all of the details; the point is simply to observe that everything we’ve done can be used for explicit computations. (This observation is apparently due to Dwork.)
If you find this indigestible, you may hold out until we hit abstract class field theory. That point of view will give a different (though of course related) mechanism for computing the reciprocity map (see Section 5.2).

Subsection Initial setup

Put G=Gal(L/K). First recall that Gab=HT2(G,Z) is isomorphic to HT1(G,IG)=IG/IG2, with g[g]1. Next, use the exact sequence
0MM[ϕ]IG0
and apply the “snaking” construction: pull [g]1 back to xgM[ϕ], take the norm to get hxgh=h(xghxh1ϕ(e,h,gh)) (switching to multiplicative notation). The xgh and xh term cancel out when you take the product, so we get hϕ(e,h,gh)L as the inverse image of gGal(L/K).
As noted above, one needs ϕ to make this truly explicit; one can get ϕ using explicit generators of L/K if you have them. For K=Qp, one can use roots of unity; for general K, one can use the Lubin-Tate construction. Alternatively, one can argue as in our proof that H2(L/K) is cyclic of order n; see below.

Subsection An explicit cocycle via periodicity

Let M/K be unramified of degree n; then H2(M/K)H2(ML/K) is injective, and its image lies in the image of H2(L/K)H2(ML/K).
Now H2(M/K) is isomorphic to HT0(M/K)=K/NormM/KM, which is generated by a uniformizer πK. To explicate that isomorphism, we recall generally how to construct the isomorphism HT0(G,M)HT2(G,M) for G cyclic with a distinguished generator g. Recall the exact sequence we used to produce the isomorphism in Theorem 3.4.1:
0MMZZ[G]MZZ[G]M0.
(Remember, G acts on both factors in MZZ[G]. The first map is mhGm[h], the second is m[h]m([gh][h]), and the third is [h]1.) Let A=MZIG be the kernel of the third arrow, so 0MMZZ[G]A0 and 0AMZZ[G]M0 are exact.
Given xHT0(M/K)=MG/NormG(M), lift it to x[1]. Now view this as a 0-cochain ϕ0:GMZZ[G] given by ϕ0(h)=x[h]. Apply d to get a 1-cocycle:
ϕ1(h0,h1)=ϕ0(h1)ϕ0(h0)=x([h1][h0])
which actually takes values in A. Now snake again: pull this back to a 1-cochain ψ1:G2MZZ[G] given by
ψ1(gi,gi+j)=x([gi]+[gi+1]++[gj1])
for i,j=0,,#G1. Apply d again: now we have a 2-cocycle ψ2:G3MZZ[G] given by (again for i,j=0,,#G1)
ψ2(e,gi,gi+j)=ψ1(gi,gi+j)ψ1(e,gi+j)+ψ1(e,gi)=x([e]++[gi1]+[gi]++[gi+j1][e][gi+j1])={0i+j<#Gx([e]++[g#G1])i+j#G.
This pulls back to a 2-cocycle ϕ2:G3M given by
ϕ2(e,gi,gi+j)={0i+j<#Gxi+j#G.
If you prefer, you can shift by a coboundary to get x if i+j<#G and 0 if i+j#G.

Subsection From a cocycle to reciprocity

Back to the desired computation. Applying this to Gal(M/K) acting on M, with the canonical generator g equal to the Frobenius, we get that H2(M/K) is generated by a cocycle ϕ with ϕ(e,gi,gi+j)=π if i+j<#G and 1 otherwise. Now push this into H2(ML/K); the general theory says the image comes from H2(L/K). That is, for hGal(ML/K), let f(h) be the integer i such that h restricted to Gal(M/K) equals gi. Then there exists a 1-cochain ρ:Gal(ML/K)2(ML) such that ϕ(e,h1,h2h1)/(ρ(h1,h2h1)ρ(e,h2h1)1ρ(e,h1)) belongs to L and depends only on the images of h1,h2 in Gal(M/K). Putting σ(h)=ρ(e,h), we thus have
ϕ(e,h1,h2h1)σ(h2h1)σ(h2)h1σ(h1)
depends only on h1,h2 modulo Gal(ML/L).
The upshot: once you compute such a σ (which I won’t describe how to do, since it requires an explicit description of L/K), to find the inverse image of gGal(L/K) under the Artin map, choose a lift g1 of g into Gal(ML/K), then compute
hϕ(e,h,gh)σ(gh)σ(g)hσ(h)
for h running over a set of lifts of the elements of Gal(L/K) into Gal(ML/K).