Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->1<!-- %% -->2<!-- %A algfld.msk GAP documentation Alexander Hulpke -->3<!-- %% -->4<!-- %A @(#)<M>Id: algfld.msk,v 1.6 2006/10/19 10:32:09 gap Exp </M> -->5<!-- %% -->6<!-- %Y (C) 1998 School Math and Comp. Sci., University of St Andrews, Scotland -->7<!-- %Y Copyright (C) 2002 The GAP Group -->8<!-- %% -->9<Chapter Label="Algebraic extensions of fields">10<Heading>Algebraic extensions of fields</Heading>1112If we adjoin a root <M>\alpha</M> of an irreducible polynomial <M>f \in K[x]</M> to13the field <M>K</M> we get an <E>algebraic extension</E> <M>K(\alpha)</M>, which is again14a field. We call <M>K</M> the <E>base field</E> of <M>K(\alpha)</M>.15<P/>16By Kronecker's construction, we may identify <M>K(\alpha)</M> with17the factor ring <M>K[x]/(f)</M>, an identification that also provides a method18for computing in these extension fields.19<P/>20It is important to note that different extensions of the same field are21entirely different (and its elements lie in different families), even if22mathematically one could be embedded in the other one.23<P/>24Currently &GAP; only allows extension fields of fields <M>K</M>, when <M>K</M>25itself is not an extension field.262728<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->29<Section Label="Creation of Algebraic Extensions">30<Heading>Creation of Algebraic Extensions</Heading>3132<#Include Label="AlgebraicExtension">33<#Include Label="IsAlgebraicExtension">3435</Section>363738<!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -->39<Section Label="Elements in Algebraic Extensions">40<Heading>Elements in Algebraic Extensions</Heading>4142<Index>Operations for algebraic elements</Index>43According to Kronecker's construction, the elements of an algebraic44extension are considered to be polynomials in the primitive element.45The elements of the base field are represented as polynomials of degree zero.46&GAP; therefore displays elements of an algebraic extension as polynomials47in an indeterminate <Q>a</Q>, which is a root of the defining polynomial of the48extension.49Polynomials of degree zero are displayed with a leading exclamation mark to50indicate that they are different from elements of the base field.51<P/>52The usual field operations are applicable to algebraic elements.53<P/>54<Example><![CDATA[55gap> a^3/(a^2+a+1);56-1/2*a^3+1/2*a^2-1/2*a57gap> a*(1/a);58!159]]></Example>60<P/>61The external representation of algebraic extension elements are the62polynomial coefficients in the primitive element <C>a</C>,63the operations <Ref Func="ExtRepOfObj"/> and <Ref Func="ObjByExtRep"/>64can be used for conversion.65<P/>66<Example><![CDATA[67gap> ExtRepOfObj(One(a));68[ 1, 0, 0, 0 ]69gap> ExtRepOfObj(a^3+2*a-9);70[ -9, 2, 0, 1 ]71gap> ObjByExtRep(FamilyObj(a),[3,19,-27,433]);72433*a^3-27*a^2+19*a+373]]></Example>74<P/>75&GAP; does <E>not</E> embed the base field in its algebraic extensions and76therefore lists which contain elements of the base field and of the77extension are not homogeneous and thus cannot be used as polynomial78coefficients or to form matrices. The remedy is to multiply the79list(s) with the value of the attribute <Ref Attr="One"/> of the extension80which will embed all entries in the extension.81<P/>82<Example><![CDATA[83gap> m:=[[1,a],[0,1]];84[ [ 1, a ], [ 0, 1 ] ]85gap> IsMatrix(m);86false87gap> m:=m*One(e);88[ [ !1, a ], [ !0, !1 ] ]89gap> IsMatrix(m);90true91gap> m^2;92[ [ !1, 2*a ], [ !0, !1 ] ]93]]></Example>9495<#Include Label="IsAlgebraicElement">9697</Section>98</Chapter>99100101102103