> < ^ Date: Fri, 16 Feb 1996 14:11:29 +0100
> < ^ From: Volkmar Felsch <Volkmar.Felsch@Math.RWTH-Aachen.DE >
^ Subject: Bug in Tietze routines

This mail contains a fix for two bugs in 'TzFindCyclicJoins'.
'TzFindCyclicJoins' is called directly or indirectly from
'FpGroup' (when called for subgroups of finitely presented groups),
'SimplifyPresentation', 'SimplifiedFpGroup', 'TzGo', and 'TzGoGo'.

The priority of this bug fix is *high*, because one of the bugs may lead
to wrong results without a warning.

This bug fix changes only the library. Thus you need not recompile the
GAP kernel.

Go to the GAP directory (the directory with the 'lib/' subdirectory),
name this bug fix file 'bugfix01.dif', and issue the command:

patch -p0 < bugfix01.dif

COMMENT

This fix simply disables the faulty function 'TzFindCyclicJoins'.
A later fix will provide a corrected version of 'TzFindCyclicJoins',
since we first want to test the corrected version.

'TzFindCyclicJoins' has the following purpose. If the presentation being
simplified contains a commutator relator 'Comm(<a>,<b>)' and at least one
power relator of the form '<a>^<n>' or '<b>^<m>', where <a> and <b> are
generators or inverses of generators, then the subroutine searches for
further relators which are words in <a> and <b> and their inverses only,
and then it tries to reduce these relators by applying the Euclidean
algorithm to the occurring exponents.

The fact that this bug has been discovered only now in a routine which is
being used since 1993 seems to indicate that it only occurs in rather
rare situations. Unfortunately, however, it is one of those nasty bugs
which may produce wrong results without giving any evidence of that fact.
Therefore we strongly recommend that you implement this fix in your local
GAP installation.

VERSION

GAP 3.4.3.0
@(#)$Id: 1.html,v 1.2 2004/04/21 15:03:58 felsch Exp $

DESCRIPTION

'TzFindCyclicJoins', which is is called directly or indirectly from
'FpGroup' (when called for subgroups of finitely presented groups),
'SimplifyPresentation', 'SimplifiedFpGroup', 'TzGo', and 'TzGoGo',
might signal

Error: Integer operations: <divisor> must be nonzero.

DESCRIPTION

'TzFindCyclicJoins', which is is called directly or indirectly from
'FpGroup' (when called for subgroups of finitely presented groups),
'SimplifyPresentation', 'SimplifiedFpGroup', 'TzGo', and 'TzGoGo',
might produce wrong presentations.

FIX

Prereq: 3.4.1.2
--- lib/fptietze.g      1995/11/03 10:56:47
+++ lib/fptietze.g      1996/02/16 10:56:09
@@ -2,7 +2,7 @@
 ##
 #A  fptietze.g                GAP library                      Volkmar Felsch
 ##
-#A  @(#)$Id: 1.html,v 1.2 2004/04/21 15:03:58 felsch Exp $
+#A  @(#)$Id: 1.html,v 1.2 2004/04/21 15:03:58 felsch Exp $
 ##
 #Y  Copyright 1990-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
 ##
@@ -10,6 +10,9 @@
 ##  finitely presented groups.
 ##
 #H  $Log: 1.html,v $
 #H  Revision 1.2  2004/04/21 15:03:58  felsch
 #H  Corrected links in the Forum Archive pages.   VF
 #H
 #H  Revision 1.1.1.1  2004/04/20 13:39:35  felsch
 #H  The final GAP-Forum archive until 2003.
 #H
 #H  Revision 1.6  2003/06/12 19:20:33  gap
 #H  Further update. AH
 #H
 #H  Revision 1.5  2003/06/12 17:28:25  gap
 #H  Address updates by JN. AH
 #H
 #H  Revision 1.4  1999/03/18 10:17:42  gap
 #H  Fixed a mail that was corrupted in the files stemming from Martin.
 #H
 #H  Revision 1.3  1997/08/15 11:19:30  gap
 #H  New forum setup. AH
 #H
 #H  Revision 1.2  1997/04/24 15:32:10  gap
 #H  These files were replaced by the versions in WWW. The content is basically the
 #H  same but the formatting has been much more friendly towards the HTML-Converter.
 #H  AH
 #H
 #H  Revision 1.1  1996/10/30 13:07:02  gap
 #H  added forum archive and translation files.
 #H
+#H  Revision 3.4.1.3  1996/02/16  09:58:00  vfelsch
+#H  commented out the call of TzFindCyclicJoins which contains a bug
+#H
 #H  Revision 3.4.1.2  1995/11/03  10:56:47  werner
 #H  fixed a bug in TzHandleLength1Or2Relators()
 #H          (discovered by a run of Tibor & Zoltan space group routines)
@@ -1412,11 +1415,11 @@

     # try to find cyclic subgroups by looking at power and commutator
     # relators.
-    if tietze[TZ_TOTAL] > 0 then
-        TzFindCyclicJoins( T );
-        if tietze[TZ_MODIFIED] then  TzSearch( T );  fi;
-        if printstatus then  TzPrintStatus( T, true );  fi;
-    fi;
+    ## if tietze[TZ_TOTAL] > 0 then
+    ##     TzFindCyclicJoins( T );
+    ##     if tietze[TZ_MODIFIED] then  TzSearch( T );  fi;
+    ##     if printstatus then  TzPrintStatus( T, true );  fi;
+    ## fi;

end;

END OF mail


> < [top]