> < ^ Date: Wed, 10 Apr 1996 21:18:00 +0100 (MET)
> < ^ From: Martin Schoenert <martin.schoenert@math.rwth-aachen.de >
^ Subject: BUGFIX 05 (serious problem in 'Intersection' for AgGroups)

This mail contains a bugfix for a serious problem in GAP 3.4.3.
You should apply this bugfix soon if you are computing with AgGroups.
The problem is in 'Intersection' for AgGroups, and may cause it
to fail with a cryptic error message.

HOW TO APPLY

The problem is a serious problem, because it may cause a computation to
fail. Thus the bugfix has medium priority, and we recommend that you
apply it soon if you are computing with AgGroups.

Go to the GAP directory (the directory with the 'lib/' subdirectory),
name this mail 'bugfix05.dif', and issue the command:

patch -p0 < bugfix05.dif

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

VERSION

GAP 3.4.3.0

DESCRIPTION

'Intersection' may fail for subgroups of AgGroups and signal

Error, sorry, the elements of <arg> lie in no common ring domain in
Domain( [ obj ] ) called from
Base( V ) called from
U.operations.AffineOperation( U, V, phi, tau ) called from
AffineOperation( A, base, phi, tau ) called from
GlasbyStabilizer( G, A, B, N, R ) called from
...

CORRECT BEHAVIOUR

gap> F := FreeGroup( 7 );;
gap> G := AgGroupFpGroup( F / [
>        F.1^3, F.2^3, F.3^2/F.5, F.4^2/F.5, F.5^2, F.6^7, F.7^7,
>        Comm(F.3,F.1)/(F.3*F.4*F.5), Comm(F.4,F.1)/(F.3),
>        Comm(F.6,F.1)/(F.6^3),       Comm(F.7,F.1)/F.7,
>        Comm(F.3,F.2)/(F.4*F.5),     Comm(F.4,F.2)/(F.3*F.4),
>        Comm(F.6,F.2)/(F.6^3),       Comm(F.4,F.3)/(F.5),
>        Comm(F.6,F.3)/(F.6^3*F.7^4), Comm(F.7,F.3)/(F.6*F.7^2),
>        Comm(F.6,F.4)/(F.6^3*F.7^2), Comm(F.7,F.4)/(F.6^2*F.7^2),
>        Comm(F.6,F.5)/F.6^5,         Comm(F.7,F.5)/F.7^5 ] );;
gap> U := Subgroup( G, [ G.1^2*G.2*G.3*G.5*G.6^4*G.7^4,
>                        G.1^2*G.2^2*G.6*G.7^6 ] );;
gap> V := Subgroup( G, [ G.1*G.2^2*G.4*G.5*G.6^5*G.7^5,
>                        G.1^2*G.2^2*G.3*G.6^5*G.7^6 ] );;
gap> Intersection( U, V );
Subgroup( Group( f.1, f.2, f.3, f.4, f.5, f.6, f.7 ),
[ f.2*f.3*f.4*f.5*f.6^5*f.7^6 ] )

COMMENT

'AffineOperation' did not accept a list of base vectors,
as called indirectly from 'AgGroupOps.Intersection'
via 'GlasbyIntersection' and 'GlasbyStabilizer'.

PATCH

Prereq: 3.30.1.2
--- lib/agsubgrp.g      1995/12/05 15:10:40
+++ lib/agsubgrp.g      1996/02/08 12:07:06
@@ -2,7 +2,7 @@
 ##
 #A  agsubgrp.g                  GAP library                      Frank Celler
 ##
-#A  @(#)$Id: 1.html,v 1.2 2004/04/21 15:06:18 felsch Exp $
+#A  @(#)$Id: 1.html,v 1.2 2004/04/21 15:06:18 felsch Exp $
 ##
 #Y  Copyright 1990-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
 ##
@@ -11,6 +11,10 @@
 ##  aggroups and all functions for orbit-stabilizer calculation.
 ##
 #H  $Log: 1.html,v $
 #H  Revision 1.2  2004/04/21 15:06:18  felsch
 #H  Corrected links in the Forum Archive pages.   VF
 #H
 #H  Revision 1.1.1.1  2004/04/20 13:39:30  felsch
 #H  The final GAP-Forum archive until 2003.
 #H
 #H  Revision 1.5  2003/06/12 19:20:33  gap
 #H  Further update. AH
 #H
 #H  Revision 1.4  2003/06/12 17:28:25  gap
 #H  Address updates by JN. AH
 #H
 #H  Revision 1.3  1997/08/15 11:19:33  gap
 #H  New forum setup. AH
 #H
 #H  Revision 1.2  1997/04/24 15:32:47  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:04  gap
 #H  added forum archive and translation files.
 #H
+#H  Revision 3.30.1.3  1996/02/08  12:07:06  sam
+#H  fixed change in 'AffineOperation' (somehow this was lost here,
+#H  and since it was not lost in 'aginters.g' this caused errors)
+#H
 #H  Revision 3.30.1.2  1995/12/05  15:10:40  mschoene
 #H  replaced 'Filtered( <list>, IsBound )' by 'Compacted( <list> )'
 #H
@@ -1388,10 +1392,10 @@

 #############################################################################
 ##
-#F  AffineOperationp( <G>, <V>, <phi>, <tau> )  . . . . . . . . . . affine op
+#F  AffineOperation( <G>, <vectors>, <phi>, <tau> ) . . . . . . . . affine op
 ##
-AgGroupOps.AffineOperation := function( U, V, phi, tau )
-    local   i,  v,  m,  l,  one,  zero,  mats,  M,  B;
+AgGroupOps.AffineOperation := function( U, vectors, phi, tau )
+    local   i,  v,  m,  l,  one,  zero,  mats,  M;

     # Catch trivial cases.
     U := Igs( U );
@@ -1399,15 +1403,20 @@
         return rec( images := [] );
     fi;

-    B := Base( V );
-    if B = []  then
-        mats := List( U, x -> [ [ V.field.one ] ]);
+    if IsRec( vectors ) then
+#T The manual allows this.
+#T Of course it should be changed, the basis not the space should be
+#T the argument ...
+      vectors:= Base( vectors );
+    fi;
+    one := tau( U[ 1 ] )[ 1 ] ^ 0;
+    if Length( vectors ) = 0 then
+        mats := List( U, x -> [ [ one ] ]);
     else
-       one  := tau( U[ 1 ] )[ 1 ] ^ 0;
        zero := 0 * one;

        # First the linear operation.
-       mats := List( U, x -> List( B, y -> phi( y, x ) ) );
+       mats := List( U, x -> List( vectors, y -> phi( y, x ) ) );
        for m  in mats  do
             for l  in m  do
                Add( l, zero );
END OF  bugfix05.dif ________________________________________________________

> < [top]