GAP (ref) - Chapter 67: Algebraic extensions of fields

Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 Bib Ind
[Top of Book] [Contents] [Previous Chapter] [Next Chapter]

[MathJax off]

67 Algebraic extensions of fields
67.1 Creation of Algebraic Extensions
67.1-1 AlgebraicExtension
67.1-2 IsAlgebraicExtension
67.2 Elements in Algebraic Extensions
67.2-1 IsAlgebraicElement
67.3 Finding Subfields
67.3-1 IdealDecompositionsOfPolynomial

### 67 Algebraic extensions of fields

If we adjoin a root \(\alpha\) of an irreducible polynomial \(f \in K[x]\) to the field \(K\) we get an algebraic extension \(K(\alpha)\), which is again a field. We call \(K\) the base field of \(K(\alpha)\).

By Kronecker's construction, we may identify \(K(\alpha)\) with the factor ring \(K[x]/(f)\), an identification that also provides a method for computing in these extension fields.

It is important to note that different extensions of the same field are entirely different (and its elements lie in different families), even if mathematically one could be embedded in the other one.

Currently GAP only allows extension fields of fields \(K\), when \(K\) itself is not an extension field.

#### 67.1 Creation of Algebraic Extensions

##### 67.1-1 AlgebraicExtension

`‣ AlgebraicExtension`( K, f[, nam] ) | ( operation )

`‣ AlgebraicExtensionNC`( K, f[, nam] ) | ( operation )

constructs an extension L of the field K by one root of the irreducible polynomial f, using Kronecker's construction. L is a field whose `LeftActingDomain` (57.1-11) value is K. The polynomial f is the `DefiningPolynomial` (58.2-7) value of L and the attribute `RootOfDefiningPolynomial` (58.2-8) of L holds a root of f in L. By default this root is printed as `a`, this string can be overwritten with the optional argument nam.

The first version of the command checks that the polynomial f is an irreducible polynomial over K. This check is skipped with the `NC` variant.

    gap> x:=Indeterminate(Rationals,"x");;
    gap> p:=x^4+3*x^2+1;;
    gap> e:=AlgebraicExtension(Rationals,p);
    <algebraic extension over the Rationals of degree 4>
    gap> IsField(e);
    true
    gap> a:=RootOfDefiningPolynomial(e);
    a
    gap> l := AlgebraicExtensionNC(Rationals, x^24+3*x^2+1, "alpha");;
    gap> RootOfDefiningPolynomial(l)^50;
    9*alpha^6+6*alpha^4+alpha^2

##### 67.1-2 IsAlgebraicExtension

`‣ IsAlgebraicExtension`( obj ) | ( category )

is the category of algebraic extensions of fields.

    gap> IsAlgebraicExtension(e);
    true
    gap> IsAlgebraicExtension(Rationals);
    false

#### 67.2 Elements in Algebraic Extensions

According to Kronecker's construction, the elements of an algebraic extension are considered to be polynomials in the primitive element. The elements of the base field are represented as polynomials of degree zero. GAP therefore displays elements of an algebraic extension as polynomials in an indeterminate "a", which is a root of the defining polynomial of the extension. Polynomials of degree zero are displayed with a leading exclamation mark to indicate that they are different from elements of the base field.

The usual field operations are applicable to algebraic elements.

    gap> a^3/(a^2+a+1);
    -1/2*a^3+1/2*a^2-1/2*a
    gap> a*(1/a);
    !1

The external representation of algebraic extension elements are the polynomial coefficients in the primitive element `a`, the operations `ExtRepOfObj` (79.8-1) and `ObjByExtRep` (79.8-1) can be used for conversion.

    gap> ExtRepOfObj(One(a));
    [ 1, 0, 0, 0 ]
    gap> ExtRepOfObj(a^3+2*a-9);
    [ -9, 2, 0, 1 ]
    gap> ObjByExtRep(FamilyObj(a),[3,19,-27,433]);
    433*a^3-27*a^2+19*a+3

GAP does not embed the base field in its algebraic extensions and therefore lists which contain elements of the base field and of the extension are not homogeneous and thus cannot be used as polynomial coefficients or to form matrices. The remedy is to multiply the list(s) with the value of the attribute `One` (31.10-2) of the extension which will embed all entries in the extension.

    gap> m:=[[1,a],[0,1]];
    [ [ 1, a ], [ 0, 1 ] ]
    gap> IsMatrix(m);
    false
    gap> m:=m*One(e);
    [ [ !1, a ], [ !0, !1 ] ]
    gap> IsMatrix(m);
    true
    gap> m^2;
    [ [ !1, 2*a ], [ !0, !1 ] ]

##### 67.2-1 IsAlgebraicElement

`‣ IsAlgebraicElement`( obj ) | ( category )

is the category for elements of an algebraic extension.

#### 67.3 Finding Subfields

##### 67.3-1 IdealDecompositionsOfPolynomial

`‣ IdealDecompositionsOfPolynomial`( pol ) | ( function )

Let \(f\) be a univariate, rational, irreducible, polynomial. A pair \(g\),\(h\) of polynomials of degree strictly smaller than that of \(f\), such that \(f(x)|g(h(x))\) is called an ideal decomposition. In the context of field extensions, if \(\alpha\) is a root of \(f\) in a suitable extension and \(Q\) the field of rational numbers. Such decompositions correspond to (proper) subfields \(Q < Q(\beta) < Q(\alpha)\), where \(g\) is the minimal polynomial of \(\beta\). This function determines such decompositions up to equality of the subfields \(Q(\beta)\), thus determining subfields of a given algebraic extension. It returns a list of pairs \([g,h]\) (and an empty list if no such decomposition exists). If the option onlyone is given it returns at most one such decomposition (and performs faster).

    gap> x:=X(Rationals,"x");;pol:=x^8-24*x^6+144*x^4-288*x^2+144;;
    gap> l:=IdealDecompositionsOfPolynomial(pol);
    [ [ x^2+72*x+144, x^6-20*x^4+60*x^2-36 ],
      [ x^2-48*x+144, x^6-21*x^4+84*x^2-48 ],
      [ x^2+288*x+17280, x^6-24*x^4+132*x^2-288 ],
      [ x^4-24*x^3+144*x^2-288*x+144, x^2 ] ]
    gap> List(l,x->Value(x[1],x[2])/pol);
    [ x^4-16*x^2-8, x^4-18*x^2+33, x^4-24*x^2+120, 1 ]
    gap> IdealDecompositionsOfPolynomial(pol:onlyone);
    [ [ x^2+72*x+144, x^6-20*x^4+60*x^2-36 ] ]

In this example the given polynomial is regular with Galois group \(Q_8\), as expected we get four proper subfields.

[Top of Book] [Contents] [Previous Chapter] [Next Chapter]
Goto Chapter: Top 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 Bib Ind

generated by GAPDoc2HTML