<html><head><title>[IRREDSOL] 4 Additional functionality for matrix groups</title></head> <body text="#000000" bgcolor="#ffffff"> [<a href = "chapters.htm">Up</a>] [<a href ="CHAP003.htm">Previous</a>] [<a href ="CHAP005.htm">Next</a>] [<a href = "theindex.htm">Index</a>] <h1>4 Additional functionality for matrix groups</h1><p> <P> <H3>Sections</H3> <oL> <li> <A HREF="CHAP004.htm#SECT001">Basic attributes for matrix groups</a> <li> <A HREF="CHAP004.htm#SECT002">Irreducibility and maximality of matrix groups</a> <li> <A HREF="CHAP004.htm#SECT003">Primitivity of matrix groups</a> <li> <A HREF="CHAP004.htm#SECT004">Conjugating matrix groups into smaller fields</a> </ol><p> <p> This chapter explains some attributes, properties, and operations which may be useful for working with matrix groups. Some of these are part of the <font face="Gill Sans,Helvetica,Arial">GAP</font> library and are listed for the sake of completeness, and some are provided by the package <font face="Gill Sans,Helvetica,Arial">IRREDSOL</font>. Note that groups constructed by functions in <font face="Gill Sans,Helvetica,Arial">IRREDSOL</font> already have the appropriate properties and attributes. <p> <p> <h2><a name="SECT001">4.1 Basic attributes for matrix groups</a></h2> <p><p> <a name = "SSEC001.1"></a> <li><code>DegreeOfMatrixGroup(</code><var>G</var><code>) A</code> <a name = "SSEC001.1"></a> <li><code>Degree(</code><var>G</var><code>) O</code> <a name = "SSEC001.1"></a> <li><code>DimensionOfMatrixGroup(</code><var>G</var><code>) A</code> <a name = "SSEC001.1"></a> <li><code>Dimension(</code><var>G</var><code>) A</code> <p> This is the degree of the matrix group or, equivalently, the dimension of the natural underlying vector space. See also <a href="../../../doc/htm/ref/CHAP042.htm#SSEC001.1">DimensionOfMatrixGroup</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> reference manual. <p> <a name = "SSEC001.2"></a> <li><code>FieldOfMatrixGroup(</code><var>G</var><code>) A</code> <p> This is the field generated by the matrix entries of the elements of <var>G</var>. See also <a href="../../../doc/htm/ref/CHAP042.htm#SSEC001.3">FieldOfmatrixGroup</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> reference manual. <p> <a name = "SSEC001.3"></a> <li><code>DefaultFieldOfMatrixGroup(</code><var>G</var><code>) A</code> <p> This is a field containing all matrix entries of the elements of <var>G</var>. See also <a href="../../../doc/htm/ref/CHAP042.htm#SSEC001.2">DefaultFieldOfMatrixGroup</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> reference manual. <p> <a name = "SSEC001.4"></a> <li><code>SplittingField(</code><var>G</var><code>) A</code> <p> Let <var>G</var> be an irreducible subgroup of <var>GL(n, F)</var>, where <var>F = <code>FieldOfMatrixGroup(</code><var>G</var><code>)</code></var> is a finite field. This attribute stores the splitting field <var>E</var> for <var>G</var>, that is, the (unique) smallest field <var>E</var> containing <var>F</var> such that the natural <var>E G</var>-module <var>E<sup>n</sup></var> is the direct sum of absolutely irreducible <var>E G</var>- submodules. The number of these absolutely irreducible summands equals the dimension of <var>E</var> as an <var>F</var>-vector space. <p> <a name = "SSEC001.5"></a> <li><code>CharacteristicOfField(</code><var>G</var><code>) A</code> <a name = "SSEC001.5"></a> <li><code>Characteristic(</code><var>G</var><code>) O</code> <p> This is the characteristic of <code>FieldOfMatrixGroup</code>(<var>G</var>) (see <a href="CHAP004.htm#SSEC001.2">FieldOfMatrixGroup</a>). <p> <a name = "SSEC001.6"></a> <li><code>RepresentationIsomorphism(</code><var>G</var><code>) A</code> <p> This attribute stores an isomorphism <var><var>H</var> to<var>G</var></var>, where <var>H</var> is a group in which computations can be carried out more efficiently than in <var>G</var>, and the isomorphism can be evaluated easily. Every group in the <font face="Gill Sans,Helvetica,Arial">IRREDSOL</font> library has such a representation isomorphism from a pc group <var>H</var> to <var>G</var>. <p> In this way, computations which only depend on the isomorphism type of <var>G</var> can be carried out in the group <var>H</var> and translated back to the group <var>G</var> via the representation isomorphism. Possible applications are the conjugacy classes of <var>G</var>, Sylow subgroups, composition and chief series, normal subgroups, group theoretical properties of <var>G</var>, and many more. <p> The concept of a representation isomorphism is related to nice monomorphisms; see Section <a href="../../../doc/htm/ref/CHAP038.htm#SECT005">Nice Monomorphisms</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> reference manual. However, unlike nice monomorphisms, <code>RepresentationIsomorphism</code> need not be efficient for computing preimages (and, indeed, will not usually be, in the case of the groups in the <font face="Gill Sans,Helvetica,Arial">IRREDSOL</font> library). <p> <p> <h2><a name="SECT002">4.2 Irreducibility and maximality of matrix groups</a></h2> <p><p> <a name = "SSEC002.1"></a> <li><code>IsIrreducibleMatrixGroup(</code><var>G</var><code>) P</code> <li><code>IsIrreducibleMatrixGroup(</code><var>G</var><code>, </code><var>F</var><code>) O</code> <a name = "SSEC002.1"></a> <li><code>IsIrreducible(</code><var>G</var><code> [, </code><var>F</var><code>]) O</code> <p> The matrix group <var>G</var> of degree <var>d</var> is irreducible over the field <var>F</var> if no subspace of <var><var>F</var><sup>d</sup></var> is invariant under the action of <var>G</var>. If <var>F</var> is not specified, <var>F = <code>FieldOfMatrixGroup</code>(<var>G</var>)</var> is assumed. <p> <pre> gap> G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3); <matrix group of size 10 with 2 generators> gap> IsIrreducibleMatrixGroup (G); true gap> IsIrreducibleMatrixGroup (G, GF(2)); true gap> IsIrreducibleMatrixGroup (G, GF(4)); false </pre> <p> <a name = "SSEC002.2"></a> <li><code>IsAbsolutelyIrreducibleMatrixGroup(</code><var>G</var><code>) P</code> <a name = "SSEC002.2"></a> <li><code>IsAbsolutelyIrreducible(</code><var>G</var><code>) O</code> <p> If present, this operation returns true if <var>G</var> is absolutely irreducible, i. e., irreducible over any extension field of <code>FieldOfMatrixGroup</code>(<var>G</var>). <p> <pre> gap> G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3); <matrix group of size 10 with 2 generators> gap> IsAbsolutelyIrreducibleMatrixGroup(G); false; </pre> <p> <a name = "SSEC002.3"></a> <li><code>IsMaximalAbsolutelyIrreducibleSolvableMatrixGroup(</code><var>G</var><code>) P</code> <p> This property, if present, is <code>true</code> if, and only if, <var>G</var> is absolutely irreducible and maximal among the solvable subgroups of <var>GL(d, F)</var>, where <var>d = <code>DegreeOfMatrixGroup</code>(<var>G</var>)</var> and <var>F = <code>FieldOfMatrixGroup</code>(<var>G</var>)</var>. <p> <p> <h2><a name="SECT003">4.3 Primitivity of matrix groups</a></h2> <p><p> <a name = "SSEC003.1"></a> <li><code>MinimalBlockDimensionOfMatrixGroup(</code><var>G</var><code>) A</code> <li><code>MinimalBlockDimensionOfMatrixGroup(</code><var>G</var><code>, </code><var>F</var><code>) O</code> <a name = "SSEC003.1"></a> <li><code>MinimalBlockDimension(</code><var>G</var><code> [, </code><var>F</var><code>]) O</code> <p> Let <var>G</var> be a matrix group of degree <var>d</var> over the field <var>F</var>. A decomposition <var>V<sub>1</sub> opluscdotsoplusV<sub>k</sub></var> of <var><var>F</var><sup>d</sup></var> into <var>F</var>-subspaces <var>V<sub>i</sub></var> is a block system of <var><var>G</var></var> if the <var>V<sub>i</sub></var> are permuted by the natural action of <var>G</var>. Obviously, all <var>V<sub>i</sub></var> have the same dimension; this is the dimension of the block system <var>V<sub>1</sub> opluscdotsoplusV<sub>k</sub></var>. The function <code>MinimalBlockDimensionOfMatrixGroup</code> returns the minimum of the dimensions of all block systems of <var>G</var>. If <var>F</var> is not specified, <var>F = <code>FieldOfMatrixGroup</code>(<var>G</var>)</var> is assumed. At present, only methods for groups which are irreducible over <var>F</var> are available. <p> <pre> gap> G := AbsolutelyIrreducibleSolvableMatrixGroup (2,3,4);; gap> MinimalBlockDimension (G, GF(3)); 2 gap> MinimalBlockDimension (G, GF(9)); 1 </pre> <p> <a name = "SSEC003.2"></a> <li><code>IsPrimitiveMatrixGroup(</code><var>G</var><code>) P</code> <li><code>IsPrimitiveMatrixGroup(</code><var>G</var><code>, </code><var>F</var><code>) O</code> <a name = "SSEC003.2"></a> <li><code>IsPrimitive(</code><var>G</var><code> [, </code><var>F</var><code>]) O</code> <a name = "SSEC003.2"></a> <li><code>IsLinearlyPrimitive(</code><var>G</var><code> [, </code><var>F</var><code>]) O</code> <p> An irreducible matrix group <var>G</var> of degree <var>d</var> is primitive over the field <var>F</var> if it only has the trivial block system <var><var>F</var><sup>d</sup></var> or, equivalently, if <var><code>MinimalBlockDimensionOfMatrixGroup</code>(<var>G</var>, <var>F</var>) = d</var>. If <var>F</var> is not specified, <var>F = <code>FieldOfMatrixGroup</code>(<var>G</var>)</var> is assumed. <p> <pre> gap> G := IrreducibleSolvableMatrixGroup (2,2,1,1); Group([ <an immutable 2x2 matrix over GF2>, <an immutable 2x2 matrix over GF2> ]) gap> IsPrimitiveMatrixGroup (G, GF(2)); true gap> IsIrreducibleMatrixGroup (G, GF(4)); true gap> IsPrimitiveMatrixGroup (G, GF(4)); false </pre> <p> <a name = "SSEC003.3"></a> <li><code>ImprimitivitySystems(</code><var>G</var><code> [, </code><var>F</var><code>]) O</code> <p> This function returns the list of all imprimitivity systems of the irreducible matrix group <var>G</var> over the field <var>F</var>. If <var>F</var> is not given, <code>FieldOfMatrixGroup(</code><var>G</var><code>)</code> is used. Each imprimitivity system is given by a record with the following entries: <p> <p> <dl compact> <dt><code>bases</code> <dd> a list of the bases of the subspaces which form the imprimitivity system. Note that a basis here is just a list of vectors, not a basis in the sense of <font face="Gill Sans,Helvetica,Arial">GAP</font> (see <a href="../../../doc/htm/ref/CHAP059.htm#SSEC004.2">Basis</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> reference manual). Each basis is in Hermite normal form so that the action of <var>G</var> on the imprimitivity system can be determined by <code>OnSubspacesByCanonicalBasis</code> <p> <dt><code>stab1</code> <dd> the subgroup of <var>G</var> stabilizing the subspace <var>W</var> spanned by <code>bases[1]</code> <p> <dt><code>min</code> <dd> is true if the imprimitivity system is minimal, that is, if <code>stab1</code> acts primitively on <var>W</var>, and false otherwise </dl> <p> <pre> gap> G := IrreducibleSolvableMatrixGroup (6, 2, 1, 9); <matrix group of size 54 with 4 generators> gap> impr := ImprimitivitySystems(G, GF(2));; gap> List (ImprimitivitySystems(G, GF(2)), r -> Length (r.bases)); [ 3, 3, 1 ] gap> List (ImprimitivitySystems(G, GF(4)), > r -> Action (G, r.bases, OnSubspacesByCanonicalBasis)); [ Group([ (), (1,2)(3,6)(4,5), (1,3,4)(2,5,6), (1,4,3)(2,6,5) ]), Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (), () ]), Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (1,2,4)(3,6,5), (1,4,2)(3,5,6) ]), Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (1,4,2)(3,5,6), (1,2,4)(3,6,5) ]), Group([ (), (1,2), (), () ]), Group([ (1,2,3), (), (), () ]), Group([ (), (2,3), (1,2,3), (1,3,2) ]), Group([ (), (2,3), (1,2,3), (1,3,2) ]), Group([ (), (2,3), (1,2,3), (1,3,2) ]), Group(()) ] </pre> <p> <p> <h2><a name="SECT004">4.4 Conjugating matrix groups into smaller fields</a></h2> <p><p> <a name = "SSEC004.1"></a> <li><code>TraceField(</code><var>G</var><code>) A</code> <p> This is the field generated by the traces of the elements of the matrix group <var>G</var>. If <var>G</var> is an irreducible matrix group over a finite field then, by a theorem of Brauer, <var>G</var> has a conjugate which is a matrix group over <code>TraceField</code>(<var>G</var>). <p> <pre> gap> repeat > G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7)^RandomInvertibleMat (8, GF(8)); > until FieldOfMatrixGroup (G) = GF(8); gap> TraceField (G); GF(2) </pre> <p> <a name = "SSEC004.2"></a> <li><code>ConjugatingMatTraceField(</code><var>G</var><code>) A</code> <p> If bound, this is a matrix <var>x</var> over <code>FieldOfMatrixGroup</code>(<var>G</var>) such that <var><var>G</var><sup><</sup>x></var> is a matrix group over <code>TraceField</code>(<var>G</var>). Currently, there are only methods available for irreducible matrix groups <var>G</var> over finite fields and certain trivial cases. The method for absolutely irreducible groups is described in <a href="biblio.htm#GH"><cite>GH</cite></a>. Note that, for matrix groups over infinite fields, such a matrix <var>x</var> need not exist. <pre> gap> repeat > G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7) ^ > RandomInvertibleMat (8, GF(8)); > until FieldOfMatrixGroup(G) = GF(8); gap> FieldOfMatrixGroup (G^ConjugatingMatTraceField (G)); GF(2) </pre> <p> <p> [<a href = "chapters.htm">Up</a>] [<a href ="CHAP003.htm">Previous</a>] [<a href ="CHAP005.htm">Next</a>] [<a href = "theindex.htm">Index</a>] <P> <address>IRREDSOL manual<br>February 2007 </address></body></html>