polylib::primitiveElement -- primitive
element for tower of field extensions
IntroductionFor given field extensions F=K(alpha) and
G=F(beta), polylib::primitiveElement(F,
G) returns a list consisting of a simple algebraic extension of
K that is K-isomorphic to G, a symbol
for a primitive element of that extension, and the images of
alpha and beta under some fixed
K-isomorphism.
Call(s)polylib::primitiveElement(F, G)
ParametersF |
- | a field created by Dom::AlgebraicExtension |
G |
- | a field created by Dom::AlgebraicExtension with
ground field F |
ReturnsThe list returned consists of four operands:
H of type AlgebraicExtension over the
same ground field as F;H::variable;H that satisfies the minimal
polynomial for alpha;H that satisfies the minimal
polynomial for beta.
Related
Functionspolylib::splitfield, Dom::AlgebraicExtension
Details
Example
1Since the rational numbers are perfect, extensions of them can always be handled:
>> F:=Dom::AlgebraicExtension(Dom::Rational, sqrt2^2-2): G:=Dom::AlgebraicExtension(F, sqrt3^2-3):
Now G=Q(sqrt(2), sqrt(3)), and we use
polylib::primitiveElement to find a primitive element for
G:
>> polylib::primitiveElement(F, G)
--
|
| Dom::AlgebraicExtension(Dom::Rational,
--
3 3 --
4 2 9 X1 X1 11 X1 X1 |
X1 - 10 X1 + 1 = 0, X1), X1, - ---- + ---, ----- - --- |
2 2 2 2 --
This means that a primitive element X1 of the extension is determined by its minimal polynomial X1^4-10*X1^2+1. The last two operands of the list are field elements whose squares are 2 and 3, respectively.
Example
2The function works also for subdomains of AlgebraicExtension, e.g.
Galois fields.
>> F:=Dom::GaloisField(7,2): G:=Dom::GaloisField(F,2): polylib::primitiveElement(F, G)
[Dom::AlgebraicExtension(Dom::IntegerMod(7),
2 3 4
3 X5 - X5 + 2 X5 + X5 - 1 = 0, X5), X5,
2 3
- 3 X5 + 3 X5 - 3 X5 - 2, X5]
Background