File: algfld.msk

package info (click to toggle)
gap 4r4p12-2
  • links: PTS
  • area: main
  • in suites: squeeze, wheezy
  • size: 29,584 kB
  • ctags: 7,113
  • sloc: ansic: 98,786; sh: 3,299; perl: 2,263; makefile: 498; asm: 63; awk: 6
file content (105 lines) | stat: -rw-r--r-- 3,423 bytes parent folder | download
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%
%A  algfld.msk                 GAP documentation             Alexander Hulpke
%%
%A  @(#)$Id: algfld.msk,v 1.5.4.3 2008/12/01 10:16:26 gapchron Exp $
%%
%Y  (C) 1998 School Math and Comp. Sci., University of St.  Andrews, Scotland
%Y  Copyright (C) 2002 The GAP Group
%%
\Chapter{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{\pif}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.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Creation of Algebraic Extensions}

\Declaration{AlgebraicExtension}
\beginexample
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
\endexample

\Declaration{IsAlgebraicExtension}
\beginexample
gap> IsAlgebraicExtension(e);
true
gap> IsAlgebraicExtension(Rationals);
false
\endexample

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\Section{Elements in Algebraic Extensions}

\index{Operations for algebraic elements}

According to Kronecker{\pif}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.

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

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.

\beginexample
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
\endexample

{\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.
\beginexample
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 ] ]
\endexample

\Declaration{IsAlgebraicElement}