<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 = "I0"></a>
<a name = "I1"></a>
<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/ref/chap44.html#X7E55258C783C50CA">DimensionOfMatrixGroup</a>.
<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/ref/chap44.html#X78A9F0E580DA613A">FieldOfMatrixGroup</a>.
<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/ref/chap44.html#X7D540083793CD496">DefaultFieldOfMatrixGroup</a>.
<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>)</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/ref/chap40.html#X7FFD731684606BC6">Nice Monomorphisms</a>. 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 = "I2"></a>
<a name = "I3"></a>
<a name = "I4"></a>
<a name = "I5"></a>
<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, <code>FieldOfMatrixGroup</code>(<var>G</var>) is used as <var>F</var>.
<p>
<pre>
gap> G := IrreducibleSolubleMatrixGroup(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 := IrreducibleSolubleMatrixGroup(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>IsMaximalAbsolutelyIrreducibleSolubleMatrixGroup(</code><var>G</var><code>) P</code>
<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 soluble subgroups of <var>GL(d, F)</var>, where <var>d</var> is <code>DegreeOfMatrixGroup</code>(<var>G</var>) and
<var>F</var> equals <code>FieldOfMatrixGroup</code>(<var>G</var>).
<p>
<p>
<h2><a name="SECT003">4.3 Primitivity of matrix groups</a></h2>
<p><p>
<a name = "I6"></a>
<a name = "I7"></a>
<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, <code>FieldOfMatrixGroup</code>(<var>G</var>)
is used as <var>F</var>. At present, only methods for groups
which are irreducible over <var>F</var> are available.
<p>
<pre>
gap> G := IrreducibleSolubleMatrixGroup(2,3,1,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, it is assumed that <var>F</var> is <code>FieldOfMatrixGroup</code>(<var>G</var>).
<p>
<pre>
gap> G := IrreducibleSolubleMatrixGroup(2,2,1,1);;
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>) 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/ref/chap61.html#X837BE54C80DE368E">Basis</a>). 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 := IrreducibleSolubleMatrixGroup(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 = "I8"></a>
<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 := IrreducibleSolubleMatrixGroup(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 := IrreducibleSolubleMatrixGroup(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>November 2022
</address></body></html>
¤ Dauer der Verarbeitung: 0.13 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.