63.2 Elements in Algebraic Extensions

According to Kronecker's construction, the elements of an algebraic extension considered to be polynomials in the primitive element. The elements of the base field are represented as polynomials of degree 0. 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 0 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+1/2*a^2-1/2*a^3)
gap> a*(1/a);
!1

The external representation of algebraic extension elements are the polynomial coefficients in the primitive element a, the operations ExtRepOfObj and ObjByExtRep 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]);
(3+19*a-27*a^2+433*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 One 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 ] ]

  • IsAlgebraicElement( obj ) C

    is the category for elements of an algebraic extension.

    [Top] [Previous] [Up] [Index]

    GAP 4 manual
    February 2000