# baseChange -- Perform base change for field extensions

## Synopsis

• Usage:
baseChange(F, -)
baseChange(p, -)
• Inputs:
• F, the extension field
• p, a prime number
• a polynomial or an ideal with coefficients in the base field
• Optional inputs:
• PrimitiveElement => ..., default value FindOne, specify the image of the primitive element
• Outputs:
• a polynomial or an ideal with coefficients in the extension field

## Description

The base change requires finding an image for the primitive element of the base field, which can be specified using the option PrimitiveElement. The default is FindOne, in which case we solve the minimal polynomial of the base field in the extension field and take the first zero. Beware that it is well-defined only up to the action of the Galois group.

In this example we first obtain an extension F of the rational numbers by adding a cube root of 2, then we compute its image in the splitting field F' of x^3-2.

 i1 : F = toField(QQ[c]/(c^3-2)); i2 : QQ[x]; F' = splittingField(x^3-2); i4 : c' = baseChange_F' c 1 4 o4 = --a 18 o4 : F' i5 : c'^3 == 2 o5 = true i6 : F[x,y]; I = ideal(x-c, y-c^2); o7 : Ideal of F[x..y] i8 : baseChange_F' I 1 4 1 2 o8 = ideal (x - --a , y + -a ) 18 3 o8 : Ideal of F'[x..y]

We get a different embedding by specifying the image of the primitive element.

 i9 : F'[x]; c'' = last zeros(x^3-2); i11 : baseChange(F', I, PrimitiveElement => c'') 1 4 1 1 5 1 2 o11 = ideal (x + --a + -a, y - --a - -a ) 36 2 36 6 o11 : Ideal of F'[x..y]

If a prime number p is input instead of a field, the element will be reduced to characteristic p.

 i12 : QQ[x]; baseChange_7 (x^3-2) 3 o13 = x - 2 ZZ o13 : --[x] 7 i14 : F[x]; baseChange_7 ideal(x-c) 2 o15 = ideal(x - a - a + 3) o15 : Ideal of GF 343[x]

We can also base change an element of a number field to the complex numbers. Note that to avoid accumulated errors, it is better to do computations in the field and only make the conversion once in the end.

 i16 : baseChange_CC c o16 = 1.25992104989487-5.51778060002121e-61*ii o16 : CC (of precision 53) i17 : oo^3 o17 = 2-2.62767921870102e-60*ii o17 : CC (of precision 53) i18 : baseChange_CC (c^3) o18 = 2 o18 : CC (of precision 53)

For complex numbers we only need to provide an approximate value for PrimitiveElement.

 i19 : baseChange(CC, c, PrimitiveElement => -.6+1.1*ii) o19 = -.629960524947436+1.09112363597172*ii o19 : CC (of precision 53)

## Ways to use baseChange :

• "baseChange(InexactFieldFamily,Number)"
• "baseChange(InexactFieldFamily,RingElement)"
• "baseChange(Number,Ideal)"
• "baseChange(Number,Number)"
• "baseChange(Number,RingElement)"
• "baseChange(Ring,Ideal)"
• "baseChange(Ring,Number)"
• "baseChange(Ring,RingElement)"

## For the programmer

The object baseChange is .