> < ^ Date: Wed, 18 Sep 1996 11:39:00 +0100 (MET)
> < ^ From: Thomas Breuer <Thomas.Breuer@Math.RWTH-Aachen.DE >
^ Subject: FIX 23 for DANGEROUS BUG in GAP 3.4.3.0 'IsSubset'

This mail contains a bugfix for a dangerous problem in GAP 3.4.3.
*You should apply this bugfix as soon as possible*.
The problem is in 'FieldOps.IsSubset', and causes it to produce
wrong results in some cases.

ACKNOWLEDGEMENT

We thank Richard Rossmanith (University of Jena) for bringing this
problem to our attention in a message to 'GAP-Trouble' of 1996/09/13.

VERSION

GAP/lib 3.4.3.0

PRIORITY

The problem is a *dangerous* problem, because it may cause
a computation to produce incorrect results without a warning.
Thus the bugfix has *high priority*, and we recommend that
you apply it as soon as possible.

HOW TO APPLY

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

patch -p0 < fix23lib.dif

If 'patch' writes "I can't seem to find a patch in there" try 'patch -v'.
If 'patch -v' gives an error message or reports a version older than 2.1,
get 2.1 from 'ftp://FTP.Math.RWTH-Aachen.DE/pub/gap/utils/patch2_1.zoo'.

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

DESCRIPTION

When 'IsSubset' is called with two arguments, one of them a field
and the other not a field, the result is correct only if the two
arguments are equal.

gap> IsSubset( GF(2), [ One(GF(2)) ] );
false

CORRECT BEHAVIOUR

gap> IsSubset( GF(2), [ Z(2) ] );
true

COMMENT

When 'IsSubset' is called with two arguments, one of them a field
and the other not a field, it delegated to 'DomainOps.\=' instead of
'DomainOps.IsSubset'.

DIFFS

Prereq: 3.16.1.1
--- lib/field.g Mon Sep 16 11:11:10 1996
+++ lib/field.g Mon Sep 16 11:34:02 1996
@@ -2,14 +2,17 @@
 ##
 #A  field.g                     GAP library                  Martin Schoenert
 ##
-#A  @(#)$Id: 1.html,v 1.2 2004/04/21 15:03:10 felsch Exp $
+#A  @(#)$Id: 1.html,v 1.2 2004/04/21 15:03:10 felsch Exp $
 ##
 #Y  Copyright 1990-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
 ##
 ##  This file contains  those  functions  that  are  dispatcher  for  fields.
 ##
 #H  $Log: 1.html,v $
 #H  Revision 1.2  2004/04/21 15:03:10  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.4  2003/06/12 19:20:34  gap
 #H  Further update. AH
 #H
 #H  Revision 1.3  1997/08/15 11:19:38  gap
 #H  New forum setup. AH
 #H
 #H  Revision 1.2  1997/04/24 15:33:16  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:07  gap
 #H  added forum archive and translation files.
 #H
-#H  Revision 3.16.1.1  1995/08/03  09:37:06  ahulpke
+#H  Revision 3.16.1.2  1996/09/16 09:33:35  sam
+#H  fixed bug in 'FieldOps.IsSubset' (delegated to 'DomainOps.\=')
+#H
+#H  Revision 3.16.1.1  1995/08/03 09:37:06  ahulpke
 #H  changed 'Copy(coeffs)' to 'ShallowCopy(coeffs)'
 #H
 #H  Revision 3.16  1994/05/06  12:42:09  sam
@@ -135,16 +138,16 @@
         elif IsField( G )  then
             isSub := false;
        else
-            isSub := DomainOps.\=( F, G );
+            isSub := DomainOps.IsSubset( F, G );
         fi;
     elif IsField( F )  then
         if IsField( G )  then
             isSub := ForAll( G.generators, g -> g in F );
        else
-            isSub := DomainOps.\=( F, G );
+            isSub := DomainOps.IsSubset( F, G );
         fi;
     else
-        isSub := DomainOps.\=( F, G );
+        isSub := DomainOps.IsSubset( F, G );
     fi;
     return isSub;
 end;
END OF  fix23lib.dif ________________________________________________________

> < [top]