/usr/share/gap/doc/ref/chap58.html is in gap-doc 4r8p6-2.
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 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 | <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>GAP (ref) - Chapter 58: Fields and Division Rings</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="text/javascript"></script>
<script type="text/javascript">overwriteStyle();</script>
</head>
<body class="chap58" onload="jscontent()">
<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chap14.html">14</a> <a href="chap15.html">15</a> <a href="chap16.html">16</a> <a href="chap17.html">17</a> <a href="chap18.html">18</a> <a href="chap19.html">19</a> <a href="chap20.html">20</a> <a href="chap21.html">21</a> <a href="chap22.html">22</a> <a href="chap23.html">23</a> <a href="chap24.html">24</a> <a href="chap25.html">25</a> <a href="chap26.html">26</a> <a href="chap27.html">27</a> <a href="chap28.html">28</a> <a href="chap29.html">29</a> <a href="chap30.html">30</a> <a href="chap31.html">31</a> <a href="chap32.html">32</a> <a href="chap33.html">33</a> <a href="chap34.html">34</a> <a href="chap35.html">35</a> <a href="chap36.html">36</a> <a href="chap37.html">37</a> <a href="chap38.html">38</a> <a href="chap39.html">39</a> <a href="chap40.html">40</a> <a href="chap41.html">41</a> <a href="chap42.html">42</a> <a href="chap43.html">43</a> <a href="chap44.html">44</a> <a href="chap45.html">45</a> <a href="chap46.html">46</a> <a href="chap47.html">47</a> <a href="chap48.html">48</a> <a href="chap49.html">49</a> <a href="chap50.html">50</a> <a href="chap51.html">51</a> <a href="chap52.html">52</a> <a href="chap53.html">53</a> <a href="chap54.html">54</a> <a href="chap55.html">55</a> <a href="chap56.html">56</a> <a href="chap57.html">57</a> <a href="chap58.html">58</a> <a href="chap59.html">59</a> <a href="chap60.html">60</a> <a href="chap61.html">61</a> <a href="chap62.html">62</a> <a href="chap63.html">63</a> <a href="chap64.html">64</a> <a href="chap65.html">65</a> <a href="chap66.html">66</a> <a href="chap67.html">67</a> <a href="chap68.html">68</a> <a href="chap69.html">69</a> <a href="chap70.html">70</a> <a href="chap71.html">71</a> <a href="chap72.html">72</a> <a href="chap73.html">73</a> <a href="chap74.html">74</a> <a href="chap75.html">75</a> <a href="chap76.html">76</a> <a href="chap77.html">77</a> <a href="chap78.html">78</a> <a href="chap79.html">79</a> <a href="chap80.html">80</a> <a href="chap81.html">81</a> <a href="chap82.html">82</a> <a href="chap83.html">83</a> <a href="chap84.html">84</a> <a href="chap85.html">85</a> <a href="chap86.html">86</a> <a href="chap87.html">87</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div>
<div class="chlinkprevnexttop"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap57.html">[Previous Chapter]</a> <a href="chap59.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap58_mj.html">[MathJax on]</a></p>
<p><a id="X80A8E676814A19FD" name="X80A8E676814A19FD"></a></p>
<div class="ChapSects"><a href="chap58.html#X80A8E676814A19FD">58 <span class="Heading">Fields and Division Rings</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap58.html#X82B74B458705B3CE">58.1 <span class="Heading">Generating Fields</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7F2CAA9E7A16913D">58.1-1 IsDivisionRing</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7A5AE30E7C0F457C">58.1-2 IsField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X871AA7D58263E9AC">58.1-3 Field</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7D9F7FD4786691EE">58.1-4 DefaultField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7C298A40852C2AFF">58.1-5 DefaultFieldByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7EF624958648D0FA">58.1-6 GeneratorsOfDivisionRing</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7AA715317A81261B">58.1-7 GeneratorsOfField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X8641861A8550F8BE">58.1-8 DivisionRingByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7C193B7D7AFB29BE">58.1-9 AsDivisionRing</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap58.html#X7C53566A839B57F6">58.2 <span class="Heading">Subfields of Fields</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7FE1FA217A08DCE5">58.2-1 Subfield</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X82A0E79A7B9799E0">58.2-2 FieldOverItselfByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X86DB31B57FB4F570">58.2-3 PrimitiveElement</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7DD27F927BD57FDE">58.2-4 PrimeField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X84B6F1E67AD0E33D">58.2-5 IsPrimeField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7845CECE86A83219">58.2-6 DegreeOverPrimeField</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7ADDCBF47E2ED3D4">58.2-7 DefiningPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X8173DA4982DB1E8A">58.2-8 RootOfDefiningPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X82718B3B818DC699">58.2-9 FieldExtension</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X83490C65819D85FE">58.2-10 Subfields</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap58.html#X7D9A02B07D08FA40">58.3 <span class="Heading">Galois Action</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X80CAA5BA82F09ED2">58.3-1 GaloisGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X8738C6687D784BB5">58.3-2 MinimalPolynomial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X80FE7E017C2D255C">58.3-3 TracePolynomial</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X838515278587FF01">58.3-4 Norm</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X7DD17EB581200AD6">58.3-5 <span class="Heading">Traces of field elements and matrices</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X837A4A5781F8EE92">58.3-6 Conjugates</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap58.html#X8236A8B47E6AAD93">58.3-7 NormalBase</a></span>
</div></div>
</div>
<h3>58 <span class="Heading">Fields and Division Rings</span></h3>
<p>A <em>division ring</em> is a ring (see Chapter <a href="chap56.html#X81897F6082CACB59"><span class="RefLink">56</span></a>) in which every non-zero element has an inverse. The most important class of division rings are the commutative ones, which are called <em>fields</em>.</p>
<p><strong class="pkg">GAP</strong> supports finite fields (see Chapter <a href="chap59.html#X7893ABF67A028802"><span class="RefLink">59</span></a>) and abelian number fields (see Chapter <a href="chap60.html#X80510B5880521FDC"><span class="RefLink">60</span></a>), in particular the field of rationals (see Chapter <a href="chap17.html#X87003045878E74DF"><span class="RefLink">17</span></a>).</p>
<p>This chapter describes the general <strong class="pkg">GAP</strong> functions for fields and division rings.</p>
<p>If a field <var class="Arg">F</var> is a subfield of a commutative ring <var class="Arg">C</var>, <var class="Arg">C</var> can be considered as a vector space over the (left) acting domain <var class="Arg">F</var> (see Chapter <a href="chap61.html#X7DAD6700787EC845"><span class="RefLink">61</span></a>). In this situation, we call <var class="Arg">F</var> the <em>field of definition</em> of <var class="Arg">C</var>.</p>
<p>Each field in <strong class="pkg">GAP</strong> is represented as a vector space over a subfield (see <code class="func">IsField</code> (<a href="chap58.html#X7A5AE30E7C0F457C"><span class="RefLink">58.1-2</span></a>)), thus each field is in fact a field extension in a natural way, which is used by functions such as <code class="func">Norm</code> (<a href="chap58.html#X838515278587FF01"><span class="RefLink">58.3-4</span></a>) and <code class="func">Trace</code> (<a href="chap58.html#X7DD17EB581200AD6"><span class="RefLink">58.3-5</span></a>) (see <a href="chap58.html#X7D9A02B07D08FA40"><span class="RefLink">58.3</span></a>).</p>
<p><a id="X82B74B458705B3CE" name="X82B74B458705B3CE"></a></p>
<h4>58.1 <span class="Heading">Generating Fields</span></h4>
<p><a id="X7F2CAA9E7A16913D" name="X7F2CAA9E7A16913D"></a></p>
<h5>58.1-1 IsDivisionRing</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDivisionRing</code>( <var class="Arg">D</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>A <em>division ring</em> in <strong class="pkg">GAP</strong> is a nontrivial associative algebra <var class="Arg">D</var> with a multiplicative inverse for each nonzero element. In <strong class="pkg">GAP</strong> every division ring is a vector space over a division ring (possibly over itself). Note that being a division ring is thus not a property that a ring can get, because a ring is usually not represented as a vector space.</p>
<p>The field of coefficients is stored as the value of the attribute <code class="func">LeftActingDomain</code> (<a href="chap57.html#X86F070E0807DC34E"><span class="RefLink">57.1-11</span></a>) of <var class="Arg">D</var>.</p>
<p><a id="X7A5AE30E7C0F457C" name="X7A5AE30E7C0F457C"></a></p>
<h5>58.1-2 IsField</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsField</code>( <var class="Arg">D</var> )</td><td class="tdright">( filter )</td></tr></table></div>
<p>A <em>field</em> is a commutative division ring (see <code class="func">IsDivisionRing</code> (<a href="chap58.html#X7F2CAA9E7A16913D"><span class="RefLink">58.1-1</span></a>) and <code class="func">IsCommutative</code> (<a href="chap35.html#X830A4A4C795FBC2D"><span class="RefLink">35.4-9</span></a>)).</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsField( GaloisField(16) ); # the field with 16 elements</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsField( Rationals ); # the field of rationals</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">q:= QuaternionAlgebra( Rationals );; # noncommutative division ring</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsField( q ); IsDivisionRing( q );</span>
false
true
<span class="GAPprompt">gap></span> <span class="GAPinput">mat:= [ [ 1 ] ];; a:= Algebra( Rationals, [ mat ] );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsDivisionRing( a ); # algebra not constructed as a division ring</span>
false
</pre></div>
<p><a id="X871AA7D58263E9AC" name="X871AA7D58263E9AC"></a></p>
<h5>58.1-3 Field</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Field</code>( <var class="Arg">z</var>, <var class="Arg">...</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Field</code>( [<var class="Arg">F</var>, ]<var class="Arg">list</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">Field</code> returns the smallest field <span class="SimpleMath">K</span> that contains all the elements <span class="SimpleMath"><var class="Arg">z</var>, ...</span>, or the smallest field <span class="SimpleMath">K</span> that contains all elements in the list <var class="Arg">list</var>. If no subfield <var class="Arg">F</var> is given, <span class="SimpleMath">K</span> is constructed as a field over itself, i.e. the left acting domain of <span class="SimpleMath">K</span> is <span class="SimpleMath">K</span>. Called with a field <var class="Arg">F</var> and a list <var class="Arg">list</var>, <code class="func">Field</code> constructs the field generated by <var class="Arg">F</var> and the elements in <var class="Arg">list</var>, as a vector space over <var class="Arg">F</var>.</p>
<p><a id="X7D9F7FD4786691EE" name="X7D9F7FD4786691EE"></a></p>
<h5>58.1-4 DefaultField</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefaultField</code>( <var class="Arg">z</var>, <var class="Arg">...</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefaultField</code>( <var class="Arg">list</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">DefaultField</code> returns a field <span class="SimpleMath">K</span> that contains all the elements <span class="SimpleMath"><var class="Arg">z</var>, ...</span>, or a field <span class="SimpleMath">K</span> that contains all elements in the list <var class="Arg">list</var>.</p>
<p>This field need not be the smallest field in which the elements lie, cf. <code class="func">Field</code> (<a href="chap58.html#X871AA7D58263E9AC"><span class="RefLink">58.1-3</span></a>). For example, for elements from cyclotomic fields <code class="func">DefaultField</code> returns the smallest cyclotomic field in which the elements lie, but the elements may lie in a smaller number field which is not a cyclotomic field.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Field( Z(4) ); Field( [ Z(4), Z(8) ] ); # finite fields</span>
GF(2^2)
GF(2^6)
<span class="GAPprompt">gap></span> <span class="GAPinput">Field( E(9) ); Field( CF(4), [ E(9) ] ); # abelian number fields</span>
CF(9)
AsField( GaussianRationals, CF(36) )
<span class="GAPprompt">gap></span> <span class="GAPinput">f1:= Field( EB(5) ); f2:= DefaultField( EB(5) );</span>
NF(5,[ 1, 4 ])
CF(5)
<span class="GAPprompt">gap></span> <span class="GAPinput">f1 = f2; IsSubset( f2, f1 );</span>
false
true
</pre></div>
<p><a id="X7C298A40852C2AFF" name="X7C298A40852C2AFF"></a></p>
<h5>58.1-5 DefaultFieldByGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefaultFieldByGenerators</code>( [<var class="Arg">z</var>, <var class="Arg">...</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns the default field containing the elements <var class="Arg">z</var>, <span class="SimpleMath">...</span>. This field may be bigger than the smallest field containing these elements.</p>
<p><a id="X7EF624958648D0FA" name="X7EF624958648D0FA"></a></p>
<h5>58.1-6 GeneratorsOfDivisionRing</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfDivisionRing</code>( <var class="Arg">D</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>generators with respect to addition, multiplication, and taking inverses (the identity cannot be omitted ...)</p>
<p><a id="X7AA715317A81261B" name="X7AA715317A81261B"></a></p>
<h5>58.1-7 GeneratorsOfField</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfField</code>( <var class="Arg">F</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>generators with respect to addition, multiplication, and taking inverses. This attribute is the same as <code class="func">GeneratorsOfDivisionRing</code> (<a href="chap58.html#X7EF624958648D0FA"><span class="RefLink">58.1-6</span></a>).</p>
<p><a id="X8641861A8550F8BE" name="X8641861A8550F8BE"></a></p>
<h5>58.1-8 DivisionRingByGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DivisionRingByGenerators</code>( [<var class="Arg">F</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FieldByGenerators</code>( [<var class="Arg">F</var>, ]<var class="Arg">gens</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Called with a field <var class="Arg">F</var> and a list <var class="Arg">gens</var> of scalars, <code class="func">DivisionRingByGenerators</code> returns the division ring over <var class="Arg">F</var> generated by <var class="Arg">gens</var>. The unary version returns the division ring as vector space over <code class="code">FieldOverItselfByGenerators( <var class="Arg">gens</var> )</code>.</p>
<p><code class="func">FieldByGenerators</code> is just a synonym for <code class="func">DivisionRingByGenerators</code>.</p>
<p><a id="X7C193B7D7AFB29BE" name="X7C193B7D7AFB29BE"></a></p>
<h5>58.1-9 AsDivisionRing</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsDivisionRing</code>( [<var class="Arg">F</var>, ]<var class="Arg">C</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsField</code>( [<var class="Arg">F</var>, ]<var class="Arg">C</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>If the collection <var class="Arg">C</var> can be regarded as a division ring then <code class="code">AsDivisionRing( <var class="Arg">C</var> )</code> is the division ring that consists of the elements of <var class="Arg">C</var>, viewed as a vector space over its prime field; otherwise <code class="keyw">fail</code> is returned.</p>
<p>In the second form, if <var class="Arg">F</var> is a division ring contained in <var class="Arg">C</var> then the returned division ring is viewed as a vector space over <var class="Arg">F</var>.</p>
<p><code class="func">AsField</code> is just a synonym for <code class="func">AsDivisionRing</code>.</p>
<p><a id="X7C53566A839B57F6" name="X7C53566A839B57F6"></a></p>
<h4>58.2 <span class="Heading">Subfields of Fields</span></h4>
<p><a id="X7FE1FA217A08DCE5" name="X7FE1FA217A08DCE5"></a></p>
<h5>58.2-1 Subfield</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Subfield</code>( <var class="Arg">F</var>, <var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubfieldNC</code>( <var class="Arg">F</var>, <var class="Arg">gens</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Constructs the subfield of <var class="Arg">F</var> generated by <var class="Arg">gens</var>.</p>
<p><a id="X82A0E79A7B9799E0" name="X82A0E79A7B9799E0"></a></p>
<h5>58.2-2 FieldOverItselfByGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FieldOverItselfByGenerators</code>( [<var class="Arg">z</var>, <var class="Arg">...</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This operation is needed for the call of <code class="func">Field</code> (<a href="chap58.html#X871AA7D58263E9AC"><span class="RefLink">58.1-3</span></a>) or <code class="func">FieldByGenerators</code> (<a href="chap58.html#X8641861A8550F8BE"><span class="RefLink">58.1-8</span></a>) without explicitly given subfield, in order to construct a left acting domain for such a field.</p>
<p><a id="X86DB31B57FB4F570" name="X86DB31B57FB4F570"></a></p>
<h5>58.2-3 PrimitiveElement</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PrimitiveElement</code>( <var class="Arg">D</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is an element of <var class="Arg">D</var> that generates <var class="Arg">D</var> as a division ring together with the left acting domain.</p>
<p><a id="X7DD27F927BD57FDE" name="X7DD27F927BD57FDE"></a></p>
<h5>58.2-4 PrimeField</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PrimeField</code>( <var class="Arg">D</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The <em>prime field</em> of a division ring <var class="Arg">D</var> is the smallest field which is contained in <var class="Arg">D</var>. For example, the prime field of any field in characteristic zero is isomorphic to the field of rational numbers.</p>
<p><a id="X84B6F1E67AD0E33D" name="X84B6F1E67AD0E33D"></a></p>
<h5>58.2-5 IsPrimeField</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsPrimeField</code>( <var class="Arg">D</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p>A division ring is a prime field if it is equal to its prime field (see <code class="func">PrimeField</code> (<a href="chap58.html#X7DD27F927BD57FDE"><span class="RefLink">58.2-4</span></a>)).</p>
<p><a id="X7845CECE86A83219" name="X7845CECE86A83219"></a></p>
<h5>58.2-6 DegreeOverPrimeField</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DegreeOverPrimeField</code>( <var class="Arg">F</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is the degree of the field <var class="Arg">F</var> over its prime field (see <code class="func">PrimeField</code> (<a href="chap58.html#X7DD27F927BD57FDE"><span class="RefLink">58.2-4</span></a>)).</p>
<p><a id="X7ADDCBF47E2ED3D4" name="X7ADDCBF47E2ED3D4"></a></p>
<h5>58.2-7 DefiningPolynomial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DefiningPolynomial</code>( <var class="Arg">F</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is the defining polynomial of the field <var class="Arg">F</var> as a field extension over the left acting domain of <var class="Arg">F</var>. A root of the defining polynomial can be computed with <code class="func">RootOfDefiningPolynomial</code> (<a href="chap58.html#X8173DA4982DB1E8A"><span class="RefLink">58.2-8</span></a>).</p>
<p><a id="X8173DA4982DB1E8A" name="X8173DA4982DB1E8A"></a></p>
<h5>58.2-8 RootOfDefiningPolynomial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RootOfDefiningPolynomial</code>( <var class="Arg">F</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is a root in the field <var class="Arg">F</var> of its defining polynomial as a field extension over the left acting domain of <var class="Arg">F</var>. The defining polynomial can be computed with <code class="func">DefiningPolynomial</code> (<a href="chap58.html#X7ADDCBF47E2ED3D4"><span class="RefLink">58.2-7</span></a>).</p>
<p><a id="X82718B3B818DC699" name="X82718B3B818DC699"></a></p>
<h5>58.2-9 FieldExtension</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FieldExtension</code>( <var class="Arg">F</var>, <var class="Arg">poly</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>is the field obtained on adjoining a root of the irreducible polynomial <var class="Arg">poly</var> to the field <var class="Arg">F</var>.</p>
<p><a id="X83490C65819D85FE" name="X83490C65819D85FE"></a></p>
<h5>58.2-10 Subfields</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Subfields</code>( <var class="Arg">F</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>is the set of all subfields of the field <var class="Arg">F</var>.</p>
<p><a id="X7D9A02B07D08FA40" name="X7D9A02B07D08FA40"></a></p>
<h4>58.3 <span class="Heading">Galois Action</span></h4>
<p>Let <span class="SimpleMath">L > K</span> be a field extension of finite degree. Then to each element <span class="SimpleMath">α ∈ L</span>, we can associate a <span class="SimpleMath">K</span>-linear mapping <span class="SimpleMath">φ_α</span> on <span class="SimpleMath">L</span>, and for a fixed <span class="SimpleMath">K</span>-basis of <span class="SimpleMath">L</span>, we can associate to <span class="SimpleMath">α</span> the matrix <span class="SimpleMath">M_α</span> (over <span class="SimpleMath">K</span>) of this mapping.</p>
<p>The <em>norm</em> of <span class="SimpleMath">α</span> is defined as the determinant of <span class="SimpleMath">M_α</span>, the <em>trace</em> of <span class="SimpleMath">α</span> is defined as the trace of <span class="SimpleMath">M_α</span>, the <em>minimal polynomial</em> <span class="SimpleMath">μ_α</span> and the <em>trace polynomial</em> <span class="SimpleMath">χ_α</span> of <span class="SimpleMath">α</span> are defined as the minimal polynomial (see <a href="chap58.html#X8738C6687D784BB5"><span class="RefLink">58.3-2</span></a>) and the characteristic polynomial (see <code class="func">CharacteristicPolynomial</code> (<a href="chap24.html#X87FA0A727CDB060B"><span class="RefLink">24.13-1</span></a>) and <code class="func">TracePolynomial</code> (<a href="chap58.html#X80FE7E017C2D255C"><span class="RefLink">58.3-3</span></a>)) of <span class="SimpleMath">M_α</span>. (Note that <span class="SimpleMath">μ_α</span> depends only on <span class="SimpleMath">K</span> whereas <span class="SimpleMath">χ_α</span> depends on both <span class="SimpleMath">L</span> and <span class="SimpleMath">K</span>.)</p>
<p>Thus norm and trace of <span class="SimpleMath">α</span> are elements of <span class="SimpleMath">K</span>, and <span class="SimpleMath">μ_α</span> and <span class="SimpleMath">χ_α</span> are polynomials over <span class="SimpleMath">K</span>, <span class="SimpleMath">χ_α</span> being a power of <span class="SimpleMath">μ_α</span>, and the degree of <span class="SimpleMath">χ_α</span> equals the degree of the field extension <span class="SimpleMath">L > K</span>.</p>
<p>The <em>conjugates</em> of <span class="SimpleMath">α</span> in <span class="SimpleMath">L</span> are those roots of <span class="SimpleMath">χ_α</span> (with multiplicity) that lie in <span class="SimpleMath">L</span>; note that if only <span class="SimpleMath">L</span> is given, there is in general no way to access the roots outside <span class="SimpleMath">L</span>.</p>
<p>Analogously, the <em>Galois group</em> of the extension <span class="SimpleMath">L > K</span> is defined as the group of all those field automorphisms of <span class="SimpleMath">L</span> that fix <span class="SimpleMath">K</span> pointwise.</p>
<p>If <span class="SimpleMath">L > K</span> is a Galois extension then the conjugates of <span class="SimpleMath">α</span> are all roots of <span class="SimpleMath">χ_α</span> (with multiplicity), the set of conjugates equals the roots of <span class="SimpleMath">μ_α</span>, the norm of <span class="SimpleMath">α</span> equals the product and the trace of <span class="SimpleMath">α</span> equals the sum of the conjugates of <span class="SimpleMath">α</span>, and the Galois group in the sense of the above definition equals the usual Galois group,</p>
<p>Note that <code class="code">MinimalPolynomial( <var class="Arg">F</var>, <var class="Arg">z</var> )</code> is a polynomial <em>over</em> <var class="Arg">F</var>, whereas <code class="code">Norm( <var class="Arg">F</var>, <var class="Arg">z</var> )</code> is the norm of the element <var class="Arg">z</var> <em>in</em> <var class="Arg">F</var> w.r.t. the field extension <code class="code"><var class="Arg">F</var> > LeftActingDomain( <var class="Arg">F</var> )</code>.</p>
<p>The default methods for field elements are as follows. <code class="func">MinimalPolynomial</code> (<a href="chap66.html#X8643915A8424DAF8"><span class="RefLink">66.8-1</span></a>) solves a system of linear equations, <code class="func">TracePolynomial</code> (<a href="chap58.html#X80FE7E017C2D255C"><span class="RefLink">58.3-3</span></a>) computes the appropriate power of the minimal polynomial, <code class="func">Norm</code> (<a href="chap58.html#X838515278587FF01"><span class="RefLink">58.3-4</span></a>) and <code class="func">Trace</code> (<a href="chap58.html#X7DD17EB581200AD6"><span class="RefLink">58.3-5</span></a>) values are obtained as coefficients of the characteristic polynomial, and <code class="func">Conjugates</code> (<a href="chap58.html#X837A4A5781F8EE92"><span class="RefLink">58.3-6</span></a>) uses the factorization of the characteristic polynomial.</p>
<p>For elements in finite fields and cyclotomic fields, one wants to do the computations in a different way since the field extensions in question are Galois extensions, and the Galois groups are well-known in these cases. More general, if a field is in the category <code class="code">IsFieldControlledByGaloisGroup</code> then the default methods are the following. <code class="func">Conjugates</code> (<a href="chap58.html#X837A4A5781F8EE92"><span class="RefLink">58.3-6</span></a>) returns the sorted list of images (with multiplicity) of the element under the Galois group, <code class="func">Norm</code> (<a href="chap58.html#X838515278587FF01"><span class="RefLink">58.3-4</span></a>) computes the product of the conjugates, <code class="func">Trace</code> (<a href="chap58.html#X7DD17EB581200AD6"><span class="RefLink">58.3-5</span></a>) computes the sum of the conjugates, <code class="func">TracePolynomial</code> (<a href="chap58.html#X80FE7E017C2D255C"><span class="RefLink">58.3-3</span></a>) and <code class="func">MinimalPolynomial</code> (<a href="chap66.html#X8643915A8424DAF8"><span class="RefLink">66.8-1</span></a>) compute the product of linear factors <span class="SimpleMath">x - c</span> with <span class="SimpleMath">c</span> ranging over the conjugates and the set of conjugates, respectively.</p>
<p><a id="X80CAA5BA82F09ED2" name="X80CAA5BA82F09ED2"></a></p>
<h5>58.3-1 GaloisGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GaloisGroup</code>( <var class="Arg">F</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The <em>Galois group</em> of a field <var class="Arg">F</var> is the group of all field automorphisms of <var class="Arg">F</var> that fix the subfield <span class="SimpleMath">K =</span><code class="code">LeftActingDomain( <var class="Arg">F</var> )</code> pointwise.</p>
<p>Note that the field extension <span class="SimpleMath"><var class="Arg">F</var> > K</span> need <em>not</em> be a Galois extension.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:= GaloisGroup( AsField( GF(2^2), GF(2^12) ) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( g ); IsCyclic( g );</span>
6
true
<span class="GAPprompt">gap></span> <span class="GAPinput">h:= GaloisGroup( CF(60) );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size( h ); IsAbelian( h );</span>
16
true
</pre></div>
<p><a id="X8738C6687D784BB5" name="X8738C6687D784BB5"></a></p>
<h5>58.3-2 MinimalPolynomial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MinimalPolynomial</code>( <var class="Arg">F</var>, <var class="Arg">z</var>[, <var class="Arg">ind</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns the minimal polynomial of <var class="Arg">z</var> over the field <var class="Arg">F</var>. This is a generator of the ideal in <span class="SimpleMath"><var class="Arg">F</var>[x]</span> of all polynomials which vanish on <var class="Arg">z</var>. (This definition is consistent with the general definition of <code class="func">MinimalPolynomial</code> (<a href="chap66.html#X8643915A8424DAF8"><span class="RefLink">66.8-1</span></a>) for rings.)</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalPolynomial( Rationals, E(8) );</span>
x_1^4+1
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalPolynomial( CF(4), E(8) );</span>
x_1^2+(-E(4))
<span class="GAPprompt">gap></span> <span class="GAPinput">MinimalPolynomial( CF(8), E(8) );</span>
x_1+(-E(8))
</pre></div>
<p><a id="X80FE7E017C2D255C" name="X80FE7E017C2D255C"></a></p>
<h5>58.3-3 TracePolynomial</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TracePolynomial</code>( <var class="Arg">L</var>, <var class="Arg">K</var>, <var class="Arg">z</var>[, <var class="Arg">inum</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns the polynomial that is the product of <span class="SimpleMath">(X - c)</span> where <span class="SimpleMath">c</span> runs over the conjugates of <var class="Arg">z</var> in the field extension <var class="Arg">L</var> over <var class="Arg">K</var>. The polynomial is returned as a univariate polynomial over <var class="Arg">K</var> in the indeterminate number <var class="Arg">inum</var> (defaulting to 1).</p>
<p>This polynomial is sometimes also called the <em>characteristic polynomial</em> of <var class="Arg">z</var> w.r.t. the field extension <span class="SimpleMath"><var class="Arg">L</var> > <var class="Arg">K</var></span>. Therefore methods are installed for <code class="func">CharacteristicPolynomial</code> (<a href="chap24.html#X87FA0A727CDB060B"><span class="RefLink">24.13-1</span></a>) that call <code class="func">TracePolynomial</code> in the case of field extensions.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">TracePolynomial( CF(8), Rationals, E(8) );</span>
x_1^4+1
<span class="GAPprompt">gap></span> <span class="GAPinput">TracePolynomial( CF(16), Rationals, E(8) );</span>
x_1^8+2*x_1^4+1
</pre></div>
<p><a id="X838515278587FF01" name="X838515278587FF01"></a></p>
<h5>58.3-4 Norm</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Norm</code>( [<var class="Arg">L</var>[, <var class="Arg">K</var>, ]]<var class="Arg">z</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><code class="func">Norm</code> returns the norm of the field element <var class="Arg">z</var>. If two fields <var class="Arg">L</var> and <var class="Arg">K</var> are given then the norm is computed w.r.t. the field extension <var class="Arg">L</var><span class="SimpleMath">></span><var class="Arg">K</var>, if only one field <var class="Arg">L</var> is given then <code class="code">LeftActingDomain( <var class="Arg">L</var> )</code> is taken as default for the subfield <var class="Arg">K</var>, and if no field is given then <code class="code">DefaultField( <var class="Arg">z</var> )</code> is taken as default for <var class="Arg">L</var>.</p>
<p><a id="X7DD17EB581200AD6" name="X7DD17EB581200AD6"></a></p>
<h5>58.3-5 <span class="Heading">Traces of field elements and matrices</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Trace</code>( [<var class="Arg">L</var>[, <var class="Arg">K</var>, ]]<var class="Arg">z</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Trace</code>( <var class="Arg">mat</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><code class="func">Trace</code> returns the trace of the field element <var class="Arg">z</var>. If two fields <var class="Arg">L</var> and <var class="Arg">K</var> are given then the trace is computed w.r.t. the field extension <span class="SimpleMath"><var class="Arg">L</var> > <var class="Arg">K</var></span>, if only one field <var class="Arg">L</var> is given then <code class="code">LeftActingDomain( <var class="Arg">L</var> )</code> is taken as default for the subfield <var class="Arg">K</var>, and if no field is given then <code class="code">DefaultField( <var class="Arg">z</var> )</code> is taken as default for <var class="Arg">L</var>.</p>
<p>The <em>trace of a matrix</em> is the sum of its diagonal entries. Note that this is <em>not</em> compatible with the definition of <code class="func">Trace</code> for field elements, so the one-argument version is not suitable when matrices shall be regarded as field elements.</p>
<p><a id="X837A4A5781F8EE92" name="X837A4A5781F8EE92"></a></p>
<h5>58.3-6 Conjugates</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Conjugates</code>( [<var class="Arg">L</var>[, <var class="Arg">K</var>, ]]<var class="Arg">z</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><code class="func">Conjugates</code> returns the list of <em>conjugates</em> of the field element <var class="Arg">z</var>. If two fields <var class="Arg">L</var> and <var class="Arg">K</var> are given then the conjugates are computed w.r.t. the field extension <var class="Arg">L</var><span class="SimpleMath">></span><var class="Arg">K</var>, if only one field <var class="Arg">L</var> is given then <code class="code">LeftActingDomain( <var class="Arg">L</var> )</code> is taken as default for the subfield <var class="Arg">K</var>, and if no field is given then <code class="code">DefaultField( <var class="Arg">z</var> )</code> is taken as default for <var class="Arg">L</var>.</p>
<p>The result list will contain duplicates if <var class="Arg">z</var> lies in a proper subfield of <var class="Arg">L</var>, or of the default field of <var class="Arg">z</var>, respectively. The result list need not be sorted.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Norm( E(8) ); Norm( CF(8), E(8) );</span>
1
1
<span class="GAPprompt">gap></span> <span class="GAPinput">Norm( CF(8), CF(4), E(8) );</span>
-E(4)
<span class="GAPprompt">gap></span> <span class="GAPinput">Norm( AsField( CF(4), CF(8) ), E(8) );</span>
-E(4)
<span class="GAPprompt">gap></span> <span class="GAPinput">Trace( E(8) ); Trace( CF(8), CF(8), E(8) );</span>
0
E(8)
<span class="GAPprompt">gap></span> <span class="GAPinput">Conjugates( CF(8), E(8) );</span>
[ E(8), E(8)^3, -E(8), -E(8)^3 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Conjugates( CF(8), CF(4), E(8) );</span>
[ E(8), -E(8) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Conjugates( CF(16), E(8) );</span>
[ E(8), E(8)^3, -E(8), -E(8)^3, E(8), E(8)^3, -E(8), -E(8)^3 ]
</pre></div>
<p><a id="X8236A8B47E6AAD93" name="X8236A8B47E6AAD93"></a></p>
<h5>58.3-7 NormalBase</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NormalBase</code>( <var class="Arg">F</var>[, <var class="Arg">elm</var>] )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Let <var class="Arg">F</var> be a field that is a Galois extension of its subfield <code class="code">LeftActingDomain( <var class="Arg">F</var> )</code>. Then <code class="func">NormalBase</code> returns a list of elements in <var class="Arg">F</var> that form a normal basis of <var class="Arg">F</var>, that is, a vector space basis that is closed under the action of the Galois group (see <code class="func">GaloisGroup</code> (<a href="chap58.html#X80CAA5BA82F09ED2"><span class="RefLink">58.3-1</span></a>)) of <var class="Arg">F</var>.</p>
<p>If a second argument <var class="Arg">elm</var> is given, it is used as a hint for the algorithm to find a normal basis with the algorithm described in <a href="chapBib.html#biBArt68">[Art73]</a>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">NormalBase( CF(5) );</span>
[ -E(5), -E(5)^2, -E(5)^3, -E(5)^4 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">NormalBase( CF(4) );</span>
[ 1/2-1/2*E(4), 1/2+1/2*E(4) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">NormalBase( GF(3^6) );</span>
[ Z(3^6)^2, Z(3^6)^6, Z(3^6)^18, Z(3^6)^54, Z(3^6)^162, Z(3^6)^486 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">NormalBase( GF( GF(8), 2 ) );</span>
[ Z(2^6), Z(2^6)^8 ]
</pre></div>
<div class="chlinkprevnextbot"> <a href="chap0.html">[Top of Book]</a> <a href="chap0.html#contents">[Contents]</a> <a href="chap57.html">[Previous Chapter]</a> <a href="chap59.html">[Next Chapter]</a> </div>
<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0.html">Top</a> <a href="chap1.html">1</a> <a href="chap2.html">2</a> <a href="chap3.html">3</a> <a href="chap4.html">4</a> <a href="chap5.html">5</a> <a href="chap6.html">6</a> <a href="chap7.html">7</a> <a href="chap8.html">8</a> <a href="chap9.html">9</a> <a href="chap10.html">10</a> <a href="chap11.html">11</a> <a href="chap12.html">12</a> <a href="chap13.html">13</a> <a href="chap14.html">14</a> <a href="chap15.html">15</a> <a href="chap16.html">16</a> <a href="chap17.html">17</a> <a href="chap18.html">18</a> <a href="chap19.html">19</a> <a href="chap20.html">20</a> <a href="chap21.html">21</a> <a href="chap22.html">22</a> <a href="chap23.html">23</a> <a href="chap24.html">24</a> <a href="chap25.html">25</a> <a href="chap26.html">26</a> <a href="chap27.html">27</a> <a href="chap28.html">28</a> <a href="chap29.html">29</a> <a href="chap30.html">30</a> <a href="chap31.html">31</a> <a href="chap32.html">32</a> <a href="chap33.html">33</a> <a href="chap34.html">34</a> <a href="chap35.html">35</a> <a href="chap36.html">36</a> <a href="chap37.html">37</a> <a href="chap38.html">38</a> <a href="chap39.html">39</a> <a href="chap40.html">40</a> <a href="chap41.html">41</a> <a href="chap42.html">42</a> <a href="chap43.html">43</a> <a href="chap44.html">44</a> <a href="chap45.html">45</a> <a href="chap46.html">46</a> <a href="chap47.html">47</a> <a href="chap48.html">48</a> <a href="chap49.html">49</a> <a href="chap50.html">50</a> <a href="chap51.html">51</a> <a href="chap52.html">52</a> <a href="chap53.html">53</a> <a href="chap54.html">54</a> <a href="chap55.html">55</a> <a href="chap56.html">56</a> <a href="chap57.html">57</a> <a href="chap58.html">58</a> <a href="chap59.html">59</a> <a href="chap60.html">60</a> <a href="chap61.html">61</a> <a href="chap62.html">62</a> <a href="chap63.html">63</a> <a href="chap64.html">64</a> <a href="chap65.html">65</a> <a href="chap66.html">66</a> <a href="chap67.html">67</a> <a href="chap68.html">68</a> <a href="chap69.html">69</a> <a href="chap70.html">70</a> <a href="chap71.html">71</a> <a href="chap72.html">72</a> <a href="chap73.html">73</a> <a href="chap74.html">74</a> <a href="chap75.html">75</a> <a href="chap76.html">76</a> <a href="chap77.html">77</a> <a href="chap78.html">78</a> <a href="chap79.html">79</a> <a href="chap80.html">80</a> <a href="chap81.html">81</a> <a href="chap82.html">82</a> <a href="chap83.html">83</a> <a href="chap84.html">84</a> <a href="chap85.html">85</a> <a href="chap86.html">86</a> <a href="chap87.html">87</a> <a href="chapBib.html">Bib</a> <a href="chapInd.html">Ind</a> </div>
<hr />
<p class="foot">generated by <a href="http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>
|