Feb 5, 2016: An Algorithm to Compute the Ring of Integers (conclusion)
William Stein
Today we will finish discussing details about how to explicitly turn the theoretical discussion from Monday and Wednesday into an explicit algorithm to compute the ring of integers of , noting that it gives an algorithm to compute a -maximal order, and that is often all we need for certain question.
1. Recall -- here's what we did on Monday and Wednesday:
Given , where is a root of the irreducible integral monic , the ring is an order (=subring of full rank) in the ring of integers of .
Given an order and a prime , let where is the -radical of .
Then we proved that and if and only if is -maximal.
We also proved that where
Our goal for today is to see how to compute . To really understand everything you need to know about Hermite normal form, and basically develop the analogue of everything you do in a linear algebra course, but over instead of a field. We will not do all of that, due to lack of time.
2. Computing .
Lemma (see Lemma 6.1.6 of Cohen GTM 138): If then is the kernel of .
Proof: exercise.
So to compute , we take a -basis of , raise each of these to the power and write down the matrix of whose coefficients are such that . Then reduce this matrix modulo and compute its kernel.
The result is a basis of .
Then is got by taking the -submodule of generated by any lift of this basis together with .
Let's do it!
3. Compute the kernel
Now that we have an explicit basis for as a -submodule of , we move on to computing the kernel of explicitly.
Since goes to , we instead compute the action of on the -vector subspace , then lift and combine with a basis for to get . This is just like what we did above to go from a kernel to having the full .
First, we compute the linear map which is from an vector space of dimension to one of , so represented by a matrix with entries. (Cohen's book says "Unfortunately, in the round 2 algorithm, it seems unavoidable to use such large matrices.")