Ask Your Question

Explicit finite field extensions

asked 2012-12-06 09:56:37 +0100

GaryMak gravatar image

Hi I would like to know how I may explicitly create a finite field as an extension of another field which is not the prime field. For example if I have GF(25) as my base field and I would like to create GF(5^6) using a polynomial with coefficients in GF(25) etc. The problem is that if I just create the 2 fields separately, I cannot coerce elements from the big field into the little one unless it is a prime field, and it seems that the galois_group() stuff only works for number field extensions. Sorry if I've missed the obvious. thanks a lot

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted

answered 2012-12-07 04:56:08 +0100

Francis Clarke gravatar image

There can't be a coercion from GF(q) to GF(q^k) if q is not prime since there will be several embeddings, none of which has any reason to be preferred. But it is simple to list the embeddings:

sage: F.<a> = GF(5^2); K.<b> = GF(5^6)
sage: Hom(F, K).list()
Ring morphism:
  From: Finite Field in a of size 5^2
  To:   Finite Field in b of size 5^6
  Defn: a |--> 4*b^5 + 2*b^4 + 4*b^2 + b,
Ring morphism:
  From: Finite Field in a of size 5^2
  To:   Finite Field in b of size 5^6
  Defn: a |--> b^5 + 3*b^4 + b^2 + 4*b + 1

It is possible to construct a field of order 5^6 which GF(25) coerces into:

sage: PF.<t> = F[]
sage: f, g = prime_factors(PF(b.minpoly())); f, g
(t^3 + (2*a + 2)*t + 4*a, t^3 + (3*a + 4)*t + a + 4)
sage: L.<c> = F.extension(f)
sage: L.is_field()
sage: L.order().factor()
sage: a + c in L

But at present there are limits to what can be done with this field:

sage: K.list()[:7]
[0, b, b^2, b^3, b^4, b^5, 4*b^4 + b^3 + 4*b^2 + 3]
sage: L.list()[:7]
Traceback (most recent call last)
NotImplementedError: object does not support iteration
edit flag offensive delete link more


Thank you very much - there is a whole load of functionality in your answer I wasn't able to understand before! The lack of listing capability makes things tricky but at least the rudiments of the algebraic substructure are there in what you have created. I cannot help thinking though that just as is done with the choice of a minimal polynomial for each "standard" Galois field, one could make these choices compatible so that coercion within towers was possible?

GaryMak gravatar imageGaryMak ( 2012-12-07 05:29:50 +0100 )edit

answered 2012-12-07 06:38:17 +0100

ppurka gravatar image

Look at #11938 which is for coercion from one finite field to another. It needs a review. If you have the background, please review it. :)

edit flag offensive delete link more


hi I looked at this but unfortunately it's way too technical for me (both in terms of programming and the stuff you are actually implementing ie Conway polynomials etc - I have never worked with them). Sorry.

GaryMak gravatar imageGaryMak ( 2012-12-07 06:53:55 +0100 )edit

FYI: it is not me who wrote that patch. But it would be really nice to get this patch in. :)

ppurka gravatar imageppurka ( 2012-12-08 00:15:48 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2012-12-06 09:56:37 +0100

Seen: 1,590 times

Last updated: Dec 07 '12