<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.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>),</p>
</li>
<li><p>classical matrix groups (see <a href="chap50.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.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.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.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.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>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.html#X84EFA4C07D4277BB"><span class="RefLink">13.2</span></a>), for example <code class="func">IsPermGroup</code> (<a href="chap43.html#X7879877482F59676"><span class="RefLink">43.1-1</span></a>), <code class="func">IsMatrixGroup</code> (<a href="chap44.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>) or <code class="func">IsPcGroup</code> (<a href="chap46.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 (<codeclass="func">IsPcGroup</code> (<a href="chap46.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.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.html#X7B6029D18570C08A"><span class="RefLink">17.1-1</span></a>).</p>
<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.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.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>
<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.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.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.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.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>
<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_{<var class="Arg">ints</var>[1]} × C_{<var class="Arg">ints</var>[2]} × ... × C_{<var class="Arg">ints</var>[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.html#X8511B8DF83324C27"><span class="RefLink">18.2-1</span></a>); for the latter value or 0, <span class="SimpleMath">C_{<var class="Arg">ints</var>[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.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 <codeclass="func">IsFpGroup</code> (<a href="chap47.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_{<var class="Arg">ints</var>[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.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>
<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.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.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>
<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.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.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>
<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.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.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.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.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>
<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</var> is 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 <varclass="Arg">s</var> are two elements such that <var class="Arg">G</var> = <span class="SimpleMath">⟨ t, s | t^2 = s^n = 1, s^t = s^-1 ⟩</span>.</p>
<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.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.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="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</var> is 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">⟨ t, s | s^2n = 1, t^2 = s^n, s^t = s^-1 ⟩</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>
<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.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.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>
<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 <codeclass="func">IsPermGroup</code> (<a href="chap43.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.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 <varclass="Arg">dom</var> which must be a set of positive integers.</p>
<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.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.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>
<p>Note that permutation groups provide special treatment of symmetric and alternating groups, see <a href="chap43.html#X834208CD7C2956A3"><span class="RefLink">43.4</span></a>.</p>
<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.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.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>
<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.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.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>
<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.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>) and the generating matrices are based on <a href="chapBib.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.html#X839981CC7D9B671B"><span class="RefLink">50.1</span></a>).</p>
<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.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>
<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.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.html#biBHup67">[Hup67]</a>.</p>
<p>The generators of the general and special orthogonal groups are taken from <a href="chapBib.html#biBIshibashiEarnest94">[IE94]</a> and <a href="chapBib.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.html#biBCar72a">[Car72]</a>.</p>
<p>The generators of the groups <span class="SimpleMath">Ω^ϵ(d, q)</span> are taken from <a href="chapBib.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">Ω(d, q)</span>. Note that the generators claimed in <a href="chapBib.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.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.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 × 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.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.html#X82F22079852130C9"><span class="RefLink">44.5-3</span></a>)). The defining quadratic formof orthogonal groups is stored as the value of the attribute <code class="func">InvariantQuadraticForm</code> (<a href="chap44.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">Ω(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>
<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"><var class="Arg">d</var> × <var class="Arg">d</var></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 <varclass="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.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.html#X86F9A27D7AFAEB5A"><span class="RefLink">44.4-2</span></a>), <code class="func">IsNaturalGLnZ</code> (<a href="chap44.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.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.html#X864BF040862409FC"><span class="RefLink">14.5</span></a>.</p>
<p>Using the <code class="func">OnLines</code> (<a href="chap41.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>
<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.html#X7F0DBEB880D2D574"><span class="RefLink">50.2-11</span></a>).</p>
<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"><var class="Arg">d</var> × <var class="Arg">d</var></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 <varclass="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.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.html#X84134F08781EB943"><span class="RefLink">44.4-4</span></a>), <code class="func">IsNaturalSLnZ</code> (<a href="chap44.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.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.html#X864BF040862409FC"><span class="RefLink">14.5</span></a>.</p>
<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"><var class="Arg">d</var> × <var class="Arg">d</var></span> matrices over the field with <span class="SimpleMath"><var class="Arg">q</var>^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.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 formobject in <code class="func">IsHermitianForm</code> (<a href="../../pkg/forms/doc/chap4.html#X7FA162E5874E8330"><span class="RefLink">Forms: IsHermitianForm</span></a>) or a group with stored <code class="func">InvariantSesquilinearForm</code> (<a href="chap44.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.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.html#X8674AAA578FE4AEE"><span class="RefLink">50.2</span></a>.</p>
<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"><var class="Arg">d</var> × <var class="Arg">d</var></span> matrices over the field with <span class="SimpleMath"><var class="Arg">q</var>^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.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 formobject in <code class="func">IsHermitianForm</code> (<a href="../../pkg/forms/doc/chap4.html#X7FA162E5874E8330"><span class="RefLink">Forms: IsHermitianForm</span></a>) or a group with stored <code class="func">InvariantSesquilinearForm</code> (<a href="chap44.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.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.html#X8674AAA578FE4AEE"><span class="RefLink">50.2</span></a>.</p>
<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"><var class="Arg">d</var> × <var class="Arg">d</var></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.html#X7E6093FF85F1C3A1"><span class="RefLink">44.1-1</span></a>), and the returned group is the symplectic group itself.</p>
<p>At the moment finite fields or residue class rings <code class="code">Integers mod <var class="Arg">q</var></code>, with <var class="Arg">q</var> an odd prime power, are supported.</p>
<p>If version at least 1.2.6 of the <strong class="pkg">Forms</strong> package is loaded and the arguments describe a matrix group over a finite field then the desired bilinear form can be specified via <var class="Arg">form</var>, which can be either a matrix or a formobject in <code class="func">IsBilinearForm</code> (<a href="../../pkg/forms/doc/chap4.html#X7FA162E5874E8330"><span class="RefLink">Forms: IsBilinearForm</span></a>) or a group with stored <code class="func">InvariantBilinearForm</code> (<a href="chap44.html#X7C08385A81AB05E1"><span class="RefLink">44.5-1</span></a>) value (and then this form is taken).</p>
--> --------------------
--> maximum size reached
--> --------------------
¤ Dauer der Verarbeitung: 0.21 Sekunden
(vorverarbeitet)
¤
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.