<h4>2.1 <span class="Heading">Polycyclic presentations of matrix groups</span></h4>
<p>Groups defined by polycyclic presentations are called PcpGroups in <strong class="pkg">GAP</strong>. We refer to the Polycyclic manual <a href="chapBib.html#biBPolycyclic">[EN00]</a> for further background.</p>
<p>Suppose that a collection <span class="SimpleMath">X</span> of matrices of <span class="SimpleMath">GL(d,R)</span> is given, where the ring <span class="SimpleMath">R</span> is either <span class="SimpleMath">ℚ,ℤ</span> or a finite field. Let <span class="SimpleMath">G= ⟨ X ⟩</span>. If the group <span class="SimpleMath">G</span> is polycyclic, then the following functions determine a PcpGroup isomorphic to <span class="SimpleMath">G</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PcpGroupByMatGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">G</var> is a subgroup of <span class="SimpleMath">GL(d,R)</span> where <span class="SimpleMath">R=ℚ,ℤ</span> or <span class="SimpleMath">F_q</span>. If <var class="Arg">G</var> is polycyclic, then this function determines a PcpGroup isomorphic to <var class="Arg">G</var>. If <var class="Arg">G</var> is not polycyclic, then this function returns <code class="code">fail</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsomorphismPcpGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p><var class="Arg">G</var> is a subgroup of <span class="SimpleMath">GL(d,R)</span> where <span class="SimpleMath">R=ℚ,ℤ</span> or <span class="SimpleMath">F_q</span>. If <var class="Arg">G</var> is polycyclic, then this function determines an isomorphism onto a PcpGroup. If <var class="Arg">G</var> is not polycyclic, then this function returns <code class="code">fail</code>.</p>
<p>Note that the method <code class="code">IsomorphismPcpGroup</code>, installed in this package, cannot be applied directly to a group given by the function <code class="code">AlmostCrystallographicGroup</code>. Please use <code class="code">POL_AlmostCrystallographicGroup</code> (with the same parameters as <code class="code">AlmostCrystallographicGroup</code>) instead.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ImagesRepresentative</code>( <var class="Arg">map</var>, <var class="Arg">elm</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ImageElm</code>( <var class="Arg">map</var>, <var class="Arg">elm</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ ImagesSet</code>( <var class="Arg">map</var>, <var class="Arg">elms</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Here <var class="Arg">map</var> is an isomorphism from a polycyclic matrix group <var class="Arg">G</var> onto a PcpGroup <var class="Arg">H</var> calculated by <code class="func">IsomorphismPcpGroup</code> (<a href="chap2.html#X8771540F7A235763"><span class="RefLink">2.1-2</span></a>). These methods can be used to compute with such an isomorphism. If the input <var class="Arg">elm</var> is an element of <var class="Arg">G</var>, then the function <code class="code">ImageElm</code> can be used to compute the image of <var class="Arg">elm</var> under <var class="Arg">map</var>. If <var class="Arg">elm</var> is not contained in <var class="Arg">G</var> then the function <code class="code">ImageElm</code> returns <code class="code">fail</code>. The input <var class="Arg">pcpelm</var> is an element of <var class="Arg">H</var>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsSolvableGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p><var class="Arg">G</var> is a subgroup of <span class="SimpleMath">GL(d,R)</span> where <span class="SimpleMath">R=ℚ,ℤ</span> or <span class="SimpleMath">F_q</span>. This function tests if <var class="Arg">G</var> is solvable and returns <code class="code">true</code> or <code class="code">false</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsTriangularizableMatGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><var class="Arg">G</var> is a subgroup of <span class="SimpleMath">GL(d,ℚ)</span>. This function tests if <var class="Arg">G</var> is triangularizable (possibly over a finite field extension) and returns <code class="code">true</code> or <code class="code">false</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ IsPolycyclicGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p><var class="Arg">G</var> is a subgroup of <span class="SimpleMath">GL(d,R)</span> where <span class="SimpleMath">R=ℚ,ℤ</span> or <span class="SimpleMath">F_q</span>. This function tests if <var class="Arg">G</var> is polycyclic and returns <code class="code">true</code> or <code class="code">false</code>.</p>
<p>Let <span class="SimpleMath">G</span> be a finitely generated solvable subgroup of <span class="SimpleMath">GL(d,ℚ)</span>. The vector space <span class="SimpleMath">ℚ^d</span> is a module for the algebra <span class="SimpleMath">ℚ[G]</span>. The following functions provide the possibility to compute certain module series of <span class="SimpleMath">ℚ^d</span>. Recall that the radical <span class="SimpleMath">Rad_G(ℚ^d)</span> is defined to be the intersection of maximal <span class="SimpleMath">ℚ[G]</span>-submodules of <span class="SimpleMath">ℚ^d</span>. Also recall that the radical series</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ RadicalSeriesSolvableMatGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>This function returns a radical series for the <span class="SimpleMath">ℚ[G]</span>-module <span class="SimpleMath">ℚ^d</span>, where <var class="Arg">G</var> is a solvable subgroup of <span class="SimpleMath">GL(d,ℚ)</span>.</p>
<p>A radical series of <span class="SimpleMath">ℚ^d</span> can be refined to a homogeneous series.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ HomogeneousSeriesAbelianMatGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>A module is said to be homogeneous if it is the direct sum of pairwise irreducible isomorphic submodules. A homogeneous series of a module is a submodule series such that the factors are homogeneous. This function returns a homogeneous series for the <span class="SimpleMath">ℚ[G]</span>-module <span class="SimpleMath">ℚ^d</span>, where <var class="Arg">G</var> is an abelian subgroup of <span class="SimpleMath">GL(d,ℚ)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ HomogeneousSeriesTriangularizableMatGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>A module is said to be homogeneous if it is the direct sum of pairwise irreducible isomorphic submodules. A homogeneous series of a module is a submodule series such that the factors are homogeneous. This function returns a homogeneous series for the <span class="SimpleMath">ℚ[G]</span>-module <span class="SimpleMath">ℚ^d</span>, where <var class="Arg">G</var> is a triangularizable subgroup of <span class="SimpleMath">GL(d,ℚ)</span>.</p>
<p>A homogeneous series can be refined to a composition series.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CompositionSeriesAbelianMatGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>A composition series of a module is a submodule series such that the factors are irreducible. This function returns a composition series for the <span class="SimpleMath">ℚ[G]</span>-module <span class="SimpleMath">ℚ^d</span>, where <var class="Arg">G</var> is an abelian subgroup of <span class="SimpleMath">GL(d,ℚ)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ CompositionSeriesTriangularizableMatGroup</code>( <var class="Arg">G</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>A composition series of a module is a submodule series such that the factors are irreducible. This function returns a composition series for the <span class="SimpleMath">ℚ[G]</span>-module <span class="SimpleMath">ℚ^d</span>, where <var class="Arg">G</var> is a triangularizable subgroup of <span class="SimpleMath">GL(d,ℚ)</span>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ SubgroupsUnipotentByAbelianByFinite</code>( <var class="Arg">G</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p><var class="Arg">G</var> is a subgroup of <span class="SimpleMath">GL(d,R)</span> where <span class="SimpleMath">R=ℚ</span> or <span class="SimpleMath">ℤ</span>. If <var class="Arg">G</var> is polycyclic, then this function returns a record containing two normal subgroups <span class="SimpleMath">T</span> and <span class="SimpleMath">U</span> of <span class="SimpleMath">G</span>. The group <span class="SimpleMath">T</span> is unipotent-by-abelian (and thus triangularizable) and of finite index in <var class="Arg">G</var>. The group <span class="SimpleMath">U</span> is unipotent and is such that <span class="SimpleMath">T/U</span> is abelian. If <var class="Arg">G</var> is not polycyclic, then the algorithm returns <code class="code">fail</code>.</p>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ PolExamples</code>( <var class="Arg">l</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns some examples for polycyclic rational matrix groups, where <var class="Arg">l</var> is an integer between 1 and 24. These can be used to test the functions in this package. Some of the properties of the examples are summarised in the following table.</p>
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.