home *** CD-ROM | disk | FTP | other *** search
/ Math Solutions 1995 October / Math_Solutions_CD-ROM_Walnut_Creek_October_1995.iso / pc / mac / discrete / doc / numfield.tex < prev    next >
Encoding:
Text File  |  1993-05-05  |  23.0 KB  |  596 lines

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. %%
  3. %A  numfield.tex                GAP documentation               Thomas Breuer
  4. %%
  5. %A  @(#)$Id: numfield.tex,v 3.13 1993/02/19 10:48:42 gap Exp $
  6. %%
  7. %Y  Copyright 1990-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
  8. %%
  9. %%  This file contains descriptions of number fields in \GAP, that is,
  10. %%  fields whose elements are cyclotomics (see "cyclotom.tex").
  11. %%
  12. %H  $Log: numfield.tex,v $
  13. %H  Revision 3.13  1993/02/19  10:48:42  gap
  14. %H  adjustments in line length and spelling
  15. %H
  16. %H  Revision 3.12  1993/02/12  15:56:02  felsch
  17. %H  examples adjusted to line length 72
  18. %H
  19. %H  Revision 3.11  1993/02/01  13:43:17  felsch
  20. %H  examples fixed
  21. %H
  22. %H  Revision 3.10  1993/01/18  09:52:38  sam
  23. %H  adjusted some examples
  24. %H
  25. %H  Revision 3.9  1992/12/28  16:16:05  sam
  26. %H  fixed typo
  27. %H
  28. %H  Revision 3.8  1992/04/30  12:13:19  martin
  29. %H  changed a few sentences to avoid bold non-roman fonts
  30. %H
  31. %H  Revision 3.7  1992/04/07  23:05:55  martin
  32. %H  changed the author line
  33. %H
  34. %H  Revision 3.6  1992/03/27  18:17:31  sam
  35. %H  adjusted reference
  36. %H
  37. %H  Revision 3.5  1992/03/27  14:10:36  sam
  38. %H  removed "'" in index entries
  39. %H
  40. %H  Revision 3.4  1992/03/11  15:44:04  sam
  41. %H  renamed the chapter
  42. %H
  43. %H  Revision 3.3  1992/02/13  15:42:44  sam
  44. %H  added documentation of 'GaloisGroup'
  45. %H
  46. %H  Revision 3.2  1992/01/14  14:04:20  sam
  47. %H  adjusted citations
  48. %H
  49. %H  Revision 3.1  1991/12/30  08:08:51  sam
  50. %H  initial revision under RCS
  51. %H
  52. %%
  53. \Chapter{Subfields of Cyclotomic Fields}
  54.  
  55. The only *number fields* that {\GAP} can handle at the moment are
  56. subfields of cyclotomic fields, e.g., $Q(\sqrt{5})$ is a number field
  57. that is not cyclotomic but contained in the cyclotomic field
  58. $Q_5 = Q(e^{\frac{2\pi i}{5}})$.  Although this means that {\GAP} does
  59. not know arbitrary algebraic number fields but only those with abelian
  60. Galois group, here we call these fields *number fields* for short.
  61. The elements of number fields are called *cyclotomics* (see chapter
  62. "Cyclotomics").  Thus number fields are the domains (see chapter
  63. "Domains") related to cyclotomics; they are special field records (see
  64. "Field Records") which are needed to specify the field extension with
  65. respect to which e.g.\ the trace of a cyclotomic shall be computed.
  66.  
  67. In many situations cyclotomic fields need not be treated in  a special
  68. way, except that there  may be more efficient algorithms for them than
  69. for arbitrary number fields.  For that, there are the global variables
  70. 'NumberFieldOps' and 'CyclotomicFieldOps',  both records which contain
  71. the field  operations stored in 'FieldOps' (see chapter "Fields")  and
  72. in which some functions are overlaid (see "Domain Functions for Number
  73. Fields").  If all necessary  information  about a function is  already
  74. given  in chapter "Fields", this function is  not described here; this
  75. is the case e.g.\ for 'Conjugates' and related functions, like 'Trace'
  76. and  'CharPol'.  Some functions,  however,  need  further explanation,
  77. e.g., "Coefficients for Number Fields" tells more about 'Coefficients'
  78. for number fields.
  79.  
  80. There are some functions which are different for cyclotomic fields and
  81. other number fields, e.g., the field constructors 'CF' resp.\ 'NF'.  In
  82. such a situation, the special case is described in a section immediately
  83. following the section about the general case.
  84.  
  85. Besides the single number fields, there is another domain in {\GAP}
  86. related to number fields, the domain 'Cyclotomics' of all cyclotomics.
  87. Although this is an abstract field, namely the field $Q^{ab}$,
  88. 'Cyclotomics' is not a field record.  It is used by 'DefaultField',
  89. 'DefaultRing', 'Domain', 'Field' and 'Ring' (see "DefaultField",
  90. "DefaultRing", "Domain", "Field", "Ring") which are mainly interested in
  91. the corresponding entries of 'Cyclotomics.operations' since these
  92. functions know how to create fields resp.\ integral rings generated by
  93. some cyclotomics.
  94.  
  95. This chapter informs about:\\
  96.    characteristic functions (see "IsNumberField", "IsCyclotomicField"),\\
  97.    field constructors (see "Number Field Records",
  98.        "Cyclotomic Field Records"),\\
  99.    (default) fields of cyclotomics
  100.        (see "DefaultField and Field for Cyclotomics"),
  101.        and (default) rings of cyclotomic integers
  102.        (see "DefaultRing and Ring for Cyclotomic Integers"),\\
  103.    Galois groups of number fields (see "GeneratorsPrimeResidues",
  104.        "GaloisGroup for Number Fields"),\\
  105.    vector space bases (see "ZumbroichBase",
  106.        "Integral Bases for Number Fields", "NormalBaseNumberField") and
  107.        coefficients (see "Coefficients for Number Fields") and\\
  108.    overlaid functions in the operations records
  109.        (see "Domain Functions for Number Fields").
  110.  
  111. The external functions are in the file 'LIBNAME/\"numfield.g\"'
  112.  
  113. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  114. \Section{IsNumberField}\index{test!for number field}
  115.  
  116. 'IsNumberField( <obj> )'
  117.  
  118. returns 'true' if <obj> is a field record (see "IsField", "Field
  119. Records") of a field of characteristic zero where '<F>.generators' is a
  120. list of cyclotomics (see chapter "Cyclotomics"), and 'false' else.
  121.  
  122. |    gap> IsNumberField( CF(9) ); IsNumberField( NF( [ ER(3) ] ) );
  123.     true
  124.     true
  125.     gap> IsNumberField( GF( 2 ) );
  126.     false|
  127.  
  128. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  129. \Section{IsCyclotomicField}\index{test!for a cyclotomic field}
  130.  
  131. 'IsCyclotomicField( <obj> )'
  132.  
  133. returns 'true' if <obj> is a number field record (see "IsNumberField")
  134. where '<obj>.isCyclotomicField = true', and 'false' else.
  135.  
  136. |    gap> IsCyclotomicField( CF(9) );
  137.     true
  138.     gap> IsCyclotomicField( NF( [ ER(-3) ] ) );
  139.     true
  140.     gap> IsCyclotomicField( NF( [ ER(3) ] ) );
  141.     false|
  142.  
  143. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  144. \Section{Number Field Records}\index{field!number}\index{NF}
  145.  
  146. 'NumberField( <gens> )'\\
  147. 'NumberField( <n>, <stab> )'\\
  148. 'NumberField( <subfield>, <poly> )'\\
  149. 'NumberField( <subfield>, <base> )'
  150.  
  151. 'NumberField' may be abbreviated 'NF'; it returns number fields, namely
  152.  
  153. 'NumberField( <gens> )'\:\\
  154.      the number field generated by the cyclotomics in the list <gens>,
  155.  
  156. 'NumberField( <n>, <stab> )'\:\\
  157.      the fixed field of the prime residues in the list <stab> inside the
  158.      cyclotomic field $Q_n$ (see "Cyclotomic Field Records"),
  159.  
  160. 'NumberField( <subfield>, <poly> )'\:\\
  161.      the splitting field of the polynomial <poly> (which must have degree
  162.      at most 2) over the number field <subfield>; '<subfield> = 0'
  163.      is equivalent to '<subfield> = Rationals',
  164.  
  165. 'NumberField( <subfield>, <base> )'\:\\
  166.      the extension field of the number field <subfield> which is
  167.      as vector space generated by the elements of the list <base> of
  168.      cyclotomics; that means, <base> must be or at least contain a vector
  169.      space base of this extension, if <base> is a base it will be
  170.      assigned to the 'base' field of the cyclotomic field
  171.      (see "Coefficients for Number Fields").
  172.      '<subfield> = 0' is equivalent to '<subfield> = Rationals'.
  173.  
  174. |    gap> NF( [ EB(7), ER(3) ] );
  175.     NF(84,[ 1, 11, 23, 25, 37, 71 ])
  176.     gap> NF( 7, [ 1 ] );
  177.     CF(7)
  178.     gap> NF( NF( [ EB(7) ] ), [ 1, 1, 1 ] );
  179.     NF(NF(7,[ 1, 2, 4 ]),[ 1, E(3) ])
  180.     gap> F:= NF( 0, [ 1, E(4) ] ); G:= NF( 0, NormalBaseNumberField( F ) );
  181.     GaussianRationals
  182.     CF( Rationals,[ 1/2-1/2*E(4), 1/2+1/2*E(4) ])
  183.     gap> G.base; G.basechangemat; Coefficients( G, 1 );
  184.     [ 1/2-1/2*E(4), 1/2+1/2*E(4) ]
  185.     [ [ 1, 1 ], [ -1, 1 ] ]
  186.     [ 1, 1 ]|
  187.  
  188. Number field records are field records (see "Field Records") representing
  189. a number field.  Besides the obligatory record components, a number field
  190. record <F> contains the component
  191.  
  192. 'stabilizer':\\
  193.      the list of prime residues modulo 'NofCyc( <F>.generators )' which
  194.      fix all elements of <F>
  195.  
  196. and possibly
  197.  
  198. 'isIntegralBase':\\
  199.      'true' if '<F>.base' is an integral vector space base of the field
  200.      extension '<F> / <F>.field', 'false' else (used by "Ring" 'Ring');
  201.      for the case that '<F>.field' is a cyclotomic field,
  202.      "Integral Bases for Number Fields" describes integral bases of the
  203.      field extension;
  204.  
  205. 'isNormalBase':\\
  206.      'true' if '<F>.base' is a normal vector space base of the field
  207.      extension '<F>/<F>.field', 'false' else;
  208.  
  209. 'coeffslist':\\
  210.      a list of integers used by "Coefficients" 'Coefficients'; (see also
  211.      "Coefficients for Number Fields");
  212.  
  213. 'coeffsmat':\\
  214.      a matrix of cyclotomics used by "Coefficients" 'Coefficients';
  215.      bound only if '<F>.field' is not a cyclotomic field
  216.      (see also "Coefficients for Number Fields");
  217.  
  218. 'basechangemat':\\
  219.      square matrix of dimension '<F>.dimension', representing the
  220.      basechange from the default base of '<F> / <F>.field'
  221.      (see "Coefficients for Number Fields") to the base stored
  222.      in '<F>.base' if these two are different; used by 'Coefficients'.
  223.  
  224. *Note*\:\ These fields and also the field 'base' should not be changed by
  225.           hand!
  226.  
  227. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  228. \Section{Cyclotomic Field Records}\index{field!cyclotomic}\index{CF}
  229.  
  230. 'CyclotomicField( <n> )'\\
  231. 'CyclotomicField( <gens> )'\\
  232. 'CyclotomicField( <subfield>, <n> )'\\
  233. 'CyclotomicField( <subfield>, <base> )'
  234.  
  235. 'CyclotomicField' may be abbreviated 'CF'; it returns cyclotomic fields,
  236. namely
  237.  
  238. 'CyclotomicField( <n> )':\\
  239.      the field $Q_n$ (over the rationals),
  240.  
  241. 'CyclotomicField( <gens> )':\\
  242.      the smallest cyclotomic field containing the cyclotomics in the list
  243.      <gens> (over the rationals),
  244.  
  245. 'CyclotomicField( <subfield>, <n> )':\\
  246.      the field $Q_n$ over the number field <subfield>,
  247.  
  248. 'CyclotomicField( <subfield>, <base> )':\\
  249.      the cyclotomic extension field of the number field <subfield> which
  250.      is as vector space generated by the elements of the list <base> of
  251.      cyclotomics; that means, <base> must be or at least contain a vector
  252.      space base of this extension, if <base> is a base it will be
  253.      assigned to the 'base' field of the cyclotomic field
  254.      (see "Coefficients for Number Fields").
  255.      '<subfield> = 0' is equivalent to '<subfield> = Rationals'.
  256.  
  257. |    gap> CF( 5 ); CF( [ EB(7), ER(3) ] ); CF( NF( [ ER(3) ] ), 24 );
  258.     CF(5)
  259.     CF(84)
  260.     CF(24)/NF(12,[ 1, 11 ])
  261.     gap> CF( CF(3), [ 1, E(4) ] );
  262.     CF(12)/CF(3)|
  263.  
  264. A cyclotomic field record is a field record (see "Field Records"), in
  265. particular a number field record (see "Number Field Records") that
  266. represents a cyclotomic field.  Besides the obligatory record fields,
  267. a cyclotomic field record <F> contains the fields
  268.  
  269. 'isCyclotomicField':\\
  270.      always 'true'; used by "IsCyclotomicField" 'IsCyclotomicField',
  271.  
  272. 'zumbroichbase':\\
  273.      a list containing 'ZumbroichBase( <n>, <m> )' (see "ZumbroichBase")
  274.      if <F> represents the
  275.      field extension $Q_n/Q_m$, and containing 'Zumbroichbase( <n>, 1 )'
  276.      if <F> is an extension of a number field that is not cyclotomic;
  277.      used by "Coefficients" 'Coefficients', see "Coefficients for Number
  278.      Fields"
  279.  
  280. and possibly optional fields of number fields (see "Number Field
  281. Records").
  282.  
  283. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  284. \Section{DefaultField and Field for Cyclotomics}\index{conductor}%
  285. \index{default field!for cyclotomics}\index{field!for cyclotomics}
  286.  
  287. For a set <S> of cyclotomics,
  288.  
  289. 'DefaultField( <S> ) = CF( <S> )' is the smallest cylotomic field
  290. containing $S$ (see "DefaultField"), the so--called *conductor* of <S>;
  291.  
  292. 'Field( <S> ) = NF( <S> )' is the smallest field containing $S$ (see
  293. "Field").
  294.  
  295. |    gap> DefaultField( [ E(5) ] ); DefaultField( [ E(3), ER(6) ] );
  296.     CF(5)
  297.     CF(24)
  298.     gap> Field( [ E(5) ] ); Field( [ E(3), ER(6) ] );
  299.     CF(5)
  300.     NF(24,[ 1, 19 ])|
  301.  
  302. 'DefaultField' and 'Field' are used by functions that specify the field
  303. for which some cyclotomics are regarded as elements (see "DefaultField",
  304. "Field"), e.g., 'Trace' with only one argument will compute the trace of
  305. this argument (which must be a cyclotomic) with respect to its default
  306. field.
  307.  
  308. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  309. \Section{DefaultRing and Ring for Cyclotomic Integers}%
  310. \index{default ring!for cyclotomic integers}%
  311. \index{ring!for cyclotomic integers}
  312.  
  313. For a set <S> of cyclotomic integers,
  314.  
  315. 'DefaultRing( <S> )' is the ring of integers in 'CF( <S> )'
  316. (see "DefaultRing"),
  317.  
  318. 'Ring( <S> )' is the ring of integers in 'NF( <S> )' (see "Ring").
  319.  
  320. |    gap> Ring( [ E(5) ] );
  321.     Ring( E(5) )
  322.     gap> Ring( [ EB(7) ] );
  323.     Ring( E(7)+E(7)^2+E(7)^4 )
  324.     gap> DefaultRing( [ EB(7) ] );
  325.     Ring( E(7) ) |
  326.  
  327. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  328. \Section{GeneratorsPrimeResidues}\index{generators!of Galois group}
  329.  
  330. 'GeneratorsPrimeResidues( <n> )'
  331.  
  332. returns a record with fields
  333.  
  334. 'primes':\\
  335.      the set of prime divisors of the integer <n>,
  336.  
  337. 'exponents':\\
  338.      the corresponding exponents in the factorization of <n> and
  339.  
  340. 'generators':\\
  341.      generators of the group of prime residues\:\ For each odd prime $p$
  342.      there is one generator, corresponding to a primitive root of the
  343.      subgroup $(Z/p^{\nu_p})^{\ast}$ of $(Z/nZ)^{\ast}$, where $\nu_p$ is
  344.      the exponent of $p$ in the factorization of <n>; for $p = 2$, we
  345.      have one generator in the case that 8 does not divide $n$, and a
  346.      list of two generators (corresponding to
  347.      $\langle\ast 5, \ast(2^{\nu_2}-1)\rangle = (Z/2^{\nu_2})^{\ast}$)
  348.      else.
  349.  
  350. |    gap> GeneratorsPrimeResidues( 9 );      # 2 is a primitive root
  351.     rec(
  352.       primes := [ 3 ],
  353.       exponents := [ 2 ],
  354.       generators := [ 2 ] )
  355.     gap> GeneratorsPrimeResidues( 24 );     # 8 divides 24
  356.     rec(
  357.       primes := [ 2, 3 ],
  358.       exponents := [ 3, 1 ],
  359.       generators := [ [ 7, 13 ], 17 ] )
  360.     gap> GeneratorsPrimeResidues( 1155 );
  361.     rec(
  362.       primes := [ 3, 5, 7, 11 ],
  363.       exponents := [ 1, 1, 1, 1 ],
  364.       generators := [ 386, 232, 661, 211 ] )|
  365.  
  366. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  367. \Section{GaloisGroup for Number Fields}%
  368. \index{number fields!Galois group}%
  369. \index{automorphism group!of number fields}
  370.  
  371. The *Galois automorphisms* of the cyclotomic field $Q_n$ are given by
  372. linear extension of the maps $\ast k\:\ e_n \mapsto e_n^k$ with
  373. $1 \leq k \< n$ and 'Gcd( <n>, <k> ) = 1' (see "GaloisCyc").
  374. Note that this action is not equal to exponentiation of cyclotomics,
  375. i.e., in general $z^{\ast k}$ is different from $z^k$\:
  376.  
  377. |    gap> ( E(5) + E(5)^4 )^2; GaloisCyc( E(5) + E(5)^4, 2 );
  378.     -2*E(5)-E(5)^2-E(5)^3-2*E(5)^4
  379.     E(5)^2+E(5)^3|
  380.  
  381. For 'Gcd( <n>, <k> ) $\not= 1$', the map $e_n \mapsto e_n^k$ is not a
  382. field automorphism but only a linear map\:
  383.  
  384. |    gap> GaloisCyc( E(5)+E(5)^4, 5 ); GaloisCyc( ( E(5)+E(5)^4 )^2, 5 );
  385.     2
  386.     -6|
  387.  
  388. The *Galois group* $Gal( Q_n, Q )$ of the field extension $Q_n/Q$ is
  389. isomorphic to the group $(Z/nZ)^{\ast}$ of prime residues modulo $n$,
  390. via the isomorphism
  391.  
  392. \[  \begin{array}{ccc} (Z/nZ)^{\ast} & \rightarrow & Gal( Q_n, Q ) \\
  393.                         k        & \mapsto     & ( z \mapsto z^{\ast k} )
  394.     \end{array} \ , \]
  395.  
  396. thus the Galois group of the field extension $Q_n / L$ with
  397. $L \subseteq Q_n$ which is simply the factor group of $Gal( Q_n, Q )$
  398. modulo the stabilizer of $L$, and the Galois group of $L/L^{\prime}$
  399. which is the subgroup in this group that stabilizes $L^{\prime}$, are
  400. easily described in terms of $(Z/nZ)^{\ast}$ (Generators of
  401. $(Z/nZ)^{\ast}$ can be computed using "GeneratorsPrimeResidues"
  402. 'GeneratorsPrimeResidues'.).
  403.  
  404. The Galois group of a field extension can be computed using "GaloisGroup"
  405. 'GaloisGroup'\:
  406.  
  407. |    gap> f:= NF( [ EY(48) ] );
  408.     NF(48,[ 1, 47 ])
  409.     gap> g:= GaloisGroup( f );
  410.     Group( NFAutomorphism( NF(48,[ 1, 47 ]) , 17 ), NFAutomorphism( NF(48,
  411.     [ 1, 47 ]) , 11 ), NFAutomorphism( NF(48,[ 1, 47 ]) , 17 ) )
  412.     gap> Size( g ); IsCyclic( g ); IsAbelian( g );
  413.     8
  414.     false
  415.     true
  416.     gap> f.base[1]; g.1; f.base[1] ^ g.1;
  417.     E(24)-E(24)^11
  418.     NFAutomorphism( NF(48,[ 1, 47 ]) , 17 )
  419.     E(24)^17-E(24)^19
  420.     gap> Operation( g, NormalBaseNumberField( f ), OnPoints );
  421.     Group( (1,6)(2,4)(3,8)(5,7), (1,4,8,5)(2,3,7,6), (1,6)(2,4)(3,8)
  422.     (5,7) )|
  423.  
  424. The number field automorphism 'NFAutomorphism( <F>, <k> )' maps each
  425. element <x> of <F> to 'GaloisCyc( <x>, <k> )', see "GaloisCyc".
  426.  
  427. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  428. \Section{ZumbroichBase}
  429.  
  430. 'ZumbroichBase( <n>, <m> )'
  431.  
  432. returns the set of exponents $i$ where $e_n^i$ belongs to the base
  433. ${\cal{B}}_{n,m}$ of the field extension $Q_n/Q_m$; for that, <n> and <m>
  434. must be positive integers where <m> divides <n>.
  435.  
  436. ${\cal{B}}_{n,m}$ is defined as follows\:
  437.  
  438. Let $P$ denote the set of prime divisors of $n$,
  439. $n = \prod_{p\in P} p^{\nu_p}$,
  440. $m = \prod_{p\in P} p^{\mu_p}$ with $\mu_p \leq \nu_p$, and
  441. $\{ e_{n_1}^j\}_{j\in J} \otimes \{ e_{n_2}^k\}_{k\in K} = 
  442. \{ e_{n_1}^j \cdot e_{n_2}^k\}_{j\in J, k\in K}$.
  443.  
  444. Then
  445.  
  446. \[ {\cal{B}}_{n,m} = \bigotimes_{p\in P}
  447.          \bigotimes_{k=\mu_p}^{\nu_p-1} \{ e_{p^{k+1}}^j\}_{j\in J_{k,p}}
  448. \mbox{\rm\ \ where\ \ }
  449.  J_{k,p} = \left\{ \begin{array}{lcl} \{ 0 \} & ; & k=0, p=2 \\
  450.                         \{ 0, 1 \} & ; & k > 0, p=2 \\
  451.                         \{ 1, \ldots, p-1 \} & ; & k = 0, p\not= 2 \\
  452.                         \{ -\frac{p-1}{2}, \ldots, \frac{p-1}{2} \} & ; &
  453.                                  k > 0, p\not= 2
  454.                      \end{array}\right. . \]
  455.  
  456. ${\cal{B}}_{n,1}$ is equal to the base ${\cal{B}}(Q_n)$ of $Q_n$ over the
  457. rationals given in~\cite{Zum89}
  458. (Note that the notation here is slightly different from that there.).
  459.  
  460. ${\cal{B}}_{n,m}$ consists of roots of unity, it is an integral base
  461. (that is, the integral elements in $Q_n$ have integral coefficients,
  462. see "Cyclotomic Integers"), it is a normal base for squarefree $n$ and
  463. closed under complex conjugation for odd $n$.
  464.  
  465. |    gap> ZumbroichBase( 15, 1 ); ZumbroichBase( 12, 3 );
  466.     [ 1, 2, 4, 7, 8, 11, 13, 14 ]
  467.     [ 0, 3 ]
  468.     gap> ZumbroichBase( 10, 2 ); ZumbroichBase( 32, 4 );
  469.     [ 2, 4, 6, 8 ]
  470.     [ 0, 1, 2, 3, 4, 5, 6, 7 ]|
  471.  
  472. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  473. \Section{Integral Bases for Number Fields}\index{LenstraBase}
  474.  
  475. 'LenstraBase( <n>, <stabilizer>, <super> )'
  476.  
  477. returns a list $'[ ' b_1, b_2, \ldots, b_m ' ]'$ of lists, each $b_i$
  478. consisting of integers such that the elements $\sum_{j\in b_i} 'E(n)'^j$
  479. form an integral base of the number field 'NF( <n>, <stabilizer> )',
  480. see "Number Field Records".
  481.  
  482. <super> is a list representing a supergroup of the group described by the
  483. list <stabilizer>; the base is chosen such that the group of <super> acts
  484. on it, as far as this is possible.
  485.  
  486. *Note*\:\ 
  487. The $b_i$ are in general not sets, since for '<stabilizer> = <super>',
  488. $b_i[1]$ is always an element of 'ZumbroichBase( <N>, 1 )'; this is used
  489. by 'NF' (see "Number Field Records") and 'Coefficients' (see
  490. "Coefficients for Number Fields").
  491.  
  492. <stabilizer> must not contain the stabilizer of a proper cyclotomic
  493. subfield of $Q_n$.
  494.  
  495. |    gap> LenstraBase( 24, [ 1, 19 ], [ 1, 19 ] );          # a base of
  496.     [ [ 1, 19 ], [ 8 ], [ 11, 17 ], [ 16 ] ]               # $Q_3(\sqrt{6})$,
  497.     gap> LenstraBase( 24, [ 1, 19 ], [ 1, 5, 19, 23 ] );   # another one
  498.     [ [ 1, 19 ], [ 5, 23 ], [ 8 ], [ 16 ] ]
  499.     gap> LenstraBase( 15, [ 1, 4 ], PrimeResidues( 15 ) ); # normal base of
  500.     [ [ 1, 4 ], [ 2, 8 ], [ 7, 13 ], [ 11, 14 ] ]          # $Q_3(\sqrt{5})$|
  501.  
  502. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  503. \Section{NormalBaseNumberField}\index{base!of a number field}
  504.  
  505. 'NormalBaseNumberField( <F> )'\\
  506. 'NormalBaseNumberField( <F>, <x> )'
  507.  
  508. returns a list of cyclotomics which form a normal base of the number
  509. field <F> (see "Number Field Records"), i.e. a vector space base of the
  510. field <F> over its subfield '<F>.field' which is closed under the action
  511. of the Galois group '<F>.galoisGroup' of the field extension.
  512.  
  513. The normal base is computed as described in~\cite{Art68}\:\ 
  514. Let $\Phi$ denote the polynomial of a field extension $L/L^{\prime}$,
  515. $\Phi^{\prime}$ its derivative and $\alpha$ one of its roots;
  516. then for all except finitely many elements $z\in L^{\prime}$, the
  517. conjugates of $\frac{\Phi(z)}{(z-\alpha)\cdot\Phi^{\prime}(\alpha)}$
  518. form a normal base of $L/L^{\prime}$.
  519.  
  520. When 'NormalBaseNumberField( <F> )' is called, $z$ is chosen as integer,
  521. starting with 1, 'NormalBaseNumberField( <F>, <x> )' starts with $z=<x>$,
  522. increasing by one, until a normal base is found.
  523.  
  524. |    gap> NormalBaseNumberField( CF( 5 ) );
  525.     [ -E(5), -E(5)^2, -E(5)^3, -E(5)^4 ]
  526.     gap> NormalBaseNumberField( CF( 8 ) );
  527.     [ 1/4-2*E(8)-E(8)^2-1/2*E(8)^3, 1/4-1/2*E(8)+E(8)^2-2*E(8)^3, 
  528.       1/4+2*E(8)-E(8)^2+1/2*E(8)^3, 1/4+1/2*E(8)+E(8)^2+2*E(8)^3 ]|
  529.  
  530. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  531. \Section{Coefficients for Number Fields}
  532.  
  533. 'Coefficients( <z> )'\\
  534. 'Coefficients( <F>, <z> )'
  535.  
  536. return the coefficient vector <cfs> of <z> with respect to a particular
  537. base <B>, i.e., we have '<z> = <cfs> \*\ <B>'.  If <z> is the only
  538. argument, <B> is the default base of the default field of <z>
  539. (see "DefaultField and Field for Cyclotomics"), otherwise <F> must be a
  540. number field containing <z>, and we have '<B> = <F>.base'.
  541.  
  542. The *default base* of a number field is defined as follows\:
  543.  
  544. For the field extension $Q_n/Q_m$ (i.e.\ both <F> and '<F>.field' are
  545. cyclotomic fields), <B> is the base ${\cal{B}}_{n,m}$ described in
  546. "ZumbroichBase".  This is an integral base which is closely related to
  547. the internal representation of cyclotomics, thus the coefficients are
  548. easy to compute, using only the 'zumbroichbase' fields of <F> and
  549. '<F>.field'.
  550.  
  551. For the field extension $L/Q$ where $L$ is not a cyclotomic field, <B> is
  552. the integral base described in "Integral Bases for Number Fields" that
  553. consists of orbitsums on roots of unity.  The computation of coefficients
  554. requires the field '<F>.coeffslist'.
  555.  
  556. *in future*\:\ replace $Q$ by $Q_m$
  557.  
  558. In all other cases, '<B> = NormalBaseNumberField( <F> )'.  Here, the
  559. coefficients of <z> with respect to <B> are computed using
  560. '<F>.coeffslist' and '<F>.coeffsmat'.
  561.  
  562. If '<F>.base' is not the default base of <F>, the coefficients with
  563. respect to the default base are multiplied with '<F>.basechangemat'.
  564. The only possibility where it is allowed to prescribe a base is when the
  565. field is constructed (see "Number Field Records", "Cyclotomic Field
  566. Records").
  567.  
  568. |    gap> F:= NF( [ ER(3), EB(7) ] ) / NF( [ ER(3) ] );
  569.     NF(84,[ 1, 11, 23, 25, 37, 71 ])/NF(12,[ 1, 11 ])
  570.     gap> Coefficients( F, ER(3) ); Coefficients( F, EB(7) );
  571.     [ -E(12)^7+E(12)^11, -E(12)^7+E(12)^11 ]
  572.     [ 11*E(12)^4+7*E(12)^7+11*E(12)^8-7*E(12)^11, 
  573.       -10*E(12)^4-7*E(12)^7-10*E(12)^8+7*E(12)^11 ]
  574.     gap> G:= CF( 8 ); H:= CF( 0, NormalBaseNumberField( G ) );
  575.     CF(8)
  576.     CF( 0,[ 1/4-2*E(8)-E(8)^2-1/2*E(8)^3, 1/4-1/2*E(8)+E(8)^2-2*E(8)^3, 
  577.       1/4+2*E(8)-E(8)^2+1/2*E(8)^3, 1/4+1/2*E(8)+E(8)^2+2*E(8)^3 ])
  578.     gap> Coefficients( G, ER(2) ); Coefficients( H, ER(2) );
  579.     [ 0, 1, 0, -1 ]
  580.     [ -1/3, 1/3, 1/3, -1/3 ]|
  581.  
  582. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  583. \Section{Domain Functions for Number Fields}
  584.  
  585. The  following  functions  of 'FieldOps'  (see chapter  "Fields")  are
  586. overlaid in 'NumberFieldOps'\:
  587.  
  588. '/', 'Coefficients', 'Conjugates', 'GaloisGroup', 'in',
  589. 'Intersection', 'Norm', 'Order', 'Print', 'Random', 'Trace'.
  590.  
  591. The  following  functions   of   'NumberFieldOps'   are   overlaid  in
  592. 'CyclotomicFieldOps'\:
  593.  
  594. 'Coefficients', 'Conjugates', 'in', 'Norm', 'Print', 'Trace'.
  595.  
  596.