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 182 kB image not shown  

Quellcode-Bibliothek chap50_mj.html   Sprache: HTML

 
 products/sources/formale Sprachen/GAP/doc/ref/chap50_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 50: Group Libraries</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="chap50"  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="chap49_mj.html">[Previous Chapter]</a>    <a href="chap51_mj.html">[Next Chapter]</a>   </div>

<p id="mathjaxlink" class="pcenter"><a href="chap50.html">[MathJax off]</a></p>
<p><a id="X81B00B667D2BD022" name="X81B00B667D2BD022"></a></p>
<div class="ChapSects"><a href="chap50_mj.html#X81B00B667D2BD022">50 <span class="Heading">Group Libraries</span></a>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap50_mj.html#X839981CC7D9B671B">50.1 <span class="Heading">Basic Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8489BECB78664847">50.1-1 TrivialGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7A7C473D87B31F3B">50.1-2 CyclicGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X81CCC3BF8005A2D7">50.1-3 AbelianGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8778256286E50743">50.1-4 ElementaryAbelianGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7F43050D8587E767">50.1-5 FreeAbelianGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X838DE1AB7B3D70FF">50.1-6 DihedralGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8233A853818CAF33">50.1-7 IsDihedralGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7E9844EF7C47EEB0">50.1-8 DicyclicGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7F260D177FD4BE4C">50.1-9 IsDicyclicGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X86E76B3A796BEFA8">50.1-10 ExtraspecialGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7E54D3E778E6A53E">50.1-11 <span class="Heading">AlternatingGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X858666F97BD85ABB">50.1-12 <span class="Heading">SymmetricGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X788FA7DE84E0FE6A">50.1-13 MathieuGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8469DBBF82F8E5C3">50.1-14 SuzukiGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X87E5B0F679CA7FE4">50.1-15 ReeGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7D0FFDA4793995FC">50.1-16 <span class="Heading">Generator Names</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap50_mj.html#X8674AAA578FE4AEE">50.2 <span class="Heading">Classical Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X85D607DD82AF3E27">50.2-1 <span class="Heading">GeneralLinearGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7CA3F7BF83992C6B">50.2-2 <span class="Heading">SpecialLinearGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X866D4E2B816BDFA5">50.2-3 GeneralUnitaryGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X82A2AADE805DCDE9">50.2-4 SpecialUnitaryGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8142A8B07811CA90">50.2-5 <span class="Heading">SymplecticGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7C2051CB7B94CEB1">50.2-6 GeneralOrthogonalGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X78D4EEF27AA2DCFD">50.2-7 SpecialOrthogonalGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8365E0AB8338DA3F">50.2-8 Omega</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X79C3C61A7D83A6D0">50.2-9 GeneralSemilinearGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7D3779237CB5B49C">50.2-10 SpecialSemilinearGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7F0DBEB880D2D574">50.2-11 ProjectiveGeneralLinearGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X86784EDA80224B74">50.2-12 ProjectiveSpecialLinearGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7E471ADE7E095604">50.2-13 ProjectiveGeneralUnitaryGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7A88FE2B7EF9C804">50.2-14 ProjectiveSpecialUnitaryGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7DEDE2537B8FFFF5">50.2-15 ProjectiveSymplecticGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X87AAB20A8434356B">50.2-16 ProjectiveGeneralOrthogonalGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X835E0D3384C4AB6B">50.2-17 ProjectiveSpecialOrthogonalGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7F546F907A37DF15">50.2-18 ProjectiveOmega</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X824925DB7C3A2FA6">50.2-19 ProjectiveGeneralSemilinearGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X86BD9AE27CCAB1A6">50.2-20 ProjectiveSpecialSemilinearGroup</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap50_mj.html#X85B9F2D379616C35">50.3 <span class="Heading">Conjugacy Classes in Classical Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X831789117E93171E">50.3-1 NrConjugacyClassesGL</a></span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap50_mj.html#X817EBD6E841285CD">50.4 <span class="Heading">Constructors for Basic Groups</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap50_mj.html#X82676ED5826E9E2E">50.5 <span class="Heading">Selection Functions</span></a>
</span>
</div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap50_mj.html#X7A884ECF813C2026">50.6 <span class="Heading">Finite Perfect Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X866A25F882A4E97B">50.6-1 SizesPerfectGroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7906BBA7818E9415">50.6-2 <span class="Heading">PerfectGroup</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7E1CB2D18085FF9D">50.6-3 PerfectIdentification</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7D68BE547FE5C0F5">50.6-4 NumberPerfectGroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X866356A684F6B15E">50.6-5 SizeNumbersPerfectGroups</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X845419F07BB92867">50.6-6 <span class="Heading">DisplayInformationPerfectGroups</span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X875C5BE67BAB7F71">50.6-7 <span class="Heading">More about the Perfect Groups Library</span></a>
</span>
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap50_mj.html#X7873506D873EDB95">50.7 <span class="Heading">Irreducible Maximal Finite Integral Matrix Groups</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8693FD647EF3C53B">50.7-1 ImfNumberQQClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8705F64B7E19DDC7">50.7-2 DisplayImfInvariants</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X8604A2167B2E8434">50.7-3 ImfInvariants</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X78935B307B909101">50.7-4 ImfMatrixGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X84BF34B27CD5E85C">50.7-5 IsomorphismPermGroup</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap50_mj.html#X7CEDB6CE7BAC4518">50.7-6 IsomorphismPermGroupImfGroup</a></span>
</div></div>
</div>

<h3>50 <span class="Heading">Group Libraries</span></h3>

<p>When you start <strong class="pkg">GAP</strong>, it already knows several groups. Currently <strong class="pkg">GAP</strong> initially knows the following groups:</p>


<ul>
<li><p>some basic groups, such as cyclic groups or symmetric groups (see <a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>),</p>

</li>
<li><p>classical matrix groups (see <a href="chap50_mj.html#X8674AAA578FE4AEE"><span class="RefLink">50.2</span></a>),</p>

</li>
<li><p>a library of transitive permutation groups, provided by the <strong class="pkg">TransGrp</strong> package (see <a href="../../pkg/transgrp/htm/CHAP001.htm#SECT001"><span class="RefLink">transgrp: Transitive Permutation Groups</span></a>),</p>

</li>
<li><p>a library of groups of small order, provided by the <strong class="pkg">SmallGrp</strong> package (see <a href="../../pkg/smallgrp/doc/chap1_mj.html#X7C16EA1580AC7586"><span class="RefLink">smallgrp: The Small Groups Library</span></a>),</p>

</li>
<li><p>a libary of finite perfect groups, (see <a href="chap50_mj.html#X7A884ECF813C2026"><span class="RefLink">50.6</span></a>),</p>

</li>
<li><p>a library of primitive permutations groups, provided by the <strong class="pkg">PrimGrp</strong> package (see <a href="../../pkg/primgrp/doc/chap1_mj.html#X7AE00EA7791F2574"><span class="RefLink">primgrp: Primitive Permutation Groups</span></a>),</p>

</li>
<li><p>the irreducible solvable subgroups of <span class="SimpleMath">\(GL(n,q)\)</span> for <span class="SimpleMath">\(n>1\)</span>, <span class="SimpleMath">\(q\)</span> a prime power and <span class="SimpleMath">\(q^n < 2^{24}\)</span>, provided by the <strong class="pkg">IRREDSOL</strong> package (see <a href="../../pkg/irredsol/htm/CHAP001.htm"><span class="RefLink">irredsol: Overview</span></a>),</p>

</li>
<li><p>the irreducible maximal finite integral matrix groups of dimension at most 31 (see <a href="chap50_mj.html#X7873506D873EDB95"><span class="RefLink">50.7</span></a>),</p>

</li>
<li><p>the crystallographic groups of dimension at most 4, provided by the <strong class="pkg">CrystCat</strong> package (see <a href="../../pkg/crystcat/htm/CHAP001.htm"><span class="RefLink">CrystCat: The Crystallographic Groups Catalog</span></a>).</p>

</li>
</ul>
<p>There is usually no relation between the groups in the different libraries and a group may occur in different libraries in different incarnations.</p>

<p>Note that a system administrator may choose to install all, or only a few, or even none of the libraries. So some of the libraries mentioned below may not be available on your installation.</p>

<p><strong class="pkg">GAP</strong> might use data libraries that are available to speed up calculations, for example in using a classification to determine that groups must be isomorphic, based on agreement of properties; or to determine maximal subgroups or subgroup maximality. This will be indicated by an info message of level 2 in the info class <code class="code">InfoPerformance</code>. If the calculation is to be independent of such data library use, for example if it is used to verify the data library, functions can be called with the option <code class="code">NoPrecomputedData</code>, to turn these features off. Doing so might cause significantly longer calculations, or even failure of certain calculations.</p>

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

<h4>50.1 <span class="Heading">Basic Groups</span></h4>

<p>There are several infinite families of groups which are parametrized by numbers. <strong class="pkg">GAP</strong> provides various functions to construct these groups. The functions always permit (but do not require) one to indicate a filter (see <a href="chap13_mj.html#X84EFA4C07D4277BB"><span class="RefLink">13.2</span></a>), for example <code class="func">IsPermGroup</code(<a href="chap43_mj.html#X7879877482F59676"><span class="RefLink">43.1-1</span></a>), <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>) or <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>), in which the group shall be constructed. There always is a default filter corresponding to a <q>natural</q> way to describe the group in question. Note that not every group can be constructed in every filter, there may be theoretical restrictions (<code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>) only works for solvable groups) or methods may be available only for a few filters.</p>

<p>Certain filters may admit additional hints. For example, groups constructed in <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>) may be constructed over a specified field, which can be given as second argument of the function that constructs the group; The default field is <code class="func">Rationals</code> (<a href="chap17_mj.html#X7B6029D18570C08A"><span class="RefLink">17.1-1</span></a>).</p>

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

<h5>50.1-1 TrivialGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ TrivialGroup</code>( [<var class="Arg">filter</var>] )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs a trivial group in the category given by the filter <var class="Arg">filter</var>. If <var class="Arg">filter</var> is not given it defaults to <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">TrivialGroup();</span>
<pc group of size 1 with 0 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">TrivialGroup( IsPermGroup );</span>
Group(())
</pre></div>

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

<h5>50.1-2 CyclicGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CyclicGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs the cyclic group of size <var class="Arg">n</var> in the category given by the filter <var class="Arg">filt</var>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>), unless <var class="Arg">n</var> equals <code class="func">infinity</code> (<a href="chap18_mj.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>), in which case the default filter is switched to <code class="func">IsFpGroup</code> (<a href="chap47_mj.html#X850B9DF17D90C3A2"><span class="RefLink">47.1-2</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclicGroup(12);</span>
<pc group of size 12 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclicGroup(infinity);</span>
<free group on the generators [ a ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclicGroup(IsPermGroup,12);</span>
Group([ (1,2,3,4,5,6,7,8,9,10,11,12) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">matgrp1:= CyclicGroup( IsMatrixGroup, 12 );</span>
<matrix group of size 12 with 1 generator>
<span class="GAPprompt">gap></span> <span class="GAPinput">FieldOfMatrixGroup( matgrp1 );</span>
Rationals
<span class="GAPprompt">gap></span> <span class="GAPinput">matgrp2:= CyclicGroup( IsMatrixGroup, GF(2), 12 );</span>
<matrix group of size 12 with 1 generator>
<span class="GAPprompt">gap></span> <span class="GAPinput">FieldOfMatrixGroup( matgrp2 );</span>
GF(2)
</pre></div>

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

<h5>50.1-3 AbelianGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AbelianGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">ints</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs an abelian group in the category given by the filter <var class="Arg">filt</var> which is of isomorphism type <span class="SimpleMath">\(C_{{\textit{ints}[1]}} \times C_{{\textit{ints}[2]}} \times \ldots \times C_{{\textit{ints}[n]}}\)</span>, where <var class="Arg">ints</var> must be a list of non-negative integers or <code class="func">infinity</code> (<a href="chap18_mj.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>); for the latter value or 0, <span class="SimpleMath">\(C_{{\textit{ints}[i]}}\)</span> is taken as an infinite cyclic group, otherwise as a cyclic group of order <var class="Arg">ints</var>[i]. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>), unless any 0 or <code class="code">infinity</code> is contained in <var class="Arg">ints</var>, in which the default filter is switched to <code class="func">IsFpGroup</code> (<a href="chap47_mj.html#X850B9DF17D90C3A2"><span class="RefLink">47.1-2</span></a>). The generators of the group returned are the elements corresponding to the factors <span class="SimpleMath">\(C_{{\textit{ints}[i]}}\)</span> and hence the integers in <var class="Arg">ints</var>. For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">AbelianGroup([1,2,3]);</span>
<pc group of size 6 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">G:=AbelianGroup([0,3]);</span>
<fp group of size infinity on the generators [ f1, f2 ]>
<span class="GAPprompt">gap></span> <span class="GAPinput">AbelianInvariants(G);</span>
[ 0, 3 ]
</pre></div>

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

<h5>50.1-4 ElementaryAbelianGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ElementaryAbelianGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs the elementary abelian group of size <var class="Arg">n</var> in the category given by the filter <var class="Arg">filt</var>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ElementaryAbelianGroup(8192);</span>
<pc group of size 8192 with 13 generators>
</pre></div>

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

<h5>50.1-5 FreeAbelianGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ FreeAbelianGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">rank</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs the free abelian group of rank <var class="Arg">n</var> in the category given by the filter <var class="Arg">filt</var>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsFpGroup</code> (<a href="chap47_mj.html#X850B9DF17D90C3A2"><span class="RefLink">47.1-2</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">FreeAbelianGroup(4);</span>
<fp group of size infinity on the generators [ f1, f2, f3, f4 ]>
</pre></div>

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

<h5>50.1-6 DihedralGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DihedralGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs the dihedral group of size <var class="Arg">n</var> in the category given by the filter <var class="Arg">filt</var>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>), unless <var class="Arg">n</var> equals <code class="func">infinity</code> (<a href="chap18_mj.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>), in which case the default filter is switched to <code class="func">IsFpGroup</code> (<a href="chap47_mj.html#X850B9DF17D90C3A2"><span class="RefLink">47.1-2</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DihedralGroup(8);</span>
<pc group of size 8 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">DihedralGroup( IsPermGroup, 8 );</span>
Group([ (1,2,3,4), (2,4) ])
<span class="GAPprompt">gap></span> <span class="GAPinput">DihedralGroup(infinity);</span>
<fp group of size infinity on the generators [ r, s ]>
</pre></div>

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

<h5>50.1-7 IsDihedralGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDihedralGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DihedralGenerators</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><code class="func">IsDihedralGroup</code> indicates whether the group <var class="Arg">G</varis a dihedral group. If it is, methods may set the attribute <code class="func">DihedralGenerators</code> to [<var class="Arg">t</var>,<var class="Arg">s</var>], where <var class="Arg">t</var> and <var class="Arg">s</var> are two elements such that <var class="Arg">G</var> = <span class="SimpleMath">\(\langle t, s | t^2 = s^n = 1, s^t = s^{-1} \rangle\)</span>.</p>

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

<h5>50.1-8 DicyclicGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DicyclicGroup</code>( [<var class="Arg">filt</var>, [<var class="Arg">field</var>, ]]<var class="Arg">n</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">‣ QuaternionGroup</code>( [<var class="Arg">filt</var>, [<var class="Arg">field</var>, ]]<var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><code class="func">DicyclicGroup</code> constructs the dicyclic group of size <var class="Arg">n</var> in the category given by the filter <var class="Arg">filt</var>. Here, <var class="Arg">n</var> must be a multiple of 4. The synonym <code class="func">QuaternionGroup</code> for <code class="func">DicyclicGroup</code> is provided for backward compatibility, but will print a warning if <var class="Arg">n</var> is not a power of <span class="SimpleMath">\(2\)</span>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>). Methods are also available for permutation and matrix groups (of minimal degree and minimal dimension in coprime characteristic).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">DicyclicGroup(24);</span>
<pc group of size 24 with 4 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=QuaternionGroup(IsMatrixGroup,CF(16),32);</span>
Group([ [ [ 0, 1 ], [ -1, 0 ] ], [ [ E(16), 0 ], [ 0, -E(16)^7 ] ] ])
</pre></div>

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

<h5>50.1-9 IsDicyclicGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsDicyclicGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ DicyclicGenerators</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">‣ IsGeneralisedQuaternionGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneralisedQuaternionGenerators</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">‣ IsQuaternionGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( property )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ QuaternionGenerators</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p><code class="func">IsDicyclicGroup</code> indicates whether the group <var class="Arg">G</varis a dicyclic group of order <span class="SimpleMath">\(N = 4n\)</span>. If it is, methods may set the attribute <code class="func">DicyclicGenerators</code> to <span class="SimpleMath">\([ t, s ]\)</span>, where <span class="SimpleMath">\(t\)</span> and <span class="SimpleMath">\(s\)</span> are two elements such that <var class="Arg">G</var> = <span class="SimpleMath">\(\langle t, s | s^{2n} = 1, t^2 = s^n, s^t = s^{-1} \rangle\)</span> holds.</p>

<p><code class="func">IsGeneralisedQuaternionGroup</code> indicates whether <var class="Arg">G</var> is a generalized quaternion group, i. e., a dicyclic group of <span class="SimpleMath">\(2\)</span>-power order. If it is, methods may set the attribute <code class="func">GeneralisedQuaternionGenerators</code> to the value of <code class="func">DicyclicGenerators</code> for <var class="Arg">G</var>.</p>

<p><code class="func">IsQuaternionGroup</code> and <code class="func">QuaternionGenerators</code> are provided for backwards compatibility with existing code.</p>

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

<h5>50.1-10 ExtraspecialGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ExtraspecialGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">order</var>, <var class="Arg">exp</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Let <var class="Arg">order</var> be of the form <span class="SimpleMath">\(p^{{2n+1}}\)</span>, for a prime integer <span class="SimpleMath">\(p\)</span> and a positive integer <span class="SimpleMath">\(n\)</span>. <code class="func">ExtraspecialGroup</code> returns the extraspecial group of order <var class="Arg">order</var> that is determined by <var class="Arg">exp</var>, in the category given by the filter <var class="Arg">filt</var>.</p>

<p>If <span class="SimpleMath">\(p\)</span> is odd then admissible values of <var class="Arg">exp</var> are the exponent of the group (either <span class="SimpleMath">\(p\)</span> or <span class="SimpleMath">\(p^2\)</span>) or one of <code class="code">'+'</code>, <code class="code">"+"</code>, <code class="code">'-'</code>, <code class="code">"-"</code>. For <span class="SimpleMath">\(p = 2\)</span>, only the above plus or minus signs are admissible.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPcGroup</code> (<a href="chap46_mj.html#X7D1F506D7830B1D9"><span class="RefLink">46.3-1</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ExtraspecialGroup( 27, 3 );</span>
<pc group of size 27 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">ExtraspecialGroup( 27, '+' );</span>
<pc group of size 27 with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">ExtraspecialGroup( 8, "-" );</span>
<pc group of size 8 with 3 generators>
</pre></div>

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

<h5>50.1-11 <span class="Heading">AlternatingGroup</span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ AlternatingGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">deg</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">‣ AlternatingGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">dom</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs the alternating group of degree <var class="Arg">deg</var> in the category given by the filter <var class="Arg">filt</var>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPermGroup</code> (<a href="chap43_mj.html#X7879877482F59676"><span class="RefLink">43.1-1</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>). In the second version, the function constructs the alternating group on the points given in the set <var class="Arg">dom</var> which must be a set of positive integers.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">AlternatingGroup(5);</span>
Alt( [ 1 .. 5 ] )
</pre></div>

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

<h5>50.1-12 <span class="Heading">SymmetricGroup</span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SymmetricGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">deg</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">‣ SymmetricGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">dom</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs the symmetric group of degree <var class="Arg">deg</var> in the category given by the filter <var class="Arg">filt</var>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPermGroup</code> (<a href="chap43_mj.html#X7879877482F59676"><span class="RefLink">43.1-1</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>). In the second version, the function constructs the symmetric group on the points given in the set <var class="Arg">dom</var> which must be a set of positive integers.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">SymmetricGroup(10);</span>
Sym( [ 1 .. 10 ] )
</pre></div>

<p>Note that permutation groups provide special treatment of symmetric and alternating groups, see <a href="chap43_mj.html#X834208CD7C2956A3"><span class="RefLink">43.4</span></a>.</p>

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

<h5>50.1-13 MathieuGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ MathieuGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">degree</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs the Mathieu group of degree <var class="Arg">degree</var> in the category given by the filter <var class="Arg">filt</var>, where <var class="Arg">degree</var> must be in the set <span class="SimpleMath">\(\{ 9, 10, 11, 12, 21, 22, 23, 24 \}\)</span>. If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsPermGroup</code> (<a href="chap43_mj.html#X7879877482F59676"><span class="RefLink">43.1-1</span></a>). For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">MathieuGroup( 11 );</span>
Group([ (1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6) ])
</pre></div>

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

<h5>50.1-14 SuzukiGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SuzukiGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">q</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">‣ Sz</code>( [<var class="Arg">filt</var>, ]<var class="Arg">q</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Constructs a group isomorphic to the Suzuki group Sz( <var class="Arg">q</var> ) over the field with <var class="Arg">q</var> elements, where <var class="Arg">q</var> is a non-square power of <span class="SimpleMath">\(2\)</span>.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>), and the returned group is the Suzuki group itself. For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">SuzukiGroup( 32 );</span>
Sz(32)
</pre></div>

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

<h5>50.1-15 ReeGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ReeGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">q</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">‣ Ree</code>( [<var class="Arg">filt</var>, ]<var class="Arg">q</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Constructs a group isomorphic to the Ree group <span class="SimpleMath">\(^2G_2(q)\)</span> where <span class="SimpleMath">\(q = 3^{{1+2m}}\)</span> for <span class="SimpleMath">\(m\)</span> a non-negative integer.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>) and the generating matrices are based on <a href="chapBib_mj.html#biBKLM01">[KLM01]</a>. (No particular choice of a generating set is guaranteed.) For more information on possible values of <var class="Arg">filt</var> see section (<a href="chap50_mj.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">ReeGroup( 27 );</span>
Ree(27)
</pre></div>

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

<h5>50.1-16 <span class="Heading">Generator Names</span></h5>

<p>For groups created as finitely presented groups, including polycyclic groups, the generators are labelled, by default, with a letter and a number. It is possible to influence this naming with the option <code class="code">generatorNames</code>, see Section <a href="chap4_mj.html#X867D54987EF86D1D"><span class="RefLink">4.12-2</span></a>. If this option holds a string, then the generators are named with this string and sequential numbers starting with <code class="code">1</code>. If this option holds a list of sufficient length consisting of nonempty strings, then the generator names are taken from this list, in order.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup(AbelianGroup([5,7]));</span>
[ f1, f2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup(AbelianGroup([5,7]:generatorNames:="a"));</span>
[ a1, a2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup(AbelianGroup([5,7]:generatorNames:=["u","v","w"]));</span>
[ u, v ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AsSSortedList(DihedralGroup(12:generatorNames:="a"));</span>
[ <identity> of ..., a1, a2, a3, a1*a2, a1*a3, a2*a3, a3^2, a1*a2*a3,
  a1*a3^2, a2*a3^2, a1*a2*a3^2 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">AsSSortedList(DihedralGroup(12:generatorNames:=["a","b","c"]));</span>
[ <identity> of ..., a, b, c, a*b, a*c, b*c, c^2, a*b*c, a*c^2, b*c^2,
  a*b*c^2 ]
</pre></div>

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

<h4>50.2 <span class="Heading">Classical Groups</span></h4>

<p>The following functions return classical groups.</p>

<p>For the linear, symplectic, and unitary groups (the latter in dimension at least <span class="SimpleMath">\(3\)</span>), the generators are taken from <a href="chapBib_mj.html#biBTay87">[Tay87]</a>. For the unitary groups in dimension <span class="SimpleMath">\(2\)</span>, the isomorphism of SU<span class="SimpleMath">\((2,q)\)</span> and SL<span class="SimpleMath">\((2,q)\)</span> is used, see for example <a href="chapBib_mj.html#biBHup67">[Hup67]</a>.</p>

<p>The generators of the general and special orthogonal groups are taken from <a href="chapBib_mj.html#biBIshibashiEarnest94">[IE94]</a> and <a href="chapBib_mj.html#biBKleidmanLiebeck90">[KL90]</a>, except that the generators of the groups in odd dimension in even characteristic are constructed via the isomorphism to a symplectic group, see for example <a href="chapBib_mj.html#biBCar72a">[Car72]</a>.</p>

<p>The generators of the groups <span class="SimpleMath">\(\Omega^\epsilon(d, q)\)</span> are taken from <a href="chapBib_mj.html#biBRylandsTalor98">[RT98]</a>, except that in odd dimension and even characteristic, the generators of SO<span class="SimpleMath">\((d, q)\)</span> are taken for <span class="SimpleMath">\(\Omega(d, q)\)</span>. Note that the generators claimed in <a href="chapBib_mj.html#biBRylandsTalor98">[RT98, Section 4.5 and 4.6]</a> do not describe orthogonal groups, one would have to transpose these matrices in order to get groups that respect the required forms. The matrices from <a href="chapBib_mj.html#biBRylandsTalor98">[RT98]</a> generate groups of the right isomorphism types but not orthogonal groups, except in the case <span class="SimpleMath">\((d,q) = (5,2)\)</span>, where the matrices from <a href="chapBib_mj.html#biBRylandsTalor98">[RT98]</a> generate the simple group <span class="SimpleMath">\(S_4(2)'\) and not the group \(S_4(2)\).



<p>The generators for the semilinear groups are constructed from the generators of the corresponding linear groups plus one additional generator that describes the action of the group of field automorphisms; for prime integers <span class="SimpleMath">\(p\)</span> and positive integers <span class="SimpleMath">\(f\)</span>, this yields the matrix groups <span class="SimpleMath">\(Gamma\)</span>L<span class="SimpleMath">\((d, p^f)\)</span> and <span class="SimpleMath">\(Sigma\)</span>L<span class="SimpleMath">\((d, p^f)\)</span> as groups of <span class="SimpleMath">\(d f \times df\)</span> matrices over the field with <span class="SimpleMath">\(p\)</span> elements.</p>

<p>For symplectic and orthogonal matrix groups returned by the functions described below, the invariant bilinear form is stored as the value of the attribute <code class="func">InvariantBilinearForm</code> (<a href="chap44_mj.html#X7C08385A81AB05E1"><span class="RefLink">44.5-1</span></a>). Analogously, the invariant sesquilinear form defining the unitary groups is stored as the value of the attribute <code class="func">InvariantSesquilinearForm</code> (<a href="chap44_mj.html#X82F22079852130C9"><span class="RefLink">44.5-3</span></a>)). The defining quadratic form of orthogonal groups is stored as the value of the attribute <code class="func">InvariantQuadraticForm</code> (<a href="chap44_mj.html#X7BCACC007EB9B613"><span class="RefLink">44.5-5</span></a>).</p>

<p>Note that due to the different sources for the generators, the invariant forms for the groups <span class="SimpleMath">\(\Omega(e,d,q)\)</span> are in general different from the forms for SO<span class="SimpleMath">\((e,d,q)\)</span> and GO<span class="SimpleMath">\((e,d,q)\)</span>. If version at least 1.2.6 of the <strong class="pkg">Forms</strong> package is loaded then compatible groups can be created by specifying the desired form, see the sections below.</p>

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

<h5>50.2-1 <span class="Heading">GeneralLinearGroup</span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneralLinearGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">R</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">‣ GL</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">R</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">‣ GeneralLinearGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</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">‣ GL</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>The first two forms construct a group isomorphic to the general linear group GL( <var class="Arg">d</var>, <var class="Arg">R</var> ) of all <span class="SimpleMath">\(\textit{d} \times \textit{d}\)</span> matrices that are invertible over the ring <var class="Arg">R</var>, in the category given by the filter <var class="Arg">filt</var>.</p>

<p>The third and the fourth form construct the general linear group over the finite field with <var class="Arg">q</var> elements.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>), and the returned group is the general linear group as a matrix group in its natural action (see also <code class="func">IsNaturalGL</code> (<a href="chap44_mj.html#X86F9A27D7AFAEB5A"><span class="RefLink">44.4-2</span></a>), <code class="func">IsNaturalGLnZ</code> (<a href="chap44_mj.html#X86F9CC1E7DB97CB6"><span class="RefLink">44.6-4</span></a>)).</p>

<p>Currently supported rings <var class="Arg">R</var> are finite fields, the ring <code class="func">Integers</code> (<a href="chap14_mj.html#X7E20D82B79DE5129"><span class="RefLink">14.1-1</span></a>), and residue class rings <code class="code">Integers mod <var class="Arg">m</var></code>, see <a href="chap14_mj.html#X864BF040862409FC"><span class="RefLink">14.5</span></a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GL(4,3);</span>
GL(4,3)
<span class="GAPprompt">gap></span> <span class="GAPinput">GL(2,Integers);</span>
GL(2,Integers)
<span class="GAPprompt">gap></span> <span class="GAPinput">GL(3,Integers mod 12);</span>
GL(3,Z/12Z)
</pre></div>

<p>Using the <code class="func">OnLines</code> (<a href="chap41_mj.html#X86DC2DD5829CAD9A"><span class="RefLink">41.2-12</span></a>) operation it is possible to obtain the corresponding projective groups in a permutation action:</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">g:=GL(4,3);;Size(g);</span>
24261120
<span class="GAPprompt">gap></span> <span class="GAPinput">pgl:=Action(g,Orbit(g,Z(3)^0*[1,0,0,0],OnLines),OnLines);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(pgl);</span>
12130560
</pre></div>

<p>If you are interested only in the projective group as a permutation group and not in the correspondence between its moved points and the points in the projective space, you can also use <code class="func">PGL</code> (<a href="chap50_mj.html#X7F0DBEB880D2D574"><span class="RefLink">50.2-11</span></a>).</p>

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

<h5>50.2-2 <span class="Heading">SpecialLinearGroup</span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SpecialLinearGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">R</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">‣ SL</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">R</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">‣ SpecialLinearGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</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">‣ SL</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>The first two forms construct a group isomorphic to the special linear group SL( <var class="Arg">d</var>, <var class="Arg">R</var> ) of all those <span class="SimpleMath">\(\textit{d} \times \textit{d}\)</span> matrices over the ring <var class="Arg">R</var> whose determinant is the identity of <var class="Arg">R</var>, in the category given by the filter <var class="Arg">filt</var>.</p>

<p>The third and the fourth form construct the special linear group over the finite field with <var class="Arg">q</var> elements.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>), and the returned group is the special linear group as a matrix group in its natural action (see also <code class="func">IsNaturalSL</code> (<a href="chap44_mj.html#X84134F08781EB943"><span class="RefLink">44.4-4</span></a>), <code class="func">IsNaturalSLnZ</code> (<a href="chap44_mj.html#X7B0E70127F5D2EAF"><span class="RefLink">44.6-5</span></a>)).</p>

<p>Currently supported rings <var class="Arg">R</var> are finite fields, the ring <code class="func">Integers</code> (<a href="chap14_mj.html#X853DF11B80068ED5"><span class="RefLink">14</span></a>), and residue class rings <code class="code">Integers mod <var class="Arg">m</var></code>, see <a href="chap14_mj.html#X864BF040862409FC"><span class="RefLink">14.5</span></a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">SpecialLinearGroup(2,2);</span>
SL(2,2)
<span class="GAPprompt">gap></span> <span class="GAPinput">SL(3,Integers);</span>
SL(3,Integers)
<span class="GAPprompt">gap></span> <span class="GAPinput">SL(4,Integers mod 4);</span>
SL(4,Z/4Z)
</pre></div>

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

<h5>50.2-3 GeneralUnitaryGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ GeneralUnitaryGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var>[, <var class="Arg">form</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">‣ GeneralUnitaryGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">form</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">‣ GU</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var>[, <var class="Arg">form</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">‣ GU</code>( [<var class="Arg">filt</var>, ]<var class="Arg">form</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs a group isomorphic to the general unitary group GU( <var class="Arg">d</var>, <var class="Arg">q</var> ) of those <span class="SimpleMath">\(\textit{d} \times \textit{d}\)</span> matrices over the field with <span class="SimpleMath">\(\textit{q}^2\)</span> elements that respect a fixed nondegenerate sesquilinear form, in the category given by the filter <var class="Arg">filt</var>.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>), and the returned group is the general unitary group itself.</p>

<p>If version at least 1.2.6 of the <strong class="pkg">Forms</strong> package is loaded then the desired sesquilinear form can be specified via <var class="Arg">form</var>, which can be either a matrix or a form object in <code class="func">IsHermitianForm</code> (<a href="../../pkg/forms/doc/chap4_mj.html#X7FA162E5874E8330"><span class="RefLink">Forms: IsHermitianForm</span></a>) or a group with stored <code class="func">InvariantSesquilinearForm</code> (<a href="chap44_mj.html#X82F22079852130C9"><span class="RefLink">44.5-3</span></a>) value (and then this form is taken).</p>

<p>A given <var class="Arg">form</var> determines <var class="Arg">d</var>, and also <var class="Arg">q</var> except if <var class="Arg">form</var> is a matrix that does not store its <code class="func">BaseDomain</code> (<a href="chap26_mj.html#X8662026C7CCDB446"><span class="RefLink">26.3-1</span></a>) value. These parameters can be entered, and an error is signalled if they do not fit to the given <var class="Arg">form</var>.</p>

<p>If <var class="Arg">form</var> is not given then a default is chosen as described in the introduction to Section <a href="chap50_mj.html#X8674AAA578FE4AEE"><span class="RefLink">50.2</span></a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneralUnitaryGroup( 3, 5 );</span>
GU(3,5)
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneralUnitaryGroup( IsPermGroup, 3, 5 );</span>
Perm_GU(3,5)
</pre></div>

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

<h5>50.2-4 SpecialUnitaryGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SpecialUnitaryGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var>[, <var class="Arg">form</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">‣ SpecialUnitaryGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">form</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">‣ SU</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var>[, <var class="Arg">form</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">‣ SU</code>( [<var class="Arg">filt</var>, ]<var class="Arg">form</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs a group isomorphic to the special unitary group SU( <var class="Arg">d</var>, <var class="Arg">q</var> ) of those <span class="SimpleMath">\(\textit{d} \times \textit{d}\)</span> matrices over the field with <span class="SimpleMath">\(\textit{q}^2\)</span> elements whose determinant is the identity of the field and that respect a fixed nondegenerate sesquilinear form, in the category given by the filter <var class="Arg">filt</var>.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>), and the returned group is the special unitary group itself.</p>

<p>If version at least 1.2.6 of the <strong class="pkg">Forms</strong> package is loaded then the desired sesquilinear form can be specified via <var class="Arg">form</var>, which can be either a matrix or a form object in <code class="func">IsHermitianForm</code> (<a href="../../pkg/forms/doc/chap4_mj.html#X7FA162E5874E8330"><span class="RefLink">Forms: IsHermitianForm</span></a>) or a group with stored <code class="func">InvariantSesquilinearForm</code> (<a href="chap44_mj.html#X82F22079852130C9"><span class="RefLink">44.5-3</span></a>) value (and then this form is taken).</p>

<p>A given <var class="Arg">form</var> determines <var class="Arg">d</var>, and also <var class="Arg">q</var> except if <var class="Arg">form</var> is a matrix that does not store its <code class="func">BaseDomain</code> (<a href="chap26_mj.html#X8662026C7CCDB446"><span class="RefLink">26.3-1</span></a>) value. These parameters can be entered, and an error is signalled if they do not fit to the given <var class="Arg">form</var>.</p>

<p>If <var class="Arg">form</var> is not given then a default is chosen as described in the introduction to Section <a href="chap50_mj.html#X8674AAA578FE4AEE"><span class="RefLink">50.2</span></a>.</p>


<div class="example"><pre>
<span class="GAPprompt">gap></span> <span class="GAPinput">SpecialUnitaryGroup( 3, 5 );</span>
SU(3,5)
<span class="GAPprompt">gap></span> <span class="GAPinput">SpecialUnitaryGroup( IsPermGroup, 3, 5 );</span>
Perm_SU(3,5)
</pre></div>

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

<h5>50.2-5 <span class="Heading">SymplecticGroup</span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SymplecticGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var>[, <var class="Arg">form</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">‣ SymplecticGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">ring</var>[, <var class="Arg">form</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">‣ SymplecticGroup</code>( [<var class="Arg">filt</var>, ]<var class="Arg">form</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">‣ Sp</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var>[, <var class="Arg">form</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">‣ Sp</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">ring</var>[, <var class="Arg">form</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">‣ Sp</code>( [<var class="Arg">filt</var>, ]<var class="Arg">form</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">‣ SP</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">q</var>[, <var class="Arg">form</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">‣ SP</code>( [<var class="Arg">filt</var>, ]<var class="Arg">d</var>, <var class="Arg">ring</var>[, <var class="Arg">form</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">‣ SP</code>( [<var class="Arg">filt</var>, ]<var class="Arg">form</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>constructs a group isomorphic to the symplectic group Sp( <var class="Arg">d</var>, <var class="Arg">q</var> ) of those <span class="SimpleMath">\(\textit{d} \times \textit{d}\)</span> matrices over the field with <var class="Arg">q</var> elements (respectively the ring <var class="Arg">ring</var>) that respect a fixed nondegenerate symplectic form, in the category given by the filter <var class="Arg">filt</var>.</p>

<p>If <var class="Arg">filt</var> is not given it defaults to <code class="func">IsMatrixGroup</code> (<a href="chap44_mj.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>), and the returned group is the symplectic group itself.</p>

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

--> maximum size reached

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

100%


¤ 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.0.81Bemerkung:  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Normalansicht

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.