Macaulay2 » Documentation
Packages » SwitchingFields :: switchFieldMap
next | previous | forward | backward | up | index | toc

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

Synopsis

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 :

For the programmer

The object switchFieldMap is a method function with options.