This file is indexed.

/usr/share/gap/doc/ref/chap67.txt is in gap-online-help 4r6p5-3.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
106
107
108
109
110
111
112
113
114
115
  
  67 Algebraic extensions of fields
  
  If  we  adjoin a root α of an irreducible polynomial f ∈ K[x] to the field K
  we  get  an  algebraic extension K(α), which is again a field. We call K the
  base field of K(α).
  
  By  Kronecker's  construction,  we  may  identify  K(α) 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 )  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.
  
    Example  
    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
  
  
  67.1-2 IsAlgebraicExtension
  
  IsAlgebraicExtension( obj )  Category
  
  is the category of algebraic extensions of fields.
  
    Example  
    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.
  
    Example  
    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.15-1) and ObjByExtRep (79.15-1) can be used for conversion.
  
    Example  
    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.
  
    Example  
    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.