I am supervising an undergraduate for a project in which he's going to talk about the relationship between Galois representations and modular forms. We decided we'd figure out a few examples of weight 1 modular forms and Galois representations and see them matching up. But I realised when working through some examples that computing the conductor of the Galois representation was giving me problems sometimes at small primes.

Here's an explicit question. Set $f=x^4 + 2x^2 - 1$ and let $K$ be the splitting field of $f$ over $\mathbf{Q}$. It's Galois over $\mathbf{Q}$ with group $D_8$. Let $\rho$ be the irreducible 2-dimensional representation of $D_8$. What is the conductor of $\rho$? Note that I don't particularly want to know the answer to this particular question, I want to know how to work these things out in general. In fact I think I could perhaps figure out the conductor of $\rho$ by doing calculations on the modular forms side, but I don't want to do that (somehow the point of the project is seeing that calculations done in 2 different ways match up, rather than using known modularity results to do the calculations).

Using pari or magma I see that $K$ is unramified outside 2, and the ideal (2) is an 8th power in the integers of $K$. To compute the conductor of $\rho$ the naive approach is to figure out the higher ramification groups at 2 and then just use the usual formula. But the only computer algebra package I know which will compute higher ramification groups is magma, and if I create the splitting field of $f$ over $\mathbf{Q}_2$ (computed using pari's "polcompositum" command)

g:=x^8 + 20*x^6 + 146*x^4 + 460*x^2 + 1681;
L := LocalField(pAdicField(2, 50),g);

then I get an instant memory overflow (magma wants 2.5 gigs to do this, apparently), and furthermore the other calculations I would have to do if I were to be following up this idea would be things like

RamificationGroup(L, 3);

which apparently need 11 gigs of ram to run. Ouch. Note also that if I pull the precision of the $p$-adic field down from 50 then magma complains that the precision isn't large enough to do some arithmetic in $L$ that it wants to do.

I think then my question must be: are there any computer algebra resources that will compute higher ramification groups for local fields without needing exorbitant amounts of memory? Or is it a genuinely an "11-gigs" calculation that I want to do?? And perhaps another question is: is there another way of computing the conductor of a (non-abelian finite image) Galois representation without having to compute these higher ramification groups (and without computing any modular forms either)?

  • $\begingroup$ Have you considered the constraints imposed by the integrality of the Artin conductor? For 2-dimensional Galois representations of dihedral type, I'd think this would limit the possibilities for higher ramification groups. $\endgroup$
    – Marty
    Mar 5, 2010 at 19:58
  • $\begingroup$ Somehow I suspect (although I didn't check) that although you are right, these limitations will somehow be built in to the standard limitations on the jumps explained in e.g. Serre's local fields book. $\endgroup$ Mar 5, 2010 at 20:32
  • 1
    $\begingroup$ Quick ad hoc calculation (not checked): standard permutation representation of D_8 on a square gives a 4-dimensional linear representation, which is the sum of a trivial representation, the representation you want, and a quadratic character. The discriminant of the associated quartic field is (at 2) of valuation 10, so you just need to figure out what the associated quadratic field is; I think (without checking) it's $\mathbb{Q}(\sqrt{2})$, so that gives 7. Did that very hastily, though, don't trust i $\endgroup$
    – moonface
    Mar 5, 2010 at 22:37
  • 2
    $\begingroup$ The latest Magma does this trivially in 0.6s and 25MB, so they must have improved it. $\endgroup$
    – Junkie
    Jun 10, 2011 at 3:59

3 Answers 3


You can also compute some higher ramification groups in Sage. At the moment it gives lower numbering, not upper numbering, but here it is anyway:

sage: Qx.<x> = PolynomialRing(QQ)

sage: g=x^8 + 20*x^6 + 146*x^4 + 460*x^2 + 1681

sage: L.<a> = NumberField(g)

sage: G = L.galois_group()

sage: G.ramification_breaks(L.primes_above(2)[0])

{1, 3, 5}

You can also get explicit presentations of G as a permutation group and generators for ramification and decomposition subgroups. The above only takes about half a second on my old laptop -- no 2.5 gigs computations here.

(The point is that it is much easier to do computations over a number field, because everything is exact, rather than over a p-adic field which is represented inexactly.)

  • $\begingroup$ David this is great---thanks. It's even more efficient than dke's answer. I wonder if I was just using magma incorrectly, as it can obviously do number fields as well. Can it actually tell me the groups? Both answers have only told me the breaks. I guess I can just look this up myself. $\endgroup$ Mar 6, 2010 at 10:13
  • $\begingroup$ You can get this in Sage using G.ramification_group(p, n), and in Magma by using RamificationGroup(p, n), where in each case p is the prime of you number field above 2. If you like the answer, please vote it up, I've been stuck on zero reputation for months. $\endgroup$ Mar 6, 2010 at 10:23
  • 1
    $\begingroup$ So in fact what you're saying is that my mistake was to try and do the calculation locally; I should never have used p-adic fields at all! $\endgroup$ Mar 6, 2010 at 10:47
  • $\begingroup$ So it turns out to be a mistake to try to compute ramification groups using local arithmetic, rather than global arithmetic? That's weird. $\endgroup$ Mar 6, 2010 at 22:00
  • 1
    $\begingroup$ Pete: I think what's going is the following. If you work globally then at times you might have to solve global problems (e.g. factoring discriminants), but on the other hand all your data is exact. If you work locally then you only know all your data mod p^{50}, which is a huge saving if p=2 and your discriminant is O(10^{1000}), but a big loss if your discriminant is O(10^{10}). My global field is sufficiently simple that apparently a global approach is more efficient. OTOH if it were impossible to compute the integers in my global field in finite time, it might be a different story. $\endgroup$ Mar 6, 2010 at 22:28

It's rather late in the day, but there's an easy way of getting the whole Hasse-Herbrand function $\varphi^K_{\mathbb{Q}_p}(x)$ if you know the minimal polynomial $F$ of a prime element $\pi$. First, you write down the copolygon (valuation function) of $F(X+\pi)$ using the valuation normalized to have $v(p)=1$, then you stretch it horizontally by a factor of $[K\colon\mathbb{Q}_p]$, then you move it down and to the left by one unit, to get the numberings consistent with Serre's convention. The vertices in KB's case are $(1,1)$, $(3,2)$ and $(5,5/2)$. I couldn't figure out the prime of the Galois closure till I saw the extension as quadratic over $\mathbb{Q}_2(\zeta_8)$. At any rate, the chain of fields corresponding to the ramification filtration is $\mathbb{Q}_2\subset\mathbb{Q}_2(i)\subset\mathbb{Q}_2(\zeta_8) \subset K$. Needless to say, you don't need any kind of powerful package to do this kind of computation.

  • 10
    $\begingroup$ Welcome to the site! $\endgroup$ Dec 16, 2010 at 23:34
  • $\begingroup$ Great point about having a correspondence which doesn't require as much computation. $\endgroup$ Dec 17, 2010 at 2:48
  • 5
    $\begingroup$ Hey Lubin! Thanks very much for this humbling post. I just taught my last class of this term---teaching undergraduates how to compute ranks of elliptic curves by hand via explicit 2-isogenies. One reason I teach it is that I feel it's becoming a dying art. But when faced with the conductor problem I had above, my instincts were to turn straight to a computer. Perhaps I shouldn't have been so hasty! $\endgroup$ Dec 19, 2010 at 1:10

Whilst it doesn't necessarily answer your question in full, John Jones' Database of Local Fields will cover some cases e.g. your example f over $\mathbf{Q}_2$ apparently has upper ramification jumps at 2,3 and 7/2. Looking at the papers about the database might point you to some more general code you could use...

  • $\begingroup$ Hey that is a most excellent answer, thanks. A website that has a high chance of succeeding with "smallish" examples would be the perfect thing for this student. Thanks very much. I am tempted to just accept this answer now, but I'll leave it a bit in case anything else comes along. $\endgroup$ Mar 5, 2010 at 20:34

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.