Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/GAP/doc/ref/   (Algebra von RWTH Aachen Version 4.15.1©)  Datei vom 18.9.2025 mit Größe 283 kB image not shown  

SSL chap71_mj.html   Interaktion und
PortierbarkeitHTML

 
 products/sources/formale Sprachen/GAP/doc/ref/chap71_mj.html


<?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>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (ref) - Chapter 71: Character Tables</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="chap71"  onload="jscontent()">


<div class="chlinktop"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chap15_mj.html">15</a>  <a href="chap16_mj.html">16</a>  <a href="chap17_mj.html">17</a>  <a href="chap18_mj.html">18</a>  <a href="chap19_mj.html">19</a>  <a href="chap20_mj.html">20</a>  <a href="chap21_mj.html">21</a>  <a href="chap22_mj.html">22</a>  <a href="chap23_mj.html">23</a>  <a href="chap24_mj.html">24</a>  <a href="chap25_mj.html">25</a>  <a href="chap26_mj.html">26</a>  <a href="chap27_mj.html">27</a>  <a href="chap28_mj.html">28</a>  <a href="chap29_mj.html">29</a>  <a href="chap30_mj.html">30</a>  <a href="chap31_mj.html">31</a>  <a href="chap32_mj.html">32</a>  <a href="chap33_mj.html">33</a>  <a href="chap34_mj.html">34</a>  <a href="chap35_mj.html">35</a>  <a href="chap36_mj.html">36</a>  <a href="chap37_mj.html">37</a>  <a href="chap38_mj.html">38</a>  <a href="chap39_mj.html">39</a>  <a href="chap40_mj.html">40</a>  <a href="chap41_mj.html">41</a>  <a href="chap42_mj.html">42</a>  <a href="chap43_mj.html">43</a>  <a href="chap44_mj.html">44</a>  <a href="chap45_mj.html">45</a>  <a href="chap46_mj.html">46</a>  <a href="chap47_mj.html">47</a>  <a href="chap48_mj.html">48</a>  <a href="chap49_mj.html">49</a>  <a href="chap50_mj.html">50</a>  <a href="chap51_mj.html">51</a>  <a href="chap52_mj.html">52</a>  <a href="chap53_mj.html">53</a>  <a href="chap54_mj.html">54</a>  <a href="chap55_mj.html">55</a>  <a href="chap56_mj.html">56</a>  <a href="chap57_mj.html">57</a>  <a href="chap58_mj.html">58</a>  <a href="chap59_mj.html">59</a>  <a href="chap60_mj.html">60</a>  <a href="chap61_mj.html">61</a>  <a href="chap62_mj.html">62</a>  <a href="chap63_mj.html">63</a>  <a href="chap64_mj.html">64</a>  <a href="chap65_mj.html">65</a>  <a href="chap66_mj.html">66</a>  <a href="chap67_mj.html">67</a>  <a href="chap68_mj.html">68</a>  <a href="chap69_mj.html">69</a>  <a href="chap70_mj.html">70</a>  <a href="chap71_mj.html">71</a>  <a href="chap72_mj.html">72</a>  <a href="chap73_mj.html">73</a>  <a href="chap74_mj.html">74</a>  <a href="chap75_mj.html">75</a>  <a href="chap76_mj.html">76</a>  <a href="chap77_mj.html">77</a>  <a href="chap78_mj.html">78</a>  <a href="chap79_mj.html">79</a>  <a href="chap80_mj.html">80</a>  <a href="chap81_mj.html">81</a>  <a href="chap82_mj.html">82</a>  <a href="chap83_mj.html">83</a>  <a href="chap84_mj.html">84</a>  <a href="chap85_mj.html">85</a>  <a href="chap86_mj.html">86</a>  <a href="chap87_mj.html">87</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<div class="chlinkprevnexttop"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap70_mj.html">[Previous Chapter]</a>    <a href="chap72_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap71.html">[MathJax off]</a></p>
<p><a id="X7B7A9EE881E01C10" name="X7B7A9EE881E01C10"></a></p>
<div class="ChapSects"><a href="chap71_mj.html#X7B7A9EE881E01C10">71 <span class="Heading">Character Tables</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7B9FCBBC7B95F91B">71.1 <span class="Heading">Some Remarks about Character Theory in <strong class="pkg">GAP</strong></span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7F8AB7CB7A46002F">71.2 <span class="Heading">History of Character Theory Stuff in GAP</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X8701174D86B586AF">71.3 <span class="Heading">Creating Character Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7FCA7A7A822BDA33">71.3-1 <span class="Heading">CharacterTable</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8476B25A79D7A7FC">71.3-2 <span class="Heading">BrauerTable</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X85DB8AE7786A2DB5">71.3-3 CharacterTableRegular</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7DBEF4BF87F10CD6">71.3-4 SupportedCharacterTableInfo</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8195BC057B1DFAD5">71.3-5 ConvertToCharacterTable</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X789FAC077AEF088A">71.4 <span class="Heading">Character Table Categories</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X82FF82C87CF82ADF">71.4-1 IsNearlyCharacterTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7C6F3D947E5188D1">71.4-2 InfoCharacterTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7FA867637EBB30F9">71.4-3 NearlyCharacterTablesFamily</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X829C4B6E83998F40">71.5 <span class="Heading">Conventions for Character Tables</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X793E0EBF84B07313">71.6 <span class="Heading">The Interface between Character Tables and Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7FF4826A82B667AF">71.6-1 UnderlyingGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X849A38F887F6EC86">71.6-2 ConjugacyClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X84DC12AA804C8085">71.6-3 IdentificationOfConjugacyClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8788C6C7829C1ADE">71.6-4 CharacterTableWithStoredGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X790019E87CFDDB98">71.6-5 CompatibleConjugacyClasses</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7CADCBC9824CB624">71.7 <span class="Heading">Operators for Character Tables</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7F9D58208241D35E">71.8 <span class="Heading">Attributes and Properties for Groups and Character Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X81FEFF768134481A">71.8-1 <span class="Heading">CharacterDegrees</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X873B3CC57E9A5492">71.8-2 <span class="Heading">Irr</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8549899A7DE206BA">71.8-3 <span class="Heading">LinearCharacters</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8011EEB684848039">71.8-4 <span class="Heading">OrdinaryCharacterTable</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X81EFD9FE804AC6EE">71.8-5 <span class="Heading">Group Operations Applicable to Character Tables</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7995A2AD83BC58A0">71.9 <span class="Heading">Attributes and Properties only for Character Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X86F455DA7A9C30EE">71.9-1 OrdersClassRepresentatives</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7CF7907F790A5DE6">71.9-2 SizesCentralizers</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7D9D2A45879A6A62">71.9-3 SizesConjugacyClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7C2753DE8094F4BA">71.9-4 AutomorphismsOfTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7F58A82F7D88000A">71.9-5 <span class="Heading">UnderlyingCharacteristic</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X804CFD597C795801">71.9-6 <span class="Heading">Class Names and Character Names</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8333E8038308947E">71.9-7 <span class="Heading">Class Parameters and Character Parameters</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X79C40EE97890202F">71.9-8 Identifier</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7932C35180C80953">71.9-9 InfoText</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7919E2897BE8234A">71.9-10 InverseClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X87FF547981456932">71.9-11 RealClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7ABB007C799F7C49">71.9-12 ClassOrbit</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7F863B15804E0835">71.9-13 ClassRoots</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X79CEBC3C7E0E63DF">71.10 <span class="Heading">Normal Subgroups Represented by Lists of Class Positions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X850C7D947B3DBFA2">71.10-1 ClassPositionsOfNormalSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8491DA0981D6F264">71.10-2 ClassPositionsOfAgemo</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7A6B1F8A84A495DC">71.10-3 ClassPositionsOfCentre</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7D53F60785AB22B1">71.10-4 ClassPositionsOfDirectProductDecompositions</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X79EE7BE17BD343D5">71.10-5 ClassPositionsOfDerivedSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X86ABB2E179D7F6E1">71.10-6 ClassPositionsOfElementaryAbelianSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7D2A55A584F955DB">71.10-7 ClassPositionsOfFittingSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X79AEFC4384769B72">71.10-8 ClassPositionsOfLowerCentralSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X86065D217A36CD9B">71.10-9 ClassPositionsOfUpperCentralSeries</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X877FDE8A84A9F52C">71.10-10 ClassPositionsOfSolvableRadical</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8392DD5B813250A4">71.10-11 ClassPositionsOfSupersolvableResiduum</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7BBE7EBA7A64A6B0">71.10-12 ClassPositionsOfPCore</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7FCF905D7FD7CC40">71.10-13 ClassPositionsOfNormalClosure</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X8733F0EA801785D4">71.11 <span class="Heading">Operations Concerning Blocks</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7ACB9306804F4E3F">71.11-1 PrimeBlocks</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7E80E35985275F35">71.11-2 SameBlock</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7FF4CE4A7A272F88">71.11-3 BlocksInfo</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X84701640811D2345">71.11-4 DecompositionMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X83EC921380AF9B3B">71.11-5 LaTeXStringDecompositionMatrix</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X873211618402ACF7">71.12 <span class="Heading">Other Operations for Character Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8441983C845F2176">71.12-1 Index</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8123650E817926FC">71.12-2 IsInternallyConsistent</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7A0CBD1884276882">71.12-3 IsPSolvableCharacterTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X82F523E8784B3752">71.12-4 IsClassFusionOfNormalSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7FD3D3047DE6381E">71.12-5 Indicator</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X83AE05BF8085B3C8">71.12-6 NrPolyhedralSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7E2EA9FE7D3062D3">71.12-7 ClassMultiplicationCoefficient</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7A19F56C7FD5EFC7">71.12-8 ClassStructureCharTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X809E67E57D4933B3">71.12-9 MatClassMultCoeffsCharTable</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7C1941F17BE9FC21">71.13 <span class="Heading">Printing Character Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7D45224B86D802E5">71.13-1 ViewObj</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X836554207C678D41">71.13-2 PrintObj</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7B41F36478C47364">71.13-3 Display</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X85E883A87A190AA4">71.13-4 DisplayOptions</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X79EC9603833AA2AB">71.13-5 PrintCharacterTable</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X79BC08C6846718D9">71.14 <span class="Heading">Computing the Irreducible Characters of a Group</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7ED39DB680BFEA96">71.14-1 IrrDixonSchneider</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7E81BCD686561DF0">71.14-2 IrrConlon</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7BF15729839203FC">71.14-3 IrrBaumClausen</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7F29C5447B5DC102">71.14-4 IrreducibleRepresentations</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8493ED7A86FFCB8A">71.14-5 IrreducibleRepresentationsDixon</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7E51AACD79CE0BC8">71.15 <span class="Heading">Representations Given by Modules</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X87E82F8085745523">71.15-1 IrreducibleModules</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7D0BD5337D1C069B">71.15-2 AbsolutelyIrreducibleModules</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7EB88B2E87AF5556">71.15-3 RegularModule</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X86CDA4007A5EF704">71.16 <span class="Heading">The Dixon-Schneider Algorithm</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7C083207868066C1">71.17 <span class="Heading">Advanced Methods for Dixon-Schneider Calculations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7C398F2680C8616B">71.17-1 DixonRecord</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7E33C03E7BDDC9B0">71.17-2 DixonInit</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X868476037907918F">71.17-3 DixontinI</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X87ABE0B081DAD476">71.17-4 DixonSplit</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7BFD4C1A821731FB">71.17-5 BestSplittingMatrix</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7C85B56C80BFA2E3">71.17-6 DxIncludeIrreducibles</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X87A5B5C77F7F348E">71.17-7 SplitCharacters</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8089009E7EA85BC8">71.17-8 IsDxLargeGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7C1153637E7D2133">71.18 <span class="Heading">Components of a Dixon Record</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X782B5E37848786BC">71.19 <span class="Heading">An Example of Advanced Dixon-Schneider Calculations</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7C38C5067941D496">71.20 <span class="Heading">Constructing Character Tables from Others</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7BE1572D7BBC6AC8">71.20-1 CharacterTableDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7C97CF727FBDFCAB">71.20-2 FactorsOfDirectProduct</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7C3A4E5283B240BE">71.20-3 CharacterTableFactorGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X85BE46F784B83938">71.20-4 CharacterTableIsoclinic</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X806E55A58397B11B">71.20-5 CharacterTableOfNormalSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X79B75C8582426BC5">71.20-6 CharacterTableWreathSymmetric</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X83E71B1F7FA70134">71.20-7 CharacterValueWreathSymmetric</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X816FCD5A805F9FE8">71.21 <span class="Heading">Sorted Character Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7D9C4A7F8086F671">71.21-1 CharacterTableWithSortedCharacters</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X87E3CF317D8E4EC7">71.21-2 SortedCharacters</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7E3DE0A47E62BE6B">71.21-3 CharacterTableWithSortedClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X82DCAAA882416E24">71.21-4 SortedCharacterTable</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8099FEDC7DE03AEE">71.21-5 ClassPermutation</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X7B0A669484470D09">71.22 <span class="Heading">Automorphisms and Equivalence of Character Tables</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X84353BB884AF0365">71.22-1 MatrixAutomorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8082DD827C673138">71.22-2 TableAutomorphisms</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7D721E3D7AA319F5">71.22-3 TransformingPermutations</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X849731AA7EC9FA73">71.22-4 TransformingPermutationsCharacterTables</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X8117D940835B0B47">71.22-5 FamiliesOfRows</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap71_mj.html#X81272CEE79F13E7B">71.23 <span class="Heading">Storing Normal Subgroup Information</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7E66174C7C7A8C0C">71.23-1 NormalSubgroupClassesInfo</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X7C2A87E085111090">71.23-2 ClassPositionsOfNormalSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X87E7391F7F92377C">71.23-3 NormalSubgroupClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap71_mj.html#X79D451F0808EB252">71.23-4 FactorGroupNormalSubgroupClasses</a></span>
</div></div>
</div>

<h3>71 <span class="Heading">Character Tables</span></h3>

<p>This chapter describes operations for <em>character tables of finite groups</em>.</p>

<p>Operations for <em>characters</em> (or, more general, <em>class functions</em>) are described in Chapter <a href="chap72_mj.html#X7C91D0D17850E564"><span class="RefLink">72</span></a>.</p>

<p>For a description of the <strong class="pkg">GAP</strong> Library of Character Tables, see the separate manual for the <strong class="pkg">GAP</strong> package <strong class="pkg">CTblLib</strong>.</p>

<p>Several examples in this chapter require the <strong class="pkg">GAP</strong> Character Table Library to be available. If it is not yet loaded then we load it now.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">LoadPackage( "ctbllib" );</span>
true
</pre></div>

<p><a id="X7B9FCBBC7B95F91B" name="X7B9FCBBC7B95F91B"></a></p>

<h4>71.1 <span class="Heading">Some Remarks about Character Theory in <strong class="pkg">GAP</strong></span></h4>

<p>It seems to be necessary to state some basic facts –and maybe warnings– at the beginning of the character theory package. This holds for people who are familiar with character theory because there is no global reference on computational character theory, although there are many papers on this topic, such as <a href="chapBib_mj.html#biBNPP84">[NPP84]</a> or <a href="chapBib_mj.html#biBLP91">[LP91]</a>. It holds, however, also for people who are familiar with <strong class="pkg">GAP</strong> because the general concept of domains (see Chapter <a href="chap12_mj.html#X7BAF69417BB925F6"><span class="RefLink">12.4</span></a>) plays no important role here –we will justify this later in this section.</p>

<p>Intuitively, <em>characters</em> (or more generally, <em>class functions</em>) of a finite group <span class="SimpleMath">\(G\)</span> can be thought of as certain mappings defined on <span class="SimpleMath">\(G\)</span>, with values in the complex number field; the set of all characters of <span class="SimpleMath">\(G\)</span> forms a semiring, with both addition and multiplication defined pointwise, which is naturally embedded into the ring of <em>generalized</em> (or <em>virtual</em>) <em>characters</em> in the natural way. A <span class="SimpleMath">\(ℤ\)</span>-basis of this ring, and also a vector space basis of the complex vector space of class functions of <span class="SimpleMath">\(G\)</span>, is given by the irreducible characters of <span class="SimpleMath">\(G\)</span>.</p>

<p>At this stage one could ask where there is a problem, since all these algebraic structures are supported by <strong class="pkg">GAP</strong>. But in practice, these structures are of minor importance, compared to individual characters and the <em>character tables</em> themselves (which are not domains in the sense of <strong class="pkg">GAP</strong>).</p>

<p>For computations with characters of a finite group <span class="SimpleMath">\(G\)</span> with <span class="SimpleMath">\(n\)</span> conjugacy classes, we fix an ordering of the classes, and then identify each class with its position according to this ordering. Each character of <span class="SimpleMath">\(G\)</span> can be represented by a list of length <span class="SimpleMath">\(n\)</span> in which the character value for elements of the <span class="SimpleMath">\(i\)</span>-th class is stored at the <span class="SimpleMath">\(i\)</span>-th position. Note that we need not know the conjugacy classes of <span class="SimpleMath">\(G\)</span> physically, even our knowledge of <span class="SimpleMath">\(G\)</span> may be implicit in the sense that, e.g., we know how many classes of involutions <span class="SimpleMath">\(G\)</span> has, and which length these classes have, but we never have seen an element of <span class="SimpleMath">\(G\)</span>, or a presentation or representation of <span class="SimpleMath">\(G\)</span>. This allows us to work with the character tables of very large groups, e.g., of the so-called monster, where <strong class="pkg">GAP</strong> has (currently) no chance to deal with the group.</p>

<p>As a consequence, also other information involving characters is given implicitly. For example, we can talk about the kernel of a character not as a group but as a list of classes (more exactly: a list of their positions according to the chosen ordering of classes) forming this kernel; we can deduce the group order, the contained cyclic subgroups and so on, but we do not get the group itself.</p>

<p>So typical calculations with characters involve loops over lists of character values. For example, the scalar product of two characters <span class="SimpleMath">\(\chi\)</span>, <span class="SimpleMath">\(\psi\)</span> of <span class="SimpleMath">\(G\)</span> given by</p>

<p class="center">\[
[ \chi, \psi ] =
\left( \sum_{{g \in G}} \chi(g) \psi(g^{{-1}}) \right) / |G|
\]</p>

<p>can be written as</p>


<div class="example"><pre>
Sum( [ 1 .. n ], i -> SizesConjugacyClasses( t )[i] * chi[i]
                          * ComplexConjugate( psi[i] ) ) / Size( t );
</pre></div>

<p>where <code class="code">t</code> is the character table of <span class="SimpleMath">\(G\)</span>, and <code class="code">chi</code>, <code class="code">psi</code> are the lists of values of <span class="SimpleMath">\(\chi\)</span>, <span class="SimpleMath">\(\psi\)</span>, respectively.</p>

<p>It is one of the advantages of character theory that after one has translated a problem concerning groups into a problem concerning only characters, the necessary calculations are mostly simple. For example, one can often prove that a group is a Galois group over the rationals using calculations with structure constants that can be computed from the character table, and information about (the character tables of) maximal subgroups. When one deals with such questions, the translation back to groups is just an interpretation by the user, it does not take place in <strong class="pkg">GAP</strong>.</p>

<p><strong class="pkg">GAP</strong> uses character <em>tables</em> to store information such as class lengths, element orders, the irreducible characters of <span class="SimpleMath">\(G\)</spanetc. in a consistent way; in the example above, we have seen that <code class="func">SizesConjugacyClasses</code> (<a href="chap71_mj.html#X7D9D2A45879A6A62"><span class="RefLink">71.9-3</span></a>) returns the list of class lengths of its argument. Note that the values of these attributes rely on the chosen ordering of conjugacy classes, a character table is not determined by something similar to generators of groups or rings in <strong class="pkg">GAP</strong> where knowledge could in principle be recovered from the generators but is stored mainly for the sake of efficiency.</p>

<p>Note that the character table of a group <span class="SimpleMath">\(G\)</span> in <strong class="pkg">GAP</strong> must <em>not</em> be mixed up with the list of complex irreducible characters of <span class="SimpleMath">\(G\)</span>. The irreducible characters are stored in a character table via the attribute <code class="func">Irr</code> (<a href="chap71_mj.html#X873B3CC57E9A5492"><span class="RefLink">71.8-2</span></a>).</p>

<p>Two further important instances of information that depends on the ordering of conjugacy classes are <em>power maps</em> and <em>fusion maps</em>. Both are represented as lists of integers in <strong class="pkg">GAP</strong>. The <span class="SimpleMath">\(k\)</span>-th power map maps each class to the class of <span class="SimpleMath">\(k\)</span>-th powers of its elements, the corresponding list contains at each position the position of the image. A class fusion map between the classes of a subgroup <span class="SimpleMath">\(H\)</span> of <span class="SimpleMath">\(G\)</span> and the classes of <span class="SimpleMath">\(G\)</span> maps each class <span class="SimpleMath">\(c\)</span> of <span class="SimpleMath">\(H\)</span> to that class of <span class="SimpleMath">\(G\)</span> that contains <span class="SimpleMath">\(c\)</span>, the corresponding list contains again the positions of image classes; if we know only the character tables of <span class="SimpleMath">\(H\)</span> and <span class="SimpleMath">\(G\)</span> but not the groups themselves, this means with respect to a fixed embedding of <span class="SimpleMath">\(H\)</span> into <span class="SimpleMath">\(G\)</span>. More about power maps and fusion maps can be found in Chapter <a href="chap73_mj.html#X7DF1ACDE7E9C6294"><span class="RefLink">73</span></a>.</p>

<p>So class functions, power maps, and fusion maps are represented by lists in <strong class="pkg">GAP</strong>. If they are plain lists then they are regarded as class functions etc. of an appropriate character table when they are passed to <strong class="pkg">GAP</strong> functions that expect class functions etc. For example, a list with all entries equal to 1 is regarded as the trivial character if it is passed to a function that expects a character. Note that this approach requires the character table as an argument for such a function.</p>

<p>One can construct class function objects that store their underlying character table and other attribute values (see Chapter <a href="chap72_mj.html#X7C91D0D17850E564"><span class="RefLink">72</span></a>). This allows one to omit the character table argument in many functions, and it allows one to use infix operations for tensoring or inducing class functions.</p>

<p><a id="X7F8AB7CB7A46002F" name="X7F8AB7CB7A46002F"></a></p>

<h4>71.2 <span class="Heading">History of Character Theory Stuff in GAP</span></h4>

<p><strong class="pkg">GAP</strong> provides functions for dealing with group characters since the version <strong class="pkg">GAP</strong> 3.1, which was released in March 1992. The reason for adding this branch of mathematics to the topics of <strong class="pkg">GAP</strong> was (apart from the usefulness of character theoretic computations in general) the insight that <strong class="pkg">GAP</strong> provides an ideal environment for developing the algorithms needed. In particular, it had been decided at Lehrstuhl D für Mathematik that the <strong class="pkg">CAS</strong> system (a standalone Fortran program together with a database of character tables, see <a href="chapBib_mj.html#biBNPP84">[NPP84]</a>) should not be developed further and the functionality of <strong class="pkg">CAS</strong> should be made available in <strong class="pkg">GAP</strong>. The background was that extending <strong class="pkg">CAS</strong> (by new Fortran code) had turned out to be much less flexible than writing analogous <strong class="pkg">GAP</strong> library code.</p>

<p>For integrating the existing character theory algorithms, <strong class="pkg">GAP</strong>'s memory management and long integer arithmetic were useful as well as the list handling –it is an important feature of character theoretic methods that questions about groups are translated into manipulations of lists; on the other hand, the datatype of cyclotomics (see Chapter Cyclotomics (18.1-2)) was added to the GAP kernel because of the character theory algorithms. For developing further code, also other areas of GAP's library became interesting, such as permutation groups, finite fields, and polynomials.</p>

<p>The development of character theory code for <strong class="pkg">GAP</strong> has been supported by several DFG grants, in particular the project <q>Representation Theory of Finite Groups and Finite Dimensional Algebras</q> (until 1991), and the Schwerpunkt <q>Algorithmische Zahlentheorie und Algebra</q> (from 1991 until 1997). Besides that, several Diploma theses at Lehrstuhl D were concerned with the development and/or implementation of algorithms dealing with characters in <strong class="pkg">GAP</strong>.</p>

<p>The major contributions can be listed as follows.</p>


<ul>
<li><p>The arithmetic for the cyclotomics data type, following <a href="chapBib_mj.html#biBZum89">[Zum89]</a>, was first implemented by Marco van Meegen; an alternative approach was studied in the diploma thesis of Michael Scherner (see <a href="chapBib_mj.html#biBScherner92">[Sch92]</a>) but was not efficient enough; later Martin Schönert replaced the implementation by a better one.</p>

</li>
<li><p>The basic routines for characters and character tables were written by Thomas Breuer and Götz Pfeiffer.</p>

</li>
<li><p>The lattice related functions, such as <code class="func">LLL</code> (<a href="chap72_mj.html#X85B360C085B360C0"><span class="RefLink">72.10-4</span></a>), <code class="func">OrthogonalEmbeddings</code> (<a href="chap25_mj.html#X842280C2808FF05D"><span class="RefLink">25.6-1</span></a>), and <code class="func">DnLattice</code> (<a href="chap72_mj.html#X85D510DC873A99B4"><span class="RefLink">72.10-8</span></a>), were implemented by Ansgar Kaup (see <a href="chapBib_mj.html#biBKaup92">[Kau92]</a>).</p>

</li>
<li><p>Functions for computing possible class fusions, possible power maps, and table automorphisms were written by Thomas Breuer (see <a href="chapBib_mj.html#biBBre91">[Bre91]</a>).</p>

</li>
<li><p>Functions for computing possible permutation characters were written by Thomas Breuer (see <a href="chapBib_mj.html#biBBre91">[Bre91]</a>) and Götz Pfeiffer (see <a href="chapBib_mj.html#biBPfe91">[Pfe91]</a>).</p>

</li>
<li><p>Functions for computing character tables from groups were written by Alexander Hulpke (Dixon-Schneider algorithm, see <a href="chapBib_mj.html#biBHulpke93">[Hul93]</a>) and Hans Ulrich Besche (Baum algorithm and Conlon algorithm, see <a href="chapBib_mj.html#biBBesche92">[Bes92]</a>).</p>

</li>
<li><p>Functions for dealing with Clifford matrices were written by Ute Schiffer (see <a href="chapBib_mj.html#biBSchiffer94">[Sch94]</a>).</p>

</li>
<li><p>Functions for monomiality questions were written by Thomas Breuer and Erzsébet Horváth.</p>

</li>
</ul>
<p>Since then, the code has been maintained and extended further by Alexander Hulpke (code related to his implementation of the Dixon-Schneider algorithm) and Thomas Breuer.</p>

<p>Currently <strong class="pkg">GAP</strong> does not provide special functionality for computing Brauer character tables, but there is an interface to the <strong class="pkg">MOC</strong> system (see <a href="chapBib_mj.html#biBHJLP92">[HJLP]</a>), and the <strong class="pkg">GAP</strong> Character Table Library contains many known Brauer character tables.</p>

<p><a id="X8701174D86B586AF" name="X8701174D86B586AF"></a></p>

<h4>71.3 <span class="Heading">Creating Character Tables</span></h4>

<p>There are in general five different ways to get a character table in <strong class="pkg">GAP</strong>. You can</p>

<ol>
<li><p>compute the table from a group,</p>

</li>
<li><p>read a file that contains the table data,</p>

</li>
<li><p>construct the table using generic formulae,</p>

</li>
<li><p>derive it from known character tables, or</p>

</li>
<li><p>combine partial information about conjugacy classes, power maps of the group in question, and about (character tables of) some subgroups and supergroups.</p>

</li>
</ol>
<p>In 1., the computation of the irreducible characters is the hardest part; the different algorithms available for this are described in <a href="chap71_mj.html#X79BC08C6846718D9"><span class="RefLink">71.14</span></a>. Possibility 2. is used for the character tables in the <strong class="pkg">GAP</strong> Character Table Library, see the manual of this library. Generic character tables –as addressed by 3.– are described in <a href="../../pkg/ctbllib/doc/chap4_mj.html#X81E3F9A384365282"><span class="RefLink">CTblLib: Generic Character Tables</span></a>. Several occurrences of 4. are described in <a href="chap71_mj.html#X7C38C5067941D496"><span class="RefLink">71.20</span></a>. The last of the above possibilities <em>is currently not supported and will be described in a chapter of its own when it becomes available</em>.</p>

<p>The operation <code class="func">CharacterTable</code> (<a href="chap71_mj.html#X7FCA7A7A822BDA33"><span class="RefLink">71.3-1</span></a>) can be used for the cases 1. to 3.</p>

<p><a id="X7FCA7A7A822BDA33" name="X7FCA7A7A822BDA33"></a></p>

<h5>71.3-1 <span class="Heading">CharacterTable</span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CharacterTable</code>( <var class="Arg">G</var>[, <var class="Arg">p</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">‣ CharacterTable</code>( <var class="Arg">ordtbl</var>, <var class="Arg">p</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">‣ CharacterTable</code>( <var class="Arg">name</var>[, <var class="Arg">param</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Called with a group <var class="Arg">G</var>, <code class="func">CharacterTable</code> calls the attribute <code class="func">OrdinaryCharacterTable</code> (<a href="chap71_mj.html#X8011EEB684848039"><span class="RefLink">71.8-4</span></a>). Called with first argument a group <var class="Arg">G</var> or an ordinary character table <var class="Arg">ordtbl</var>, and second argument a prime <var class="Arg">p</var>, <code class="func">CharacterTable</code> calls the operation <code class="func">BrauerTable</code> (<a href="chap71_mj.html#X8476B25A79D7A7FC"><span class="RefLink">71.3-2</span></a>).</p>

<p>Called with a string <var class="Arg">name</var> and perhaps optional parameters <var class="Arg">param</var>, <code class="func">CharacterTable</code> tries to access a character table from the <strong class="pkg">GAP</strong> Character Table Library. See the manual of the <strong class="pkg">GAP</strong> package <strong class="pkg">CTblLib</strong> for an overview of admissible arguments. An error is signalled if this <strong class="pkg">GAP</strong> package is not loaded in this case.</p>

<p>Probably the most interesting information about the character table is its list of irreducibles, which can be accessed as the value of the attribute <code class="func">Irr</code> (<a href="chap71_mj.html#X873B3CC57E9A5492"><span class="RefLink">71.8-2</span></a>). If the argument of <code class="func">CharacterTable</code> is a string <var class="Arg">name</var> then the irreducibles are just read from the library file, therefore the returned table stores them already. However, if <code class="func">CharacterTable</code> is called with a group <var class="Arg">G</var> or with an ordinary character table <var class="Arg">ordtbl</var>, the irreducible characters are <em>not</em> computed by <code class="func">CharacterTable</code>. They are only computed when the <code class="func">Irr</code> (<a href="chap71_mj.html#X873B3CC57E9A5492"><span class="RefLink">71.8-2</span></a>) value is accessed for the first time, for example when <code class="func">Display</code> (<a href="chap6_mj.html#X83A5C59278E13248"><span class="RefLink">6.3-6</span></a>) is called for the table (see <a href="chap71_mj.html#X7C1941F17BE9FC21"><span class="RefLink">71.13</span></a>). This means for example that <code class="func">CharacterTable</code> returns its result very quickly, and the first call of <code class="func">Display</code> (<a href="chap6_mj.html#X83A5C59278E13248"><span class="RefLink">6.3-6</span></a>) for this table may take some time because the irreducible characters must be computed at that time before they can be displayed together with other information stored on the character table. The value of the filter <code class="code">HasIrr</code> indicates whether the irreducible characters have been computed already.</p>

<p>The reason why <code class="func">CharacterTable</code> does not compute the irreducible characters is that there are situations where one only needs the <q>table head</q>, that is, the information about class lengths, power maps etc., but not the irreducibles. For example, if one wants to inspect permutation characters of a group then all one has to do is to induce the trivial characters of subgroups one is interested in; for that, only class lengths and the class fusion are needed. Or if one wants to compute the Molien series (see <code class="func">MolienSeries</code> (<a href="chap72_mj.html#X7D7F94D2820B1177"><span class="RefLink">72.12-1</span></a>)) for a given complex matrix group, the irreducible characters of this group are in general of no interest.</p>

<p>For details about different algorithms to compute the irreducible characters, see <a href="chap71_mj.html#X79BC08C6846718D9"><span class="RefLink">71.14</span></a>.</p>

<p>If the group <var class="Arg">G</var> is given as an argument, <code class="func">CharacterTable</code> accesses the conjugacy classes of <var class="Arg">G</var> and therefore causes that these classes are computed if they were not yet stored (see <a href="chap71_mj.html#X793E0EBF84B07313"><span class="RefLink">71.6</span></a>).</p>

<p><a id="X8476B25A79D7A7FC" name="X8476B25A79D7A7FC"></a></p>

<h5>71.3-2 <span class="Heading">BrauerTable</span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ BrauerTable</code>( <var class="Arg">ordtbl</var>, <var class="Arg">p</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">‣ BrauerTable</code>( <var class="Arg">G</var>, <var class="Arg">p</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">‣ BrauerTableOp</code>( <var class="Arg">ordtbl</var>, <var class="Arg">p</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">‣ ComputedBrauerTables</code>( <var class="Arg">ordtbl</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Called with an ordinary character table <var class="Arg">ordtbl</var> or a group <var class="Arg">G</var>, <code class="func">BrauerTable</code> returns its <var class="Arg">p</var>-modular character table if <strong class="pkg">GAP</strong> can compute this table, and <code class="keyw">fail</code> otherwise.</p>

<p>The <var class="Arg">p</var>-modular table can be computed in the following cases.</p>


<ul>
<li><p>The group is <var class="Arg">p</var>-solvable (see <code class="func">IsPSolvable</code> (<a href="chap39_mj.html#X81130F9A7CFCF6BF"><span class="RefLink">39.15-26</span></a>), apply the Fong-Swan Theorem);</p>

</li>
<li><p>the Sylow <var class="Arg">p</var>-subgroup of <var class="Arg">G</var> is cyclic, and all <var class="Arg">p</var>-modular Brauer characters of <var class="Arg">G</var> lift to ordinary characters (note that this situation can be detected from the ordinary character table of <var class="Arg">G</var>);</p>

</li>
<li><p>the table <var class="Arg">ordtbl</var> stores information how it was constructed from other tables (as a direct product or as an isoclinic variant, for example), and the Brauer tables of the source tables can be computed;</p>

</li>
<li><p><var class="Arg">ordtbl</var> is a table from the <strong class="pkg">GAP</strong> character table library for which also the <var class="Arg">p</var>-modular table is contained in the table library.</p>

</li>
</ul>
<p>The default method for a group and a prime delegates to <code class="func">BrauerTable</code> for the ordinary character table of this group. The default method for <var class="Arg">ordtbl</varuses the attribute <code class="func">ComputedBrauerTables</code> for storing the computed Brauer table at position <var class="Arg">p</var>, and calls the operation <code class="func">BrauerTableOp</code> for computing values that are not yet known.</p>

<p>So if one wants to install a new method for computing Brauer tables then it is sufficient to install it for <code class="func">BrauerTableOp</code>.</p>

<p>The <code class="keyw">mod</code> operator for a character table and a prime (see <a href="chap71_mj.html#X7CADCBC9824CB624"><span class="RefLink">71.7</span></a>) delegates to <code class="func">BrauerTable</code>.</p>

<p><a id="X85DB8AE7786A2DB5" name="X85DB8AE7786A2DB5"></a></p>

<h5>71.3-3 CharacterTableRegular</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CharacterTableRegular</code>( <var class="Arg">tbl</var>, <var class="Arg">p</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For an ordinary character table <var class="Arg">tbl</var> and a prime integer <var class="Arg">p</var>, <code class="func">CharacterTableRegular</code> returns the <q>table head</q> of the <var class="Arg">p</var>-modular Brauer character table of <var class="Arg">tbl</var>. This is the restriction of <var class="Arg">tbl</var> to its <var class="Arg">p</var>-regular classes, like the return value of <code class="func">BrauerTable</code> (<a href="chap71_mj.html#X8476B25A79D7A7FC"><span class="RefLink">71.3-2</span></a>), but without the irreducible Brauer characters. (In general, these characters are hard to compute, and <code class="func">BrauerTable</code> (<a href="chap71_mj.html#X8476B25A79D7A7FC"><span class="RefLink">71.3-2</span></a>) may return <code class="keyw">fail</code> for the given arguments, for example if <var class="Arg">tbl</var> is a table from the <strong class="pkg">GAP</strong> character table library.)</p>

<p>The returned table head can be used to create <var class="Arg">p</var>-modular Brauer characters, by restricting ordinary characters, for example when one is interested in approximations of the (unknown) irreducible Brauer characters.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:= SymmetricGroup( 4 );</span>
Sym( [ 1 .. 4 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">tbl:= CharacterTable( g );;  HasIrr( tbl );</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">tblmod2:= CharacterTable( tbl, 2 );</span>
BrauerTable( Sym( [ 1 .. 4 ] ), 2 )
<span class="GAPprompt">gap></span> <span class="GAPinput">tblmod2 = CharacterTable( tbl, 2 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">tblmod2 = BrauerTable( tbl, 2 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">tblmod2 = BrauerTable( g, 2 );</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">libtbl:= CharacterTable( "M" );</span>
CharacterTable( "M" )
<span class="GAPprompt">gap></span> <span class="GAPinput">CharacterTableRegular( libtbl, 2 );</span>
BrauerTable( "M", 2 )
<span class="GAPprompt">gap></span> <span class="GAPinput">BrauerTable( libtbl, 2 );</span>
fail
<span class="GAPprompt">gap></span> <span class="GAPinput">CharacterTable( "Symmetric", 4 );</span>
CharacterTable( "Sym(4)" )
<span class="GAPprompt">gap></span> <span class="GAPinput">ComputedBrauerTables( tbl );</span>
[ , BrauerTable( Sym( [ 1 .. 4 ] ), 2 ) ]
</pre></div>

<p><a id="X7DBEF4BF87F10CD6" name="X7DBEF4BF87F10CD6"></a></p>

<h5>71.3-4 SupportedCharacterTableInfo</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SupportedCharacterTableInfo</code></td><td class="tdright">( global variable )</td></tr></table></div>
<p><code class="func">SupportedCharacterTableInfo</code> is a list that contains at position <span class="SimpleMath">\(3i-2\)</span> an attribute getter function, at position <span class="SimpleMath">\(3i-1\)</span> the name of this attribute, and at position <span class="SimpleMath">\(3i\)</span> a list containing a subset of <code class="code">[ "character""class""mutable" ]</code>, depending on whether the attribute value relies on the ordering of characters or classes, or whether the attribute value is a mutable list or record.</p>

<p>When (ordinary or Brauer) character table objects are created from records, using <code class="func">ConvertToCharacterTable</code> (<a href="chap71_mj.html#X8195BC057B1DFAD5"><span class="RefLink">71.3-5</span></a>), <code class="func">SupportedCharacterTableInfo</code> specifies those record components that shall be used as attribute values; other record components are <em>not</em> be regarded as attribute values in the conversion process.</p>

<p>New attributes and properties can be notified to <code class="func">SupportedCharacterTableInfo</code> by creating them with <code class="code">DeclareAttributeSuppCT</code> and <code class="code">DeclarePropertySuppCT</code> instead of <code class="func">DeclareAttribute</code(<a href="chap13_mj.html#X7A00FC8A7A677A56"><span class="RefLink">13.5-4</span></a>) and <code class="func">DeclareProperty</code> (<a href="chap13_mj.html#X7F4602F082682A04"><span class="RefLink">13.7-5</span></a>).</p>

<p><a id="X8195BC057B1DFAD5" name="X8195BC057B1DFAD5"></a></p>

<h5>71.3-5 ConvertToCharacterTable</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConvertToCharacterTable</code>( <var class="Arg">record</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">‣ ConvertToCharacterTableNC</code>( <var class="Arg">record</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Let <var class="Arg">record</var> be a record. <code class="func">ConvertToCharacterTable</code> converts <var class="Arg">record</var> into a component object (see <a href="chap79_mj.html#X866E223484649E5A"><span class="RefLink">79.2</span></a>) representing a character table. The values of those components of <var class="Arg">record</var> whose names occur in <code class="func">SupportedCharacterTableInfo</code> (<a href="chap71_mj.html#X7DBEF4BF87F10CD6"><span class="RefLink">71.3-4</span></a>) correspond to attribute values of the returned character table. All other components of the record simply become components of the character table object.</p>

<p>If inconsistencies in <var class="Arg">record</var> are detected, <code class="keyw">fail</code> is returned. <var class="Arg">record</var> must have the component <code class="code">UnderlyingCharacteristic</code> bound (cf. <code class="func">UnderlyingCharacteristic</code> (<a href="chap71_mj.html#X7F58A82F7D88000A"><span class="RefLink">71.9-5</span></a>)), since this decides about whether the returned character table lies in <code class="func">IsOrdinaryTable</code> (<a href="chap71_mj.html#X82FF82C87CF82ADF"><span class="RefLink">71.4-1</span></a>) or in <code class="func">IsBrauerTable</code> (<a href="chap71_mj.html#X82FF82C87CF82ADF"><span class="RefLink">71.4-1</span></a>).</p>

<p><code class="func">ConvertToCharacterTableNC</code> does the same except that all checks of <var class="Arg">record</var> are omitted.</p>

<p>An example of a conversion from a record to a character table object can be found in Section <code class="func">PrintCharacterTable</code> (<a href="chap71_mj.html#X79EC9603833AA2AB"><span class="RefLink">71.13-5</span></a>).</p>

<p><a id="X789FAC077AEF088A" name="X789FAC077AEF088A"></a></p>

<h4>71.4 <span class="Heading">Character Table Categories</span></h4>

<p><a id="X82FF82C87CF82ADF" name="X82FF82C87CF82ADF"></a></p>

<h5>71.4-1 IsNearlyCharacterTable</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNearlyCharacterTable</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCharacterTable</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsOrdinaryTable</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsBrauerTable</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCharacterTableInProgress</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>Every <q>character table like object</q> in <strong class="pkg">GAP</strong> lies in the category <code class="func">IsNearlyCharacterTable</code>. There are four important subcategories, namely the <em>ordinary</em> tables in <code class="func">IsOrdinaryTable</code>, the <em>Brauer</em> tables in <code class="func">IsBrauerTable</code>, the union of these two in <code class="func">IsCharacterTable</code>, and the <em>incomplete ordinary</em> tables in <code class="func">IsCharacterTableInProgress</code>.</p>

<p>We want to distinguish ordinary and Brauer tables because a Brauer table may delegate tasks to the ordinary table of the same group, for example the computation of power maps. A Brauer table is constructed from an ordinary table and stores this table upon construction (see <code class="func">OrdinaryCharacterTable</code> (<a href="chap71_mj.html#X8011EEB684848039"><span class="RefLink">71.8-4</span></a>)).</p>

<p>Furthermore, <code class="func">IsOrdinaryTable</code> and <code class="func">IsBrauerTable</code> denote character tables that provide enough information to compute all power maps and irreducible characters (and in the case of Brauer tables to get the ordinary table), for example because the underlying group (see <code class="func">UnderlyingGroup</code> (<a href="chap71_mj.html#X7FF4826A82B667AF"><span class="RefLink">71.6-1</span></a>)) is known or because the table is a library table (see the manual of the <strong class="pkg">GAP</strong> Character Table Library). We want to distinguish these tables from partially known ordinary tables that cannot be asked for all power maps or all irreducible characters.</p>

<p>The character table objects in <code class="func">IsCharacterTable</code> are always immutable (see <a href="chap12_mj.html#X7F0C119682196D65"><span class="RefLink">12.6</span></a>). This means mainly that the ordering of conjugacy classes used for the various attributes of the character table cannot be changed; see <a href="chap71_mj.html#X816FCD5A805F9FE8"><span class="RefLink">71.21</span></a> for how to compute a character table with a different ordering of classes.</p>

<p>The <strong class="pkg">GAP</strong> objects in <code class="func">IsCharacterTableInProgress</code> represent incomplete ordinary character tables. This means that not all irreducible characters, not all power maps are known, and perhaps even the number of classes and the centralizer orders are known. Such tables occur when the character table of a group <span class="SimpleMath">\(G\)</span> is constructed using character tables of related groups and information about <span class="SimpleMath">\(G\)</span> but for example without explicitly computing the conjugacy classes of <span class="SimpleMath">\(G\)</span>. An object in <code class="func">IsCharacterTableInProgress</code> is first of all <em>mutable</em>, so <em>nothing is stored automatically</em> on such a table, since otherwise one has no control of side-effects when a hypothesis is changed. Operations for such tables may return more general values than for other tables, for example class functions may contain unknowns (see Chapter <a href="chap74_mj.html#X7C1FAB6280A02CCB"><span class="RefLink">74</span></a>) or lists of possible values in certain positions, the same may happen also for power maps and class fusions (see <a href="chap73_mj.html#X7F18772E86F06179"><span class="RefLink">73.5</span></a>). <em>Incomplete tables in this sense are currently not supported and will be described in a chapter of their own when they become available.</em> Note that the term <q>incomplete table</q> shall express that <strong class="pkg">GAP</strong> cannot compute certain values such as irreducible characters or power maps. A table with access to its group is therefore always complete, also if its irreducible characters are not yet stored.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:= SymmetricGroup( 4 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">tbl:= CharacterTable( g );  modtbl:= tbl mod 2;</span>
CharacterTable( Sym( [ 1 .. 4 ] ) )
BrauerTable( Sym( [ 1 .. 4 ] ), 2 )
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCharacterTable( tbl );  IsCharacterTable( modtbl );</span>
true
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsBrauerTable( modtbl );  IsBrauerTable( tbl );</span>
true
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsOrdinaryTable( tbl );  IsOrdinaryTable( modtbl );</span>
true
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCharacterTable( g );  IsCharacterTable( Irr( g ) );</span>
false
false
</pre></div>

<p><a id="X7C6F3D947E5188D1" name="X7C6F3D947E5188D1"></a></p>

<h5>71.4-2 InfoCharacterTable</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InfoCharacterTable</code></td><td class="tdright">( info class )</td></tr></table></div>
<p>is the info class (see <a href="chap7_mj.html#X7A9C902479CB6F7C"><span class="RefLink">7.4</span></a>) for computations with character tables.</p>

<p><a id="X7FA867637EBB30F9" name="X7FA867637EBB30F9"></a></p>

<h5>71.4-3 NearlyCharacterTablesFamily</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ NearlyCharacterTablesFamily</code></td><td class="tdright">( family )</td></tr></table></div>
<p>Every character table like object lies in this family (see <a href="chap13_mj.html#X846063757EC05986"><span class="RefLink">13.1</span></a>).</p>

<p><a id="X829C4B6E83998F40" name="X829C4B6E83998F40"></a></p>

<h4>71.5 <span class="Heading">Conventions for Character Tables</span></h4>

<p>The following few conventions should be noted.</p>


<ul>
<li><p>The class of the <em>identity element</em> is expected to be the first one; thus the degree of a character is the character value at position <span class="SimpleMath">\(1\)</span>.</p>

</li>
<li><p>The <em>trivial character</em> of a character table need not be the first in the list of irreducibles.</p>

</li>
<li><p>Most functions that take a character table as an argument and work with characters expect these characters as an argument, too. For some functions, the list of irreducible characters serves as the default, i.e, the value of the attribute <code class="func">Irr</code> (<a href="chap71_mj.html#X873B3CC57E9A5492"><span class="RefLink">71.8-2</span></a>); in these cases, the <code class="func">Irr</code> (<a href="chap71_mj.html#X873B3CC57E9A5492"><span class="RefLink">71.8-2</span></a>) value is automatically computed if it was not yet known.</p>

</li>
--> --------------------

--> maximum size reached

--> --------------------

100%


¤ Dauer der Verarbeitung: 0.51 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.