22.8: Sage Exercises
Create a finite field of order \(5^2\) and then factor \(p(x)=x^{25}-x\) over this field. Comment on what is interesting about this result and why it is not a surprise.
Corollary \(22.11\) says that the nonzero elements of a finite field are a cyclic group under multiplication. The generator used in Sage is also a generator of this multiplicative group. To see this, create a finite field of order \(2^7\text{.}\) Create two lists of the elements of the field: first, use the
.list()
method, then use a list comprehension to generate the proper powers of the generator you specified when you created the field.
The second list should be the whole field, but will be missing zero. Create the zero element of the field (perhaps by coercing \(0\) into the field) and
.append()
it to the list of powers. Apply the
sorted()
command to each list and then test the lists for equality.
Subfields of a finite field are completely classified by Theorem \(22.7\). It is possible to create two finite fields of the correct orders for the supefield/subfield realtionship to hold, and to translate between one and the other. However, in this exercise we will create a subfield of a finite field from scratch. Since the group of nonzero elements in a finite field is cyclic, the nonzero elements of a subfield will form a subgroup of the cyclic group, and necessarily will be cyclic.
Create a finite field of order \(3^6\text{.}\) Theory says there is a subfield of order \(3^2\text{,}\) since \(2|6\text{.}\) Determine a generator of multiplicative order \(8\) for the nonzero elements of this subfield, and construct these \(8\) elements. Add in the field's zero element to this list. It should be clear that this set of \(9\) elements is closed under multiplication. Absent our theorems about finite fields and cyclic groups, the closure under addition is not a given. Write a single statement that checks if this set is also closed under addition, by considering all possible sums of elements from the set.
This problem investigates the “separableness” of \({\mathbb Q}(\sqrt{3},\sqrt{7})\text{.}\) You can create this number field quickly with the
NumberFieldTower
constructor, along with the polynomials \(x^2-3\) and \(x^2-7\text{.}\) Flatten the tower with the
.absolute_field()
method and use the
.structure()
method to retrieve mappings between the tower and the flattened version. Name the tower
N
and use
a
and
b
as generators. Name the flattened version
L
with
c
as a generator.
Create a nontrivial (“random”) element of
L
using as many powers of
c
as possible (check the degree of
L
to see how many linearly independent powers there are). Request from Sage the minimum polynomial of your random element, thus ensuring the element is a root. Construct the minimum polynomial as a polynomial over
N
, the field tower, and find its factorization. Your factorization should have only linear factors. Each root should be an expression in
a
and
b
, so convert each root into an expression with mathematical notation involving \(\sqrt{3}\) and \(\sqrt{7}\text{.}\) Use one of the mappings to verify that one of the roots is indeed the original random element.
Create a few more random elements, and find a factorization (in
N
or in
L
). For a field to be separable, every element of the field should be a root of
some
separable polynomial. The minimal polynomial is a good polynomial to test. (Why?) Based on the evidence, does it appear that \({\mathbb Q}(\sqrt{3},\sqrt{7})\) is a separable extension?
Exercise \(22.4.21\) describes the Frobenius Map, an automorphism of a finite field. If
F
is a finite field in Sage, then
End(F)
will create the automorphism group of F, the set of all bijective mappings between the field and itself.
- Work Exercise \(22.4.21\) to gain an understanding of how and why the Frobenius mapping is a field automorphism. (Do not include any of this in your answer to this question, but understand that the following will be much easier if you do this problem first.)
- For some small, but not trivial, finite fields locate the Frobenius map in the automorphism group. Small might mean \(p=2,3,5,7\) and \(3\leq n\leq 10\text{,}\) with \(n\) prime versus composite.
- Once you have located the Frobenius map, describe the other automorphisms. In other words, with a bit of investigation, you should find a description of the automorphisms which will allow you to accurately predict the entire automorphism group for a finite field you have not already explored. (Hint: the automorphism group is a group. What if you “do the operation” between the Frobenius map and itself? Just what is the operation? Try using Sage's multiplicative notation with the elements of the automorphism group.)
- What is the “structure” of the automorphism group? What special status does the Frobenius map have in this group?
- For any field, the subfield known as the fixed field is an important construction, and will be especially important in the next chapter. Given an automorphism \(\tau\) of a field \(E\text{,}\) the subset, \(K=\{b\in E\mid\tau(b)=b\}\text{,}\) can be shown to be a subfield of \(E\text{.}\) It is known as the fixed field of \(\tau\) in \(E\text{.}\) For each automorphism of \(E=GF(3^6)\) identify the fixed field of the automorphism. Since we understand the structure of subfields of a finite field, it is enough to just determine the order of the fixed field to be able to identify the subfield precisely.
Exercise \(22.4.15\) suggests that every element of a finite field may be written (expressed) as a sum of squares. This exercise suggests computational experiments which might help you formulate a proof for the exercise.
- Construct two small, but not too small, finite fields, one with \(p=2\) and the other with an odd prime. Repeat the following for each field, \(F\text{.}\)
-
Choose a “random” element of the field, say \(a\in F\text{.}\) Construct the sets
\begin{align*} &\{x^2|x\in F\}&&\{a-x^2|x\in F\} \end{align*}
using Sage sets with the \(Set()\) constructor. (Be careful:
set()
is a Python command which behaves differently in fundamental ways.) -
Examine the size of the two sets and the size of their intersection (
.intersection()
). Try different elements for \(a\text{,}\) perhaps writing a loop to try all possible values. Note that \(p=2\) will behave quite differently. -
Suppose you have an element of the intersection. (You can get one with
.an_element()
.) How does this lead to the sum of squares proposed in the exercise? - Can you write a Python function that accepts a finite field whose order is a power of an odd prime and then lists each element as a sum of squares?