|
|
|
|
SSL chap39_mj.html
Interaktion und PortierbarkeitHTML
|
|
| products/Sources/formale Sprachen/GAP/doc/ref/chap39_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 39: Groups</ 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= "chap39" 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="chap38_mj.html">[Previous Chapter]</a> <a href="chap40_mj.html">[Next Chapter]</a> </div>
<p id="mathjaxlink" class="pcenter"><a href="chap39.html">[MathJax off]</a></p>
<p><a id="X8716635F7951801B" name="X8716635F7951801B"></a></p>
<div class="ChapSects"><a href="chap39_mj.html#X8716635F7951801B">39 <span class="Heading">Groups</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X822370B47DEA37B1">39.1 <span class="Heading">Group Elements</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X86A022F9800121F8">39.2 <span class="Heading">Creating Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D7B075385435151">39.2-1 <span class="Heading">Group</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7F81960287F3E32A">39.2-2 GroupByGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8589EF9C7B658B94">39.2-3 GroupWithGenerators</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X79C44528864044C5">39.2-4 GeneratorsOfGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A0747F17B50D967">39.2-5 AsGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E4143A08040BB47">39.2-6 ConjugateGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7939B3177BBD61E4">39.2-7 IsGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X845874BA82E1A11F">39.2-8 InfoGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7BA181CA81D785BB">39.3 <span class="Heading">Subgroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C82AA387A42DCA0">39.3-1 Subgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X842AD37E79CE953E">39.3-2 <span class="Heading">Index (<strong class="pkg">GAP</strong> operation)</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8014135884DCC53E">39.3-3 IndexInWholeGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7904AC9D7E9A3BB7">39.3-4 AsSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7839D8927E778334">39.3-5 IsSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X838186F9836F678C">39.3-6 IsNormal</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8390B5117A10CC52">39.3-7 IsCharacteristicSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X84F5464983655590">39.3-8 ConjugateSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D9990EB837075A4">39.3-9 ConjugateSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82ABF80780CC27AF">39.3-10 IsSubnormal</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X829766158665FB54">39.3-11 SubgroupByProperty</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E95101F80583E77">39.3-12 SubgroupShell</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7B855B0485C3C6C5">39.4 <span class="Heading">Closures of (Sub)groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D13FC1F8576FFD8">39.4-1 ClosureGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81A20A397C308483">39.4-2 ClosureGroupAddElm</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82F59F6680D1B0D5">39.4-3 ClosureGroupDefault</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A7AF14A8052F055">39.4-4 ClosureSubgroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7E19F92284F6684E">39.5 <span class="Heading">Expressing Group Elements as Words in Generators</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7FE8A3B08458A1BF">39.5-1 EpimorphismFromFreeGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8357294D7B164106">39.5-2 Factorization</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X871508DD808EB487">39.5-3 GrowthFunctionOfGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X87BF1B887C91CA2E">39.6 <span class="Heading">Structure Descriptions</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8199B74B84446971">39.6-1 StructureDescription</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X81002AA87DDBC02F">39.7 <span class="Heading">Cosets</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8412ABD57986B9FC">39.7-1 RightCoset</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X835F48248571364F">39.7-2 RightCosets</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X85884F177B5D98AE">39.7-3 CanonicalRightCosetElement</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D7625A1861D9DAB">39.7-4 IsRightCoset</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X78F4F0D8838F5ABF">39.7-5 IsBiCoset</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82F6ABE378B928D1">39.7-6 CosetDecomposition</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X83C723878230D616">39.8 <span class="Heading">Transversals</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X85C65D06822E716F">39.8-1 RightTransversal</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X78B98B257E981046">39.9 <span class="Heading">Double Cosets</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E51ED757D17254B">39.9-1 DoubleCoset</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7F53DABD79BA4F72">39.9-2 RepresentativesContainedRightCosets</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A5EFABB86E6D4D5">39.9-3 DoubleCosets</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X85ED464F878EF24C">39.9-4 IsDoubleCoset</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A25B1C886CF8C6A">39.9-5 DoubleCosetRepsAndSizes</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X84AE7EE77E5FB30E">39.9-6 InfoCoset</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7D474F8F87E4E5D9">39.10 <span class="Heading">Conjugacy Classes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7B2F207F7F85F5B8">39.10-1 ConjugacyClass</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X871B570284BBA685">39.10-2 ConjugacyClasses</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D6ED84C86C2979B">39.10-3 ConjugacyClassesByRandomSearch</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X852B3634789D770E">39.10-4 ConjugacyClassesByOrbits</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8733F87B7E4C9903">39.10-5 NrConjugacyClasses</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BD2A4427B7FE248">39.10-6 RationalClass</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81E9EF0A811072E8">39.10-7 RationalClasses</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X877691247DE23386">39.10-8 GaloisGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X83DD148D7DA2ABA9">39.10-9 <span class="Heading">IsConjugate</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81A92F828400FC8A">39.10-10 NthRootsInGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X804F0F037F06E25E">39.11 <span class="Heading">Normal Structure</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87B5370C7DFD401D">39.11-1 <span class="Heading">Normalizer</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C4E00297E37AA44">39.11-2 Core</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7CF497C77B1E8938">39.11-3 PCore</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BDEA0A98720D1BB">39.11-4 NormalClosure</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D25E7DC7834A703">39.11-5 NormalIntersection</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X811B8A4683DDE1F9">39.11-6 ComplementClassesRepresentatives</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8581F4E77B11C610">39.11-7 InfoComplement</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7C39EE3E836D6BC6">39.12 <span class="Heading">Specific and Parametrized Subgroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X829759F67D4247CA">39.12-1 TrivialSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A9A3D5578CE33A0">39.12-2 CommutatorSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7CC17CF179ED7EF2">39.12-3 DerivedSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7B10B58F83DDE56E">39.12-4 CommutatorLength</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X780552B57C30DD8F">39.12-5 FittingSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X788C856C82243274">39.12-6 FrattiniSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81D86CCE84193E4F">39.12-7 PrefrattiniSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X83D5C8B8865C85F1">39.12-8 PerfectResiduum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8250D99A830DA832">39.12-9 SolvableRadical</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81F647FA83D8854F">39.12-10 Socle</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8440C61080CDAA14">39.12-11 SupersolvableResiduum</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X796DA805853FAC90">39.12-12 PRump</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7FF0BBDD80E8F6BF">39.13 <span class="Heading">Sylow Subgroups and Hall Subgroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7AA351308787544C">39.13-1 SylowSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8605F3FE7A3B8E12">39.13-2 SylowComplement</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7EDBA19E828CD584">39.13-3 HallSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X832E8E6B8347B13F">39.13-4 SylowSystem</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87A245E180D27147">39.13-5 ComplementSystem</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82FE5DFD84F8A3C6">39.13-6 HallSystem</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X87AF37E980382499">39.14 <span class="Heading">Subgroups characterized by prime powers</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7F069ACC83DB3374">39.14-1 Omega</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X83DB33747F069ACC">39.14-2 Agemo</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7B75879B8085120A">39.15 <span class="Heading">Group Properties</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7DA27D338374FD28">39.15-1 IsCyclic</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X813C952F80E775D4">39.15-2 IsElementaryAbelian</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87D062608719F2CD">39.15-3 IsNilpotentGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E3056237C6A5D43">39.15-4 NilpotencyClassOfGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8755147280C84DBB">39.15-5 IsPerfectGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X809C78D5877D31DF">39.15-6 IsSolvableGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D7456077D3D1B86">39.15-7 IsPolycyclicGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7AADF2E88501B9FF">39.15-8 IsSupersolvableGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X83977EB97A8E2290">39.15-9 IsMonomialGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A6685D7819AEC32">39.15-10 IsSimpleGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X78CC9764803601E7">39.15-11 IsAlmostSimpleGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C1709A986B00F97">39.15-12 IsQuasisimpleGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C6AA6897C4409AC">39.15-13 <span class="Heading">IsomorphismTypeInfoFiniteSimpleGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8492B05B822AC58C">39.15-14 SimpleGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X839CDD8C7AE39FD6">39.15-15 SimpleGroupsIterator</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X872E93F586F54FCE">39.15-16 SmallSimpleGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7EB47BF27D8CBF72">39.15-17 AllSmallNonabelianSimpleGroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81E22D07871DF37E">39.15-18 IsFinitelyGeneratedGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8648EDA287829755">39.15-19 IsSubsetLocallyFiniteGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8089F18C810B7E3E">39.15-20 IsPGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7F232B3F8261CE25">39.15-21 IsPowerfulPGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7ED4A14F7A235617">39.15-22 IsRegularPGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87356BAA7E9E2142">39.15-23 PrimePGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X863434AD7DDE514B">39.15-24 PClassPGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X840A4F937ABF15E1">39.15-25 RankPGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81130F9A7CFCF6BF">39.15-26 IsPSolvable</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87415A8485FCF510">39.15-27 IsPNilpotent</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7F8264FA796B2B7D">39.16 <span class="Heading">Numerical Group Attributes</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X812827937F403300">39.16-1 AbelianInvariants</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D44470C7DA59C1C">39.16-2 Exponent</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X843E0CCA8351FDF4">39.16-3 EulerianFunction</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7AEDEDF67CFED672">39.17 <span class="Heading">Subgroup Series</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BDD116F7833800F">39.17-1 ChiefSeries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7AC93E977AC9ED58">39.17-2 ChiefSeriesThrough</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8724E15F81B51173">39.17-3 ChiefSeriesUnderAction</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A0E7A8B8495B79D">39.17-4 SubnormalSeries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81CDCBD67BC98A5A">39.17-5 CompositionSeries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82C0D0217ACB2042">39.17-6 DisplayCompositionSeries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A879948834BD889">39.17-7 DerivedSeriesOfGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A9AA1577CEC891F">39.17-8 DerivedLength</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X83F057E5791944D6">39.17-9 <span class="Heading">ElementaryAbelianSeries</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X782BD7A47D6B6503">39.17-10 InvariantElementaryAbelianSeries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X879D55A67DB42676">39.17-11 LowerCentralSeriesOfGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8428592E8773CD7B">39.17-12 UpperCentralSeriesOfGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7809B7ED792669F3">39.17-13 PCentralSeries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82A34BD681F24A94">39.17-14 JenningsSeries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C08A8B77EC09CFF">39.17-15 DimensionsLoewyFactors</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X84112774812180DD">39.17-16 AscendingChain</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C5029EE86D7FC96">39.17-17 IntermediateGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X781661FB78DC83B5">39.17-18 IntermediateSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X783CDAA67BDD8195">39.17-19 StructuralSeriesOfGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X84091B0A7E401E2B">39.18 <span class="Heading">Factor Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X80FC390C7F38A13F">39.18-1 NaturalHomomorphismByNormalSubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E6EED0185B27C48">39.18-2 FactorGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7816FA867BF1B8ED">39.18-3 CommutatorFactorGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BB93B9778C5A0B2">39.18-4 MaximalAbelianQuotient</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7FC83E4C783572E7">39.18-5 HasAbelianFactorGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7FAC018680B766B7">39.18-6 HasElementaryAbelianFactorGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X822A3AB27919BC1E">39.18-7 CentralizerModulo</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7D8EFB2F85AA24EE">39.19 <span class="Heading">Sets of Subgroups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7DDE67C67E871336">39.19-1 ConjugacyClassSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C5BBF487977B8CD">39.19-2 IsConjugacyClassSubgroupsRep</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E986BF48393113A">39.19-3 ConjugacyClassesSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8486C25380853F9B">39.19-4 ConjugacyClassesMaximalSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X798BF55C837DB188">39.19-5 MaximalSubgroupClassReps</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X85DAFB7582A88463">39.19-6 LowIndexSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X80399CD4870FFC4B">39.19-7 AllSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X861CD8DA790D81C2">39.19-8 MaximalSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X80237A847E24E6CF">39.19-9 NormalSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82ECAA427C987318">39.19-10 MaximalNormalSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X86FDD9BA819F5644">39.19-11 MinimalNormalSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A823C5A810910C3">39.19-12 CharacteristicSubgroups</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7FA267497CFC0550">39.20 <span class="Heading">Subgroup Lattice</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7B104E2C86166188">39.20-1 LatticeSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X78928A3582882BFD">39.20-2 ClassElementLattice</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E5DF287825EE7BA">39.20-3 DotFileLatticeSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X815CDA447C5DB285">39.20-4 MaximalSubgroupsLattice</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8138997C871EDF96">39.20-5 MinimalSupergroupsLattice</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87BE970D7B18E2C5">39.20-6 LowLayerSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87FABD5F87AD2568">39.20-7 ContainedConjugates</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X79C3619C849F97B8">39.20-8 ContainingConjugates</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8111F50C798B0D76">39.20-9 MinimalFaithfulPermutationDegree</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BA3484E7AE0A0E1">39.20-10 RepresentativesPerfectSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7B2233D180DF77A1">39.20-11 ConjugacyClassesPerfectSubgroups</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BFE573187B4BEF8">39.20-12 Zuppos</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82C12E2C81963B23">39.20-13 InfoLattice</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X85E613D57F28AEFF">39.21 <span class="Heading">Specific Methods for Subgroup Lattice Computations</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X86462A567DDBA6BC">39.21-1 LatticeByCyclicExtension</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X78918D83835A0EDF">39.21-2 InvariantSubgroupsElementaryAbelianGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7AD7804A803910AC">39.21-3 SubgroupsSolvableGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7F60BBB8874DFE40">39.21-4 SizeConsiderFunction</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X833C51BD7E7812C4">39.21-5 ExactSizeConsiderFunction</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A2C774B7CFF3E07">39.21-6 InfoPcSubgroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X79F894537D526B61">39.22 <span class="Heading">Special Generating Sets</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82FD78AF7F80A0E2">39.22-1 GeneratorsSmallest</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A258CCF79552198">39.22-2 LargestElementGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X81D15723804771E2">39.22-3 MinimalGeneratingSet</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X814DBABC878D5232">39.22-4 SmallGeneratingSet</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7D1574457B152333">39.22-5 IndependentGeneratorsOfAbelianGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X86F835DA8264A0CE">39.22-6 IndependentGeneratorExponents</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7CA0B6A27E0BE6B8">39.23 <span class="Heading">1-Cohomology</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X847BEC137A49BAF4">39.23-1 <span class="Heading">OneCocycles</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E6438D5834ACCDA">39.23-2 OneCoboundaries</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X80400ABD7F40FAA0">39.23-3 OCOneCocycles</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X811E1CF07DABE924">39.23-4 ComplementClassesRepresentativesEA</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8199B1D27D487897">39.23-5 InfoCoh</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X80A4B0F282977074">39.24 <span class="Heading">Schur Covers and Multipliers</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7F619DDA7DD6C43B">39.24-1 EpimorphismSchurCover</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7DD1E37987612042">39.24-2 SchurCover</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X792BC39D7CEB1D27">39.24-3 AbelianInvariantsMultiplier</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X819E8AEC835F8CD1">39.24-4 Epicentre</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8739CD4686301A0E">39.24-5 NonabelianExteriorSquare</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E1C8CD77CDB9F71">39.24-6 EpimorphismNonabelianExteriorSquare</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BF8DB3D8300BB3F">39.24-7 IsCentralFactor</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7F4240CD782B6032">39.24-8 <span class="Heading">Covering groups of symmetric groups</span></a>
</span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7DDA6BC1824F78FD">39.24-9 BasicSpinRepresentationOfSymmetricGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X844CFFDE80F6AD15">39.24-10 SchurCoverOfSymmetricGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7E0F4896795E34FC">39.24-11 DoubleCoverOfAlternatingGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X7BD95B8D879B73A3">39.25 <span class="Heading">2-Cohomology</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A1EBC3A7AB0D614">39.25-1 TwoCohomologyGeneric</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7A65366879BB3977">39.25-2 FpGroupCocycle</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X865722987E0E19B6">39.26 <span class="Heading">Tests for the Availability of Methods</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X798F13EA810FB215">39.26-1 CanEasilyTestMembership</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7C2A89607BDFD920">39.26-2 CanEasilyComputeWithIndependentGensAbelianGroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X83245C82835D496C">39.26-3 CanComputeSize</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X8268965487364912">39.26-4 CanComputeSizeAnySubgroup</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X82DDE00D82A32083">39.26-5 CanComputeIndex</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X7BE7C36B84C23511">39.26-6 CanComputeIsSubset</a></span>
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X87D62C2C7C375E2D">39.26-7 KnowsHowToDecompose</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap39_mj.html#X83A9997586694DC0">39.27 <span class="Heading">Specific functions for Normalizer calculation</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss"> </span><a href="chap39_mj.html#X84ABCA997D294B36">39.27-1 NormalizerViaRadical</a></span>
</div></div>
</div>
<h3>39 <span class="Heading">Groups</span></h3>
<p>This chapter explains how to create groups and defines operations for groups, that is operations whose definition does not depend on the representation used. However methods for these operations in most cases will make use of the representation.</p>
<p>If not otherwise specified, in all examples in this chapter the group <code class="code">g</code> will be the symmetric group <span class="SimpleMath">\(S_4\)</span> acting on the letters <span class="SimpleMath">\(\{ 1, \ldots, 4 \}\)</span>.</p>
<p><a id="X822370B47DEA37B1" name="X822370B47DEA37B1"></a></p>
<h4>39.1 <span class="Heading">Group Elements</span></h4>
<p>Groups in <strong class="pkg">GAP</strong> are written multiplicatively. The elements from which a group can be generated must permit multiplication and multiplicative inversion (see <a href="chap31_mj.html#X7B97A0307EA161E5"><span class="RefLink">31.14</span></a>).</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">a:=(1,2,3);;b:=(2,3,4);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">One(a);</span>
()
<span class="GAPprompt">gap></span> <span class="GAPinput">Inverse(b);</span>
(2,4,3)
<span class="GAPprompt">gap></span> <span class="GAPinput">a*b;</span>
(1,3)(2,4)
<span class="GAPprompt">gap></span> <span class="GAPinput">Order(a*b);</span>
2
<span class="GAPprompt">gap></span> <span class="GAPinput">Order( [ [ 1, 1 ], [ 0, 1 ] ] );</span>
infinity
</pre></div>
<p>The next example may run into an infinite loop because the given matrix in fact has infinite order.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Order( [ [ 1, 1 ], [ 0, 1 ] ] * Indeterminate( Rationals ) );</span>
#I Order: warning, order of <mat> might be infinite
</pre></div>
<p>Since groups are domains, the recommended command to compute the order of a group is <code class="func">Size</code> (<a href="chap30_mj.html#X858ADA3B7A684421"><span class="RefLink">30.4-6</span></a>). For convenience, group orders can also be computed with <code class="func">Order</code> (<a href="chap31_mj.html#X84F59A2687C62763"><span class="RefLink">31.10-10</span></a>).</p>
<p>The operation <code class="func">Comm</code> (<a href="chap31_mj.html#X80761843831B468E"><span class="RefLink">31.12-3</span></a>) can be used to compute the commutator of two elements, the operation <code class="func">LeftQuotient</code> (<a href="chap31_mj.html#X7A37082878DB3930"><span class="RefLink">31.12-2</span></a>) computes the product <span class="SimpleMath">\(x^{{-1}} y\)</span>.</p>
<p><a id="X86A022F9800121F8" name="X86A022F9800121F8"></a></p>
<h4>39.2 <span class="Heading">Creating Groups</span></h4>
<p>When groups are created from generators, this means that the generators must be elements that can be multiplied and inverted (see also <a href="chap31_mj.html#X82039A218274826F"><span class="RefLink">31.3</span></a>). For creating a free group on a set of symbols, see <code class="func">FreeGroup</code> (<a href="chap37_mj.html#X8215999E835290F0"><span class="RefLink">37.2-1</span></a>).</p>
<p><a id="X7D7B075385435151" name="X7D7B075385435151"></a></p>
<h5>39.2-1 <span class="Heading">Group</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Group</code>( <var class="Arg">gen</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">‣ Group</code>( <var class="Arg">gens</var>[, <var class="Arg">id</var>] )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="code">Group( <var class="Arg">gen</var>, ... )</code> is the group generated by the arguments <var class="Arg">gen</var>, ...</p>
<p>If the only argument <var class="Arg">gens</var> is a list that is not a matrix then <code class="code">Group( <var class="Arg">gens</var> )</code> is the group generated by the elements of that list.</p>
<p>If there are two arguments, a list <var class="Arg">gens</var> and an element <var class="Arg">id</var>, then <code class="code">Group( <var class="Arg">gens</var>, <var class="Arg">id</var> )</code> is the group generated by the elements of <var class="Arg">gens</var>, with identity <var class="Arg">id</var>.</p>
<p>Note that the value of the attribute <code class="func">GeneratorsOfGroup</code> (<a href="chap39_mj.html#X79C44528864044C5"><span class="RefLink">39.2-4</span></a>) need not be equal to the list <var class="Arg">gens</var> of generators entered as argument. Use <code class="func">GroupWithGenerators</code> (<a href="chap39_mj.html#X8589EF9C7B658B94"><span class="RefLink">39.2-3</span></a>) if you want to be sure that the argument <var class="Arg">gens</var> is stored as value of <code class="func">GeneratorsOfGroup</code> (<a href="chap39_mj.html#X79C44528864044C5"><span class="RefLink">39.2-4</span></a>).</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Group((1,2,3,4),(1,2));</span>
Group([ (1,2,3,4), (1,2) ])
</pre></div>
<p><a id="X7F81960287F3E32A" name="X7F81960287F3E32A"></a></p>
<h5>39.2-2 GroupByGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GroupByGenerators</code>( <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">‣ GroupByGenerators</code>( <var class="Arg">gens</var>, <var class="Arg">id</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><code class="func">GroupByGenerators</code> returns the group <span class="SimpleMath">\(G\)</span> generated by the list <var class="Arg">gens</var>. If a second argument <var class="Arg">id</var> is present then this is stored as the identity element of the group.</p>
<p>The value of the attribute <code class="func">GeneratorsOfGroup</code> (<a href="chap39_mj.html#X79C44528864044C5"><span class="RefLink">39.2-4</span></a>) of <span class="SimpleMath">\(G\)</span> need not be equal to <var class="Arg">gens</var>. <code class="func">GroupByGenerators</code> is the underlying operation called by <code class="func">Group</code> (<a href="chap39_mj.html#X7D7B075385435151"><span class="RefLink">39.2-1</span></a>).</p>
<p><a id="X8589EF9C7B658B94" name="X8589EF9C7B658B94"></a></p>
<h5>39.2-3 GroupWithGenerators</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GroupWithGenerators</code>( <var class="Arg">gens</var>[, <var class="Arg">id</var>] )</td><td class="tdright">( operation )</td></tr></table></div>
<p><code class="func">GroupWithGenerators</code> returns the group <span class="SimpleMath">\(G\)</span> generated by the list <var class="Arg">gens</var>. If a second argument <var class="Arg">id</var> is present then this is stored as the identity element of the group. The value of the attribute <code class="func">GeneratorsOfGroup</code> (<a href="chap39_mj.html#X79C44528864044C5"><span class="RefLink">39.2-4</span></a>) of <span class="SimpleMath">\(G\)</span> is equal to <var class="Arg">gens</var>.</p>
<p><a id="X79C44528864044C5" name="X79C44528864044C5"></a></p>
<h5>39.2-4 GeneratorsOfGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneratorsOfGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>returns a list of generators of the group <var class="Arg">G</var>. If <var class="Arg">G</var> has been created by the command <code class="func">GroupWithGenerators</code> (<a href="chap39_mj.html#X8589EF9C7B658B94"><span class="RefLink">39.2-3</span></a>) with argument <var class="Arg">gens</var>, then the list returned by <code class="func">GeneratorsOfGroup</code> will be equal to <var class="Arg">gens</var>. For such a group, each generator can also be accessed using the <code class="code">.</code> operator (see <code class="func">GeneratorsOfDomain</code> (<a href="chap31_mj.html#X7E353DD1838AB223"><span class="RefLink">31.9-2</span></a>)): for a positive integer <span class="SimpleMath">\(i\)</span>, <code class="code"><var class="Arg">G</var>.i</code> returns the <span class="SimpleMath">\(i\)</span>-th element of the list returned by <code class="func">GeneratorsOfGroup</code>. Moreover, if <var class="Arg">G</var> is a free group, and <code class="code">name</code> is the name of a generator of <var class="Arg">G</var> then <code class="code"><var class="Arg">G</var>.name</code> also returns this generator.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=GroupWithGenerators([(1,2,3,4),(1,2)]);</span>
Group([ (1,2,3,4), (1,2) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup(g);</span>
[ (1,2,3,4), (1,2) ]
</pre></div>
<p>While in this example <strong class="pkg">GAP</strong> displays the group via the generating set stored in the attribute <code class="func">GeneratorsOfGroup</code>, the methods installed for <code class="func">View</code> (<a href="chap6_mj.html#X851902C583B84CDC"><span class="RefLink">6.3-3</span></a>) will in general display only some information about the group which may even be just the fact that it is a group.</p>
<p><a id="X7A0747F17B50D967" name="X7A0747F17B50D967"></a></p>
<h5>39.2-5 AsGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsGroup</code>( <var class="Arg">D</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>if the elements of the collection <var class="Arg">D</var> form a group the command returns this group, otherwise it returns <code class="keyw">fail</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">AsGroup([(1,2)]);</span>
fail
<span class="GAPprompt">gap></span> <span class="GAPinput">AsGroup([(),(1,2)]);</span>
Group([ (1,2) ])
</pre></div>
<p><a id="X7E4143A08040BB47" name="X7E4143A08040BB47"></a></p>
<h5>39.2-6 ConjugateGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConjugateGroup</code>( <var class="Arg">G</var>, <var class="Arg">obj</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns the conjugate group of <var class="Arg">G</var>, obtained by applying the conjugating element <var class="Arg">obj</var>.</p>
<p>To form a conjugate (group) by any object acting via <code class="code">^</code>, one can also use the infix operator <code class="code">^</code>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ConjugateGroup(g,(1,5));</span>
Group([ (2,3,4,5), (2,5) ])
</pre></div>
<p><a id="X7939B3177BBD61E4" name="X7939B3177BBD61E4"></a></p>
<h5>39.2-7 IsGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsGroup</code>( <var class="Arg">obj</var> )</td><td class="tdright">( category )</td></tr></table></div>
<p>A group is a magma-with-inverses (see <code class="func">IsMagmaWithInverses</code> (<a href="chap35_mj.html#X82CBFF648574B830"><span class="RefLink">35.1-4</span></a>)) and associative (see <code class="func">IsAssociative</code> (<a href="chap35_mj.html#X7C83B5A47FD18FB7"><span class="RefLink">35.4-7</span></a>)) multiplication.</p>
<p><code class="code">IsGroup</code> tests whether the object <var class="Arg">obj</var> fulfills these conditions, it does <em>not</em> test whether <var class="Arg">obj</var> is a set of elements that forms a group under multiplication; use <code class="func">AsGroup</code> (<a href="chap39_mj.html#X7A0747F17B50D967"><span class="RefLink">39.2-5</span></a>) if you want to perform such a test. (See <a href="chap13_mj.html#X7CC6903E78F24167"><span class="RefLink">13.3</span></a> for details about categories.)</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsGroup(g);</span>
true
</pre></div>
<p><a id="X845874BA82E1A11F" name="X845874BA82E1A11F"></a></p>
<h5>39.2-8 InfoGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InfoGroup</code></td><td class="tdright">( info class )</td></tr></table></div>
<p>is the info class for the generic group theoretic functions (see <a href="chap7_mj.html#X7A9C902479CB6F7C"><span class="RefLink">7.4</span></a>).</p>
<p><a id="X7BA181CA81D785BB" name="X7BA181CA81D785BB"></a></p>
<h4>39.3 <span class="Heading">Subgroups</span></h4>
<p>For the general concept of parents and subdomains, see <a href="chap31_mj.html#X7CBDD36E7B7BE286"><span class="RefLink">31.7</span></a> and <a href="chap31_mj.html#X7B58FDEF80338DD6"><span class="RefLink">31.8</span></a>. More functions that construct certain subgroups can be found in the sections <a href="chap39_mj.html#X804F0F037F06E25E"><span class="RefLink">39.11</span></a>, <a href="chap39_mj.html#X7C39EE3E836D6BC6"><span class="RefLink">39.12</span></a>, <a href="chap39_mj.html#X7FF0BBDD80E8F6BF"><span class="RefLink">39.13</span></a>, and <a href="chap39_mj.html#X87AF37E980382499"><span class="RefLink">39.14</span></a>.</p>
<p>If a group <span class="SimpleMath">\(U\)</span> is created as a subgroup of another group <span class="SimpleMath">\(G\)</span>, <span class="SimpleMath">\(G\)</span> becomes the parent of <span class="SimpleMath">\(U\)</span>. There is no <q>universal</q> parent group, parent-child chains can be arbitrary long. <strong class="pkg">GAP</strong> stores the result of some operations (such as <code class="func">Normalizer</code> (<a href="chap39_mj.html#X87B5370C7DFD401D"><span class="RefLink">39.11-1</span></a>)) with the parent as an attribute.</p>
<p><a id="X7C82AA387A42DCA0" name="X7C82AA387A42DCA0"></a></p>
<h5>39.3-1 Subgroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Subgroup</code>( <var class="Arg">G</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">‣ SubgroupNC</code>( <var class="Arg">G</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">‣ Subgroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>creates the subgroup <var class="Arg">U</var> of <var class="Arg">G</var> generated by <var class="Arg">gens</var>. The <code class="func">Parent</code> (<a href="chap31_mj.html#X7BC856CC7F116BB0"><span class="RefLink">31.7-1</span></a>) value of <var class="Arg">U</var> will be <var class="Arg">G</var>. The <code class="code">NC</code> version does not check, whether the elements in <var class="Arg">gens</var> actually lie in <var class="Arg">G</var>.</p>
<p>The unary version of <code class="func">Subgroup</code> creates a (shell) subgroup that does not even know generators but can be used to collect information about a particular subgroup over time.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:=Subgroup(g,[(1,2,3),(1,2)]);</span>
Group([ (1,2,3), (1,2) ])
</pre></div>
<p><a id="X842AD37E79CE953E" name="X842AD37E79CE953E"></a></p>
<h5>39.3-2 <span class="Heading">Index (<strong class="pkg">GAP</strong> operation)</span></h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Index</code>( <var class="Arg">G</var>, <var class="Arg">U</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">‣ IndexNC</code>( <var class="Arg">G</var>, <var class="Arg">U</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>For a subgroup <var class="Arg">U</var> of the group <var class="Arg">G</var>, <code class="func">Index</code> returns the index <span class="SimpleMath">\([\textit{G}:\textit{U}] = |\textit{G}| / |\textit{U}|\)</span> of <var class="Arg">U</var> in <var class="Arg">G</var>. The <code class="code">NC</code> version does not test whether <var class="Arg">U</var> is contained in <var class="Arg">G</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">Index(g,u);</span>
4
</pre></div>
<p><a id="X8014135884DCC53E" name="X8014135884DCC53E"></a></p>
<h5>39.3-3 IndexInWholeGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IndexInWholeGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>If the family of elements of <var class="Arg">G</var> itself forms a group <var class="Arg">P</var>, this attribute returns the index of <var class="Arg">G</var> in <var class="Arg">P</var>. It is used primarily for free groups or finitely presented groups.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">freegp:=FreeGroup(1);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">freesub:=Subgroup(freegp,[freegp.1^5]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">IndexInWholeGroup(freesub);</span>
5
</pre></div>
<p><a id="X7904AC9D7E9A3BB7" name="X7904AC9D7E9A3BB7"></a></p>
<h5>39.3-4 AsSubgroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AsSubgroup</code>( <var class="Arg">G</var>, <var class="Arg">U</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>creates a subgroup of <var class="Arg">G</var> which contains the same elements as <var class="Arg">U</var></p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">v:=AsSubgroup(g,Group((1,2,3),(1,4)));</span>
Group([ (1,2,3), (1,4) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Parent(v);</span>
Group([ (1,2,3,4), (1,2) ])
</pre></div>
<p><a id="X7839D8927E778334" name="X7839D8927E778334"></a></p>
<h5>39.3-5 IsSubgroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSubgroup</code>( <var class="Arg">G</var>, <var class="Arg">U</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="code">IsSubgroup</code> returns <code class="keyw">true</code> if <var class="Arg">U</var> is a group that is a subset of the domain <var class="Arg">G</var>. This is actually checked by calling <code class="code">IsGroup( <var class="Arg">U</var> )</code> and <code class="code">IsSubset( <var class="Arg">G</var>, <var class="Arg">U</var> )</code>; note that special methods for <code class="func">IsSubset</code> (<a href="chap30_mj.html#X79CA175481F8105F"><span class="RefLink">30.5-1</span></a>) are available that test only generators of <var class="Arg">U</var> if <var class="Arg">G</var> is closed under the group operations. So in most cases, for example whenever one knows already that <var class="Arg">U</var> is a group, it is better to call only <code class="func">IsSubset</code> (<a href="chap30_mj.html#X79CA175481F8105F"><span class="RefLink">30.5-1</span></a>).</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubgroup(g,u);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">v:=Group((1,2,3),(1,2));</span>
Group([ (1,2,3), (1,2) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">u=v;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubgroup(g,v);</span>
true
</pre></div>
<p><a id="X838186F9836F678C" name="X838186F9836F678C"></a></p>
<h5>39.3-6 IsNormal</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsNormal</code>( <var class="Arg">G</var>, <var class="Arg">U</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns <code class="keyw">true</code> if the group <var class="Arg">G</var> normalizes the group <var class="Arg">U</var> and <code class="keyw">false</code> otherwise.</p>
<p>A group <var class="Arg">G</var> <em>normalizes</em> a group <var class="Arg">U</var> if and only if for every <span class="SimpleMath">\(g \in \textit{G}\)</span> and <span class="SimpleMath">\(u \in \textit{U}\)</span> the element <span class="SimpleMath">\(u^g\)</span> is a member of <var class="Arg">U</var>. Note that <var class="Arg">U</var> need not be a subgroup of <var class="Arg">G</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsNormal(g,u);</span>
false
</pre></div>
<p><a id="X8390B5117A10CC52" name="X8390B5117A10CC52"></a></p>
<h5>39.3-7 IsCharacteristicSubgroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsCharacteristicSubgroup</code>( <var class="Arg">G</var>, <var class="Arg">N</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>tests whether <var class="Arg">N</var> is invariant under all automorphisms of <var class="Arg">G</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsCharacteristicSubgroup(g,u);</span>
false
</pre></div>
<p><a id="X84F5464983655590" name="X84F5464983655590"></a></p>
<h5>39.3-8 ConjugateSubgroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConjugateSubgroup</code>( <var class="Arg">G</var>, <var class="Arg">g</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>For a group <var class="Arg">G</var> which has a parent group <code class="code">P</code> (see <code class="func">Parent</code> (<a href="chap31_mj.html#X7BC856CC7F116BB0"><span class="RefLink">31.7-1</span></a>)), returns the subgroup of <code class="code">P</code>, obtained by conjugating <var class="Arg">G</var> using the conjugating element <var class="Arg">g</var>.</p>
<p>If <var class="Arg">G</var> has no parent group, it just delegates to the call to <code class="func">ConjugateGroup</code> (<a href="chap39_mj.html#X7E4143A08040BB47"><span class="RefLink">39.2-6</span></a>) with the same arguments.</p>
<p>To form a conjugate (subgroup) by any object acting via <code class="code">^</code>, one can also use the infix operator <code class="code">^</code>.</p>
<p><a id="X7D9990EB837075A4" name="X7D9990EB837075A4"></a></p>
<h5>39.3-9 ConjugateSubgroups</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ConjugateSubgroups</code>( <var class="Arg">G</var>, <var class="Arg">U</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns a list of all images of the group <var class="Arg">U</var> under conjugation action by <var class="Arg">G</var>.</p>
<p><a id="X82ABF80780CC27AF" name="X82ABF80780CC27AF"></a></p>
<h5>39.3-10 IsSubnormal</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSubnormal</code>( <var class="Arg">G</var>, <var class="Arg">U</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>A subgroup <var class="Arg">U</var> of the group <var class="Arg">G</var> is subnormal if it is contained in a subnormal series of <var class="Arg">G</var>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubnormal(g,Group((1,2,3)));</span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsSubnormal(g,Group((1,2)(3,4)));</span>
true
</pre></div>
<p><a id="X829766158665FB54" name="X829766158665FB54"></a></p>
<h5>39.3-11 SubgroupByProperty</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubgroupByProperty</code>( <var class="Arg">G</var>, <var class="Arg">prop</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>creates a subgroup of <var class="Arg">G</var> consisting of those elements fulfilling <var class="Arg">prop</var> (which is a tester function). No test is done whether the property actually defines a subgroup.</p>
<p>Note that currently very little functionality beyond an element test exists for groups created this way.</p>
<p><a id="X7E95101F80583E77" name="X7E95101F80583E77"></a></p>
<h5>39.3-12 SubgroupShell</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubgroupShell</code>( <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>creates a subgroup of <var class="Arg">G</var> which at this point is not yet specified further (but will be later, for example by assigning a generating set).</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">u:=SubgroupByProperty(g,i->3^i=3);</span>
<subgrp of Group([ (1,2,3,4), (1,2) ]) by property>
<span class="GAPprompt">gap></span> <span class="GAPinput">(1,3) in u; (1,4) in u; (1,5) in u;</span>
false
true
false
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup(u);</span>
[ (1,2), (1,4,2) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">u:=SubgroupShell(g);</span>
<group>
</pre></div>
<p><a id="X7B855B0485C3C6C5" name="X7B855B0485C3C6C5"></a></p>
<h4>39.4 <span class="Heading">Closures of (Sub)groups</span></h4>
<p><a id="X7D13FC1F8576FFD8" name="X7D13FC1F8576FFD8"></a></p>
<h5>39.4-1 ClosureGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ClosureGroup</code>( <var class="Arg">G</var>, <var class="Arg">obj</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>creates the group generated by the elements of <var class="Arg">G</var> and <var class="Arg">obj</var>. <var class="Arg">obj</var> can be either an element or a collection of elements, in particular another group.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=SmallGroup(24,12);;u:=Subgroup(g,[g.3,g.4]);</span>
Group([ f3, f4 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">ClosureGroup(u,g.2);</span>
Group([ f2, f3, f4 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">ClosureGroup(u,[g.1,g.2]);</span>
Group([ f1, f2, f3, f4 ])
<span class="GAPprompt">gap></span> <span class="GAPinput">ClosureGroup(u,Group(g.2*g.1));</span>
Group([ f1*f2^2, f3, f4 ])
</pre></div>
<p><a id="X81A20A397C308483" name="X81A20A397C308483"></a></p>
<h5>39.4-2 ClosureGroupAddElm</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ClosureGroupAddElm</code>( <var class="Arg">G</var>, <var class="Arg">elm</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">‣ ClosureGroupCompare</code>( <var class="Arg">G</var>, <var class="Arg">elm</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">‣ ClosureGroupIntest</code>( <var class="Arg">G</var>, <var class="Arg">elm</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>These three functions together with <code class="func">ClosureGroupDefault</code> (<a href="chap39_mj.html#X82F59F6680D1B0D5"><span class="RefLink">39.4-3</span></a>) implement the main methods for <code class="func">ClosureGroup</code> (<a href="chap39_mj.html#X7D13FC1F8576FFD8"><span class="RefLink">39.4-1</span></a>). In the ordering given, they just add <var class="Arg">elm</var> to the generators, remove duplicates and identity elements, and test whether <var class="Arg">elm</var> is already contained in <var class="Arg">G</var>.</p>
<p><a id="X82F59F6680D1B0D5" name="X82F59F6680D1B0D5"></a></p>
<h5>39.4-3 ClosureGroupDefault</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ClosureGroupDefault</code>( <var class="Arg">G</var>, <var class="Arg">elm</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This functions returns the closure of the group <var class="Arg">G</var> with the element <var class="Arg">elm</var>. If <var class="Arg">G</var> has the attribute <code class="func">AsSSortedList</code> (<a href="chap30_mj.html#X856D927378C33548"><span class="RefLink">30.3-10</span></a>) then also the result has this attribute. This is used to implement the default method for <code class="func">Enumerator</code> (<a href="chap30_mj.html#X7EF8910F82B45EC7"><span class="RefLink">30.3-2</span></a>) and <code class="func">EnumeratorSorted</code> (<a href="chap30_mj.html#X80CD7DDC7D0C60D5"><span class="RefLink">30.3-3</span></a>).</p>
<p><a id="X7A7AF14A8052F055" name="X7A7AF14A8052F055"></a></p>
<h5>39.4-4 ClosureSubgroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ClosureSubgroup</code>( <var class="Arg">G</var>, <var class="Arg">obj</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">‣ ClosureSubgroupNC</code>( <var class="Arg">G</var>, <var class="Arg">obj</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>For a group <var class="Arg">G</var> that stores a parent group (see <a href="chap31_mj.html#X7CBDD36E7B7BE286"><span class="RefLink">31.7</span></a>), <code class="func">ClosureSubgroup</code> calls <code class="func">ClosureGroup</code> (<a href="chap39_mj.html#X7D13FC1F8576FFD8"><span class="RefLink">39.4-1</span></a>) with the same arguments; if the result is a subgroup of the parent of <var class="Arg">G</var> then the parent of <var class="Arg">G</var> is set as parent of the result, otherwise an error is raised. The check whether the result is contained in the parent of <var class="Arg">G</var> is omitted by the <code class="code">NC</code> version. As a wrong parent might imply wrong properties this version should be used with care.</p>
<p><a id="X7E19F92284F6684E" name="X7E19F92284F6684E"></a></p>
<h4>39.5 <span class="Heading">Expressing Group Elements as Words in Generators</span></h4>
<p>Using homomorphisms (see chapter <a href="chap40_mj.html#X83702FC27B3C3098"><span class="RefLink">40</span></a>) it is possible to express group elements as words in given generators: Create a free group (see <code class="func">FreeGroup</code> (<a href="chap37_mj.html#X8215999E835290F0"><span class="RefLink">37.2-1</span></a>)) on the correct number of generators and create a homomorphism from this free group onto the group <var class="Arg">G</var> in whose generators you want to factorize. Then the preimage of an element of <var class="Arg">G</var> is a word in the free generators, that will map on this element again.</p>
<p><a id="X7FE8A3B08458A1BF" name="X7FE8A3B08458A1BF"></a></p>
<h5>39.5-1 EpimorphismFromFreeGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ EpimorphismFromFreeGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>For a group <var class="Arg">G</var> with a known generating set, this attribute returns a homomorphism from a free group that maps the free generators to the generators of <var class="Arg">G</var>.</p>
<p>The option <code class="code">names</code> can be used to prescribe a (print) name for the free generators.</p>
<p>The following example shows how to decompose elements of <span class="SimpleMath">\(S_4\)</span> in the generators <code class="code">(1,2,3,4)</code> and <code class="code">(1,2)</code>:</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=Group((1,2,3,4),(1,2));</span>
Group([ (1,2,3,4), (1,2) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">hom:=EpimorphismFromFreeGroup(g:names:=["x","y"]);</span>
[ x, y ] -> [ (1,2,3,4), (1,2) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">PreImagesRepresentative(hom,(1,4));</span>
y^-1*x^-1*(x^-1*y^-1)^2*x
</pre></div>
<p>The following example stems from a real request to the <strong class="pkg">GAP</strong> Forum. In September 2000 a <strong class="pkg">GAP</strong> user working with puzzles wanted to express the permutation <code class="code">(1,2)</code> as a word as short as possible in particular generators of the symmetric group <span class="SimpleMath">\(S_{16}\)</span>.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">perms := [ (1,2,3,7,11,10,9,5), (2,3,4,8,12,11,10,6),</span>
<span class="GAPprompt">></span> <span class="GAPinput"> (5,6,7,11,15,14,13,9), (6,7,8,12,16,15,14,10) ];;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">puzzle := Group( perms );;Size( puzzle );</span>
20922789888000
<span class="GAPprompt">gap></span> <span class="GAPinput">hom:=EpimorphismFromFreeGroup(puzzle:names:=["a", "b", "c", "d"]);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">word := PreImagesRepresentative( hom, (1,2) );</span>
a^-1*c*b*c^-1*a*b^-1*a^-2*c^-1*a*b^-1*c*b
<span class="GAPprompt">gap></span> <span class="GAPinput">Length( word );</span>
13
</pre></div>
<p><a id="X8357294D7B164106" name="X8357294D7B164106"></a></p>
<h5>39.5-2 Factorization</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ Factorization</code>( <var class="Arg">G</var>, <var class="Arg">elm</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>returns a factorization of <var class="Arg">elm</var> as word in the generators of the group <var class="Arg">G</var> given in the attribute <code class="func">GeneratorsOfGroup</code> (<a href="chap39_mj.html#X79C44528864044C5"><span class="RefLink">39.2-4</span></a>). The attribute <code class="func">EpimorphismFromFreeGroup</code> (<a href="chap39_mj.html#X7FE8A3B08458A1BF"><span class="RefLink">39.5-1</span></a>) of <var class="Arg">G</var> will contain a map from the free group in which the word is expressed to the group <var class="Arg">G</var>. The attribute <code class="func">MappingGeneratorsImages</code> (<a href="chap40_mj.html#X863805187A24B5E3"><span class="RefLink">40.10-2</span></a>) of this map gives a list of generators and corresponding letters.</p>
<p>The algorithm used forms all elements of the group to ensure a short word is found. Therefore this function should <em>not</em> be used when the group <var class="Arg">G</var> has more than a few million elements. Because of this, one should not call this function within algorithms, but use homomorphisms instead.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=SymmetricGroup( 6 );;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">r:=(3,4);; s:=(1,2,3,4,5,6);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput"># create subgroup to force the system to use the generators r and s:</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">H:= Subgroup(G, [ r, s ] );</span>
Group([ (3,4), (1,2,3,4,5,6) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">Factorization( H, (1,2,3) );</span>
(x2*x1)^2*x2^-2
<span class="GAPprompt">gap></span> <span class="GAPinput">s*r*s*r*s^-2;</span>
(1,2,3)
<span class="GAPprompt">gap></span> <span class="GAPinput">MappingGeneratorsImages(EpimorphismFromFreeGroup(H));</span>
[ [ x1, x2 ], [ (3,4), (1,2,3,4,5,6) ] ]
</pre></div>
<p><a id="X871508DD808EB487" name="X871508DD808EB487"></a></p>
<h5>39.5-3 GrowthFunctionOfGroup</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GrowthFunctionOfGroup</code>( <var class="Arg">G</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">‣ GrowthFunctionOfGroup</code>( <var class="Arg">G</var>, <var class="Arg">radius</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>For a group <var class="Arg">G</var> with a generating set given in <code class="func">GeneratorsOfGroup</code> (<a href="chap39_mj.html#X79C44528864044C5"><span class="RefLink">39.2-4</span></a>), this function calculates the number of elements whose shortest expression as words in the generating set is of a particular length. It returns a list <var class="Arg">L</var>, whose <span class="SimpleMath">\(i+1\)</span> entry counts the number of elements whose shortest word expression has length <span class="SimpleMath">\(i\)</span>. If a maximal length <var class="Arg">radius</var> is given, only words up to length <var class="Arg">radius</var> are counted. Otherwise the group must be finite and all elements are enumerated.</p>
<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GrowthFunctionOfGroup(MathieuGroup(12));</span>
[ 1, 5, 19, 70, 255, 903, 3134, 9870, 25511, 38532, 16358, 382 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GrowthFunctionOfGroup(MathieuGroup(12),2);</span>
[ 1, 5, 19 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GrowthFunctionOfGroup(MathieuGroup(12),99);</span>
[ 1, 5, 19, 70, 255, 903, 3134, 9870, 25511, 38532, 16358, 382 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">free:=FreeGroup("a","b");</span>
<free group on the generators [ a, b ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">product:=free/ParseRelators(free,"a2,b3");</span>
<fp group on the generators [ a, b ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">SetIsFinite(product,false);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">GrowthFunctionOfGroup(product,10);</span>
[ 1, 3, 4, 6, 8, 12, 16, 24, 32, 48, 64 ]
</pre></div>
<p><a id="X87BF1B887C91CA2E" name="X87BF1B887C91CA2E"></a></p>
<h4>39.6 <span class="Heading">Structure Descriptions</span></h4>
<p><a id="X8199B74B84446971" name="X8199B74B84446971"></a></p>
<h5>39.6-1 StructureDescription</h5>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ StructureDescription</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>The method for <code class="func">StructureDescription</code> exhibits a structure of the given group <var class="Arg">G</var> to some extent, using the strategy outlined below. The idea is to return a possibly short string which gives some insight in the structure of the considered group. It is intended primarily for small groups (order less than 100) or groups with few normal subgroups, in other cases, in particular large <span class="SimpleMath">\(p\)</span>-groups, it can be very costly. Furthermore, the string returned is -- as the action on chief factors is not described -- often not the most useful way to describe a group.</p>
<p>The string returned by <code class="func">StructureDescription</code> is <strong class="button">not</strong> an isomorphism invariant: non-isomorphic groups can have the same string value, and two isomorphic groups in different representations can produce different strings. The value returned by <code class="func">StructureDescription</code> is a string of the following form:</p>
<div class="example"><pre>
StructureDescription(<G>) ::=
1 ; trivial group
| C<size> ; finite cyclic group
| Z ; infinite cyclic group
| A<degree> ; alternating group
| S<degree> ; symmetric group
| D<size> ; dihedral group
| Q<size> ; quaternion group
| QD<size> ; quasidihedral group
| PSL(<n>,<q>) ; projective special linear group
| SL(<n>,<q>) ; special linear group
| GL(<n>,<q>) ; general linear group
| PSU(<n>,<q>) ; proj. special unitary group
| O(2<n>+1,<q>) ; orthogonal group, type B
| O+(2<n>,<q>) ; orthogonal group, type D
| O-(2<n>,<q>) ; orthogonal group, type 2D
| PSp(2<n>,<q>) ; proj. special symplectic group
| Sz(<q>) ; Suzuki group
| Ree(<q>) ; Ree group (type 2F or 2G)
| E(6,<q>) | E(7,<q>) | E(8,<q>) ; Lie group of exceptional type
| 2E(6,<q>) | F(4,<q>) | G(2,<q>)
| 3D(4,<q>) ; Steinberg triality group
| M11 | M12 | M22 | M23 | M24
| J1 | J2 | J3 | J4 | Co1 | Co2
| Co3 | Fi22 | Fi23 | Fi24' | Suz
| HS | McL | He | HN | Th | B
| M | ON | Ly | Ru ; sporadic simple group
| 2F(4,2)' ; Tits group
| PerfectGroup(<size>,<id>) ; the indicated group from the
; library of perfect groups
| A x B ; direct product
| N : H ; semidirect product
| C(G) . G/C(G) = G' . G/G' ; non-split extension
; (equal alternatives and
; trivial extensions omitted)
| Phi(G) . G/Phi(G) ; non-split extension:
; Frattini subgroup and
; Frattini factor group
</pre></div>
<p>Note that the <code class="func">StructureDescription</code> is only <em>one</em> possible way of building up the given group from smaller pieces.</p>
<p>The option <q>short</q> is recognized - if this option is set, an abbreviated output format is used (e.g. <code class="code">"6x3"</code> instead of <code class="code">"C6 x C3"</code>).</p>
<p>If the <code class="func">Name</code> (<a href="chap12_mj.html#X7F14EF9D81432113"><span class="RefLink">12.8-2</span></a>) attribute is not bound, but <code class="func">StructureDescription</code> is, <code class="func">View</code> (<a href="chap6_mj.html#X851902C583B84CDC"><span class="RefLink">6.3-3</span></a>) prints the value of the attribute <code class="func">StructureDescription</code>. The <code class="func">Print</code> (<a href="chap6_mj.html#X7AFA64D97A1F39A3"><span class="RefLink">6.3-4</span></a>)ed representation of a group is not affected by computing a <code class="func">StructureDescription</code>.</p>
<p>The strategy used to compute a <code class="func">StructureDescription</code> is as follows:</p>
<dl>
<dt><strong class="Mark">1.</strong></dt>
<dd><p>Lookup in a precomputed list, if the order of <var class="Arg">G</var> is not larger than 100 and not equal to 64 or 96.</p>
</dd>
<dt><strong class="Mark">2.</strong></dt>
<dd><p>If <var class="Arg">G</var> is abelian, then decompose it into cyclic factors in <q>elementary divisors style</q>. For example, <code class="code">"C2 x C3 x C3"</code> is <code class="code">"C6 x C3"</code>. For infinite abelian groups, <code class="code">"Z"</code> denotes the group of integers.</p>
</dd>
<dt><strong class="Mark">3.</strong></dt>
<dd><p>Recognize alternating groups, symmetric groups, dihedral groups, quasidihedral groups, quaternion groups, PSL's, SL's, GL's and simple groups not listed so far as basic building blocks.</p>
</dd>
<dt><strong class="Mark">4.</strong></dt>
<dd><p>Decompose <var class="Arg">G</var> into a direct product of irreducible factors.</p>
</dd>
<dt><strong class="Mark">5.</strong></dt>
<dd><p>Recognize semidirect products <var class="Arg">G</var>=<span class="SimpleMath">\(N\)</span>:<span class="SimpleMath">\(H\)</span>, where <span class="SimpleMath">\(N\)</span> is normal. Select a pair <span class="SimpleMath">\(N\)</span>, <span class="SimpleMath">\(H\)</span> with the following preferences:</p>
<dl>
<dt><strong class="Mark">1.</strong></dt>
<dd><p>if <var class="Arg">G</var> is defined as a semidirect product of <span class="SimpleMath">\(N\)</span>, <span class="SimpleMath">\(H\)</span> then select <span class="SimpleMath">\(N\)</span>, <span class="SimpleMath">\(H\)</span>,</p>
</dd>
<dt><strong class="Mark">2.</strong></dt>
<dd><p>if <var class="Arg">G</var> is solvable, then select a solvable normal Hall subgroup <span class="SimpleMath">\(N\)</span>, if exists, and consider the semidirect decomposition of <span class="SimpleMath">\(N\)</span> and <span class="SimpleMath">\(\textit{G}/N\)</span>,</p>
</dd>
<dt><strong class="Mark">3.</strong></dt>
<dd><p>find any nontrivial normal subgroup <span class="SimpleMath">\(N\)</span> which has a complement <span class="SimpleMath">\(H\)</span>.</p>
</dd>
</dl>
<p>The option <q>nice</q> is recognized. If this option is set, then all semidirect products are computed in order to find a possibly nicer presentation. Note, that this may take a very long time if <var class="Arg">G</var> has many normal subgroups, e.g. if <span class="SimpleMath">\(\textit{G}/\textit{G}'\)</span> has many cyclic factors. If the option <q>nice</q> is set, then GAP would select a pair <span class="SimpleMath">\(N\)</span>, <span class="SimpleMath">\(H\)</span> with the following preferences:</p>
<dl>
<dt><strong class="Mark">1.</strong></dt>
<dd><p><span class="SimpleMath">\(H\)</span> is abelian</p>
</dd>
<dt><strong class="Mark">2.</strong></dt>
<dd><p><span class="SimpleMath">\(N\)</span> is abelian</p>
</dd>
<dt><strong class="Mark">2a.</strong></dt>
<dd><p><span class="SimpleMath">\(N\)</span> has many abelian invariants</p>
</dd>
<dt><strong class="Mark">3.</strong></dt>
<dd><p><span class="SimpleMath">\(N\)</span> is a direct product</p>
</dd>
<dt><strong class="Mark">3a.</strong></dt>
<dd><p><span class="SimpleMath">\(N\)</span> has many direct factors</p>
</dd>
<dt><strong class="Mark">4.</strong></dt>
<dd><p><span class="SimpleMath">\(\phi: H \rightarrow\)</span> Aut(<span class="SimpleMath">\(N\)</span>), <span class="SimpleMath">\(h \mapsto (n \mapsto n^h)\)</span> is injective.</p>
</dd>
</dl>
</dd>
<dt><strong class="Mark">6.</strong></dt>
<dd><p>Fall back to non-splitting extensions: If the centre or the commutator factor group is non-trivial, write <var class="Arg">G</var> as <span class="SimpleMath">\(Z(\textit{G})\)</span>.<span class="SimpleMath">\(\textit{G}/Z(\textit{G})\)</span> or <span class="SimpleMath">\(\textit{G}'\)</span>.<span class="SimpleMath">\(\textit{G}/\textit{G}'\)</span>, respectively. Otherwise if the Frattini subgroup is non-trivial, write <var class="Arg">G</var> as <span class="SimpleMath">\(\Phi\)</span>(<var class="Arg">G</var>).<var class="Arg">G</var>/<span class="SimpleMath">\(\Phi\)</span>(<var class="Arg">G</var>).</p>
</dd>
<dt><strong class="Mark">7.</strong></dt>
<dd><p>If no decomposition is found (maybe this is not the case for any finite group), try to identify <var class="Arg">G</var> in the perfect groups library. If this fails also, then return a string describing this situation.</p>
</dd>
</dl>
<p>Note that <code class="func">StructureDescription</code> is <em>not</em> intended to be a research tool, but rather an educational tool. The reasons for this are as follows:</p> | | |