next | previous | forward | backward | up | top | index | toc | Macaulay2 website
SwitchingFields :: fieldExtension

fieldExtension -- a fix to the failure of map(GaloisField,GaloisField) function when Variable option is used

Synopsis

Description

The usual map function is not working properly when the generators of a GaloisField are designated. For example,

i1 : K1 = GF(8); L1 = GF(64);
i3 : K2 = GF(8, Variable=>b); L2 = GF(64, Variable=>c);
i5 : map(L1, K1) --correct natural map

                    5    4    2
o5 = map (L1, K1, {a  + a  + a  + 1})

o5 : RingMap L1 <--- K1
i6 : try map(L2, K2) then << "correct map" else << "error: not implemented: maps between non-Conway Galois fields";
correct map

This function is a fix for that. See following example

i7 : K2 = GF(8, Variable=>b); L2 = GF(64, Variable=>c);
i9 : fieldExtension(L2, K2)

                    5    4    2
o9 = map (L2, K2, {c  + c  + c  + 1})

o9 : RingMap L2 <--- K2

The function is implemented by composing the isomorphism $K_2\cong K_1$, the natural embedding $K_1\to L_1$ and the isomorphism $L_1\cong L_2$.

Caveat

The function depends on the implementation of map(GaloisField,GaloisField).

Ways to use fieldExtension :

For the programmer

The object fieldExtension is a method function with options.