# switchFieldMap -- a function to provide correct map between rings with different finite coefficient field

## Synopsis

• Usage:
switchFieldMap(S, R, l)
• Inputs:
• S, a ring, with a GaloisField as its coefficientRing
• R, a ring, with a GaloisField as its coefficientRing
• l, a list, defining the map $R \to S$
• Outputs:
• , the natural ring map $R \to S$

## Description

The usual map function does not check whether the map for the ground field is a well-defined map.

 i1 : R = GF(8)[x,y,z]/(x*y-z^2); S = GF(64)[u,v]/(v^2); i3 : f = map(S, R, {u, 0, v}) o3 = map (S, R, {u, 0, v, a}) o3 : RingMap S <--- R i4 : t = (coefficientRing R)_0; i5 : f(t^3+t+1) o5 = 0 o5 : S i6 : f(t)^3+f(t)+1 3 o6 = a + a + 1 o6 : S

Our function provides a fix to this issue. See below

 i7 : R = GF(8)[x,y,z]/(x*y-z^2); S = GF(64)[u,v]/(v^2); i9 : f = switchFieldMap(S, R, {u, 0, v}) 5 4 2 o9 = map (S, R, {u, 0, v, a + a + a + 1}) o9 : RingMap S <--- R i10 : t = (coefficientRing R)_0; i11 : f(t)^3+f(t)+1 o11 = 0 o11 : S

The switchFieldMap makes the user defined map compatible with the natural map between the coefficient fields.

## Ways to use switchFieldMap :

• "switchFieldMap(Ring,Ring,List)"

## For the programmer

The object switchFieldMap is .