Algebraic number theory is the study of how prime numbers behave in field extensions of the rational numbers. For example, 13 is a prime number in the integers. However, in the field extension , 13 is a product of two irreducible elements and , and so is no longer a “prime”.

Algebraic number theory grew out of Gauss and other mathematicians looking for a way to extend quadratic reciprocity (which numbers can be written as mod ?) to higher dimensions. Adding new types of numbers allowed them to investigate these problems in fuller generality. Later, Kummer and others expanded its techniques in a failed attempt to solve Fermat’s Last Theorem ( has no integer solutions for ). While these techniques did not succeed, it resulted in them developing out the theory of cyclotomic fields (the field extensions of the form , being a complex root of unity).

I started learning algebraic number theory this year and I wanted to write a bit about its core concepts and convey some of its flavor, and the reasons I think it’s an interesting topic. There are a lot of high quality resources on the internet that I’ve used to augment my main resource, which has been the textbook Number Fields by Daniel Marcus.


Let by a finite field extension of , i.e. there is some set that forms a basis of over . Call this type of extension a number field. Every number field has a subring of the elements which are solutions to polynomials with integer coefficients: where each of the . (These are also called algebraic integers).

In a quadratic field extension , you take the rational numbers adjoined with the square root of some number m (e.g. , , etc), the algebraic integers end up being if , and if .

Cyclotomic number fields are the rational numbers adjoined with for some . The algebraic integers for a cyclotomic field end up just being .

We can use Sage to compute an basis for the ring of integers for various field extensions (called an integral basis). (The a that shows up is each field’s generating element.)

sage: K = QuadraticField(14)
sage: K.integral_basis()
[1, a]
sage: K = QuadraticField(17)
sage: K.integral_basis()
[1/2*a + 1/2, a]
sage: K = CyclotomicField(13)
sage: K.integral_basis()
[1, zeta13, zeta13^2, zeta13^3, zeta13^4, zeta13^5, zeta13^6, zeta13^7, zeta13^8, zeta13^9, zeta13^10, zeta13^11]

The above examples are a little deceiving in their lack of complexity, as the ring of integers for the field extension always has the form for some . However, this is not always the case - a counterexample is the field extension extended by a root of the cubic equation .

sage: K.<a> = QQ.extension(x^3 + x^2 - 2*x + 8)
sage: K.integral_basis()
[1, 1/2*a^2 + 1/2*a, a^2]

Computing an integral basis turns out to be little trickier than computing the basis of a field extension. See [5] for more information.

Lack of Unique Factorization

One of the things that makes the integers really nice to work with is that every number can be broken down into a unique product of prime elements. For example, the number . Other than choosing negative numbers, there aren’t any alternative factorizations of .

This fundamental property of number theory may fail in a ring of integers. For example, let . Then but also .

In order to solve this difficulty, we start operating on ideals. Ideals (denoted by the symbol ) are subsets of a mutiplicative ring that are internally closed under addition (so for any two elements , ) and are closed under multiplication from the rest of the ring (so for any element and an element from the broader ring , ).

It’s not too difficult to see that the ideals of the integers are all the multiples of some prime. However, in the ring of integers, ideals may be the product of multiple generating elements, written .

Given two ideals , you can define the ideal to be the ideal generated by every element multiplied by every element .

Seen through the lens of ideals, the ring of integers admits unique factorization, except that now we’re not factoring numbers into a product of primes, we’re factoring ideals into a product of prime ideals.

Let’s ask Sage to shed some light on the situation where :

sage: K = QuadraticField(-5)
sage: K.factor(6)
(Fractional ideal (2, a + 1))^2 * (Fractional ideal (3, a + 1)) * (Fractional ideal (3, a + 2))
sage: I, J1, J2 = [x[0] for x in K.factor(6)]
sage: I * J1
Fractional ideal (a + 1)
sage: I * J2
Fractional ideal (-a + 1)
sage: I*I
Fractional ideal (2)
sage: J1*J2
Fractional ideal (3)

To summarize, in the ring of integers , we have the following factorizations:

Above, you can also see that ideal is non-principal - that is, there is no element such that generates the ideal . In math-speak this means that the ring of integers may not be a Principal Ideal Domain (abbreviated PID). (This differs from the regular integers , where every ideal is the multiples of some prime number.) It’s not even known if there are infinitely many quadratic extensions (degree 2) with a ring of integers that’s a PID.

Personal Reflection

So obviously, I find this stuff pretty interesting. I can only really explain this in contrast to my reaction to mathematical logic, a subject I respect more than I love. Much of what you learn in mathematical logic is not just the history of the results, but the history of how the results are interpreted - many of the key results in logic end up having a political feel, wherein the ability to make a mathematical construction comes with some statement about the value of your assumptions.

For example, one of the main problems in logic is the Continuum Hypothesis (is the cardinality of the real line the first uncountable infinity?). Gödel showed you could construct models of set theory where it was true. Cohen showed you could make models where it was false, using an elaborate technique - you blow up an -sized model of ZFC Set Theory into an -sized model, then show that the statement “This is an -sized set”, provable in your new model, relativizes back to ‘real mathematics’ because “This is an -sized set” is a statement.

Whatever this says, it has a meaning. Should we change our assumptions to disallow this result? Should we say the Continuum Hypothesis is true anyways? Or false anyways? What does uncountable infinity even mean? Should we use other axiom systems than ZFC? Should we just ditch all this infinity stuff in the first place?

In contrast, the objects of study in algebra feel familiar (the rational numbers! irreducible polynomials!), useful in their own right (finite fields and their factorings are used in cryptosystems), and accessible (tools like Sage allow you to explore your understanding without needing your advisor’s intuition to walk you through the easy stuff). Results don’t trigger this metaphysical quandry, and the clear motivation from simple equations over the integers helps me stay engaged. These problems motivated these mathematical greats (Gauss, Euler, and Fermat), and centuries later we get to understand the issues to which they devoted their lives.


  1. Algebraic Number Theory, a Computational Approach by William Stein
  2. Algebraic Number Theory by J.S. Milne
  3. A Course In Algebraic Number Theory by Richard Ash
  4. Basic Algebraic Number Theory from CTNT 2018, Liang Xiao,
  5. Computing Integral Bases, John Paul Cook.