Primitive element for tower of field extensions

Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.


polylib::primitiveElement(F, G)


For given field extensions F = K(α) and G = F(β), 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 α and β under some fixed K-isomorphism.

It is presumed that the extension is separable. Otherwise, it may happen that the algorithm does not terminate.


Example 1

Since 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 , and we use polylib::primitiveElement to find a primitive element for G:

polylib::primitiveElement(F, G)

This means that a primitive element X1 of the extension is determined by its minimal polynomial X14 - 10 X12 + 1. The last two operands of the list are field elements whose squares are 2 and 3, respectively.

Example 2

The function works also for subdomains of Dom::AlgebraicExtension, e.g., Galois fields.

F := Dom::GaloisField(7, 2):
G := Dom::GaloisField(F, 2):
polylib::primitiveElement(F, G)



A field created by Dom::AlgebraicExtension


A field created by Dom::AlgebraicExtension with ground field F

Return Values

List consisting of four operands:

  • a field H of type Dom::AlgebraicExtension over the same ground field as F;

  • an identifier that equals the entry H::variable;

  • an object of type H that satisfies the minimal polynomial for α;

  • an object of type H that satisfies the minimal polynomial for β.


The chosen primitive element is α + sβ, where s is a positive integer.

See Also

MuPAD Domains

MuPAD Functions

Was this topic helpful?