Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 5e1854624d3bc613bdd0dd13d1ef9ac7 > files > 2026

gap-system-4.4.12-5mdv2010.0.i586.rpm

<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&nbsp;<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&nbsp;<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&gt; G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3);
&lt;matrix group of size 10 with 2 generators&gt;
gap&gt; IsIrreducibleMatrixGroup (G);
true
gap&gt; IsIrreducibleMatrixGroup (G, GF(2));
true
gap&gt; 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.&nbsp;e., irreducible over any
extension field of <code>FieldOfMatrixGroup</code>(<var>G</var>).
<p>
<pre>
gap&gt; G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3);
&lt;matrix group of size 10 with 2 generators&gt;
gap&gt; 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&gt; G := AbsolutelyIrreducibleSolvableMatrixGroup (2,3,4);;
gap&gt; MinimalBlockDimension (G, GF(3));
2
gap&gt; 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&gt; G := IrreducibleSolvableMatrixGroup (2,2,1,1);
Group([ &lt;an immutable 2x2 matrix over GF2&gt;, &lt;an immutable 2x2 matrix over GF2&gt; ])
gap&gt; IsPrimitiveMatrixGroup (G, GF(2));
true
gap&gt; IsIrreducibleMatrixGroup (G, GF(4));
true
gap&gt; 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&gt; G := IrreducibleSolvableMatrixGroup (6, 2, 1, 9);
&lt;matrix group of size 54 with 4 generators&gt;
gap&gt; impr := ImprimitivitySystems(G, GF(2));;
gap&gt; List (ImprimitivitySystems(G, GF(2)), r -&gt; Length (r.bases));
[ 3, 3, 1 ]
gap&gt; List (ImprimitivitySystems(G, GF(4)), 
&gt;        r -&gt; 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&nbsp;<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&gt; repeat
&gt;        G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7)^RandomInvertibleMat (8, GF(8));
&gt;    until FieldOfMatrixGroup (G) = GF(8);
gap&gt; 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&gt;</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&gt; repeat
&gt;       G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7) ^ 
&gt;                RandomInvertibleMat (8, GF(8));
&gt;    until FieldOfMatrixGroup(G) = GF(8);
gap&gt; 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>