Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 373

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

<html><head><title>[aclib] 1 The Almost Crystallographic Groups Package</title></head>
<body bgcolor="ffffff">
<a name = "I0"></a>
<h1>1 The Almost Crystallographic Groups Package</h1><p>
<p>
<a name = "I1"></a>

Almost crystallographic groups are finitely generated nilpotent-by-finite
groups satisfying certain properties. There are several group theoretic
characterizations known for almost crystallographic groups; for example,
a group <var>G</var> is <strong>almost crystallographic</strong> if and only if <var>G</var> is a finitely 
generated nilpotent-by-finite group such that the only finite normal 
subgroup in <var>G</var> is the trivial subgroup. Further, the group <var>G</var> is called an
<strong>almost Bieberbach group</strong> if it is almost crystallographic and torsion free.
<p>
Thus an almost crystallographic group <var>G</var> has a finitely generated nilpotent 
normal subgroup <var>N</var> of finite index. Clearly, <var>N</var> is polycyclic and thus has 
a polycyclic series. The number of infinite cyclic factors in such a series 
is an invariant of <var>G</var>: the <strong>Hirsch length</strong> of <var>G</var>. 
<p>
Further, for each of the 
almost crystallographic groups of Hirsch length 3 and 4 there exists a 
representation as a rational matrix group (in dimension 4 or 5). These 
representations can be seen as representations into the affine group 
of dimension 3 or 4. Via these representations, the almost crystallographic
groups act (properly discontinuously) on <var><font face="helvetica,arial">R</font><sup>3</sup></var> or <var><font face="helvetica,arial">R</font><sup>4</sup></var>.
That is one reason to define
the <strong>dimension</strong> of an almost crystallographic group as its Hirsch length.
<p>
The 3-dimensional and a part of the 4-dimensional almost crystallographic 
groups have been classified by K. Dekimpe, see <a href="biblio.htm#KD"><cite>KD</cite></a>. This 
classification includes all almost Bieberbach groups in dimension 3 and 4.
<p>
This package gives access to the resulting library of groups. The groups 
are available in two different representations. First, they can be accessed
as rational matrix groups. This is also the representation used in <a href="biblio.htm#KD"><cite>KD</cite></a>. 
Secondly, all 3- and 4-dimensional almost crystallographic groups are 
polycyclic and they can also be obtained as polycyclically presented groups 
using the methods from the sf polycyclic share package of <font face="helvetica,arial">GAP</font>. This 
second description is probably more useful for computations with the 
almost crystallographic groups. The share package sf polycyclic must be 
installed to use this feature. 
<p>
Almost crystallographic groups can be seen as natural generalizations
of crystallographic groups. A library of crystallographic groups is also 
available in the <font face="helvetica,arial">GAP</font> share package <code>crystcat</code>. The share packages
<code>crystgap</code> and <code>carat</code> can be used to compute with crystallographic groups.
<p>
This documentation is organized as follows. We first recall 
basic definitions and background on almost crystallographic groups in 
Section <a href="CHAP001.htm#SECT001">Almost crystallographic groups</a>. Then we outline briefly the main 
access functions to this library in Sections <a href="CHAP001.htm#SECT002">Rational matrix groups</a> 
and <a href="CHAP001.htm#SECT003">Polycyclically presented groups</a>. A more extended outline of these
access functions is given in Section <a href="CHAP001.htm#SECT004">More about almost crystallographic groups</a>. This library is an electronic version of the classification given 
in <a href="biblio.htm#KD"><cite>KD</cite></a> and we relate the two version of the library in Section 
<a href="CHAP001.htm#SECT005">The electronic versus the printed library</a>.  Finally, we outline various 
interesting example computations in Sections <a href="CHAP001.htm#SECT006">Example computations I</a>
- <a href="CHAP001.htm#SECT008">Example computations III</a>.
<p>
<P>
<H3>Sections</H3>
<oL>
<li> <A HREF="CHAP001.htm#SECT001">Almost crystallographic groups</a>
<li> <A HREF="CHAP001.htm#SECT002">Rational matrix groups</a>
<li> <A HREF="CHAP001.htm#SECT003">Polycyclically presented groups</a>
<li> <A HREF="CHAP001.htm#SECT004">More about almost crystallographic groups</a>
<li> <A HREF="CHAP001.htm#SECT005">The electronic versus the printed library</a>
<li> <A HREF="CHAP001.htm#SECT006">Example computations I</a>
<li> <A HREF="CHAP001.htm#SECT007">Example computations II</a>
<li> <A HREF="CHAP001.htm#SECT008">Example computations III</a>
</ol><p>
<a name="SECT001"><h2>1.1 Almost crystallographic groups</h2></a>
<p><p>
Almost crystallographic groups were first discussed in the theory of 
actions on Lie groups.  We recall the original definition here briefly
(see <a href="biblio.htm#AUS"><cite>AUS</cite></a>, <a href="biblio.htm#KD"><cite>KD</cite></a>, <a href="biblio.htm#LEE"><cite>LEE</cite></a> for more details). 
<p>
Let <var>L</var> be a connected and simply connected nilpotent Lie group. For 
example, the 3-dimensional Heisenberg group, consisting of all upper 
unitriangular <var>3times3</var>--matrices with real entries is of this type.
Then <var>Lrtimes  Aut(L)</var> acts affinely (on the left) on <var>L</var> via
<p><var>
forall l,l' in  L,forall alpha  in   Aut(L):;
<sup>(l,alpha)</sup>l'=l , alpha(l').
<p></var>
<p>
Let <var>C</var> be a maximal compact subgroup of <var> Aut(L)</var>. Then a subgroup 
<var>G</var> of <var>L rtimes C</var> is said to be an almost crystallographic group if and 
only if the action of <var>G</var> on <var>L</var>, induced by the action of <var>Lrtimes 
 Aut(L)</var>, is properly discontinuous and the quotient space <var>G 
 \  L</var> is compact. One recovers the situation of the ordinary 
crystallographic groups by taking <var>L=Bbb R<sup>n</sup></var>, for some <var>n</var>, and
<var>C=O(n)</var>, the orthogonal group.
<p>
More generally, we say that an abstract group is an almost crystallographic
group if it can be realized as a genuine almost crystallographic subgroup 
of some <var>L rtimes C</var>. In the following theorem we outline some algebraic 
characterizations of almost crystallographic groups; see Theorem 3.1.3 of 
<a href="biblio.htm#KD"><cite>KD</cite></a>. Recall that the <strong>Fitting subgroup Fitt<var>(G)</var></strong> of a 
polycyclic-by-finite group <var>G</var> is the unique maximal normal nilpotent 
subgroup of <var>G</var>.
<p>
proclaim Theorem. 
The following are equivalent for a polycyclic-by-finite group <var>G</var>:
<p>
parindent  30pt
<dt>(1)<dd>  <var>G</var> is an almost crystallographic group.
<dt>(2)<dd>  Fitt<var>(G)</var> is torsion free, maximal nilpotent and of finite 
index in <var>G</var>.
<dt>(3)<dd>  <var>G</var> contains a torsion free nilpotent normal subgroup <var>N</var>
of finite index in <var>G</var> with <var>C<sub>G</sub>(N)</var> torsion free.
<dt>(4)<dd>  <var>G</var> contains a nilpotent subgroup of finite index and <var>G</var> 
contains no non-trivial finite normal subgroups.
parindent 0pt
<p>
<p>
In particular, if <var>G</var> is almost crystallographic, then <var>G / Fitt(G)</var>
is finite. This factor is called the <strong>holonomy group</strong> of <var>G</var>. 
<p>
The dimension of an almost crystallographic group equals the dimension
of the Lie group <var>L</var> above which coincides also with the Hirsch length 
of the polycyclic-by-finite group. This library therefore contains 
families of virtually nilpotent groups of Hirsch length 3 and 4. 
<p>
<a name="SECT002"><h2>1.2 Rational matrix groups</h2></a>
<p><p>
The following three main functions are available to access the library 
of almost crystallographic groups as rational matrix groups.
<p>
<a name = "I2"></a>
<li><code>AlmostCrystallographicGroup( </code><var>dim</var><code>, </code><var>type</var><code>, </code><var>parameters</var><code> )</code>
<a name = "I3"></a>
<li><code>AlmostCrystallographicDim3( </code><var>type</var><code>, </code><var>parameters</var><code> )</code>
<a name = "I4"></a>
<li><code>AlmostCrystallographicDim4( </code><var>type</var><code>, </code><var>parameters</var><code> )</code>
<p>
<var>dim</var> is the dimension of the required group. Thus <var>dim</var> must be 
either 3 or 4. The inputs <var>type</var> and <var>parameters</var> are used to define
the desired group as described in <a href="biblio.htm#KD"><cite>KD</cite></a>. We outline the possible
choices for <var>type</var> and <var>parameters</var> here briefly. A more extended 
description is given later in Section <a href="CHAP001.htm#SECT004">More about almost crystallographic  groups</a> or can be obtained from <a href="biblio.htm#KD"><cite>KD</cite></a>.
<p>
<var>type</var> specifies the type of the required group. There are 17 types
in dimension 3 and 95 types in dimension 4. The input <var>type</var> can either
be an integer  defining the position of the desired type among all types;
that is, in this case <var>type</var> is a number in [1..17] in dimension 3 or a
number in [1..95] in dimension 4. Alternatively, <var>type</var> can be a string
defining the desired type. In dimension 3 the possible strings are 
<code>"01"</code>, <code>"02"</code>, <var>...</var>, <code>"17"</code>. In dimension 4 the possible strings 
are listed in the list <code>ACDim4Types</code> and thus can be accessed from <font face="helvetica,arial">GAP</font>.
<p>
<var>parameters</var> is a list of integers. Its length depends on the type of 
the chosen group. The lists <code>ACDim3Param</code> and <code>ACDim4Param</code> contain
at position <var>i</var> the length of the parameter list for the type number <var>i</var>.
Every list of integers of this length is a valid <var>parameter</var> input.
Alternatively, one can input <code>false</code> instead of a parameter list. Then 
<font face="helvetica,arial">GAP</font> will chose a random parameter list of suitable length.
<p>
<pre>
gap&gt; G := AlmostCrystallographicGroup( 4, 50, [ 1, -4, 1, 2 ] );
&lt;matrix group of size infinity with 5 generators&gt;
gap&gt; DimensionOfMatrixGroup( G );
5
gap&gt; FieldOfMatrixGroup( G );
Rationals
gap&gt; GeneratorsOfGroup( G );
[ [ [ 1, 0, -1/2, 0, 0 ], [ 0, 1, 0, 0, 1 ], [ 0, 0, 1, 0, 0 ], 
      [ 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 1 ] ], 
  [ [ 1, 1/2, 0, 0, 0 ], [ 0, 1, 0, 0, 0 ], [ 0, 0, 1, 0, 1 ], 
      [ 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0 ], [ 0, 0, 1, 0, 0 ], 
      [ 0, 0, 0, 1, 1 ], [ 0, 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0 ], [ 0, 0, 1, 0, 0 ], 
      [ 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 1 ] ], 
  [ [ 1, -4, 1, 0, 1/2 ], [ 0, 0, -1, 0, 0 ], [ 0, 1, 0, 0, 0 ], 
      [ 0, 0, 0, 1, 1/4 ], [ 0, 0, 0, 0, 1 ] ] ]
gap&gt; G.1;
[ [ 1, 0, -1/2, 0, 0 ], [ 0, 1, 0, 0, 1 ], [ 0, 0, 1, 0, 0 ], 
  [ 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 1 ] ]
</pre>
<p>
<a name="SECT003"><h2>1.3 Polycyclically presented groups</h2></a>
<p><p>
All the almost crystallographic groups considered in this package are
polycyclic. Hence they have a polycyclic presentation and this can be
used to facilitate efficient computations with the groups. To obtain the
polycyclic presentation of an almost crystallographic group we supply the
following functions. Note that the share package sf polycyclic must be 
installed to use these functions.
<p>
<a name = "I5"></a>
<li><code>AlmostCrystallographicPcpGroup( </code><var>dim</var><code>, </code><var>type</var><code>, </code><var>parameters</var><code> )</code>
<a name = "I6"></a>
<li><code>AlmostCrystallographicPcpDim3( </code><var>type</var><code>, </code><var>parameters</var><code> )</code>
<a name = "I7"></a>
<li><code>AlmostCrystallographicPcpDim4( </code><var>type</var><code>, </code><var>parameters</var><code> )</code>
<p>
The input is the same as for the corresponding matrix group functions.
The output is a pcp group isomorphic to the corresponding matrix group.
An explicit isomorphism from an almost crystallographic matrix group
to the corresponding pcp group can be obtained by the following function.
<p>
<a name = "I8"></a>
<li><code>IsomorphismPcpGroup( </code><var>G</var><code> )</code>
<p>
We can use the polycyclic presentations of almost crystallographic
groups to exhibit structure information on these groups. For example,
we can determine their Fitting subgroup and ask group-theoretic 
questions about this nilpotent group. The factor <var>G / Fit(G)</var> of an
almost crystallographic group <var>G</var> is called <strong>holonomy group</strong>. We 
provide access to this factor of a pcp group via the following 
functions. Let <var>G</var> be an almost crystallographic pcp group.
<p>
<a name = "I9"></a>
<li><code>HolonomyGroup( </code><var>G</var><code> )</code>
<a name = "I10"></a>
<li><code>NaturalHomomorphismOnHolonomyGroup( </code><var>G</var><code> )</code>
<p>
The following example shows applications of these functions.
<p>
<pre>
gap&gt; G := AlmostCrystallographicPcpGroup( 4, 50, [ 1, -4, 1, 2 ] );
Pcp-group with orders [ 4, 0, 0, 0, 0 ]
gap&gt; Cgs(G);
[ g1, g2, g3, g4, g5 ]

gap&gt; F := FittingSubgroup( G );
Pcp-group with orders [ 0, 0, 0, 0 ]
gap&gt; Centre(F);
LowerCentralSeries(F);
Pcp-group with orders [ 0, 0 ]
gap&gt; LowerCentralSeries(F);
[ Pcp-group with orders [ 0, 0, 0, 0 ], Pcp-group with orders [ 0 ], 
  Pcp-group with orders [  ] ]
gap&gt; UpperCentralSeries(F);
[ Pcp-group with orders [ 0, 0, 0, 0 ], Pcp-group with orders [ 0, 0 ], 
  Pcp-group with orders [  ] ]
gap&gt; MinimalGeneratingSet(F);
[ g2, g3, g4 ]

gap&gt; H := HolonomyGroup( G );
Pcp-group with orders [ 4 ]
gap&gt; hom := NaturalHomomorphismOnHolonomyGroup( G );
[ g1, g2, g3, g4, g5 ] -&gt; [ g1, identity, identity, identity, identity ]
gap&gt; U := Subgroup( H, [Pcp(H)[1]^2] );
Pcp-group with orders [ 2 ]
gap&gt; PreImage( hom, U );
Pcp-group with orders [ 2, 0, 0, 0, 0 ]
</pre>
<p>
<a name="SECT004"><h2>1.4 More about almost crystallographic groups</h2></a>
<p><p>
The almost crystallographic groups in dimensions 3 and 4 fall into three
families
<p>
<dl compact>
<dt>(1)<dd>  3-dimensional almost crystallographic groups.
<dt>(2)<dd>  4-dimensional almost crystallographic groups with a
           Fitting subgroup of class 2.
<dt>(3)<dd>  4-dimensional almost crystallographic groups with a
           Fitting subgroup of class 3.
</dl>
<p>
These families are split up further into subfamilies in <a href="biblio.htm#KD"><cite>KD</cite></a> and 
to each subfamily is assigned a type; that is, a string which is
used to identify the subfamily. For the 3-dimensional almost 
crystallographic groups the type is a string representing the 
numbers from 1 to 17, i.e. types are <code>"01"</code>, <code>"02"</code>, <var>...</var>, <code>"17"</code>. 
<p>
For the 4-dimensional almost crystallographic groups with a Fitting 
subgroup of class 2 the type is a string of 3 or 4 characters. In 
general, a string of 3 characters representing the number of the table
entry in <a href="biblio.htm#KD"><cite>KD</cite></a> is used. So possible types are <code>"001"</code>, <code>"002"</code>,
<var>...</var>. The reader is warned however that not all possible numbers are
used, e.g. there are no groups of type <code>"016"</code>. Also, the types do not
appear in their natural order in <a href="biblio.htm#KD"><cite>KD</cite></a>. Moreover, for certain numbers
there is more than one family of groups listed in <a href="biblio.htm#KD"><cite>KD</cite></a>. For example,
the 3 families of groups corresponding to number 19 on pages 179-180 of
<a href="biblio.htm#KD"><cite>KD</cite></a> have types <code>"019"</code>, <code>"019b"</code> and <code>"019c"</code> (the order is the
one given in <a href="biblio.htm#KD"><cite>KD</cite></a>).
<p>
For the last category of groups, the 4-dimensional almost crystallographic
groups with a Fitting subgroup of class 3, the type is a string of 2 or 3
characters, where the first character is always the letter <code>"B"</code>. This <code>"B"</code>
is followed by the number of the table entry as found in <a href="biblio.htm#KD"><cite>KD</cite></a>,
eventually followed by a <code>"b"</code> or <code>"c"</code> as in the previous case.
<p>
Each almost crystallographic group knows that it is of this kind and it
knows its type and defining parameters.
<p>
<a name = "I11"></a>
<li><code>IsAlmostCrystallographic</code>
<a name = "I12"></a>
<li><code>AlmostCrystallographicInfo</code>
<p>
<pre>
gap&gt; G := AlmostCrystallographicPcpGroup( 4, 70, false );
Pcp-group with orders [ 6, 0, 0, 0, 0 ]
gap&gt; IsAlmostCrystallographic(G);
true
gap&gt; AlmostCrystallographicInfo(G);
rec( dim := 4, type := 70, param := [ -3, 2, 5, 1, 0 ] )
</pre>
<p>
For each type of almost crystallographic group contained in the library
there exists a function taking a parameter list as input and returning
the desired matrix or pcp group. These functions can be accessed
from <font face="helvetica,arial">GAP</font> using the lists <code>ACDim3Funcs</code>, <code>ACDim4Funcs</code>, <code>ACPcpDim3Funcs</code>
and <code>ACPcpDim4Funcs</code> which consist of the corresponding functions.
<p>
Although we include these direct access functions here for completeness,
we note that the user should in general use the higher-level functions
introduced above to obtain almost crystallographic groups from the
library. In particular, these low-level access functions return matrix
or pcp groups, but the almost crystallographic info flags will not be
attached to them.
<p>
<pre>
gap&gt; ACDim3Funcs[15];
function( k1, k2, k3, k4 ) ... end
gap&gt; ACDim3Funcs[15](1,1,1,1);
&lt;matrix group with 5 generators&gt;
gap&gt; ACPcpDim3Funcs[1](1);
Pcp-group with orders [ 0, 0, 0 ]
</pre>
<p>
<a name="SECT005"><h2>1.5 The electronic versus the printed library</h2></a>
<p><p>
The package <code>aclib</code> can be considered as the electronic version of 
Chapter 7 of <a href="biblio.htm#KD"><cite>KD</cite></a>. In this section we outline the relationship 
between the library presented in this manual and the printed version 
in <a href="biblio.htm#KD"><cite>KD</cite></a>. First we consider an example. At page 175 of <a href="biblio.htm#KD"><cite>KD</cite></a>, 
we find the following groups in the table starting with entry ``13''.
<p>
<p>
13. <var>Q=P2/c</var>
<p><var>
matrix E:; &lt; a,b,c,d,alpha,beta;|;   ,[b,a]=1hskip 1.61cm 
       [d,a]=1
hfill   &gt;  <br>
                   matrix [c,a]=d<sup>2 k_1</sup>hfill   [d,b]=1hfill <br>
                    [c,b]=1hfill   [d,c]=1hfill <br>
alpha a=a<sup>-1</sup>alpha d<sup>k_2</sup>hfill    alpha<sup>2</sup>=d<sup>k_3</sup>hfill <br>
alpha b=balpha hfill   alpha d= d alphahfill <br>
alpha c=c<sup>-1</sup>alpha d<sup>-2 k_6</sup>hfill    <br>
beta a=a<sup>-1</sup>beta d<sup>k_1+k_2</sup> hfill   beta<sup>2</sup>=d<sup>k_5</sup>hfill <br>
beta b=b<sup>-1</sup>beta d<sup>k_4</sup>hfill   beta d= d betahfill <br>
beta c=c<sup>-1</sup>beta d<sup>-2 k_6</sup>hfill   alpha beta=cbetaalpha d<sup>k_6</sup>
hfill    
<p></var>
<p>
<p><var>lambda(alpha)=left(matrix
1 frack<sub>1</sub>2+k<sub>2</sub>  0  -2 k<sub>6</sub>  frack<sub>3</sub>2+frack<sub>6</sub>2 <br>
0 -1  0  0  0 <br>
0  0 1    0  0 <br>
0  0  0  -1  frac12<br>
0  0  0  0  1
right)
;;lambda(beta)=left(matrix
1 k<sub>1</sub>+k<sub>2</sub>  k<sub>4</sub>  -2 k<sub>6</sub>  frack<sub>5</sub>2 <br>
0 -1  0  0  0 <br>
0  0 -1    0  0 <br>
0  0  0  -1  0<br>
0  0  0  0  1
    right)
<p></var>
<p>
<p><var>H<sup>2</sup>(Q,<font face="helvetica,arial">Z</font>)=<font face="helvetica,arial">Z</font> oplus (<font face="helvetica,arial">Z</font><sub>2</sub>)<sup>4</sup>=<font face="helvetica,arial">Z</font><sup>6</sup>/A,<p></var>
<p><var>A={(k<sub>1</sub>,...,k<sub>6</sub>)|
k<sub>1</sub>=0,;k<sub>2</sub>,..., k<sub>5</sub> in  2<font face="helvetica,arial">Z</font>,;k<sub>6</sub> in <font face="helvetica,arial">Z</font>}<p></var>
AB-groups:
<p>
<var>forall k&gt;0,;kequiv 0bmod 2,;<var>(k,0,1,0,1,0)</var></var>
<p>
<p>
The number ``13'' at the beginning of this entry is the type of the 
almost crystallographic group in this library. This family of groups 
with type 13 depends on 6 parameters <var>k<sub>1</sub>, k<sub>2</sub>, ..., k<sub>6</sub></var> and these 
are the <var>parameters</var> list in this library. The rational matrix 
representation in <font face="helvetica,arial">GAP</font> corresponds exactly to the printed version in 
<a href="biblio.htm#KD"><cite>KD</cite></a> where it is named <var>lambda</var>.  In the example below, we consider 
the group with parameters <var>(k<sub>1</sub>,k<sub>2</sub>,k<sub>3</sub>,k<sub>4</sub>,k<sub>5</sub>,k<sub>6</sub>)=(8,0,1,0,1,0)</var>.
<p>
<pre>
gap&gt; G:=AlmostCrystallographicDim4("013",[8,0,1,0,1,0]);
&lt;matrix group with 6 generators&gt;
gap&gt; G.5;
[ [ 1, 4, 0, 0, 1/2 ], [ 0, -1, 0, 0, 0 ], [ 0, 0, 1, 0, 0 ], 
  [ 0, 0, 0, -1, 1/2 ], [ 0, 0, 0, 0, 1 ] ]
gap&gt; G.6;
[ [ 1, 8, 0, 0, 1/2 ], [ 0, -1, 0, 0, 0 ], [ 0, 0, -1, 0, 0 ], 
  [ 0, 0, 0, -1, 0 ], [ 0, 0, 0, 0, 1 ] ]
</pre>
<p>
For a 4-dimensional almost crystallographic group the matrix group is 
built up such that <var>{ a, b, c, d, alpha, beta, gamma }</var> as described 
in <a href="biblio.htm#KD"><cite>KD</cite></a> forms the defining generating set of <var>G</var>. For certain types 
the elements <var>alpha</var>, <var>beta</var> or <var>gamma</var> may not be present.
Similarly, for a 3-dimensional group we have the generating set <var>{ a, b, 
c, alpha, beta }</var> and <var>alpha</var> and <var>beta</var> may be absent.
<p>
<p>
To obtain a polycyclic generating sequence from the defining generators
of the matrix group we have to order the elements in the generating set
suitably. For this purpose we take the subsequence of <var>(gamma, beta, 
alpha, a, b, c, d)</var> of those generators which are present in the 
defining generating set of the matrix group.  This new ordering of the 
generators is then used to define a polycyclic presentation of the given 
almost crystallgraphic group. 
<p>
<a name="SECT006"><h2>1.6 Example computations I</h2></a>
<p><p>
Using the functions available for pcp groups in the share package 
sf polycyclic it is now easy to redo some of the calculations of 
<a href="biblio.htm#KD"><cite>KD</cite></a>. As a first example we check whether the groups indicated 
as torsion free in <a href="biblio.htm#KD"><cite>KD</cite></a> are also determined as torsion free
ones by <font face="helvetica,arial">GAP</font>. In <a href="biblio.htm#KD"><cite>KD</cite></a> these almost Bieberbach groups are listed as 
``AB-groups''. So for type ``013'' these are the groups with parameters 
<var>(k,0,1,0,1,0)</var> where <var>k</var> is an even integer. Let's look at some examples 
in <font face="helvetica,arial">GAP</font>:
<p>
<pre>
gap&gt; G:=AlmostCrystallographicPcpDim4("013",[8,0,1,0,1,0]);
Pcp-group with orders [ 2, 2, 0, 0, 0, 0 ]
gap&gt; IsTorsionFree(G);
G:=AlmostCrystallographicPcpDim4("013",[9,0,1,0,1,0]);
true
gap&gt; G:=AlmostCrystallographicPcpDim4("013",[9,0,1,0,1,0]);
Pcp-group with orders [ 2, 2, 0, 0, 0, 0 ]
gap&gt; IsTorsionFree(G);
false
</pre>
<p>
Further, there is also some cohomology information in the tables 
of <a href="biblio.htm#KD"><cite>KD</cite></a>. In fact, the groups in this library were obtained
as extensions <var>E</var> of the form
<p>
<p><var>
1  rightarrow  <font face="helvetica,arial">Z</font>  rightarrow  E  rightarrow  Q  rightarrow  1
<p></var>
<p>
where, in the 4-dimensional case <var>Q = E/ &lt; d &gt; </var>. The 
cohomology information for the particular example above shows that 
the groups determined by a parameter set <var>(k<sub>1</sub>,k<sub>2</sub>,k<sub>3</sub>,k<sub>4</sub>,k<sub>4</sub>,k<sub>6</sub>)</var> 
are equivalent as extensions to the groups determined by the parameters 
<var>(k<sub>1</sub>, k<sub>2</sub> bmod 2, k<sub>3</sub> bmod 2, k<sub>4</sub> bmod 2, k<sub>5</sub> bmod 2, 0)</var>. This is 
also visible in finding torsion:
<p>
<pre>
gap&gt; G:=AlmostCrystallographicPcpDim4("013",[10,0,2,0,1,0]);
Pcp-group with orders [ 2, 2, 0, 0, 0, 0 ]
gap&gt; IsTorsionFree(G);
false
gap&gt; G:=AlmostCrystallographicPcpDim4("013",[10,0,3,0,1,9]);
Pcp-group with orders [ 2, 2, 0, 0, 0, 0 ]
gap&gt; IsTorsionFree(G);
true
</pre>
<p>
<a name="SECT007"><h2>1.7 Example computations II</h2></a>
<p><p>
The computation of cohomology groups played an important role in the 
classification of the almost Bieberbach groups in <a href="biblio.htm#KD"><cite>KD</cite></a>. Using 
<font face="helvetica,arial">GAP</font>, it is now possible to check these computations. As an example we 
consider the 4-dimensional almost crystallographic groups of type 85 on 
page 202 of <a href="biblio.htm#KD"><cite>KD</cite></a>. This group <var>E</var> has 6 generators. In the table, one 
also finds the information
<p>
<p><var>
H<sup>2</sup>(Q,<font face="helvetica,arial">Z</font>) = <font face="helvetica,arial">Z</font>  oplus  (<font face="helvetica,arial">Z</font><sub>2</sub>)<sup>2</sup>  oplus  <font face="helvetica,arial">Z</font><sub>4</sub>
<p></var>
<p>
for <var>Q=E/ &lt; d &gt; </var> as above. Moreover, the <var>Q</var>--module <var><font face="helvetica,arial">Z</font></var> is 
in fact the group <var> &lt; d &gt; </var>, where the <var>Q</var>-action comes from 
conjugation inside <var>E</var>. In the case of groups of type 85, <var><font face="helvetica,arial">Z</font></var> is a 
trivial <var>Q</var>-module. The following example demonstrates how to (re)compute 
this two-cohomology group <var>H<sup>2</sup>(Q,<font face="helvetica,arial">Z</font>)</var>. 
<p>
<pre>
gap&gt; G:=AlmostCrystallographicPcpGroup(4, "085", false);
Pcp group with orders [ 2, 4, 0, 0, 0, 0 ]
gap&gt; GroupGeneratedByd:=Subgroup(G, [G.6] );
Pcp group with orders [ 0 ]
gap&gt; Q:=G/GroupGeneratedByd;
Pcp group with orders [ 2, 4, 0, 0, 0 ]
gap&gt; action:=List( Pcp(Q), x -&gt; [[1]] );
[ [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ]
gap&gt; C:=CRRecordByMats( Q, action);;
gap&gt; TwoCohomologyCR( C ).factor.rels;
[ 2, 2, 4, 0 ]
</pre>
<p>
This last line gives us the abelian invariants of the second 
cohomology group <var>H<sup>2</sup>(Q,<font face="helvetica,arial">Z</font>)</var>. So we should read this line as 
<p>
<p><var>
H<sup>2</sup>(Q,<font face="helvetica,arial">Z</font>) = <font face="helvetica,arial">Z</font><sub>2</sub>  oplus  <font face="helvetica,arial">Z</font><sub>2</sub>  oplus  <font face="helvetica,arial">Z</font><sub>4</sub>  oplus  <font face="helvetica,arial">Z</font>
<p></var>
<p>
which indeed coincides with the information in <a href="biblio.htm#KD"><cite>KD</cite></a>.
<p>
<a name="SECT008"><h2>1.8 Example computations III</h2></a>
<p><p>
As another application of the capabilities of the combination of
<code>aclib</code> and sf polycyclic we check some computations of <a href="biblio.htm#DM"><cite>DM</cite></a>.
<p>
Section 5 of the paper <a href="biblio.htm#DM"><cite>DM</cite></a> is completely devoted to an example
of the computation of the <var>P</var>-localization of a virtually nilpotent group,
where <var>P</var> is a set of primes. Although it is not our intention to 
develop the theory of <var>P</var>-localization of groups at this place, let us
summarize some of the main results concerning this topic here.
<p>
For a set of primes <var>P</var>, we say that <var>n  in  P</var> if and only if <var>n</var> is
a product of primes in <var>P</var>. A group <var>G</var> is said to be <var>P</var>-local if and 
only if the map <var>mu<sub>n</sub>:G rightarrow  G: g mapsto g<sup>n</sup></var> is bijective for 
all <var>n  in  P'</var>, where <var>P'</var> is the set of all primes not in <var>P</var>. The 
<var>P</var>-localization of a group <var>G</var>, is a <var>P</var>-local group <var>G<sub>P</sub></var> together 
with a morphism <var>alpha :G  rightarrow  G<sub>P</sub></var> which satisfy the following 
universal property: For each <var>P</var>-local group <var>L</var> and any morphism 
<var>varphi: G  rightarrow  L</var>, there exists a unique morphism <var>psi:G<sub>P</sub> 
 rightarrow  L</var>, such that <var>psi circ alpha = varphi</var>.
<p>
This concept of localization is well developed for finite groups and 
for nilpotent groups. For a finite group <var>G</var>, the <var>P</var>-localization is 
the largest quotient of <var>G</var>, having no elements with an order belonging to 
<var>P'</var> (the morphism <var>alpha</var>, mentioned above is the natural projection).
<p>
In <a href="biblio.htm#DM"><cite>DM</cite></a> a contribution is made towards the localization of virtually 
nilpotent groups. The theory developed in the paper is then illustrated 
in the last section of the paper by means of the computation of the 
<var>P</var>-localization of an almost crystallographic group. For their example
the authors have chosen an almost crystallographic group <var>G</var> of dimension 3
and type 17. For the set of parameters <var>(k<sub>1</sub>,k<sub>2</sub>,k<sub>3</sub>,k<sub>4</sub>)</var> they have
considered all cases of the form <var>(k<sub>1</sub>,k<sub>2</sub>,k<sub>3</sub>,k<sub>4</sub>)=(2,0,0,k<sub>4</sub>)</var>. 
<p>
Here we will check their computations in two cases <var>k<sub>4</sub>=0</var> and <var>k<sub>4</sub>=1</var>
using the set of primes <var>P={2}</var>. The holonomy group of these almost 
crystallographic groups <var>G</var> is the dihedral group <var>cal D<sub>6</sub></var> of order 
12. Thus there is a short exact sequence of the form 
<p><var> 1  rightarrow   Fitt(G)  rightarrow  G 
      rightarrow  cal D<sub>6</sub>  rightarrow  1. <p></var>
<p>
As a first step in their computation, Descheemaeker and Malfait determine
the group <var>I<sub>P'</sub>cal D<sub>6</sub></var>, which is the unique subgroup of order 3 in
<var>cal D<sub>6</sub></var>. One of the main objects in <a href="biblio.htm#DM"><cite>DM</cite></a> is the group <var>K=p<sup>-1</sup> 
(I<sub>P'</sub>cal D<sub>6</sub>)</var>, where <var>p</var> is the natural projection of <var>G</var> onto its 
holonomy group. It is known that the <var>P</var>-localization of <var>G</var> coincides 
with the <var>P</var>-localization of <var>G/gamma<sub>3</sub>(K)</var>, where <var>gamma<sub>3</sub>(K)</var> is the 
third term in the lower central series of <var>K</var>. As <var>G/gamma<sub>3</sub>(K)</var> is 
finite in this example, we exactly know what this <var>P</var>-localization is. 
Let us now show, how GAP can be used to compute this <var>P</var>-localization in 
two cases:
<p>
<p>
First case: The parameters are <var>(k<sub>1</sub>,k<sub>2</sub>,k<sub>3</sub>,k<sub>4</sub>)=(2,0,0,0)</var>
<pre>
gap&gt; G := AlmostCrystallographicPcpGroup(3, 17, [2,0,0,0] );
Pcp group with orders [ 2, 6, 0, 0, 0 ]
gap&gt; projection := NaturalHomomorphismOnHolonomyGroup( G );
[ g1, g2, g3, g4, g5 ] -&gt; [ g1, g2, identity, identity, identity ]
gap&gt; F := HolonomyGroup( G );
Pcp group with orders [ 2, 6 ]
gap&gt; IPprimeD6 := Subgroup( F , [F.2^2] );
Pcp group with orders [ 3 ]
gap&gt; K := PreImage( projection, IPprimeD6 );
Pcp group with orders [ 3, 0, 0, 0 ]
gap&gt; PrintPcpPresentation( K );
pcp presentation on generators [ g2^2, g3, g4, g5 ]
g2^2 ^ 3 = identity
g3 ^ g2^2 = g3^-1*g4^-1
g3 ^ g2^2^-1 = g4*g5^-2
g4 ^ g2^2 = g3*g5^2
g4 ^ g2^2^-1 = g3^-1*g4^-1*g5^2
g4 ^ g3 = g4*g5^2
g4 ^ g3^-1 = g4*g5^-2
gap&gt; Gamma3K := CommutatorSubgroup( K, CommutatorSubgroup( K, K ));
Pcp group with orders [ 0, 0, 0 ]
gap&gt; quotient := G/Gamma3K;
Pcp group with orders [ 2, 6, 3, 3, 2 ]
gap&gt; S := SylowSubgroup( quotient, 3);
Pcp group with orders [ 3, 3, 3 ]
gap&gt; N := NormalClosure( quotient, S);
Pcp group with orders [ 3, 3, 3 ]
gap&gt; localization := quotient/N;
Pcp group with orders [ 2, 2, 2 ]
gap&gt; PrintPcpPresentation( localization );
pcp presentation on generators [ g1, g2, g3 ]
g1 ^ 2 = identity
g2 ^ 2 = identity
g3 ^ 2 = identity
</pre>
This shows that <var>G<sub>P</sub>cong <font face="helvetica,arial">Z</font><sub>2</sub><sup>3</sup></var>.
<p>
<p>
Second case: The parameters are <var>(k<sub>1</sub>,k<sub>2</sub>,k<sub>3</sub>,k<sub>4</sub>)=(2,0,0,1)</var>
<pre>
gap&gt; G := AlmostCrystallographicPcpGroup(3, 17, [2,0,0,1]);;
gap&gt; projection := NaturalHomomorphismOnHolonomyGroup( G );;
gap&gt; F := HolonomyGroup( G );;
gap&gt; IPprimeD6 := Subgroup( F , [F.2^2] );;
gap&gt; K := PreImage( projection, IPprimeD6 );;
gap&gt; Gamma3K := CommutatorSubgroup( K, CommutatorSubgroup( K, K ));;
gap&gt; quotient := G/Gamma3K;;
gap&gt; S := SylowSubgroup( quotient, 3);;
gap&gt; N := NormalClosure( quotient, S);;
gap&gt; localization := quotient/N;
Pcp group with orders [ 2, 2, 2 ]
gap&gt; PrintPcpPresentation( localization );
pcp presentation on generators [ g1, g2, g3 ]
g1 ^ 2 = identity
g2 ^ 2 = g3
g3 ^ 2 = identity
g2 ^ g1 = g2*g3
g2 ^ g1^-1 = g2*g3
</pre>
<p>
In this case, we see that <var>G<sub>P</sub>=cal D<sub>4</sub></var>.
<p>
<p>
The reader can check that these results coincide with those obtained in 
<a href="biblio.htm#DM"><cite>DM</cite></a>. Note also that we used a somewhat different scheme to compute 
this localization than the one used in <a href="biblio.htm#DM"><cite>DM</cite></a>. We invite the reader to
check the same computations, tracing exactly the steps made in <a href="biblio.htm#DM"><cite>DM</cite></a>.
<p>
[<a href = "chapters.htm">Up</a>] [<a href = "theindex.htm">Index</a>]
<P>
<address>GAP 4 manual<br>November 2000
</address></body></html>