This file contains the mails sent to the GAP forum in April-June 1993.

Name               Email address                           Mails    Lines
Martin Schoenert   martin@math.rwth-aachen.de                 10      303
Frank Celler       fceller@math.rwth-aachen.de                 8      218
Joachim Neubueser  neubuese@math.rwth-aachen.de                7      368
Alexander Hulpke   hulpke@abacus.concordia.ca                  5      128
Thomas Breuer      sam@math.rwth-aachen.de                     4      170
SMTP Daemon        smtp@huearn.sztaki.hu                       3      480
Goetz Pfeiffer     pfeiffer@dmi.ens.fr                         3      172
Jacob Hirbawi      jcbhrb@cerf.net                             2      118
Derek Holt         dfh@maths.warwick.ac.uk                     2      110
Jaroslav Gurican   gurican@alpha.dcs.mff.uniba.cs              2       63
Charley Wright     wright@bright.uoregon.edu                   2       60
Leonard Soicher    l.h.soicher@qmw.ac.uk                       2       48
Kay Magaard        kaym@math.wayne.edu                         2       47
Daniel Ruberman    ruberman@binah.cc.brandeis.edu              2       39
David Sibley       sibley@math.psu.edu                         2       30
Stephan Rosebrock  rosebrock@mathematik.uni-frankfurt.dbp.de   2       29
Michael Smith      smith@pell.anu.edu.au                       2       21
T. P. McDonough    tpd@aberystwyth.ac.uk                       1       75
Peter Jipsen       pjipsen@iastate.edu                         1       60
Steve Linton       slinton@math.rwth-aachen.de                 1       34
John R. Neil       neil@dehn.mth.pdx.edu                       1       34
A. E. Brouwer      aeb@win.tue.nl                              1       30
Akihiro Munemasa   munemasa@math.sci.kyushu-u.ac.jp            1       24
A. Szczepanski     aszczepa@umpa.ens-lyon.fr                   1       23
A. Caranti         caranti@volterra.cineca.it                  1       18
Lewis Stiller      stiller@blaze.cs.jhu.edu                    1       15
Chad Scherrer      scherrc@rosevc.rose-hulman.edu              1       14
Dana-Picard Noah   dana@bimacs.cs.biu.ac.il                    1       13
Frank Leonard      matleonard@bodkin.ucg.ie                    1       12
Gary K. Schwartz   schwartz@symcom.math.uiuc.edu               1       11
N. S. Mendelsohn   mendel@ccu.umanitoba.ca                     1        6
Steve Linton       sl25@cus.cam.ac.uk                          1        4

This  file is in Berkeley mail drop format, which means you can read this
file with 'mail -f <name-of-the-file>'  or 'mailx -f <name-of-the-file>'.
It is also possible however to read this file with any text editor.



From neubuese@math.rwth-aachen.de Thu Apr  1 12:33:35 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Thu, 1 Apr 93 12:33:35 +0200
Subject:    hidden treasures

Dear GAP-forum,

Thierry Dana-Picard's question provoked two immediate replies by Peter
Webb and Martin  Wursthorn  which both  stated:  I  have  written  GAP
routines  ...   .   I enjoyed seeing this, I  think it  shows that the
GAP-forum serves  its purpose. 

However  I would like  to  take  this instance  to appeal  to use  the
GAP-forum  also  for informally informing others  of  the existence of
such routines without waiting for a question. This aspect has not been
emphazised when the  function of  the GAP-forum was  explained in  the
README file with the announcement of GAP, but I think as time proceeds
there will be more  such "hidden treasures" which  might be useful for
others  as well if one knows of them.  So please tell in the GAP-forum
about routines  that  you  have  written (and hopefully are willing to
share) as well as about interesting applications.  It should  be clear
that since the GAP-forum  is  unrefereed this does in no  way conflict
with formal publications.

Joachim Neubueser



From neubuese@math.rwth-aachen.de Thu Apr  1 12:55:40 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Thu, 1 Apr 93 12:55:40 +0200
Subject:    Representation Theory in GAP

In his letter Peter Webb writes:
 
> On the topic of representation theory within GAP, I have the impression
> that this side of things has been somewhat neglected so far. The meataxe
> is implemented, but I have other goals in mind to do with creating software
> to complement this. For example, the meataxe would not be so good for
> analyzing the structure of modules for p-groups in characteristic p, but
> algorithms based upon the computation of fixed points are very effective in
> this situation. It is a long-term project for me to expand what software
> I have, and to put it into a publicly acceptable state. Right now, for
> example, it does not properly conform to the object-oriented style of GAP,
> and it is not adequately tested. At this point I would be happy to hear of
> others writing similar software (some I already know of). My general aim
> is to have a package which computes Loewy series reasonably, will extract
> a quotient in the Loewy series of a p-group as a representation of its
> normalizer in a larger group (for example), will compute relative traces
> between modules of fixed points, and such similar things.

We  agree.   While character theory (and hence ordinary representation
theory)  is  rather  well  represented in  GAP,  working with  modular
representations is not yet.  Note however that there is a link to  the
MOC system for  working  with  modular characters provided in GAP (see
section  42.46  ff,  p.679 of  the manual).  We  do  intend to  extend
facilities for working  in modular representation  theory and  we will
welcome cooperation  with others who have already implemented routines
or are implementing routines  in this  field.  We  will  contact Peter
Webb directly but  also ask others  who are  interested to contact us,
e.g.   Klaus  Lux  or  Herbert  Pahlings   (lux@math.rwth-aachen.de  ,
pahlings@math.rwth-aachen.de) and  we hope that eventually  we will be
able to provide a good package.

Joachim Neubueser



From pjipsen@iastate.edu Thu Apr  1 21:27:59 1993
From:       pjipsen@iastate.edu "Peter Jipsen"
Date:       Thu, 1 Apr 93 21:27:59 +0200
Subject:    Re: hidden treasures 

>Dear GAP-forum,
>
>Thierry Dana-Picard's question provoked two immediate replies by Peter
>Webb and Martin  Wursthorn  which both  stated:  I  have  written  GAP
>routines  ...   .   I enjoyed seeing this, I  think it  shows that the
>GAP-forum serves  its purpose. 
>
>However  I would like  to  take  this instance  to appeal  to use  the
>GAP-forum  also  for informally informing others  of  the existence of
>such routines without waiting for a question. This aspect has not been
>emphazised when the  function of  the GAP-forum was  explained in  the
>README file with the announcement of GAP, but I think as time proceeds
>there will be more  such "hidden treasures" which  might be useful for
>others  as well if one knows of them.  So please tell in the GAP-forum
>about routines  that  you  have  written (and hopefully are willing to
>share) as well as about interesting applications.  It should  be clear
>that since the GAP-forum  is  unrefereed this does in no  way conflict
>with formal publications.
>
>Joachim Neubueser
>

Not being very well-versed in group theory, I have used GAP mainly for
combinatorial problems and finite relation algebras (including
polygroups, hypergraphs and a library of small examples). I find it a
very convenient language to write little routines that test
conjectures on these finite structures, and recently I have started
putting it together as a structured domain. However there is a big
difference between code written for private research and a public
package with documentation and extensive comments.  

If other forum members are interested in the areas mentioned above, I
will gladly share what I've got. I'm certainly interested in feedback,
and on whether other GAP users are applying GAP outside group theory. 
I realise that the developers are mainly commited to supporting
algorithms related to groups, but I think they have come up with a
nice, clean development system (and are giving it away free!) that
could be a basis for several other areas of abstract algebra and
discrete mathematics. Have other users of GAP implemented algorithms
and structures for universal algebra or related areas?

At this point I am only aware of GRAPE by Leonard Soicher for
graphs. Some of my routines would greatly benefit from his approach
but at the moment small finite polygroups are represented by a domain
that contains a list of all elements (records) and an operation table.
Most simple minded algorithms in this area loop of all subsets
of elements, so the complexity very bad and they won't work for larger
structures anyway.  Relations are implemented as boolean matrices, but
it is simple to convert them to GRAPE format and then use the
interface to Brendan McKay's 'nauty' to get a more compact description
of the relation. In the near future I will also interface to some
c-code of my own, that searches for finite counter examples and 
applies some theorem proving techniques for relation algebras.

BTW does anyone know of a program that tests finitary relational
structures for isomorphism (e.g. nauty does it for binary relational
structures)?
 
Peter Jipsen



From sl25@cus.cam.ac.uk Fri Apr  2 14:09:21 1993
From:       sl25@cus.cam.ac.uk "Steve Linton"
Date:       Fri, 2 Apr 93 14:09:21 +0200
Subject:    Executables and upgrade to 3r2p1

Are the executables on samson yet upgraded to 3r2p1?

	Steve



From neubuese@math.rwth-aachen.de Fri Apr  2 14:29:18 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Fri, 2 Apr 93 14:29:18 +0200
Subject:    Re: Executables and upgrade to 3r2p1

Steve Linton asks:
 
> Are the executables on samson yet upgraded to 3r2p1?
> 
> 	Steve
 
The answer is: No, not yet. But patch 1 contains only minimal 
changes in the kernel.

Joachim Neubueser (for Martin who knows such things better than I)



From rosebrock@mathematik.uni-frankfurt.dbp.de Sat Apr 10 14:12:48 1993
From:       rosebrock@mathematik.uni-frankfurt.dbp.de "Stephan Rosebrock"
Date:       Sat, 10 Apr 93 14:12:48 +0200
Subject:    maps of fin pres into symmetric groups

Dear Gap-Forum,

I don't have much experience in GAP, but I would be intersted in a
function that tests, if there is a homomorphism of a group, given as a
finite presentation, into a given symmetric or alternating group.

Stephan Rosebrock

rosebro@math.uni-frankfurt.de



From jcbhrb@cerf.net Mon Apr 12 12:17:46 1993
From:       jcbhrb@cerf.net "Jacob Hirbawi"
Date:       Mon, 12 Apr 93 12:17:46 +0200
Subject:    RE: maps of fin pres groups into symmetric groups

<gap-forum@samson.math.rwth-aachen.de>

Stephan Rosebrock <rosebro@math.uni-frankfurt.de> writes:

> I don't have much experience in GAP, but I would be intersted in a
> function that tests, if there is a homomorphism of a group, given as a
> finite presentation, into a given symmetric or alternating group.

I don't have much experience myself but I would like to offer a few 
suggestions since the problem of calculating Hom(G,H) for arbitrary
groups G,H is a fundementally important one. First since there is
always a trivial hom from any group to another; I will assume that the
search is for a nontrivial one or perhaps for a monic one; since Stephan
used "into a given ..." instead of "to a given ..." I will assume that 
the latter case is the one of interest.

At any rate in the case of the symmetric group there is a systematic way to
find all hom's and a way to extract the monic ones. GAP does have functions
that reduce this problem to a simple combinatorial one : first calculate the
marks of your group using TableOfMarks; then to find all hom's from your group
to the symmetric of degree n you find all possible ways you can add the rows
of the table of marks so the first entry equals n; of this list in the monic
ones n only occurs as the first entry. This is in complete ananlogy of finding
all possible representations (faithful or not) of a given group into GL(n,C) 
-- simply replace "table of marks" for "character table" and "degree" for
"dimension". In fact a generic program that takes in a matrix and finds all 
possible combination of its rows have n as the first entry and then checks if
n does not occur as another entry will work for both. It would be nice if
someone can write such a program in GAP; in the meantime for low degrees
(or dimenions) calculations by HAND( v3.2 or above ;-) ) are not too difficult:

Here's an example with a group defined by the presentation :

  a := AbstractGenerator("a");
  b := AbstractGenerator("b");
  c := AbstractGenerator("c");
  z := AbstractGenerator("z");
  AbsGroup1 := Group(a,b,c,z);
  AbsGroup1.relators := [a^2*z^-1,b^3*z^-1,c^3*z^-1,a*b*c*z^-1,z^2];

The table of marks and character tables are then :

  Group1 := OperationCosetsFpGroup(g1,Subgroup(AbsGroup1,[IdWord]));
  Marks1 := MatTom( TableOfMarks( Group1 ) );
  Charachters1 := CharTable( Group1 ).irreducibles;

 Marks1;
 [ [ 24,  0, 0, 0, 0, 0, 0 ],
   [ 12, 12, 0, 0, 0, 0, 0 ], 
   [  8,  0, 2, 0, 0, 0, 0 ],
   [  6,  6, 0, 2, 0, 0, 0 ],
   [  4,  4, 1, 0, 1, 0, 0 ], 
   [  3,  3, 0, 3, 0, 3, 0 ],
   [  1,  1, 1, 1, 1, 1, 1 ] ]

All hom's from the group to Symmetric(8) for example correspond to

   [  8,  0, 2, 0, 0, 0, 0 ],         M[3]
   [  8,  8, 2, 4, 2, 2, 2 ],         M[4] + 2 M[7]
   [  8,  8, 2, 0, 2, 0, 0 ],         2 M[5] 
   [  8,  8, 2, 4, 2, 4, 1 ],         M[5] + M[6] + M[7]
   [  8,  8, 5, 4, 5, 4, 4 ],         M[5] + 4 M[7]
   [  8,  8, 2, 8, 2, 6, 8 ],         2 M[6] + 2 M[7]
   [  8,  8, 5, 8, 5, 8, 5 ],         M[6] + 5 M[7]
   [  8,  8, 8, 8, 8, 8, 8 ],         8 M[7]

so there are 8 inequivalent hom's; only the first is monic.

 Chracters1;
 [ [ 1, 1, 1, 1, 1, 1, 1 ],
  [ 1, 1, E(3)^2, E(3), 1, E(3)^2, E(3) ], 
  [ 1, 1, E(3), E(3)^2, 1, E(3), E(3)^2 ],
  [ 2, 0, 1, 1, -2, -1, -1 ], 
  [ 2, 0, E(3), E(3)^2, -2, -E(3), -E(3)^2 ], 
  [ 2, 0, E(3)^2, E(3), -2, -E(3)^2, -E(3) ],
  [ 3, -1, 0, 0, 3, 0, 0 ] ]

(I was going to do a similar calculations with the character table of the 
group for comparison but there are too many possibilities even for GL(3,C)
 -- oh well, I should have picked a simpler group!)

Hope this helps.

Jacob Hirbawi
JcbHrb@CERF.net



From smtp@huearn.sztaki.hu Mon Apr 12 12:39:31 1993
From:       smtp@huearn.sztaki.hu "SMTP Daemon"
Date:       Mon, 12 Apr 93 12:39:31 +0200
Subject:    Undeliverable Mail

HUEARN.SZTAKI.HU unable to deliver following mail to recipient(s):
    <ehorvath@math.rwth-aachen.de>
HUEARN.SZTAKI.HU received negative reply:
550 <ehorvath@math.rwth-aachen.de>... User unknown

           ** Text of Mail follows **
Received: from vella.sztaki.hu by HUEARN.SZTAKI.HU (IBM VM SMTP V2R2) with TCP;
   Mon, 12 Apr 93 12:44:20 SET
Received: by vella.sztaki.hu (MX V3.2) with SITE; Mon, 12 Apr 1993 12:44:31
          gmt+1
Received: via VELLA (2.0) from: uucp>gap-forum@samson.math.rwth-aachen.de at
          93-04-12 12:44:26
Subject: RE: maps of fin pres groups into symmetric groups
From: gap-forum@samson.math.rwth-aachen.de
To: ehorvath@math.rwth-aachen.de
Received: from mcsun.EU.net by HUGBOX.SZTAKI.HU (MX V3.2) with SMTP; Mon, 12
          Apr 1993 12:36:10 gmt+1
Received: from urmel.Informatik.RWTH-Aachen.DE by mcsun.EU.net with SMTP id
          AA20890 (5.65b/CWI-2.216); Mon, 12 Apr 1993 12:35:41 +0200
Received: from math.math.rwth-aachen.de by urmel.informatik.rwth-aachen.de
          (4.1/urmel-5) id AA10807; Mon, 12 Apr 93 12:26:26 +0200
Received: from samson.math.rwth-aachen.de by math.math.rwth-aachen.de with SMTP
          (15.11/15.6) id AA21211; Mon, 12 Apr 93 12:27:15 mes
Received: by samson.math.rwth-aachen.de (5.57/Ultrix3.0-C) id AA24879; Mon, 12
          Apr 93 12:18:42 +0200
Date: Mon, 12 Apr 93 12:18:42 +0200
Message-ID: <9304112130.AA15242@nic.cerf.net>
Comment: GAP Forum
Originator: gap-forum@samson.math.rwth-aachen.de
Errors-To: martin@samson.math.rwth-aachen.de
Reply-To: <gap-forum@samson.math.rwth-aachen.de>
Sender: gap-forum@samson.math.rwth-aachen.de
Version: 5.31 -- Copyright (c) 1991, Anastasios Kotsikonas
From: Jacob Hirbawi <jcbhrb@cerf.net>
To: Multiple recipients of list <gap-forum@samson.math.rwth-aachen.de>
Subject: RE: maps of fin pres groups into symmetric groups

<gap-forum@samson.math.rwth-aachen.de>

Stephan Rosebrock <rosebro@math.uni-frankfurt.de> writes:

> I don't have much experience in GAP, but I would be intersted in a
> function that tests, if there is a homomorphism of a group, given as a
> finite presentation, into a given symmetric or alternating group.

I don't have much experience myself but I would like to offer a few
suggestions since the problem of calculating Hom(G,H) for arbitrary
groups G,H is a fundementally important one. First since there is
always a trivial hom from any group to another; I will assume that the
search is for a nontrivial one or perhaps for a monic one; since Stephan
used "into a given ..." instead of "to a given ..." I will assume that
the latter case is the one of interest.

At any rate in the case of the symmetric group there is a systematic way to
find all hom's and a way to extract the monic ones. GAP does have functions
that reduce this problem to a simple combinatorial one : first calculate the
marks of your group using TableOfMarks; then to find all hom's from your group
to the symmetric of degree n you find all possible ways you can add the rows
of the table of marks so the first entry equals n; of this list in the monic
ones n only occurs as the first entry. This is in complete ananlogy of finding
all possible representations (faithful or not) of a given group into GL(n,C)
-- simply replace "table of marks" for "character table" and "degree" for
"dimension". In fact a generic program that takes in a matrix and finds all
possible combination of its rows have n as the first entry and then checks if
n does not occur as another entry will work for both. It would be nice if
someone can write such a program in GAP; in the meantime for low degrees
(or dimenions) calculations by HAND( v3.2 or above ;-) ) are not too difficult:

Here's an example with a group defined by the presentation :

  a := AbstractGenerator("a");
  b := AbstractGenerator("b");
  c := AbstractGenerator("c");
  z := AbstractGenerator("z");
  AbsGroup1 := Group(a,b,c,z);
  AbsGroup1.relators := [a^2*z^-1,b^3*z^-1,c^3*z^-1,a*b*c*z^-1,z^2];

The table of marks and character tables are then :

  Group1 := OperationCosetsFpGroup(g1,Subgroup(AbsGroup1,[IdWord]));
  Marks1 := MatTom( TableOfMarks( Group1 ) );
  Charachters1 := CharTable( Group1 ).irreducibles;

 Marks1;
 [ [ 24,  0, 0, 0, 0, 0, 0 ],
   [ 12, 12, 0, 0, 0, 0, 0 ],
   [  8,  0, 2, 0, 0, 0, 0 ],
   [  6,  6, 0, 2, 0, 0, 0 ],
   [  4,  4, 1, 0, 1, 0, 0 ],
   [  3,  3, 0, 3, 0, 3, 0 ],
   [  1,  1, 1, 1, 1, 1, 1 ] ]

All hom's from the group to Symmetric(8) for example correspond to

   [  8,  0, 2, 0, 0, 0, 0 ],         M[3]
   [  8,  8, 2, 4, 2, 2, 2 ],         M[4] + 2 M[7]
   [  8,  8, 2, 0, 2, 0, 0 ],         2 M[5]
   [  8,  8, 2, 4, 2, 4, 1 ],         M[5] + M[6] + M[7]
   [  8,  8, 5, 4, 5, 4, 4 ],         M[5] + 4 M[7]
   [  8,  8, 2, 8, 2, 6, 8 ],         2 M[6] + 2 M[7]
   [  8,  8, 5, 8, 5, 8, 5 ],         M[6] + 5 M[7]
   [  8,  8, 8, 8, 8, 8, 8 ],         8 M[7]

so there are 8 inequivalent hom's; only the first is monic.

 Chracters1;
 [ [ 1, 1, 1, 1, 1, 1, 1 ],
  [ 1, 1, E(3)^2, E(3), 1, E(3)^2, E(3) ],
  [ 1, 1, E(3), E(3)^2, 1, E(3), E(3)^2 ],
  [ 2, 0, 1, 1, -2, -1, -1 ],
  [ 2, 0, E(3), E(3)^2, -2, -E(3), -E(3)^2 ],
  [ 2, 0, E(3)^2, E(3), -2, -E(3)^2, -E(3) ],
  [ 3, -1, 0, 0, 3, 0, 0 ] ]

(I was going to do a similar calculations with the character table of the
group for comparison but there are too many possibilities even for GL(3,C)
 -- oh well, I should have picked a simpler group!)

Hope this helps.

Jacob Hirbawi
JcbHrb@CERF.net



From smtp@huearn.sztaki.hu Mon Apr 12 12:58:39 1993
From:       smtp@huearn.sztaki.hu "SMTP Daemon"
Date:       Mon, 12 Apr 93 12:58:39 +0200
Subject:    Undeliverable Mail

HUEARN.SZTAKI.HU unable to deliver following mail to recipient(s):
    <ehorvath@math.rwth-aachen.de>
HUEARN.SZTAKI.HU received negative reply:
550 <ehorvath@math.rwth-aachen.de>... User unknown

           ** Text of Mail follows **
Received: from vella.sztaki.hu by HUEARN.SZTAKI.HU (IBM VM SMTP V2R2) with TCP;
   Mon, 12 Apr 93 13:04:26 SET
Received: by vella.sztaki.hu (MX V3.2) with SITE; Mon, 12 Apr 1993 13:04:42
          gmt+1
Received: via VELLA (2.0) from: uucp>gap-forum@samson.math.rwth-aachen.de at
          93-04-12 13:04:36
Subject: Undeliverable Mail
From: gap-forum@samson.math.rwth-aachen.de
To: ehorvath@math.rwth-aachen.de
Received: from mcsun.EU.net by HUGBOX.SZTAKI.HU (MX V3.2) with SMTP; Mon, 12
          Apr 1993 12:55:14 gmt+1
Received: from urmel.Informatik.RWTH-Aachen.DE by mcsun.EU.net with SMTP id
          AA21090 (5.65b/CWI-2.216); Mon, 12 Apr 1993 12:54:45 +0200
Received: from math.math.rwth-aachen.de by urmel.informatik.rwth-aachen.de
          (4.1/urmel-5) id AA11211; Mon, 12 Apr 93 12:47:15 +0200
Received: from samson.math.rwth-aachen.de by math.math.rwth-aachen.de with SMTP
          (15.11/15.6) id AA21251; Mon, 12 Apr 93 12:48:05 mes
Received: by samson.math.rwth-aachen.de (5.57/Ultrix3.0-C) id AA24980; Mon, 12
          Apr 93 12:39:59 +0200
Date: Mon, 12 Apr 93 12:39:59 +0200
Message-ID: <9304121039.AA24980@samson.math.rwth-aachen.de>
Comment: GAP Forum
Originator: gap-forum@samson.math.rwth-aachen.de
Errors-To: martin@samson.math.rwth-aachen.de
Reply-To: <gap-forum@samson.math.rwth-aachen.de>
Sender: gap-forum@samson.math.rwth-aachen.de
Version: 5.31 -- Copyright (c) 1991, Anastasios Kotsikonas
From: <SMTP@huearn.sztaki.hu>
To: Multiple recipients of list <gap-forum@samson.math.rwth-aachen.de>
Subject: Undeliverable Mail

HUEARN.SZTAKI.HU unable to deliver following mail to recipient(s):
    <ehorvath@math.rwth-aachen.de>
HUEARN.SZTAKI.HU received negative reply:
550 <ehorvath@math.rwth-aachen.de>... User unknown

           ** Text of Mail follows **
Received: from vella.sztaki.hu by HUEARN.SZTAKI.HU (IBM VM SMTP V2R2) with TCP;
   Mon, 12 Apr 93 12:44:20 SET
Received: by vella.sztaki.hu (MX V3.2) with SITE; Mon, 12 Apr 1993 12:44:31
          gmt+1
Received: via VELLA (2.0) from: uucp>gap-forum@samson.math.rwth-aachen.de at
          93-04-12 12:44:26
Subject: RE: maps of fin pres groups into symmetric groups
From: gap-forum@samson.math.rwth-aachen.de
To: ehorvath@math.rwth-aachen.de
Received: from mcsun.EU.net by HUGBOX.SZTAKI.HU (MX V3.2) with SMTP; Mon, 12
          Apr 1993 12:36:10 gmt+1
Received: from urmel.Informatik.RWTH-Aachen.DE by mcsun.EU.net with SMTP id
          AA20890 (5.65b/CWI-2.216); Mon, 12 Apr 1993 12:35:41 +0200
Received: from math.math.rwth-aachen.de by urmel.informatik.rwth-aachen.de
          (4.1/urmel-5) id AA10807; Mon, 12 Apr 93 12:26:26 +0200
Received: from samson.math.rwth-aachen.de by math.math.rwth-aachen.de with SMTP
          (15.11/15.6) id AA21211; Mon, 12 Apr 93 12:27:15 mes
Received: by samson.math.rwth-aachen.de (5.57/Ultrix3.0-C) id AA24879; Mon, 12
          Apr 93 12:18:42 +0200
Date: Mon, 12 Apr 93 12:18:42 +0200
Message-ID: <9304112130.AA15242@nic.cerf.net>
Comment: GAP Forum
Originator: gap-forum@samson.math.rwth-aachen.de
Errors-To: martin@samson.math.rwth-aachen.de
Reply-To: <gap-forum@samson.math.rwth-aachen.de>
Sender: gap-forum@samson.math.rwth-aachen.de
Version: 5.31 -- Copyright (c) 1991, Anastasios Kotsikonas
From: Jacob Hirbawi <jcbhrb@cerf.net>
To: Multiple recipients of list <gap-forum@samson.math.rwth-aachen.de>
Subject: RE: maps of fin pres groups into symmetric groups

<gap-forum@samson.math.rwth-aachen.de>

Stephan Rosebrock <rosebro@math.uni-frankfurt.de> writes:

> I don't have much experience in GAP, but I would be intersted in a
> function that tests, if there is a homomorphism of a group, given as a
> finite presentation, into a given symmetric or alternating group.

I don't have much experience myself but I would like to offer a few
suggestions since the problem of calculating Hom(G,H) for arbitrary
groups G,H is a fundementally important one. First since there is
always a trivial hom from any group to another; I will assume that the
search is for a nontrivial one or perhaps for a monic one; since Stephan
used "into a given ..." instead of "to a given ..." I will assume that
the latter case is the one of interest.

At any rate in the case of the symmetric group there is a systematic way to
find all hom's and a way to extract the monic ones. GAP does have functions
that reduce this problem to a simple combinatorial one : first calculate the
marks of your group using TableOfMarks; then to find all hom's from your group
to the symmetric of degree n you find all possible ways you can add the rows
of the table of marks so the first entry equals n; of this list in the monic
ones n only occurs as the first entry. This is in complete ananlogy of finding
all possible representations (faithful or not) of a given group into GL(n,C)
-- simply replace "table of marks" for "character table" and "degree" for
"dimension". In fact a generic program that takes in a matrix and finds all
possible combination of its rows have n as the first entry and then checks if
n does not occur as another entry will work for both. It would be nice if
someone can write such a program in GAP; in the meantime for low degrees
(or dimenions) calculations by HAND( v3.2 or above ;-) ) are not too difficult:

Here's an example with a group defined by the presentation :

  a := AbstractGenerator("a");
  b := AbstractGenerator("b");
  c := AbstractGenerator("c");
  z := AbstractGenerator("z");
  AbsGroup1 := Group(a,b,c,z);
  AbsGroup1.relators := [a^2*z^-1,b^3*z^-1,c^3*z^-1,a*b*c*z^-1,z^2];

The table of marks and character tables are then :

  Group1 := OperationCosetsFpGroup(g1,Subgroup(AbsGroup1,[IdWord]));
  Marks1 := MatTom( TableOfMarks( Group1 ) );
  Charachters1 := CharTable( Group1 ).irreducibles;

 Marks1;
 [ [ 24,  0, 0, 0, 0, 0, 0 ],
   [ 12, 12, 0, 0, 0, 0, 0 ],
   [  8,  0, 2, 0, 0, 0, 0 ],
   [  6,  6, 0, 2, 0, 0, 0 ],
   [  4,  4, 1, 0, 1, 0, 0 ],
   [  3,  3, 0, 3, 0, 3, 0 ],
   [  1,  1, 1, 1, 1, 1, 1 ] ]

All hom's from the group to Symmetric(8) for example correspond to

   [  8,  0, 2, 0, 0, 0, 0 ],         M[3]
   [  8,  8, 2, 4, 2, 2, 2 ],         M[4] + 2 M[7]
   [  8,  8, 2, 0, 2, 0, 0 ],         2 M[5]
   [  8,  8, 2, 4, 2, 4, 1 ],         M[5] + M[6] + M[7]
   [  8,  8, 5, 4, 5, 4, 4 ],         M[5] + 4 M[7]
   [  8,  8, 2, 8, 2, 6, 8 ],         2 M[6] + 2 M[7]
   [  8,  8, 5, 8, 5, 8, 5 ],         M[6] + 5 M[7]
   [  8,  8, 8, 8, 8, 8, 8 ],         8 M[7]

so there are 8 inequivalent hom's; only the first is monic.

 Chracters1;
 [ [ 1, 1, 1, 1, 1, 1, 1 ],
  [ 1, 1, E(3)^2, E(3), 1, E(3)^2, E(3) ],
  [ 1, 1, E(3), E(3)^2, 1, E(3), E(3)^2 ],
  [ 2, 0, 1, 1, -2, -1, -1 ],
  [ 2, 0, E(3), E(3)^2, -2, -E(3), -E(3)^2 ],
  [ 2, 0, E(3)^2, E(3), -2, -E(3)^2, -E(3) ],
  [ 3, -1, 0, 0, 3, 0, 0 ] ]

(I was going to do a similar calculations with the character table of the
group for comparison but there are too many possibilities even for GL(3,C)
 -- oh well, I should have picked a simpler group!)

Hope this helps.

Jacob Hirbawi
JcbHrb@CERF.net



From smtp@huearn.sztaki.hu Mon Apr 12 13:09:39 1993
From:       smtp@huearn.sztaki.hu "SMTP Daemon"
Date:       Mon, 12 Apr 93 13:09:39 +0200
Subject:    Undeliverable Mail

HUEARN.SZTAKI.HU unable to deliver following mail to recipient(s):
    <ehorvath@math.rwth-aachen.de>
HUEARN.SZTAKI.HU received negative reply:
550 <ehorvath@math.rwth-aachen.de>... User unknown

           ** Text of Mail follows **
Received: from vella.sztaki.hu by HUEARN.SZTAKI.HU (IBM VM SMTP V2R2) with TCP;
   Mon, 12 Apr 93 13:14:29 SET
Received: by vella.sztaki.hu (MX V3.2) with SITE; Mon, 12 Apr 1993 13:14:46
          gmt+1
Received: via VELLA (2.0) from: uucp>gap-forum@samson.math.rwth-aachen.de at
          93-04-12 13:14:41
Subject: Undeliverable Mail
From: gap-forum@samson.math.rwth-aachen.de
To: ehorvath@math.rwth-aachen.de
Received: from mcsun.EU.net by HUGBOX.SZTAKI.HU (MX V3.2) with SMTP; Mon, 12
          Apr 1993 13:13:45 gmt+1
Received: from urmel.Informatik.RWTH-Aachen.DE by mcsun.EU.net with SMTP id
          AA21365 (5.65b/CWI-2.216); Mon, 12 Apr 1993 13:13:16 +0200
Received: from math.math.rwth-aachen.de by urmel.informatik.rwth-aachen.de
          (4.1/urmel-5) id AA11719; Mon, 12 Apr 93 13:06:34 +0200
Received: from samson.math.rwth-aachen.de by math.math.rwth-aachen.de with SMTP
          (15.11/15.6) id AA21296; Mon, 12 Apr 93 13:07:15 mes
Received: by samson.math.rwth-aachen.de (5.57/Ultrix3.0-C) id AA25050; Mon, 12
          Apr 93 12:59:00 +0200
Date: Mon, 12 Apr 93 12:59:00 +0200
Message-ID: <9304121059.AA25050@samson.math.rwth-aachen.de>
Comment: GAP Forum
Originator: gap-forum@samson.math.rwth-aachen.de
Errors-To: martin@samson.math.rwth-aachen.de
Reply-To: <gap-forum@samson.math.rwth-aachen.de>
Sender: gap-forum@samson.math.rwth-aachen.de
Version: 5.31 -- Copyright (c) 1991, Anastasios Kotsikonas
From: <SMTP@huearn.sztaki.hu>
To: Multiple recipients of list <gap-forum@samson.math.rwth-aachen.de>
Subject: Undeliverable Mail

HUEARN.SZTAKI.HU unable to deliver following mail to recipient(s):
    <ehorvath@math.rwth-aachen.de>
HUEARN.SZTAKI.HU received negative reply:
550 <ehorvath@math.rwth-aachen.de>... User unknown

           ** Text of Mail follows **
Received: from vella.sztaki.hu by HUEARN.SZTAKI.HU (IBM VM SMTP V2R2) with TCP;
   Mon, 12 Apr 93 13:04:26 SET
Received: by vella.sztaki.hu (MX V3.2) with SITE; Mon, 12 Apr 1993 13:04:42
          gmt+1
Received: via VELLA (2.0) from: uucp>gap-forum@samson.math.rwth-aachen.de at
          93-04-12 13:04:36
Subject: Undeliverable Mail
From: gap-forum@samson.math.rwth-aachen.de
To: ehorvath@math.rwth-aachen.de
Received: from mcsun.EU.net by HUGBOX.SZTAKI.HU (MX V3.2) with SMTP; Mon, 12
          Apr 1993 12:55:14 gmt+1
Received: from urmel.Informatik.RWTH-Aachen.DE by mcsun.EU.net with SMTP id
          AA21090 (5.65b/CWI-2.216); Mon, 12 Apr 1993 12:54:45 +0200
Received: from math.math.rwth-aachen.de by urmel.informatik.rwth-aachen.de
          (4.1/urmel-5) id AA11211; Mon, 12 Apr 93 12:47:15 +0200
Received: from samson.math.rwth-aachen.de by math.math.rwth-aachen.de with SMTP
          (15.11/15.6) id AA21251; Mon, 12 Apr 93 12:48:05 mes
Received: by samson.math.rwth-aachen.de (5.57/Ultrix3.0-C) id AA24980; Mon, 12
          Apr 93 12:39:59 +0200
Date: Mon, 12 Apr 93 12:39:59 +0200
Message-ID: <9304121039.AA24980@samson.math.rwth-aachen.de>
Comment: GAP Forum
Originator: gap-forum@samson.math.rwth-aachen.de
Errors-To: martin@samson.math.rwth-aachen.de
Reply-To: <gap-forum@samson.math.rwth-aachen.de>
Sender: gap-forum@samson.math.rwth-aachen.de
Version: 5.31 -- Copyright (c) 1991, Anastasios Kotsikonas
From: <SMTP@huearn.sztaki.hu>
To: Multiple recipients of list <gap-forum@samson.math.rwth-aachen.de>
Subject: Undeliverable Mail

HUEARN.SZTAKI.HU unable to deliver following mail to recipient(s):
    <ehorvath@math.rwth-aachen.de>
HUEARN.SZTAKI.HU received negative reply:
550 <ehorvath@math.rwth-aachen.de>... User unknown

           ** Text of Mail follows **
Received: from vella.sztaki.hu by HUEARN.SZTAKI.HU (IBM VM SMTP V2R2) with TCP;
   Mon, 12 Apr 93 12:44:20 SET
Received: by vella.sztaki.hu (MX V3.2) with SITE; Mon, 12 Apr 1993 12:44:31
          gmt+1
Received: via VELLA (2.0) from: uucp>gap-forum@samson.math.rwth-aachen.de at
          93-04-12 12:44:26
Subject: RE: maps of fin pres groups into symmetric groups
From: gap-forum@samson.math.rwth-aachen.de
To: ehorvath@math.rwth-aachen.de
Received: from mcsun.EU.net by HUGBOX.SZTAKI.HU (MX V3.2) with SMTP; Mon, 12
          Apr 1993 12:36:10 gmt+1
Received: from urmel.Informatik.RWTH-Aachen.DE by mcsun.EU.net with SMTP id
          AA20890 (5.65b/CWI-2.216); Mon, 12 Apr 1993 12:35:41 +0200
Received: from math.math.rwth-aachen.de by urmel.informatik.rwth-aachen.de
          (4.1/urmel-5) id AA10807; Mon, 12 Apr 93 12:26:26 +0200
Received: from samson.math.rwth-aachen.de by math.math.rwth-aachen.de with SMTP
          (15.11/15.6) id AA21211; Mon, 12 Apr 93 12:27:15 mes
Received: by samson.math.rwth-aachen.de (5.57/Ultrix3.0-C) id AA24879; Mon, 12
          Apr 93 12:18:42 +0200
Date: Mon, 12 Apr 93 12:18:42 +0200
Message-ID: <9304112130.AA15242@nic.cerf.net>
Comment: GAP Forum
Originator: gap-forum@samson.math.rwth-aachen.de
Errors-To: martin@samson.math.rwth-aachen.de
Reply-To: <gap-forum@samson.math.rwth-aachen.de>
Sender: gap-forum@samson.math.rwth-aachen.de
Version: 5.31 -- Copyright (c) 1991, Anastasios Kotsikonas
From: Jacob Hirbawi <jcbhrb@cerf.net>
To: Multiple recipients of list <gap-forum@samson.math.rwth-aachen.de>
Subject: RE: maps of fin pres groups into symmetric groups

<gap-forum@samson.math.rwth-aachen.de>

Stephan Rosebrock <rosebro@math.uni-frankfurt.de> writes:

> I don't have much experience in GAP, but I would be intersted in a
> function that tests, if there is a homomorphism of a group, given as a
> finite presentation, into a given symmetric or alternating group.

I don't have much experience myself but I would like to offer a few
suggestions since the problem of calculating Hom(G,H) for arbitrary
groups G,H is a fundementally important one. First since there is
always a trivial hom from any group to another; I will assume that the
search is for a nontrivial one or perhaps for a monic one; since Stephan
used "into a given ..." instead of "to a given ..." I will assume that
the latter case is the one of interest.

At any rate in the case of the symmetric group there is a systematic way to
find all hom's and a way to extract the monic ones. GAP does have functions
that reduce this problem to a simple combinatorial one : first calculate the
marks of your group using TableOfMarks; then to find all hom's from your group
to the symmetric of degree n you find all possible ways you can add the rows
of the table of marks so the first entry equals n; of this list in the monic
ones n only occurs as the first entry. This is in complete ananlogy of finding
all possible representations (faithful or not) of a given group into GL(n,C)
-- simply replace "table of marks" for "character table" and "degree" for
"dimension". In fact a generic program that takes in a matrix and finds all
possible combination of its rows have n as the first entry and then checks if
n does not occur as another entry will work for both. It would be nice if
someone can write such a program in GAP; in the meantime for low degrees
(or dimenions) calculations by HAND( v3.2 or above ;-) ) are not too difficult:

Here's an example with a group defined by the presentation :

  a := AbstractGenerator("a");
  b := AbstractGenerator("b");
  c := AbstractGenerator("c");
  z := AbstractGenerator("z");
  AbsGroup1 := Group(a,b,c,z);
  AbsGroup1.relators := [a^2*z^-1,b^3*z^-1,c^3*z^-1,a*b*c*z^-1,z^2];

The table of marks and character tables are then :

  Group1 := OperationCosetsFpGroup(g1,Subgroup(AbsGroup1,[IdWord]));
  Marks1 := MatTom( TableOfMarks( Group1 ) );
  Charachters1 := CharTable( Group1 ).irreducibles;

 Marks1;
 [ [ 24,  0, 0, 0, 0, 0, 0 ],
   [ 12, 12, 0, 0, 0, 0, 0 ],
   [  8,  0, 2, 0, 0, 0, 0 ],
   [  6,  6, 0, 2, 0, 0, 0 ],
   [  4,  4, 1, 0, 1, 0, 0 ],
   [  3,  3, 0, 3, 0, 3, 0 ],
   [  1,  1, 1, 1, 1, 1, 1 ] ]

All hom's from the group to Symmetric(8) for example correspond to

   [  8,  0, 2, 0, 0, 0, 0 ],         M[3]
   [  8,  8, 2, 4, 2, 2, 2 ],         M[4] + 2 M[7]
   [  8,  8, 2, 0, 2, 0, 0 ],         2 M[5]
   [  8,  8, 2, 4, 2, 4, 1 ],         M[5] + M[6] + M[7]
   [  8,  8, 5, 4, 5, 4, 4 ],         M[5] + 4 M[7]
   [  8,  8, 2, 8, 2, 6, 8 ],         2 M[6] + 2 M[7]
   [  8,  8, 5, 8, 5, 8, 5 ],         M[6] + 5 M[7]
   [  8,  8, 8, 8, 8, 8, 8 ],         8 M[7]

so there are 8 inequivalent hom's; only the first is monic.

 Chracters1;
 [ [ 1, 1, 1, 1, 1, 1, 1 ],
  [ 1, 1, E(3)^2, E(3), 1, E(3)^2, E(3) ],
  [ 1, 1, E(3), E(3)^2, 1, E(3), E(3)^2 ],
  [ 2, 0, 1, 1, -2, -1, -1 ],
  [ 2, 0, E(3), E(3)^2, -2, -E(3), -E(3)^2 ],
  [ 2, 0, E(3)^2, E(3), -2, -E(3)^2, -E(3) ],
  [ 3, -1, 0, 0, 3, 0, 0 ] ]

(I was going to do a similar calculations with the character table of the
group for comparison but there are too many possibilities even for GL(3,C)
 -- oh well, I should have picked a simpler group!)

Hope this helps.

Jacob Hirbawi
JcbHrb@CERF.net



From neubuese@math.rwth-aachen.de Tue Apr 13 11:41:26 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Tue, 13 Apr 93 11:41:26 +0200
Subject:    re. maps of f.p. groups into symmetric groups

Stephan  Rosebrock asked  for a  function  that tests  if  there is  a
homomorphism of a finitely  presented group into a given symmetric (or
alternating) group. Jacob Hirbawi explained,  how to use the  table of
marks of  the finitely  presented group for  this  task. This will  of
course only work if the finitely  presented group is  also finite (and
not too big) so that GAP can calculate its table of marks, but then it
is a nice method.

However there is also a method to  find permutation representations of
a finitely presented  group of a  given  (not  too  big) degree  (i.e.
homomorhisms  into a given  symmetric group  of not too  big  degree),
which  does  not  at all assume  that the finitely presented group  is
finite, namely the so-called Low Index Method which  is implemented in
GAP  by  the  function LowIndexSubgroupsFpGroup, described in  section
22.6, page 419 of the manual of GAP 3. The practical limitation of the
degree for which  the method will work depends strongly on the  number
of generators  of  the  finitely presented group but  it  has proved a
rather useful tool for the investigation of several finitely presented
groups that appeared in the literature.  If wanted  I can provide some
references.

Joachim Neubueser



From rosebrock@mathematik.uni-frankfurt.dbp.de Wed Apr 14 11:25:08 1993
From:       rosebrock@mathematik.uni-frankfurt.dbp.de "Stephan Rosebrock"
Date:       Wed, 14 Apr 93 11:25:08 +0200
Subject:    Re:  maps of fin pres into symmetric groups

Thank you, Jacob, for your help with homomorphisms in GAP. I have
still some questions:
    You are right, I am not only interested in injective
homomorphisms, but rather all of them. My problem is that the
groups where I look for homomorphic images are not finite.
The groups are finitely generated and all relators have the
form: a b = b c for generators a,b,c. But there is certainly
still an algorithm for detecting all homomorphic images of such
a group G to a given symmetric group S: There are only finitely
many possibilities in mapping the generators of G to the
generators of S and one such possibility describes a map
entirely.
    I could not get the example Jacob sent to work, because
the group     g1    was not defined.

Stephan Rosebrock

rosebro@math.uni-frankfurt.de



From dfh@maths.warwick.ac.uk Wed Apr 14 13:46:55 1993
From:       dfh@maths.warwick.ac.uk "Derek Holt"
Date:       Wed, 14 Apr 93 13:46:55 +0200
Subject:    Re:  maps of fin pres into symmetric groups

> 
> Dear Gap-Forum,
> 
> I don't have much experience in GAP, but I would be intersted in a
> function that tests, if there is a homomorphism of a group, given as a
> finite presentation, into a given symmetric or alternating group.
> 
> Stephan Rosebrock
> 
> rosebro@math.uni-frankfurt.de
> 
> 

It seems to me that finding homomorphisms of s finitely presented group  G
into the symmetric group of degree n  is almost precisely equivalent to the
LowIndexSubgroupsFpGroup function. The call

LowIndexSubgroupsFpGroup( G, TrivialSubgroup(G), n )

returns a list of representatives of all conjugacy classes of subgroups of 
G  of index at most n.  (In general, you get all subgroups that contain the
subgroup specified by the second argument.) 

Then a conjugacy class of subgroups of  G  of index  m, corresponds to
an equivalence class of homomorphisms from  G  to a transitive subgroup of
the symmetric group of degree  m, where two homomorphisms are regarded as
equivalent if they are the same after renumbering the points being permuted.

To get the corresponding homomorphisms explicitly, I think you probably have
to use the CosetTableFpGroup (Todd-Coxeter) function.


Here is a complete example - homomorphisms of the Von Dyck 237-group into the
symmetric group of degree 10.

a := AbstractGenerator("a");
b := AbstractGenerator("b");
G237 := Group(a,b);
G237.relators := [a^2, b^3, (a*b)^7 ];
sublist := LowIndexSubgroupsFpGroup( G237, TrivialSubgroup(G237), 10 );
imlist := [];
for gp in sublist do
  ct := CosetTableFpGroup( G237, gp );
  Add( imlist, List(ct,PermList) );
od;


After this, imlist contains 4 elements, corresponding to four equivalence
classes of homomorphisms. Each of these contains the images of the
generators and their inverses under that homomorphism. (The images are
respectively the trivial group, PSL(2,7) of degree 7 twice, PSL(2,8) of
degree 9, and PSL(2,7) of degree 8.)

[ [ (), (), (), () ], 
  [ (3,4)(6,7), (3,4)(6,7), (1,2,3)(4,5,6), (1,3,2)(4,6,5) ], 
  [ (3,4)(5,6), (3,4)(5,6), (1,2,3)(4,5,7), (1,3,2)(4,7,5) ], 
  [ (2,3)(4,6)(5,7)(8,9), (2,3)(4,6)(5,7)(8,9), (1,2,4)(3,5,7)(6,8,9), 
      (1,4,2)(3,7,5)(6,9,8) ], 
  [ (1,2)(3,4)(5,6)(7,8), (1,2)(3,4)(5,6)(7,8), (2,3,5)(6,7,8), 
      (2,5,3)(6,8,7) ] ]


Derek Holt.



From martin@math.rwth-aachen.de Wed Apr 14 14:34:22 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Wed, 14 Apr 93 14:34:22 +0200
Subject:    Re: Undeliverable Mail

My apologies to everybody for the mail loop.  I think we have everything
under control again.  I am not absolutely certain, because I am still
trying to figure out what went wrong.  It seems like three or four small
problems collaborated to create this terrible mess.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From martin@math.rwth-aachen.de Wed Apr 14 14:36:56 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Wed, 14 Apr 93 14:36:56 +0200
Subject:    Upgrade for GAP 3.2 patchlevel 1 (V3R2P1) to patchlevel 2 (V3R2P2)

This is to announce the availibility of the second upgrade for GAP 3.2.
This upgrade brings version 3 release 2 patchlevel 1 (V3R2P1) to version
3 release 2 patchlevel 2 (V3R2P2).  The priority of this upgrade is
medium.

The upgrade is available as file 'upg3r2p2.dif.Z' on the 'ftp' server
'samson.math.rwth-aachen.de'.  It should be available on the other 'ftp'
servers soon.  Again I do not send out this upgrade as e-mail, it is
again quite large (about 40 KBytes 'compress'-ed).

First unpack the upgrade with 'uncompress upg3r1p2.dif.Z'.  Then read the
beginning   of   the   unpacked   file  'upg3r2p2.dif',   which  contains
instructions how to apply this upgrade.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From fceller@math.rwth-aachen.de Wed Apr 14 16:16:39 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Wed, 14 Apr 93 16:16:39 +0200
Subject:    Re: Undeliverable Mail

Apologies to everyone who get this message twice,  there was still
a small problem in our list server,  which is now hopefully fixed.

best wishes
  Frank
-----------------------------------------------------------------------------

My apologies to everybody for the mail loop.  I think we have everything
under control again.  I am not absolutely certain, because I am still
trying to figure out what went wrong.  It seems like three or four small
problems collaborated to create this terrible mess.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From fceller@math.rwth-aachen.de Wed Apr 14 16:28:53 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Wed, 14 Apr 93 16:28:53 +0200
Subject:    Upgrade for GAP 3.2 patchlevel 1 (V3R2P1) to patchlevel 2 (V3R2P2)

Apologies to everyone who get this message twice,  there was still
a small problem in our list server,  which is now hopefully fixed.

best wishes
  Frank
-----------------------------------------------------------------------------
This is to announce the availibility of the second upgrade for GAP 3.2.
This upgrade brings version 3 release 2 patchlevel 1 (V3R2P1) to version
3 release 2 patchlevel 2 (V3R2P2).  The priority of this upgrade is
medium.

The upgrade is available as file 'upg3r2p2.dif.Z' on the 'ftp' server
'samson.math.rwth-aachen.de'.  It should be available on the other 'ftp'
servers soon.  Again I do not send out this upgrade as e-mail, it is
again quite large (about 40 KBytes 'compress'-ed).

First unpack the upgrade with 'uncompress upg3r1p2.dif.Z'.  Then read the
beginning   of   the   unpacked   file  'upg3r2p2.dif',   which  contains
instructions how to apply this upgrade.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From sibley@math.psu.edu Wed Apr 14 17:59:26 1993
From:       sibley@math.psu.edu "David Sibley"
Date:       Wed, 14 Apr 93 17:59:26 +0200
Subject:    Re:  Upgrade for GAP 3.2 patchlevel 1 (V3R2P1) to patchlevel 2 (V3R2P2)

Another patch?  I still haven't managed to get the first one.  There is
nothing at dimacs.rutgers.edu except old versions of GAP.  All the
files in the gap directory there have 1992 dates.

Last time I managed to connect to wuarchive.wustl.edu, about a week
ago, the first patch still was not there.  wustl is usually not
available during normal hours because its limit for anonymous logins
(175 users, which is very liberal, I think) is full.

I haven't checked the machine in California.  I think that's the one I
always have trouble with, because it generates gigantic directory
listings.

Where are people in the US or Canada getting these patches from?



From neil@dehn.mth.pdx.edu Thu Apr 15 07:36:57 1993
From:       neil@dehn.mth.pdx.edu "John R. Neil"
Date:       Thu, 15 Apr 93 07:36:57 +0200
Subject:    Re: Upgrade for GAP 3.2 patchlevel 1 (V3R2P1) to patchlevel 2 (V3R2P2) 

In message <9304141604.AA04962@frobenius.math.psu.edu> you write:
>Another patch?  I still haven't managed to get the first one.  There is
>nothing at dimacs.rutgers.edu except old versions of GAP.  All the
>files in the gap directory there have 1992 dates.
>
>Last time I managed to connect to wuarchive.wustl.edu, about a week
>ago, the first patch still was not there.  wustl is usually not
>available during normal hours because its limit for anonymous logins
>(175 users, which is very liberal, I think) is full.
>
>I haven't checked the machine in California.  I think that's the one I
>always have trouble with, because it generates gigantic directory
>listings.
>
>Where are people in the US or Canada getting these patches from?
>
>

In case anyone is interested, I've begun using an automatic mirroring shell
which, every night, updates my copies of everything on samson relating to
GAP.  This mirror is available via anonymous ftp from <dehn.mth.pdx.edu>.
Those in the US are welcome to use this site as an alternative source of
GAP code.

--John Neil



=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
John Neil                                        e-mail:  neil@math.mth.pdx.edu
Director of Computer Labs and UNIX System Administrator
Portland State University Mathematics Department
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=



From matleonard@bodkin.ucg.ie Mon Apr 19 18:35:39 1993
From:       matleonard@bodkin.ucg.ie "Frank Leonard"
Date:       Mon, 19 Apr 93 18:35:39 +0200
Subject:    Re: your mail

I have been attempting some constuctions of finite groups in GAP as 
defined by a presentation in abstract generators/relators. 
The problem consists of applying a certain algorithim to constuct a
group which I then attempt to identify. I also have access to the C.A. 
package CAYLEY and have re-written the algorithim for CAYLEY. I have 
found CAYLEY to be vastly superior (time wise) to GAP for this problem. 
I assume that the fact that GAP programs/functions are interpreted 
would be significant in explaining the performance discrepancies but I 
am curious if there are any other factors which might be significant. 
Can you tell me if there are any plans at present to write a compiler 
for GAP?



From neubuese@math.rwth-aachen.de Tue Apr 20 17:10:54 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Tue, 20 Apr 93 17:10:54 +0200
Subject:    Re: your mail

Frank Leonard writes:
 
> I have been attempting some constuctions of finite groups in GAP as 
> defined by a presentation in abstract generators/relators. 
> The problem consists of applying a certain algorithim to constuct a
> group which I then attempt to identify. I also have access to the C.A. 
> package CAYLEY and have re-written the algorithim for CAYLEY. I have 
> found CAYLEY to be vastly superior (time wise) to GAP for this problem. 
> I assume that the fact that GAP programs/functions are interpreted 
> would be significant in explaining the performance discrepancies but I 
> am curious if there are any other factors which might be significant. 
> Can you tell me if there are any plans at present to write a compiler 
> for GAP?

I  am sorry that we  cannot  really answer  such  an unspecified  (but
nevertheless  very  critical)  letter,  much  as  we  try to react  to
criticism  brought to our attention  in the  GAP-forum (or otherwise).
Frank Leonard  has  not  told  us what  kind of  problem he is  really
looking at, nor  which  GAP  functions he  has  used,  nor  even which
version of GAP.

There  are  of course functions  for which  the  fact  that  they  are
interpreted rather than originally written in  C  and  compiled mean a
loss of  efficiency. We  know  that this can in particular be the case
with functions which  deal  in a rather combinatorial  way  with small
data, as is the case with many functions  handling presentations.  For
this reason some of the functions for dealing  with presentations have
parts   in   the  kernel  to  circumvent   this  difficulty.   If  the
interpretation of  GAP functions was  the reason for inefficiency that
Frank Leonard has observed then  it  would be helpful for us to  know,
*how* big the loss of efficiency was  in his case for which functions,
e.g.  in comparison  with  CAYLEY.  It  is not helpful just to be told
that CAYLEY  was *vastly* superior for some function(s?)  that are not
named applying  "a certain algorithm" that he does not care to tell us
about.

It  is also likely  that for certain functions we  are using  genuinly
worse methods than CAYLEY (for others we may use better ones). Then we
want  to know even more where this  is the case in order to be able to
improve them. 

We are not only  open to  but ask  for constructive or  at least  well
specified criticism,  but I must  say that a letter like that of Frank
Leonard is not only unhelpful but rather discouraging.

Joachim Neubueser

PS. I have said already in a previous letter to the GAP-forum that the
idea to develop a compiler for  GAP is being  considered, but that, if
at  all,  a  compiler  cannot  be  expected in the  nearer foreseeable
future.



From ruberman@binah.cc.brandeis.edu Wed Apr 21 18:08:48 1993
From:       ruberman@binah.cc.brandeis.edu "Daniel Ruberman"
date:       Wed, 21 Apr 93 18:08:48 +0200
Subject:    AbelianInvariants

I am somewhat confused by the output from the AbelianInvariants function,
as applied to a finitely generated abelian group.  I am using GAP 3.2
with upgrades 1 and 2, on a DEC Ultrix workstation, if it matters.  In the
example below, I hoped to get the output [0 0], corresponding to the fact
that the abelianization of the free group on two letters ("a" and "b" below)
is Z+Z.  Have I misused the function or misinterpreted the output?

Daniel Ruberman
ruberman@binah.cc.brandeis.edu


gap> a:=AbstractGenerator("a");
a
gap> b:=AbstractGenerator("b");
b
gap> G:=Group(a,b);
Group( a, b )
gap> G.relators:=[];
[  ]
gap> H:=CommutatorFactorGroup(G);
Group( c.1, c.2 )
gap> H.relators;
[ c.1^-1*c.2^-1*c.1*c.2 ]
gap> AbelianInvariants(H);
[ 0 ]                         



From martin@math.rwth-aachen.de Wed Apr 21 19:09:32 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Wed, 21 Apr 93 19:09:32 +0200
Subject:    Re: AbelianInvariants

Daniel Ruberman writes in his e-mail message of 1993/04/21

    I am somewhat confused by the output from the AbelianInvariants function,
    as applied to a finitely generated abelian group.  I am using GAP 3.2
    with upgrades 1 and 2, on a DEC Ultrix workstation, if it matters.  In the
    example below, I hoped to get the output [0 0], corresponding to the fact
    that the abelianization of the free group on two letters ("a" and "b" below)
    is Z+Z.  Have I misused the function or misinterpreted the output?

    gap> a:=AbstractGenerator("a");;
    gap> b:=AbstractGenerator("b");
    gap> G:=Group(a,b);;
    gap> G.relators:=[];;
    gap> H:=CommutatorFactorGroup(G);;
    gap> AbelianInvariants(H);
    [ 0 ]                         

No, this is a genuine bug.  If the number of relators of the commutator
factor group is less than the number of generators, 'AbelianInvariants'
will drop infinite components.  Now the commutator factor group of a
group on $n$ generators has at least $n(n-1)/2$ relators (namely the
commutators), so the problem can only occur for the free group on 2
generators.

BTW, 'AbelianInvariants' for finitely presented groups has two more
problems.

It gives an error when applied to the free group on one generator.

It returns a list $l$ such that $h = Z/l[1]Z * Z/l[2]Z * Z/l[3]Z ... $,
but the elements are such that $l[1] | l[2] | l[3] ... $ (this is usually
called the Smith normal form, or elementary divisors).  On the other hand
the description of 'AbelianInvariants' states that the $l[i]$ shall all
be prime powers (this is usually called primary decomposition).  It is of
course easy to convert between those two representations.

All three problems shall be fixed in the next upgrade.  Then it will also
be allowed to apply 'AbelianInvariants' to arbitrary groups, not just
abelian ones (allowing one to bypass the computation of the commutator
factor group, which can be costly for finitely presented groups with many
generators).

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From ruberman@binah.cc.brandeis.edu Thu Apr 22 14:22:15 1993
From:       ruberman@binah.cc.brandeis.edu "Daniel Ruberman"
date:       Thu, 22 Apr 93 14:22:15 +0200
Subject:    GroupHomomorphismByImages

Are there any plans to implement the command GroupHomomorphismByImages
for homomorphisms of Finitely Presented groups to, say, permutation groups?
There is no theoretical obstruction to doing so, as it is a matter of checking
whether the images of the relators in the permutation group are all trivial.
Failing that, if anyone has written GAP routines to accomplish this task, could
they please let me know.

Thanks,
Daniel Ruberman
(ruberman@binah.cc.brandeis.edu)



From sibley@math.psu.edu Sun Apr 25 18:51:15 1993
From:       sibley@math.psu.edu "David Sibley"
Date:       Sun, 25 Apr 93 18:51:15 +0200
Subject:    Subgroup(Parent(g),elts)

I just discovered an oddity in GAP and am trying to figure out why it is
the way it is:  Subgroup(g,elts) works only when g is a parent group.

As far as I can see, this means that when I write programs, where I
don't know whether g is going to be a parent group or not, I should
actually use Subgroup(Parent(g),elts) instead of the above.  But why
does Subgroup not automatically use the parent of g, if that's what it
needs, rather than making me explicitly say to use it?  Or am I going
to get into trouble using Subgroup(Parent(g),elts)?


David Sibley        | "Accurate reckoning.  The entrance into knowledge
Amateur radio NT3O  |  of all existing things and all obscure secrets."
sibley@math.psu.edu |      -- The Rhind Papyrus



From martin@math.rwth-aachen.de Mon Apr 26 12:53:57 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 12:53:57 +0200
Subject:    Re: GroupHomomorphismByImages

Daniel Ruberman writes in his e-mail message of 1993/04/22

    Are there any plans to implement the command GroupHomomorphismByImages
    for homomorphisms of Finitely Presented groups to, say, permutation groups?

Which version of GAP do you use.  In GAP 3.2 you can do the following

    gap> g := FreeGroup( 2, "g" );;
    gap> g.relators := [ g.1^2, g.2^5, (g.1*g.2^-1)^3 ];;
    gap> h := Group( (1,2)(3,4), (1,2,3,4,5) );;
    gap> f := GroupHomomorphismByImages( g, h, g.generators, h.generators );;
    gap> IsHomomorphism( f );
    true
    gap> PreImages( f, SylowSubgroup( h, 2 ) );
    Subgroup( Group( g.1, g.2 ), 
    [ g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*\
      g.2^-1*g.1^-1*g.2^-1, g.2^-2*g.1^-1*g.2^-1*g.1^-1 ] )
    gap> Index( g, last );
    15

Is this not what you want?

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From martin@math.rwth-aachen.de Mon Apr 26 14:01:30 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 14:01:30 +0200
Subject:    Re: Subgroup(Parent(g),elts)

David Sibley writes in his e-mail message of 1993/04/25:

    I just discovered an oddity in GAP and am trying to figure out why it is
    the way it is:  Subgroup(g,elts) works only when g is a parent group.

    As far as I can see, this means that when I write programs, where I
    don't know whether g is going to be a parent group or not, I should
    actually use Subgroup(Parent(g),elts) instead of the above.  But why
    does Subgroup not automatically use the parent of g, if that's what it
    needs, rather than making me explicitly say to use it?  Or am I going
    to get into trouble using Subgroup(Parent(g),elts)?

Each group is either a parent or a subgroup of a parent.  The idea is
that the parent may hold information that is needed for the subgroups.
For example for finitely presented groups the parent holds the
presentation.  Thus subgroups must be subgroups of a parent, they cannot
be subgroups of other subgroups (because those subgroups would not hold
the information needed).

Put another way, a parent is a structure in which computations are
performed, and GAP allows only few operations between subgroups of
different parents (basically only the set theoretic functions
'Intersection' etc.).

That 'Subgroup' requires a parent as first argument is a reminder to this
fact.  It is true, 'Subgroup' could automatically take the parent of the
first argument, but we found the current behaviour usefull.  It helped us
catch a few bugs, where we though a certain group was a parent, when in
fact it was not.

'Subgroup( Parent(g), elts )' should not cause any problems.  In fact,
such a construct appears fairly often in the library.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From fceller@math.rwth-aachen.de Wed Apr 28 11:05:37 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Wed, 28 Apr 93 11:05:37 +0200
Subject:    new version of the Weyl-package

Dear Mrs. and Mr. Forum,

A new version of the Weyl-package is available on "samson.math.rwth-aachen.de"
(and hopefully soon on "dehn.mth.pdx.edu" and "wuarchive.wustl.edu"):

    -r--r--r--  1 ftp         39155 Apr 28 10:32 weyl.tar.Z
    -r--r--r--  1 ftp         40641 Apr 28 10:32 weyl.zoo

It features the following improvements:

-----------------------------------------------------------------------------
Dear GAP-Forum,
there are some small changes and one bug fix in the 'weyl' package. (However,
every program written before should be 'upward compatible'.) You can see the
changes in the following examples:

# there are now non-cristallograhic (finite) Coxeter groups:
gap> CartanMat("H",3);
[ [ 2, E(5)^2+E(5)^3, 0 ], [ E(5)^2+E(5)^3, 2, -1 ], [ 0, -1, 2 ] ]

gap> CartanMat("H",4);
[ [ 2, E(5)^2+E(5)^3, 0, 0 ], [ E(5)^2+E(5)^3, 2, -1, 0 ], [ 0, -1, 2, -1 ], 
  [ 0, 0, -1, 2 ] ]

gap> CartanMat("I2",5);
[ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ]

# there is now an 'operations' component in the Weyl group record so that 
# certain generic functions for domains will work for Weyl groups as well:

gap> W:=Weyl(last);
Weyl( [ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ] )

gap> RecFields(W);
[ "isDomain", "isWeylGroup", "cartan", "dim", "degree", "N", "roots", 
  "matgens", "permgens", "parameter", "operations" ]

gap> Size(W);
10

Some other changes improve the algorithms for computing Kazhdan-Lusztig
polynomials and for calculations in Hecke algebras (which were rather
slow before). E.g., on our HP computer, the command
 
   'LeftCells( Weyl ( CartanMat( "F", 4 ) ) );'

now takes roughly 5 hours cpu time. 

There was a bug in the programs for calculating in Hecke algebras, namely
in the program which computed the inverse of a standard basis element.

These changes were motivated by reports from other users. I should be very 
glad about any further such comments and suggestions for improvements.

                                        Aachen, 28.4.93, Meinolf Geck



From aeb@win.tue.nl Wed Apr 28 17:52:07 1993
From:       aeb@win.tue.nl "A. E. Brouwer"
Date:       Wed, 28 Apr 93 17:52:07 +0200
Subject:    Interrupts etc.

The past few days I have noticed several instances where
interrupting GAP left me with a crippled version of GAP.
One more instance happened a moment ago: I said
gap> PrintRec(N);
where N was some permutation group
[B.t.w., PrintRec does not occur in the on-line help,
only in the chapter About Gap]
and this produced much more output than I liked.
So, I gave ^C. Afterwards, N was partially mangled:

  gap> N;
  ~
      gap> 
  gap> PrintRec(N);     
  ~gap> 
  gap> Size(N);
  729
      gap> Print(N);
  ~gap> c in N;
  Error, Record: right operand must have '~.operations.in'

Let me take this opportunity to ask a question.
Do there exist facilities to regard an elementary abelian group
as a vector space (and vice versa)?
Do there exist facilities to go back and forth between a (permutation)
group p^n:G with elem. ab. subgroup p^n and a matrix group G
(with matrices of order n over GF(p))?

Andries Brouwer



From fceller@math.rwth-aachen.de Thu Apr 29 10:39:26 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Thu, 29 Apr 93 10:39:26 +0200
Subject:    Re: Interrupts etc.

A.E. Brouwer writes:

    The past few days I have noticed several instances where
    interrupting GAP left me with a crippled version of GAP.
    One more instance happened a moment ago: I said

Yes, there is problem with interrupting GAP while printing.  In order
to avoid recursion while printing,  GAP marks the objects which are
already printed.  If you interrupt GAP while it is printing, some
objects are still marked, which causes this behavior.  We will try to
fix this in the next upgrade.

best wishes
  Frank



From sam@math.rwth-aachen.de Thu Apr 29 11:59:15 1993
From:       sam@math.rwth-aachen.de "Thomas Breuer"
Date:       Thu, 29 Apr 93 11:59:15 +0200
Subject:    vector spaces & modules

Dear Mrs. and Mr. Forum,

Andries Brouwer asks two questions concerning vector spaces, namely
whether elementary abelian groups can be regarded as vector spaces
and vice versa, and whether it is possible to describe the action of
a group on an elementary abelian subgroup via a matrix representation.

Here 'regard' and 'describe' apparently both mean that one has homomorphisms
between the group and the vector space resp. between the group and the
representation and its module.  As stated recently in another message
to the GAP forum, up to now there is no developed data structure
representing vector spaces and modules in GAP, so the desired homomorphisms
would not be of much help.  But as soon as these domains and some functions
dealing with them are available in GAP (hopefully in the next version),
the questions of Andries Brouwer can be answered 'yes'.

Thomas Breuer
(sam@ernie.math.rwth-aachen.de)


P.S.:  What Andries Brouwer tells about the strange behaviour of '~'
       of course describes a bug, but I cannot say anything about when
       it will be fixed.



From neubuese@math.rwth-aachen.de Thu Apr 29 17:20:24 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Thu, 29 Apr 93 17:20:24 +0200
Subject:    bugs and trouble

Dear GAP-forum,

After some discussion, we want to introduce a new address   

gap-trouble@math.rwth-aachen.de

The  idea  is the  following.  We have  observed  the  discussions and
reports in  the GAP-forum as well as in the mail that  some of us have
got privately about GAP. These fall roughly into four categories:

1. Reports on what I like to call "real bugs", i.e. on instances where
GAP  produces  a wrong  answer  to a  problem, an answer that the user
might  even  take  for  granted  and  thus  might  be  led   to  wrong
conclusions.  The  wrong abelian invariants,  on which Daniel Ruberman
reported  recently,  were  such a case.  (in  which Martin fortunately
could   at  least   clarify  that  this   was  a   rather  exceptional
malfunction).

*We  urge  that  each such case should by all  means  and as  soon  as
*possible be reported in the GAP-forum in order to minimize the danger
*that somebody is led to wrong conclusions.

2.   Reports  on annoying behaviour of GAP  such as that of  GAP after
interrupting   while  printing  that  Andries  Brouwer  reported  this
morning.  Such things  are clearly annoying, they may  cost the user's
time,  but  at  least  (s)he  cannot  be  led  to  wrong  mathematical
conclusions.  The same applies to inefficiencies. We have no objection
at  all if these are  sent to the GAP-forum, however more such reports
seem to be sent directly to a private address in Aachen, most often to
Martin  Schoenert.   We  ask  that such reports  if  not sent  to  the
GAP-forum are rather sent to the above address "gap-trouble".  Letters
sent to  that address  will automatically be  distributed to  a  small
group of people who  will jointly try to deal with the problems.  This
group will be started with Martin Schoenert (of course), Frank Celler,
Thomas Breuer and myself, but whoever is willing  to help us with  the
task to settle such deficiencies is invited to  join the group (please
just  tell  us  to  be  put on  the  address list).   Letters  sent to
"GAP-trouble"  will  get  an  individual  reply to the  sender  and in
addition we intend to give a report from time to time to the GAP-forum
summarizing the troubles  reported and our plans to  deal  with  them,
which may range from "yes  will be fixed in the next patch"  over "yes
but has to wait for the next  version" to "yes, but ...". We hope that
by this scheme we  cannot only  distribute the workload  a  little bit
more evenly, but also  to  minimize times of no reply when some  of us
are absent from Aachen.

3. Installation problems. The flood of them occurring in the GAP-forum
after the release  of GAP 3.2  even  led to  the proposal of a second
forum. While  we did  not follow  this suggestion, we think that if in
the future such problems are  also sent to "gap-trouble" and we report
only on important and more often  asked questions in the GAP-forum, we
achieve some better organisation in this respect, too.

4. Questions "How can I do in GAP ...?	"  or  "Can I do..?"  These we
would like to see further in the GAP-forum and we hope that often,  as
in  the  past,  helpful answers  will  come  from members of the forum
outside of Aachen.

The address "gap-trouble" will be operational from Friday, April 30.
We hope that it will be a useful innovation and ask you to use it.

Joachim Neubueser



From scherrc@rosevc.rose-hulman.edu Thu Apr 29 18:32:44 1993
From:       scherrc@rosevc.rose-hulman.edu "Chad Scherrer"
Date:       Thu, 29 Apr 93 18:32:44 +0200
Subject:    Finding subgroups in GAP

Is there a way in GAP to find all the subgroups of a given group, and if so,
what about finding all normal subgroups of a given group? I realize these
aren't of too great concern in doing most research, but I'm originally a Cayley
user, and am in the habit of looping tests over the set of subgroups or the set
of normal subgroups of a group. I'm currently in the process of switching over
to using GAP, and have found equivalent commands for most of the things I could
do in Cayley, but have had trouble finding any mention in the GAP documentation
of how to find subgroups. Is there a way to do this in GAP?

				Sincerely,

				Chad Scherrer
				scherrc@rosevc.rose-hulman.edu



From martin@math.rwth-aachen.de Thu Apr 29 18:55:12 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Thu, 29 Apr 93 18:55:12 +0200
Subject:    Re: Finding subgroups in GAP

Chad Scherrer writes in his e-mail messages of 1993/04/29

    Is there a way in GAP to find all the subgroups of a given group,
    and if so, what about finding all normal subgroups of a given group?

The function 'ConjugacyClassesSubgroups' will return the conjugacy
classes of subgroups of a given group (whose largest perfect subgroup
must have size <= 10000).  With

    List( ConjugacyClassesSubgroups(G), Representative );

you get a list of representatives of the conjugacy classes, i.e.,
one subgroups from each conjugacy class.  With

    Concatenation( List( ConjugacyClassesSubgroups(G), Elements ) );

you get all the subgroups.

Note that 'ConjugacyClassesSubgroups' is somewhat slow for large solvable
groups.  I have rewritten this function so that it is now faster.  This
new implementation will be made available in the third upgrade (sorry I
don't know when we will release this upgrade).

The function 'NormalSubgroups' will return a list of normal subgroups of
a given group.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From l.h.soicher@qmw.ac.uk Thu Apr 29 19:32:00 1993
From:       l.h.soicher@qmw.ac.uk "Leonard Soicher"
Date:       Thu, 29 Apr 93 19:32:00 +0200
Subject:    GRAPE

There is a bug in GRAPE, such that if you interrupt the 
CompleteSubgraphs function and quit the break loop, you may find
the  names  field changed of the graph you input t
graben 64, RWTH, D 51 Aachen, Germany



From ruberman@binah.cc.brandeis.edu Thu Apr 22 14:22:15 1993
From:       ruberman@binah.cc.brandeis.edu "Daniel Ruberman"
date:       Thu, 22 Apr 93 14:22:15 +0200
Subject:    GroupHomomorphismByImages

Are there any plans to implement the command GroupHomomorphismByImages
for homomorphisms of Finitely Presented groups to, say, permutation groups?
There is no theoretical obstruction to doing so, as it is a matter of checking
whether the images of the relators in the permutation group are all trivial.
Failing that, if anyone has written GAP routines to accomplish this task, could
they please let me know.

Thanks,
Daniel Ruberman
(ruberman@binah.cc.brandeis.edu)



From sibley@math.psu.edu Sun Apr 25 18:51:15 1993
From:       sibley@math.psu.edu "David Sibley"
Date:       Sun, 25 Apr 93 18:51:15 +0200
Subject:    Subgroup(Parent(g),elts)

I just discovered an oddity in GAP and am trying to figure out why it is
the way it is:  Subgroup(g,elts) works only when g is a parent group.

As far as I can see, this means that when I write programs, where I
don't know whether g is going to be a parent group or not, I should
actually use Subgroup(Parent(g),elts) instead of the above.  But why
does Subgroup not automatically use the parent of g, if that's what it
needs, rather than making me explicitly say to use it?  Or am I going
to get into trouble using Subgroup(Parent(g),elts)?


David Sibley        | "Accurate reckoning.  The entrance into knowledge
Amateur radio NT3O  |  of all existing things and all obscure secrets."
sibley@math.psu.edu |      -- The Rhind Papyrus



From martin@math.rwth-aachen.de Mon Apr 26 12:53:57 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 12:53:57 +0200
Subject:    Re: GroupHomomorphismByImages

Daniel Ruberman writes in his e-mail message of 1993/04/22

    Are there any plans to implement the command GroupHomomorphismByImages
    for homomorphisms of Finitely Presented groups to, say, permutation groups?

Which version of GAP do you use.  In GAP 3.2 you can do the following

    gap> g := FreeGroup( 2, "g" );;
    gap> g.relators := [ g.1^2, g.2^5, (g.1*g.2^-1)^3 ];;
    gap> h := Group( (1,2)(3,4), (1,2,3,4,5) );;
    gap> f := GroupHomomorphismByImages( g, h, g.generators, h.generators );;
    gap> IsHomomorphism( f );
    true
    gap> PreImages( f, SylowSubgroup( h, 2 ) );
    Subgroup( Group( g.1, g.2 ), 
    [ g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*\
      g.2^-1*g.1^-1*g.2^-1, g.2^-2*g.1^-1*g.2^-1*g.1^-1 ] )
    gap> Index( g, last );
    15

Is this not what you want?

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From martin@math.rwth-aachen.de Mon Apr 26 14:01:30 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 14:01:30 +0200
Subject:    Re: Subgroup(Parent(g),elts)

David Sibley writes in his e-mail message of 1993/04/25:

    I just discovered an oddity in GAP and am trying to figure out why it is
    the way it is:  Subgroup(g,elts) works only when g is a parent group.

    As far as I can see, this means that when I write programs, where I
    don't know whether g is going to be a parent group or not, I should
    actually use Subgroup(Parent(g),elts) instead of the above.  But why
    does Subgroup not automatically use the parent of g, if that's what it
    needs, rather than making me explicitly say to use it?  Or am I going
    to get into trouble using Subgroup(Parent(g),elts)?

Each group is either a parent or a subgroup of a parent.  The idea is
that the parent may hold information that is needed for the subgroups.
For example for finitely presented groups the parent holds the
presentation.  Thus subgroups must be subgroups of a parent, they cannot
be subgroups of other subgroups (because those subgroups would not hold
the information needed).

Put another way, a parent is a structure in which computations are
performed, and GAP allows only few operations between subgroups of
different parents (basically only the set theoretic functions
'Intersection' etc.).

That 'Subgroup' requires a parent as first argument is a reminder to this
fact.  It is true, 'Subgroup' could automatically take the parent of the
first argument, but we found the current behaviour usefull.  It helped us
catch a few bugs, where we though a certain group was a parent, when in
fact it was not.

'Subgroup( Parent(g), elts )' should not cause any problems.  In fact,
such a construct appears fairly often in the library.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From fceller@math.rwth-aachen.de Wed Apr 28 11:05:37 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Wed, 28 Apr 93 11:05:37 +0200
Subject:    new version of the Weyl-package

Dear Mrs. and Mr. Forum,

A new version of the Weyl-package is available on "samson.math.rwth-aachen.de"
(and hopefully soon on "dehn.mth.pdx.edu" and "wuarchive.wustl.edu"):

    -r--r--r--  1 ftp         39155 Apr 28 10:32 weyl.tar.Z
    -r--r--r--  1 ftp         40641 Apr 28 10:32 weyl.zoo

It features the following improvements:

-----------------------------------------------------------------------------
Dear GAP-Forum,
there are some small changes and one bug fix in the 'weyl' package. (However,
every program written before should be 'upward compatible'.) You can see the
changes in the following examples:

# there are now non-cristallograhic (finite) Coxeter groups:
gap> CartanMat("H",3);
[ [ 2, E(5)^2+E(5)^3, 0 ], [ E(5)^2+E(5)^3, 2, -1 ], [ 0, -1, 2 ] ]

gap> CartanMat("H",4);
[ [ 2, E(5)^2+E(5)^3, 0, 0 ], [ E(5)^2+E(5)^3, 2, -1, 0 ], [ 0, -1, 2, -1 ], 
  [ 0, 0, -1, 2 ] ]

gap> CartanMat("I2",5);
[ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ]

# there is now an 'operations' component in the Weyl group record so that 
# certain generic functions for domains will work for Weyl groups as well:

gap> W:=Weyl(last);
Weyl( [ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ] )

gap> RecFields(W);
[ "isDomain", "isWeylGroup", "cartan", "dim", "degree", "N", "roots", 
  "matgens", "permgens", "parameter", "operations" ]

gap> Size(W);
10

Some other changes improve the algorithms for computing Kazhdan-Lusztig
polynomials and for calculations in Hecke algebras (which were rather
slow before). E.g., on our HP computer, the command
 
   'LeftCells( Weyl ( CartanMat( "F", 4 ) ) );'

now takes roughly 5 hours cpu time. 

There was a bug in the programs for calculating in Hecke algebras, namely
in the program which computed the inverse of a standard basis element.

These changes were motivated by reports from other users. I should be very 
glad about any further such comments and suggestions for improvements.

                                        Aachen, 28.4.93, Meinolf Geck



From aeb@win.tue.nl Wed Apr 28 17:52:07 1993
From:       aeb@win.tue.nl "A. E. Brouwer"
Date:       Wed, 28 Apr 93 17:52:07 +0200
Subject:    Interrupts etc.

The past few days I have noticed several instances where
interrupting GAP left me with a crippled version of GAP.
One more instance happened a moment ago: I said
gap> PrintRec(N);
where N was some permutation group
[B.t.w., PrintRec does not occur in the on-line help,
only in the chapter About Gap]
and this produced much more output than I liked.
So, I gave ^C. Afterwards, N was partially mangled:

  gap> N;
  ~
      gap> 
  gap> PrintRec(N);     
  ~gap> 
  gap> Size(N);
  729
      gap> Print(N);
  ~gap> c in N;
  Error, Record: right operand must have '~.operations.in'

Let me take this opportunity to ask a question.
Do there exist facilities to regard an elementary abelian group
as a vector space (and vice versa)?
Do there exist facilities to go back and forth between a (permutation)
group p^n:G with elem. ab. subgroup p^n and a matrix group G
(with matrices of order n over GF(p))?

Andries Brouwer



From fceller@math.rwth-aachen.de Thu Apr 29 10:39:26 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Thu, 29 Apr 93 10:39:26 +0200
Subject:    Re: Interrupts etc.

A.E. Brouwer writes:

    The past few days I have noticed several instances where
    interrupting GAP left me with a crippled version of GAP.
    One more instance happened a moment ago: I said

Yes, there is problem with interrupting GAP while printing.  In order
to avoid recursion while printing,  GAP marks the objects which are
already printed.  If you interrupt GAP while it is printing, some
objects are still marked, which causes this behavior.  We will try to
fix this in the next upgrade.

best wishes
  Frank



From sam@math.rwth-aachen.de Thu Apr 29 11:59:15 1993
From:       sam@math.rwth-aachen.de "Thomas Breuer"
Date:       Thu, 29 Apr 93 11:59:15 +0200
Subject:    vector spaces & modules

Dear Mrs. and Mr. Forum,

Andries Brouwer asks two questions concerning vector spaces, namely
whether elementary abelian groups can be regarded as vector spaces
and vice versa, and whether it is possible to describe the action of
a group on an elementary abelian subgroup via a matrix representation.

Here 'regard' and 'describe' apparently both mean that one has homomorphisms
between the group and the vector space resp. between the group and the
representation and its module.  As stated recently in another message
to the GAP forum, up to now there is no developed data structure
representing vector spaces and modules in GAP, so the desired homomorphisms
would not be of much help.  But as soon as these domains and some functions
dealing with them are available in GAP (hopefully in the next version),
the questions of Andries Brouwer can be answered 'yes'.

Thomas Breuer
(sam@ernie.math.rwth-aachen.de)


P.S.:  What Andries Brouwer tells about the strange behaviour of '~'
       of course describes a bug, but I cannot say anything about when
       it will be fixed.



From neubuese@math.rwth-aachen.de Thu Apr 29 17:20:24 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Thu, 29 Apr 93 17:20:24 +0200
Subject:    bugs and trouble

Dear GAP-forum,

After some discussion, we want to introduce a new address   

gap-trouble@math.rwth-aachen.de

The  idea  is the  following.  We have  observed  the  discussions and
reports in  the GAP-forum as well as in the mail that  some of us have
got privately about GAP. These fall roughly into four categories:

1. Reports on what I like to call "real bugs", i.e. on instances where
GAP  produces  a wrong  answer  to a  problem, an answer that the user
might  even  take  for  granted  and  thus  might  be  led   to  wrong
conclusions.  The  wrong abelian invariants,  on which Daniel Ruberman
reported  recently,  were  such a case.  (in  which Martin fortunately
could   at  least   clarify  that  this   was  a   rather  exceptional
malfunction).

*We  urge  that  each such case should by all  means  and as  soon  as
*possible be reported in the GAP-forum in order to minimize the danger
*that somebody is led to wrong conclusions.

2.   Reports  on annoying behaviour of GAP  such as that of  GAP after
interrupting   while  printing  that  Andries  Brouwer  reported  this
morning.  Such things  are clearly annoying, they may  cost the user's
time,  but  at  least  (s)he  cannot  be  led  to  wrong  mathematical
conclusions.  The same applies to inefficiencies. We have no objection
at  all if these are  sent to the GAP-forum, however more such reports
seem to be sent directly to a private address in Aachen, most often to
Martin  Schoenert.   We  ask  that such reports  if  not sent  to  the
GAP-forum are rather sent to the above address "gap-trouble".  Letters
sent to  that address  will automatically be  distributed to  a  small
group of people who  will jointly try to deal with the problems.  This
group will be started with Martin Schoenert (of course), Frank Celler,
Thomas Breuer and myself, but whoever is willing  to help us with  the
task to settle such deficiencies is invited to  join the group (please
just  tell  us  to  be  put on  the  address list).   Letters  sent to
"GAP-trouble"  will  get  an  individual  reply to the  sender  and in
addition we intend to give a report from time to time to the GAP-forum
summarizing the troubles  reported and our plans to  deal  with  them,
which may range from "yes  will be fixed in the next patch"  over "yes
but has to wait for the next  version" to "yes, but ...". We hope that
by this scheme we  cannot only  distribute the workload  a  little bit
more evenly, but also  to  minimize times of no reply when some  of us
are absent from Aachen.

3. Installation problems. The flood of them occurring in the GAP-forum
after the release  of GAP 3.2  even  led to  the proposal of a second
forum. While  we did  not follow  this suggestion, we think that if in
the future such problems are  also sent to "gap-trouble" and we report
only on important and more often  asked questions in the GAP-forum, we
achieve some better organisation in this respect, too.

4. Questions "How can I do in GAP ...?	"  or  "Can I do..?"  These we
would like to see further in the GAP-forum and we hope that often,  as
in  the  past,  helpful answers  will  come  from members of the forum
outside of Aachen.

The address "gap-trouble" will be operational from Friday, April 30.
We hope that it will be a useful innovation and ask you to use it.

Joachim Neubueser



From scherrc@rosevc.rose-hulman.edu Thu Apr 29 18:32:44 1993
From:       scherrc@rosevc.rose-hulman.edu "Chad Scherrer"
Date:       Thu, 29 Apr 93 18:32:44 +0200
Subject:    Finding subgroups in GAP

Is there a way in GAP to find all the subgroups of a given group, and if so,
what about finding all normal subgroups of a given group? I realize these
aren't of too great concern in doing most research, but I'm originally a Cayley
user, and am in the habit of looping tests over the set of subgroups or the set
of normal subgroups of a group. I'm currently in the process of switching over
to using GAP, and have found equivalent commands for most of the things I could
do in Cayley, but have had trouble finding any mention in the GAP documentation
of how to find subgroups. Is there a way to do this in GAP?

				Sincerely,

				Chad Scherrer
				scherrc@rosevc.rose-hulman.edu



From martin@math.rwth-aachen.de Thu Apr 29 18:55:12 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Thu, 29 Apr 93 18:55:12 +0200
Subject:    Re: Finding subgroups in GAP

Chad Scherrer writes in his e-mail messages of 1993/04/29

    Is there a way in GAP to find all the subgroups of a given group,
    and if so, what about finding all normal subgroups of a given group?

The function 'ConjugacyClassesSubgroups' will return the conjugacy
classes of subgroups of a given group (whose largest perfect subgroup
must have size <= 10000).  With

    List( ConjugacyClassesSubgroups(G), Representative );

you get a list of representatives of the conjugacy classes, i.e.,
one subgroups from each conjugacy class.  With

    Concatenation( List( ConjugacyClassesSubgroups(G), Elements ) );

you get all the subgroups.

Note that 'ConjugacyClassesSubgroups' is somewhat slow for large solvable
groups.  I have rewritten this function so that it is now faster.  This
new implementation will be made available in the third upgrade (sorry I
don't know when we will release this upgrade).

The function 'NormalSubgroups' will return a list of normal subgroups of
a given group.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From l.h.soicher@qmw.ac.uk Thu Apr 29 19:32:00 1993
From:       l.h.soicher@qmw.ac.uk "Leonard Soicher"
Date:       Thu, 29 Apr 93 19:32:00 +0200
Subject:    GRAPE

There is a bug in GRAPE, such that if you interrupt the 
CompleteSubgraphs function and quit the break loop, you may find
the  names  field changed of the graph you input t
graben 64, RWTH, D 51 Aachen, Germany



From ruberman@binah.cc.brandeis.edu Thu Apr 22 14:22:15 1993
From:       ruberman@binah.cc.brandeis.edu "Daniel Ruberman"
date:       Thu, 22 Apr 93 14:22:15 +0200
Subject:    GroupHomomorphismByImages

Are there any plans to implement the command GroupHomomorphismByImages
for homomorphisms of Finitely Presented groups to, say, permutation groups?
There is no theoretical obstruction to doing so, as it is a matter of checking
whether the images of the relators in the permutation group are all trivial.
Failing that, if anyone has written GAP routines to accomplish this task, could
they please let me know.

Thanks,
Daniel Ruberman
(ruberman@binah.cc.brandeis.edu)



From sibley@math.psu.edu Sun Apr 25 18:51:15 1993
From:       sibley@math.psu.edu "David Sibley"
Date:       Sun, 25 Apr 93 18:51:15 +0200
Subject:    Subgroup(Parent(g),elts)

I just discovered an oddity in GAP and am trying to figure out why it is
the way it is:  Subgroup(g,elts) works only when g is a parent group.

As far as I can see, this means that when I write programs, where I
don't know whether g is going to be a parent group or not, I should
actually use Subgroup(Parent(g),elts) instead of the above.  But why
does Subgroup not automatically use the parent of g, if that's what it
needs, rather than making me explicitly say to use it?  Or am I going
to get into trouble using Subgroup(Parent(g),elts)?


David Sibley        | "Accurate reckoning.  The entrance into knowledge
Amateur radio NT3O  |  of all existing things and all obscure secrets."
sibley@math.psu.edu |      -- The Rhind Papyrus



From martin@math.rwth-aachen.de Mon Apr 26 12:53:57 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 12:53:57 +0200
Subject:    Re: GroupHomomorphismByImages

Daniel Ruberman writes in his e-mail message of 1993/04/22

    Are there any plans to implement the command GroupHomomorphismByImages
    for homomorphisms of Finitely Presented groups to, say, permutation groups?

Which version of GAP do you use.  In GAP 3.2 you can do the following

    gap> g := FreeGroup( 2, "g" );;
    gap> g.relators := [ g.1^2, g.2^5, (g.1*g.2^-1)^3 ];;
    gap> h := Group( (1,2)(3,4), (1,2,3,4,5) );;
    gap> f := GroupHomomorphismByImages( g, h, g.generators, h.generators );;
    gap> IsHomomorphism( f );
    true
    gap> PreImages( f, SylowSubgroup( h, 2 ) );
    Subgroup( Group( g.1, g.2 ), 
    [ g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*\
      g.2^-1*g.1^-1*g.2^-1, g.2^-2*g.1^-1*g.2^-1*g.1^-1 ] )
    gap> Index( g, last );
    15

Is this not what you want?

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From martin@math.rwth-aachen.de Mon Apr 26 14:01:30 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 14:01:30 +0200
Subject:    Re: Subgroup(Parent(g),elts)

David Sibley writes in his e-mail message of 1993/04/25:

    I just discovered an oddity in GAP and am trying to figure out why it is
    the way it is:  Subgroup(g,elts) works only when g is a parent group.

    As far as I can see, this means that when I write programs, where I
    don't know whether g is going to be a parent group or not, I should
    actually use Subgroup(Parent(g),elts) instead of the above.  But why
    does Subgroup not automatically use the parent of g, if that's what it
    needs, rather than making me explicitly say to use it?  Or am I going
    to get into trouble using Subgroup(Parent(g),elts)?

Each group is either a parent or a subgroup of a parent.  The idea is
that the parent may hold information that is needed for the subgroups.
For example for finitely presented groups the parent holds the
presentation.  Thus subgroups must be subgroups of a parent, they cannot
be subgroups of other subgroups (because those subgroups would not hold
the information needed).

Put another way, a parent is a structure in which computations are
performed, and GAP allows only few operations between subgroups of
different parents (basically only the set theoretic functions
'Intersection' etc.).

That 'Subgroup' requires a parent as first argument is a reminder to this
fact.  It is true, 'Subgroup' could automatically take the parent of the
first argument, but we found the current behaviour usefull.  It helped us
catch a few bugs, where we though a certain group was a parent, when in
fact it was not.

'Subgroup( Parent(g), elts )' should not cause any problems.  In fact,
such a construct appears fairly often in the library.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From fceller@math.rwth-aachen.de Wed Apr 28 11:05:37 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Wed, 28 Apr 93 11:05:37 +0200
Subject:    new version of the Weyl-package

Dear Mrs. and Mr. Forum,

A new version of the Weyl-package is available on "samson.math.rwth-aachen.de"
(and hopefully soon on "dehn.mth.pdx.edu" and "wuarchive.wustl.edu"):

    -r--r--r--  1 ftp         39155 Apr 28 10:32 weyl.tar.Z
    -r--r--r--  1 ftp         40641 Apr 28 10:32 weyl.zoo

It features the following improvements:

-----------------------------------------------------------------------------
Dear GAP-Forum,
there are some small changes and one bug fix in the 'weyl' package. (However,
every program written before should be 'upward compatible'.) You can see the
changes in the following examples:

# there are now non-cristallograhic (finite) Coxeter groups:
gap> CartanMat("H",3);
[ [ 2, E(5)^2+E(5)^3, 0 ], [ E(5)^2+E(5)^3, 2, -1 ], [ 0, -1, 2 ] ]

gap> CartanMat("H",4);
[ [ 2, E(5)^2+E(5)^3, 0, 0 ], [ E(5)^2+E(5)^3, 2, -1, 0 ], [ 0, -1, 2, -1 ], 
  [ 0, 0, -1, 2 ] ]

gap> CartanMat("I2",5);
[ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ]

# there is now an 'operations' component in the Weyl group record so that 
# certain generic functions for domains will work for Weyl groups as well:

gap> W:=Weyl(last);
Weyl( [ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ] )

gap> RecFields(W);
[ "isDomain", "isWeylGroup", "cartan", "dim", "degree", "N", "roots", 
  "matgens", "permgens", "parameter", "operations" ]

gap> Size(W);
10

Some other changes improve the algorithms for computing Kazhdan-Lusztig
polynomials and for calculations in Hecke algebras (which were rather
slow before). E.g., on our HP computer, the command
 
   'LeftCells( Weyl ( CartanMat( "F", 4 ) ) );'

now takes roughly 5 hours cpu time. 

There was a bug in the programs for calculating in Hecke algebras, namely
in the program which computed the inverse of a standard basis element.

These changes were motivated by reports from other users. I should be very 
glad about any further such comments and suggestions for improvements.

                                        Aachen, 28.4.93, Meinolf Geck



From aeb@win.tue.nl Wed Apr 28 17:52:07 1993
From:       aeb@win.tue.nl "A. E. Brouwer"
Date:       Wed, 28 Apr 93 17:52:07 +0200
Subject:    Interrupts etc.

The past few days I have noticed several instances where
interrupting GAP left me with a crippled version of GAP.
One more instance happened a moment ago: I said
gap> PrintRec(N);
where N was some permutation group
[B.t.w., PrintRec does not occur in the on-line help,
only in the chapter About Gap]
and this produced much more output than I liked.
So, I gave ^C. Afterwards, N was partially mangled:

  gap> N;
  ~
      gap> 
  gap> PrintRec(N);     
  ~gap> 
  gap> Size(N);
  729
      gap> Print(N);
  ~gap> c in N;
  Error, Record: right operand must have '~.operations.in'

Let me take this opportunity to ask a question.
Do there exist facilities to regard an elementary abelian group
as a vector space (and vice versa)?
Do there exist facilities to go back and forth between a (permutation)
group p^n:G with elem. ab. subgroup p^n and a matrix group G
(with matrices of order n over GF(p))?

Andries Brouwer



From fceller@math.rwth-aachen.de Thu Apr 29 10:39:26 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Thu, 29 Apr 93 10:39:26 +0200
Subject:    Re: Interrupts etc.

A.E. Brouwer writes:

    The past few days I have noticed several instances where
    interrupting GAP left me with a crippled version of GAP.
    One more instance happened a moment ago: I said

Yes, there is problem with interrupting GAP while printing.  In order
to avoid recursion while printing,  GAP marks the objects which are
already printed.  If you interrupt GAP while it is printing, some
objects are still marked, which causes this behavior.  We will try to
fix this in the next upgrade.

best wishes
  Frank



From sam@math.rwth-aachen.de Thu Apr 29 11:59:15 1993
From:       sam@math.rwth-aachen.de "Thomas Breuer"
Date:       Thu, 29 Apr 93 11:59:15 +0200
Subject:    vector spaces & modules

Dear Mrs. and Mr. Forum,

Andries Brouwer asks two questions concerning vector spaces, namely
whether elementary abelian groups can be regarded as vector spaces
and vice versa, and whether it is possible to describe the action of
a group on an elementary abelian subgroup via a matrix representation.

Here 'regard' and 'describe' apparently both mean that one has homomorphisms
between the group and the vector space resp. between the group and the
representation and its module.  As stated recently in another message
to the GAP forum, up to now there is no developed data structure
representing vector spaces and modules in GAP, so the desired homomorphisms
would not be of much help.  But as soon as these domains and some functions
dealing with them are available in GAP (hopefully in the next version),
the questions of Andries Brouwer can be answered 'yes'.

Thomas Breuer
(sam@ernie.math.rwth-aachen.de)


P.S.:  What Andries Brouwer tells about the strange behaviour of '~'
       of course describes a bug, but I cannot say anything about when
       it will be fixed.



From neubuese@math.rwth-aachen.de Thu Apr 29 17:20:24 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Thu, 29 Apr 93 17:20:24 +0200
Subject:    bugs and trouble

Dear GAP-forum,

After some discussion, we want to introduce a new address   

gap-trouble@math.rwth-aachen.de

The  idea  is the  following.  We have  observed  the  discussions and
reports in  the GAP-forum as well as in the mail that  some of us have
got privately about GAP. These fall roughly into four categories:

1. Reports on what I like to call "real bugs", i.e. on instances where
GAP  produces  a wrong  answer  to a  problem, an answer that the user
might  even  take  for  granted  and  thus  might  be  led   to  wrong
conclusions.  The  wrong abelian invariants,  on which Daniel Ruberman
reported  recently,  were  such a case.  (in  which Martin fortunately
could   at  least   clarify  that  this   was  a   rather  exceptional
malfunction).

*We  urge  that  each such case should by all  means  and as  soon  as
*possible be reported in the GAP-forum in order to minimize the danger
*that somebody is led to wrong conclusions.

2.   Reports  on annoying behaviour of GAP  such as that of  GAP after
interrupting   while  printing  that  Andries  Brouwer  reported  this
morning.  Such things  are clearly annoying, they may  cost the user's
time,  but  at  least  (s)he  cannot  be  led  to  wrong  mathematical
conclusions.  The same applies to inefficiencies. We have no objection
at  all if these are  sent to the GAP-forum, however more such reports
seem to be sent directly to a private address in Aachen, most often to
Martin  Schoenert.   We  ask  that such reports  if  not sent  to  the
GAP-forum are rather sent to the above address "gap-trouble".  Letters
sent to  that address  will automatically be  distributed to  a  small
group of people who  will jointly try to deal with the problems.  This
group will be started with Martin Schoenert (of course), Frank Celler,
Thomas Breuer and myself, but whoever is willing  to help us with  the
task to settle such deficiencies is invited to  join the group (please
just  tell  us  to  be  put on  the  address list).   Letters  sent to
"GAP-trouble"  will  get  an  individual  reply to the  sender  and in
addition we intend to give a report from time to time to the GAP-forum
summarizing the troubles  reported and our plans to  deal  with  them,
which may range from "yes  will be fixed in the next patch"  over "yes
but has to wait for the next  version" to "yes, but ...". We hope that
by this scheme we  cannot only  distribute the workload  a  little bit
more evenly, but also  to  minimize times of no reply when some  of us
are absent from Aachen.

3. Installation problems. The flood of them occurring in the GAP-forum
after the release  of GAP 3.2  even  led to  the proposal of a second
forum. While  we did  not follow  this suggestion, we think that if in
the future such problems are  also sent to "gap-trouble" and we report
only on important and more often  asked questions in the GAP-forum, we
achieve some better organisation in this respect, too.

4. Questions "How can I do in GAP ...?	"  or  "Can I do..?"  These we
would like to see further in the GAP-forum and we hope that often,  as
in  the  past,  helpful answers  will  come  from members of the forum
outside of Aachen.

The address "gap-trouble" will be operational from Friday, April 30.
We hope that it will be a useful innovation and ask you to use it.

Joachim Neubueser



From scherrc@rosevc.rose-hulman.edu Thu Apr 29 18:32:44 1993
From:       scherrc@rosevc.rose-hulman.edu "Chad Scherrer"
Date:       Thu, 29 Apr 93 18:32:44 +0200
Subject:    Finding subgroups in GAP

Is there a way in GAP to find all the subgroups of a given group, and if so,
what about finding all normal subgroups of a given group? I realize these
aren't of too great concern in doing most research, but I'm originally a Cayley
user, and am in the habit of looping tests over the set of subgroups or the set
of normal subgroups of a group. I'm currently in the process of switching over
to using GAP, and have found equivalent commands for most of the things I could
do in Cayley, but have had trouble finding any mention in the GAP documentation
of how to find subgroups. Is there a way to do this in GAP?

				Sincerely,

				Chad Scherrer
				scherrc@rosevc.rose-hulman.edu



From martin@math.rwth-aachen.de Thu Apr 29 18:55:12 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Thu, 29 Apr 93 18:55:12 +0200
Subject:    Re: Finding subgroups in GAP

Chad Scherrer writes in his e-mail messages of 1993/04/29

    Is there a way in GAP to find all the subgroups of a given group,
    and if so, what about finding all normal subgroups of a given group?

The function 'ConjugacyClassesSubgroups' will return the conjugacy
classes of subgroups of a given group (whose largest perfect subgroup
must have size <= 10000).  With

    List( ConjugacyClassesSubgroups(G), Representative );

you get a list of representatives of the conjugacy classes, i.e.,
one subgroups from each conjugacy class.  With

    Concatenation( List( ConjugacyClassesSubgroups(G), Elements ) );

you get all the subgroups.

Note that 'ConjugacyClassesSubgroups' is somewhat slow for large solvable
groups.  I have rewritten this function so that it is now faster.  This
new implementation will be made available in the third upgrade (sorry I
don't know when we will release this upgrade).

The function 'NormalSubgroups' will return a list of normal subgroups of
a given group.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From l.h.soicher@qmw.ac.uk Thu Apr 29 19:32:00 1993
From:       l.h.soicher@qmw.ac.uk "Leonard Soicher"
Date:       Thu, 29 Apr 93 19:32:00 +0200
Subject:    GRAPE

There is a bug in GRAPE, such that if you interrupt the 
CompleteSubgraphs function and quit the break loop, you may find
the  names  field changed of the graph you input t
graben 64, RWTH, D 51 Aachen, Germany



From ruberman@binah.cc.brandeis.edu Thu Apr 22 14:22:15 1993
From:       ruberman@binah.cc.brandeis.edu "Daniel Ruberman"
date:       Thu, 22 Apr 93 14:22:15 +0200
Subject:    GroupHomomorphismByImages

Are there any plans to implement the command GroupHomomorphismByImages
for homomorphisms of Finitely Presented groups to, say, permutation groups?
There is no theoretical obstruction to doing so, as it is a matter of checking
whether the images of the relators in the permutation group are all trivial.
Failing that, if anyone has written GAP routines to accomplish this task, could
they please let me know.

Thanks,
Daniel Ruberman
(ruberman@binah.cc.brandeis.edu)



From sibley@math.psu.edu Sun Apr 25 18:51:15 1993
From:       sibley@math.psu.edu "David Sibley"
Date:       Sun, 25 Apr 93 18:51:15 +0200
Subject:    Subgroup(Parent(g),elts)

I just discovered an oddity in GAP and am trying to figure out why it is
the way it is:  Subgroup(g,elts) works only when g is a parent group.

As far as I can see, this means that when I write programs, where I
don't know whether g is going to be a parent group or not, I should
actually use Subgroup(Parent(g),elts) instead of the above.  But why
does Subgroup not automatically use the parent of g, if that's what it
needs, rather than making me explicitly say to use it?  Or am I going
to get into trouble using Subgroup(Parent(g),elts)?


David Sibley        | "Accurate reckoning.  The entrance into knowledge
Amateur radio NT3O  |  of all existing things and all obscure secrets."
sibley@math.psu.edu |      -- The Rhind Papyrus



From martin@math.rwth-aachen.de Mon Apr 26 12:53:57 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 12:53:57 +0200
Subject:    Re: GroupHomomorphismByImages

Daniel Ruberman writes in his e-mail message of 1993/04/22

    Are there any plans to implement the command GroupHomomorphismByImages
    for homomorphisms of Finitely Presented groups to, say, permutation groups?

Which version of GAP do you use.  In GAP 3.2 you can do the following

    gap> g := FreeGroup( 2, "g" );;
    gap> g.relators := [ g.1^2, g.2^5, (g.1*g.2^-1)^3 ];;
    gap> h := Group( (1,2)(3,4), (1,2,3,4,5) );;
    gap> f := GroupHomomorphismByImages( g, h, g.generators, h.generators );;
    gap> IsHomomorphism( f );
    true
    gap> PreImages( f, SylowSubgroup( h, 2 ) );
    Subgroup( Group( g.1, g.2 ), 
    [ g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*\
      g.2^-1*g.1^-1*g.2^-1, g.2^-2*g.1^-1*g.2^-1*g.1^-1 ] )
    gap> Index( g, last );
    15

Is this not what you want?

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From martin@math.rwth-aachen.de Mon Apr 26 14:01:30 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 14:01:30 +0200
Subject:    Re: Subgroup(Parent(g),elts)

David Sibley writes in his e-mail message of 1993/04/25:

    I just discovered an oddity in GAP and am trying to figure out why it is
    the way it is:  Subgroup(g,elts) works only when g is a parent group.

    As far as I can see, this means that when I write programs, where I
    don't know whether g is going to be a parent group or not, I should
    actually use Subgroup(Parent(g),elts) instead of the above.  But why
    does Subgroup not automatically use the parent of g, if that's what it
    needs, rather than making me explicitly say to use it?  Or am I going
    to get into trouble using Subgroup(Parent(g),elts)?

Each group is either a parent or a subgroup of a parent.  The idea is
that the parent may hold information that is needed for the subgroups.
For example for finitely presented groups the parent holds the
presentation.  Thus subgroups must be subgroups of a parent, they cannot
be subgroups of other subgroups (because those subgroups would not hold
the information needed).

Put another way, a parent is a structure in which computations are
performed, and GAP allows only few operations between subgroups of
different parents (basically only the set theoretic functions
'Intersection' etc.).

That 'Subgroup' requires a parent as first argument is a reminder to this
fact.  It is true, 'Subgroup' could automatically take the parent of the
first argument, but we found the current behaviour usefull.  It helped us
catch a few bugs, where we though a certain group was a parent, when in
fact it was not.

'Subgroup( Parent(g), elts )' should not cause any problems.  In fact,
such a construct appears fairly often in the library.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From fceller@math.rwth-aachen.de Wed Apr 28 11:05:37 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Wed, 28 Apr 93 11:05:37 +0200
Subject:    new version of the Weyl-package

Dear Mrs. and Mr. Forum,

A new version of the Weyl-package is available on "samson.math.rwth-aachen.de"
(and hopefully soon on "dehn.mth.pdx.edu" and "wuarchive.wustl.edu"):

    -r--r--r--  1 ftp         39155 Apr 28 10:32 weyl.tar.Z
    -r--r--r--  1 ftp         40641 Apr 28 10:32 weyl.zoo

It features the following improvements:

-----------------------------------------------------------------------------
Dear GAP-Forum,
there are some small changes and one bug fix in the 'weyl' package. (However,
every program written before should be 'upward compatible'.) You can see the
changes in the following examples:

# there are now non-cristallograhic (finite) Coxeter groups:
gap> CartanMat("H",3);
[ [ 2, E(5)^2+E(5)^3, 0 ], [ E(5)^2+E(5)^3, 2, -1 ], [ 0, -1, 2 ] ]

gap> CartanMat("H",4);
[ [ 2, E(5)^2+E(5)^3, 0, 0 ], [ E(5)^2+E(5)^3, 2, -1, 0 ], [ 0, -1, 2, -1 ], 
  [ 0, 0, -1, 2 ] ]

gap> CartanMat("I2",5);
[ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ]

# there is now an 'operations' component in the Weyl group record so that 
# certain generic functions for domains will work for Weyl groups as well:

gap> W:=Weyl(last);
Weyl( [ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ] )

gap> RecFields(W);
[ "isDomain", "isWeylGroup", "cartan", "dim", "degree", "N", "roots", 
  "matgens", "permgens", "parameter", "operations" ]

gap> Size(W);
10

Some other changes improve the algorithms for computing Kazhdan-Lusztig
polynomials and for calculations in Hecke algebras (which were rather
slow before). E.g., on our HP computer, the command
 
   'LeftCells( Weyl ( CartanMat( "F", 4 ) ) );'

now takes roughly 5 hours cpu time. 

There was a bug in the programs for calculating in Hecke algebras, namely
in the program which computed the inverse of a standard basis element.

These changes were motivated by reports from other users. I should be very 
glad about any further such comments and suggestions for improvements.

                                        Aachen, 28.4.93, Meinolf Geck



From aeb@win.tue.nl Wed Apr 28 17:52:07 1993
From:       aeb@win.tue.nl "A. E. Brouwer"
Date:       Wed, 28 Apr 93 17:52:07 +0200
Subject:    Interrupts etc.

The past few days I have noticed several instances where
interrupting GAP left me with a crippled version of GAP.
One more instance happened a moment ago: I said
gap> PrintRec(N);
where N was some permutation group
[B.t.w., PrintRec does not occur in the on-line help,
only in the chapter About Gap]
and this produced much more output than I liked.
So, I gave ^C. Afterwards, N was partially mangled:

  gap> N;
  ~
      gap> 
  gap> PrintRec(N);     
  ~gap> 
  gap> Size(N);
  729
      gap> Print(N);
  ~gap> c in N;
  Error, Record: right operand must have '~.operations.in'

Let me take this opportunity to ask a question.
Do there exist facilities to regard an elementary abelian group
as a vector space (and vice versa)?
Do there exist facilities to go back and forth between a (permutation)
group p^n:G with elem. ab. subgroup p^n and a matrix group G
(with matrices of order n over GF(p))?

Andries Brouwer



From fceller@math.rwth-aachen.de Thu Apr 29 10:39:26 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Thu, 29 Apr 93 10:39:26 +0200
Subject:    Re: Interrupts etc.

A.E. Brouwer writes:

    The past few days I have noticed several instances where
    interrupting GAP left me with a crippled version of GAP.
    One more instance happened a moment ago: I said

Yes, there is problem with interrupting GAP while printing.  In order
to avoid recursion while printing,  GAP marks the objects which are
already printed.  If you interrupt GAP while it is printing, some
objects are still marked, which causes this behavior.  We will try to
fix this in the next upgrade.

best wishes
  Frank



From sam@math.rwth-aachen.de Thu Apr 29 11:59:15 1993
From:       sam@math.rwth-aachen.de "Thomas Breuer"
Date:       Thu, 29 Apr 93 11:59:15 +0200
Subject:    vector spaces & modules

Dear Mrs. and Mr. Forum,

Andries Brouwer asks two questions concerning vector spaces, namely
whether elementary abelian groups can be regarded as vector spaces
and vice versa, and whether it is possible to describe the action of
a group on an elementary abelian subgroup via a matrix representation.

Here 'regard' and 'describe' apparently both mean that one has homomorphisms
between the group and the vector space resp. between the group and the
representation and its module.  As stated recently in another message
to the GAP forum, up to now there is no developed data structure
representing vector spaces and modules in GAP, so the desired homomorphisms
would not be of much help.  But as soon as these domains and some functions
dealing with them are available in GAP (hopefully in the next version),
the questions of Andries Brouwer can be answered 'yes'.

Thomas Breuer
(sam@ernie.math.rwth-aachen.de)


P.S.:  What Andries Brouwer tells about the strange behaviour of '~'
       of course describes a bug, but I cannot say anything about when
       it will be fixed.



From neubuese@math.rwth-aachen.de Thu Apr 29 17:20:24 1993
From:       neubuese@math.rwth-aachen.de "Joachim Neubueser"
Date:       Thu, 29 Apr 93 17:20:24 +0200
Subject:    bugs and trouble

Dear GAP-forum,

After some discussion, we want to introduce a new address   

gap-trouble@math.rwth-aachen.de

The  idea  is the  following.  We have  observed  the  discussions and
reports in  the GAP-forum as well as in the mail that  some of us have
got privately about GAP. These fall roughly into four categories:

1. Reports on what I like to call "real bugs", i.e. on instances where
GAP  produces  a wrong  answer  to a  problem, an answer that the user
might  even  take  for  granted  and  thus  might  be  led   to  wrong
conclusions.  The  wrong abelian invariants,  on which Daniel Ruberman
reported  recently,  were  such a case.  (in  which Martin fortunately
could   at  least   clarify  that  this   was  a   rather  exceptional
malfunction).

*We  urge  that  each such case should by all  means  and as  soon  as
*possible be reported in the GAP-forum in order to minimize the danger
*that somebody is led to wrong conclusions.

2.   Reports  on annoying behaviour of GAP  such as that of  GAP after
interrupting   while  printing  that  Andries  Brouwer  reported  this
morning.  Such things  are clearly annoying, they may  cost the user's
time,  but  at  least  (s)he  cannot  be  led  to  wrong  mathematical
conclusions.  The same applies to inefficiencies. We have no objection
at  all if these are  sent to the GAP-forum, however more such reports
seem to be sent directly to a private address in Aachen, most often to
Martin  Schoenert.   We  ask  that such reports  if  not sent  to  the
GAP-forum are rather sent to the above address "gap-trouble".  Letters
sent to  that address  will automatically be  distributed to  a  small
group of people who  will jointly try to deal with the problems.  This
group will be started with Martin Schoenert (of course), Frank Celler,
Thomas Breuer and myself, but whoever is willing  to help us with  the
task to settle such deficiencies is invited to  join the group (please
just  tell  us  to  be  put on  the  address list).   Letters  sent to
"GAP-trouble"  will  get  an  individual  reply to the  sender  and in
addition we intend to give a report from time to time to the GAP-forum
summarizing the troubles  reported and our plans to  deal  with  them,
which may range from "yes  will be fixed in the next patch"  over "yes
but has to wait for the next  version" to "yes, but ...". We hope that
by this scheme we  cannot only  distribute the workload  a  little bit
more evenly, but also  to  minimize times of no reply when some  of us
are absent from Aachen.

3. Installation problems. The flood of them occurring in the GAP-forum
after the release  of GAP 3.2  even  led to  the proposal of a second
forum. While  we did  not follow  this suggestion, we think that if in
the future such problems are  also sent to "gap-trouble" and we report
only on important and more often  asked questions in the GAP-forum, we
achieve some better organisation in this respect, too.

4. Questions "How can I do in GAP ...?	"  or  "Can I do..?"  These we
would like to see further in the GAP-forum and we hope that often,  as
in  the  past,  helpful answers  will  come  from members of the forum
outside of Aachen.

The address "gap-trouble" will be operational from Friday, April 30.
We hope that it will be a useful innovation and ask you to use it.

Joachim Neubueser



From scherrc@rosevc.rose-hulman.edu Thu Apr 29 18:32:44 1993
From:       scherrc@rosevc.rose-hulman.edu "Chad Scherrer"
Date:       Thu, 29 Apr 93 18:32:44 +0200
Subject:    Finding subgroups in GAP

Is there a way in GAP to find all the subgroups of a given group, and if so,
what about finding all normal subgroups of a given group? I realize these
aren't of too great concern in doing most research, but I'm originally a Cayley
user, and am in the habit of looping tests over the set of subgroups or the set
of normal subgroups of a group. I'm currently in the process of switching over
to using GAP, and have found equivalent commands for most of the things I could
do in Cayley, but have had trouble finding any mention in the GAP documentation
of how to find subgroups. Is there a way to do this in GAP?

				Sincerely,

				Chad Scherrer
				scherrc@rosevc.rose-hulman.edu



From martin@math.rwth-aachen.de Thu Apr 29 18:55:12 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Thu, 29 Apr 93 18:55:12 +0200
Subject:    Re: Finding subgroups in GAP

Chad Scherrer writes in his e-mail messages of 1993/04/29

    Is there a way in GAP to find all the subgroups of a given group,
    and if so, what about finding all normal subgroups of a given group?

The function 'ConjugacyClassesSubgroups' will return the conjugacy
classes of subgroups of a given group (whose largest perfect subgroup
must have size <= 10000).  With

    List( ConjugacyClassesSubgroups(G), Representative );

you get a list of representatives of the conjugacy classes, i.e.,
one subgroups from each conjugacy class.  With

    Concatenation( List( ConjugacyClassesSubgroups(G), Elements ) );

you get all the subgroups.

Note that 'ConjugacyClassesSubgroups' is somewhat slow for large solvable
groups.  I have rewritten this function so that it is now faster.  This
new implementation will be made available in the third upgrade (sorry I
don't know when we will release this upgrade).

The function 'NormalSubgroups' will return a list of normal subgroups of
a given group.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From l.h.soicher@qmw.ac.uk Thu Apr 29 19:32:00 1993
From:       l.h.soicher@qmw.ac.uk "Leonard Soicher"
Date:       Thu, 29 Apr 93 19:32:00 +0200
Subject:    GRAPE

There is a bug in GRAPE, such that if you interrupt the 
CompleteSubgraphs function and quit the break loop, you may find
the  names  field changed of the graph you input t
graben 64, RWTH, D 51 Aachen, Germany



From ruberman@binah.cc.brandeis.edu Thu Apr 22 14:22:15 1993
From:       ruberman@binah.cc.brandeis.edu "Daniel Ruberman"
date:       Thu, 22 Apr 93 14:22:15 +0200
Subject:    GroupHomomorphismByImages

Are there any plans to implement the command GroupHomomorphismByImages
for homomorphisms of Finitely Presented groups to, say, permutation groups?
There is no theoretical obstruction to doing so, as it is a matter of checking
whether the images of the relators in the permutation group are all trivial.
Failing that, if anyone has written GAP routines to accomplish this task, could
they please let me know.

Thanks,
Daniel Ruberman
(ruberman@binah.cc.brandeis.edu)



From sibley@math.psu.edu Sun Apr 25 18:51:15 1993
From:       sibley@math.psu.edu "David Sibley"
Date:       Sun, 25 Apr 93 18:51:15 +0200
Subject:    Subgroup(Parent(g),elts)

I just discovered an oddity in GAP and am trying to figure out why it is
the way it is:  Subgroup(g,elts) works only when g is a parent group.

As far as I can see, this means that when I write programs, where I
don't know whether g is going to be a parent group or not, I should
actually use Subgroup(Parent(g),elts) instead of the above.  But why
does Subgroup not automatically use the parent of g, if that's what it
needs, rather than making me explicitly say to use it?  Or am I going
to get into trouble using Subgroup(Parent(g),elts)?


David Sibley        | "Accurate reckoning.  The entrance into knowledge
Amateur radio NT3O  |  of all existing things and all obscure secrets."
sibley@math.psu.edu |      -- The Rhind Papyrus



From martin@math.rwth-aachen.de Mon Apr 26 12:53:57 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 12:53:57 +0200
Subject:    Re: GroupHomomorphismByImages

Daniel Ruberman writes in his e-mail message of 1993/04/22

    Are there any plans to implement the command GroupHomomorphismByImages
    for homomorphisms of Finitely Presented groups to, say, permutation groups?

Which version of GAP do you use.  In GAP 3.2 you can do the following

    gap> g := FreeGroup( 2, "g" );;
    gap> g.relators := [ g.1^2, g.2^5, (g.1*g.2^-1)^3 ];;
    gap> h := Group( (1,2)(3,4), (1,2,3,4,5) );;
    gap> f := GroupHomomorphismByImages( g, h, g.generators, h.generators );;
    gap> IsHomomorphism( f );
    true
    gap> PreImages( f, SylowSubgroup( h, 2 ) );
    Subgroup( Group( g.1, g.2 ), 
    [ g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*g.2^-3*g.1^-1*g.2^-2*g.1^-1*\
      g.2^-1*g.1^-1*g.2^-1, g.2^-2*g.1^-1*g.2^-1*g.1^-1 ] )
    gap> Index( g, last );
    15

Is this not what you want?

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From martin@math.rwth-aachen.de Mon Apr 26 14:01:30 1993
From:       martin@math.rwth-aachen.de "Martin Schoenert"
Date:       Mon, 26 Apr 93 14:01:30 +0200
Subject:    Re: Subgroup(Parent(g),elts)

David Sibley writes in his e-mail message of 1993/04/25:

    I just discovered an oddity in GAP and am trying to figure out why it is
    the way it is:  Subgroup(g,elts) works only when g is a parent group.

    As far as I can see, this means that when I write programs, where I
    don't know whether g is going to be a parent group or not, I should
    actually use Subgroup(Parent(g),elts) instead of the above.  But why
    does Subgroup not automatically use the parent of g, if that's what it
    needs, rather than making me explicitly say to use it?  Or am I going
    to get into trouble using Subgroup(Parent(g),elts)?

Each group is either a parent or a subgroup of a parent.  The idea is
that the parent may hold information that is needed for the subgroups.
For example for finitely presented groups the parent holds the
presentation.  Thus subgroups must be subgroups of a parent, they cannot
be subgroups of other subgroups (because those subgroups would not hold
the information needed).

Put another way, a parent is a structure in which computations are
performed, and GAP allows only few operations between subgroups of
different parents (basically only the set theoretic functions
'Intersection' etc.).

That 'Subgroup' requires a parent as first argument is a reminder to this
fact.  It is true, 'Subgroup' could automatically take the parent of the
first argument, but we found the current behaviour usefull.  It helped us
catch a few bugs, where we though a certain group was a parent, when in
fact it was not.

'Subgroup( Parent(g), elts )' should not cause any problems.  In fact,
such a construct appears fairly often in the library.

Martin.

-- .- .-. - .. -.  .-.. --- ...- . ...  .- -. -. .. -.- .-
Martin Sch"onert,   Martin.Schoenert@Math.RWTH-Aachen.DE,  +49 241 804551
Lehrstuhl D f"ur Mathematik, Templergraben 64, RWTH, D 51 Aachen, Germany



From fceller@math.rwth-aachen.de Wed Apr 28 11:05:37 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Wed, 28 Apr 93 11:05:37 +0200
Subject:    new version of the Weyl-package

Dear Mrs. and Mr. Forum,

A new version of the Weyl-package is available on "samson.math.rwth-aachen.de"
(and hopefully soon on "dehn.mth.pdx.edu" and "wuarchive.wustl.edu"):

    -r--r--r--  1 ftp         39155 Apr 28 10:32 weyl.tar.Z
    -r--r--r--  1 ftp         40641 Apr 28 10:32 weyl.zoo

It features the following improvements:

-----------------------------------------------------------------------------
Dear GAP-Forum,
there are some small changes and one bug fix in the 'weyl' package. (However,
every program written before should be 'upward compatible'.) You can see the
changes in the following examples:

# there are now non-cristallograhic (finite) Coxeter groups:
gap> CartanMat("H",3);
[ [ 2, E(5)^2+E(5)^3, 0 ], [ E(5)^2+E(5)^3, 2, -1 ], [ 0, -1, 2 ] ]

gap> CartanMat("H",4);
[ [ 2, E(5)^2+E(5)^3, 0, 0 ], [ E(5)^2+E(5)^3, 2, -1, 0 ], [ 0, -1, 2, -1 ], 
  [ 0, 0, -1, 2 ] ]

gap> CartanMat("I2",5);
[ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ]

# there is now an 'operations' component in the Weyl group record so that 
# certain generic functions for domains will work for Weyl groups as well:

gap> W:=Weyl(last);
Weyl( [ [ 2, E(5)^2+E(5)^3 ], [ E(5)^2+E(5)^3, 2 ] ] )

gap> RecFields(W);
[ "isDomain", "isWeylGroup", "cartan", "dim", "degree", "N", "roots", 
  "matgens", "permgens", "parameter", "operations" ]

gap> Size(W);
10

Some other changes improve the algorithms for computing Kazhdan-Lusztig
polynomials and for calculations in Hecke algebras (which were rather
slow before). E.g., on our HP computer, the command
 
   'LeftCells( Weyl ( CartanMat( "F", 4 ) ) );'

now takes roughly 5 hours cpu time. 

There was a bug in the programs for calculating in Hecke algebras, namely
in the program which computed the inverse of a standard basis element.

These changes were motivated by reports from other users. I should be very 
glad about any further such comments and suggestions for improvements.

                                        Aachen, 28.4.93, Meinolf Geck



From aeb@win.tue.nl Wed Apr 28 17:52:07 1993
From:       aeb@win.tue.nl "A. E. Brouwer"
Date:       Wed, 28 Apr 93 17:52:07 +0200
Subject:    Interrupts etc.

The past few days I have noticed several instances where
interrupting GAP left me with a crippled version of GAP.
One more instance happened a moment ago: I said
gap> PrintRec(N);
where N was some permutation group
[B.t.w., PrintRec does not occur in the on-line help,
only in the chapter About Gap]
and this produced much more output than I liked.
So, I gave ^C. Afterwards, N was partially mangled:

  gap> N;
  ~
      gap> 
  gap> PrintRec(N);     
  ~gap> 
  gap> Size(N);
  729
      gap> Print(N);
  ~gap> c in N;
  Error, Record: right operand must have '~.operations.in'

Let me take this opportunity to ask a question.
Do there exist facilities to regard an elementary abelian group
as a vector space (and vice versa)?
Do there exist facilities to go back and forth between a (permutation)
group p^n:G with elem. ab. subgroup p^n and a matrix group G
(with matrices of order n over GF(p))?

Andries Brouwer



From fceller@math.rwth-aachen.de Thu Apr 29 10:39:26 1993
From:       fceller@math.rwth-aachen.de "Frank Celler"
Date:       Thu, 29 Apr 93 10:39:26 +0200
Subject:    Re: Interrupts etc.

A.E. Brouwer writes:

    The past few days I have noticed several instances where
    interrupting GAP left me with a crippled version of GAP.
    One more instance happened a moment ago: I said

Yes, there is problem with interrupting GAP while printing.  In order
to avoid recursion while printing,  GAP marks the objects which are
already printed.  If you interrupt GAP while it is printing, some
objects are still marked, which causes this behavior.  We will try to
fix this in the next upgrade.

best wishes
  Frank



From sam@math.rwth-aachen.de Thu Apr 29 11:59:15 1993
From:       sam@math.rwth-aachen.de "Thomas Breuer"
Date:       Thu, 29 Apr 93 11:59:15 +0200
Subject:    vector spaces & modules

Dear Mrs. and Mr. Forum,

Andries Brouwer asks two questions concerning vector spaces, namely
whether elementary abelian groups can be regarded as vector spaces
and vice versa, and whether it is possible to describe the action of
a group on an elementary abelian subgroup via a matrix representation.

Here 'regard' and 'describe' apparently both mean that one has homomorphisms
between the group and the vector space resp. between the group and the
representation and its module.  As stated recently in another message
to the GAP forum, up to now there is no developed data structure
representing vector spaces and modules in GAP, so the desired homomorphisms
would not be of much help.  But as soon as these domains and some functions
dealing with them are available in GAP (hopefully in the next version),
the questions of Andries Brouwer can be answered 'yes'.

Thomas Breuer
(sam@ernie.math.rwth-aachen.de)


P.S.:  What Andries Brouwer tells about the strange behaviour of '~'
       of course describes a bug, but I cannot say anything about when
       it will be fixed.



From neubuese@math.rwth-aachen.de Thu Apr 29 17:20:24 1993
From:       neubuese@math