# GF -- make a finite field

## Synopsis

• Optional inputs:
• PrimitiveElement => ..., default value FindOne
• SizeLimit => ..., default value 10000
• Strategy => ..., default value null
• Variable => ..., default value null

## Synopsis

• Usage:
GF(p,n)
GF(q)
• Inputs:
• p, a prime number
• n
• Variable => , default value null, the name to use for the generator of the field
• SizeLimit => an integer, default value 10000, the limit on the size of a Galois field whose elements will be represented internally as powers of the primitive element
• Outputs:
• , a finite field with q = p^n elements
The generator of this ring is a primitive element: it generates the multiplicative group of non-zero elements.

If the single argument form GF(q) is given, q should be a prime power q = p^n

 i1 : A = GF(3,2,Variable=>b); i2 : ambient A ZZ --[b] 3 o2 = ---------- 2 b - b - 1 o2 : QuotientRing i3 : b^8 o3 = 1 o3 : A i4 : b^4 o4 = -1 o4 : A
 i5 : K = GF 8 o5 = K o5 : GaloisField i6 : x = K_0 o6 = a o6 : K i7 : x^3+x o7 = 1 o7 : K

## Synopsis

• Usage:
GF R
• Inputs:
• R, a ring, A quotient of a polynomial ring over ZZ/p in one variable, modulo an irreducible polynomial
• PrimitiveElement => ..., default value FindOne, either an element of R, or the symbol FindOne. An element is primitive if it generates the multiplicative group of non-zero elements of R
• SizeLimit => an integer, default value 10000, the limit on the size of a Galois field whose elements will be represented internally as powers of the primitive element
• Outputs:
• , a finite field isomorphic to R
 i8 : A = ZZ/5[a]/(a^3-a-2) o8 = A o8 : QuotientRing i9 : B = GF A o9 = B o9 : GaloisField i10 : C = ZZ/5[b]/(b^3+1+3*b^2+b) o10 = C o10 : QuotientRing i11 : D = GF C o11 = D o11 : GaloisField i12 : map(B,D,{a^2}) 2 o12 = map(B,D,{a }) o12 : RingMap B <--- D