#I  file="lib/read3.g"

#F  file="lib/tuples.gd" crc=-65870067
RANK_FILTER_LIST  := [ 41942756, 4, 1, 0, 1, 0, 33555215, 7, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/tuples.gd", -65870067 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/tuples.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/tuples.gd");
elif COM_RESULT = 3  then
Revision.tuples_gd:="@(#)$Id: tuples.gd,v 4.18 2002/04/15 10:05:25 sal Exp $";
DeclareCategory("IsTuple",IsDenseList and IsCopyable and IsMultiplicativeElementWithInverse and IsAdditiveElementWithInverse);
DeclareCategoryFamily("IsTuple");
DeclareCategoryCollections("IsTuple");
DeclareOperation("TuplesFamily",[IsCollection]);
DeclareAttribute("ComponentsOfTuplesFamily",IsTupleFamily);
DeclareGlobalVariable("TUPLES_FAMILIES","list, at position i the list of known i+1 component tuples families");
DeclareOperation("Tuple",[IsList]);
DeclareOperation("TupleNC",[IsTupleFamily,IsList]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/tuples.gd"

#F  file="lib/rvecempt.gd" crc=-15249414
RANK_FILTER_LIST  := [ 1985, 1, 1, 0, 1, 0, 558, 4, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/rvecempt.gd", -15249414 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/rvecempt.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/rvecempt.gd");
elif COM_RESULT = 3  then
Revision.rvecempt_gd:="@(#)$Id: rvecempt.gd,v 4.6 2002/04/15 10:05:15 sal Exp $";
DeclareAttribute("EmptyRowVector",IsFamily);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/rvecempt.gd"

#F  file="lib/domain.gd" crc=-53096240
RANK_FILTER_LIST  := [ 8126465, 2, 67108010, 1, 1, 0, 1, 0, 213, 8, 993, 2, 
  1, 0, 8126465, 2, 67108010, 1, 1, 0, 1, 0, 393, 8, 993, 2, 1, 0, 30393586, 
  5, 1, 0, 1, 0, 24073109, 8, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/domain.gd", -53096240 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/domain.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/domain.gd");
elif COM_RESULT = 3  then
Revision.domain_gd:="@(#)$Id: domain.gd,v 4.45 2002/04/15 10:04:38 sal Exp $";
DeclareCategory("IsGeneralizedDomain",IsObject);
DeclareSynonym("IsDomain",IsGeneralizedDomain and IsCollection);
InstallTrueMethod(IsDuplicateFree,IsDomain);
DeclareAttribute("GeneratorsOfDomain",IsDomain);
DeclareGlobalFunction("Domain");
DeclareOperation("DomainByGenerators",[IsFamily,IsList]);
DeclareAttribute("ParentAttr",IsDomain);
DeclareSynonym("SetParent",SetParentAttr);
DeclareSynonym("HasParent",HasParentAttr);
BindGlobal("Parent",COM_FUN(1));
DeclareCategory("IsDomainEnumerator",IsList and IsDuplicateFreeList);
DeclareAttribute("UnderlyingCollection",IsDomainEnumerator);
BindGlobal("InstallAccessToGenerators",COM_FUN(2));
BindGlobal("InParentFOA",COM_FUN(3));
BindGlobal("RepresentativeFromGenerators",COM_FUN(4));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/domain.gd"

#F  file="lib/extaset.gd" crc=-85718927
RANK_FILTER_LIST  := [ 11431099, 9, 1, 0, 1, 0, 8589453, 12, 993, 2, 1, 0, 
  11431099, 9, 1, 0, 1, 0, 17177913, 12, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/extaset.gd", -85718927 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/extaset.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/extaset.gd");
elif COM_RESULT = 3  then
Revision.extaset_gd:="@(#)$Id: extaset.gd,v 4.9 2002/04/15 10:04:39 sal Exp $";
DeclareCategory("IsExtASet",IsDomain and IsAdditiveElement);
DeclareCategory("IsAssociativeAOpDSum",IsExtASet);
DeclareCategory("IsAssociativeAOpESum",IsExtASet);
DeclareCategory("IsTrivialAOpEZero",IsExtASet);
DeclareAttribute("GeneratorsOfExtASet",IsExtASet);
DeclareAttribute("AdditivelyActingDomain",IsExtASet);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/extaset.gd"

#F  file="lib/extlset.gd" crc=-95307715
RANK_FILTER_LIST  := [ 34353841, 6, 6643623, 7, 1, 0, 1, 0, 26575481, 10, 
  993, 2, 1, 0, 34353841, 6, 1, 0, 1, 0, 39191026, 9, 993, 2, 1, 0, 34353841, 
  6, 1, 0, 1, 0, 11273140, 9, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/extlset.gd", -95307715 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/extlset.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/extlset.gd");
elif COM_RESULT = 3  then
Revision.extlset_gd:="@(#)$Id: extlset.gd,v 4.10 2002/04/15 10:04:39 sal Exp $";
DeclareCategory("IsExtLSet",IsDomain);
DeclareCategory("IsAssociativeLOpDProd",IsExtLSet);
DeclareCategory("IsAssociativeLOpEProd",IsExtLSet);
DeclareCategory("IsDistributiveLOpDProd",IsExtLSet);
DeclareCategory("IsDistributiveLOpDSum",IsExtLSet);
DeclareCategory("IsDistributiveLOpEProd",IsExtLSet);
DeclareCategory("IsDistributiveLOpESum",IsExtLSet);
DeclareCategory("IsTrivialLOpEOne",IsExtLSet);
DeclareCategory("IsTrivialLOpEZero",IsExtLSet);
DeclareCategory("IsLeftActedOnByRing",IsExtLSet);
DeclareProperty("IsLeftActedOnByDivisionRing",IsExtLSet and IsLeftActedOnByRing);
DeclareCategory("IsLeftActedOnBySuperset",IsExtLSet);
DeclareAttribute("GeneratorsOfExtLSet",IsExtLSet);
DeclareAttribute("LeftActingDomain",IsExtLSet);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/extlset.gd"

#F  file="lib/extrset.gd" crc=-121234901
RANK_FILTER_LIST  := [ 22544295, 6, 1, 0, 1, 0, 40432098, 9, 993, 2, 1, 0, 
  22544295, 6, 1, 0, 1, 0, 16449123, 9, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/extrset.gd", -121234901 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/extrset.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/extrset.gd");
elif COM_RESULT = 3  then
Revision.extrset_gd:="@(#)$Id: extrset.gd,v 4.7 2002/04/15 10:04:39 sal Exp $";
DeclareCategory("IsExtRSet",IsDomain);
DeclareCategory("IsAssociativeROpDProd",IsExtRSet);
DeclareCategory("IsAssociativeROpEProd",IsExtRSet);
DeclareCategory("IsDistributiveROpDProd",IsExtRSet);
DeclareCategory("IsDistributiveROpDSum",IsExtRSet);
DeclareCategory("IsDistributiveROpEProd",IsExtRSet);
DeclareCategory("IsDistributiveROpESum",IsExtRSet);
DeclareCategory("IsTrivialROpEOne",IsExtRSet);
DeclareCategory("IsTrivialROpEZero",IsExtRSet);
DeclareCategory("IsRightActedOnByRing",IsExtRSet);
DeclareCategory("IsRightActedOnByDivisionRing",IsRightActedOnByRing);
DeclareCategory("IsRightActedOnBySuperset",IsExtRSet);
DeclareAttribute("GeneratorsOfExtRSet",IsExtRSet);
DeclareAttribute("RightActingDomain",IsExtRSet);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/extrset.gd"

#F  file="lib/extuset.gd" crc=18301515
RANK_FILTER_LIST  := [ 66012252, 6, 1, 0, 1, 0, 35838495, 9, 993, 2, 1, 0, 
  22544295, 6, 1, 0, 1, 0, 4567118, 9, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/extuset.gd", 18301515 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/extuset.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/extuset.gd");
elif COM_RESULT = 3  then
Revision.extuset_gd:="@(#)$Id: extuset.gd,v 4.6 2002/04/15 10:04:39 sal Exp $";
DeclareCategory("IsExtUSet",IsDomain);
DeclareCategory("IsAssociativeUOpDProd",IsExtUSet);
DeclareCategory("IsAssociativeUOpEProd",IsExtUSet);
DeclareCategory("IsDistributiveUOpDProd",IsExtUSet);
DeclareCategory("IsDistributiveUOpDSum",IsExtUSet);
DeclareCategory("IsDistributiveUOpEProd",IsExtUSet);
DeclareCategory("IsDistributiveUOpESum",IsExtUSet);
DeclareCategory("IsTrivialUOpEOne",IsExtUSet);
DeclareCategory("IsTrivialUOpEZero",IsExtUSet);
DeclareCategory("IsUpperActedOnByGroup",IsExtUSet);
DeclareCategory("IsUpperActedOnBySuperset",IsExtUSet);
DeclareAttribute("GeneratorsOfExtUSet",IsExtUSet);
DeclareAttribute("UpperActingDomain",IsExtRSet);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/extuset.gd"

#F  file="lib/dict.gd" crc=-104660496
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/dict.gd", -104660496 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/dict.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/dict.gd");
elif COM_RESULT = 3  then
Revision.dict_gd:="@(#)$Id: dict.gd,v 4.10 2002/04/15 10:04:38 sal Exp $";
DeclareInfoClass("InfoHash");
DeclareOperation("PositionFirstComponent",[IsList,IsObject]);
DeclareCategory("IsDictionary",IsCollection);
DeclareCategory("IsLookupDictionary",IsDictionary);
DeclareCategory("IsHash",IsLookupDictionary);
DeclareGlobalFunction("NewDictionary");
DeclareGlobalFunction("DictionaryByPosition");
BindGlobal("DictionariesFamily",NewFamily("DictionariesFamily",IsDictionary));
DeclareOperation("KnowsDictionary",[IsDictionary,IsObject]);
DeclareOperation("AddDictionary",[IsDictionary,IsObject]);
DeclareOperation("LookupDictionary",[IsDictionary,IsObject]);
IsDictionaryDefaultRep:=NewRepresentation("IsDictionaryDefaultRep",IsDictionary and IsComponentObjectRep,[]);
IsListDictionary:=NewRepresentation("IsListDictionary",IsDictionaryDefaultRep,["entries"]);
IsListLookupDictionary:=NewRepresentation("IsListLookupDictionary",IsListDictionary and IsLookupDictionary,["entries"]);
IsSortDictionary:=NewRepresentation("IsSortDictionary",IsListDictionary,["entries"]);
IsSortLookupDictionary:=NewRepresentation("IsSortLookupDictionary",IsSortDictionary and IsListLookupDictionary and IsLookupDictionary,["entries"]);
IsPositionDictionary:=NewRepresentation("IsPositionDictionary",IsDictionaryDefaultRep,["domain","blist"]);
IsPositionLookupDictionary:=NewRepresentation("IsPositionDictionary",IsPositionDictionary and IsLookupDictionary,["domain","blist","vals"]);
DeclareOperation("PrintHashWithNames",[IsHash,IsString,IsString]);
DeclareOperation("GetHashEntry",[IsHash,IsObject]);
DeclareOperation("AddHashEntry",[IsHash,IsObject,IsObject]);
DeclareOperation("RandomHashKey",[IsHash]);
DeclareOperation("HashKeyEnumerator",[IsHash]);
DeclareFilter("TableHasIntKeyFun");
DeclareRepresentation("IsDenseHashRep",IsComponentObjectRep and IsHash,["KeyArray","ValueArray"]);
DeclareGlobalFunction("DenseHashTable",[]);
DeclareRepresentation("IsSparseHashRep",IsComponentObjectRep and IsHash,["KeyArray","ValueArray","HashFunct","LengthArray","LengthArrayHalf","NumberKeys"]);
BindGlobal("DefaultSparseHashRepType",NewType(DictionariesFamily,IsSparseHashRep));
BindGlobal("DefaultSparseHashWithIKRepType",NewType(DictionariesFamily,IsSparseHashRep and TableHasIntKeyFun));
DeclareGlobalFunction("SparseHashTable",[]);
DeclareGlobalFunction("GetHashEntryIndex",[IsSparseHashRep,IsObject]);
DeclareGlobalFunction("DoubleHashArraySize",[IsSparseHashRep]);
DeclareGlobalFunction("DoubleHashDictSize");
DeclareGlobalFunction("HashFunct",[IsInt,IsInt,IsInt]);
DeclareOperation("DenseIntKey",[IsObject,IsObject]);
DeclareOperation("SparseIntKey",[IsObject,IsObject]);
DeclareOperation("GetHashEntryAtLastIndex",[IsHash]);
DeclareOperation("SetHashEntryAtLastIndex",[IsHash,IsObject]);
DeclareOperation("SetHashEntry",[IsHash,IsObject,IsObject]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/dict.gd"

#F  file="lib/mapping.gd" crc=-64504664
RANK_FILTER_LIST  := [ 45410419, 2, 1, 0, 1, 0, 40163735, 5, 993, 2, 1, 0, 
  45410419, 2, 1, 0, 1, 0, 33114404, 5, 993, 2, 1, 0, 1985, 1, 1, 0, 1, 0, 
  66227815, 4, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 63581644, 10, 993, 2, 
  1, 0, 67108475, 7, 1, 0, 1, 0, 52996960, 10, 993, 2, 1, 0, 67108475, 7, 1, 
  0, 1, 0, 10658224, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 42632797, 10, 
  993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 36313331, 10, 993, 2, 1, 0, 
  67108475, 7, 1, 0, 1, 0, 11035467, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 
  0, 22069941, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 44138889, 10, 993, 
  2, 1, 0, 67108475, 7, 1, 0, 1, 0, 21168866, 10, 993, 2, 1, 0, 8126465, 2, 
  1, 0, 1, 0, 42336739, 5, 993, 2, 1, 0, 8126465, 2, 1, 0, 1, 0, 17564566, 5, 
  993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 35128139, 10, 993, 2, 1, 0, 
  67108475, 7, 1, 0, 1, 0, 3146406, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 
  0, 6291819, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 25166217, 10, 993, 
  2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/mapping.gd", -64504664 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/mapping.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/mapping.gd");
elif COM_RESULT = 3  then
Revision.mapping_gd:="@(#)$Id: mapping.gd,v 4.53 2002/04/15 10:04:56 sal Exp $";
DeclareCategory("IsGeneralMapping",IsMultiplicativeElementWithInverse and IsAssociativeElement);
DeclareCategory("IsSPGeneralMapping",IsGeneralMapping);
DeclareCategory("IsNonSPGeneralMapping",IsGeneralMapping);
DeclareCategoryCollections("IsGeneralMapping");
DeclareCategoryFamily("IsGeneralMapping");
DeclareAttribute("FamilyRange",IsGeneralMappingFamily);
DeclareAttribute("FamilySource",IsGeneralMappingFamily);
DeclareAttribute("FamiliesOfGeneralMappingsAndRanges",IsFamily,"mutable");
DeclareProperty("IsConstantTimeAccessGeneralMapping",IsGeneralMapping);
DeclareProperty("IsEndoGeneralMapping",IsGeneralMapping);
DeclareProperty("IsTotal",IsGeneralMapping);
DeclareProperty("IsSingleValued",IsGeneralMapping);
DeclareSynonymAttr("IsMapping",IsGeneralMapping and IsTotal and IsSingleValued);
DeclareSynonymAttr("IsEndoMapping",IsMapping and IsEndoGeneralMapping);
DeclareProperty("IsInjective",IsGeneralMapping);
DeclareProperty("IsSurjective",IsGeneralMapping);
DeclareSynonymAttr("IsBijective",IsSingleValued and IsTotal and IsInjective and IsSurjective);
DeclareAttribute("Range",IsGeneralMapping);
DeclareAttribute("Source",IsGeneralMapping);
DeclareAttribute("UnderlyingRelation",IsGeneralMapping);
DeclareAttribute("UnderlyingGeneralMapping",IsCollection);
DeclareGlobalFunction("GeneralMappingsFamily");
DeclareGlobalFunction("TypeOfDefaultGeneralMapping");
DeclareAttribute("IdentityMapping",IsCollection);
DeclareAttribute("InverseGeneralMapping",IsGeneralMapping);
DeclareAttribute("ImagesSource",IsGeneralMapping);
DeclareAttribute("PreImagesRange",IsGeneralMapping);
DeclareOperation("ImagesElm",[IsGeneralMapping,IsObject]);
DeclareOperation("ImagesRepresentative",[IsGeneralMapping,IsObject]);
DeclareOperation("ImagesSet",[IsGeneralMapping,IsCollection]);
DeclareOperation("ImageElm",[IsMapping,IsObject]);
DeclareGlobalFunction("Image");
DeclareGlobalFunction("Images");
DeclareOperation("PreImagesElm",[IsGeneralMapping,IsObject]);
DeclareOperation("PreImageElm",[IsGeneralMapping and IsInjective and IsSurjective,IsObject]);
DeclareOperation("PreImagesRepresentative",[IsGeneralMapping,IsObject]);
DeclareOperation("PreImagesSet",[IsGeneralMapping,IsCollection]);
DeclareGlobalFunction("PreImage");
DeclareGlobalFunction("PreImages");
DeclareOperation("CompositionMapping2",[IsGeneralMapping,IsGeneralMapping]);
DeclareGlobalFunction("CompositionMapping");
DeclareRepresentation("IsCompositionMappingRep",IsGeneralMapping and IsAttributeStoringRep,["map1","map2"]);
DeclareGlobalFunction("ConstituentsCompositionMapping");
DeclareOperation("ZeroMapping",[IsCollection,IsCollection]);
DeclareOperation("RestrictedMapping",[IsGeneralMapping,IsDomain]);
DeclareOperation("Embedding",[IsDomain,IsObject]);
DeclareOperation("Projection",[IsDomain,IsObject]);
DeclareGlobalFunction("GeneralMappingByElements");
DeclareGlobalFunction("MappingByFunction");
InstallTrueMethod(IsBijective,IsGeneralMapping and IsOne);
InstallTrueMethod(IsSingleValued,IsGeneralMapping and IsZero);
InstallTrueMethod(IsTotal,IsGeneralMapping and IsZero);
DeclareGlobalFunction("CopyMappingAttributes");
DeclareAttribute("MappingGeneratorsImages",IsGeneralMapping);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/mapping.gd"

#F  file="lib/mapphomo.gd" crc=78691481
RANK_FILTER_LIST  := [ 67108475, 7, 1, 0, 1, 0, 33554930, 10, 993, 2, 1, 0, 
  67108475, 7, 1, 0, 1, 0, 40169855, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 
  0, 12753541, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 65676001, 10, 993, 
  2, 1, 0, 67108475, 7, 1, 0, 1, 0, 37303163, 10, 993, 2, 1, 0, 67108475, 7, 
  1, 0, 1, 0, 39766105, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 24843683, 
  10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 32262874, 10, 993, 2, 1, 0, 
  67108475, 7, 1, 0, 1, 0, 64524755, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 
  0, 61939638, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 46430856, 10, 993, 
  2, 1, 0, 67108475, 7, 1, 0, 1, 0, 51503647, 10, 993, 2, 1, 0, 67108475, 7, 
  1, 0, 1, 0, 4685932, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 18743629, 
  10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 7864578, 10, 993, 2, 1, 0, 
  67108475, 7, 1, 0, 1, 0, 31458213, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 
  0, 58720994, 10, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 33555320, 10, 993, 
  2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/mapphomo.gd", 78691481 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/mapphomo.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/mapphomo.gd");
elif COM_RESULT = 3  then
Revision.mapphomo_gd:="@(#)$Id: mapphomo.gd,v 4.23 2002/04/15 10:04:55 sal Exp $";
DeclareProperty("RespectsMultiplication",IsGeneralMapping);
DeclareProperty("RespectsOne",IsGeneralMapping);
DeclareProperty("RespectsInverses",IsGeneralMapping);
InstallTrueMethod(RespectsOne,RespectsMultiplication and RespectsInverses);
DeclareSynonymAttr("IsGroupGeneralMapping",IsGeneralMapping and RespectsMultiplication and RespectsInverses);
DeclareSynonymAttr("IsGroupHomomorphism",IsGroupGeneralMapping and IsMapping);
DeclareAttribute("KernelOfMultiplicativeGeneralMapping",IsGeneralMapping);
DeclareAttribute("CoKernelOfMultiplicativeGeneralMapping",IsGeneralMapping);
DeclareProperty("RespectsAddition",IsGeneralMapping);
DeclareProperty("RespectsZero",IsGeneralMapping);
DeclareProperty("RespectsAdditiveInverses",IsGeneralMapping);
InstallTrueMethod(RespectsZero,RespectsAddition and RespectsAdditiveInverses);
DeclareSynonymAttr("IsAdditiveGroupGeneralMapping",IsGeneralMapping and RespectsAddition and RespectsAdditiveInverses);
DeclareSynonymAttr("IsAdditiveGroupHomomorphism",IsAdditiveGroupGeneralMapping and IsMapping);
DeclareAttribute("KernelOfAdditiveGeneralMapping",IsGeneralMapping);
DeclareAttribute("CoKernelOfAdditiveGeneralMapping",IsGeneralMapping);
DeclareProperty("RespectsScalarMultiplication",IsGeneralMapping);
InstallTrueMethod(RespectsAdditiveInverses,RespectsScalarMultiplication);
DeclareSynonymAttr("IsLeftModuleGeneralMapping",IsAdditiveGroupGeneralMapping and RespectsScalarMultiplication);
DeclareSynonymAttr("IsLeftModuleHomomorphism",IsLeftModuleGeneralMapping and IsMapping);
DeclareOperation("IsLinearMapping",[IsDomain,IsGeneralMapping]);
DeclareSynonymAttr("IsRingGeneralMapping",IsGeneralMapping and RespectsMultiplication and IsAdditiveGroupGeneralMapping);
DeclareSynonymAttr("IsRingHomomorphism",IsRingGeneralMapping and IsMapping);
DeclareSynonymAttr("IsRingWithOneGeneralMapping",IsRingGeneralMapping and RespectsOne);
DeclareSynonymAttr("IsRingWithOneHomomorphism",IsRingWithOneGeneralMapping and IsMapping);
DeclareSynonymAttr("IsAlgebraGeneralMapping",IsRingGeneralMapping and IsLeftModuleGeneralMapping);
DeclareSynonymAttr("IsAlgebraHomomorphism",IsAlgebraGeneralMapping and IsMapping);
DeclareSynonymAttr("IsAlgebraWithOneGeneralMapping",IsAlgebraGeneralMapping and RespectsOne);
DeclareSynonymAttr("IsAlgebraWithOneHomomorphism",IsAlgebraWithOneGeneralMapping and IsMapping);
DeclareProperty("IsFieldHomomorphism",IsGeneralMapping);
InstallTrueMethod(IsAlgebraHomomorphism,IsFieldHomomorphism);
InstallEqMethodForMappingsFromGenerators:=COM_FUN(1);
DeclareProperty("TransformsMultiplicationIntoAddition",IsGeneralMapping);
DeclareProperty("TranformsOneIntoZero",IsGeneralMapping);
DeclareProperty("TransformsInversesIntoAdditiveInverses",IsGeneralMapping);
InstallTrueMethod(TranformsOneIntoZero,TransformsMultiplicationIntoAddition and TransformsInversesIntoAdditiveInverses);
DeclareSynonymAttr("IsGroupToAdditiveGroupGeneralMapping",IsGeneralMapping and TransformsMultiplicationIntoAddition and TransformsInversesIntoAdditiveInverses);
DeclareSynonymAttr("IsGroupToAdditiveGroupHomomorphism",IsGroupToAdditiveGroupGeneralMapping and IsMapping);
DeclareProperty("TransformsAdditionIntoMultiplication",IsGeneralMapping);
DeclareProperty("TransformsZeroIntoOne",IsGeneralMapping);
DeclareProperty("TransformsAdditiveInversesIntoInverses",IsGeneralMapping);
InstallTrueMethod(TransformsAdditiveInversesIntoInverses,TransformsAdditionIntoMultiplication and TransformsAdditiveInversesIntoInverses);
DeclareSynonymAttr("IsAdditiveGroupToGroupGeneralMapping",IsGeneralMapping and TransformsAdditionIntoMultiplication and TransformsAdditiveInversesIntoInverses);
DeclareSynonymAttr("IsAdditiveGroupToGroupHomomorphism",IsAdditiveGroupToGroupGeneralMapping and IsMapping);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/mapphomo.gd"

#F  file="lib/relation.gd" crc=46582272
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 1, 0, 768, 12, 993, 2, 1, 0, 1, 0, 1, 0, 
  1, 0, 543, 12, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 37306148, 12, 993, 2, 1, 0, 
  1, 0, 1, 0, 1, 0, 59815841, 12, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 15634935, 
  12, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 24759643, 12, 993, 2, 1, 0, 1, 0, 1, 0, 
  1, 0, 31926714, 12, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 60594998, 12, 993, 2, 
  1, 0, 1, 0, 1, 0, 1, 0, 41050376, 12, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 
  29981727, 12, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 52816010, 12, 993, 2, 1, 0, 
  1, 0, 1, 0, 1, 0, 38523108, 12, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 9937304, 
  24, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 19874575, 24, 993, 2, 1, 0, 39747165, 
  6, 1, 0, 1, 0, 12386442, 9, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 24772851, 24, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/relation.gd", 46582272 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/relation.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/relation.gd");
elif COM_RESULT = 3  then
Revision.relation_gd:="@(#)$Id: relation.gd,v 4.35 2002/04/15 10:05:14 sal Exp $";
DeclareSynonym("IsBinaryRelation",IsEndoGeneralMapping);
DeclareGlobalFunction("BinaryRelationOnPoints");
DeclareGlobalFunction("BinaryRelationOnPointsNC");
DeclareGlobalFunction("RandomBinaryRelationOnPoints");
DeclareGlobalFunction("IdentityBinaryRelation");
DeclareGlobalFunction("BinaryRelationByElements");
DeclareGlobalFunction("EmptyBinaryRelation");
DeclareGlobalFunction("AsBinaryRelationOnPoints");
DeclareAttribute("Successors",IsBinaryRelation);
DeclareAttribute("DegreeOfBinaryRelation",IsBinaryRelation);
DeclareSynonym("UnderlyingDomainOfBinaryRelation",Source);
DeclareProperty("IsReflexiveBinaryRelation",IsBinaryRelation);
DeclareProperty("IsSymmetricBinaryRelation",IsBinaryRelation);
DeclareProperty("IsTransitiveBinaryRelation",IsBinaryRelation);
DeclareProperty("IsAntisymmetricBinaryRelation",IsBinaryRelation);
DeclareProperty("IsPreOrderBinaryRelation",IsBinaryRelation);
DeclareProperty("IsPartialOrderBinaryRelation",IsBinaryRelation);
InstallTrueMethod(IsPreOrderBinaryRelation,IsReflexiveBinaryRelation and IsTransitiveBinaryRelation);
InstallTrueMethod(IsPartialOrderBinaryRelation,IsPreOrderBinaryRelation and IsAntisymmetricBinaryRelation);
InstallTrueMethod(IsTotal,IsReflexiveBinaryRelation);
DeclareProperty("IsLatticeOrderBinaryRelation",IsBinaryRelation);
InstallTrueMethod(IsPartialOrderBinaryRelation,IsLatticeOrderBinaryRelation);
DeclareProperty("IsEquivalenceRelation",IsBinaryRelation);
InstallTrueMethod(IsBinaryRelation,IsEquivalenceRelation);
InstallTrueMethod(IsReflexiveBinaryRelation,IsEquivalenceRelation);
InstallTrueMethod(IsTransitiveBinaryRelation,IsEquivalenceRelation);
InstallTrueMethod(IsSymmetricBinaryRelation,IsEquivalenceRelation);
InstallTrueMethod(IsEquivalenceRelation,IsReflexiveBinaryRelation and IsTransitiveBinaryRelation and IsSymmetricBinaryRelation);
DeclareOperation("ReflexiveClosureBinaryRelation",[IsBinaryRelation]);
DeclareOperation("SymmetricClosureBinaryRelation",[IsBinaryRelation]);
DeclareOperation("TransitiveClosureBinaryRelation",[IsBinaryRelation]);
DeclareOperation("HasseDiagramBinaryRelation",[IsBinaryRelation]);
DeclareProperty("IsHasseDiagram",IsBinaryRelation);
DeclareAttribute("PartialOrderOfHasseDiagram",IsBinaryRelation);
DeclareGlobalFunction("PartialOrderByOrderingFunction");
DeclareOperation("StronglyConnectedComponents",[IsBinaryRelation]);
DeclareOperation("POW",[IsListOrCollection,IsBinaryRelation]);
DeclareOperation("+",[IsBinaryRelation,IsBinaryRelation]);
DeclareOperation("-",[IsBinaryRelation,IsBinaryRelation]);
DeclareAttribute("EquivalenceRelationPartition",IsEquivalenceRelation);
DeclareAttribute("GeneratorsOfEquivalenceRelationPartition",IsEquivalenceRelation);
DeclareGlobalFunction("EquivalenceRelationByPartition");
DeclareGlobalFunction("EquivalenceRelationByPartitionNC");
DeclareGlobalFunction("EquivalenceRelationByProperty");
DeclareGlobalFunction("EquivalenceRelationByRelation");
DeclareOperation("JoinEquivalenceRelations",[IsEquivalenceRelation,IsEquivalenceRelation]);
DeclareOperation("MeetEquivalenceRelations",[IsEquivalenceRelation,IsEquivalenceRelation]);
DeclareCategory("IsEquivalenceClass",IsDomain and IsDuplicateFreeCollection);
DeclareAttribute("EquivalenceClassRelation",IsEquivalenceClass);
DeclareAttribute("EquivalenceClasses",IsEquivalenceRelation);
DeclareOperation("EquivalenceClassOfElement",[IsEquivalenceRelation,IsObject]);
DeclareOperation("EquivalenceClassOfElementNC",[IsEquivalenceRelation,IsObject]);
DeclareGlobalFunction("EquivalenceRelationByPairs");
DeclareGlobalFunction("EquivalenceRelationByPairsNC");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/relation.gd"

#F  file="lib/magma.gd" crc=-90340505
RANK_FILTER_LIST  := [ 8126465, 2, 1, 0, 1, 0, 54526780, 5, 993, 2, 1, 0, 
  49544677, 11, 1, 0, 1, 0, 41943688, 14, 993, 2, 1, 0, 31981434, 13, 1, 0, 
  1, 0, 16777504, 16, 993, 2, 1, 0, 60816854, 16, 1, 0, 1, 0, 33554975, 19, 
  993, 2, 1, 0, 4063233, 1, 1, 0, 1, 0, 15636840, 4, 993, 2, 1, 0, 31981434, 
  13, 1, 0, 1, 0, 46910364, 16, 993, 2, 1, 0, 49544677, 11, 1, 0, 1, 0, 
  33224871, 14, 993, 2, 1, 0, 49544677, 11, 1, 0, 1, 0, 48215673, 14, 993, 2, 
  1, 0, 49544677, 11, 1, 0, 1, 0, 29321474, 14, 993, 2, 1, 0, 49544677, 11, 
  1, 0, 1, 0, 58641955, 14, 993, 2, 1, 0, 49544677, 11, 1, 0, 1, 0, 50174038, 
  14, 993, 2, 1, 0, 1, 0, 1, 0, 33238204, 3, 993, 2, 1, 0, 49544677, 11, 1, 
  0, 67108280, 6, 1985, 1, 1, 0, 1, 0, 66475415, 4, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/magma.gd", -90340505 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/magma.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/magma.gd");
elif COM_RESULT = 3  then
Revision.magma_gd:="@(#)$Id: magma.gd,v 4.49 2002/04/15 10:04:55 sal Exp $";
DeclareCategory("IsMagma",IsDomain and IsMultiplicativeElementCollection);
DeclareCategory("IsMagmaWithOne",IsMagma and IsMultiplicativeElementWithOneCollection);
DeclareCategory("IsMagmaWithInversesIfNonzero",IsMagmaWithOne and IsMultiplicativeElementWithOneCollection);
DeclareCategory("IsMagmaWithInverses",IsMagmaWithInversesIfNonzero and IsMultiplicativeElementWithInverseCollection);
InstallTrueMethod(IsMagmaWithInverses,IsFiniteOrderElementCollection and IsMagma);
InstallTrueMethod(IsMagmaWithInverses,IsMagmaWithOne and IsTrivial);
DeclareAttribute("One",IsDomain and IsMultiplicativeElementWithOneCollection);
DeclareGlobalFunction("Magma");
DeclareGlobalFunction("MagmaWithOne");
DeclareGlobalFunction("MagmaWithInverses");
DeclareOperation("MagmaByGenerators",[IsCollection]);
DeclareOperation("MagmaWithOneByGenerators",[IsCollection]);
DeclareOperation("MagmaWithInversesByGenerators",[IsCollection]);
DeclareGlobalFunction("Submagma");
DeclareGlobalFunction("SubmagmaNC");
DeclareGlobalFunction("SubmagmaWithOne");
DeclareGlobalFunction("SubmagmaWithOneNC");
DeclareGlobalFunction("SubmagmaWithInverses");
DeclareGlobalFunction("SubmagmaWithInversesNC");
DeclareAttribute("AsMagma",IsCollection);
DeclareOperation("AsSubmagma",[IsDomain,IsCollection]);
DeclareAttribute("GeneratorsOfMagma",IsMagma);
DeclareAttribute("GeneratorsOfMagmaWithOne",IsMagmaWithOne);
DeclareAttribute("GeneratorsOfMagmaWithInverses",IsMagmaWithInverses);
DeclareProperty("IsGeneratorsOfMagmaWithInverses",IsListOrCollection);
DeclareAttribute("TrivialSubmagmaWithOne",IsMagmaWithOne);
DeclareProperty("IsAssociative",IsMagma);
InstallTrueMethod(IsAssociative,IsAssociativeElementCollection and IsMagma);
InstallSubsetMaintenance(IsAssociative,IsMagma and IsAssociative,IsMagma);
InstallFactorMaintenance(IsAssociative,IsMagma and IsAssociative,IsObject,IsMagma);
InstallTrueMethod(IsAssociative,IsMagma and IsTrivial);
DeclareProperty("IsCommutative",IsMagma);
DeclareSynonymAttr("IsAbelian",IsCommutative);
InstallTrueMethod(IsCommutative,IsCommutativeElementCollection and IsMagma);
InstallSubsetMaintenance(IsCommutative,IsMagma and IsCommutative,IsMagma);
InstallFactorMaintenance(IsCommutative,IsMagma and IsCommutative,IsObject,IsMagma);
InstallTrueMethod(IsCommutative,IsMagma and IsTrivial);
DeclareAttribute("MultiplicativeNeutralElement",IsMagma);
DeclareAttribute("Centre",IsMagma);
DeclareSynonymAttr("Center",Centre);
DeclareAttribute("Idempotents",IsMagma);
DeclareOperation("IsCentral",[IsMagma,IsObject]);
InParentFOA("Centralizer",IsMagma,IsObject,DeclareAttribute);
DeclareOperation("SquareRoots",[IsMagma,IsMultiplicativeElement]);
DeclareGlobalFunction("FreeMagma");
DeclareGlobalFunction("FreeMagmaWithOne");
BindGlobal("IsCommutativeFromGenerators",COM_FUN(1));
BindGlobal("IsCentralFromGenerators",COM_FUN(2));
DeclareAttribute("MagmaGeneratorsOfFamily",IsFamily);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/magma.gd"

#F  file="lib/mgmideal.gd" crc=-537985
RANK_FILTER_LIST  := [ 53148977, 7, 18867674, 7, 49544677, 11, 1, 0, 1, 0, 
  65840958, 18, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/mgmideal.gd", -537985 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/mgmideal.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/mgmideal.gd");
elif COM_RESULT = 3  then
Revision.mgmideal_gd:="@(#)$Id: mgmideal.gd,v 4.3 2002/04/15 10:05:03 sal Exp $";
DeclareSynonym("IsLeftMagmaIdeal",IsMagma and IsLeftActedOnBySuperset);
DeclareGlobalFunction("LeftMagmaIdeal");
DeclareOperation("AsLeftMagmaIdeal",[IsDomain,IsCollection]);
DeclareSynonymAttr("GeneratorsOfLeftMagmaIdeal",GeneratorsOfExtLSet);
DeclareOperation("LeftMagmaIdealByGenerators",[IsMagma,IsCollection]);
DeclareSynonym("IsRightMagmaIdeal",IsMagma and IsRightActedOnBySuperset);
DeclareGlobalFunction("RightMagmaIdeal");
DeclareOperation("AsRightMagmaIdeal",[IsDomain,IsCollection]);
DeclareSynonymAttr("GeneratorsOfRightMagmaIdeal",GeneratorsOfExtRSet);
DeclareOperation("RightMagmaIdealByGenerators",[IsMagma,IsCollection]);
DeclareSynonym("IsMagmaIdeal",IsLeftMagmaIdeal and IsRightMagmaIdeal);
DeclareGlobalFunction("MagmaIdeal");
DeclareOperation("AsMagmaIdeal",[IsDomain,IsCollection]);
DeclareAttribute("GeneratorsOfMagmaIdeal",IsMagmaIdeal);
DeclareOperation("MagmaIdealByGenerators",[IsMagma,IsCollection]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/mgmideal.gd"

#F  file="lib/mgmhom.gd" crc=18906796
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/mgmhom.gd", 18906796 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/mgmhom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/mgmhom.gd");
elif COM_RESULT = 3  then
Revision.mgmhom_gd:="@(#)$Id: mgmhom.gd,v 4.5 2002/04/15 10:05:03 sal Exp $";
DeclareSynonymAttr("IsMagmaHomomorphism",IsMapping and RespectsMultiplication);
DeclareGlobalFunction("MagmaHomomorphismByFunctionNC");
DeclareGlobalFunction("MagmaIsomorphismByFunctionsNC");
DeclareOperation("NaturalHomomorphismByGenerators",[IsMagma,IsMagma]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/mgmhom.gd"

#F  file="lib/mgmadj.gd" crc=80052728
RANK_FILTER_LIST  := [ 64572012, 4, 1, 0, 1, 0, 56963360, 7, 993, 2, 1, 0, 
  49544677, 11, 1, 0, 1, 0, 46817808, 14, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/mgmadj.gd", 80052728 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/mgmadj.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/mgmadj.gd");
elif COM_RESULT = 3  then
Revision.mgmadj_gd:="@(#)$Id: mgmadj.gd,v 4.7 2002/04/15 10:05:03 sal Exp $";
DeclareCategory("IsMultiplicativeElementWithZero",IsMultiplicativeElement);
DeclareCategoryCollections("IsMultiplicativeElementWithZero");
DeclareOperation("MultiplicativeZeroOp",[IsMultiplicativeElementWithZero]);
DeclareAttribute("MultiplicativeZero",IsMultiplicativeElementWithZero);
DeclareOperation("IsMultiplicativeZero",[IsMagma,IsMultiplicativeElement]);
DeclareAttribute("InjectionZeroMagma",IsMagma);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/mgmadj.gd"

#F  file="lib/mgmcong.gd" crc=-85099047
RANK_FILTER_LIST  := [ 26524752, 22, 1, 0, 1, 0, 53051455, 25, 993, 2, 1, 0, 
  26524752, 22, 1, 0, 1, 0, 38993998, 25, 993, 2, 1, 0, 10878092, 22, 1, 0, 
  1, 0, 21758135, 25, 993, 2, 1, 0, 43515245, 26, 1, 0, 1, 0, 19923562, 29, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/mgmcong.gd", -85099047 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/mgmcong.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/mgmcong.gd");
elif COM_RESULT = 3  then
Revision.mgmcong_gd:="@(#)$Id: mgmcong.gd,v 4.8 2002/04/15 10:05:03 sal Exp $";
DeclareCategory("IsLeftMagmaCongruence",IsEquivalenceRelation);
DeclareGlobalFunction("LeftMagmaCongruence");
DeclareAttribute("GeneratingPairsOfLeftMagmaCongruence",IsLeftMagmaCongruence);
DeclareAttribute("PartialClosureOfCongruence",IsLeftMagmaCongruence,"mutable");
DeclareOperation("LeftMagmaCongruenceByGeneratingPairs",[IsMagma,IsList]);
DeclareCategory("IsRightMagmaCongruence",IsEquivalenceRelation);
DeclareGlobalFunction("RightMagmaCongruence");
DeclareAttribute("GeneratingPairsOfRightMagmaCongruence",IsRightMagmaCongruence);
DeclareAttribute("PartialClosureOfCongruence",IsRightMagmaCongruence,"mutable"\
);
DeclareOperation("RightMagmaCongruenceByGeneratingPairs",[IsMagma,IsList]);
DeclareCategory("IsMagmaCongruence",IsEquivalenceRelation and IsLeftMagmaCongruence and IsRightMagmaCongruence and RespectsMultiplication);
DeclareOperation("MagmaCongruenceByGeneratingPairs",[IsMagma,IsList]);
InstallTrueMethod(IsMagmaCongruence,IsEquivalenceRelation and RespectsMultiplication);
InstallTrueMethod(IsMagmaCongruence,IsLeftMagmaCongruence and IsRightMagmaCongruence);
DeclareAttribute("GeneratingPairsOfMagmaCongruence",IsMagmaCongruence);
DeclareAttribute("PartialClosureOfCongruence",IsMagmaCongruence,"mutable");
DeclareCategory("IsCongruenceClass",IsEquivalenceClass and IsMultiplicativeElement);
DeclareOperation("JoinMagmaCongruences",[IsMagmaCongruence,IsMagmaCongruence]);
DeclareOperation("MeetMagmaCongruences",[IsMagmaCongruence,IsMagmaCongruence]);
DeclareGlobalFunction("LR2MagmaCongruenceByGeneratingPairsCAT");
DeclareGlobalFunction("LR2MagmaCongruenceByPartitionNCCAT");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/mgmcong.gd"

#F  file="lib/semicong.gd" crc=-30290731
RANK_FILTER_LIST  := [ 26524752, 22, 1, 0, 1, 0, 25166667, 25, 993, 2, 1, 0, 
  10878092, 22, 1, 0, 1, 0, 33554810, 25, 993, 2, 1, 0, 43515245, 26, 1, 0, 
  1, 0, 423, 29, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 633, 35, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/semicong.gd", -30290731 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/semicong.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/semicong.gd");
elif COM_RESULT = 3  then
Revision.semicong_gd:="@(#)$Id: semicong.gd,v 4.9 2002/04/15 10:05:20 sal Exp $";
DeclareOperation("SemigroupCongruenceByGeneratingPairs",[IsMagma and IsAssociative,IsList]);
DeclareOperation("RightSemigroupCongruenceByGeneratingPairs",[IsMagma and IsAssociative,IsList]);
DeclareOperation("LeftSemigroupCongruenceByGeneratingPairs",[IsMagma and IsAssociative,IsList]);
DeclareSynonym("JoinSemigroupCongruences",JoinMagmaCongruences);
DeclareSynonym("MeetSemigroupCongruences",MeetMagmaCongruences);
DeclareSynonym("GeneratingPairsOfSemigroupCongruence",GeneratingPairsOfMagmaCongruence);
DeclareProperty("IsLeftSemigroupCongruence",IsLeftMagmaCongruence);
DeclareProperty("IsRightSemigroupCongruence",IsRightMagmaCongruence);
DeclareProperty("IsSemigroupCongruence",IsMagmaCongruence);
InstallTrueMethod(IsLeftSemigroupCongruence,IsSemigroupCongruence);
InstallTrueMethod(IsRightSemigroupCongruence,IsSemigroupCongruence);
DeclareProperty("IsReesCongruence",IsSemigroupCongruence);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/semicong.gd"

#F  file="lib/semigrp.gd" crc=118798905
RANK_FILTER_LIST  := [ 8126465, 2, 1, 0, 1, 0, 14978102, 5, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 44932080, 16, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 37733077, 16, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 61644098, 16, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 36520477, 16, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 11861171, 16, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 23721349, 16, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 27773538, 16, 993, 2, 1, 0, 
  49544677, 11, 49544677, 11, 1, 0, 1, 0, 43983254, 16, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/semigrp.gd", 118798905 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/semigrp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/semigrp.gd");
elif COM_RESULT = 3  then
Revision.semigrp_gd:="@(#)$Id: semigrp.gd,v 4.35.2.1 2002/10/14 11:59:51 gap Exp $";
DeclareSynonymAttr("IsSemigroup",IsMagma and IsAssociative);
DeclareGlobalFunction("Semigroup");
DeclareSynonym("Subsemigroup",Submagma);
DeclareSynonym("SubsemigroupNC",SubmagmaNC);
DeclareOperation("SemigroupByGenerators",[IsCollection]);
DeclareAttribute("AsSemigroup",IsCollection);
DeclareOperation("AsSubsemigroup",[IsDomain,IsCollection]);
DeclareSynonymAttr("GeneratorsOfSemigroup",GeneratorsOfMagma);
DeclareAttribute("CayleyGraphSemigroup",IsSemigroup);
DeclareAttribute("CayleyGraphDualSemigroup",IsSemigroup);
DeclareGlobalFunction("FreeSemigroup");
DeclareProperty("IsZeroGroup",IsSemigroup);
DeclareProperty("IsSimpleSemigroup",IsSemigroup);
DeclareProperty("IsZeroSimpleSemigroup",IsSemigroup);
DeclareAttribute("ANonReesCongruenceOfSemigroup",IsSemigroup);
DeclareProperty("IsReesCongruenceSemigroup",IsSemigroup);
DeclareOperation("HomomorphismFactorSemigroup",[IsSemigroup,IsSemigroupCongruence]);
DeclareOperation("HomomorphismFactorSemigroupByClosure",[IsSemigroup,IsList]);
DeclareOperation("FactorSemigroup",[IsSemigroup,IsSemigroupCongruence]);
DeclareOperation("FactorSemigroupByClosure",[IsSemigroup,IsList]);
DeclareOperation("IsRegularSemigroupElement",[IsSemigroup,IsAssociativeElement]);
DeclareProperty("IsRegularSemigroup",IsSemigroup);
DeclareOperation("DisplaySemigroup",[IsSemigroup]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/semigrp.gd"

#F  file="lib/smgideal.gd" crc=70792656
RANK_FILTER_LIST  := [ 53148977, 7, 49544677, 11, 1, 0, 1, 0, 16314686, 16, 
  993, 2, 1, 0, 18867674, 7, 49544677, 11, 1, 0, 1, 0, 65257685, 16, 993, 2, 
  1, 0, 53148977, 7, 18867674, 7, 49544677, 11, 1, 0, 1, 0, 59704004, 18, 
  993, 2, 1, 0, 53148977, 7, 18867674, 7, 49544677, 11, 1, 0, 1, 0, 15728703, 
  18, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/smgideal.gd", 70792656 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/smgideal.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/smgideal.gd");
elif COM_RESULT = 3  then
Revision.smgideal_gd:="@(#)$Id: smgideal.gd,v 4.11 2002/04/15 10:05:22 sal Exp $";
DeclareRepresentation("IsSemigroupIdealEnumRep",IsDomainEnumerator and IsAttributeStoringRep,["currentlist","gens","nextelm","orderedlist"]);
DeclareSynonym("SemigroupIdealByGenerators",MagmaIdealByGenerators);
DeclareProperty("IsLeftSemigroupIdeal",IsLeftMagmaIdeal);
DeclareProperty("IsRightSemigroupIdeal",IsRightMagmaIdeal);
DeclareProperty("IsSemigroupIdeal",IsMagmaIdeal);
DeclareCategory("IsRightSemigroupIdealEnumerator",IsDomainEnumerator);
DeclareCategory("IsLeftSemigroupIdealEnumerator",IsDomainEnumerator);
DeclareCategory("IsSemigroupIdealEnumerator",IsDomainEnumerator);
DeclareAttribute("ReesCongruenceOfSemigroupIdeal",IsMagmaIdeal);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/smgideal.gd"

#F  file="lib/monoid.gd" crc=-9976274
RANK_FILTER_LIST  := [ 8126465, 2, 1, 0, 1, 0, 31457373, 5, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/monoid.gd", -9976274 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/monoid.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/monoid.gd");
elif COM_RESULT = 3  then
Revision.monoid_gd:="@(#)$Id: monoid.gd,v 4.20 2002/04/15 10:05:04 sal Exp $";
DeclareSynonymAttr("IsMonoid",IsMagmaWithOne and IsAssociative);
DeclareGlobalFunction("Monoid");
DeclareSynonym("Submonoid",SubmagmaWithOne);
DeclareSynonym("SubmonoidNC",SubmagmaWithOneNC);
DeclareOperation("MonoidByGenerators",[IsCollection]);
DeclareAttribute("AsMonoid",IsCollection);
DeclareOperation("AsSubmonoid",[IsDomain,IsCollection]);
DeclareSynonymAttr("GeneratorsOfMonoid",GeneratorsOfMagmaWithOne);
DeclareSynonymAttr("TrivialSubmonoid",TrivialSubmagmaWithOne);
DeclareGlobalFunction("FreeMonoid");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/monoid.gd"

#F  file="lib/grp.gd" crc=32608765
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 62914713, 21, 
  993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 50332116, 21, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 768, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 61648808, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 28885124, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 58362933, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 32122116, 21, 993, 2, 1, 0, 1, 0, 
  1, 0, 1, 0, 64243239, 23, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 61376606, 23, 
  993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 55643340, 23, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 21244704, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 17868878, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 4366534, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 17466037, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 2753250, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 11010981, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 44040945, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 20972018, 21, 993, 2, 1, 0, 8126465, 2, 1, 0, 1, 
  0, 41944003, 5, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  16778134, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  33555275, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 678, 
  21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 363, 21, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 32047966, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 29034293, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 23005987, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 10951295, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 53948870, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 32195636, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 64390279, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 61670686, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 56231500, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 45353128, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 23596384, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 47191775, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 27273678, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 54547323, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 41985734, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 16862556, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 33725079, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 340286, 21, 993, 2, 1, 0, 60816854, 
  16, 60816854, 16, 1, 0, 1, 0, 680539, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 1360085, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 2720137, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 5440241, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 10879489, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 21758945, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 43516897, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 19923922, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 39846851, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 12583830, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 25166667, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 50332341, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 33554810, 21, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 708, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 
  16, 1, 0, 1, 0, 53952095, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 
  0, 1, 0, 27636151, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 
  0, 42115062, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  3963045, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  61876769, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  58510620, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  49911368, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  32712864, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  65424735, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  63739598, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  60369324, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  53628776, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  40148640, 21, 993, 2, 1, 0, 33444908, 18, 33444908, 18, 33444308, 19, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 13188368, 21, 993, 2, 1, 0, 
  33444908, 18, 33444908, 18, 33444308, 19, 60816854, 16, 60816854, 16, 1, 0, 
  1, 0, 26375743, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  52751453, 29, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  9679076, 21, 993, 2, 1, 0, 33444908, 18, 33444908, 18, 33444308, 19, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 19358119, 21, 993, 2, 1, 0, 
  33444908, 18, 33444908, 18, 60353033, 19, 60816854, 16, 60816854, 16, 1, 0, 
  1, 0, 38716205, 21, 993, 2, 1, 0, 33444908, 18, 33444908, 18, 60353033, 19, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 10322538, 21, 993, 2, 1, 0, 
  33444908, 18, 33444908, 18, 33444308, 19, 1, 0, 1, 0, 20644083, 3, 993, 2, 
  1, 0, 33444908, 18, 1, 0, 67108280, 6, 60816854, 16, 60816854, 16, 1, 0, 1, 
  0, 41288133, 21, 993, 2, 1, 0, 33444908, 18, 33444908, 18, 60353033, 19, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 15467354, 21, 993, 2, 1, 0, 
  33444908, 18, 33444908, 18, 60353033, 19, 60816854, 16, 60816854, 16, 1, 0, 
  1, 0, 30933715, 21, 993, 2, 1, 0, 33444908, 18, 33444908, 18, 60353033, 19, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 61866437, 21, 993, 2, 1, 0, 
  33444908, 18, 33444908, 18, 33444308, 19, 60816854, 16, 60816854, 16, 1, 0, 
  1, 0, 56623962, 21, 993, 2, 1, 0, 33444908, 18, 33444908, 18, 60353033, 19, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 46138052, 21, 993, 2, 1, 0, 
  33444908, 18, 33444908, 18, 60353033, 19, 60816854, 16, 60816854, 16, 1, 0, 
  1, 0, 25166232, 21, 993, 2, 1, 0, 33444908, 18, 33444908, 18, 8193, 2, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 108, 21, 993, 2, 1, 0, 33444908, 
  18, 33444908, 18, 33444308, 19, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  61880009, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  51422053, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  30505181, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  55780316, 21, 993, 2, 1, 0, 24902901, 3, 1, 0, 1, 0, 39222667, 6, 993, 2, 
  1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grp.gd", 32608765 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grp.gd");
elif COM_RESULT = 3  then
Revision.grp_gd:="@(#)$Id: grp.gd,v 4.178 2002/04/15 10:04:43 sal Exp $";
DeclareInfoClass("InfoGroup");
DeclareSynonym("IsGroup",IsMagmaWithInverses and IsAssociative);
InstallTrueMethod(IsFiniteOrderElementCollection,IsGroup and IsFinite);
DeclareSynonymAttr("GeneratorsOfGroup",GeneratorsOfMagmaWithInverses);
DeclareOperation("GroupString",[IsGroup,IsString]);
DeclareAttribute("NameIsomorphismClass",IsGroup);
DeclareProperty("IsCyclic",IsGroup);
InstallSubsetMaintenance(IsCyclic,IsGroup and IsCyclic,IsGroup);
InstallFactorMaintenance(IsCyclic,IsGroup and IsCyclic,IsObject,IsGroup);
InstallTrueMethod(IsCyclic,IsGroup and IsTrivial);
InstallTrueMethod(IsCommutative,IsGroup and IsCyclic);
DeclareProperty("IsElementaryAbelian",IsGroup);
InstallSubsetMaintenance(IsElementaryAbelian,IsGroup and IsElementaryAbelian,IsGroup);
InstallFactorMaintenance(IsElementaryAbelian,IsGroup and IsElementaryAbelian,IsObject,IsGroup);
InstallTrueMethod(IsElementaryAbelian,IsGroup and IsTrivial);
DeclareProperty("IsFinitelyGeneratedGroup",IsGroup);
InstallFactorMaintenance(IsFinitelyGeneratedGroup,IsGroup and IsFinitelyGeneratedGroup,IsObject,IsGroup);
InstallTrueMethod(IsFinitelyGeneratedGroup,IsGroup and IsTrivial);
DeclareProperty("IsSubsetLocallyFiniteGroup",IsGroup);
InstallTrueMethod(IsFinite,IsFinitelyGeneratedGroup and IsGroup and IsSubsetLocallyFiniteGroup);
InstallTrueMethod(IsSubsetLocallyFiniteGroup,IsFinite and IsGroup);
InstallSubsetMaintenance(IsSubsetLocallyFiniteGroup,IsGroup and IsSubsetLocallyFiniteGroup,IsGroup);
InstallTrueMethod(IsSubsetLocallyFiniteGroup,IsFFECollection and IsMagma);
DeclareFilter("CanEasilyTestMembership");
DeclareFilter("CanComputeSizeAnySubgroup");
InstallTrueMethod(CanEasilyTestMembership,CanComputeSizeAnySubgroup);
InstallTrueMethod(CanComputeSize,CanComputeSizeAnySubgroup);
InstallTrueMethod(CanComputeSize,IsTrivial);
DeclareOperation("CanComputeIndex",[IsGroup,IsGroup]);
DeclareProperty("KnowsHowToDecompose",IsGroup);
DeclareOperation("KnowsHowToDecompose",[IsGroup,IsList]);
DeclareProperty("IsPGroup",IsGroup);
InstallSubsetMaintenance(IsPGroup,IsGroup and IsPGroup,IsGroup);
InstallFactorMaintenance(IsPGroup,IsGroup and IsPGroup,IsObject,IsGroup);
InstallTrueMethod(IsPGroup,IsGroup and IsTrivial);
DeclareAttribute("PrimePGroup",IsPGroup);
InstallSubsetMaintenance(PrimePGroup,IsGroup and HasPrimePGroup,IsGroup);
InstallFactorMaintenance(PrimePGroup,IsGroup and HasPrimePGroup,IsObject,IsGroup);
DeclareAttribute("PClassPGroup",IsPGroup);
DeclareAttribute("RankPGroup",IsPGroup);
DeclareProperty("IsNilpotentGroup",IsGroup);
InstallSubsetMaintenance(IsNilpotentGroup,IsGroup and IsNilpotentGroup,IsGroup);
InstallFactorMaintenance(IsNilpotentGroup,IsGroup and IsNilpotentGroup,IsObject,IsGroup);
InstallTrueMethod(IsNilpotentGroup,IsGroup and IsCommutative);
InstallTrueMethod(IsNilpotentGroup,IsGroup and IsPGroup);
DeclareProperty("IsPerfectGroup",IsGroup);
InstallFactorMaintenance(IsPerfectGroup,IsGroup and IsPerfectGroup,IsObject,IsGroup);
DeclareProperty("IsSimpleGroup",IsGroup);
InstallIsomorphismMaintenance(IsSimpleGroup,IsGroup and IsSimpleGroup,IsGroup);
DeclareProperty("IsSupersolvableGroup",IsGroup);
InstallSubsetMaintenance(IsSupersolvableGroup,IsGroup and IsSupersolvableGroup,IsGroup);
InstallFactorMaintenance(IsSupersolvableGroup,IsGroup and IsSupersolvableGroup,IsObject,IsGroup);
InstallTrueMethod(IsSupersolvableGroup,IsNilpotentGroup);
DeclareProperty("IsMonomialGroup",IsGroup);
InstallFactorMaintenance(IsMonomialGroup,IsGroup and IsMonomialGroup,IsObject,IsGroup);
InstallTrueMethod(IsMonomialGroup,IsSupersolvableGroup and IsFinite);
DeclareProperty("IsSolvableGroup",IsGroup);
InstallSubsetMaintenance(IsSolvableGroup,IsGroup and IsSolvableGroup,IsGroup);
InstallFactorMaintenance(IsSolvableGroup,IsGroup and IsSolvableGroup,IsObject,IsGroup);
InstallTrueMethod(IsSolvableGroup,IsMonomialGroup);
InstallTrueMethod(IsSolvableGroup,IsSupersolvableGroup);
DeclareProperty("IsPolycyclicGroup",IsGroup);
InstallTrueMethod(IsSolvableGroup,IsPolycyclicGroup);
InstallTrueMethod(IsPolycyclicGroup,IsSolvableGroup and IsFinite);
InstallTrueMethod(IsPolycyclicGroup,IsNilpotentGroup and IsFinitelyGeneratedGroup);
DeclareAttribute("AbelianInvariants",IsGroup);
DeclareAttribute("AsGroup",IsCollection);
DeclareAttribute("ChiefSeries",IsGroup);
DeclareOperation("ChiefSeriesUnderAction",[IsGroup,IsGroup]);
DeclareOperation("ChiefSeriesThrough",[IsGroup,IsList]);
DeclareAttribute("CommutatorFactorGroup",IsGroup);
DeclareAttribute("CompositionSeries",IsGroup);
DeclareGlobalFunction("DisplayCompositionSeries");
DeclareAttribute("ConjugacyClasses",IsGroup);
DeclareAttribute("ConjugacyClassesMaximalSubgroups",IsGroup);
DeclareAttribute("MaximalSubgroups",IsGroup);
DeclareAttribute("MaximalSubgroupClassReps",IsGroup);
DeclareAttribute("PerfectResiduum",IsGroup);
DeclareAttribute("RepresentativesPerfectSubgroups",IsGroup);
DeclareAttribute("RepresentativesSimpleSubgroups",IsGroup);
DeclareAttribute("ConjugacyClassesPerfectSubgroups",IsGroup);
DeclareAttribute("ConjugacyClassesSubgroups",IsGroup);
DeclareAttribute("LatticeSubgroups",IsGroup);
DeclareAttribute("DerivedLength",IsGroup);
DeclareAttribute("HirschLength",IsGroup);
InstallIsomorphismMaintenance(HirschLength,IsGroup and HasHirschLength,IsGroup);
DeclareAttribute("DerivedSeriesOfGroup",IsGroup);
DeclareAttribute("DerivedSubgroup",IsGroup);
DeclareAttribute("MaximalAbelianQuotient",IsGroup);
DeclareAttribute("CommutatorLength",IsGroup);
DeclareAttribute("DimensionsLoewyFactors",IsGroup);
DeclareAttribute("ElementaryAbelianSeries",IsGroup);
DeclareAttribute("ElementaryAbelianSeriesLargeSteps",IsGroup);
DeclareAttribute("Exponent",IsGroup);
InstallIsomorphismMaintenance(Exponent,IsGroup and HasExponent,IsGroup);
DeclareAttribute("FittingSubgroup",IsGroup);
DeclareAttribute("PrefrattiniSubgroup",IsGroup);
DeclareAttribute("FrattiniSubgroup",IsGroup);
DeclareAttribute("InvariantForm",IsGroup);
DeclareAttribute("JenningsSeries",IsGroup);
DeclareAttribute("LowerCentralSeriesOfGroup",IsGroup);
DeclareAttribute("NilpotencyClassOfGroup",IsGroup);
DeclareAttribute("MaximalNormalSubgroups",IsGroup);
DeclareAttribute("NormalMaximalSubgroups",IsGroup);
DeclareAttribute("NormalSubgroups",IsGroup);
DeclareGlobalFunction("NormalSubgroupsAbove");
DeclareAttribute("NrConjugacyClasses",IsGroup);
DeclareGlobalFunction("Omega");
DeclareOperation("OmegaOp",[IsGroup,IsPosInt,IsPosInt]);
DeclareAttribute("ComputedOmegas",IsGroup,"mutable");
DeclareGlobalFunction("Agemo");
DeclareOperation("AgemoOp",[IsGroup,IsPosInt,IsPosInt]);
DeclareAttribute("ComputedAgemos",IsGroup,"mutable");
DeclareAttribute("RadicalGroup",IsGroup);
DeclareAttribute("RationalClasses",IsGroup);
DeclareAttribute("GeneratorsSmallest",IsGroup);
DeclareAttribute("LargestElementGroup",IsGroup);
DeclareAttribute("MinimalGeneratingSet",IsGroup);
DeclareAttribute("SmallGeneratingSet",IsGroup);
DeclareAttribute("SupersolvableResiduum",IsGroup);
DeclareGlobalFunction("SupersolvableResiduumDefault");
DeclareAttribute("ComplementSystem",IsGroup);
DeclareAttribute("SylowSystem",IsGroup);
DeclareAttribute("HallSystem",IsGroup);
DeclareSynonymAttr("TrivialSubgroup",TrivialSubmagmaWithOne);
DeclareAttribute("Socle",IsGroup);
DeclareAttribute("UpperCentralSeriesOfGroup",IsGroup);
DeclareOperation("EulerianFunction",[IsGroup,IsPosInt]);
DeclareGlobalFunction("AgemoAbove");
DeclareOperation("AsSubgroup",[IsGroup,IsGroup]);
DeclareOperation("ClassMultiplicationCoefficient",[IsGroup,IsPosInt,IsPosInt,IsPosInt]);
DeclareOperation("ClassMultiplicationCoefficient",[IsGroup,IsCollection,IsCollection,IsCollection]);
DeclareGlobalFunction("ClosureGroupDefault");
DeclareOperation("ClosureGroup",[IsGroup,IsObject]);
DeclareGlobalFunction("ClosureGroupAddElm");
DeclareGlobalFunction("ClosureGroupCompare");
DeclareGlobalFunction("ClosureGroupIntest");
DeclareGlobalFunction("ClosureSubgroup");
DeclareGlobalFunction("ClosureSubgroupNC");
DeclareOperation("CommutatorSubgroup",[IsGroup,IsGroup]);
DeclareOperation("ConjugateGroup",[IsGroup,IsObject]);
DeclareOperation("ConjugateSubgroup",[IsGroup and HasParent,IsMultiplicativeElementWithInverse]);
DeclareOperation("ConjugateSubgroups",[IsGroup,IsGroup]);
InParentFOA("Core",IsGroup,IsGroup,DeclareAttribute);
DeclareOperation("CosetTable",[IsGroup,IsGroup]);
DeclareOperation("CosetTableNormalClosure",[IsGroup,IsGroup]);
DeclareGlobalFunction("FactorGroup");
DeclareOperation("FactorGroupNC",[IsGroup,IsGroup]);
InParentFOA("Index",IsGroup,IsGroup,DeclareAttribute);
DeclareOperation("IndexNC",[IsGroup,IsGroup]);
DeclareAttribute("IndexInWholeGroup",IsGroup);
DeclareAttribute("IndependentGeneratorsOfAbelianGroup",IsGroup and IsAbelian);
DeclareOperation("IsConjugate",[IsGroup,IsObject,IsObject]);
InParentFOA("IsNormal",IsGroup,IsGroup,DeclareProperty);
DeclareOperation("IsCharacteristicSubgroup",[IsGroup,IsGroup]);
KeyDependentOperation("IsPNilpotent",IsGroup,IsPosInt,"prime");
KeyDependentOperation("IsPSolvable",IsGroup,IsPosInt,"prime");
DeclareGlobalFunction("IsSubgroup");
DeclareOperation("IsSubnormal",[IsGroup,IsGroup]);
InParentFOA("NormalClosure",IsGroup,IsGroup,DeclareAttribute);
DeclareOperation("NormalIntersection",[IsGroup,IsGroup]);
InParentFOA("Normalizer",IsGroup,IsObject,DeclareAttribute);
DeclareOperation("CentralizerModulo",[IsGroup,IsGroup,IsObject]);
KeyDependentOperation("PCentralSeries",IsGroup,IsPosInt,"prime");
KeyDependentOperation("PRump",IsGroup,IsPosInt,"prime");
KeyDependentOperation("PCore",IsGroup,IsPosInt,"prime");
InParentFOA("SubnormalSeries",IsGroup,IsGroup,DeclareAttribute);
KeyDependentOperation("SylowSubgroup",IsGroup,IsPosInt,"prime");
KeyDependentOperation("SylowComplement",IsGroup,IsPosInt,"prime");
KeyDependentOperation("HallSubgroup",IsGroup,IsList,ReturnTrue);
DeclareOperation("NrConjugacyClassesInSupergroup",[IsGroup,IsGroup]);
DeclareGlobalFunction("Factorization");
DeclareOperation("GroupByGenerators",[IsCollection]);
DeclareOperation("GroupByGenerators",[IsCollection,IsMultiplicativeElementWithInverse]);
DeclareOperation("GroupWithGenerators",[IsCollection]);
DeclareOperation("GroupWithGenerators",[IsCollection,IsMultiplicativeElementWithInverse]);
DeclareGlobalFunction("Group");
DeclareSynonym("Subgroup",SubmagmaWithInverses);
DeclareSynonym("SubgroupNC",SubmagmaWithInversesNC);
DeclareCategory("IsRightTransversal",IsCollection);
DeclareCategoryCollections("IsRightTransversal");
InParentFOA("RightTransversal",IsGroup,IsGroup,DeclareAttribute);
DeclareOperation("IntermediateSubgroups",[IsGroup,IsGroup]);
DeclareGlobalFunction("IsomorphismTypeInfoFiniteSimpleGroup");
DeclareAttribute("IsomorphismPcGroup",IsGroup);
DeclareAttribute("IsomorphismSpecialPcGroup",IsGroup);
DeclareAttribute("IsomorphismPermGroup",IsGroup);
DeclareAttribute("IsomorphismFpGroup",IsGroup);
DeclareGlobalFunction("IsomorphismFpGroupByGenerators");
DeclareOperation("IsomorphismFpGroupByGeneratorsNC",[IsGroup,IsList,IsString]);
DeclareOperation("IsomorphismFpGroupBySubnormalSeries",[IsGroup,IsList,IsString]);
DeclareOperation("IsomorphismFpGroupByCompositionSeries",[IsGroup,IsString]);
DeclareGlobalFunction("IsomorphismFpGroupByPcgs");
DeclareAttribute("PrimePowerComponents",IsMultiplicativeElement);
DeclareOperation("PrimePowerComponent",[IsMultiplicativeElement,IsPosInt]);
DeclareOperation("PowerMapOfGroup",[IsGroup,IsInt,IsHomogeneousList]);
DeclareGlobalFunction("PowerMapOfGroupWithInvariants");
DeclareGlobalFunction("HasAbelianFactorGroup");
DeclareGlobalFunction("HasElementaryAbelianFactorGroup");
DeclareFilter("IsGroupOfFamily");
DeclareGlobalFunction("Group_PseudoRandom");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grp.gd"

#F  file="lib/addmagma.gd" crc=-124511196
RANK_FILTER_LIST  := [ 3717409, 9, 1, 0, 1, 0, 59479521, 12, 993, 2, 1, 0, 
  3717409, 9, 1, 0, 1, 0, 51849170, 12, 993, 2, 1, 0, 7434817, 11, 1, 0, 1, 
  0, 36588468, 14, 993, 2, 1, 0, 14869633, 13, 1, 0, 1, 0, 6067064, 16, 993, 
  2, 1, 0, 7434817, 11, 1, 0, 1, 0, 12133135, 14, 993, 2, 1, 0, 3717409, 9, 
  1, 0, 1, 0, 24265277, 12, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/addmagma.gd", -124511196 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/addmagma.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/addmagma.gd");
elif COM_RESULT = 3  then
Revision.addmagma_gd:="@(#)$Id: addmagma.gd,v 4.16 2002/04/15 10:04:22 sal Exp $";
DeclareCategory("IsNearAdditiveMagma",IsDomain and IsNearAdditiveElementCollection);
DeclareCategory("IsNearAdditiveMagmaWithZero",IsNearAdditiveMagma and IsNearAdditiveElementWithZeroCollection);
DeclareCategory("IsNearAdditiveGroup",IsNearAdditiveMagmaWithZero and IsNearAdditiveElementWithInverseCollection);
DeclareSynonym("IsNearAdditiveMagmaWithInverses",IsNearAdditiveGroup);
DeclareProperty("IsAdditivelyCommutative",IsNearAdditiveMagma);
InstallTrueMethod(IsAdditivelyCommutative,IsAdditivelyCommutativeElementCollection and IsMagma);
InstallSubsetMaintenance(IsAdditivelyCommutative,IsNearAdditiveMagma and IsAdditivelyCommutative,IsNearAdditiveMagma);
InstallFactorMaintenance(IsAdditivelyCommutative,IsNearAdditiveMagma and IsAdditivelyCommutative,IsObject,IsNearAdditiveMagma);
InstallTrueMethod(IsAdditivelyCommutative,IsNearAdditiveMagma and IsTrivial);
InstallTrueMethod(IsAdditiveElementCollection,IsNearAdditiveElementCollection and IsAdditivelyCommutative);
InstallTrueMethod(IsAdditiveElementWithZeroCollection,IsNearAdditiveElementWithZeroCollection and IsAdditivelyCommutative);
InstallTrueMethod(IsAdditiveElementWithInverseCollection,IsNearAdditiveElementWithInverseCollection and IsAdditivelyCommutative);
DeclareSynonym("IsAdditiveMagma",IsNearAdditiveMagma and IsAdditivelyCommutative);
DeclareSynonym("IsAdditiveMagmaWithZero",IsNearAdditiveMagmaWithZero and IsAdditiveMagma);
DeclareSynonym("IsAdditiveGroup",IsNearAdditiveGroup and IsAdditiveMagma);
DeclareSynonym("IsAdditiveMagmaWithInverses",IsAdditiveGroup);
DeclareAttribute("Zero",IsDomain and IsAdditiveElementWithZeroCollection);
DeclareGlobalFunction("NearAdditiveMagma");
DeclareSynonym("AdditiveMagma",NearAdditiveMagma);
DeclareGlobalFunction("NearAdditiveMagmaWithZero");
DeclareSynonym("AdditiveMagmaWithZero",NearAdditiveMagmaWithZero);
DeclareGlobalFunction("NearAdditiveGroup");
DeclareSynonym("AdditiveGroup",NearAdditiveGroup);
DeclareSynonym("NearAdditiveMagmaWithInverses",NearAdditiveGroup);
DeclareSynonym("AdditiveMagmaWithInverses",NearAdditiveGroup);
DeclareOperation("NearAdditiveMagmaByGenerators",[IsCollection]);
DeclareSynonym("AdditiveMagmaByGenerators",NearAdditiveMagmaByGenerators);
DeclareOperation("NearAdditiveMagmaWithZeroByGenerators",[IsCollection]);
DeclareSynonym("AdditiveMagmaWithZeroByGenerators",NearAdditiveMagmaWithZeroByGenerators);
DeclareOperation("NearAdditiveGroupByGenerators",[IsCollection]);
DeclareSynonym("AdditiveGroupByGenerators",NearAdditiveGroupByGenerators);
DeclareSynonym("NearAdditiveMagmaWithInversesByGenerators",NearAdditiveGroupByGenerators);
DeclareSynonym("AdditiveMagmaWithInversesByGenerators",NearAdditiveGroupByGenerators);
DeclareGlobalFunction("SubnearAdditiveMagma");
DeclareGlobalFunction("SubnearAdditiveMagmaNC");
DeclareSynonym("SubadditiveMagma",SubnearAdditiveMagma);
DeclareSynonym("SubadditiveMagmaNC",SubnearAdditiveMagmaNC);
DeclareGlobalFunction("SubnearAdditiveMagmaWithZero");
DeclareGlobalFunction("SubnearAdditiveMagmaWithZeroNC");
DeclareSynonym("SubadditiveMagmaWithZero",SubnearAdditiveMagmaWithZero);
DeclareSynonym("SubadditiveMagmaWithZeroNC",SubnearAdditiveMagmaWithZeroNC);
DeclareGlobalFunction("SubnearAdditiveGroup");
DeclareGlobalFunction("SubnearAdditiveGroupNC");
DeclareSynonym("SubadditiveGroup",SubnearAdditiveGroup);
DeclareSynonym("SubnearAdditiveMagmaWithInverses",SubnearAdditiveGroup);
DeclareSynonym("SubadditiveMagmaWithInverses",SubnearAdditiveGroup);
DeclareSynonym("SubadditiveGroupNC",SubnearAdditiveGroupNC);
DeclareSynonym("SubnearAdditiveMagmaWithInversesNC",SubnearAdditiveGroupNC);
DeclareSynonym("SubadditiveMagmaWithInversesNC",SubnearAdditiveGroupNC);
DeclareAttribute("GeneratorsOfNearAdditiveMagma",IsNearAdditiveMagma);
DeclareSynonymAttr("GeneratorsOfAdditiveMagma",GeneratorsOfNearAdditiveMagma);
DeclareAttribute("GeneratorsOfNearAdditiveMagmaWithZero",IsNearAdditiveMagmaWithZero);
DeclareSynonymAttr("GeneratorsOfAdditiveMagmaWithZero",GeneratorsOfNearAdditiveMagmaWithZero);
DeclareAttribute("GeneratorsOfNearAdditiveGroup",IsNearAdditiveGroup);
DeclareSynonymAttr("GeneratorsOfAdditiveMagmaWithInverses",GeneratorsOfNearAdditiveGroup);
DeclareSynonymAttr("GeneratorsOfNearAdditiveMagmaWithInverses",GeneratorsOfNearAdditiveGroup);
DeclareSynonymAttr("GeneratorsOfAdditiveGroup",GeneratorsOfNearAdditiveGroup);
DeclareAttribute("TrivialSubnearAdditiveMagmaWithZero",IsNearAdditiveMagmaWithZero);
DeclareSynonymAttr("TrivialSubadditiveMagmaWithZero",TrivialSubnearAdditiveMagmaWithZero);
DeclareAttribute("AdditiveNeutralElement",IsNearAdditiveMagma);
DeclareOperation("ClosureNearAdditiveGroup",[IsNearAdditiveGroup,IsNearAdditiveElement]);
DeclareSynonym("ClosureNearAdditiveMagmaWithInverses",ClosureNearAdditiveGroup);
DeclareSynonym("ClosureAdditiveGroup",ClosureNearAdditiveGroup);
DeclareSynonym("ClosureAdditiveMagmaWithInverses",ClosureNearAdditiveGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/addmagma.gd"

#F  file="lib/addcoset.gd" crc=-122521720
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/addcoset.gd", -122521720 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/addcoset.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/addcoset.gd");
elif COM_RESULT = 3  then
Revision.addcoset_gd:="@(#)$Id: addcoset.gd,v 4.5 2002/04/15 10:04:22 sal Exp $";
DeclareCategory("IsAdditiveCoset",IsExtASet and IsAssociativeAOpESum and IsTrivialAOpEZero);
DeclareOperation("AdditiveCoset",[IsAdditiveGroup,IsAdditiveElement]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/addcoset.gd"

#F  file="lib/semiring.gd" crc=-69460091
RANK_FILTER_LIST  := [ 953313, 7, 15252993, 6, 49806761, 7, 1, 0, 1, 0, 
  59900387, 16, 993, 2, 1, 0, 953313, 7, 15252993, 6, 49806761, 7, 1, 0, 1, 
  0, 38273852, 16, 993, 2, 1, 0, 49544677, 11, 3717409, 9, 53262085, 15, 1, 
  0, 1, 0, 9437832, 27, 993, 2, 1, 0, 31981434, 13, 3717409, 9, 35698842, 17, 
  1, 0, 1, 0, 18874671, 29, 993, 2, 1, 0, 49544677, 11, 3717409, 9, 7434817, 
  11, 60696901, 17, 1, 0, 1, 0, 37749309, 28, 993, 2, 1, 0, 31981434, 13, 
  3717409, 9, 7434817, 11, 43133658, 19, 1, 0, 1, 0, 8388746, 30, 993, 2, 1, 
  0, 953313, 7, 15252993, 6, 49806761, 7, 1, 0, 1, 0, 16777459, 16, 993, 2, 
  1, 0, 953313, 7, 15252993, 6, 49806761, 7, 1, 0, 1, 0, 33554885, 16, 993, 
  2, 1, 0, 953313, 7, 15252993, 6, 49806761, 7, 1, 0, 1, 0, 858, 16, 993, 2, 
  1, 0, 953313, 7, 15252993, 6, 49806761, 7, 1, 0, 1, 0, 723, 16, 993, 2, 1, 
  0, 49544677, 11, 3717409, 9, 53262085, 15, 1, 0, 1, 0, 453, 27, 993, 2, 1, 
  0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/semiring.gd", -69460091 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/semiring.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/semiring.gd");
elif COM_RESULT = 3  then
Revision.semiring_gd:="@(#)$Id: semiring.gd,v 4.5 2002/04/15 10:05:22 sal Exp $";
DeclareProperty("IsLDistributive",IsRingElementCollection);
InstallSubsetMaintenance(IsLDistributive,IsRingElementCollection and IsLDistributive,IsRingElementCollection);
InstallFactorMaintenance(IsLDistributive,IsRingElementCollection and IsLDistributive,IsObject,IsRingElementCollection);
DeclareProperty("IsRDistributive",IsRingElementCollection);
InstallSubsetMaintenance(IsRDistributive,IsRingElementCollection and IsRDistributive,IsRingElementCollection);
InstallFactorMaintenance(IsRDistributive,IsRingElementCollection and IsRDistributive,IsObject,IsRingElementCollection);
DeclareSynonymAttr("IsDistributive",IsLDistributive and IsRDistributive);
DeclareSynonymAttr("IsSemiring",IsAdditiveMagma and IsMagma and IsDistributive);
DeclareSynonymAttr("IsSemiringWithOne",IsAdditiveMagma and IsMagmaWithOne and IsDistributive);
DeclareSynonymAttr("IsSemiringWithZero",IsAdditiveMagmaWithZero and IsMagma and IsDistributive);
DeclareSynonymAttr("IsSemiringWithOneAndZero",IsAdditiveMagmaWithZero and IsMagmaWithOne and IsDistributive);
DeclareAttribute("GeneratorsOfSemiring",IsSemiring);
DeclareAttribute("GeneratorsOfSemiringWithOne",IsSemiringWithOne);
DeclareAttribute("GeneratorsOfSemiringWithZero",IsSemiringWithZero);
DeclareAttribute("GeneratorsOfSemiringWithOneAndZero",IsSemiringWithOneAndZero);
DeclareAttribute("AsSemiring",IsRingElementCollection);
DeclareAttribute("AsSemiringWithOne",IsRingElementCollection);
DeclareAttribute("AsSemiringWithZero",IsRingElementCollection);
DeclareAttribute("AsSemiringWithOneAndZero",IsRingElementCollection);
DeclareOperation("ClosureSemiring",[IsSemiring,IsObject]);
DeclareOperation("SemiringByGenerators",[IsCollection]);
DeclareOperation("SemiringWithOneByGenerators",[IsCollection]);
DeclareOperation("SemiringWithZeroByGenerators",[IsCollection]);
DeclareOperation("SemiringWithOneAndZeroByGenerators",[IsCollection]);
DeclareGlobalFunction("Semiring");
DeclareGlobalFunction("SemiringWithOne");
DeclareGlobalFunction("SemiringWithZero");
DeclareGlobalFunction("SemiringWithOneAndZero");
DeclareGlobalFunction("Subsemiring");
DeclareGlobalFunction("SubsemiringNC");
DeclareGlobalFunction("SubsemiringWithOne");
DeclareGlobalFunction("SubsemiringWithOneNC");
DeclareGlobalFunction("SubsemiringWithZero");
DeclareGlobalFunction("SubsemiringWithZeroNC");
DeclareGlobalFunction("SubsemiringWithOneAndZero");
DeclareGlobalFunction("SubsemiringWithOneAndZeroNC");
DeclareAttribute("CentralIdempotentsOfSemiring",IsSemiring);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/semiring.gd"

#F  file="lib/ring.gd" crc=-18326790
RANK_FILTER_LIST  := [ 953313, 7, 49806761, 7, 1, 0, 1, 0, 873, 15, 993, 2, 
  1, 0, 953313, 7, 15252993, 6, 49806761, 7, 1, 0, 1, 0, 753, 16, 993, 2, 1, 
  0, 49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 
  39229072, 29, 993, 2, 1, 0, 49544677, 11, 31981434, 13, 3717409, 9, 
  14869633, 13, 33004271, 21, 1, 0, 1, 0, 50576831, 31, 993, 2, 1, 0, 
  49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 57620817, 
  29, 993, 2, 1, 0, 49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 
  0, 1, 0, 29153652, 29, 993, 2, 1, 0, 49544677, 11, 3717409, 9, 14869633, 
  13, 1022838, 19, 1, 0, 1, 0, 49502750, 29, 993, 2, 1, 0, 49544677, 11, 
  3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 63790263, 29, 993, 2, 1, 
  0, 49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 
  60471614, 29, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ring.gd", -18326790 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ring.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ring.gd");
elif COM_RESULT = 3  then
Revision.ring_gd:="@(#)$Id: ring.gd,v 4.53 2002/04/15 10:05:15 sal Exp $";
DeclareSynonymAttr("IsNearRing",IsNearAdditiveGroup and IsMagma and IsRDistributive and IsAssociative);
DeclareSynonymAttr("IsNearRingWithOne",IsNearRing and IsMagmaWithOne);
DeclareAttribute("AsNearRing",IsNearRingElementCollection);
DeclareSynonymAttr("IsRing",IsAdditiveGroup and IsMagma and IsDistributive);
DeclareSynonymAttr("IsRingWithOne",IsRing and IsMagmaWithOne);
DeclareAttribute("AsRing",IsRingElementCollection);
DeclareAttribute("GeneratorsOfRing",IsRing);
DeclareAttribute("GeneratorsOfRingWithOne",IsRingWithOne);
DeclareOperation("RingByGenerators",[IsCollection]);
DeclareOperation("DefaultRingByGenerators",[IsCollection]);
DeclareGlobalFunction("Ring");
DeclareOperation("RingWithOneByGenerators",[IsCollection]);
DeclareGlobalFunction("RingWithOne");
DeclareGlobalFunction("DefaultRing");
DeclareGlobalFunction("Subring");
DeclareGlobalFunction("SubringNC");
DeclareGlobalFunction("SubringWithOne");
DeclareGlobalFunction("SubringWithOneNC");
DeclareOperation("ClosureRing",[IsRing,IsObject]);
DeclareCategory("IsUniqueFactorizationRing",IsRing);
DeclareCategory("IsEuclideanRing",IsRingWithOne and IsUniqueFactorizationRing);
DeclareProperty("IsAnticommutative",IsRing);
InstallSubsetMaintenance(IsAnticommutative,IsRing and IsAnticommutative,IsRing);
InstallFactorMaintenance(IsAnticommutative,IsRing and IsAnticommutative,IsObject,IsRing);
DeclareProperty("IsIntegralRing",IsRing);
InstallSubsetMaintenance(IsIntegralRing,IsRing and IsIntegralRing,IsRing and IsNonTrivial);
InstallTrueMethod(IsIntegralRing,IsRing and IsMagmaWithInversesIfNonzero and IsNonTrivial);
InstallTrueMethod(IsIntegralRing,IsUniqueFactorizationRing and IsNonTrivial);
DeclareProperty("IsJacobianRing",IsRing);
InstallTrueMethod(IsJacobianRing,IsJacobianElementCollection and IsRing);
InstallSubsetMaintenance(IsJacobianRing,IsRing and IsJacobianRing,IsRing);
InstallFactorMaintenance(IsJacobianRing,IsRing and IsJacobianRing,IsObject,IsRing);
DeclareProperty("IsZeroSquaredRing",IsRing);
InstallTrueMethod(IsAnticommutative,IsRing and IsZeroSquaredRing);
InstallTrueMethod(IsZeroSquaredRing,IsZeroSquaredElementCollection and IsRing);
InstallSubsetMaintenance(IsZeroSquaredRing,IsRing and IsZeroSquaredRing,IsRing);
InstallFactorMaintenance(IsZeroSquaredRing,IsRing and IsZeroSquaredRing,IsObject,IsRing);
DeclareAttribute("Units",IsRing);
DeclareOperation("Factors",[IsRing,IsRingElement]);
DeclareOperation("IsAssociated",[IsRing,IsRingElement,IsRingElement]);
DeclareOperation("Associates",[IsRing,IsRingElement]);
DeclareOperation("IsUnit",[IsRing,IsRingElement]);
DeclareOperation("InterpolatedPolynomial",[IsRing,IsHomogeneousList,IsHomogeneousList]);
DeclareOperation("Quotient",[IsRing,IsRingElement,IsRingElement]);
DeclareOperation("StandardAssociate",[IsRing,IsRingElement]);
DeclareOperation("IsPrime",[IsRing,IsRingElement]);
DeclareOperation("IsIrreducibleRingElement",[IsRing,IsRingElement]);
DeclareOperation("EuclideanDegree",[IsEuclideanRing,IsRingElement]);
DeclareOperation("EuclideanRemainder",[IsEuclideanRing,IsRingElement,IsRingElement]);
DeclareOperation("EuclideanQuotient",[IsEuclideanRing,IsRingElement,IsRingElement]);
DeclareOperation("QuotientRemainder",[IsRing,IsRingElement,IsRingElement]);
DeclareOperation("QuotientMod",[IsRing,IsRingElement,IsRingElement,IsRingElement]);
DeclareOperation("PowerMod",[IsRing,IsRingElement,IsInt,IsRingElement]);
DeclareGlobalFunction("Gcd");
DeclareOperation("GcdOp",[IsEuclideanRing,IsRingElement,IsRingElement]);
DeclareGlobalFunction("GcdRepresentation");
DeclareOperation("GcdRepresentationOp",[IsEuclideanRing,IsRingElement,IsRingElement]);
DeclareGlobalFunction("Lcm");
DeclareOperation("LcmOp",[IsEuclideanRing,IsRingElement,IsRingElement]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ring.gd"

#F  file="lib/matrix.gd" crc=54028438
RANK_FILTER_LIST  := [ 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 
  1, 0, 40558760, 33, 993, 2, 1, 0, 42108362, 20, 1, 0, 1, 0, 14008608, 23, 
  993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 
  28017183, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 
  1, 0, 1, 0, 56033373, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 
  32505602, 9, 1, 0, 1, 0, 44957834, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 
  30505985, 7, 32505602, 9, 1, 0, 1, 0, 22806756, 33, 993, 2, 1, 0, 65537, 6, 
  1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 45613479, 33, 993, 2, 1, 
  0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 24118046, 
  33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 
  0, 48235099, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 
  9, 1, 0, 1, 0, 29360326, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 
  7, 32505602, 9, 1, 0, 1, 0, 58720619, 33, 993, 2, 1, 0, 65537, 6, 1906625, 
  8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 50332326, 33, 993, 2, 1, 0, 65537, 
  6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 33554780, 33, 993, 2, 
  1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 648, 33, 
  993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 
  303, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 
  0, 1, 0, 153, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 
  32505602, 9, 1, 0, 1, 0, 273, 33, 993, 2, 1, 0, 65537, 6, 1906625, 8, 
  30505985, 7, 32505602, 9, 1, 0, 1, 0, 8118340, 33, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/matrix.gd", 54028438 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/matrix.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/matrix.gd");
elif COM_RESULT = 3  then
Revision.matrix_gd:="@(#)$Id: matrix.gd,v 4.79 2002/04/15 10:05:02 sal Exp $";
DeclareInfoClass("InfoMatrix");
DeclareGlobalFunction("PrintArray");
DeclareProperty("IsGeneralizedCartanMatrix",IsMatrix);
DeclareOperation("IsDiagonalMat",[IsMatrix]);
DeclareOperation("IsUpperTriangularMat",[IsMatrix]);
DeclareOperation("IsLowerTriangularMat",[IsMatrix]);
DeclareGlobalFunction("DiagonalOfMat");
DeclareAttribute("AbelianInvariantsOfList",IsCyclotomicCollection);
DeclareAttribute("BaseMat",IsMatrix);
DeclareOperation("BaseMatDestructive",[IsMatrix]);
DeclareAttribute("BaseOrthogonalSpaceMat",IsMatrix);
DeclareAttribute("DefaultFieldOfMatrix",IsMatrix);
DeclareAttribute("DepthOfUpperTriangularMatrix",IsMatrix);
DeclareAttribute("DeterminantMat",IsMatrix);
DeclareOperation("DeterminantMatDestructive",[IsMatrix and IsMutable]);
DeclareOperation("DeterminantMatDivFree",[IsMatrix]);
DeclareAttribute("DimensionsMat",IsMatrix);
DeclareOperation("ElementaryDivisorsMat",[IsRing,IsMatrix]);
DeclareOperation("TriangulizedNullspaceMatNT",[IsMatrix]);
DeclareAttribute("NullspaceMat",IsMatrix);
DeclareAttribute("TriangulizedNullspaceMat",IsMatrix);
DeclareOperation("NullspaceMatDestructive",[IsMatrix and IsMutable]);
DeclareOperation("TriangulizedNullspaceMatDestructive",[IsMatrix and IsMutable\
]);
DeclareOperation("GeneralisedEigenvalues",[IsRing,IsMatrix]);
DeclareSynonym("GeneralizedEigenvalues",GeneralisedEigenvalues);
DeclareOperation("GeneralisedEigenspaces",[IsRing,IsMatrix]);
DeclareSynonym("GeneralizedEigenspaces",GeneralisedEigenspaces);
DeclareOperation("Eigenvalues",[IsRing,IsMatrix]);
DeclareOperation("Eigenspaces",[IsRing,IsMatrix]);
DeclareOperation("Eigenvectors",[IsRing,IsMatrix]);
DeclareAttribute("ProjectiveOrder",IsMatrix);
DeclareGlobalFunction("OrderMatTrial");
DeclareAttribute("RankMat",IsMatrix);
DeclareOperation("RankMatDestructive",[IsMatrix and IsMutable]);
DeclareAttribute("SemiEchelonMat",IsMatrix);
DeclareOperation("SemiEchelonMatDestructive",[IsMatrix and IsMutable]);
DeclareAttribute("SemiEchelonMatTransformation",IsMatrix);
DeclareOperation("SemiEchelonMatTransformationDestructive",[IsMatrix and IsMutable]);
DeclareGlobalFunction("SemiEchelonMatsNoCo");
DeclareOperation("SemiEchelonMats",[IsList]);
DeclareOperation("SemiEchelonMatsDestructive",[IsList]);
DeclareAttribute("TransposedMatImmutable",IsMatrix);
DeclareSynonymAttr("TransposedMatAttr",TransposedMatImmutable);
DeclareSynonymAttr("TransposedMat",TransposedMatImmutable);
DeclareOperation("TransposedMatMutable",[IsMatrix]);
DeclareSynonym("TransposedMatOp",TransposedMatMutable);
DeclareSynonym("MutableTransposedMat",TransposedMatMutable);
DeclareOperation("MutableTransposedMatDestructive",[IsMatrix and IsMutable]);
DeclareOperation("TransposedMatDestructive",[IsMatrix]);
DeclareProperty("IsMonomialMatrix",IsMatrix);
DeclareOperation("InverseMatMod",[IsMatrix,IsObject]);
DeclareOperation("KroneckerProduct",[IsMatrix,IsMatrix]);
DeclareOperation("SolutionMatNoCo",[IsMatrix,IsRowVector]);
DeclareOperation("SolutionMat",[IsMatrix,IsRowVector]);
DeclareOperation("SolutionMatDestructive",[IsMatrix and IsMutable,IsRowVector]\
);
DeclareOperation("SumIntersectionMat",[IsMatrix,IsMatrix]);
DeclareOperation("TriangulizeMat",[IsMatrix and IsMutable]);
DeclareGlobalFunction("TriangulizeMatGF2");
DeclareOperation("UpperSubdiagonal",[IsMatrix,IsPosInt]);
DeclareGlobalFunction("BaseFixedSpace");
DeclareGlobalFunction("BaseSteinitzVectors");
DeclareGlobalFunction("BlownUpMat");
DeclareGlobalFunction("BlownUpVector");
DeclareGlobalFunction("DiagonalizeIntMatNormDriven");
DeclareSynonym("DiagonalizeIntMat",DiagonalizeIntMatNormDriven);
DeclareOperation("DiagonalizeMat",[IsRing,IsMatrix and IsMutable]);
DeclareGlobalFunction("IdentityMat");
DeclareGlobalFunction("MutableCopyMat");
DeclareSynonym("MutableIdentityMat",IdentityMat);
DeclareGlobalFunction("NullMat");
DeclareSynonym("MutableNullMat",NullMat);
DeclareGlobalFunction("NullspaceModQ");
DeclareGlobalFunction("BasisNullspaceModN");
DeclareGlobalFunction("PermutationMat");
DeclareGlobalFunction("DiagonalMat");
DeclareGlobalFunction("ReflectionMat");
DeclareGlobalFunction("RandomInvertibleMat");
DeclareGlobalFunction("RandomMat");
DeclareGlobalFunction("RandomUnimodularMat");
DeclareGlobalFunction("SimultaneousEigenvalues");
DeclareGlobalFunction("TraceMat");
DeclareAttribute("JordanDecomposition",IsMatrix);
DeclareGlobalFunction("FlatBlockMat");
DeclareGlobalFunction("DirectSumMat");
DeclareGlobalFunction("EmptyMatrix");
DeclareGlobalFunction("OnSubspacesByCanonicalBasis");
DeclareSynonym("OnSubspacesByCanonicalBasisGF2",OnSubspacesByCanonicalBasis);
DeclareAttribute("CharacteristicPolynomial",IsMatrix);
DeclareOperation("CharacteristicPolynomial",[IsRing,IsMatrix]);
DeclareOperation("CharacteristicPolynomial",[IsMatrix,IsPosInt]);
DeclareOperation("CharacteristicPolynomial",[IsRing,IsMatrix,IsPosInt]);
DeclareOperation("CharacteristicPolynomialMatrixNC",[IsRing,IsOrdinaryMatrix,IsPosInt]);
DeclareOperation("MinimalPolynomialMatrixNC",[IsRing,IsOrdinaryMatrix,IsPosInt]);
DeclareOperation("FieldOfMatrixList",[IsListOrCollection]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/matrix.gd"

#F  file="lib/matint.gd" crc=37494395
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/matint.gd", 37494395 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/matint.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/matint.gd");
elif COM_RESULT = 3  then
Revision.matint_gd:="@(#)$Id: matint.gd,v 4.20 2002/04/15 10:05:01 sal Exp $";
DeclareInfoClass("InfoMatInt");
DeclareGlobalFunction("SNFNormDriven");
DeclareGlobalFunction("SNFChouCollins");
DeclareGlobalFunction("SNFLLLDriven");
DeclareGlobalFunction("HNFNormDriven");
DeclareGlobalFunction("HNFChouCollins");
DeclareGlobalFunction("HNFLLLDriven");
DeclareGlobalFunction("TriangulizeIntegerMat");
DeclareOperation("SmithNormalFormIntegerMat",[IsMatrix]);
DeclareOperation("SmithNormalFormIntegerMatTransforms",[IsMatrix]);
DeclareOperation("SmithNormalFormIntegerMatInverseTransforms",[IsMatrix]);
DeclareOperation("HermiteNormalFormIntegerMat",[IsMatrix]);
DeclareOperation("HermiteNormalFormIntegerMatTransforms",[IsMatrix]);
DeclareOperation("HermiteNormalFormIntegerMatInverseTransforms",[IsMatrix]);
DeclareOperation("TriangulizedIntegerMat",[IsMatrix]);
DeclareOperation("TriangulizedIntegerMatTransforms",[IsMatrix]);
DeclareOperation("TriangulizedIntegerMatInverseTransforms",[IsMatrix]);
DeclareGlobalFunction("SNFofREF");
DeclareGlobalFunction("NormalFormIntMat");
DeclareGlobalFunction("DeterminantIntMat");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/matint.gd"

#F  file="lib/matblock.gd" crc=-103346781
RANK_FILTER_LIST  := [ 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 
  1, 0, 24354474, 33, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/matblock.gd", -103346781 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/matblock.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/matblock.gd");
elif COM_RESULT = 3  then
Revision.matblock_gd:="@(#)$Id: matblock.gd,v 4.8 2002/04/15 10:05:00 sal Exp $";
DeclareGlobalFunction("BlockMatrix");
DeclareAttribute("MatrixByBlockMatrix",IsMatrix);
DeclareGlobalFunction("AsBlockMatrix");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/matblock.gd"

#F  file="lib/ideal.gd" crc=102318412
RANK_FILTER_LIST  := [ 49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 
  1, 0, 1, 0, 54659519, 29, 993, 2, 1, 0, 2618413, 26, 2618413, 26, 2617813, 
  27, 49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 
  41384683, 29, 993, 2, 1, 0, 2618413, 26, 2618413, 26, 2617813, 27, 
  49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 31317995, 
  29, 993, 2, 1, 0, 2618413, 26, 2618413, 26, 2617813, 27, 49544677, 11, 
  3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 62634997, 29, 993, 2, 1, 
  0, 49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 
  58160122, 29, 993, 2, 1, 0, 49544677, 11, 3717409, 9, 14869633, 13, 
  1022838, 19, 1, 0, 1, 0, 49210372, 29, 993, 2, 1, 0, 49544677, 11, 3717409, 
  9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 31310872, 29, 993, 2, 1, 0, 
  49544677, 11, 3717409, 9, 14869633, 13, 1022838, 19, 1, 0, 1, 0, 62621711, 
  29, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ideal.gd", 102318412 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ideal.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ideal.gd");
elif COM_RESULT = 3  then
Revision.ideal_gd:="@(#)$Id: ideal.gd,v 4.12 2002/04/15 10:04:53 sal Exp $";
DeclareGlobalFunction("TwoSidedIdeal");
DeclareSynonym("Ideal",TwoSidedIdeal);
DeclareGlobalFunction("LeftIdeal");
DeclareGlobalFunction("RightIdeal");
DeclareGlobalFunction("TwoSidedIdealNC");
DeclareSynonym("IdealNC",TwoSidedIdealNC);
DeclareGlobalFunction("LeftIdealNC");
DeclareGlobalFunction("RightIdealNC");
InParentFOA("IsTwoSidedIdeal",IsRing,IsRing,DeclareProperty);
InParentFOA("IsLeftIdeal",IsRing,IsRing,DeclareProperty);
InParentFOA("IsRightIdeal",IsRing,IsRing,DeclareProperty);
DeclareSynonym("IsIdeal",IsTwoSidedIdeal);
DeclareSynonym("IsIdealOp",IsTwoSidedIdealOp);
DeclareSynonymAttr("IsIdealInParent",IsTwoSidedIdealInParent);
InstallTrueMethod(IsLeftIdealInParent,IsTwoSidedIdealInParent);
InstallTrueMethod(IsRightIdealInParent,IsTwoSidedIdealInParent);
InstallTrueMethod(IsTwoSidedIdealInParent,IsLeftIdealInParent and IsRightIdealInParent);
DeclareOperation("TwoSidedIdealByGenerators",[IsRing,IsCollection]);
DeclareSynonym("IdealByGenerators",TwoSidedIdealByGenerators);
DeclareOperation("LeftIdealByGenerators",[IsRing,IsCollection]);
DeclareOperation("RightIdealByGenerators",[IsRing,IsCollection]);
DeclareAttribute("GeneratorsOfTwoSidedIdeal",IsRing);
DeclareSynonymAttr("GeneratorsOfIdeal",GeneratorsOfTwoSidedIdeal);
DeclareAttribute("GeneratorsOfLeftIdeal",IsRing);
DeclareAttribute("GeneratorsOfRightIdeal",IsRing);
DeclareAttribute("LeftActingRingOfIdeal",IsRing);
DeclareAttribute("RightActingRingOfIdeal",IsRing);
DeclareOperation("AsLeftIdeal",[IsRing,IsRing]);
DeclareOperation("AsRightIdeal",[IsRing,IsRing]);
DeclareOperation("AsTwoSidedIdeal",[IsRing,IsRing]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ideal.gd"

#F  file="lib/module.gd" crc=111580020
RANK_FILTER_LIST  := [ 58132558, 23, 1, 0, 1, 0, 31205544, 26, 993, 2, 1, 0, 
  58132558, 23, 1, 0, 1, 0, 57713198, 26, 993, 2, 1, 0, 58132558, 23, 1, 0, 
  1, 0, 29524136, 26, 993, 2, 1, 0, 58132558, 23, 1, 0, 1, 0, 50987566, 26, 
  993, 2, 1, 0, 34353841, 6, 12790409, 7, 3717409, 9, 14869633, 13, 65731289, 
  15, 1, 0, 1, 0, 34865260, 21, 993, 2, 1, 0, 22544295, 6, 25165270, 7, 
  3717409, 9, 14869633, 13, 66296604, 15, 1, 0, 1, 0, 2621608, 21, 993, 2, 1, 
  0, 58132558, 23, 1, 0, 1, 0, 10486333, 26, 993, 2, 1, 0, 58132558, 23, 1, 
  0, 1, 0, 41943313, 26, 993, 2, 1, 0, 58132558, 23, 1, 0, 1, 0, 16777714, 
  26, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/module.gd", 111580020 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/module.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/module.gd");
elif COM_RESULT = 3  then
Revision.module_gd:="@(#)$Id: module.gd,v 4.45 2002/04/15 10:05:03 sal Exp $";
DeclareSynonym("IsLeftOperatorAdditiveGroup",IsAdditiveGroup and IsExtLSet and IsDistributiveLOpDSum);
DeclareSynonym("IsLeftModule",IsLeftOperatorAdditiveGroup and IsLeftActedOnByRing and IsDistributiveLOpESum and IsAssociativeLOpEProd and IsTrivialLOpEOne);
DeclareSynonym("IsRightOperatorAdditiveGroup",IsAdditiveGroup and IsExtRSet and IsDistributiveROpDSum);
DeclareSynonym("IsRightModule",IsRightOperatorAdditiveGroup and IsRightActedOnByRing and IsDistributiveROpESum and IsAssociativeROpEProd and IsTrivialROpEOne);
DeclareCategory("IsFreeLeftModule",IsLeftModule);
DeclareProperty("IsFiniteDimensional",IsFreeLeftModule);
InstallSubsetMaintenance(IsFiniteDimensional,IsFreeLeftModule and IsFiniteDimensional,IsFreeLeftModule);
InstallFactorMaintenance(IsFiniteDimensional,IsFreeLeftModule and IsFiniteDimensional,IsObject,IsFreeLeftModule);
InstallTrueMethod(IsFiniteDimensional,IsFreeLeftModule and IsFinite);
DeclareProperty("IsFullRowModule",IsFreeLeftModule,20);
DeclareProperty("IsFullMatrixModule",IsFreeLeftModule,20);
DeclareCategory("IsHandledByNiceBasis",IsFreeLeftModule and IsAttributeStoringRep);
DeclareAttribute("Dimension",IsFreeLeftModule);
DeclareAttribute("GeneratorsOfLeftOperatorAdditiveGroup",IsLeftOperatorAdditiveGroup);
DeclareSynonymAttr("GeneratorsOfLeftModule",GeneratorsOfLeftOperatorAdditiveGroup);
DeclareAttribute("GeneratorsOfRightOperatorAdditiveGroup",IsRightOperatorAdditiveGroup);
DeclareSynonymAttr("GeneratorsOfRightModule",GeneratorsOfRightOperatorAdditiveGroup);
DeclareSynonymAttr("TrivialSubmodule",TrivialSubadditiveMagmaWithZero);
DeclareOperation("AsLeftModule",[IsRing,IsCollection]);
DeclareOperation("AsFreeLeftModule",[IsRing,IsCollection]);
DeclareOperation("ClosureLeftModule",[IsLeftModule,IsVector]);
DeclareOperation("LeftModuleByGenerators",[IsRing,IsCollection]);
DeclareOperation("LeftModuleByGenerators",[IsRing,IsListOrCollection,IsObject]);
DeclareOperation("UseBasis",[IsFreeLeftModule,IsHomogeneousList]);
DeclareGlobalFunction("FreeLeftModule");
DeclareGlobalFunction("FullRowModule");
DeclareGlobalFunction("FullMatrixModule");
DeclareGlobalFunction("StandardGeneratorsOfFullMatrixModule");
DeclareGlobalFunction("Submodule");
DeclareGlobalFunction("SubmoduleNC");
DeclareProperty("IsRowModule",IsFreeLeftModule);
InstallTrueMethod(IsRowModule,IsFullRowModule);
DeclareProperty("IsMatrixModule",IsFreeLeftModule);
InstallTrueMethod(IsMatrixModule,IsFullMatrixModule);
DeclareAttribute("DimensionOfVectors",IsFreeLeftModule);
InstallTrueMethod(IsFiniteDimensional,IsRowModule and IsFreeLeftModule);
InstallTrueMethod(IsFiniteDimensional,IsMatrixModule and IsFreeLeftModule);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/module.gd"

#F  file="lib/basis.gd" crc=-67709974
RANK_FILTER_LIST  := [ 33554403, 7, 1, 0, 1, 0, 843, 10, 993, 2, 1, 0, 
  33554403, 7, 1, 0, 1, 0, 16782445, 10, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 
  0, 16801894, 10, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 7826682, 10, 993, 
  2, 1, 0, 33554403, 7, 1, 0, 1, 0, 31303749, 10, 993, 2, 1, 0, 33554403, 7, 
  1, 0, 1, 0, 58103138, 10, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 49096404, 
  10, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 31082936, 10, 993, 2, 1, 0, 
  33554403, 7, 1, 0, 1, 0, 62164879, 10, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 
  0, 57219886, 10, 993, 2, 1, 0, 58132558, 23, 1, 0, 1, 0, 47329900, 26, 993, 
  2, 1, 0, 58132558, 23, 1, 0, 1, 0, 27550888, 26, 993, 2, 1, 0, 43093582, 
  13, 1, 0, 1, 0, 19079276, 16, 993, 2, 1, 0, 58132558, 23, 1, 0, 1, 0, 
  38158519, 26, 993, 2, 1, 0, 58132558, 23, 59047247, 26, 1, 0, 1, 0, 
  9208126, 27, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/basis.gd", -67709974 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/basis.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/basis.gd");
elif COM_RESULT = 3  then
Revision.basis_gd:="@(#)$Id: basis.gd,v 4.56 2002/04/15 10:04:26 sal Exp $";
DeclareCategory("IsBasis",IsHomogeneousList and IsDuplicateFreeList);
DeclareSynonym("IsFiniteBasisDefault",IsBasis and IsCopyable and IsListDefault);
DeclareProperty("IsCanonicalBasis",IsBasis);
DeclareProperty("IsCanonicalBasisFullRowModule",IsBasis);
InstallTrueMethod(IsCanonicalBasis,IsCanonicalBasisFullRowModule);
InstallTrueMethod(IsSmallList,IsList and IsCanonicalBasisFullRowModule);
DeclareProperty("IsCanonicalBasisFullMatrixModule",IsBasis);
InstallTrueMethod(IsCanonicalBasis,IsCanonicalBasisFullMatrixModule);
InstallTrueMethod(IsSmallList,IsList and IsCanonicalBasisFullMatrixModule);
DeclareProperty("IsIntegralBasis",IsBasis);
DeclareProperty("IsNormalBasis",IsBasis);
DeclareProperty("IsSemiEchelonized",IsBasis);
DeclareAttribute("BasisVectors",IsBasis);
DeclareAttribute("EnumeratorByBasis",IsBasis);
DeclareAttribute("StructureConstantsTable",IsBasis);
DeclareAttribute("UnderlyingLeftModule",IsBasis);
DeclareOperation("Coefficients",[IsBasis,IsVector]);
DeclareOperation("LinearCombination",[IsHomogeneousList,IsHomogeneousList]);
DeclareOperation("SiftedVector",[IsBasis,IsVector]);
DeclareOperation("IteratorByBasis",[IsBasis]);
DeclareAttribute("Basis",IsFreeLeftModule);
DeclareOperation("Basis",[IsFreeLeftModule,IsHomogeneousList]);
DeclareOperation("BasisNC",[IsFreeLeftModule,IsHomogeneousList]);
DeclareAttribute("SemiEchelonBasis",IsFreeLeftModule);
DeclareOperation("SemiEchelonBasis",[IsFreeLeftModule,IsHomogeneousList]);
DeclareOperation("SemiEchelonBasisNC",[IsFreeLeftModule,IsHomogeneousList]);
DeclareOperation("RelativeBasis",[IsBasis,IsHomogeneousList]);
DeclareOperation("RelativeBasisNC",[IsBasis,IsHomogeneousList]);
DeclareGlobalFunction("DeclareHandlingByNiceBasis");
DeclareGlobalFunction("InstallHandlingByNiceBasis");
BindGlobal("NiceBasisFiltersInfo",[]);
DeclareGlobalFunction("CheckForHandlingByNiceBasis");
InstallGlobalFunction("DeclareHandlingByNiceBasis",COM_FUN(1));
DeclareHandlingByNiceBasis("IsGenericFiniteSpace","for finite vector spaces (generic)");
DeclareCategory("IsBasisByNiceBasis",IsBasis and IsSmallList);
DeclareAttribute("NiceBasis",IsBasisByNiceBasis);
DeclareOperation("NiceBasisNC",[IsBasisByNiceBasis]);
DeclareAttribute("NiceFreeLeftModule",IsFreeLeftModule);
DeclareAttribute("NiceFreeLeftModuleInfo",IsFreeLeftModule and IsHandledByNiceBasis);
DeclareOperation("NiceVector",[IsFreeLeftModule and IsHandledByNiceBasis,IsObject]);
DeclareOperation("UglyVector",[IsFreeLeftModule and IsHandledByNiceBasis,IsObject]);
DeclareGlobalFunction("BasisWithReplacedLeftModule");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/basis.gd"

#F  file="lib/basismut.gd" crc=-3173808
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/basismut.gd", -3173808 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/basismut.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/basismut.gd");
elif COM_RESULT = 3  then
Revision.basismut_gd:="@(#)$Id: basismut.gd,v 4.16 2002/04/15 10:04:29 sal Exp $";
DeclareCategory("IsMutableBasis",IsObject);
DeclareOperation("MutableBasis",[IsRing,IsCollection]);
DeclareGlobalFunction("MutableBasisViaNiceMutableBasisMethod2");
DeclareGlobalFunction("MutableBasisViaNiceMutableBasisMethod3");
DeclareOperation("NrBasisVectors",[IsMutableBasis]);
DeclareOperation("ImmutableBasis",[IsMutableBasis]);
DeclareOperation("ImmutableBasis",[IsMutableBasis,IsFreeLeftModule]);
DeclareOperation("CloseMutableBasis",[IsMutableBasis and IsMutable,IsVector]);
DeclareOperation("IsContainedInSpan",[IsMutableBasis,IsVector]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/basismut.gd"

#F  file="lib/vspc.gd" crc=-27931115
RANK_FILTER_LIST  := [ 58132558, 23, 1, 0, 1, 0, 6553978, 26, 993, 2, 1, 0, 
  1, 0, 1, 0, 52429673, 29, 993, 2, 1, 0, 34353841, 6, 3197603, 7, 12790409, 
  7, 51161633, 7, 35215346, 7, 6643623, 7, 3717409, 9, 14869633, 13, 
  27731732, 19, 1, 0, 1, 0, 8389076, 25, 993, 2, 1, 0, 1, 0, 1, 0, 16778119, 
  29, 993, 2, 1, 0, 67108475, 7, 1, 0, 1, 0, 618, 10, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/vspc.gd", -27931115 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/vspc.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/vspc.gd");
elif COM_RESULT = 3  then
Revision.vspc_gd:="@(#)$Id: vspc.gd,v 4.41 2002/04/15 10:05:28 sal Exp $";
DeclareSynonym("IsLeftOperatorRing",IsLeftOperatorAdditiveGroup and IsRing and IsAssociativeLOpDProd);
DeclareSynonym("IsLeftOperatorRingWithOne",IsLeftOperatorAdditiveGroup and IsRingWithOne and IsAssociativeLOpDProd);
DeclareSynonym("IsLeftVectorSpace",IsLeftModule and IsLeftActedOnByDivisionRing);
DeclareSynonym("IsVectorSpace",IsLeftVectorSpace);
InstallTrueMethod(IsFreeLeftModule,IsLeftModule and IsLeftActedOnByDivisionRing);
DeclareFilter("IsGaussianSpace",IsVectorSpace);
InstallTrueMethod(IsGaussianSpace,IsVectorSpace and IsFullMatrixModule);
InstallTrueMethod(IsGaussianSpace,IsVectorSpace and IsFullRowModule);
DeclareSynonymAttr("IsDivisionRing",IsMagmaWithInversesIfNonzero and IsLeftOperatorRing and IsLeftVectorSpace and IsNonTrivial and IsAssociative);
DeclareSynonymAttr("GeneratorsOfLeftVectorSpace",GeneratorsOfLeftOperatorAdditiveGroup);
DeclareSynonymAttr("GeneratorsOfVectorSpace",GeneratorsOfLeftOperatorAdditiveGroup);
DeclareAttribute("CanonicalBasis",IsFreeLeftModule);
DeclareSynonym("IsRowSpace",IsRowModule and IsVectorSpace);
DeclareSynonym("IsGaussianRowSpace",IsGaussianSpace and IsRowSpace);
DeclareHandlingByNiceBasis("IsNonGaussianRowSpace","for non-Gaussian row spaces");
DeclareSynonym("IsMatrixSpace",IsMatrixModule and IsVectorSpace);
DeclareSynonym("IsGaussianMatrixSpace",IsGaussianSpace and IsMatrixSpace);
DeclareHandlingByNiceBasis("IsNonGaussianMatrixSpace","for non-Gaussian matrix spaces");
DeclareAttribute("NormedRowVectors",IsGaussianSpace);
DeclareSynonymAttr("NormedVectors",NormedRowVectors);
DeclareSynonymAttr("TrivialSubspace",TrivialSubmodule);
DeclareSynonym("VectorSpace",FreeLeftModule);
DeclareSynonym("Subspace",Submodule);
DeclareSynonym("SubspaceNC",SubmoduleNC);
DeclareSynonym("AsVectorSpace",AsLeftModule);
DeclareOperation("AsSubspace",[IsVectorSpace,IsCollection]);
DeclareGlobalFunction("Intersection2Spaces");
DeclareSynonym("FullRowSpace",FullRowModule);
DeclareSynonym("RowSpace",FullRowModule);
DeclareSynonym("FullMatrixSpace",FullMatrixModule);
DeclareSynonym("MatrixSpace",FullMatrixModule);
DeclareSynonym("MatSpace",FullMatrixModule);
DeclareCategory("IsSubspacesVectorSpace",IsDomain);
InstallTrueMethod(IsFinite,IsSubspacesVectorSpace);
DeclareAttribute("Subspaces",IsLeftModule);
DeclareOperation("Subspaces",[IsLeftModule,IsInt]);
DeclareSynonymAttr("SubspacesAll",Subspaces);
DeclareSynonym("SubspacesDim",Subspaces);
DeclareGlobalFunction("IsSubspace");
DeclareAttribute("OrthogonalSpaceInFullRowSpace",IsGaussianSpace);
DeclareProperty("IsVectorSpaceHomomorphism",IsGeneralMapping);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/vspc.gd"

#F  file="lib/vspchom.gd" crc=-60676341
RANK_FILTER_LIST  := [ 67108475, 7, 1, 0, 1, 0, 16833041, 10, 993, 2, 1, 0, 
  58132558, 23, 1, 0, 1, 0, 50718700, 26, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 
  0, 52042618, 10, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/vspchom.gd", -60676341 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/vspchom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/vspchom.gd");
elif COM_RESULT = 3  then
Revision.vspchom_gd:="@(#)$Id: vspchom.gd,v 4.17 2002/04/15 10:05:29 sal Exp $";
DeclareOperation("LeftModuleGeneralMappingByImages",[IsLeftModule,IsLeftModule,IsHomogeneousList,IsHomogeneousList]);
DeclareGlobalFunction("LeftModuleHomomorphismByImages");
DeclareOperation("LeftModuleHomomorphismByImagesNC",[IsLeftModule,IsLeftModule,IsList,IsList]);
DeclareAttribute("AsLeftModuleGeneralMappingByImages",IsGeneralMapping);
DeclareOperation("LeftModuleHomomorphismByMatrix",[IsBasis,IsMatrix,IsBasis]);
DeclareOperation("NaturalHomomorphismBySubspace",[IsLeftModule,IsLeftModule]);
DeclareGlobalFunction("NaturalHomomorphismBySubspaceOntoFullRowSpace");
DeclareProperty("IsFullHomModule",IsFreeLeftModule);
DeclareProperty("IsPseudoCanonicalBasisFullHomModule",IsBasis);
DeclareOperation("Hom",[IsRing,IsLeftModule,IsLeftModule]);
DeclareOperation("End",[IsRing,IsLeftModule]);
DeclareHandlingByNiceBasis("IsLinearMappingsModule","for free left modules of linear mappings");
InstallTrueMethod(IsFiniteDimensional,IsLinearMappingsModule);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/vspchom.gd"

#F  file="lib/zlattice.gd" crc=-2222222
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/zlattice.gd", -2222222 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/zlattice.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/zlattice.gd");
elif COM_RESULT = 3  then
Revision.zlattice_gd:="@(#)$Id: zlattice.gd,v 4.17 2002/04/15 10:05:30 sal Exp $";
DeclareInfoClass("InfoZLattice");
DeclareOperation("ScalarProduct",[IsVector,IsVector]);
DeclareOperation("ScalarProduct",[IsFreeLeftModule,IsVector,IsVector]);
DeclareGlobalFunction("StandardScalarProduct");
DeclareGlobalFunction("Decomposition");
DeclareGlobalFunction("LinearIndependentColumns");
DeclareGlobalFunction("PadicCoefficients");
DeclareGlobalFunction("IntegralizedMat");
DeclareGlobalFunction("DecompositionInt");
DeclareGlobalFunction("LLLReducedBasis");
DeclareGlobalFunction("LLLReducedGramMat");
DeclareGlobalFunction("ShortestVectors");
DeclareGlobalFunction("OrthogonalEmbeddings");
DeclareGlobalFunction("LLLint");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/zlattice.gd"

#F  file="lib/algebra.gd" crc=66241732
RANK_FILTER_LIST  := [ 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 
  13, 11766330, 26, 1, 0, 1, 0, 30862123, 39, 993, 2, 1, 0, 34353841, 6, 
  1598802, 7, 12790409, 7, 49544677, 11, 3717409, 9, 14869633, 13, 49765887, 
  22, 1, 0, 1, 0, 61723253, 32, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 
  12790409, 7, 49544677, 11, 31981434, 13, 3717409, 9, 14869633, 13, 
  14638441, 24, 1, 0, 1, 0, 56336634, 34, 993, 2, 1, 0, 34353841, 6, 1598802, 
  7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 45563396, 39, 993, 
  2, 1, 0, 33554403, 7, 1, 0, 1, 0, 24016920, 10, 993, 2, 1, 0, 33554403, 7, 
  1, 0, 1, 0, 48033807, 10, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 
  7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 
  3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 28957742, 39, 993, 2, 
  1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 
  35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 
  26, 1, 0, 1, 0, 57914491, 39, 993, 2, 1, 0, 49544677, 11, 3717409, 9, 
  14869633, 13, 1022838, 19, 1, 0, 1, 0, 48720070, 29, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 
  0, 30331228, 39, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 
  12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 
  9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 15532200, 39, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 
  0, 31064367, 39, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/algebra.gd", 66241732 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/algebra.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/algebra.gd");
elif COM_RESULT = 3  then
Revision.algebra_gd:="@(#)$Id: algebra.gd,v 4.74 2002/04/15 10:04:23 sal Exp $";
DeclareInfoClass("InfoAlgebra");
DeclareSynonym("IsFLMLOR",IsFreeLeftModule and IsLeftOperatorRing);
DeclareSynonym("IsFLMLORWithOne",IsFreeLeftModule and IsLeftOperatorRingWithOne);
DeclareSynonym("IsAlgebra",IsLeftVectorSpace and IsLeftOperatorRing);
DeclareSynonym("IsAlgebraWithOne",IsLeftVectorSpace and IsLeftOperatorRingWithOne);
DeclareSynonymAttr("IsLieAlgebra",IsAlgebra and IsZeroSquaredRing and IsJacobianRing);
DeclareProperty("IsSimpleAlgebra",IsAlgebra);
DeclareAttribute("GeneratorsOfLeftOperatorRing",IsLeftOperatorRing);
DeclareAttribute("GeneratorsOfLeftOperatorRingWithOne",IsLeftOperatorRingWithOne);
DeclareSynonymAttr("GeneratorsOfAlgebra",GeneratorsOfLeftOperatorRing);
DeclareSynonymAttr("GeneratorsOfFLMLOR",GeneratorsOfLeftOperatorRing);
DeclareSynonymAttr("GeneratorsOfAlgebraWithOne",GeneratorsOfLeftOperatorRingWithOne);
DeclareSynonymAttr("GeneratorsOfFLMLORWithOne",GeneratorsOfLeftOperatorRingWithOne);
DeclareAttribute("PowerSubalgebraSeries",IsAlgebra);
DeclareAttribute("AdjointBasis",IsBasis);
DeclareAttribute("IndicesOfAdjointBasis",IsBasis);
DeclareAttribute("RadicalOfAlgebra",IsAlgebra);
DeclareAttribute("DirectSumDecomposition",IsAlgebra);
DeclareSynonymAttr("TrivialSubFLMLOR",TrivialSubadditiveMagmaWithZero);
DeclareSynonymAttr("TrivialSubalgebra",TrivialSubFLMLOR);
DeclareAttribute("NullAlgebra",IsRing);
DeclareOperation("ProductSpace",[IsFreeLeftModule,IsFreeLeftModule]);
DeclareOperation("DirectSumOfAlgebras",[IsDenseList]);
DeclareGlobalFunction("FullMatrixAlgebraCentralizer");
DeclareOperation("AsFLMLOR",[IsRing,IsCollection]);
DeclareSynonym("AsAlgebra",AsFLMLOR);
DeclareOperation("AsFLMLORWithOne",[IsRing,IsCollection]);
DeclareSynonym("AsAlgebraWithOne",AsFLMLORWithOne);
DeclareOperation("AsSubFLMLOR",[IsFLMLOR,IsFLMLOR]);
DeclareSynonym("AsSubalgebra",AsSubFLMLOR);
DeclareOperation("AsSubFLMLORWithOne",[IsFLMLOR,IsFLMLOR]);
DeclareSynonym("AsSubalgebraWithOne",AsSubFLMLORWithOne);
DeclareGlobalFunction("EmptySCTable");
DeclareGlobalFunction("SetEntrySCTable");
DeclareGlobalFunction("ReducedSCTable");
DeclareGlobalFunction("GapInputSCTable");
DeclareGlobalFunction("IdentityFromSCTable");
DeclareGlobalFunction("QuotientFromSCTable");
DeclareGlobalFunction("TestJacobi");
DeclareOperation("ClosureLeftOperatorRing",[IsLeftOperatorRing,IsObject]);
DeclareSynonym("ClosureAlgebra",ClosureLeftOperatorRing);
DeclareGlobalFunction("MutableBasisOfClosureUnderAction");
DeclareGlobalFunction("MutableBasisOfNonassociativeAlgebra");
DeclareGlobalFunction("MutableBasisOfIdealInNonassociativeAlgebra");
DeclareOperation("FLMLORByGenerators",[IsRing,IsCollection]);
DeclareSynonym("AlgebraByGenerators",FLMLORByGenerators);
DeclareGlobalFunction("FLMLOR");
DeclareSynonym("Algebra",FLMLOR);
DeclareGlobalFunction("SubFLMLOR");
DeclareSynonym("Subalgebra",SubFLMLOR);
DeclareGlobalFunction("SubFLMLORNC");
DeclareSynonym("SubalgebraNC",SubFLMLORNC);
DeclareOperation("FLMLORWithOneByGenerators",[IsRing,IsCollection]);
DeclareSynonym("AlgebraWithOneByGenerators",FLMLORWithOneByGenerators);
DeclareGlobalFunction("FLMLORWithOne");
DeclareSynonym("AlgebraWithOne",FLMLORWithOne);
DeclareGlobalFunction("SubFLMLORWithOne");
DeclareSynonym("SubalgebraWithOne",SubFLMLORWithOne);
DeclareGlobalFunction("SubFLMLORWithOneNC");
DeclareSynonym("SubalgebraWithOneNC",SubFLMLORWithOneNC);
DeclareGlobalFunction("LieAlgebra");
DeclareAttribute("LieAlgebraByDomain",IsAlgebra);
DeclareOperation("AsLieAlgebra",[IsDivisionRing,IsCollection]);
DeclareGlobalFunction("FreeAlgebra");
DeclareGlobalFunction("FreeAlgebraWithOne");
DeclareGlobalFunction("FreeAssociativeAlgebra");
DeclareGlobalFunction("FreeAssociativeAlgebraWithOne");
DeclareGlobalFunction("AlgebraByStructureConstants");
DeclareGlobalFunction("LieAlgebraByStructureConstants");
DeclareCategory("IsQuaternion",IsScalar and IsAssociative);
DeclareCategoryCollections("IsQuaternion");
DeclareCategoryCollections("IsQuaternionCollection");
DeclareGlobalFunction("QuaternionAlgebra");
DeclareGlobalFunction("ComplexificationQuat");
DeclareGlobalFunction("OctaveAlgebra");
DeclareGlobalFunction("FullMatrixFLMLOR");
DeclareSynonym("FullMatrixAlgebra",FullMatrixFLMLOR);
DeclareSynonym("MatrixAlgebra",FullMatrixFLMLOR);
DeclareSynonym("MatAlgebra",FullMatrixFLMLOR);
DeclareGlobalFunction("FullMatrixLieFLMLOR");
DeclareSynonym("FullMatrixLieAlgebra",FullMatrixLieFLMLOR);
DeclareSynonym("MatrixLieAlgebra",FullMatrixLieFLMLOR);
DeclareSynonym("MatLieAlgebra",FullMatrixLieFLMLOR);
DeclareSynonym("IsMatrixFLMLOR",IsFLMLOR and IsRingElementCollCollColl);
InstallTrueMethod(IsFiniteDimensional,IsMatrixFLMLOR);
DeclareSynonym("CentralIdempotentsOfAlgebra",CentralIdempotentsOfSemiring);
DeclareAttribute("LeviMalcevDecomposition",IsAlgebra);
DeclareGlobalFunction("CentralizerInFiniteDimensionalAlgebra");
DeclareOperation("IsNilpotentElement",[IsAlgebra,IsRingElement]);
DeclareSynonym("IsLieNilpotentElement",IsNilpotentElement);
DeclareAttribute("Grading",IsAlgebra);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/algebra.gd"

#F  file="lib/mgmring.gd" crc=18218962
RANK_FILTER_LIST  := [ 62127709, 11, 1, 0, 1, 0, 16777324, 14, 993, 2, 1, 0, 
  62127709, 11, 1, 0, 1, 0, 33554615, 14, 993, 2, 1, 0, 67108490, 36, 1, 0, 
  1, 0, 21910765, 39, 993, 2, 1, 0, 67108490, 36, 1, 0, 1, 0, 28755968, 39, 
  993, 2, 1, 0, 67108490, 36, 1, 0, 1, 0, 42445414, 39, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/mgmring.gd", 18218962 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/mgmring.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/mgmring.gd");
elif COM_RESULT = 3  then
Revision.mgmring_gd:="@(#)$Id: mgmring.gd,v 4.33 2002/04/15 10:05:03 sal Exp $";
DeclareCategory("IsElementOfMagmaRingModuloRelations",IsScalar);
DeclareCategoryCollections("IsElementOfMagmaRingModuloRelations");
DeclareCategoryFamily("IsElementOfMagmaRingModuloRelations");
DeclareCategory("IsElementOfFreeMagmaRing",IsElementOfMagmaRingModuloRelations);
DeclareCategoryCollections("IsElementOfFreeMagmaRing");
DeclareCategoryFamily("IsElementOfFreeMagmaRing");
DeclareAttribute("CoefficientsAndMagmaElements",IsElementOfMagmaRingModuloRelations);
DeclareAttribute("ZeroCoefficient",IsElementOfMagmaRingModuloRelations);
DeclareOperation("NormalizedElementOfMagmaRingModuloRelations",[IsElementOfMagmaRingModuloRelationsFamily,IsList]);
DeclareCategory("IsMagmaRingModuloRelations",IsFLMLOR);
DeclareCategory("IsFreeMagmaRing",IsMagmaRingModuloRelations);
DeclareSynonym("IsFreeMagmaRingWithOne",IsFreeMagmaRing and IsMagmaWithOne);
DeclareProperty("IsGroupRing",IsFreeMagmaRing);
DeclareAttribute("UnderlyingMagma",IsFreeMagmaRing);
DeclareOperation("ElementOfMagmaRing",[IsFamily,IsRingElement,IsHomogeneousList,IsHomogeneousList]);
DeclareGlobalFunction("FreeMagmaRing");
DeclareGlobalFunction("GroupRing");
DeclareAttribute("AugmentationIdeal",IsFreeMagmaRing);
DeclareGlobalFunction("MagmaRingModuloSpanOfZero");
DeclareCategory("IsMagmaRingModuloSpanOfZero",IsMagmaRingModuloRelations);
DeclareCategory("IsElementOfMagmaRingModuloSpanOfZeroFamily",IsElementOfMagmaRingModuloRelationsFamily);
DeclareHandlingByNiceBasis("IsSpaceOfElementsOfMagmaRing","for free left modules of magma rings modulo relations");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/mgmring.gd"

#F  file="lib/algfp.gd" crc=69739974
RANK_FILTER_LIST  := [ 34353841, 6, 1598802, 7, 12790409, 7, 49544677, 11, 
  3717409, 9, 14869633, 13, 58132558, 23, 34341449, 14, 8022134, 31, 1, 0, 1, 
  0, 12593129, 38, 993, 2, 1, 0, 3148035, 37, 3148035, 37, 1, 0, 1, 0, 
  25185265, 43, 993, 2, 1, 0, 3148035, 37, 3148035, 37, 1, 0, 1, 0, 50369537, 
  43, 993, 2, 1, 0, 3148035, 37, 3148035, 37, 1, 0, 1, 0, 33630162, 43, 993, 
  2, 1, 0, 1, 0, 1, 0, 299911, 3, 993, 2, 1, 0, 1985, 1, 1, 0, 1, 0, 598829, 
  4, 993, 2, 1, 0, 3148035, 37, 1, 0, 1, 0, 1196665, 40, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/algfp.gd", 69739974 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/algfp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/algfp.gd");
elif COM_RESULT = 3  then
Revision.algfp_gd:="@(#)$Id: algfp.gd,v 4.18 2002/04/15 10:04:24 sal Exp $";
DeclareCategory("IsElementOfFpAlgebra",IsRingElement);
DeclareCategoryCollections("IsElementOfFpAlgebra");
DeclareCategoryFamily("IsElementOfFpAlgebra");
DeclareCategory("IsSubalgebraFpAlgebra",IsAlgebra);
InstallTrueMethod(IsSubalgebraFpAlgebra,IsAlgebra and IsElementOfFpAlgebraCollection);
DeclareProperty("IsFullFpAlgebra",IsFLMLOR and IsElementOfFpAlgebraCollection);
DeclareOperation("ElementOfFpAlgebra",[IsElementOfFpAlgebraFamily,IsRingElement]);
DeclareOperation("MappedExpression",[IsElementOfFpAlgebra,IsHomogeneousList,IsHomogeneousList]);
DeclareGlobalFunction("FactorFreeAlgebraByRelators");
DeclareAttribute("FreeGeneratorsOfFpAlgebra",IsSubalgebraFpAlgebra and IsFullFpAlgebra);
DeclareAttribute("RelatorsOfFpAlgebra",IsSubalgebraFpAlgebra and IsFullFpAlgebra);
DeclareAttribute("FreeAlgebraOfFpAlgebra",IsSubalgebraFpAlgebra and IsFullFpAlgebra);
DeclareProperty("IsNormalForm",IsObject);
DeclareAttribute("NiceNormalFormByExtRepFunction",IsFamily);
DeclareAttribute("NiceAlgebraMonomorphism",IsSubalgebraFpAlgebra);
InstallSubsetMaintenance(NiceAlgebraMonomorphism,IsFreeLeftModule and HasNiceAlgebraMonomorphism,IsFreeLeftModule);
DeclareHandlingByNiceBasis("IsFpAlgebraElementsSpace","for free left modules of f.p. algebra elements");
DeclareGlobalFunction("FpAlgebraByGeneralizedCartanMatrix");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/algfp.gd"

#F  file="lib/alglie.gd" crc=-67890536
RANK_FILTER_LIST  := [ 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 
  13, 11766330, 26, 1, 0, 1, 0, 9569249, 45, 993, 2, 1, 0, 34353841, 6, 
  1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 
  49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 38274017, 
  45, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 
  13, 11766330, 26, 1, 0, 1, 0, 18875331, 45, 993, 2, 1, 0, 34353841, 6, 
  1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 
  49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 37749669, 
  45, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 
  13, 11766330, 26, 1, 0, 1, 0, 8389466, 45, 993, 2, 1, 0, 34353841, 6, 
  1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 
  49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 33554885, 
  45, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 
  13, 11766330, 26, 1, 0, 1, 0, 858, 45, 993, 2, 1, 0, 34353841, 6, 1598802, 
  7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 2719522, 45, 993, 
  2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 
  35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 
  26, 1, 0, 1, 0, 8156850, 45, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 
  19031506, 10, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 40779858, 10, 993, 2, 
  1, 0, 33554403, 7, 1, 0, 1, 0, 17169603, 10, 993, 2, 1, 0, 34353841, 6, 
  1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 
  49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 65965225, 
  45, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 64820578, 10, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 
  0, 62531284, 45, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 
  12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 
  9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 57952696, 45, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 
  0, 48795520, 45, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 
  12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 
  9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 30481168, 45, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 
  0, 60961343, 45, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 
  12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 
  9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 54813774, 45, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 
  0, 42518636, 45, 993, 2, 1, 0, 35855695, 2, 1, 0, 1, 0, 4604462, 5, 993, 2, 
  1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 
  35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 
  26, 1, 0, 1, 0, 9207931, 45, 993, 2, 1, 0, 17927368, 1, 1, 0, 1, 0, 
  18415829, 4, 993, 2, 1, 0, 17927368, 1, 1, 0, 1, 0, 36831625, 4, 993, 2, 1, 
  0, 35855695, 2, 1, 0, 1, 0, 6554338, 5, 993, 2, 1, 0, 35855695, 2, 1, 0, 1, 
  0, 13107683, 5, 993, 2, 1, 0, 17927368, 1, 1, 0, 1, 0, 26215333, 4, 993, 2, 
  1, 0, 17927368, 1, 1, 0, 1, 0, 52429673, 4, 993, 2, 1, 0, 17927368, 1, 1, 
  0, 1, 0, 37749474, 4, 993, 2, 1, 0, 35855695, 2, 1, 0, 1, 0, 8389076, 5, 
  993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 
  7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 
  11766330, 26, 1, 0, 1, 0, 16778119, 45, 993, 2, 1, 0, 34353841, 6, 1598802, 
  7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 33555245, 45, 993, 
  2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 453, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 873, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/alglie.gd", -67890536 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/alglie.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/alglie.gd");
elif COM_RESULT = 3  then
Revision.alglie_gd:="@(#)$Id: alglie.gd,v 4.43 2002/04/15 10:04:24 sal Exp $";
DeclareProperty("IsLieAbelian",IsAlgebra and IsLieAlgebra);
DeclareProperty("IsLieNilpotent",IsAlgebra and IsLieAlgebra);
DeclareProperty("IsRestrictedLieAlgebra",IsAlgebra and IsLieAlgebra);
DeclareAttribute("LieDerivedSubalgebra",IsAlgebra and IsLieAlgebra);
DeclareAttribute("LieDerivedSeries",IsAlgebra and IsLieAlgebra);
DeclareProperty("IsLieSolvable",IsAlgebra and IsLieAlgebra);
DeclareAttribute("LieLowerCentralSeries",IsAlgebra and IsLieAlgebra);
DeclareAttribute("LieUpperCentralSeries",IsAlgebra and IsLieAlgebra);
DeclareAttribute("LieCentre",IsAlgebra and IsLieAlgebra);
DeclareSynonymAttr("LieCenter",LieCentre);
DeclareAttribute("RightDerivations",IsBasis);
DeclareAttribute("LeftDerivations",IsBasis);
DeclareSynonymAttr("Derivations",RightDerivations);
DeclareAttribute("KillingMatrix",IsBasis);
DeclareAttribute("CartanSubalgebra",IsAlgebra and IsLieAlgebra);
DeclareAttribute("PthPowerImages",IsBasis);
DeclareAttribute("NonNilpotentElement",IsAlgebra and IsLieAlgebra);
DeclareSynonymAttr("NonLieNilpotentElement",NonNilpotentElement);
DeclareOperation("AdjointAssociativeAlgebra",[IsAlgebra and IsLieAlgebra,IsAlgebra and IsLieAlgebra]);
DeclareAttribute("LieNilRadical",IsAlgebra and IsLieAlgebra);
DeclareAttribute("LieSolvableRadical",IsAlgebra and IsLieAlgebra);
DeclareAttribute("SemiSimpleType",IsAlgebra and IsLieAlgebra);
DeclareOperation("LieCentralizer",[IsAlgebra and IsLieAlgebra,IsVectorSpace]);
DeclareAttribute("LieCentralizerInParent",IsAlgebra and IsLieAlgebra);
DeclareOperation("LieNormalizer",[IsAlgebra and IsLieAlgebra,IsVectorSpace]);
DeclareAttribute("LieNormalizerInParent",IsAlgebra and IsLieAlgebra);
DeclareOperation("AdjointMatrix",[IsBasis,IsRingElement]);
DeclareOperation("KappaPerp",[IsAlgebra and IsLieAlgebra,IsVectorSpace]);
DeclareGlobalFunction("PowerSi");
DeclareAttribute("PowerS",IsAlgebra and IsLieAlgebra);
DeclareOperation("PthPowerImage",[IsBasis,IsRingElement]);
DeclareGlobalFunction("FindSl2");
DeclareCategory("IsRootSystem",IsObject);
DeclareCategory("IsRootSystemFromLieAlgebra",IsRootSystem);
DeclareAttribute("UnderlyingLieAlgebra",IsRootSystemFromLieAlgebra);
DeclareAttribute("RootSystem",IsAlgebra and IsLieAlgebra);
DeclareAttribute("PositiveRoots",IsRootSystem);
DeclareAttribute("NegativeRoots",IsRootSystem);
DeclareAttribute("PositiveRootVectors",IsRootSystemFromLieAlgebra);
DeclareAttribute("NegativeRootVectors",IsRootSystemFromLieAlgebra);
DeclareAttribute("SimpleSystem",IsRootSystem);
DeclareAttribute("CartanMatrix",IsRootSystem);
DeclareAttribute("BilinearFormMat",IsRootSystem);
DeclareAttribute("CanonicalGenerators",IsRootSystemFromLieAlgebra);
DeclareAttribute("ChevalleyBasis",IsLieAlgebra);
DeclareGlobalFunction("SimpleLieAlgebra");
DeclareGlobalFunction("DescriptionOfNormalizedUEAElement");
DeclareAttribute("UniversalEnvelopingAlgebra",IsLieAlgebra);
DeclareGlobalFunction("FreeLieAlgebra");
DeclareCategory("IsFamilyElementOfFreeLieAlgebra",IsElementOfMagmaRingModuloRelationsFamily);
DeclareCategory("IsFptoSCAMorphism",IsAlgebraGeneralMapping and IsTotal and IsSingleValued);
DeclareGlobalFunction("FpLieAlgebraByCartanMatrix");
DeclareGlobalFunction("FpLieAlgebraEnumeration");
DeclareGlobalFunction("NilpotentQuotientOfFpLieAlgebra");
DeclareAttribute("JenningsLieAlgebra",IsGroup);
DeclareAttribute("PCentralLieAlgebra",IsGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/alglie.gd"

#F  file="lib/algsc.gd" crc=6161889
RANK_FILTER_LIST  := [ 34353841, 6, 1598802, 7, 12790409, 7, 49544677, 11, 
  3717409, 9, 14869633, 13, 58132558, 23, 53077017, 16, 26757702, 33, 1, 0, 
  1, 0, 59391402, 40, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 36235992, 10, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/algsc.gd", 6161889 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/algsc.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/algsc.gd");
elif COM_RESULT = 3  then
Revision.algsc_gd:="@(#)$Id: algsc.gd,v 4.15 2002/04/15 10:04:25 sal Exp $";
DeclareSynonym("SCTableEntry",SC_TABLE_ENTRY);
DeclareSynonym("SCTableProduct",SC_TABLE_PRODUCT);
DeclareCategory("IsFamilyOverFullCoefficientsFamily",IsFamily);
DeclareCategory("IsSCAlgebraObj",IsScalar);
DeclareCategoryCollections("IsSCAlgebraObj");
DeclareCategoryCollections("IsSCAlgebraObjCollection");
DeclareCategoryCollections("IsSCAlgebraObjCollColl");
DeclareCategoryFamily("IsSCAlgebraObj");
DeclareProperty("IsFullSCAlgebra",IsFLMLOR and IsSCAlgebraObjCollection);
DeclareProperty("IsCanonicalBasisFullSCAlgebra",IsBasis);
InstallTrueMethod(IsCanonicalBasis,IsCanonicalBasisFullSCAlgebra);
DeclareHandlingByNiceBasis("IsSCAlgebraObjSpace","for free left modules of s.c. algebra elements");
InstallTrueMethod(IsFiniteDimensional,IsFreeLeftModule and IsSCAlgebraObjCollection);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/algsc.gd"

#F  file="lib/alghom.gd" crc=-129281265
RANK_FILTER_LIST  := [ 34353841, 6, 1598802, 7, 12790409, 7, 49544677, 11, 
  3717409, 9, 14869633, 13, 58132558, 23, 40789565, 30, 1, 0, 1, 0, 10723231, 
  37, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 12790409, 7, 49544677, 11, 
  3717409, 9, 14869633, 13, 58132558, 23, 40789565, 30, 1, 0, 1, 0, 21445469, 
  37, 993, 2, 1, 0, 33554403, 7, 1, 0, 1, 0, 42890905, 10, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/alghom.gd", -129281265 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/alghom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/alghom.gd");
elif COM_RESULT = 3  then
Revision.alghom_gd:="@(#)$Id: alghom.gd,v 4.15 2002/04/15 10:04:24 sal Exp $";
DeclareOperation("AlgebraGeneralMappingByImages",[IsFLMLOR,IsFLMLOR,IsHomogeneousList,IsHomogeneousList]);
DeclareGlobalFunction("AlgebraHomomorphismByImages");
DeclareOperation("AlgebraHomomorphismByImagesNC",[IsFLMLOR,IsFLMLOR,IsHomogeneousList,IsHomogeneousList]);
DeclareOperation("AlgebraWithOneGeneralMappingByImages",[IsFLMLOR,IsFLMLOR,IsHomogeneousList,IsHomogeneousList]);
DeclareGlobalFunction("AlgebraWithOneHomomorphismByImages");
DeclareOperation("AlgebraWithOneHomomorphismByImagesNC",[IsFLMLOR,IsFLMLOR,IsHomogeneousList,IsHomogeneousList]);
DeclareOperation("NaturalHomomorphismByIdeal",[IsFLMLOR,IsFLMLOR]);
DeclareOperation("OperationAlgebraHomomorphism",[IsFLMLOR,IsBasis,IsFunction]);
DeclareGlobalFunction("InducedLinearAction");
DeclareOperation("MakePreImagesInfoOperationAlgebraHomomorphism",[IsAlgebraGeneralMapping]);
DeclareAttribute("IsomorphismFpFLMLOR",IsFLMLOR);
DeclareSynonymAttr("IsomorphismFpAlgebra",IsomorphismFpFLMLOR);
DeclareAttribute("IsomorphismMatrixFLMLOR",IsFLMLOR);
DeclareSynonymAttr("IsomorphismMatrixAlgebra",IsomorphismMatrixFLMLOR);
DeclareAttribute("IsomorphismSCFLMLOR",IsBasis);
DeclareAttribute("IsomorphismSCFLMLOR",IsFLMLOR);
DeclareSynonymAttr("IsomorphismSCAlgebra",IsomorphismSCFLMLOR);
DeclareOperation("RepresentativeLinearOperation",[IsFLMLOR,IsVector,IsVector,IsFunction]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/alghom.gd"

#F  file="lib/liefam.gd" crc=84870711
RANK_FILTER_LIST  := [ 1985, 1, 1, 0, 1, 0, 7582614, 4, 993, 2, 1, 0, 1, 0, 
  1, 0, 15164235, 3, 993, 2, 1, 0, 476657, 4, 7626497, 3, 24902901, 3, 1, 0, 
  1, 0, 30327477, 11, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/liefam.gd", 84870711 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/liefam.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/liefam.gd");
elif COM_RESULT = 3  then
Revision.liefam_gd:="@(#)$Id: liefam.gd,v 4.24 2002/04/15 10:04:54 sal Exp $";
DeclareCategory("IsLieObject",IsRingElement and IsZeroSquaredElement and IsJacobianElement);
DeclareCategoryCollections("IsLieObject");
DeclareAttribute("LieFamily",IsFamily);
DeclareAttribute("UnderlyingFamily",IsObject);
DeclareAttribute("LieObject",IsRingElement);
DeclareHandlingByNiceBasis("IsLieObjectsModule","for free left modules of Lie objects");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/liefam.gd"

#F  file="lib/algrep.gd" crc=109632957
RANK_FILTER_LIST  := [ 34353841, 6, 3197603, 7, 12790409, 7, 51161633, 7, 
  35215346, 7, 6643623, 7, 3717409, 9, 14869633, 13, 27731732, 19, 1, 0, 1, 
  0, 50332431, 25, 993, 2, 1, 0, 34353841, 6, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 3717409, 9, 14869633, 13, 27731732, 
  19, 1, 0, 1, 0, 108, 25, 993, 2, 1, 0, 34353841, 6, 3197603, 7, 12790409, 
  7, 51161633, 7, 35215346, 7, 6643623, 7, 3717409, 9, 14869633, 13, 
  27731732, 19, 1, 0, 1, 0, 62498885, 25, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 
  53278531, 27, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 34837823, 27, 993, 2, 1, 0, 
  1, 0, 1, 0, 1, 0, 65064326, 27, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 
  3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 40846169, 39, 993, 
  2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 
  35215346, 7, 6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 
  26, 1, 0, 1, 0, 14582466, 39, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/algrep.gd", 109632957 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/algrep.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/algrep.gd");
elif COM_RESULT = 3  then
Revision.algrep_gd:="@(#)$Id: algrep.gd,v 4.18 2002/04/15 10:04:25 sal Exp $";
DeclareCategory("IsAlgebraModuleElement",IsVector);
DeclareCategoryCollections("IsAlgebraModuleElement");
DeclareCategoryFamily("IsAlgebraModuleElement");
DeclareCategory("IsLeftAlgebraModuleElement",IsAlgebraModuleElement);
DeclareCategoryCollections("IsLeftAlgebraModuleElement");
DeclareCategory("IsRightAlgebraModuleElement",IsAlgebraModuleElement);
DeclareCategoryCollections("IsRightAlgebraModuleElement");
DeclareProperty("IsAlgebraModule",IsLeftModule);
DeclareProperty("IsLeftAlgebraModule",IsLeftModule);
DeclareProperty("IsRightAlgebraModule",IsLeftModule);
DeclareAttribute("LeftActingAlgebra",IsAlgebraModule);
DeclareAttribute("RightActingAlgebra",IsAlgebraModule);
DeclareOperation("ActingAlgebra",[IsAlgebraModule]);
DeclareAttribute("GeneratorsOfAlgebraModule",IsAlgebraModule);
DeclareOperation("LeftAlgebraModuleByGenerators",[IsAlgebra,IS_FUNCTION,IsHomogeneousList]);
DeclareOperation("RightAlgebraModuleByGenerators",[IsAlgebra,IS_FUNCTION,IsHomogeneousList]);
DeclareOperation("BiAlgebraModuleByGenerators",[IsAlgebra,IsAlgebra,IS_FUNCTION,IS_FUNCTION,IsHomogeneousList]);
DeclareOperation("LeftAlgebraModule",[IsAlgebra,IS_FUNCTION,IsVectorSpace]);
DeclareOperation("RightAlgebraModule",[IsAlgebra,IS_FUNCTION,IsVectorSpace]);
DeclareOperation("BiAlgebraModule",[IsAlgebra,IsAlgebra,IS_FUNCTION,IS_FUNCTION,IsVectorSpace]);
DeclareCategory("IsBasisOfAlgebraModuleElementSpace",IsBasis);
DeclareOperation("SubAlgebraModule",[IsAlgebraModule,IsAlgebraModuleElementCollection]);
DeclareOperation("LeftModuleByHomomorphismToMatAlg",[IsAlgebra,IsAlgebraHomomorphism]);
DeclareOperation("RightModuleByHomomorphismToMatAlg",[IsAlgebra,IsAlgebraHomomorphism]);
DeclareAttribute("AdjointModule",IsAlgebra);
DeclareAttribute("FaithfulModule",IsAlgebra);
DeclareOperation("ModuleByRestriction",[IsAlgebraModule,IsAlgebra]);
DeclareOperation("NaturalHomomorphismBySubAlgebraModule",[IsAlgebraModule,IsAlgebraModule]);
DeclareOperation("MatrixOfAction",[IsBasisOfAlgebraModuleElementSpace,IsObject]);
DeclareCategory("IsMonomialElement",IsVector);
DeclareCategoryCollections("IsMonomialElement");
DeclareCategoryFamily("IsMonomialElement");
DeclareOperation("ConvertToNormalFormMonomialElement",[IsMonomialElement]);
DeclareCategory("IsTensorElement",IsMonomialElement);
DeclareCategoryCollections("IsTensorElement");
DeclareOperation("TensorProduct",[IsList]);
DeclareOperation("TensorProductOfAlgebraModules",[IsList]);
DeclareCategory("IsWedgeElement",IsMonomialElement);
DeclareCategoryCollections("IsWedgeElement");
DeclareOperation("ExteriorPower",[IsLeftModule,IsInt]);
DeclareOperation("ExteriorPowerOfAlgebraModule",[IsAlgebraModule,IsInt]);
DeclareCategory("IsSymmetricPowerElement",IsMonomialElement);
DeclareCategoryCollections("IsSymmetricPowerElement");
DeclareOperation("SymmetricPower",[IsLeftModule,IsInt]);
DeclareOperation("SymmetricPowerOfAlgebraModule",[IsAlgebraModule,IsInt]);
DeclareCategory("IsDirectSumElement",IsVector);
DeclareCategoryCollections("IsDirectSumElement");
DeclareCategoryFamily("IsDirectSumElement");
DeclareOperation("DirectSumOfAlgebraModules",[IsList]);
DeclareCategory("IsSparseRowSpaceElement",IsVector);
DeclareCategoryCollections("IsSparseRowSpaceElement");
DeclareCategoryFamily("IsSparseRowSpaceElement");
DeclareOperation("FullSparseRowSpace",[IsRing,IsInt]);
DeclareHandlingByNiceBasis("IsDirectSumElementsSpace","for free left modules of direct-sum-elements");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/algrep.gd"

#F  file="lib/lierep.gd" crc=-90441946
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 50331756, 21, 
  993, 2, 1, 0, 17927368, 1, 1, 0, 1, 0, 33554600, 4, 993, 2, 1, 0, 1, 0, 1, 
  0, 1, 0, 288, 23, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 543, 23, 993, 2, 1, 0, 
  17927368, 1, 1, 0, 1, 0, 93, 4, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 
  3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 6223969, 45, 993, 
  2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/lierep.gd", -90441946 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/lierep.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/lierep.gd");
elif COM_RESULT = 3  then
Revision.lierep_gd:="@(#)$Id: lierep.gd,v 4.23 2002/04/15 10:04:54 sal Exp $";
DeclareCategory("IsCochain",IsVector);
DeclareCategoryCollections("IsCochain");
DeclareOperation("Cochain",[IsLeftModule,IsInt,IsObject]);
DeclareOperation("CochainSpace",[IsAlgebraModule,IS_INT]);
DeclareGlobalFunction("ValueCochain");
DeclareGlobalFunction("LieCoboundaryOperator","Lie coboundary operator");
DeclareOperation("Cocycles",[IsAlgebraModule,IS_INT]);
DeclareOperation("Coboundaries",[IsAlgebraModule,IS_INT]);
DeclareProperty("IsWeylGroup",IsGroup);
DeclareAttribute("WeylGroup",IsRootSystem);
DeclareAttribute("SparseCartanMatrix",IsWeylGroup);
DeclareOperation("ApplySimpleReflection",[IsList,IS_INT,IsList]);
DeclareAttribute("LongestWeylWordPerm",IsWeylGroup);
DeclareOperation("ConjugateDominantWeight",[IsWeylGroup,IsList]);
DeclareOperation("ConjugateDominantWeightWithWord",[IsWeylGroup,IsList]);
DeclareOperation("WeylOrbitIterator",[IsWeylGroup,IsList]);
DeclareAttribute("PositiveRootsAsWeights",IsRootSystem);
DeclareOperation("DominantWeights",[IsRootSystem,IsList]);
DeclareOperation("DominantCharacter",[IsRootSystem,IsList]);
DeclareOperation("DecomposeTensorProduct",[IsLieAlgebra,IsList,IsList]);
DeclareOperation("DimensionOfHighestWeightModule",[IsLieAlgebra,IsList]);
DeclareCategory("IsUEALatticeElement",IsVector and IsRingElement and IsMultiplicativeElementWithOne);
DeclareCategoryCollections("IsUEALatticeElement");
DeclareCategoryFamily("IsUEALatticeElement");
DeclareAttribute("LatticeGeneratorsInUEA",IsLieAlgebra);
DeclareGlobalFunction("CollectUEALatticeElement");
DeclareCategory("IsWeightRepElement",IsVector);
DeclareCategoryCollections("IsWeightRepElement");
DeclareCategoryFamily("IsWeightRepElement");
DeclareCategory("IsBasisOfWeightRepElementSpace",IsBasis);
DeclareOperation("HighestWeightModule",[IsAlgebra,IsList]);
DeclareOperation("LeadingUEALatticeMonomial",[IsInt,IsUEALatticeElement]);
DeclareGlobalFunction("LeftReduceUEALatticeElement");
DeclareGlobalFunction("ExtendRepresentation");
DeclareHandlingByNiceBasis("IsCochainsSpace","for free left modules of cochains");
DeclareInfoClass("InfoSearchTable");
DeclareCategory("IsSearchTable",IsObject);
DeclareOperation("Search",[IsSearchTable,IsObject]);
DeclareOperation("Insert",[IsSearchTable,IsObject,IsObject]);
DeclareCategory("IsVectorSearchTable",IsSearchTable);
DeclareGlobalFunction("VectorSearchTable");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/lierep.gd"

#F  file="lib/integer.gd" crc=124541083
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/integer.gd", 124541083 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/integer.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/integer.gd");
elif COM_RESULT = 3  then
Revision.integer_gd:="@(#)$Id: integer.gd,v 4.30 2002/04/15 10:04:54 sal Exp $";
DeclareCategory("IsIntegers",IsEuclideanRing and IsFLMLOR);
DeclareCategory("IsPositiveIntegers",IsSemiringWithOne);
DeclareCategory("IsNonnegativeIntegers",IsSemiringWithOneAndZero);
DeclareGlobalVariable("Integers","ring of integers");
DeclareGlobalVariable("PositiveIntegers","semiring of positive integers");
DeclareGlobalVariable("NonnegativeIntegers","semiring of nonnegative integers");
DeclareCategory("IsGaussianIntegers",IsEuclideanRing and IsFLMLOR and IsFiniteDimensional);
DeclareGlobalVariable("GaussianIntegers","ring of Gaussian integers");
DeclareGlobalVariable("Primes","list of the 168 primes less than 1000");
DeclareGlobalVariable("Primes2","sorted list of large primes");
DeclareGlobalFunction("AbsInt");
DeclareGlobalFunction("BestQuoInt");
DeclareGlobalFunction("ChineseRem");
DeclareGlobalFunction("CoefficientsQadic");
DeclareGlobalFunction("CoefficientsMultiadic");
DeclareGlobalFunction("DivisorsInt");
DeclareGlobalFunction("FactorsInt");
DeclareGlobalFunction("Gcdex");
DeclareGlobalFunction("IsEvenInt");
DeclareGlobalFunction("IsOddInt");
UnbindGlobal("IsPrimeInt");
DeclareGlobalFunction("IsPrimeInt");
DeclareGlobalFunction("IsProbablyPrimeInt");
DeclareGlobalFunction("IsPrimePowerInt");
DeclareGlobalFunction("LcmInt");
DeclareGlobalFunction("LogInt");
DeclareGlobalFunction("NextPrimeInt");
DeclareGlobalFunction("PowerModInt");
DeclareGlobalFunction("PrevPrimeInt");
DeclareGlobalFunction("PrimePowersInt");
DeclareGlobalFunction("RootInt");
DeclareGlobalFunction("SignInt");
DeclareGlobalFunction("SmallestRootInt");
DeclareGlobalFunction("PrintFactorsInt");
DeclareGlobalFunction("PowerDecompositions");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/integer.gd"

#F  file="lib/numtheor.gd" crc=-2001943
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/numtheor.gd", -2001943 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/numtheor.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/numtheor.gd");
elif COM_RESULT = 3  then
Revision.numtheor_gd:="@(#)$Id: numtheor.gd,v 4.19 2002/04/15 10:05:04 sal Exp $";
DeclareInfoClass("InfoNumtheor");
DeclareGlobalFunction("PrimeResidues");
DeclareGlobalFunction("Phi");
DeclareGlobalFunction("Lambda");
DeclareGlobalFunction("OrderMod");
DeclareGlobalFunction("IsPrimitiveRootMod");
DeclareGlobalFunction("PrimitiveRootMod");
DeclareGlobalFunction("GeneratorsPrimeResidues");
DeclareGlobalFunction("Jacobi");
DeclareGlobalFunction("Legendre");
DeclareGlobalFunction("RootMod");
DeclareGlobalFunction("RootsMod");
DeclareGlobalFunction("RootsUnityMod");
DeclareGlobalFunction("LogMod");
DeclareGlobalFunction("Sigma");
DeclareGlobalFunction("Tau");
DeclareGlobalFunction("MoebiusMu");
DeclareGlobalFunction("TwoSquares");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/numtheor.gd"

#F  file="lib/string.gd" crc=66369239
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/string.gd", 66369239 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/string.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/string.gd");
elif COM_RESULT = 3  then
Revision.string_gd:="@(#)$Id: string.gd,v 4.16 2002/04/15 10:05:24 sal Exp $";
DeclareGlobalFunction("IsDigitChar");
DeclareGlobalFunction("IsUpperAlphaChar");
DeclareGlobalFunction("IsLowerAlphaChar");
DeclareGlobalFunction("IsAlphaChar");
DeclareGlobalFunction("DaysInYear");
DeclareGlobalFunction("DaysInMonth");
DeclareGlobalFunction("DMYDay");
DeclareGlobalFunction("DayDMY");
DeclareGlobalFunction("SecondsDMYhms");
DeclareGlobalFunction("DMYhmsSeconds");
BindGlobal("NameWeekDay",Immutable(["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]));
DeclareGlobalFunction("WeekDay");
BindGlobal("NameMonth",Immutable(["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]));
DeclareGlobalFunction("StringDate");
DeclareGlobalFunction("HMSMSec");
DeclareGlobalFunction("SecHMSM");
DeclareGlobalFunction("StringTime");
DeclareGlobalFunction("StringPP");
DeclareGlobalFunction("WordAlp");
DeclareGlobalFunction("LowercaseString");
DeclareOperation("SplitString",[IsString,IsObject,IsObject]);
DeclareGlobalFunction("NormalizedWhitespace");
MakeReadOnlyGlobal("ReplacedString");
DeclareGlobalFunction("EvalString");
DeclareGlobalFunction("JoinStringsWithSeparator");
DeclareGlobalFunction("Chomp");
DeclareGlobalFunction("StringFile");
DeclareGlobalFunction("FileString");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/string.gd"

#F  file="lib/ratfun.gd" crc=-21908951
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 1, 0, 60719947, 6, 993, 2, 1, 0, 1985, 1, 
  1, 0, 1, 0, 54330022, 4, 993, 2, 1, 0, 22868093, 12, 1, 0, 1, 0, 41550172, 
  15, 993, 2, 1, 0, 22868093, 12, 1, 0, 1, 0, 15991432, 15, 993, 2, 1, 0, 
  22868093, 12, 1, 0, 1, 0, 63963709, 15, 993, 2, 1, 0, 22868093, 12, 
  22868093, 12, 1, 0, 1, 0, 60817546, 17, 993, 2, 1, 0, 22868093, 12, 1, 0, 
  1, 0, 41943448, 15, 993, 2, 1, 0, 22868093, 12, 1, 0, 1, 0, 33554975, 15, 
  993, 2, 1, 0, 22868093, 12, 1, 0, 1, 0, 123, 15, 993, 2, 1, 0, 22868093, 
  12, 1, 0, 1, 0, 30086669, 15, 993, 2, 1, 0, 22868093, 12, 1, 0, 1, 0, 
  60629793, 15, 993, 2, 1, 0, 22868093, 12, 22868093, 12, 1, 0, 1, 0, 
  54149714, 17, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 41189556, 19, 993, 2, 1, 0, 
  1, 0, 1, 0, 1, 0, 15269240, 17, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 30537487, 
  17, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 61073981, 21, 993, 2, 1, 0, 1, 0, 1, 0, 
  1, 0, 55038090, 19, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 42967268, 17, 993, 2, 
  1, 0, 1, 0, 1, 0, 1, 0, 18825624, 17, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ratfun.gd", -21908951 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ratfun.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ratfun.gd");
elif COM_RESULT = 3  then
Revision.ratfun_gd:="@(#)$Id: ratfun.gd,v 4.60 2002/04/15 10:05:13 sal Exp $";
DeclareInfoClass("InfoPoly");
DeclareCategory("IsRationalFunction",IsRingElementWithInverse and IsZDFRE);
DeclareCategoryCollections("IsRationalFunction");
DeclareCategory("IsRationalFunctionsFamilyElement",IsRationalFunction);
DeclareCategory("IsRationalFunctionsFamily",IsFamily and IsUFDFamily);
DeclareCategory("IsRationalFunctionOverField",IsRationalFunction);
DeclareAttribute("RationalFunctionsFamily",IsUFDFamily);
DeclareAttribute("CoefficientsFamily",IsFamily);
DeclareAttribute("NumeratorOfRationalFunction",IsRationalFunction);
DeclareAttribute("DenominatorOfRationalFunction",IsRationalFunction);
DeclareProperty("IsPolynomial",IsRationalFunction);
DeclareAttribute("AsPolynomial",IsRationalFunction and IsPolynomial);
DeclareProperty("IsUnivariateRationalFunction",IsRationalFunction);
DeclareSynonymAttr("IsUnivariatePolynomial",IsPolynomial and IsUnivariateRationalFunction);
DeclareProperty("IsLaurentPolynomial",IsRationalFunction);
InstallTrueMethod(IsUnivariateRationalFunction,IsLaurentPolynomial);
InstallTrueMethod(IsLaurentPolynomial,IsUnivariatePolynomial);
DeclareProperty("IsConstantRationalFunction",IsRationalFunction);
InstallTrueMethod(IsUnivariateRationalFunction,IsConstantRationalFunction);
DeclareSynonymAttr("IsZeroRationalFunction",IsZero and IsRationalFunction);
InstallTrueMethod(IsConstantRationalFunction,IsZeroRationalFunction);
DeclareRepresentation("IsRationalFunctionDefaultRep",IsComponentObjectRep and IsAttributeStoringRep and IsRationalFunction,["zeroCoefficient","numerator","denominator"]);
DeclareRepresentation("IsPolynomialDefaultRep",IsComponentObjectRep and IsAttributeStoringRep and IsRationalFunction and IsPolynomial,["zeroCoefficien\
t","numerator"]);
DeclareRepresentation("IsLaurentPolynomialDefaultRep",IsComponentObjectRep and IsAttributeStoringRep and IsRationalFunction and IsLaurentPolynomial,[]);
DeclareRepresentation("IsUnivariateRationalFunctionDefaultRep",IsComponentObjectRep and IsAttributeStoringRep and IsRationalFunction and IsUnivariateRationalFunction,\
[]);
DeclareAttribute("ExtRepNumeratorRatFun",IsRationalFunction);
DeclareAttribute("ExtRepDenominatorRatFun",IsRationalFunction);
DeclareOperation("ZeroCoefficientRatFun",[IsRationalFunction]);
DeclareAttribute("ExtRepPolynomialRatFun",IsRationalFunction and IsPolynomial);
DeclareAttribute("CoefficientsOfLaurentPolynomial",IsLaurentPolynomial);
DeclareSynonym("CoefficientsOfUnivariateLaurentPolynomial",CoefficientsOfLaurentPolynomial);
DeclareAttribute("IndeterminateNumberOfUnivariateRationalFunction",IsUnivariateRationalFunction);
DeclareOperation("LaurentPolynomialByCoefficients",[IsFamily,IsList,IsInt,IsInt]);
DeclareSynonym("UnivariateLaurentPolynomialByCoefficients",LaurentPolynomialByCoefficients);
DeclareGlobalFunction("LaurentPolynomialByExtRep");
DeclareGlobalFunction("PolynomialByExtRep");
DeclareGlobalFunction("RationalFunctionByExtRep");
DeclareGlobalFunction("UnivariateRationalFunctionByExtRep");
DeclareGlobalFunction("RationalFunctionByExtRepWithCancellation");
DeclareAttribute("IndeterminateOfUnivariateRationalFunction",IsUnivariateRationalFunction);
DeclareSynonym("IndeterminateOfLaurentPolynomial",IndeterminateOfUnivariateRationalFunction);
DeclareSynonymAttr("IndeterminateNumberOfLaurentPolynomial",IndeterminateNumberOfUnivariateRationalFunction);
DeclareSynonymAttr("IndeterminateNumberOfUnivariateLaurentPolynomial",IndeterminateNumberOfUnivariateRationalFunction);
DeclareOperation("IndeterminateName",[IsRationalFunctionsFamily,IsPosInt]);
DeclareOperation("HasIndeterminateName",[IsRationalFunctionsFamily,IsPosInt]);
DeclareOperation("SetIndeterminateName",[IsRationalFunctionsFamily,IsPosInt,IsString]);
DeclareAttribute("CoefficientsOfUnivariatePolynomial",IsUnivariatePolynomial);
DeclareAttribute("DegreeOfLaurentPolynomial",IsLaurentPolynomial);
DeclareSynonym("DegreeOfUnivariateLaurentPolynomial",DegreeOfLaurentPolynomial);
DeclareOperation("UnivariatePolynomialByCoefficients",[IsFamily,IsList,IsInt]);
DeclareOperation("UnivariatePolynomial",[IsRing,IsRingElementCollection,IsPosInt]);
DeclareAttribute("CoefficientsOfUnivariateRationalFunction",IsUnivariateRationalFunction);
DeclareOperation("UnivariateRationalFunctionByCoefficients",[IsFamily,IsList,IsList,IsInt,IsInt]);
DeclareOperation("Value",[IsRationalFunction,IsList,IsList]);
DeclareGlobalFunction("OnIndeterminates");
DeclareGlobalFunction("MonomialTotalDegreeLess");
DeclareGlobalFunction("MonomialRevLexicoLess");
DeclareOperation("LeadingMonomial",[IsRationalFunction]);
DeclareOperation("LeadingCoefficient",[IsRationalFunction]);
DeclareGlobalFunction("LeadingMonomialPosExtRep");
DeclareOperation("PolynomialCoefficientsOfPolynomial",[IsPolynomial,IsPosInt]);
DeclareOperation("DegreeIndeterminate",[IsPolynomial,IsPosInt]);
DeclareAttribute("Derivative",IsUnivariateRationalFunction);
DeclareOperation("Derivative",[IsRationalFunction,IsPosInt]);
DeclareOperation("Resultant",[IsPolynomial,IsPolynomial,IsPosInt]);
DeclareOperation("Discriminant",[IsPolynomial]);
DeclareGlobalFunction("PolynomialReduction");
DeclareGlobalFunction("CIUnivPols");
DeclareGlobalFunction("TryGcdCancelExtRepPolynomials");
DeclareOperation("HeuristicCancelPolynomialsExtRep",[IsRationalFunctionsFamily,IsList,IsList]);
DeclareGlobalFunction("QuotientPolynomialsExtRep");
DeclareGlobalFunction("QuotRemLaurpols");
DeclareGlobalFunction("GcdCoeffs");
DeclareGlobalFunction("UnivariatenessTestRationalFunction");
DeclareGlobalFunction("SpecializedExtRepPol");
DeclareGlobalFunction("RandomPol");
DeclareOperation("ZippedSum",[IsList,IsList,IsObject,IsList]);
DeclareOperation("ZippedProduct",[IsList,IsList,IsObject,IsList]);
DeclareGlobalFunction("ProdCoefRatfun");
DeclareGlobalFunction("SumCoefRatfun");
DeclareGlobalFunction("SumCoefPolynomial");
DeclareCategory("IsLaurentPolynomialsFamilyElement",IsRationalFunction);
DeclareCategory("IsUnivariatePolynomialsFamilyElement",IsRationalFunction);
DeclareCategory("IsLaurentPolynomialsFamily",IsFamily and HasOne and IsCommutativeFamily);
DeclareCategory("IsUnivariatePolynomialsFamily",IsFamily);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ratfun.gd"

#F  file="lib/field.gd" crc=70160734
RANK_FILTER_LIST  := [ 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 63962867, 14, 3717409, 
  9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 65536393, 48, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 63962867, 14, 3717409, 9, 14869633, 13, 8620317, 
  29, 1, 0, 1, 0, 60817876, 48, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 
  3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 63962867, 14, 3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 
  54526840, 50, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 
  7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 63962867, 14, 
  3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 41943808, 48, 993, 2, 1, 
  0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 
  7, 6643623, 7, 49544677, 11, 63962867, 14, 3717409, 9, 14869633, 13, 
  8620317, 29, 1, 0, 1, 0, 16777744, 48, 993, 2, 1, 0, 34353841, 6, 1598802, 
  7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 63962867, 14, 3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 
  33554495, 50, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 
  7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 63962867, 14, 
  3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 78, 48, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 63962867, 14, 3717409, 9, 14869633, 13, 8620317, 
  29, 1, 0, 1, 0, 123, 54, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 
  12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 63962867, 
  14, 3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 213, 50, 993, 2, 1, 
  0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 
  7, 6643623, 7, 49544677, 11, 63962867, 14, 3717409, 9, 14869633, 13, 
  8620317, 29, 1, 0, 1, 0, 393, 50, 993, 2, 1, 0, 476657, 4, 7626497, 3, 
  67108415, 5, 1, 0, 1, 0, 513, 13, 993, 2, 1, 0, 476657, 4, 7626497, 3, 
  67108415, 5, 1, 0, 1, 0, 993, 13, 993, 2, 1, 0, 476657, 4, 7626497, 3, 
  67108415, 5, 1, 0, 1, 0, 30092339, 13, 993, 2, 1, 0, 34353841, 6, 1598802, 
  7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 63962867, 14, 3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 
  23168072, 50, 993, 2, 1, 0, 476657, 4, 7626497, 3, 67108415, 5, 1, 0, 1, 0, 
  9318578, 13, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 
  7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 63962867, 14, 
  3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 48728469, 50, 993, 2, 1, 
  0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/field.gd", 70160734 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/field.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/field.gd");
elif COM_RESULT = 3  then
Revision.field_gd:="@(#)$Id: field.gd,v 4.52 2002/04/15 10:04:39 sal Exp $";
DeclareSynonymAttr("IsField",IsDivisionRing and IsCommutative);
InstallTrueMethod(IsCommutative,IsDivisionRing and IsFinite);
DeclareAttribute("PrimeField",IsDivisionRing);
DeclareProperty("IsPrimeField",IsDivisionRing);
InstallIsomorphismMaintenance(IsPrimeField,IsField and IsPrimeField,IsField);
DeclareAttribute("DefiningPolynomial",IsField);
DeclareAttribute("DegreeOverPrimeField",IsDivisionRing);
InstallIsomorphismMaintenance(DegreeOverPrimeField,IsDivisionRing,IsDivisionRing);
DeclareAttribute("GeneratorsOfDivisionRing",IsDivisionRing);
DeclareSynonymAttr("GeneratorsOfField",GeneratorsOfDivisionRing);
DeclareAttribute("NormalBase",IsField);
DeclareOperation("NormalBase",[IsField,IsScalar]);
DeclareAttribute("PrimitiveElement",IsDivisionRing);
DeclareAttribute("PrimitiveRoot",IsField and IsFinite);
DeclareAttribute("RootOfDefiningPolynomial",IsField);
DeclareOperation("AsDivisionRing",[IsCollection]);
DeclareOperation("AsDivisionRing",[IsDivisionRing,IsCollection]);
DeclareSynonym("AsField",AsDivisionRing);
DeclareOperation("ClosureDivisionRing",[IsDivisionRing,IsObject]);
DeclareSynonym("ClosureField",ClosureDivisionRing);
DeclareAttribute("Subfields",IsField);
DeclareOperation("FieldExtension",[IsField,IsUnivariatePolynomial]);
DeclareCategory("IsFieldControlledByGaloisGroup",IsField);
InstallTrueMethod(IsFieldControlledByGaloisGroup,IsField and IsFinite);
DeclareAttribute("Conjugates",IsScalar);
DeclareOperation("Conjugates",[IsField,IsField,IsScalar]);
DeclareOperation("Conjugates",[IsField,IsScalar]);
DeclareAttribute("Norm",IsScalar);
DeclareOperation("Norm",[IsField,IsScalar]);
DeclareOperation("Norm",[IsField,IsField,IsScalar]);
DeclareAttribute("Trace",IsScalar);
DeclareAttribute("Trace",IsMatrix);
DeclareOperation("Trace",[IsField,IsScalar]);
DeclareOperation("Trace",[IsField,IsField,IsScalar]);
DeclareOperation("TracePolynomial",[IsField,IsField,IsScalar]);
DeclareOperation("TracePolynomial",[IsField,IsField,IsScalar,IsPosInt]);
DeclareAttribute("GaloisGroup",IsField);
DeclareAttribute("ComplexConjugate",IsScalar);
DeclareOperation("DivisionRingByGenerators",[IsDivisionRing,IsCollection]);
DeclareSynonym("FieldByGenerators",DivisionRingByGenerators);
DeclareOperation("FieldOverItselfByGenerators",[IsCollection]);
DeclareOperation("DefaultFieldByGenerators",[IsCollection]);
DeclareGlobalFunction("Field");
DeclareGlobalFunction("DefaultField");
DeclareGlobalFunction("Subfield");
DeclareGlobalFunction("SubfieldNC");
DeclareAttribute("FrobeniusAutomorphism",IsField);
DeclareHandlingByNiceBasis("IsFieldElementsSpace","for free left modules of field elements");
DeclareOperation("NthRoot",[IsField,IsScalar,IsPosInt]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/field.gd"

#F  file="lib/zmodnz.gd" crc=98399870
RANK_FILTER_LIST  := [ 444189, 11, 1, 0, 1, 0, 46604242, 14, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/zmodnz.gd", 98399870 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/zmodnz.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/zmodnz.gd");
elif COM_RESULT = 3  then
Revision.zmodnz_gd:="@(#)$Id: zmodnz.gd,v 4.30 2002/04/15 10:05:30 sal Exp $";
DeclareCategory("IsZmodnZObj",IsScalar);
DeclareCategory("IsZmodnZObjNonprime",IsZmodnZObj);
DeclareSynonym("IsZmodpZObj",IsZmodnZObj and IsFFE);
DeclareCategory("IsZmodpZObjSmall",IsZmodpZObj);
DeclareCategory("IsZmodpZObjLarge",IsZmodpZObj);
DeclareCategoryFamily("IsZmodnZObjNonprime");
DeclareCategoryCollections("IsZmodnZObjNonprime");
DeclareCategoryCollections("IsZmodnZObjNonprimeCollection");
DeclareCategoryCollections("IsZmodnZObjNonprimeCollColl");
InstallTrueMethod(IsFinite,IsZmodnZObjNonprimeCollection and IsDuplicateFree);
DeclareGlobalVariable("Z_MOD_NZ","list of lists, at position [1][i] is n s.t. [2][i] is ZmodnZ(n)");
InstallFlushableValue(Z_MOD_NZ,[[],[]]);
DeclareGlobalFunction("ZmodnZ");
DeclareGlobalFunction("ZmodpZ");
DeclareGlobalFunction("ZmodpZNC");
DeclareOperation("ZmodnZObj",[IsZmodnZObjNonprimeFamily,IsInt]);
DeclareOperation("ZmodnZObj",[IsInt,IsPosInt]);
DeclareAttribute("ModulusOfZmodnZObj",IsZmodnZObj);
InstallTrueMethod(IsFinite,IsZmodnZObjNonprimeCollCollColl and IsRingElementCollCollColl and IsGroup and IsFinitelyGeneratedGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/zmodnz.gd"

#F  file="lib/cyclotom.gd" crc=114495986
RANK_FILTER_LIST  := [ 891025, 15, 1, 0, 1, 0, 26098612, 18, 993, 2, 1, 0, 
  65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 52196231, 33, 
  993, 2, 1, 0, 65537, 6, 1906625, 8, 30505985, 7, 32505602, 9, 1, 0, 1, 0, 
  37282590, 33, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/cyclotom.gd", 114495986 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/cyclotom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/cyclotom.gd");
elif COM_RESULT = 3  then
Revision.cyclotom_gd:="@(#)$Id: cyclotom.gd,v 4.33 2002/04/15 10:04:37 sal Exp $";
InstallTrueMethod(IsIntegralRing,IsCyclotomicCollection and IsRing and IsNonTrivial);
DeclareAttribute("AbsoluteValue",IsCyclotomic);
DeclareOperation("RoundCyc",[IsCyclotomic]);
DeclareOperation("RoundCycDown",[IsCyclotomic]);
DeclareGlobalFunction("CoeffsCyc");
DeclareGlobalFunction("IsGaussInt");
DeclareGlobalFunction("IsGaussRat");
DeclareGlobalFunction("DescriptionOfRootOfUnity");
DeclareGlobalFunction("EB");
DeclareGlobalFunction("EC");
DeclareGlobalFunction("ED");
DeclareGlobalFunction("EE");
DeclareGlobalFunction("EF");
DeclareGlobalFunction("EG");
DeclareGlobalFunction("EH");
DeclareGlobalFunction("EI");
DeclareGlobalFunction("ER");
DeclareGlobalFunction("EY");
DeclareGlobalFunction("EX");
DeclareGlobalFunction("EW");
DeclareGlobalFunction("EV");
DeclareGlobalFunction("EU");
DeclareGlobalFunction("ET");
DeclareGlobalFunction("ES");
DeclareGlobalFunction("EM");
DeclareGlobalFunction("EL");
DeclareGlobalFunction("EK");
DeclareGlobalFunction("EJ");
DeclareGlobalFunction("NK");
DeclareGlobalFunction("AtlasIrrationality");
DeclareGlobalFunction("StarCyc");
DeclareGlobalFunction("Quadratic");
DeclareAttribute("GaloisMat",IsMatrix);
DeclareAttribute("RationalizedMat",IsMatrix);
DeclareGlobalFunction("DenominatorCyc");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/cyclotom.gd"

#F  file="lib/fldabnum.gd" crc=98488129
RANK_FILTER_LIST  := [ 34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 
  51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 63962867, 14, 3717409, 
  9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 14909623, 50, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 63962867, 14, 3717409, 9, 14869633, 13, 8620317, 
  29, 1, 0, 1, 0, 59638393, 50, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 
  3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 
  11, 63962867, 14, 3717409, 9, 14869633, 13, 8620317, 29, 1, 0, 1, 0, 
  37224916, 50, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 7340920, 55, 993, 2, 1, 0, 
  67108475, 7, 67108475, 7, 1, 0, 1, 0, 29360701, 14, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/fldabnum.gd", 98488129 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/fldabnum.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/fldabnum.gd");
elif COM_RESULT = 3  then
Revision.fldabnum_gd:="@(#)$Id: fldabnum.gd,v 4.21 2002/04/15 10:04:40 sal Exp $";
DeclareProperty("IsNumberField",IsField);
InstallSubsetMaintenance(IsNumberField,IsField and IsNumberField,IsField);
InstallIsomorphismMaintenance(IsNumberField,IsField and IsNumberField,IsField);
DeclareProperty("IsAbelianNumberField",IsField);
InstallTrueMethod(IsNumberField,IsAbelianNumberField);
InstallSubsetMaintenance(IsAbelianNumberField,IsField and IsAbelianNumberField,IsField);
InstallIsomorphismMaintenance(IsAbelianNumberField,IsField and IsAbelianNumberField,IsField);
InstallIsomorphismMaintenance(Conductor,IsField and IsAbelianNumberField,IsField);
InstallTrueMethod(IsFieldControlledByGaloisGroup,IsField and IsAbelianNumberField);
DeclareProperty("IsCyclotomicField",IsField);
InstallTrueMethod(IsAbelianNumberField,IsCyclotomicField);
InstallIsomorphismMaintenance(IsCyclotomicField,IsField and IsCyclotomicField,IsField);
DeclareAttribute("GaloisStabilizer",IsAbelianNumberField);
InstallIsomorphismMaintenance(GaloisStabilizer,IsField and IsAbelianNumberField,IsField);
DeclareSynonym("IsRationals",IsCyclotomicCollection and IsField and IsPrimeField);
DeclareGlobalVariable("Rationals","field of rationals");
DeclareCategory("IsGaussianRationals",IsCyclotomicCollection and IsField);
DeclareGlobalVariable("GaussianRationals","field of Gaussian rationals (identical with CF(4))");
DeclareGlobalVariable("CYCLOTOMIC_FIELDS","list, CYCLOTOMIC_FIELDS[n] = CF(n) if bound");
InstallFlushableValue(CYCLOTOMIC_FIELDS,[Rationals,,,GaussianRationals]);
DeclareGlobalFunction("CyclotomicField");
DeclareSynonym("CF",CyclotomicField);
DeclareGlobalVariable("ABELIAN_NUMBER_FIELDS","list of lists, at position [1][n] stabilizers, at [2][n] the fields");
InstallFlushableValue(ABELIAN_NUMBER_FIELDS,[[],[]]);
DeclareGlobalFunction("AbelianNumberField");
DeclareSynonym("NF",AbelianNumberField);
DeclareSynonym("NumberField",AbelianNumberField);
DeclareGlobalFunction("ZumbroichBase");
DeclareGlobalFunction("LenstraBase");
DeclareGlobalVariable("Cyclotomics","field of all cyclotomics");
DeclareGlobalFunction("ANFAutomorphism");
DeclareAttribute("ExponentOfPowering",IsMapping);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/fldabnum.gd"

#F  file="lib/padics.gd" crc=-24960473
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/padics.gd", -24960473 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/padics.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/padics.gd");
elif COM_RESULT = 3  then
Revision.padics_gd:="@(#)$Id: padics.gd,v 4.18 2002/04/15 10:05:11 sal Exp $";
DeclareCategory("IsPadicNumber",IsScalar and IsAssociativeElement and IsCommutativeElement);
DeclareCategoryCollections("IsPadicNumber");
DeclareCategoryCollections("IsPadicNumberCollection");
DeclareSynonym("IsPadicNumberList",IsPadicNumberCollection and IsList);
DeclareSynonym("IsPadicNumberTable",IsPadicNumberCollColl and IsTable);
DeclareCategoryFamily("IsPadicNumber");
DeclareCategory("IsPurePadicNumber",IsPadicNumber);
DeclareCategoryFamily("IsPurePadicNumber");
DeclareCategory("IsPadicExtensionNumber",IsPadicNumber);
DeclareCategoryFamily("IsPadicExtensionNumber");
DeclareOperation("Valuation",[IsObject]);
DeclareOperation("PadicNumber",[IsPadicNumberFamily,IsObject]);
DeclareOperation("ShiftedPadicNumber",[IsPadicNumber,IsInt]);
DeclareGlobalFunction("PurePadicNumberFamily");
DeclareGlobalFunction("PadicExtensionNumberFamily");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/padics.gd"

#F  file="lib/ringpoly.gd" crc=99323226
RANK_FILTER_LIST  := [ 20468720, 27, 1, 0, 1, 0, 43050738, 30, 993, 2, 1, 0, 
  20468720, 27, 1, 0, 1, 0, 18991604, 30, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ringpoly.gd", 99323226 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ringpoly.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ringpoly.gd");
elif COM_RESULT = 3  then
Revision.ringpoly_gd:="@(#)$Id: ringpoly.gd,v 4.27 2002/04/15 10:05:15 sal Exp $";
DeclareCategory("IsPolynomialRing",IsRing);
DeclareCategory("IsUnivariatePolynomialRing",IsPolynomialRing);
DeclareCategory("IsFiniteFieldPolynomialRing",IsPolynomialRing);
DeclareCategory("IsAbelianNumberFieldPolynomialRing",IsPolynomialRing);
DeclareCategory("IsAlgebraicExtensionPolynomialRing",IsPolynomialRing);
DeclareCategory("IsRationalsPolynomialRing",IsAbelianNumberFieldPolynomialRing);
DeclareAttribute("CoefficientsRing",IsPolynomialRing);
DeclareOperation("Indeterminate",[IsRing,IsPosInt]);
DeclareSynonym("X",Indeterminate);
DeclareOperation("UnivariatePolynomialRing",[IsRing]);
DeclareAttribute("IndeterminatesOfPolynomialRing",IsPolynomialRing);
DeclareOperation("PolynomialRing",[IsRing,IsObject]);
DeclareOperation("MinimalPolynomial",[IsRing,IsMultiplicativeElement and IsAdditiveElement,IsPosInt]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ringpoly.gd"

#F  file="lib/upoly.gd" crc=40511851
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 1, 0, 37982215, 17, 993, 2, 1, 0, 1, 0, 1, 
  0, 1, 0, 8854558, 17, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/upoly.gd", 40511851 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/upoly.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/upoly.gd");
elif COM_RESULT = 3  then
Revision.upoly_gd:="@(#)$Id: upoly.gd,v 4.26 2002/04/15 10:05:25 sal Exp $";
DeclareAttribute("SplittingField",IsPolynomial);
DeclareAttribute("IrrFacsPol",IsPolynomial,"mutable");
DeclareGlobalFunction("StoreFactorsPol");
DeclareOperation("FactorsSquarefree",[IsPolynomialRing,IsUnivariatePolynomial,IsRecord]);
DeclareGlobalFunction("RootsOfUPol");
DeclareGlobalVariable("CYCLOTOMICPOLYNOMIALS","list, at position n the coefficient list of the n-th cycl. pol.");
InstallFlushableValue(CYCLOTOMICPOLYNOMIALS,[]);
DeclareGlobalFunction("CyclotomicPol");
DeclareGlobalFunction("CyclotomicPolynomial");
DeclareOperation("IsPrimitivePolynomial",[IsField,IsRationalFunction]);
DeclareGlobalFunction("CompanionMat");
DeclareGlobalFunction("AllIrreducibleMonicPolynomials");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/upoly.gd"

#F  file="lib/polyfinf.gd" crc=-34600763
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/polyfinf.gd", -34600763 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/polyfinf.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/polyfinf.gd");
elif COM_RESULT = 3  then
Revision.polyfinf_gd:="@(#)$Id: polyfinf.gd,v 4.2 2002/04/15 10:05:13 sal Exp $";
DeclareGlobalFunction("FactorsCommonDegreePol");
DeclareGlobalFunction("RootsRepresentativeFFPol");
DeclareGlobalFunction("OrderKnownDividendList");
DeclareGlobalFunction("FFPOrderKnownDividend");
DeclareGlobalFunction("FFPFactors");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/polyfinf.gd"

#F  file="lib/polyrat.gd" crc=-30503327
RANK_FILTER_LIST  := [ 24366370, 13, 24366370, 13, 1, 0, 1, 0, 17708123, 18, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/polyrat.gd", -30503327 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/polyrat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/polyrat.gd");
elif COM_RESULT = 3  then
Revision.polyrat_gd:="@(#)$Id: polyrat.gd,v 4.13 2002/04/15 10:05:13 sal Exp $";
DeclareGlobalFunction("APolyProd");
DeclareGlobalFunction("BPolyProd");
DeclareOperation("PrimitivePolynomial",[IsPolynomial]);
DeclareGlobalFunction("BombieriNorm");
DeclareAttribute("MinimizedBombieriNorm",IsPolynomial and IsRationalFunctionsFamilyElement);
DeclareGlobalFunction("RootBound");
DeclareGlobalFunction("OneFactorBound");
DeclareGlobalFunction("HenselBound");
DeclareGlobalFunction("TrialQuotientRPF");
DeclareGlobalFunction("TryCombinations");
DeclareGlobalFunction("HeuGcdIntPolsExtRep");
DeclareGlobalFunction("HeuGcdIntPolsCoeffs");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/polyrat.gd"

#F  file="lib/polyconw.gd" crc=-72639242
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/polyconw.gd", -72639242 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/polyconw.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/polyconw.gd");
elif COM_RESULT = 3  then
Revision.polyconw_gd:="@(#)$Id: polyconw.gd,v 4.8 2002/04/15 10:05:13 sal Exp $";
DeclareGlobalFunction("PowerModEvalPol");
DeclareGlobalVariable("CONWAYPOLYNOMIALS");
DeclareGlobalFunction("ConwayPol");
DeclareGlobalFunction("ConwayPolynomial");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/polyconw.gd"

#F  file="lib/algfld.gd" crc=-37558283
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 1, 0, 29770601, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/algfld.gd", -37558283 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/algfld.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/algfld.gd");
elif COM_RESULT = 3  then
Revision.algfld_gd:="@(#)$Id: algfld.gd,v 4.16 2002/04/15 10:04:24 sal Exp $";
DeclareCategory("IsAlgebraicElement",IsScalar);
DeclareCategoryCollections("IsAlgebraicElement");
DeclareCategoryFamily("IsAlgebraicElement");
DeclareCategory("IsAlgebraicExtension",IsField);
DeclareAttribute("AlgebraicElementsFamilies",IsUnivariatePolynomial,"mutable");
DeclareOperation("AlgebraicElementsFamily",[IsField,IsUnivariatePolynomial]);
DeclareOperation("AlgebraicExtension",[IsField,IsUnivariatePolynomial]);
DeclareOperation("MaxNumeratorCoeffAlgElm",[IsScalar]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/algfld.gd"

#F  file="lib/meataxe.gd" crc=123762145
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/meataxe.gd", 123762145 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/meataxe.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/meataxe.gd");
elif COM_RESULT = 3  then
Revision.meataxe_gd:="@(#)$Id: meataxe.gd,v 4.1 2001/05/10 17:23:16 gap Exp $";
DeclareGlobalFunction("GModuleByMats");
DeclareGlobalFunction("TrivialGModule");
DeclareGlobalFunction("InducedGModule");
DeclareGlobalFunction("PermutationGModule");
DeclareGlobalFunction("TensorProductGModule");
DeclareGlobalFunction("WedgeGModule");
DeclareInfoClass("InfoMeatAxe");
SMTX:=rec(name:="The Smash MeatAxe");
MTX:=SMTX;
SMTX.Getter:=COM_FUN(1);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/meataxe.gd"

#F  file="lib/unknown.gd" crc=82671981
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/unknown.gd", 82671981 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/unknown.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/unknown.gd");
elif COM_RESULT = 3  then
Revision.unknown_gd:="@(#)$Id: unknown.gd,v 4.13 2002/04/15 10:05:25 sal Exp $";
DeclareCategory("IsUnknown",IsCyclotomic);
LargestUnknown:=0;
DeclareOperation("Unknown",[]);
DeclareOperation("Unknown",[IsPosInt]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/unknown.gd"

#F  file="lib/word.gd" crc=96302457
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/word.gd", 96302457 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/word.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/word.gd");
elif COM_RESULT = 3  then
Revision.word_gd:="@(#)$Id: word.gd,v 4.33 2002/04/15 10:05:29 sal Exp $";
DeclareCategory("IsWord",IsMultiplicativeElement);
DeclareSynonym("IsWordWithOne",IsWord and IsMultiplicativeElementWithOne);
DeclareSynonym("IsWordWithInverse",IsWord and IsMultiplicativeElementWithInverse);
DeclareCategoryCollections("IsWord");
DeclareCategory("IsNonassocWord",IsWord);
DeclareSynonym("IsNonassocWordWithOne",IsNonassocWord and IsWordWithOne);
DeclareCategoryCollections("IsNonassocWord");
DeclareCategoryCollections("IsNonassocWordWithOne");
DeclareCategoryFamily("IsNonassocWord");
DeclareCategoryFamily("IsNonassocWordWithOne");
DeclareOperation("MappedWord",[IsWord,IsWordCollection,IsList]);
DeclareSynonym("IsFreeMagma",IsNonassocWordCollection and IsMagma);
DeclareSynonym("NonassocWord",ObjByExtRep);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/word.gd"

#F  file="lib/wordass.gd" crc=102550963
RANK_FILTER_LIST  := [ 49544677, 11, 8388084, 10, 57932760, 16, 1, 0, 1, 0, 
  24101949, 19, 993, 2, 1, 0, 31981434, 13, 16777127, 12, 48758560, 19, 1, 0, 
  1, 0, 29296898, 22, 993, 2, 1, 0, 49290545, 4, 51969554, 4, 1, 0, 1, 0, 
  58593763, 8, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/wordass.gd", 102550963 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/wordass.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/wordass.gd");
elif COM_RESULT = 3  then
Revision.wordass_gd:="@(#)$Id: wordass.gd,v 4.36 2002/04/15 10:05:30 sal Exp $";
DeclareSynonym("IsAssocWord",IsWord and IsAssociativeElement);
DeclareSynonym("IsAssocWordWithOne",IsAssocWord and IsWordWithOne);
DeclareSynonym("IsAssocWordWithInverse",IsAssocWord and IsWordWithInverse);
DeclareCategoryCollections("IsAssocWord");
DeclareCategoryCollections("IsAssocWordWithOne");
DeclareCategoryCollections("IsAssocWordWithInverse");
DeclareCategoryFamily("IsAssocWord");
DeclareCategoryFamily("IsAssocWordWithOne");
DeclareCategoryFamily("IsAssocWordWithInverse");
DeclareCategory("IsSyllableWordsFamily",IsAssocWordFamily);
DeclareCategory("Is8BitsFamily",IsSyllableWordsFamily);
DeclareCategory("Is16BitsFamily",IsSyllableWordsFamily);
DeclareCategory("Is32BitsFamily",IsSyllableWordsFamily);
DeclareCategory("IsInfBitsFamily",IsSyllableWordsFamily);
DeclareRepresentation("IsSyllableAssocWordRep",IsAssocWord,[]);
DeclareRepresentation("IsLetterAssocWordRep",IsAssocWord,[]);
DeclareRepresentation("IsBLetterAssocWordRep",IsLetterAssocWordRep,[]);
DeclareRepresentation("IsWLetterAssocWordRep",IsLetterAssocWordRep,[]);
DeclareCategory("IsLetterWordsFamily",IsAssocWordFamily);
DeclareCategory("IsBLetterWordsFamily",IsLetterWordsFamily);
DeclareCategory("IsWLetterWordsFamily",IsLetterWordsFamily);
DeclareProperty("IsFreeSemigroup",IsAssocWordCollection and IsSemigroup);
DeclareProperty("IsFreeMonoid",IsAssocWordWithOneCollection and IsMonoid);
DeclareSynonym("IsFreeGroup",IsAssocWordWithInverseCollection and IsGroup);
InstallTrueMethod(IsGeneratorsOfMagmaWithInverses,IsAssocWordWithInverseCollection);
DeclareGlobalFunction("AssignGeneratorVariables");
DeclareAttribute("Length",IsAssocWord);
DeclareOperation("Subword",[IsAssocWord,IsPosInt,IsPosInt]);
DeclareOperation("PositionWord",[IsAssocWord,IsAssocWord,IsPosInt]);
DeclareOperation("SubstitutedWord",[IsAssocWord,IsPosInt,IsPosInt,IsAssocWord]);
DeclareOperation("SubstitutedWord",[IsAssocWord,IsAssocWord,IsPosInt,IsAssocWord]);
DeclareOperation("EliminatedWord",[IsAssocWord,IsAssocWord,IsAssocWord]);
DeclareOperation("ExponentSumWord",[IsAssocWord,IsAssocWord]);
DeclareAttribute("NumberSyllables",IsAssocWord);
DeclareSynonymAttr("NrSyllables",NumberSyllables);
DeclareOperation("ExponentSyllable",[IsAssocWord,IsPosInt]);
DeclareOperation("GeneratorSyllable",[IsAssocWord,IsInt]);
DeclareOperation("SubSyllables",[IsAssocWord,IsInt,IsInt]);
DeclareOperation("LetterRepAssocWord",[IsAssocWord]);
DeclareOperation("AssocWordByLetterRep",[IsFamily,IsList]);
DeclareOperation("SyllableRepAssocWord",[IsAssocWord]);
DeclareOperation("ExponentSums",[IsAssocWord]);
DeclareOperation("RenumberedWord",[IsAssocWord,IsList]);
DeclareGlobalFunction("AssocWord");
DeclareGlobalFunction("ObjByVector");
DeclareGlobalFunction("StoreInfoFreeMagma");
DeclareGlobalFunction("InfiniteListOfNames");
DeclareGlobalFunction("InfiniteListOfGenerators");
DeclareGlobalFunction("ERepAssWorProd");
DeclareGlobalFunction("ERepAssWorInv");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/wordass.gd"

#F  file="lib/rws.gd" crc=17509737
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 65077566, 3, 993, 2, 1, 0, 1, 0, 1, 0, 
  58982568, 3, 993, 2, 1, 0, 1, 0, 1, 0, 34603536, 3, 993, 2, 1, 0, 1, 0, 1, 
  0, 4194367, 3, 993, 2, 1, 0, 1, 0, 1, 0, 16777369, 3, 993, 2, 1, 0, 1, 0, 
  1, 0, 498, 3, 993, 2, 1, 0, 1, 0, 1, 0, 39482367, 3, 993, 2, 1, 0, 
  50077622, 2, 1, 0, 1, 0, 51338216, 5, 993, 2, 1, 0, 50077622, 2, 1, 0, 1, 
  0, 7941035, 5, 993, 2, 1, 0, 50077622, 2, 1, 0, 1, 0, 55363471, 5, 993, 2, 
  1, 0, 50077622, 2, 1, 0, 1, 0, 15991545, 5, 993, 2, 1, 0, 50077622, 2, 1, 
  0, 1, 0, 12356538, 5, 993, 2, 1, 0, 50077622, 2, 1, 0, 1, 0, 24712083, 5, 
  993, 2, 1, 0, 50077622, 2, 1, 0, 1, 0, 49423173, 5, 993, 2, 1, 0, 50077622, 
  2, 1, 0, 1, 0, 63471955, 5, 993, 2, 1, 0, 2, 2, 50077622, 2, 1, 0, 1, 0, 
  52558204, 6, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/rws.gd", 17509737 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/rws.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/rws.gd");
elif COM_RESULT = 3  then
Revision.rws_gd:="@(#)$Id: rws.gd,v 4.45 2002/04/15 10:05:15 sal Exp $";
DeclareCategory("IsRewritingSystem",IsCopyable);
DeclareCategory("IsReducedConfluentRewritingSystem",IsRewritingSystem);
DeclareProperty("IsBuiltFromAdditiveMagmaWithInverses",IsObject);
DeclareProperty("IsBuiltFromMagma",IsObject);
DeclareProperty("IsBuiltFromMagmaWithOne",IsObject);
DeclareProperty("IsBuiltFromMagmaWithInverses",IsObject);
DeclareProperty("IsBuiltFromGroup",IsObject);
InstallTrueMethod(IsBuiltFromMagma,IsBuiltFromMagmaWithOne);
InstallTrueMethod(IsBuiltFromMagmaWithOne,IsBuiltFromMagmaWithInverses);
DeclareProperty("IsBuiltFromSemigroup",IsObject);
DeclareProperty("IsBuiltFromMonoid",IsObject);
InstallTrueMethod(IsBuiltFromMagmaWithInverses,IsBuiltFromGroup);
DeclareAttribute("SemigroupOfRewritingSystem",IsRewritingSystem);
DeclareAttribute("MonoidOfRewritingSystem",IsRewritingSystem);
DeclareOperation("FreeStructureOfRewritingSystem",[IsRewritingSystem]);
DeclareAttribute("ConfluentRws",IsRewritingSystem);
DeclareAttribute("GeneratorsOfRws",IsRewritingSystem);
DeclareAttribute("NumberGeneratorsOfRws",IsRewritingSystem);
DeclareAttribute("Rules",IsRewritingSystem);
DeclareAttribute("OrderingOfRewritingSystem",IsRewritingSystem);
DeclareSynonym("OrderOfRewritingSystem",OrderingOfRewritingSystem);
DeclareProperty("IsConfluent",IsRewritingSystem);
DeclareProperty("IsReduced",IsRewritingSystem and IsMutable);
DeclareOperation("AddRule",[IsRewritingSystem and IsMutable,IsHomogeneousList]);
DeclareOperation("AddRuleReduced",[IsRewritingSystem and IsMutable,IsHomogeneousList]);
DeclareOperation("AddGenerators",[IsRewritingSystem and IsMutable,IsHomogeneousList]);
DeclareOperation("MakeConfluent",[IsRewritingSystem and IsMutable]);
DeclareOperation("ReduceRules",[IsRewritingSystem and IsMutable]);
DeclareOperation("ReducedAdditiveInverse",[IsRewritingSystem,IsAdditiveElement]);
DeclareOperation("ReducedComm",[IsRewritingSystem,IsMultiplicativeElement,IsMultiplicativeElement]);
DeclareOperation("ReducedConjugate",[IsRewritingSystem,IsMultiplicativeElement,IsMultiplicativeElement]);
DeclareOperation("ReducedDifference",[IsRewritingSystem,IsAdditiveElement,IsAdditiveElement]);
DeclareOperation("ReducedForm",[IsRewritingSystem,IsObject]);
DeclareOperation("IsReducedForm",[IsRewritingSystem,IsObject]);
DeclareOperation("ReducedInverse",[IsRewritingSystem,IsMultiplicativeElement]);
DeclareOperation("ReducedLeftQuotient",[IsRewritingSystem,IsMultiplicativeElement,IsMultiplicativeElement]);
DeclareOperation("ReducedOne",[IsRewritingSystem]);
DeclareOperation("ReducedPower",[IsRewritingSystem,IsMultiplicativeElement,IsInt]);
DeclareOperation("ReducedProduct",[IsRewritingSystem,IsMultiplicativeElement,IsMultiplicativeElement]);
DeclareOperation("ReducedQuotient",[IsRewritingSystem,IsMultiplicativeElement,IsMultiplicativeElement]);
DeclareOperation("ReducedScalarProduct",[IsRewritingSystem,IsScalar,IsAdditiveElement]);
DeclareOperation("ReducedSum",[IsRewritingSystem,IsAdditiveElement,IsAdditiveElement]);
DeclareOperation("ReducedZero",[IsRewritingSystem]);
DeclareInfoClass("InfoConfluence");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/rws.gd"

#F  file="lib/rwspcclt.gd" crc=84152757
RANK_FILTER_LIST  := [ 50077622, 2, 1, 0, 1, 0, 35611741, 5, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/rwspcclt.gd", 84152757 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/rwspcclt.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/rwspcclt.gd");
elif COM_RESULT = 3  then
Revision.rwspcclt_gd:="@(#)$Id: rwspcclt.gd,v 4.33 2002/04/15 10:05:15 sal Exp $";
DeclareCategory("IsPolycyclicCollector",IsRewritingSystem and IsBuiltFromGroup);
DeclareCategory("IsPowerConjugateCollector",IsPolycyclicCollector);
DeclareCategory("IsPowerCommutatorCollector",IsPolycyclicCollector);
DeclareAttribute("RelativeOrders",IsRewritingSystem);
DeclareFilter("IsUpToDatePolycyclicCollector");
DeclareOperation("OutdatePolycyclicCollector",[IsPolycyclicCollector and IsMutable]);
DeclareOperation("UpdatePolycyclicCollector",[IsPolycyclicCollector]);
DeclareOperation("CollectWord",[IsPolycyclicCollector,IsList,IsObject]);
DeclareOperation("CollectWordOrFail",[IsPolycyclicCollector,IsList,IsObject]);
DeclareOperation("NonTrivialRightHandSides",[IsPolycyclicCollector]);
DeclareOperation("ObjByExponents",[IsPolycyclicCollector,IsObject]);
DeclareOperation("SetCommutator",[IsPolycyclicCollector and IsMutable,IsObject,IsObject,IsObject]);
DeclareOperation("SetCommutatorNC",[IsPolycyclicCollector and IsMutable,IsObject,IsObject,IsObject]);
DeclareOperation("SetCommutatorANC",[IsPolycyclicCollector and IsMutable,IsObject,IsObject,IsObject]);
DeclareOperation("SetConjugate",[IsPolycyclicCollector and IsMutable,IsObject,IsObject,IsObject]);
DeclareOperation("SetConjugateNC",[IsPolycyclicCollector and IsMutable,IsObject,IsObject,IsObject]);
DeclareOperation("SetConjugateANC",[IsPolycyclicCollector and IsMutable,IsObject,IsObject,IsObject]);
DeclareOperation("SetPower",[IsPolycyclicCollector and IsMutable,IsObject,IsObject]);
DeclareOperation("SetPowerNC",[IsPolycyclicCollector and IsMutable,IsObject,IsObject]);
DeclareOperation("SetPowerANC",[IsPolycyclicCollector and IsMutable,IsObject,IsObject]);
DeclareOperation("SetRelativeOrder",[IsPolycyclicCollector and IsMutable,IsObject,IsObject]);
DeclareOperation("SetRelativeOrderNC",[IsPolycyclicCollector and IsMutable,IsObject,IsObject]);
DeclareOperation("GetCommutatorNC",[IsPolycyclicCollector,IsObject,IsObject]);
DeclareOperation("GetConjugateNC",[IsPolycyclicCollector,IsObject,IsObject]);
DeclareOperation("GetPowerNC",[IsPolycyclicCollector,IsObject]);
DeclareOperation("SingleCollector",[IsObject,IsObject]);
DeclareOperation("SingleCollectorByGenerators",[IsFamily,IsList,IsList]);
DeclareOperation("CombinatorialCollector",[IsObject,IsObject]);
DeclareOperation("CombinatorialCollectorByGenerators",[IsFamily,IsList,IsList]);
DeclareOperation("DeepThoughtCollector",[IsObject,IsObject]);
DeclareOperation("DeepThoughtCollectorByGenerators",[IsFamily,IsList,IsList]);
DeclareOperation("EvaluateOverlapCBA",[IsPolycyclicCollector,IsList,IsList,IsInt,IsInt,IsInt]);
DeclareOperation("EvaluateOverlapBNA",[IsPolycyclicCollector,IsList,IsList,IsInt,IsInt,IsInt]);
DeclareOperation("EvaluateOverlapBAN",[IsPolycyclicCollector,IsList,IsList,IsInt,IsInt,IsInt]);
DeclareOperation("EvaluateOverlapANA",[IsPolycyclicCollector,IsList,IsList,IsInt,IsInt]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/rwspcclt.gd"

#F  file="lib/rwsgrp.gd" crc=98747402
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/rwsgrp.gd", 98747402 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/rwsgrp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/rwsgrp.gd");
elif COM_RESULT = 3  then
Revision.rwsgrp_gd:="@(#)$Id: rwsgrp.gd,v 4.16 2002/04/15 10:05:15 sal Exp $";
DeclareCategory("IsElementsFamilyByRws",IsFamily);
DeclareOperation("MultiplicativeElementsWithInversesFamilyByRws",[IsRewritingSystem]);
DeclareCategory("IsMultiplicativeElementWithInverseByRws",IsMultiplicativeElementWithInverse);
DeclareOperation("ElementByRws",[IsElementsFamilyByRws,IsObject]);
DeclareOperation("GroupByRws",[IsRewritingSystem]);
DeclareOperation("GroupByRwsNC",[IsRewritingSystem]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/rwsgrp.gd"

#F  file="lib/rwspcgrp.gd" crc=-82141430
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 56886136, 3, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/rwspcgrp.gd", -82141430 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/rwspcgrp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/rwspcgrp.gd");
elif COM_RESULT = 3  then
Revision.rwspcgrp_gd:="@(#)$Id: rwspcgrp.gd,v 4.19 2002/04/15 10:05:16 sal Exp $";
DeclareCategory("IsElementFinitePolycyclicGroup",IsMultiplicativeElementWithInverse and IsAssociativeElement);
DeclareCategoryCollections("IsElementFinitePolycyclicGroup");
InstallTrueMethod(IsSubsetLocallyFiniteGroup,IsElementFinitePolycyclicGroupCollection);
DeclareCategory("IsMultiplicativeElementWithInverseByPolycyclicCollector",IsMultiplicativeElementWithInverseByRws and IsAssociativeElement);
DeclareCategoryCollections("IsMultiplicativeElementWithInverseByPolycyclicCollector");
DeclareSynonym("IsPcGroup",IsMultiplicativeElementWithInverseByPolycyclicCollectorCollection and IsGroup);
DeclareAttribute("DefiningPcgs",IsObject);
DeclareFilter("IsKernelPcWord",100);
DeclareCategory("IsElementsFamilyBy8BitsSingleCollector",IsElementsFamilyByRws);
DeclareCategory("IsElementsFamilyBy16BitsSingleCollector",IsElementsFamilyByRws);
DeclareCategory("IsElementsFamilyBy32BitsSingleCollector",IsElementsFamilyByRws);
DeclareOperation("PolycyclicFactorGroup",[IsObject,IsList]);
DeclareOperation("PolycyclicFactorGroupNC",[IsObject,IsList]);
DeclareGlobalFunction("SingleCollectorByRelators");
DeclareOperation("PolycyclicFactorGroupByRelatorsNC",[IsFamily,IsList,IsList]);
DeclareOperation("PolycyclicFactorGroupByRelators",[IsFamily,IsList,IsList]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/rwspcgrp.gd"

#F  file="lib/pcgs.gd" crc=-62361838
RANK_FILTER_LIST  := [ 16776407, 20, 1, 0, 1, 0, 47981004, 23, 993, 2, 1, 0, 
  33553773, 21, 1, 0, 1, 0, 44845973, 24, 993, 2, 1, 0, 33553773, 21, 1, 0, 
  1, 0, 38574951, 24, 993, 2, 1, 0, 33553773, 21, 1, 0, 1, 0, 26034827, 24, 
  993, 2, 1, 0, 33553773, 21, 1, 0, 1, 0, 47478493, 24, 993, 2, 1, 0, 
  33553773, 21, 1, 0, 1, 0, 27847114, 24, 993, 2, 1, 0, 8387724, 19, 1, 0, 1, 
  0, 44276598, 22, 993, 2, 1, 0, 8387724, 19, 1, 0, 1, 0, 42885655, 22, 993, 
  2, 1, 0, 60816854, 16, 61997012, 11, 55704986, 20, 1, 0, 1, 0, 18661438, 
  23, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 37322843, 21, 
  993, 2, 1, 0, 33553773, 21, 1, 0, 1, 0, 15071595, 24, 993, 2, 1, 0, 
  33553773, 21, 1, 0, 1, 0, 60285321, 24, 993, 2, 1, 0, 33553773, 21, 1, 0, 
  1, 0, 39813588, 24, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pcgs.gd", -62361838 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pcgs.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pcgs.gd");
elif COM_RESULT = 3  then
Revision.pcgs_gd:="@(#)$Id: pcgs.gd,v 4.77 2002/04/15 10:05:12 sal Exp $";
DeclareCategory("IsGeneralPcgs",IsHomogeneousList and IsDuplicateFreeList and IsConstantTimeAccessList and IsFinite and IsMultiplicativeElementWithInverseCollection and IsNoImmediateMethodsObject);
DeclareCategory("IsModuloPcgs",IsGeneralPcgs);
DeclareCategory("IsPcgs",IsModuloPcgs);
DeclareCategory("IsPcgsFamily",IsFamily);
DeclareRepresentation("IsPcgsDefaultRep",IsComponentObjectRep and IsAttributeStoringRep,[]);
DeclareOperation("PcgsByPcSequence",[IsFamily,IsList]);
DeclareOperation("PcgsByPcSequenceNC",[IsFamily,IsList]);
DeclareConstructor("PcgsByPcSequenceCons",[IsObject,IsObject,IsFamily,IsList,IsList]);
DeclareAttribute("PcGroupWithPcgs",IsModuloPcgs);
DeclareSynonymAttr("GroupByPcgs",PcGroupWithPcgs);
DeclareAttribute("GroupOfPcgs",IsPcgs);
DeclareAttribute("OneOfPcgs",IsPcgs);
DeclareAttribute("PcSeries",IsPcgs);
DeclareAttribute("IndicesNormalSteps",IsPcgs);
DeclareAttribute("NormalSeriesByPcgs",IsPcgs);
DeclareProperty("IsPrimeOrdersPcgs",IsGeneralPcgs);
DeclareProperty("IsFiniteOrdersPcgs",IsGeneralPcgs);
DeclareAttribute("RefinedPcGroup",IsPcGroup);
DeclareAttribute("IsomorphismRefinedPcGroup",IsGroup);
DeclareAttribute("RelativeOrders",IsGeneralPcgs);
DeclareOperation("DepthOfPcElement",[IsModuloPcgs,IsObject]);
DeclareOperation("DifferenceOfPcElement",[IsPcgs,IsObject,IsObject]);
DeclareOperation("ExponentOfPcElement",[IsModuloPcgs,IsObject,IsPosInt]);
DeclareOperation("ExponentsOfPcElement",[IsModuloPcgs,IsObject]);
DeclareOperation("ExponentsOfConjugate",[IsModuloPcgs,IsPosInt,IsPosInt]);
DeclareOperation("ExponentsOfRelativePower",[IsModuloPcgs,IsPosInt]);
DeclareOperation("ExponentsOfCommutator",[IsModuloPcgs,IsPosInt,IsPosInt]);
DeclareOperation("LeadingExponentOfPcElement",[IsModuloPcgs,IsObject]);
DeclareGlobalFunction("PcElementByExponents");
DeclareOperation("PcElementByExponentsNC",[IsModuloPcgs,IsList]);
DeclareGlobalFunction("LinearCombinationPcgs");
DeclareGlobalFunction("PowerPcgsElement");
DeclareGlobalFunction("LeftQuotientPowerPcgsElement");
DeclareOperation("SumOfPcElement",[IsModuloPcgs,IsObject,IsObject]);
DeclareOperation("ReducedPcElement",[IsModuloPcgs,IsObject,IsObject]);
DeclareOperation("RelativeOrderOfPcElement",[IsModuloPcgs,IsObject]);
DeclareOperation("HeadPcElementByNumber",[IsModuloPcgs,IsObject,IsInt]);
DeclareOperation("CleanedTailPcElement",[IsModuloPcgs,IsObject,IsInt]);
DeclareOperation("ExtendedIntersectionSumPcgs",[IsModuloPcgs,IsList,IsList,IsObject]);
DeclareOperation("IntersectionSumPcgs",[IsModuloPcgs,IsList,IsList]);
DeclareOperation("NormalIntersectionPcgs",[IsModuloPcgs,IsList,IsList]);
DeclareOperation("SumPcgs",[IsModuloPcgs,IsList,IsList]);
DeclareOperation("SumFactorizationFunctionPcgs",[IsModuloPcgs,IsList,IsList,IsObject]);
DeclareOperation("EnumeratorByPcgs",[IsModuloPcgs]);
DeclareOperation("ExtendedPcgs",[IsModuloPcgs,IsList]);
DeclareProperty("IsPcgsElementaryAbelianSeries",IsPcgs);
DeclareProperty("IsPcgsCentralSeries",IsPcgs);
DeclareProperty("IsPcgsPCentralSeriesPGroup",IsPcgs);
DeclareGlobalFunction("PcgsByIndependentGeneratorsOfAbelianGroup");
DeclareGlobalFunction("Pcgs_OrbitStabilizer");
DeclareGlobalFunction("Pcs_OrbitStabilizer");
DeclareGlobalFunction("Pcgs_OrbitStabilizer_Blist");
DeclareGlobalFunction("LiftedPcElement");
DeclareGlobalFunction("ProjectedPcElement");
DeclareGlobalFunction("ProjectedInducedPcgs");
DeclareGlobalFunction("LiftedInducedPcgs");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pcgs.gd"

#F  file="lib/pcgsind.gd" crc=-82604121
RANK_FILTER_LIST  := [ 12517272, 22, 1, 0, 1, 0, 25035535, 25, 993, 2, 1, 0, 
  12517272, 22, 1, 0, 1, 0, 50070077, 25, 993, 2, 1, 0, 12517272, 22, 1, 0, 
  1, 0, 33030282, 25, 993, 2, 1, 0, 12517272, 22, 1, 0, 1, 0, 65012150, 25, 
  993, 2, 1, 0, 12517272, 22, 1, 0, 1, 0, 58720904, 25, 993, 2, 1, 0, 
  33553773, 21, 1, 0, 1, 0, 50331936, 24, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pcgsind.gd", -82604121 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pcgsind.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pcgsind.gd");
elif COM_RESULT = 3  then
Revision.pcgsind_gd:="@(#)$Id: pcgsind.gd,v 4.35 2002/04/15 10:05:12 sal Exp $";
DeclareCategory("IsInducedPcgs",IsPcgs);
DeclareOperation("InducedPcgsByPcSequence",[IsPcgs,IsList]);
DeclareOperation("InducedPcgsByPcSequenceNC",[IsPcgs,IsList]);
DeclareAttribute("LeadCoeffsIGS",IsInducedPcgs);
DeclareOperation("InducedPcgsByPcSequenceAndGenerators",[IsPcgs,IsList,IsList]);
DeclareOperation("InducedPcgsByGenerators",[IsPcgs,IsCollection]);
DeclareOperation("InducedPcgsByGeneratorsNC",[IsPcgs,IsCollection]);
DeclareOperation("InducedPcgsByGeneratorsWithImages",[IsPcgs,IsCollection,IsCollection]);
DeclareOperation("CanonicalPcgsByGeneratorsWithImages",[IsPcgs,IsCollection,IsCollection]);
DeclareOperation("AsInducedPcgs",[IsPcgs,IsList]);
DeclareAttribute("ParentPcgs",IsInducedPcgs);
DeclareAttribute("CanonicalPcgs",IsInducedPcgs);
DeclareProperty("IsCanonicalPcgs",IsInducedPcgs);
DeclareProperty("IsParentPcgsFamilyPcgs",IsInducedPcgs,20);
DeclareAttribute("ElementaryAbelianSubseries",IsPcgs);
DeclareOperation("CanonicalPcElement",[IsInducedPcgs,IsObject]);
DeclareOperation("SiftedPcElement",[IsInducedPcgs,IsObject]);
DeclareOperation("HomomorphicCanonicalPcgs",[IsPcgs,IsList]);
DeclareOperation("HomomorphicInducedPcgs",[IsPcgs,IsList]);
DeclareGlobalFunction("CorrespondingGeneratorsByModuloPcgs");
DeclareGlobalFunction("NORMALIZE_IGS");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pcgsind.gd"

#F  file="lib/pcgspcg.gd" crc=-18633154
RANK_FILTER_LIST  := [ 33553773, 21, 1, 0, 1, 0, 48, 24, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pcgspcg.gd", -18633154 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pcgspcg.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pcgspcg.gd");
elif COM_RESULT = 3  then
Revision.pcgspcg_gd:="@(#)$Id: pcgspcg.gd,v 4.11 2002/04/15 10:05:12 sal Exp $";
DeclareProperty("IsFamilyPcgs",IsPcgs,30);
InstallTrueMethod(IsCanonicalPcgs,IsFamilyPcgs);
InstallTrueMethod(IsParentPcgsFamilyPcgs,IsFamilyPcgs);
DeclareGlobalFunction("DoExponentsConjLayerFampcgs");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pcgspcg.gd"

#F  file="lib/pcgsmodu.gd" crc=-17869349
RANK_FILTER_LIST  := [ 16776407, 20, 1, 0, 1, 0, 63, 23, 993, 2, 1, 0, 
  16776407, 20, 1, 0, 1, 0, 93, 23, 993, 2, 1, 0, 16776407, 20, 1, 0, 1, 0, 
  10996721, 23, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pcgsmodu.gd", -17869349 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pcgsmodu.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pcgsmodu.gd");
elif COM_RESULT = 3  then
Revision.pcgsmodu_gd:="@(#)$Id: pcgsmodu.gd,v 4.18 2002/04/15 10:05:12 sal Exp $";
DeclareOperation("ModuloPcgsByPcSequenceNC",[IsPcgs,IsList,IsPcgs]);
DeclareOperation("ModuloPcgsByPcSequence",[IsPcgs,IsList,IsPcgs]);
DeclareGlobalFunction("ModuloTailPcgsByList");
DeclareOperation("ModuloPcgs",[IsGroup,IsGroup]);
DeclareAttribute("DenominatorOfModuloPcgs",IsModuloPcgs);
DeclareAttribute("NumeratorOfModuloPcgs",IsModuloPcgs);
DeclareProperty("IsNumeratorParentPcgsFamilyPcgs",IsModuloPcgs);
DeclareOperation("ExponentsConjugateLayer",[IsModuloPcgs,IsMultiplicativeElementWithInverse,IsMultiplicativeElementWithInverse]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pcgsmodu.gd"

#F  file="lib/pcgsperm.gd" crc=-79723072
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pcgsperm.gd", -79723072 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pcgsperm.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pcgsperm.gd");
elif COM_RESULT = 3  then
Revision.pcgsperm_gd:="@(#)$Id: pcgsperm.gd,v 4.22 2002/04/15 10:05:12 sal Exp $";
DeclareRepresentation("IsPcgsPermGroupRep",IsPcgsDefaultRep and IsFiniteOrdersPcgs,["group","stabChain"]);
DeclareRepresentation("IsModuloPcgsPermGroupRep",IsPcgsPermGroupRep,["group","stabChain","series","denominator"]);
DeclareGlobalFunction("AddNormalizingElementPcgs");
DeclareGlobalFunction("ExtendSeriesPermGroup");
DeclareGlobalFunction("TryPcgsPermGroup");
DeclareGlobalFunction("PcgsStabChainSeries");
DeclareGlobalFunction("ExponentsOfPcElementPermGroup");
DeclareGlobalFunction("PermpcgsPcGroupPcgs");
DeclareGlobalFunction("SolvableNormalClosurePermGroup");
DeclareGlobalFunction("TailOfPcgsPermGroup");
DeclareGlobalFunction("PcgsMemberPcSeriesPermGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pcgsperm.gd"

#F  file="lib/pcgsspec.gd" crc=102909204
RANK_FILTER_LIST  := [ 33553773, 21, 1, 0, 1, 0, 62517034, 24, 993, 2, 1, 0, 
  33553773, 21, 1, 0, 1, 0, 57924196, 24, 993, 2, 1, 0, 33553773, 21, 1, 0, 
  1, 0, 48738520, 24, 993, 2, 1, 0, 33553773, 21, 1, 0, 1, 0, 30367168, 24, 
  993, 2, 1, 0, 33553773, 21, 1, 0, 1, 0, 60733343, 24, 993, 2, 1, 0, 
  33553773, 21, 1, 0, 1, 0, 54356814, 24, 993, 2, 1, 0, 33553773, 21, 1, 0, 
  1, 0, 41603756, 24, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  16098600, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  32197167, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  64394301, 21, 993, 2, 1, 0, 33553773, 21, 1, 0, 1, 0, 56248548, 24, 993, 2, 
  1, 0, 33553773, 21, 1, 0, 1, 0, 23667456, 24, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pcgsspec.gd", 102909204 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pcgsspec.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pcgsspec.gd");
elif COM_RESULT = 3  then
Revision.pcgsspec_gd:="@(#)$Id: pcgsspec.gd,v 4.19 2002/04/15 10:05:12 sal Exp $";
DeclareInfoClass("InfoSpecPcgs");
DeclareProperty("IsSpecialPcgs",IsPcgs);
InstallTrueMethod(IsPcgsElementaryAbelianSeries,IsSpecialPcgs);
DeclareAttribute("SpecialPcgs",IsPcgs);
DeclareAttribute("LGHeads",IsPcgs);
DeclareAttribute("LGTails",IsPcgs);
DeclareAttribute("LGWeights",IsPcgs);
DeclareAttribute("LGLayers",IsPcgs);
DeclareAttribute("LGFirst",IsPcgs);
DeclareAttribute("LGLength",IsGroup);
DeclareAttribute("InducedPcgsWrtSpecialPcgs",IsGroup);
DeclareAttribute("CanonicalPcgsWrtSpecialPcgs",IsGroup);
DeclareProperty("IsInducedPcgsWrtSpecialPcgs",IsPcgs);
DeclareProperty("IsCanonicalPcgsWrtSpecialPcgs",IsPcgs);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pcgsspec.gd"

#F  file="lib/grppc.gd" crc=63405344
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 47333919, 21, 
  993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 27557966, 21, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 55115899, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 43122886, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 19136860, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 38273687, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 9437502, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 18874971, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 8388986, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 16777939, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 33554885, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 858, 21, 993, 2, 1, 0, 60816854, 
  16, 60816854, 16, 1, 0, 1, 0, 1783589, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppc.gd", 63405344 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppc.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppc.gd");
elif COM_RESULT = 3  then
Revision.grppc_gd:="@(#)$Id: grppc.gd,v 4.55.2.1 2002/10/30 18:26:58 gap Exp $";
DeclareInfoClass("InfoPcGroup");
InstallTrueMethod(CanEasilySortElements,IsPcGroup and IsFinite);
InstallTrueMethod(KnowsHowToDecompose,IsPcGroup);
InstallTrueMethod(IsGeneratorsOfMagmaWithInverses,IsMultiplicativeElementWithInverseByPolycyclicCollectorCollection);
DeclareAttribute("CanonicalPcgsWrtFamilyPcgs",IsGroup);
DeclareAttribute("CanonicalPcgsWrtHomePcgs",IsGroup);
DeclareAttribute("FamilyPcgs",IsGroup);
InstallSubsetMaintenance(FamilyPcgs,IsGroup,IsGroup);
DeclareAttribute("HomePcgs",IsGroup);
InstallSubsetMaintenance(HomePcgs,IsGroup,IsGroup);
DeclareAttribute("InducedPcgsWrtFamilyPcgs",IsGroup);
DeclareOperation("InducedPcgs",[IsPcgs,IsGroup]);
DeclareGlobalFunction("SetInducedPcgs");
DeclareAttribute("InducedPcgsWrtHomePcgs",IsGroup);
DeclareAttribute("Pcgs",IsGroup);
DeclareAttribute("GeneralizedPcgs",IsGroup);
DeclareFilter("CanEasilyComputePcgs");
InstallTrueMethod(IsGroup,CanEasilyComputePcgs);
DeclareAttribute("PcgsElementaryAbelianSeries",IsGroup);
DeclareAttribute("PcgsChiefSeries",IsGroup);
DeclareAttribute("PcgsCentralSeries",IsGroup);
DeclareAttribute("PcgsPCentralSeriesPGroup",IsGroup);
DeclareOperation("SubgroupByPcgs",[IsGroup,IsPcgs]);
DeclareOperation("AffineAction",[IsList,IsMatrix,IsFunction,IsFunction]);
DeclareSynonym("AffineOperation",AffineAction);
DeclareOperation("LinearAction",[IsList,IsMatrix,IsFunction]);
DeclareSynonym("LinearOperation",LinearAction);
InstallTrueMethod(IsSolvableGroup,IsPcGroup);
DeclareGlobalFunction("AffineActionLayer");
DeclareSynonym("AffineOperationLayer",AffineActionLayer);
DeclareGlobalFunction("GeneratorsCentrePGroup");
DeclareSynonym("GeneratorsCenterPGroup",GeneratorsCentrePGroup);
DeclareGlobalFunction("LinearActionLayer");
DeclareSynonym("LinearOperationLayer",LinearActionLayer);
DeclareGlobalFunction("VectorSpaceByPcgsOfElementaryAbelianGroup");
DeclareGlobalFunction("GapInputPcGroup");
DeclareGlobalFunction("CanonicalSubgroupRepresentativePcGroup");
DeclareGlobalFunction("CentrePcGroup");
DeclareAttribute("OmegaSeries",IsGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppc.gd"

#F  file="lib/grppcnrm.gd" crc=-84496210
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 5350971, 22, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppcnrm.gd", -84496210 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppcnrm.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppcnrm.gd");
elif COM_RESULT = 3  then
Revision.grppcnrm_gd:="@(#)$Id: grppcnrm.gd,v 4.8 2002/04/15 10:04:52 sal Exp $";
DeclareInfoClass("InfoPcNormalizer");
DeclareAttribute("NormalizerInHomePcgs",IsGroup and HasHomePcgs);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppcnrm.gd"

#F  file="lib/grptbl.gd" crc=-116466940
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grptbl.gd", -116466940 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grptbl.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grptbl.gd");
elif COM_RESULT = 3  then
Revision.grptbl_gd:="@(#)$Id: grptbl.gd,v 4.11 2002/04/15 10:04:53 sal Exp $";
DeclareRepresentation("IsMagmaByMultiplicationTableObj",IsPositionalObjectRep and IsMultiplicativeElementWithInverse,[1]);
DeclareGlobalFunction("MagmaByMultiplicationTable");
DeclareGlobalFunction("MagmaWithOneByMultiplicationTable");
DeclareGlobalFunction("MagmaWithInversesByMultiplicationTable");
DeclareGlobalFunction("MagmaElement");
DeclareGlobalFunction("SemigroupByMultiplicationTable");
DeclareGlobalFunction("MonoidByMultiplicationTable");
DeclareGlobalFunction("GroupByMultiplicationTable");
DeclareGlobalFunction("MultiplicationTable");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grptbl.gd"

#F  file="lib/grpperm.gd" crc=104648722
RANK_FILTER_LIST  := [ 16514638, 27, 60816854, 16, 10222612, 27, 1, 0, 1, 0, 
  26752383, 30, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 27, 1, 0, 
  1, 0, 55288559, 30, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 27, 
  1, 0, 1, 0, 58949652, 30, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 
  10222612, 27, 1, 0, 1, 0, 50789432, 30, 993, 2, 1, 0, 16514638, 27, 
  60816854, 16, 10222612, 27, 1, 0, 1, 0, 34468992, 30, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpperm.gd", 104648722 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpperm.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpperm.gd");
elif COM_RESULT = 3  then
Revision.grpperm_gd:="@(#)$Id: grpperm.gd,v 4.46 2002/04/15 10:04:52 sal Exp $";
DeclareSynonym("IsPermGroup",IsGroup and IsPermCollection);
InstallTrueMethod(IsSubsetLocallyFiniteGroup,IsPermCollection);
InstallTrueMethod(CanEasilySortElements,IsPermGroup and IsFinite);
InstallTrueMethod(KnowsHowToDecompose,IsPermGroup);
InstallTrueMethod(IsGeneratorsOfMagmaWithInverses,IsPermCollection);
DeclareGlobalFunction("MinimizeExplicitTransversal");
DeclareGlobalFunction("AddCosetInfoStabChain");
DeclareGlobalFunction("NumberCoset");
DeclareGlobalFunction("CosetNumber");
DeclareGlobalFunction("IndependentGeneratorsAbelianPPermGroup");
DeclareGlobalFunction("OrbitPerms");
DeclareGlobalFunction("OrbitsPerms");
DeclareGlobalFunction("SylowSubgroupPermGroup");
DeclareGlobalFunction("SignPermGroup");
DeclareGlobalFunction("CycleStructuresGroup");
DeclareGlobalFunction("ApproximateSuborbitsStabilizerPermGroup");
DeclareAttribute("AllBlocks",IsPermGroup);
DeclareAttribute("TransitiveIdentification",IsPermGroup);
DeclareAttribute("PrimitiveIdentification",IsPermGroup);
DeclareAttribute("ONanScottType",IsPermGroup);
DeclareAttribute("SocleTypePrimitiveGroup",IsPermGroup);
DeclareGlobalFunction("DiagonalSocleAction");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpperm.gd"

#F  file="lib/grpprmcs.gd" crc=127439329
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpprmcs.gd", 127439329 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpprmcs.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpprmcs.gd");
elif COM_RESULT = 3  then
Revision.grpprmcs_gd:="@(#)$Id: grpprmcs.gd,v 4.8 2002/04/15 10:04:52 sal Exp $";
DeclareGlobalFunction("NonPerfectCSPG");
DeclareGlobalFunction("PerfectCSPG");
DeclareGlobalFunction("CasesCSPG");
DeclareGlobalFunction("FindNormalCSPG");
DeclareGlobalFunction("FindRegularNormalCSPG");
DeclareGlobalFunction("NinKernelCSPG");
DeclareGlobalFunction("RegularNinKernelCSPG");
DeclareGlobalFunction("NormalizerStabCSPG");
DeclareGlobalFunction("TransStabCSPG");
DeclareGlobalFunction("PullbackKernelCSPG");
DeclareGlobalFunction("PullbackCSPG");
DeclareGlobalFunction("CosetRepAsWord");
DeclareGlobalFunction("ImageInWord");
DeclareGlobalFunction("SiftAsWord");
DeclareGlobalFunction("InverseAsWord");
DeclareGlobalFunction("RandomElmAsWord");
DeclareGlobalFunction("CentralizerNormalCSPG");
DeclareGlobalFunction("CentralizerNormalTransCSPG");
DeclareGlobalFunction("CentralizerTransSymmCSPG");
DeclareGlobalFunction("IntersectionNormalClosurePermGroup");
DeclareGlobalFunction("ActionAbelianCSPG");
DeclareGlobalFunction("ImageOnAbelianCSPG");
DeclareGlobalFunction("ChiefSeriesOfGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpprmcs.gd"

#F  file="lib/stbcbckt.gd" crc=109726753
RANK_FILTER_LIST  := [ 16514638, 27, 60816854, 16, 10222612, 27, 1, 0, 1, 0, 
  1828112, 30, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/stbcbckt.gd", 109726753 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/stbcbckt.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/stbcbckt.gd");
elif COM_RESULT = 3  then
Revision.stbcbckt_gd:="@(#)$Id: stbcbckt.gd,v 4.25 2002/04/15 10:05:23 sal Exp $";
DeclareInfoClass("InfoBckt");
DeclareGlobalFunction("AsPerm");
DeclareGlobalFunction("PreImageWord");
DeclareGlobalFunction("ExtendedT");
DeclareGlobalFunction("MeetPartitionStrat");
DeclareGlobalFunction("MeetPartitionStratCell");
DeclareGlobalFunction("StratMeetPartition");
DeclareGlobalFunction("Suborbits");
DeclareGlobalFunction("OrbitalPartition");
DeclareGlobalFunction("EmptyRBase");
DeclareGlobalFunction("IsTrivialRBase");
DeclareGlobalFunction("AddRefinement");
DeclareGlobalFunction("ProcessFixpoint");
DeclareGlobalFunction("RegisterRBasePoint");
DeclareGlobalFunction("NextRBasePoint");
DeclareGlobalFunction("RRefine");
DeclareGlobalFunction("PBIsMinimal");
DeclareGlobalFunction("SubtractBlistOrbitStabChain");
DeclareGlobalFunction("PartitionBacktrack");
DeclareGlobalFunction("SuboLiBli");
DeclareGlobalFunction("SuboSiBli");
DeclareGlobalFunction("SuboTruePos");
DeclareGlobalFunction("SuboUniteBlist");
DeclareGlobalFunction("ConcatSubos");
DeclareGlobalFunction("Refinements_ProcessFixpoint");
DeclareGlobalFunction("Refinements_Intersection");
DeclareGlobalFunction("Refinements_Centralizer");
DeclareGlobalFunction("Refinements__MakeBlox");
DeclareGlobalFunction("Refinements_SplitOffBlock");
DeclareGlobalFunction("Refinements__RegularOrbit1");
DeclareGlobalFunction("Refinements_RegularOrbit2");
DeclareGlobalFunction("Refinements_RegularOrbit3");
DeclareGlobalFunction("Refinements_Suborbits0");
DeclareGlobalFunction("Refinements_Suborbits1");
DeclareGlobalFunction("Refinements_Suborbits2");
DeclareGlobalFunction("Refinements_Suborbits3");
DeclareGlobalFunction("Refinements_TwoClosure");
DeclareGlobalVariable("Refinements");
DeclareGlobalFunction("NextLevelRegularGroups");
DeclareGlobalFunction("RBaseGroupsBloxPermGroup");
DeclareGlobalFunction("RepOpSetsPermGroup");
DeclareGlobalFunction("RepOpElmTuplesPermGroup");
DeclareGlobalFunction("IsomorphismPermGroups");
DeclareGlobalFunction("AutomorphismGroupPermGroup");
DeclareGlobalFunction("ElementProperty");
DeclareGlobalFunction("SubgroupProperty");
DeclareGlobalFunction("PartitionStabilizerPermGroup");
DeclareAttribute("TwoClosure",IsPermGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/stbcbckt.gd"

#F  file="lib/ghom.gd" crc=76103357
RANK_FILTER_LIST  := [ 67108475, 7, 67108475, 7, 1, 0, 1, 0, 29235857, 16, 
  993, 2, 1, 0, 67108475, 7, 67108475, 7, 1, 0, 1, 0, 58471681, 16, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 49834450, 21, 993, 2, 1, 0, 
  33444908, 18, 33444908, 18, 33444308, 19, 67108475, 7, 67108475, 7, 1, 0, 
  1, 0, 65117063, 16, 993, 2, 1, 0, 67108475, 7, 67108475, 7, 1, 0, 1, 0, 
  59138636, 16, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 51167400, 26, 993, 2, 1, 0, 
  67108475, 7, 67108475, 7, 1, 0, 1, 0, 35225888, 16, 993, 2, 1, 0, 60816854, 
  16, 60816854, 16, 1, 0, 1, 0, 3342864, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ghom.gd", 76103357 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ghom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ghom.gd");
elif COM_RESULT = 3  then
Revision.ghom_gd:="@(#)$Id: ghom.gd,v 4.55 2002/04/15 10:04:40 sal Exp $";
DeclareOperation("GroupGeneralMappingByImages",[IsGroup,IsGroup,IsList,IsList]);
DeclareGlobalFunction("GroupHomomorphismByImages");
DeclareOperation("GroupHomomorphismByImagesNC",[IsGroup,IsGroup,IsList,IsList]);
DeclareRepresentation("IsGroupGeneralMappingByImages",IsGroupGeneralMapping and IsSPGeneralMapping and IsAttributeStoringRep,[]);
DeclareRepresentation("IsPreimagesByAsGroupGeneralMappingByImages",IsGroupGeneralMapping and IsSPGeneralMapping and IsAttributeStoringRep,[]);
DeclareRepresentation("IsGroupGeneralMappingByAsGroupGeneralMappingByImages",IsPreimagesByAsGroupGeneralMappingByImages,[]);
DeclareAttribute("AsGroupGeneralMappingByImages",IsGroupGeneralMapping);
DeclareAttribute("MappingOfWhichItIsAsGGMBI",IsGroupGeneralMapping);
InstallAttributeMethodByGroupGeneralMappingByImages:=COM_FUN(1);
InParentFOA("NaturalHomomorphismByNormalSubgroupNC",IsGroup,IsGroup,DeclareAttribute);
DeclareSynonym("NaturalHomomorphismByNormalSubgroupInParent",NaturalHomomorphismByNormalSubgroupNCInParent);
DeclareSynonym("NaturalHomomorphismByNormalSubgroupOp",NaturalHomomorphismByNormalSubgroupNCOp);
BindGlobal("NaturalHomomorphismByNormalSubgroupNCOrig",NaturalHomomorphismByNormalSubgroupNC);
MakeReadWriteGlobal("NaturalHomomorphismByNormalSubgroupNC");
UnbindGlobal("NaturalHomomorphismByNormalSubgroupNC");
BindGlobal("NaturalHomomorphismByNormalSubgroupNC",COM_FUN(2));
DeclareGlobalFunction("NaturalHomomorphismByNormalSubgroup");
DeclareOperation("ConjugatorIsomorphism",[IsGroup,IsMultiplicativeElementWithInverse]);
DeclareGlobalFunction("ConjugatorAutomorphism");
DeclareOperation("ConjugatorAutomorphismNC",[IsGroup,IsMultiplicativeElementWithInverse]);
DeclareGlobalFunction("InnerAutomorphism");
DeclareOperation("InnerAutomorphismNC",[IsGroup,IsMultiplicativeElementWithInverse]);
DeclareProperty("IsConjugatorIsomorphism",IsGroupGeneralMapping);
DeclareSynonymAttr("IsConjugatorAutomorphism",IsEndoGeneralMapping and IsConjugatorIsomorphism);
DeclareProperty("IsInnerAutomorphism",IsGroupGeneralMapping);
InstallTrueMethod(IsBijective,IsConjugatorIsomorphism);
InstallTrueMethod(IsGroupHomomorphism,IsConjugatorIsomorphism);
InstallTrueMethod(IsConjugatorAutomorphism,IsInnerAutomorphism);
DeclareAttribute("ConjugatorOfConjugatorIsomorphism",IsConjugatorIsomorphism);
DeclareSynonymAttr("ConjugatorInnerAutomorphism",ConjugatorOfConjugatorIsomorphism);
DeclareGlobalFunction("MakeMapping");
DeclareGlobalFunction("GroupHomomorphismByFunction");
DeclareGlobalFunction("ImagesRepresentativeGMBIByElementsList");
DeclareAttribute("ImagesSmallestGenerators",IsGroupGeneralMapping);
DeclareAttribute("RegularActionHomomorphism",IsGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ghom.gd"

#F  file="lib/ghompcgs.gd" crc=130786401
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ghompcgs.gd", 130786401 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ghompcgs.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ghompcgs.gd");
elif COM_RESULT = 3  then
Revision.ghompcgs_gd:="@(#)$Id: ghompcgs.gd,v 4.10 2002/04/15 10:04:41 sal Exp $";
DeclareRepresentation("IsGroupGeneralMappingByPcgs",IsGroupGeneralMappingByImages,["generators","genimages","sourcePcgs","sourcePcgsImages"]);
DeclareRepresentation("IsPcGroupGeneralMappingByImages",IsGroupGeneralMappingByPcgs,["generators","genimages","sourcePcgs","sourcePcgsImages"]);
DeclareSynonym("IsPcGroupHomomorphismByImages",IsPcGroupGeneralMappingByImages and IsMapping);
DeclareRepresentation("IsToPcGroupGeneralMappingByImages",IsGroupGeneralMappingByImages,["generators","genimages","rangePcgs","rangePcgsPreimages"]);
DeclareSynonym("IsToPcGroupHomomorphismByImages",IsToPcGroupGeneralMappingByImages and IsMapping);
DeclareOperation("NaturalIsomorphismByPcgs",[IsGroup,IsPcgs]);
DeclareRepresentation("IsNaturalHomomorphismPcGroupRep",IsGroupHomomorphism and IsSurjective and IsSPGeneralMapping and IsAttributeStoringRep,["sourcePcgs","rangePcgs"]);
DeclareRepresentation("IsPcgsToPcgsGeneralMappingByImages",IsPcGroupGeneralMappingByImages and IsToPcGroupGeneralMappingByImages,["generators","genimages","sourcePcgs","sourcePcgsImages","rangePcgs","rangePcgsPreimages"]);
DeclareSynonym("IsPcgsToPcgsHomomorphism",IsPcgsToPcgsGeneralMappingByImages and IsMapping);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ghompcgs.gd"

#F  file="lib/gprd.gd" crc=52485125
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 12583860, 21, 
  993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 25166727, 21, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 50332461, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 33555050, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/gprd.gd", 52485125 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/gprd.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/gprd.gd");
elif COM_RESULT = 3  then
Revision.gprd_gd:="@(#)$Id: gprd.gd,v 4.28 2002/04/15 10:04:43 sal Exp $";
DeclareGlobalFunction("DirectProduct");
DeclareOperation("DirectProductOp",[IsList,IsGroup]);
DeclareGlobalFunction("SubdirectProduct");
DeclareOperation("SubdirectProductOp",[IsGroup,IsGroup,IsGroupHomomorphism,IsGroupHomomorphism]);
DeclareGlobalFunction("SubdirectDiagonalPerms");
DeclareOperation("SemidirectProduct",[IsGroup,IsGroupHomomorphism,IsObject]);
DeclareOperation("WreathProduct",[IsObject,IsObject]);
DeclareGlobalFunction("WreathProductImprimitiveAction");
DeclareGlobalFunction("WreathProductProductAction");
DeclareGlobalFunction("InnerSubdirectProducts");
DeclareGlobalFunction("InnerSubdirectProducts2");
DeclareGlobalFunction("SubdirectProducts");
DeclareAttribute("DirectProductInfo",IsGroup,"mutable");
DeclareAttribute("SubdirectProductInfo",IsGroup,"mutable");
DeclareAttribute("SemidirectProductInfo",IsGroup,"mutable");
DeclareAttribute("WreathProductInfo",IsGroup,"mutable");
DeclareGlobalFunction("SubdirProdPcGroups");
DeclareCategory("IsWreathProductElement",IsMultiplicativeElementWithInverse and IsAssociativeElement);
DeclareCategoryCollections("IsWreathProductElement");
InstallTrueMethod(IsGeneratorsOfMagmaWithInverses,IsWreathProductElementCollection);
DeclareRepresentation("IsWreathProductElementDefaultRep",IsWreathProductElement and IsPositionalObjectRep,[]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/gprd.gd"

#F  file="lib/ghomperm.gd" crc=108240894
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ghomperm.gd", 108240894 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ghomperm.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ghomperm.gd");
elif COM_RESULT = 3  then
Revision.ghomperm_gd:="@(#)$Id: ghomperm.gd,v 4.11 2002/04/15 10:04:42 sal Exp $";
DeclareRepresentation("IsPermGroupGeneralMappingByImages",IsGroupGeneralMappingByImages,["generators","genimages"]);
DeclareSynonym("IsPermGroupHomomorphismByImages",IsPermGroupGeneralMappingByImages and IsMapping);
DeclareRepresentation("IsToPermGroupGeneralMappingByImages",IsGroupGeneralMappingByImages,["generators","genimages"]);
DeclareSynonym("IsToPermGroupHomomorphismByImages",IsToPermGroupGeneralMappingByImages and IsMapping);
DeclareGlobalFunction("RelatorsPermGroupHom");
DeclareGlobalFunction("AddGeneratorsGenimagesExtendSchreierTree");
DeclareGlobalFunction("ImageSiftedBaseImage");
DeclareGlobalFunction("CoKernelGensIterator");
DeclareGlobalFunction("CoKernelGensPermHom");
DeclareGlobalFunction("StabChainPermGroupToPermGroupGeneralMappingByImages");
DeclareGlobalFunction("MakeStabChainLong");
DeclareGlobalFunction("ImageKernelBlocksHomomorphism");
DeclareGlobalFunction("PreImageSetStabBlocksHomomorphism");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ghomperm.gd"

#F  file="lib/gpprmsya.gd" crc=21270131
RANK_FILTER_LIST  := [ 16514638, 27, 60816854, 16, 10222612, 27, 1, 0, 1, 0, 
  15469689, 30, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  61875777, 21, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 27, 1, 0, 
  1, 0, 46173492, 30, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 
  50473231, 21, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 27, 1, 0, 
  1, 0, 33836590, 30, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 27, 
  1, 0, 1, 0, 563308, 30, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 
  27, 1, 0, 1, 0, 1126583, 30, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/gpprmsya.gd", 21270131 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/gpprmsya.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/gpprmsya.gd");
elif COM_RESULT = 3  then
Revision.gpprmsya_gd:="@(#)$Id: gpprmsya.gd,v 4.11 2002/04/15 10:04:43 sal Exp $";
DeclareProperty("IsNaturalAlternatingGroup",IsPermGroup);
DeclareProperty("IsAlternatingGroup",IsGroup);
InstallTrueMethod(IsAlternatingGroup,IsNaturalAlternatingGroup);
DeclareProperty("IsNaturalSymmetricGroup",IsPermGroup);
DeclareProperty("IsSymmetricGroup",IsGroup);
InstallTrueMethod(IsSymmetricGroup,IsNaturalSymmetricGroup);
DeclareAttribute("SymmetricParentGroup",IsPermGroup);
DeclareAttribute("AlternatingSubgroup",IsPermGroup);
DeclareAttribute("OrbitStabilizingParentGroup",IsPermGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/gpprmsya.gd"

#F  file="lib/addgphom.gd" crc=-12651345
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/addgphom.gd", -12651345 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/addgphom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/addgphom.gd");
elif COM_RESULT = 3  then
Revision.addgphom_gd:="@(#)$Id: addgphom.gd,v 1.2 2002/04/15 10:04:22 sal Exp $";
DeclareGlobalFunction("GroupToAdditiveGroupHomomorphismByFunction");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/addgphom.gd"

#F  file="lib/quotsys.gd" crc=114923980
RANK_FILTER_LIST  := [ 2252141, 1, 1, 0, 1, 0, 9011473, 4, 993, 2, 1, 0, 
  2252141, 1, 1, 0, 1, 0, 36045793, 4, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/quotsys.gd", 114923980 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/quotsys.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/quotsys.gd");
elif COM_RESULT = 3  then
Revision.quotsys_gd:="$Id: quotsys.gd,v 4.3 1999/08/17 13:37:19 werner Exp $";
DeclareCategory("IsQuotientSystem",IsObject);
DeclareInfoClass("InfoQuotientSystem");
DeclareProperty("IsPQuotientSystem",IsQuotientSystem);
DeclareProperty("IsNilpQuotientSystem",IsQuotientSystem);
DeclareOperation("QuotientSystem",[IsObject,IsPosInt,IsPosInt,IsString]);
DeclareGlobalFunction("QuotSysDefinitionByIndex");
DeclareGlobalFunction("QuotSysIndexByDefinition");
DeclareOperation("GetDefinitionNC",[IsQuotientSystem,IsPosInt]);
DeclareOperation("SetDefinitionNC",[IsQuotientSystem,IsPosInt,IsObject]);
DeclareOperation("ClearDefinitionNC",[IsQuotientSystem,IsPosInt]);
DeclareOperation("DefineNewGenerators",[IsQuotientSystem]);
DeclareOperation("SplitWordTail",[IsQuotientSystem,IsAssocWord]);
DeclareOperation("ExtRepByTailVector",[IsQuotientSystem,IsVector]);
DeclareOperation("GeneratorNumberOfQuotient",[IsQuotientSystem]);
DeclareOperation("TailsInverses",[IsQuotientSystem]);
DeclareOperation("ComputeTails",[IsQuotientSystem]);
DeclareOperation("EvaluateConsistency",[IsQuotientSystem]);
DeclareOperation("IncorporateCentralRelations",[IsQuotientSystem]);
DeclareOperation("RenumberHighestWeightGenerators",[IsQuotientSystem]);
DeclareOperation("EvaluateRelators",[IsQuotientSystem]);
DeclareOperation("LiftEpimorphism",[IsQuotientSystem]);
DeclareOperation("GeneratorsOfLayer",[IsQuotientSystem,IsPosInt]);
DeclareOperation("LengthOfDescendingSeries",[IsQuotientSystem]);
DeclareOperation("RanksOfDescendingSeries",[IsQuotientSystem]);
DeclareOperation("CheckConsistencyOfDefinitions",[IsQuotientSystem]);
DeclareOperation("GroupByQuotientSystem",[IsQuotientSystem]);
DeclareOperation("TraceDefinition",[IsQuotientSystem,IsPosInt]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/quotsys.gd"

#F  file="lib/pquot.gd" crc=-39491501
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pquot.gd", -39491501 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pquot.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pquot.gd");
elif COM_RESULT = 3  then
Revision.pquot_gd:="$Id: pquot.gd,v 4.13 2001/10/15 19:45:44 werner Exp $";
DeclareGlobalFunction("AbelianPQuotient");
DeclareGlobalFunction("PQuotient");
DeclareOperation("EpimorphismPGroup",[IsGroup,IsPosInt]);
DeclareOperation("EpimorphismPGroup",[IsGroup,IsPosInt,IsPosInt]);
DeclareOperation("EpimorphismQuotientSystem",[IsQuotientSystem]);
DeclareOperation("EpimorphismNilpotentQuotientOp",[IsGroup,IsObject]);
DeclareGlobalFunction("EpimorphismNilpotentQuotient");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pquot.gd"

#F  file="lib/fampred.g" crc=-19934699
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/fampred.g", -19934699 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/fampred.g\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/fampred.g");
elif COM_RESULT = 3  then
Revision.fampred_g:="@(#)$Id: fampred.g,v 4.25 2002/04/15 10:04:39 sal Exp $";
IsFamFamX:=COM_FUN(1);
IsFamXFam:=COM_FUN(2);
IsFamFamXY:=COM_FUN(3);
IsFamXYFamZ:=COM_FUN(4);
IsFamFamFam:=COM_FUN(5);
IsFamFamFamX:=COM_FUN(6);
IsElmsColls:=COM_FUN(7);
IsNotElmsColls:=COM_FUN(8);
IsElmsCollColls:=COM_FUN(9);
IsElmsCollsX:=COM_FUN(10);
IsElmsCollCollsX:=COM_FUN(11);
IsCollsElms:=COM_FUN(12);
IsCollCollsElms:=COM_FUN(13);
IsCollCollsElmsElmsX:=COM_FUN(14);
IsCollsElmsX:=COM_FUN(15);
IsCollsElmsElms:=COM_FUN(16);
IsCollsElmsElmsElms:=COM_FUN(17);
IsCollsElmsElmsX:=COM_FUN(18);
IsCollsElmsXElms:=COM_FUN(19);
IsCollCollsElmsElms:=COM_FUN(20);
IsCollsCollsElms:=COM_FUN(21);
IsCollsCollsElmsX:=COM_FUN(22);
IsCollsCollsElmsXX:=COM_FUN(23);
IsCollsElmsColls:=COM_FUN(24);
IsCollsXElms:=COM_FUN(25);
IsCollsXElmsX:=COM_FUN(26);
IsElmsCollsXX:=COM_FUN(27);
IsCollsElmsXX:=COM_FUN(28);
IsLieFamFam:=COM_FUN(29);
IsFamLieFam:=COM_FUN(30);
IsElmsLieColls:=COM_FUN(31);
IsElmsCollLieColls:=COM_FUN(32);
IsCollLieCollsElms:=COM_FUN(33);
IsCoeffsElms:=COM_FUN(34);
IsElmsCoeffs:=COM_FUN(35);
FamRangeEqFamElm:=COM_FUN(36);
FamSourceEqFamElm:=COM_FUN(37);
CollFamRangeEqFamElms:=COM_FUN(38);
CollFamSourceEqFamElms:=COM_FUN(39);
FamElmEqFamRange:=COM_FUN(40);
FamElmEqFamSource:=COM_FUN(41);
FamSource2EqFamRange1:=COM_FUN(42);
FamSource1EqFamRange2:=COM_FUN(43);
FamRange1EqFamRange2:=COM_FUN(44);
FamSource1EqFamSource2:=COM_FUN(45);
FamMapFamSourceFamRange:=COM_FUN(46);
FamSourceRgtEqFamsLft:=COM_FUN(47);
FamSourceNotEqFamElm:=COM_FUN(48);
FamRangeNotEqFamElm:=COM_FUN(49);
IsMagmaRingsRings:=COM_FUN(50);
IsMagmaRingsMagmas:=COM_FUN(51);
IsRingsMagmaRings:=COM_FUN(52);
IsMagmasMagmaRings:=COM_FUN(53);
IsMagmaCollsMagmaRingColls:=COM_FUN(54);
IsRingCollsMagmaRingColls:=COM_FUN(55);
IsIdenticalObjObjXObj:=COM_FUN(56);
IsFamXFamY:=COM_FUN(57);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/fampred.g"

#F  file="lib/oprt.gd" crc=-55520664
RANK_FILTER_LIST  := [ 4980722, 6, 1, 0, 1, 0, 50332581, 9, 993, 2, 1, 0, 
  4980722, 6, 1, 0, 1, 0, 33555290, 9, 993, 2, 1, 0, 4980722, 6, 1, 0, 1, 0, 
  633, 9, 993, 2, 1, 0, 9203789, 23, 1, 0, 1, 0, 54814005, 24, 993, 2, 1, 0, 
  4980722, 6, 1, 0, 1, 0, 9768416, 9, 993, 2, 1, 0, 4980722, 6, 1, 0, 1, 0, 
  19535839, 9, 993, 2, 1, 0, 4980722, 6, 1, 0, 1, 0, 39070685, 9, 993, 2, 1, 
  0, 4980722, 6, 1, 0, 1, 0, 11031498, 9, 993, 2, 1, 0, 4980722, 6, 1, 0, 1, 
  0, 22062003, 9, 993, 2, 1, 0, 33444908, 18, 4980722, 6, 1, 0, 1, 0, 
  44123013, 9, 993, 2, 1, 0, 4980722, 6, 1, 0, 1, 0, 21136154, 9, 993, 2, 1, 
  0, 67108595, 22, 1, 0, 1, 0, 42271315, 23, 993, 2, 1, 0, 4980722, 6, 1, 0, 
  1, 0, 17432758, 9, 993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 18, 1, 
  0, 49959545, 27, 4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 
  4063233, 1, 5, 1, 33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 
  8125595, 5, 8193, 2, 8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 34865483, 9, 
  993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 
  4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 
  33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 
  8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 2621094, 9, 993, 2, 1, 0, 4980722, 
  6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 4063233, 1, 33444908, 
  18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 33444908, 18, 1, 0, 8193, 
  2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 8193, 2, 5, 1, 4980722, 6, 
  1, 0, 1, 0, 5241195, 9, 993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 
  18, 1, 0, 49959545, 27, 4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 
  4063233, 1, 5, 1, 33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 
  8125595, 5, 8193, 2, 8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 10482357, 9, 
  993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 
  4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 
  33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 
  8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 20963721, 9, 993, 2, 1, 0, 4980722, 
  6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 4063233, 1, 33444908, 
  18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 33444908, 18, 1, 0, 8193, 
  2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 8193, 2, 5, 1, 4980722, 6, 
  1, 0, 1, 0, 41927409, 9, 993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 
  18, 1, 0, 49959545, 27, 4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 
  4063233, 1, 5, 1, 33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 
  8125595, 5, 8193, 2, 8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 16744946, 9, 
  993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 
  4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 
  33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 
  8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 33489859, 9, 993, 2, 1, 0, 4980722, 
  6, 1, 0, 1, 0, 66978725, 9, 993, 2, 1, 0, 4980722, 6, 1, 0, 1, 0, 66847578, 
  9, 993, 2, 1, 0, 4980722, 6, 1, 0, 1, 0, 66585284, 9, 993, 2, 1, 0, 
  4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 4063233, 1, 
  33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 33444908, 18, 1, 
  0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 8193, 2, 5, 1, 
  4980722, 6, 1, 0, 1, 0, 65012480, 9, 993, 2, 1, 0, 4980722, 6, 49959545, 
  27, 33444908, 18, 1, 0, 49959545, 27, 4063233, 1, 33444908, 18, 1, 0, 5, 1, 
  49959545, 27, 4063233, 1, 5, 1, 33444908, 18, 1, 0, 8193, 2, 8193, 2, 
  33444908, 18, 8125595, 5, 8193, 2, 8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 
  58720304, 9, 993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 
  49959545, 27, 4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 
  1, 5, 1, 33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 
  8193, 2, 8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 33554480, 9, 993, 2, 1, 0, 
  4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 4063233, 1, 
  33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 33444908, 18, 1, 
  0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 8193, 2, 5, 1, 
  4980722, 6, 1, 0, 1, 0, 54815340, 9, 993, 2, 1, 0, 4980722, 6, 49959545, 
  27, 33444908, 18, 1, 0, 49959545, 27, 4063233, 1, 33444908, 18, 1, 0, 5, 1, 
  49959545, 27, 4063233, 1, 5, 1, 33444908, 18, 1, 0, 8193, 2, 8193, 2, 
  33444908, 18, 8125595, 5, 8193, 2, 8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 
  48162697, 9, 993, 2, 1, 0, 4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 
  49959545, 27, 4063233, 1, 33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 
  1, 5, 1, 33444908, 18, 1, 0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 
  8193, 2, 8193, 2, 5, 1, 4980722, 6, 1, 0, 1, 0, 16922880, 9, 993, 2, 1, 0, 
  4980722, 6, 49959545, 27, 33444908, 18, 1, 0, 49959545, 27, 4063233, 1, 
  33444908, 18, 1, 0, 5, 1, 49959545, 27, 4063233, 1, 5, 1, 33444908, 18, 1, 
  0, 8193, 2, 8193, 2, 33444908, 18, 8125595, 5, 8193, 2, 8193, 2, 5, 1 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/oprt.gd", -55520664 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/oprt.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/oprt.gd");
elif COM_RESULT = 3  then
Revision.oprt_gd:="@(#)$Id: oprt.gd,v 4.85 2002/04/15 10:05:05 sal Exp $";
DeclareInfoClass("InfoAction");
DeclareSynonym("InfoOperation",InfoAction);
DeclareCategory("IsExternalSet",IsDomain);
OrbitishReq:=[IsGroup,IsListOrCollection,IsObject,IsList,IsList,IsFunction];
OrbitsishReq:=[IsGroup,IsListOrCollection,IsList,IsList,IsFunction];
DeclareRepresentation("IsExternalSubset",IsComponentObjectRep and IsAttributeStoringRep and IsExternalSet,["start"]);
DeclareRepresentation("IsExternalOrbit",IsExternalSubset,["start"]);
DeclareCategory("IsExternalSetByPcgs",IsExternalSet);
BindGlobal("XSET_XSSETTYPE",4);
BindGlobal("XSET_XORBTYPE",5);
DeclareRepresentation("IsExternalSetDefaultRep",IsAttributeStoringRep and IsExternalSet,[]);
DeclareRepresentation("IsExternalSetByActorsRep",IsAttributeStoringRep and IsExternalSet,["generators","operators","funcOperation"]);
DeclareSynonym("IsExternalSetByOperatorsRep",IsExternalSetByActorsRep);
DeclareAttribute("ActingDomain",IsExternalSet);
DeclareAttribute("HomeEnumerator",IsExternalSet);
DeclareRepresentation("IsActionHomomorphism",IsGroupHomomorphism and IsAttributeStoringRep and IsPreimagesByAsGroupGeneralMappingByImages,[]);
DeclareRepresentation("IsActionHomomorphismByActors",IsActionHomomorphism,[]);
DeclareRepresentation("IsActionHomomorphismSubset",IsActionHomomorphism,[]);
DeclareAttribute("ActionKernelExternalSet",IsExternalSet);
DeclareRepresentation("IsActionHomomorphismByBase",IsActionHomomorphism,[]);
DeclareRepresentation("IsConstituentHomomorphism",IsActionHomomorphism,["conperm"]);
DeclareRepresentation("IsBlocksHomomorphism",IsActionHomomorphism,["reps"]);
DeclareRepresentation("IsLinearActionHomomorphism",IsActionHomomorphism,[]);
DeclareAttribute("LinearActionBasis",IsLinearActionHomomorphism);
DeclareAttribute("FunctionAction",IsExternalSet);
DeclareAttribute("StabilizerOfExternalSet",IsExternalSet);
DeclareAttribute("CanonicalRepresentativeOfExternalSet",IsExternalSet);
DeclareAttribute("CanonicalRepresentativeDeterminatorOfExternalSet",IsExternalSet);
DeclareAttribute("ActorOfExternalSet",IsExternalSet);
DeclareSynonymAttr("OperatorOfExternalSet",ActorOfExternalSet);
BindGlobal("OrbitsishOperation",COM_FUN(1));
DeclareOperation("PreOrbishProcessing",[IsGroup]);
InstallMethod(PreOrbishProcessing,[IsGroup],COM_FUN(2));
BindGlobal("OrbitishFO",COM_FUN(3));
DeclareGlobalFunction("ActionHomomorphism");
DeclareAttribute("ActionHomomorphismAttr",IsExternalSet);
DeclareGlobalFunction("ActionHomomorphismConstructor");
DeclareAttribute("SurjectiveActionHomomorphismAttr",IsExternalSet);
DeclareAttribute("UnderlyingExternalSet",IsActionHomomorphism);
DeclareGlobalFunction("DoSparseActionHomomorphism");
OrbitishFO("SparseActionHomomorphism",OrbitishReq,IsIdenticalObj,false);
OrbitishFO("SortedSparseActionHomomorphism",OrbitishReq,IsIdenticalObj,false);
DeclareGlobalFunction("ImageElmActionHomomorphism");
DeclareGlobalFunction("Action");
OrbitsishOperation("ExternalSet",OrbitsishReq,false,NewAttribute);
DeclareGlobalFunction("ExternalSetByFilterConstructor");
DeclareGlobalFunction("ExternalSetByTypeConstructor");
DeclareOperation("RestrictedExternalSet",[IsExternalSet,IsGroup]);
OrbitishFO("ExternalSubset",[IsGroup,IsList,IsList,IsList,IsList,IsFunction],IsIdenticalObj,true);
OrbitishFO("ExternalOrbit",OrbitishReq,IsCollsElms,true);
OrbitishFO("Orbit",OrbitishReq,IsCollsElms,false);
OrbitsishOperation("Orbits",OrbitsishReq,false,NewAttribute);
OrbitsishOperation("OrbitsDomain",OrbitsishReq,false,NewAttribute);
OrbitishFO("OrbitLength",OrbitishReq,IsCollsElms,false);
OrbitsishOperation("OrbitLengths",OrbitsishReq,false,NewAttribute);
OrbitsishOperation("OrbitLengthsDomain",OrbitsishReq,false,NewAttribute);
OrbitishFO("OrbitStabilizer",OrbitishReq,IsCollsElms,false);
OrbitsishOperation("ExternalOrbits",OrbitsishReq,true,NewAttribute);
OrbitsishOperation("ExternalOrbitsStabilizers",OrbitsishReq,true,NewAttribute);
OrbitsishOperation("Transitivity",OrbitsishReq,false,NewAttribute);
DeclareAttribute("BlocksAttr",IsExternalSet);
OrbitishFO("Blocks",[IsGroup,IsList,IsList,IsList,IsList,IsFunction],IsIdenticalObj,BlocksAttr);
DeclareAttribute("MaximalBlocksAttr",IsExternalSet);
OrbitishFO("MaximalBlocks",[IsGroup,IsList,IsList,IsList,IsList,IsFunction],IsIdenticalObj,MaximalBlocksAttr);
DeclareAttribute("RepresentativesMinimalBlocksAttr",IsExternalSet);
OrbitishFO("RepresentativesMinimalBlocks",[IsGroup,IsList,IsList,IsList,IsList,IsFunction],IsIdenticalObj,RepresentativesMinimalBlocksAttr);
OrbitsishOperation("Earns",OrbitsishReq,false,NewAttribute);
OrbitsishOperation("IsTransitive",OrbitsishReq,false,NewProperty);
OrbitsishOperation("IsPrimitive",OrbitsishReq,false,NewProperty);
OrbitsishOperation("IsPrimitiveAffine",OrbitsishReq,false,NewProperty);
OrbitsishOperation("IsSemiRegular",OrbitsishReq,false,NewProperty);
OrbitsishOperation("IsRegular",OrbitsishReq,false,NewProperty);
OrbitsishOperation("RankAction",OrbitsishReq,false,NewAttribute);
DeclareGlobalFunction("Permutation");
DeclareOperation("PermutationOp",[IsObject,IsList,IsFunction]);
DeclareGlobalFunction("PermutationCycle");
DeclareOperation("PermutationCycleOp",[IsObject,IsList,IsObject,IsFunction]);
DeclareGlobalFunction("Cycle");
DeclareOperation("CycleOp",[IsObject,IsList,IsObject,IsFunction]);
DeclareGlobalFunction("Cycles");
DeclareOperation("CyclesOp",[IsObject,IsList,IsFunction]);
DeclareGlobalFunction("CycleLength");
DeclareOperation("CycleLengthOp",[IsObject,IsList,IsObject,IsFunction]);
DeclareGlobalFunction("CycleLengths");
DeclareOperation("CycleLengthsOp",[IsObject,IsList,IsFunction]);
DeclareGlobalFunction("RepresentativeAction");
DeclareOperation("RepresentativeActionOp",[IsGroup,IsList,IsObject,IsObject,IsFunction]);
DeclareGlobalFunction("Stabilizer");
OrbitishFO("StabilizerFunc",OrbitishReq,IsCollsElms,false);
BindGlobal("StabilizerOp",StabilizerFuncOp);
DeclareGlobalFunction("StabilizerPcgs");
DeclareOperation("OrbitStabilizerAlgorithm",[IsGroup,IsObject,IsObject,IsList,IsList,IsRecord]);
DeclareGlobalFunction("OrbitByPosOp");
DeclareGlobalFunction("SetCanonicalRepresentativeOfExternalOrbitByPcgs");
DeclareGlobalFunction("StabilizerOfBlockNC");
DeclareOperation("AbelianSubfactorAction",[IsGroup,IsGroup,IsGroup]);
DeclareGlobalFunction("OnLines");
DeclareGlobalFunction("OnSetsSets");
DeclareGlobalFunction("OnSetsDisjointSets");
DeclareGlobalFunction("OnSetsTuples");
DeclareGlobalFunction("OnTuplesSets");
DeclareGlobalFunction("OnTuplesTuples");
DeclareOperation("DomainForAction",[IsObject,IsListOrCollection,IsFunction]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/oprt.gd"

#F  file="lib/partitio.gd" crc=-68341976
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/partitio.gd", -68341976 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/partitio.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/partitio.gd");
elif COM_RESULT = 3  then
Revision.partitio_gd:="@(#)$Id: partitio.gd,v 4.3 2002/04/15 10:05:12 sal Exp $";
DeclareGlobalFunction("Partition");
DeclareGlobalFunction("PartitionSortedPoints");
DeclareGlobalFunction("IsPartition");
DeclareGlobalFunction("NumberCells");
DeclareGlobalFunction("Cell");
DeclareGlobalFunction("Cells");
DeclareGlobalFunction("CellNoPoint");
DeclareGlobalFunction("PointInCellNo");
DeclareGlobalFunction("CellNoPoints");
DeclareGlobalFunction("Fixcells");
DeclareGlobalFunction("SplitCell");
DeclareGlobalFunction("IsolatePoint");
DeclareGlobalFunction("UndoRefinement");
DeclareGlobalFunction("FixpointCellNo");
DeclareGlobalFunction("FixcellPoint");
DeclareGlobalFunction("FixcellsCell");
DeclareGlobalFunction("TrivialPartition");
DeclareGlobalFunction("OrbitsPartition");
DeclareGlobalFunction("SmallestPrimeDivisor");
DeclareGlobalFunction("CollectedPartition");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/partitio.gd"

#F  file="lib/stbc.gd" crc=-88454344
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 21551165, 3, 993, 2, 1, 0, 1, 0, 1, 0, 
  34355590, 3, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 27, 1, 0, 
  1, 0, 1601308, 30, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 10222612, 27, 
  1, 0, 1, 0, 3201623, 30, 993, 2, 1, 0, 16514638, 27, 60816854, 16, 
  10222612, 27, 1, 0, 1, 0, 6402253, 30, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/stbc.gd", -88454344 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/stbc.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/stbc.gd");
elif COM_RESULT = 3  then
Revision.stbc_gd:="@(#)$Id: stbc.gd,v 4.45 2002/04/15 10:05:23 sal Exp $";
DeclareGlobalFunction("StabChain");
DeclareOperation("StabChainOp",[IsGroup,IsRecord]);
DeclareAttribute("StabChainMutable",IsObject,"mutable");
DeclareAttribute("StabChainImmutable",IsObject);
DeclareAttribute("StabChainOptions",IsPermGroup,"mutable");
DeclareGlobalVariable("DefaultStabChainOptions","default options for stabilizer chain calculations");
DeclareGlobalFunction("StabChainBaseStrongGenerators");
DeclareGlobalFunction("CopyStabChain");
DeclareGlobalFunction("CopyOptionsDefaults");
DeclareGlobalFunction("BaseStabChain");
DeclareAttribute("BaseOfGroup",IsPermGroup);
DeclareGlobalFunction("SizeStabChain");
DeclareGlobalFunction("StrongGeneratorsStabChain");
DeclareGlobalFunction("GroupStabChain");
DeclareGlobalFunction("IndicesStabChain");
DeclareGlobalFunction("ListStabChain");
DeclareGlobalFunction("OrbitStabChain");
DeclareGlobalFunction("ElementsStabChain");
DeclareAttribute("MinimalStabChain",IsPermGroup);
DeclareGlobalFunction("ChangeStabChain");
DeclareGlobalFunction("ExtendStabChain");
DeclareGlobalFunction("ReduceStabChain");
DeclareGlobalFunction("EmptyStabChain");
DeclareGlobalFunction("ConjugateStabChain");
DeclareGlobalFunction("RemoveStabChain");
DeclareOperation("MembershipTestKnownBase",[IsRecord,IsList,IsList]);
DeclareGlobalFunction("SiftedPermutation");
DeclareGlobalFunction("MinimalElementCosetStabChain");
DeclareGlobalFunction("SCMinSmaGens");
DeclareGlobalFunction("LargestElementStabChain");
DeclareCategory("IsPermOnEnumerator",IsMultiplicativeElementWithInverse and IsPerm);
DeclareOperation("PermOnEnumerator",[IsList,IsObject]);
DeclareGlobalFunction("DepthSchreierTrees");
DeclareGlobalFunction("AddGeneratorsExtendSchreierTree");
DeclareGlobalFunction("ChooseNextBasePoint");
DeclareGlobalFunction("StabChainStrong");
DeclareGlobalFunction("StabChainForcePoint");
DeclareGlobalFunction("StabChainSwap");
DeclareGlobalFunction("InsertElmList");
DeclareGlobalFunction("RemoveElmList");
DeclareGlobalFunction("LabsLims");
DeclareGlobalFunction("InsertTrivialStabilizer");
DeclareGlobalFunction("InitializeSchreierTree");
DeclareGlobalFunction("BasePoint");
DeclareGlobalFunction("IsInBasicOrbit");
DeclareGlobalFunction("IsFixedStabilizer");
DeclareGlobalFunction("InverseRepresentative");
DeclareGlobalFunction("QuickInverseRepresentative");
DeclareGlobalFunction("InverseRepresentativeWord");
DeclareGlobalFunction("StabChainRandomPermGroup");
DeclareGlobalFunction("SCRMakeStabStrong");
DeclareGlobalFunction("SCRStrongGenTest");
DeclareGlobalFunction("SCRSift");
DeclareGlobalFunction("SCRStrongGenTest2");
DeclareGlobalFunction("SCRNotice");
DeclareGlobalFunction("SCRExtend");
DeclareGlobalFunction("SCRSchTree");
DeclareGlobalFunction("SCRRandomPerm");
DeclareGlobalFunction("SCRRandomString");
DeclareGlobalFunction("SCRRandomSubproduct");
DeclareGlobalFunction("SCRExtendRecord");
DeclareGlobalFunction("SCRRestoredRecord");
DeclareGlobalFunction("VerifyStabilizer");
DeclareGlobalFunction("VerifySGS");
DeclareGlobalFunction("ExtensionOnBlocks");
DeclareGlobalFunction("ClosureRandomPermGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/stbc.gd"

#F  file="lib/clas.gd" crc=35122134
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/clas.gd", 35122134 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/clas.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/clas.gd");
elif COM_RESULT = 3  then
Revision.clas_gd:="@(#)$Id: clas.gd,v 4.37 2002/04/15 10:04:29 sal Exp $";
DeclareInfoClass("InfoClasses");
DeclareRepresentation("IsExternalOrbitByStabilizerRep",IsExternalOrbit,[]);
DeclareRepresentation("IsExternalOrbitByStabilizerEnumerator",IsDomainEnumerator and IsAttributeStoringRep,["rightTransversal"]);
DeclareRepresentation("IsConjugacyClassGroupRep",IsExternalOrbitByStabilizerRep,[]);
DeclareRepresentation("IsConjugacyClassPermGroupRep",IsConjugacyClassGroupRep,[]);
DeclareOperation("ConjugacyClass",[IsGroup,IsObject]);
DeclareRepresentation("IsRationalClassGroupRep",IsComponentObjectRep and IsAttributeStoringRep and IsExternalSet,["galoisGroup","power"]);
DeclareRepresentation("IsRationalClassPermGroupRep",IsRationalClassGroupRep,["galoisGroup","power"]);
InstallTrueMethod(IsFinite,IsRationalClassGroupRep and IsDomain);
DeclareOperation("RationalClass",[IsGroup,IsObject]);
DeclareAttribute("GaloisGroup",IsRationalClassGroupRep);
DeclareGlobalFunction("ConjugacyClassesByRandomSearch");
DeclareGlobalFunction("ConjugacyClassesByOrbits");
DeclareGlobalFunction("ConjugacyClassesForSmallGroup");
DeclareGlobalFunction("DecomposedRationalClass");
DeclareGlobalFunction("GroupByPrimeResidues");
DeclareGlobalFunction("ConjugacyClassesTry");
DeclareGlobalFunction("RationalClassesTry");
DeclareGlobalFunction("RationalClassesInEANS");
DeclareGlobalFunction("SubspaceVectorSpaceGroup");
DeclareGlobalFunction("CentralStepConjugatingElement");
DeclareGlobalFunction("KernelHcommaC");
DeclareGlobalFunction("OrderModK");
DeclareGlobalFunction("CentralStepRatClPGroup");
DeclareGlobalFunction("CentralStepClEANS");
DeclareGlobalFunction("CorrectConjugacyClass");
DeclareGlobalFunction("GeneralStepClEANS");
DeclareGlobalFunction("ClassesSolvableGroup");
DeclareGlobalFunction("RationalClassesSolvableGroup");
DeclareGlobalFunction("CentralizerSizeLimitConsiderFunction");
DeclareGlobalFunction("CompleteGaloisGroupPElement");
DeclareGlobalFunction("RatClasPElmArrangeClasses");
DeclareGlobalFunction("SortRationalClasses");
DeclareGlobalFunction("FusionRationalClassesPSubgroup");
DeclareGlobalFunction("RationalClassesPElements");
DeclareGlobalFunction("RationalClassesPermGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/clas.gd"

#F  file="lib/clashom.gd" crc=122543716
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/clashom.gd", 122543716 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/clashom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/clashom.gd");
elif COM_RESULT = 3  then
Revision.clashom_gd:="@(#)$Id: clashom.gd,v 4.2 2002/04/15 10:04:29 sal Exp $";
DeclareInfoClass("InfoHomClass");
DeclareGlobalFunction("ConjugacyClassesSubwreath");
DeclareGlobalFunction("ConjugacyClassesFittingFreeGroup");
DeclareGlobalFunction("ConjugacyClassesViaRadical");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/clashom.gd"

#F  file="lib/csetgrp.gd" crc=2253720
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 28125817, 21, 
  993, 2, 1, 0, 56249649, 8, 1, 0, 1, 0, 45392370, 11, 993, 2, 1, 0, 
  56249649, 8, 1, 0, 1, 0, 23675828, 11, 993, 2, 1, 0, 56249649, 8, 1, 0, 1, 
  0, 47350663, 11, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/csetgrp.gd", 2253720 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/csetgrp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/csetgrp.gd");
elif COM_RESULT = 3  then
Revision.csetgrp_gd:="@(#)$Id: csetgrp.gd,v 4.29 2002/04/15 10:04:30 sal Exp $";
DeclareInfoClass("InfoCoset");
DeclareGlobalFunction("AscendingChain");
DeclareOperation("AscendingChainOp",[IsGroup,IsGroup]);
DeclareAttribute("ComputedAscendingChains",IsGroup,"mutable");
DeclareGlobalFunction("RefinedChain");
DeclareOperation("CanonicalRightCosetElement",[IsGroup,IsObject]);
DeclareCategory("IsDoubleCoset",IsDomain and IsExtLSet and IsExtRSet);
DeclareAttribute("LeftActingGroup",IsDoubleCoset);
DeclareAttribute("RightActingGroup",IsDoubleCoset);
DeclareOperation("DoubleCoset",[IsGroup,IsObject,IsGroup]);
DeclareGlobalFunction("DoubleCosets");
DeclareOperation("DoubleCosetsNC",[IsGroup,IsGroup,IsGroup]);
DeclareOperation("DoubleCosetRepsAndSizes",[IsGroup,IsGroup,IsGroup]);
DeclareAttribute("RepresentativesContainedRightCosets",IsDoubleCoset);
DeclareCategory("IsRightCoset",IsDomain and IsExternalOrbit);
DeclareOperation("RightCoset",[IsGroup,IsObject]);
DeclareGlobalFunction("RightCosets");
DeclareOperation("RightCosetsNC",[IsGroup,IsGroup]);
DeclareGlobalFunction("IntermediateGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/csetgrp.gd"

#F  file="lib/factgrp.gd" crc=58386548
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 55181915, 21, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/factgrp.gd", 58386548 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/factgrp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/factgrp.gd");
elif COM_RESULT = 3  then
Revision.factgrp_gd:="@(#)$Id: factgrp.gd,v 4.13 2002/04/15 10:04:39 sal Exp $";
DeclareOperation("DoCheapActionImages",[IsGroup]);
DeclareSynonym("DoCheapOperationImages",DoCheapActionImages);
DeclareOperation("FindActionKernel",[IsGroup,IsGroup]);
DeclareSynonym("FindOperationKernel",FindActionKernel);
DeclareInfoClass("InfoFactor");
DeclareAttribute("NaturalHomomorphismsPool",IsGroup,"mutable");
DeclareOperation("FactorCosetAction",[IsGroup,IsGroup]);
DeclareSynonym("FactorCosetOperation",FactorCosetAction);
DeclareGlobalFunction("ImproveActionDegreeByBlocks");
DeclareSynonym("ImproveOperationDegreeByBlocks",ImproveActionDegreeByBlocks);
DeclareGlobalFunction("SmallerDegreePermutationRepresentation");
DeclareGlobalFunction("AddNaturalHomomorphismsPool");
DeclareGlobalFunction("LockNaturalHomomorphismsPool");
DeclareGlobalFunction("UnlockNaturalHomomorphismsPool");
DeclareGlobalFunction("KnownNaturalHomomorphismsPool");
DeclareGlobalFunction("GetNaturalHomomorphismsPool");
DeclareGlobalFunction("DegreeNaturalHomomorphismsPool");
DeclareGlobalFunction("CloseNaturalHomomorphismsPool");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/factgrp.gd"

#F  file="lib/grpreps.gd" crc=98835342
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpreps.gd", 98835342 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpreps.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpreps.gd");
elif COM_RESULT = 3  then
Revision.grpreps_gd:="@(#)$Id: grpreps.gd,v 4.6 2002/04/15 10:04:53 sal Exp $";
DeclareOperation("AbsolutIrreducibleModules",[IsGroup,IsField,IsInt]);
DeclareOperation("IrreducibleModules",[IsGroup,IsField,IsInt]);
DeclareOperation("RegularModule",[IsGroup,IsField]);
DeclareGlobalFunction("RegularModuleByGens");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpreps.gd"

#F  file="lib/grppcrep.gd" crc=107076750
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppcrep.gd", 107076750 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppcrep.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppcrep.gd");
elif COM_RESULT = 3  then
Revision.grppcrep_gd:="@(#)$Id: grppcrep.gd,v 4.5 2002/04/15 10:04:52 sal Exp $";
DeclareGlobalFunction("BlownUpModule");
DeclareGlobalFunction("ConjugatedModule");
DeclareGlobalFunction("GaloisConjugates");
DeclareGlobalFunction("TrivialModule");
DeclareGlobalFunction("InducedModule");
DeclareGlobalFunction("InducedModuleByFieldReduction");
DeclareGlobalFunction("ExtensionsOfModule");
DeclareGlobalFunction("FpOfModules");
DeclareGlobalFunction("EquivalenceType");
DeclareGlobalFunction("IsEquivalentByFp");
DeclareGlobalFunction("InitAbsAndIrredModules");
DeclareGlobalFunction("LiftAbsAndIrredModules");
DeclareGlobalFunction("AbsAndIrredModules");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppcrep.gd"

#F  file="lib/onecohom.gd" crc=125302987
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/onecohom.gd", 125302987 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/onecohom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/onecohom.gd");
elif COM_RESULT = 3  then
Revision.onecohom_gd:="@(#)$Id: onecohom.gd,v 4.16 2002/04/15 10:05:05 sal Exp $";
DeclareInfoClass("InfoCoh");
DeclareGlobalFunction("TriangulizedGeneratorsByMatrix");
DeclareGlobalFunction("OCAddGenerators");
DeclareGlobalFunction("OCAddMatrices");
DeclareGlobalFunction("OCAddToFunctions");
DeclareOperation("OCAddToFunctions2",[IsRecord,IsListOrCollection]);
DeclareOperation("OCAddRelations",[IsRecord,IsListOrCollection]);
DeclareOperation("OCNormalRelations",[IsRecord,IsGroup,IsListOrCollection]);
DeclareOperation("OCAddSumMatrices",[IsRecord,IsListOrCollection]);
DeclareOperation("OCAddBigMatrices",[IsRecord,IsListOrCollection]);
DeclareOperation("OCCoprimeComplement",[IsRecord,IsListOrCollection]);
DeclareGlobalFunction("OneCoboundaries");
DeclareGlobalFunction("OneCocycles");
DeclareGlobalFunction("OCOneCoboundaries");
DeclareGlobalFunction("OCConjugatingWord");
DeclareGlobalFunction("OCEquationMatrix");
DeclareGlobalFunction("OCSmallEquationMatrix");
DeclareGlobalFunction("OCEquationVector");
DeclareGlobalFunction("OCSmallEquationVector");
DeclareOperation("OCAddComplement",[IsRecord,IsGroup,IsListOrCollection]);
DeclareGlobalFunction("OCOneCocycles");
DeclareGlobalFunction("ComplementclassesEA");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/onecohom.gd"

#F  file="lib/grppccom.gd" crc=-34894729
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppccom.gd", -34894729 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppccom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppccom.gd");
elif COM_RESULT = 3  then
Revision.grppccom_gd:="@(#)$Id: grppccom.gd,v 4.9 2002/04/15 10:04:46 sal Exp $";
DeclareInfoClass("InfoComplement");
DeclareGlobalFunction("COAffineBlocks");
DeclareGlobalFunction("CONextCentralizer");
DeclareGlobalFunction("CONextCocycles");
DeclareGlobalFunction("CONextCentral");
DeclareGlobalFunction("CONextComplements");
DeclareGlobalFunction("COComplements");
DeclareGlobalFunction("COComplementsMain");
DeclareOperation("ComplementclassesSolvableNC",[IsGroup,IsGroup]);
DeclareOperation("Complementclasses",[IsGroup,IsGroup]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppccom.gd"

#F  file="lib/twocohom.gd" crc=-77716327
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/twocohom.gd", -77716327 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/twocohom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/twocohom.gd");
elif COM_RESULT = 3  then
Revision.twocohom_gd:="@(#)$Id: twocohom.gd,v 4.12 2002/04/15 10:05:25 sal Exp $";
DeclareGlobalFunction("CollectedWordSQ");
DeclareGlobalFunction("CollectorSQ");
DeclareGlobalFunction("AddEquationsSQ");
DeclareGlobalFunction("SolutionSQ");
DeclareGlobalFunction("TwoCocyclesSQ");
DeclareGlobalFunction("TwoCoboundariesSQ");
DeclareGlobalFunction("TwoCohomologySQ");
DeclareOperation("TwoCocycles",[IsPcGroup,IsObject]);
DeclareOperation("TwoCoboundaries",[IsPcGroup,IsObject]);
DeclareOperation("TwoCohomology",[IsPcGroup,IsObject]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/twocohom.gd"

#F  file="lib/grppcext.gd" crc=-5556980
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 43253958, 21, 
  993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 19399004, 21, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 38797975, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppcext.gd", -5556980 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppcext.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppcext.gd");
elif COM_RESULT = 3  then
Revision.grppcext_gd:="@(#)$Id: grppcext.gd,v 4.19 2002/04/15 10:04:51 sal Exp $";
DeclareInfoClass("InfoCompPairs");
DeclareInfoClass("InfoExtReps");
DeclareGlobalFunction("MappedPcElement");
DeclareGlobalFunction("ExtensionSQ");
DeclareGlobalFunction("FpGroupPcGroupSQ");
DeclareGlobalFunction("CompatiblePairs");
DeclareOperation("Extension",[CanEasilyComputePcgs,IsObject,IsVector]);
DeclareOperation("ExtensionNC",[CanEasilyComputePcgs,IsObject,IsVector]);
DeclareOperation("Extensions",[CanEasilyComputePcgs,IsObject]);
DeclareOperation("ExtensionRepresentatives",[CanEasilyComputePcgs,IsObject,IsObject]);
DeclareOperation("SplitExtension",[CanEasilyComputePcgs,IsObject]);
DeclareOperation("TopExtensionsByAutomorphism",[CanEasilyComputePcgs,IsObject,IsInt]);
DeclareOperation("CyclicTopExtensions",[CanEasilyComputePcgs,IsInt]);
DeclareAttribute("SocleComplement",IsGroup);
DeclareAttribute("SocleDimensions",IsGroup);
DeclareAttribute("ModuleOfExtension",IsGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppcext.gd"

#F  file="lib/grppcfp.gd" crc=-23866258
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppcfp.gd", -23866258 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppcfp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppcfp.gd");
elif COM_RESULT = 3  then
Revision.grppcfp_gd:="@(#)$Id: grppcfp.gd,v 4.14 2002/04/15 10:04:51 sal Exp $";
DeclareInfoClass("InfoSQ");
DeclareGlobalFunction("PcGroupFpGroup");
DeclareGlobalFunction("PcGroupFpGroupNC");
DeclareGlobalFunction("SmithNormalFormSQ");
DeclareGlobalFunction("InitEpimorphismSQ");
DeclareGlobalFunction("LiftEpimorphismSQ");
DeclareGlobalFunction("BlowUpCocycleSQ");
DeclareGlobalFunction("TryModuleSQ");
DeclareGlobalFunction("TryLayerSQ");
DeclareGlobalFunction("SolvableQuotient");
DeclareSynonym("SQ",SolvableQuotient);
DeclareGlobalFunction("AllModulesSQ");
DeclareGlobalFunction("EAPrimeLayerSQ");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppcfp.gd"

#F  file="lib/randiso.gd" crc=15694929
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 10486078, 21, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/randiso.gd", 15694929 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/randiso.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/randiso.gd");
elif COM_RESULT = 3  then
Revision.randiso_gd:="@(#)$Id: randiso.gd,v 1.9 2002/04/15 10:05:13 sal Exp $";
DeclareInfoClass("InfoRandIso");
DeclareAttribute("OmegaAndLowerPCentralSeries",IsGroup);
DeclareGlobalFunction("CodePcgs");
DeclareGlobalFunction("CodePcGroup");
DeclareGlobalFunction("PcGroupCode");
DeclareGlobalFunction("PcGroupCodeRec");
DeclareGlobalFunction("RandomSpecialPcgsCoded");
DeclareGlobalFunction("RandomIsomorphismTest");
DeclareGlobalFunction("ReducedByIsomorphisms");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/randiso.gd"

#F  file="lib/schur.gd" crc=-68891674
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/schur.gd", -68891674 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/schur.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/schur.gd");
elif COM_RESULT = 3  then
Revision.schur_gd:="@(#)$Id: schur.gd,v 4.8 2002/04/15 10:05:16 sal Exp $";
DeclareInfoClass("InfoSchur");
DeclareOperation("SchurCover",[IsGroup]);
DeclareOperation("EpimorphismSchurCover",[IsGroup]);
DeclareOperation("AbelianInvariantsMultiplier",[IsGroup]);
DeclareGlobalFunction("SchuMu");
DeclareGlobalFunction("CorestEval");
DeclareGlobalFunction("RelatorFixedMultiplier");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/schur.gd"

#F  file="lib/grplatt.gd" crc=-39958705
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 33555155, 21, 
  993, 2, 1, 0, 16776602, 3, 1, 0, 1, 0, 438, 4, 993, 2, 1, 0, 16776602, 3, 
  1, 0, 1, 0, 21552515, 4, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grplatt.gd", -39958705 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grplatt.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grplatt.gd");
elif COM_RESULT = 3  then
Revision.grplatt_gd:="@(#)$Id: grplatt.gd,v 4.27 2002/04/15 10:04:45 sal Exp $";
DeclareInfoClass("InfoLattice");
DeclareRepresentation("IsConjugacyClassSubgroupsRep",IsExternalOrbit,[]);
DeclareRepresentation("IsConjugacyClassSubgroupsByStabilizerRep",IsConjugacyClassSubgroupsRep and IsExternalOrbitByStabilizerRep,[]);
DeclareOperation("ConjugacyClassSubgroups",[IsGroup,IsGroup]);
DeclareOperation("ClassElementLattice",[IsExternalOrbit,IsPosInt]);
DeclareRepresentation("IsLatticeSubgroupsRep",IsComponentObjectRep and IsAttributeStoringRep,["group","conjugacyClassesSubgroups"]);
DeclareAttribute("Zuppos",IsGroup);
DeclareGlobalFunction("LatticeByCyclicExtension");
DeclareAttribute("MaximalSubgroupsLattice",IsLatticeSubgroupsRep);
DeclareAttribute("MinimalSupergroupsLattice",IsLatticeSubgroupsRep);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grplatt.gd"

#F  file="lib/oprtglat.gd" crc=123931125
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/oprtglat.gd", 123931125 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/oprtglat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/oprtglat.gd");
elif COM_RESULT = 3  then
Revision.oprtglat_gd:="@(#)$Id: oprtglat.gd,v 4.6 2002/04/15 10:05:06 sal Exp $";
DeclareOperation("SubgroupsOrbitsAndNormalizers",[IsGroup,IsObject,IsBool]);
DeclareGlobalFunction("GroupOnSubgroupsOrbit");
DeclareGlobalFunction("MinimumGroupOnSubgroupsOrbit");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/oprtglat.gd"

#F  file="lib/grppclat.gd" crc=-50601641
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppclat.gd", -50601641 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppclat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppclat.gd");
elif COM_RESULT = 3  then
Revision.grppclat_gd:="@(#)$Id: grppclat.gd,v 4.24 2002/04/15 10:04:51 sal Exp $";
DeclareInfoClass("InfoPcSubgroup");
DeclareGlobalFunction("InvariantElementaryAbelianSeries");
DeclareGlobalFunction("InducedAutomorphism");
DeclareGlobalFunction("InvariantSubgroupsElementaryAbelianGroup");
DeclareGlobalFunction("ActionSubspacesElementaryAbelianGroup");
DeclareGlobalFunction("SubgroupsSolvableGroup");
DeclareGlobalFunction("SizeConsiderFunction");
DeclareGlobalFunction("ExactSizeConsiderFunction");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppclat.gd"

#F  file="lib/grppcaut.gd" crc=26819044
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 16646259, 21, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grppcaut.gd", 26819044 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grppcaut.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grppcaut.gd");
elif COM_RESULT = 3  then
Revision.grppcaut_gd:="@(#)$Id: grppcaut.gd,v 4.9 2002/04/15 10:04:46 sal Exp $";
DeclareProperty("IsFrattiniFree",IsGroup);
DeclareInfoClass("InfoAutGrp");
DeclareInfoClass("InfoMatOrb");
DeclareInfoClass("InfoOverGr");
if not IsBound(CHOP) then
CHOP:=false;
fi;
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grppcaut.gd"

#F  file="lib/straight.gd" crc=-55166823
RANK_FILTER_LIST  := [ 54843165, 1, 1, 0, 1, 0, 64131074, 4, 993, 2, 1, 0, 
  54843165, 1, 1, 0, 1, 0, 58360315, 4, 993, 2, 1, 0, 1985, 1, 1, 0, 1, 0, 
  64222295, 4, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/straight.gd", -55166823 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/straight.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/straight.gd");
elif COM_RESULT = 3  then
Revision.straight_gd:="@(#)$Id: straight.gd,v 4.17 2002/04/15 10:05:23 sal Exp $";
DeclareCategory("IsStraightLineProgram",IsObject);
DeclareGlobalFunction("StraightLineProgram");
DeclareGlobalFunction("StraightLineProgramNC");
DeclareGlobalFunction("StringToStraightLineProgram");
DeclareAttribute("LinesOfStraightLineProgram",IsStraightLineProgram);
DeclareAttribute("NrInputsOfStraightLineProgram",IsStraightLineProgram);
DeclareOperation("ResultOfStraightLineProgram",[IsStraightLineProgram,IsHomogeneousList]);
DeclareGlobalFunction("StringOfResultOfStraightLineProgram");
DeclareGlobalFunction("CompositionOfStraightLinePrograms");
DeclareGlobalFunction("IntegratedStraightLineProgram");
DeclareFilter("StraightLineProgramElmRankFilter",100);
DeclareRepresentation("IsStraightLineProgElm",IsMultiplicativeElementWithInverse and IsPositionalObjectRep and StraightLineProgramElmRankFilter,[]);
DeclareAttribute("StraightLineProgElmType",IsFamily);
DeclareGlobalFunction("StraightLineProgElm");
DeclareGlobalFunction("EvalStraightLineProgElm");
DeclareGlobalFunction("StraightLineProgGens");
DeclareOperation("StretchImportantSLPElement",[IsMultiplicativeElementWithInverse]);
DeclareGlobalFunction("TreeRepresentedWord");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/straight.gd"

#F  file="lib/grpfp.gd" crc=81007347
RANK_FILTER_LIST  := [ 41818175, 2, 1, 0, 1, 0, 16528462, 5, 993, 2, 1, 0, 
  41818175, 2, 1, 0, 1, 0, 33056891, 5, 993, 2, 1, 0, 60816854, 16, 60816854, 
  16, 1, 0, 1, 0, 66113749, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 
  0, 1, 0, 65118586, 21, 993, 2, 1, 0, 55558572, 20, 1, 0, 1, 0, 59146648, 
  23, 993, 2, 1, 0, 55558572, 20, 1, 0, 1, 0, 51184384, 24, 993, 2, 1, 0, 
  55558572, 20, 1, 0, 1, 0, 35258896, 24, 993, 2, 1, 0, 55558572, 20, 1, 0, 
  1, 0, 3407920, 24, 993, 2, 1, 0, 55558572, 20, 1, 0, 1, 0, 6815807, 24, 
  993, 2, 1, 0, 55558572, 20, 1, 0, 1, 0, 13631581, 23, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpfp.gd", 81007347 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpfp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpfp.gd");
elif COM_RESULT = 3  then
Revision.grpfp_gd:="@(#)$Id: grpfp.gd,v 4.65 2002/04/15 10:04:44 sal Exp $";
CosetTableDefaultLimit:=1000;
CosetTableDefaultMaxLimit:=256000;
CosetTableStandard:="lenlex";
DeclareInfoClass("InfoFpGroup");
DeclareCategory("IsSubgroupFgGroup",IsGroup);
DeclareCategory("IsSubgroupFpGroup",IsSubgroupFgGroup);
InstallTrueMethod(CanEasilyTestMembership,IsSubgroupFgGroup and IsWholeFamily);
DeclareSynonym("IsFpGroup",IsSubgroupFpGroup and IsGroupOfFamily);
DeclareCategory("IsElementOfFpGroup",IsMultiplicativeElementWithInverse and IsAssociativeElement);
DeclareCategoryCollections("IsElementOfFpGroup");
InstallTrueMethod(IsSubgroupFpGroup,IsGroup and IsElementOfFpGroupCollection);
InstallTrueMethod(IsSubgroupFpGroup,IsGroup and IsAssocWordCollection);
InstallTrueMethod(IsGeneratorsOfMagmaWithInverses,IsElementOfFpGroupCollection);
DeclareCategoryFamily("IsElementOfFpGroup");
DeclareAttribute("FpElmEqualityMethod",IsElementOfFpGroupFamily);
DeclareAttribute("FpElmComparisonMethod",IsElementOfFpGroupFamily);
DeclareOperation("ElementOfFpGroup",[IsElementOfFpGroupFamily,IsAssocWordWithInverse]);
BindGlobal("GAPTCENUM",rec(name:="GAP Felsch-type enumerator"));
TCENUM:=GAPTCENUM;
DeclareGlobalFunction("CosetTableFromGensAndRels");
DeclareGlobalFunction("IndexCosetTab");
DeclareGlobalFunction("StandardizeTable");
DeclareGlobalFunction("StandardizeTable2");
DeclareAttribute("CosetTableInWholeGroup",IsGroup);
DeclareOperation("TryCosetTableInWholeGroup",[IsGroup]);
InstallTrueMethod(CanEasilyTestMembership,IsSubgroupFpGroup and HasCosetTableInWholeGroup);
DeclareAttribute("CosetTableNormalClosureInWholeGroup",IsGroup);
DeclareGlobalFunction("TracedCosetFpGroup");
DeclareGlobalFunction("SubgroupOfWholeGroupByCosetTable");
DeclareGlobalFunction("SubgroupOfWholeGroupByQuotientSubgroup");
DeclareRepresentation("IsSubgroupOfWholeGroupByQuotientRep",IsSubgroupFpGroup,["quot","sub"]);
DeclareGlobalFunction("DefiningQuotientHomomorphism");
DeclareAttribute("AsSubgroupOfWholeGroupByQuotient",IsSubgroupFpGroup);
DeclareOperation("LowIndexSubgroupsFpGroup",[IsSubgroupFpGroup,IsSubgroupFpGroup,IsPosInt]);
DeclareGlobalFunction("MostFrequentGeneratorFpGroup");
DeclareAttribute("FreeGeneratorsOfFpGroup",IsSubgroupFpGroup and IsGroupOfFamily);
DeclareOperation("FreeGeneratorsOfWholeGroup",[IsSubgroupFpGroup]);
DeclareAttribute("RelatorsOfFpGroup",IsSubgroupFpGroup and IsGroupOfFamily);
DeclareAttribute("FreeGroupOfFpGroup",IsSubgroupFpGroup and IsGroupOfFamily);
DeclareAttribute("IndicesInvolutaryGenerators",IsSubgroupFpGroup and IsGroupOfFamily);
DeclareGlobalFunction("RelatorRepresentatives");
DeclareGlobalFunction("RelsSortedByStartGen");
DeclareGlobalFunction("IsomorphismPermGroupOrFailFpGroup");
DeclareGlobalFunction("SubgroupGeneratorsCosetTable");
DeclareGlobalFunction("FactorGroupFpGroupByRels");
DeclareGlobalFunction("ExcludedOrders");
DeclareAttribute("StoredExcludedOrders",IsSubgroupFpGroup,"mutable");
DeclareGlobalFunction("NewmanInfinityCriterion");
DeclareGlobalFunction("FibonacciGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpfp.gd"

#F  file="lib/grpfree.gd" crc=-53475292
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpfree.gd", -53475292 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpfree.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpfree.gd");
elif COM_RESULT = 3  then
Revision.grpfree_gd:="$Id: grpfree.gd,v 4.9 2002/04/15 10:04:45 sal Exp $";
DeclareSynonym("IsElementOfFreeGroup",IsAssocWordWithInverse);
DeclareSynonym("IsElementOfFreeGroupFamily",IsAssocWordWithInverseFamily);
DeclareGlobalFunction("FreeGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpfree.gd"

#F  file="lib/sgpres.gd" crc=116529187
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 27263129, 21, 
  993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 54526225, 21, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 41943538, 21, 993, 2, 1, 0, 
  16777172, 2, 1, 0, 1, 0, 33555335, 5, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/sgpres.gd", 116529187 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/sgpres.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/sgpres.gd");
elif COM_RESULT = 3  then
Revision.sgpres_gd:="@(#)$Id: sgpres.gd,v 4.30 2002/04/15 10:05:22 sal Exp $";
DeclareGlobalFunction("AbelianInvariantsNormalClosureFpGroupRrs");
AbelianInvariantsNormalClosureFpGroup:=AbelianInvariantsNormalClosureFpGroupRrs;
DeclareGlobalFunction("AbelianInvariantsSubgroupFpGroupMtc");
DeclareGlobalFunction("AbelianInvariantsSubgroupFpGroupRrs");
AbelianInvariantsSubgroupFpGroup:=AbelianInvariantsSubgroupFpGroupRrs;
DeclareGlobalFunction("AugmentedCosetTableInWholeGroup");
BindGlobal("TABLE_TYPE_RRS",1);
BindGlobal("TABLE_TYPE_MTC",2);
DeclareAttribute("AugmentedCosetTableMtcInWholeGroup",IsGroup,"mutable");
DeclareAttribute("AugmentedCosetTableRrsInWholeGroup",IsGroup,"mutable");
DeclareAttribute("AugmentedCosetTableNormalClosureInWholeGroup",IsGroup,"mutable");
DeclareGlobalFunction("AugmentedCosetTableMtc");
DeclareGlobalFunction("AugmentedCosetTableRrs");
DeclareOperation("AugmentedCosetTableNormalClosure",[IsGroup,IsGroup]);
DeclareOperation("CosetTableBySubgroup",[IsGroup,IsGroup]);
DeclareGlobalFunction("CanonicalRelator");
DeclareGlobalFunction("CheckCosetTableFpGroup");
DeclareGlobalFunction("IsStandardized");
DeclareCategory("IsPresentation",IsCopyable);
PresentationsFamily:=NewFamily("PresentationsFamily",IsPresentation);
DeclareGlobalFunction("PresentationAugmentedCosetTable");
DeclareGlobalFunction("PresentationNormalClosureRrs");
PresentationNormalClosure:=PresentationNormalClosureRrs;
DeclareGlobalFunction("PresentationSubgroupMtc");
DeclareGlobalFunction("PresentationSubgroupRrs");
PresentationSubgroup:=PresentationSubgroupRrs;
DeclareAttribute("PrimaryGeneratorWords",IsPresentation);
DeclareGlobalFunction("ReducedRrsWord");
DeclareGlobalFunction("RelatorMatrixAbelianizedNormalClosureRrs");
DeclareGlobalFunction("RelatorMatrixAbelianizedSubgroupMtc");
DeclareGlobalFunction("RelatorMatrixAbelianizedSubgroupRrs");
RelatorMatrixAbelianizedSubgroup:=RelatorMatrixAbelianizedSubgroupRrs;
DeclareGlobalFunction("RenumberTree");
DeclareGlobalFunction("RewriteAbelianizedSubgroupRelators");
DeclareGlobalFunction("RewriteSubgroupRelators");
DeclareGlobalFunction("SortRelsSortedByStartGen");
DeclareGlobalFunction("SpanningTree");
DeclareGlobalFunction("RewriteWord");
DeclareGlobalFunction("DecodedTreeEntry");
DeclareGlobalFunction("GeneratorTranslationAugmentedCosetTable");
DeclareGlobalFunction("SecondaryGeneratorWordsAugmentedCosetTable");
DeclareGlobalFunction("CopiedAugmentedCosetTable");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/sgpres.gd"

#F  file="lib/tietze.gd" crc=128870267
RANK_FILTER_LIST  := [ 55558572, 20, 1, 0, 1, 0, 798, 23, 993, 2, 1, 0, 
  16777172, 2, 1, 0, 1, 0, 603, 5, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/tietze.gd", 128870267 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/tietze.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/tietze.gd");
elif COM_RESULT = 3  then
Revision.tietze_gd:="@(#)$Id: tietze.gd,v 4.24 2002/04/15 10:05:24 sal Exp $";
TZ_NUMGENS:=1;
TZ_NUMRELS:=2;
TZ_TOTAL:=3;
TZ_GENERATORS:=4;
TZ_INVERSES:=5;
TZ_RELATORS:=6;
TZ_LENGTHS:=7;
TZ_FLAGS:=8;
TZ_MODIFIED:=10;
TZ_NUMREDUNDS:=11;
TZ_STATUS:=15;
TZ_LENGTHTIETZE:=20;
TZ_FREEGENS:=9;
TR_TREELENGTH:=3;
TR_PRIMARY:=4;
TR_TREENUMS:=5;
TR_TREEPOINTERS:=6;
TR_TREELAST:=7;
PrintRecIndent:="  ";
TzOptionNames:=["protected","eliminationsLimit","expandLimit","generatorsLimit","lengthLimit","loopLimit","printLevel","saveLimit","searchSimultaneous"];
DeclareAttribute("TietzeOrigin",IsSubgroupFpGroup);
DeclareGlobalFunction("AbstractWordTietzeWord");
DeclareSynonym("TietzeWordAbstractWord",LetterRepAssocWord);
DeclareSynonym("TzWordAbstractWord",LetterRepAssocWord);
DeclareSynonym("AbstractWordTzWord",AssocWordByLetterRep);
DeclareGlobalFunction("AddGenerator");
DeclareGlobalFunction("AddRelator");
DeclareGlobalFunction("DecodeTree");
DeclareGlobalFunction("FpGroupPresentation");
DeclareGlobalFunction("PresentationFpGroup");
DeclareGlobalFunction("PresentationRegularPermutationGroup");
DeclareGlobalFunction("PresentationRegularPermutationGroupNC");
DeclareGlobalFunction("PresentationViaCosetTable");
DeclareGlobalFunction("RelsViaCosetTable");
DeclareGlobalFunction("RemoveRelator");
DeclareGlobalFunction("SimplifiedFpGroup");
DeclareGlobalFunction("TzCheckRecord");
DeclareGlobalFunction("TzEliminate");
DeclareGlobalFunction("TzEliminateFromTree");
DeclareGlobalFunction("TzEliminateGen");
DeclareGlobalFunction("TzEliminateGen1");
DeclareGlobalFunction("TzEliminateGens");
DeclareGlobalFunction("TzFindCyclicJoins");
DeclareGlobalFunction("TzGeneratorExponents");
DeclareGlobalFunction("TzGo");
SimplifyPresentation:=TzGo;
DeclareGlobalFunction("TzGoGo");
DeclareGlobalFunction("TzHandleLength1Or2Relators");
DeclareGlobalFunction("GeneratorsOfPresentation");
DeclareGlobalFunction("TzInitGeneratorImages");
DeclareGlobalFunction("OldGeneratorsOfPresentation");
DeclareGlobalFunction("TzImagesOldGens");
DeclareGlobalFunction("TzPreImagesNewGens");
DeclareGlobalFunction("TzMostFrequentPairs");
DeclareGlobalFunction("TzNewGenerator");
DeclareGlobalFunction("TzPrint");
DeclareGlobalFunction("TzPrintGeneratorImages");
DeclareGlobalFunction("TzPrintGenerators");
DeclareGlobalFunction("TzPrintLengths");
DeclareAttribute("TzOptions",IsPresentation,"mutable");
DeclareGlobalFunction("TzPrintOptions");
DeclareGlobalFunction("TzPrintPairs");
DeclareGlobalFunction("TzPrintPresentation");
DeclareGlobalFunction("TzPrintRelators");
DeclareGlobalFunction("TzPrintStatus");
DeclareGlobalFunction("TzRelator");
DeclareGlobalFunction("TzRemoveGenerators");
DeclareGlobalFunction("TzSearch");
DeclareGlobalFunction("TzSearchEqual");
DeclareGlobalFunction("TzSort");
DeclareGlobalFunction("TzSubstitute");
DeclareGlobalFunction("TzSubstituteCyclicJoins");
DeclareGlobalFunction("TzSubstituteWord");
DeclareGlobalFunction("TzUpdateGeneratorImages");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/tietze.gd"

#F  file="lib/ghomfp.gd" crc=99904981
RANK_FILTER_LIST  := [ 67108475, 7, 1, 0, 1, 0, 64309121, 10, 993, 2, 1, 0, 
  55558572, 20, 1, 0, 1, 0, 61508370, 23, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ghomfp.gd", 99904981 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ghomfp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ghomfp.gd");
elif COM_RESULT = 3  then
Revision.ghomfp_gd:="@(#)$Id: ghomfp.gd,v 4.6 2002/04/15 10:04:41 sal Exp $";
DeclareCategory("IsFromFpGroupGeneralMapping",IsGroupGeneralMapping and NewFilter("Extrarankfilter",10));
DeclareSynonym("IsFromFpGroupHomomorphism",IsFromFpGroupGeneralMapping and IsMapping);
DeclareRepresentation("IsFromFpGroupGeneralMappingByImages",IsFromFpGroupGeneralMapping and IsGroupGeneralMappingByImages,["generators","genimages"]);
DeclareSynonym("IsFromFpGroupHomomorphismByImages",IsFromFpGroupGeneralMappingByImages and IsMapping);
DeclareRepresentation("IsFromFpGroupStdGensGeneralMappingByImages",IsFromFpGroupGeneralMappingByImages,["generators","genimages"]);
DeclareSynonym("IsFromFpGroupStdGensHomomorphismByImages",IsFromFpGroupStdGensGeneralMappingByImages and IsMapping);
DeclareRepresentation("IsToFpGroupGeneralMappingByImages",IsGroupGeneralMappingByImages,["generators","genimages"]);
DeclareSynonym("IsToFpGroupHomomorphismByImages",IsToFpGroupGeneralMappingByImages and IsMapping);
DeclareAttribute("CosetTableFpHom",IsGeneralMapping,"mutable");
DeclareGlobalFunction("SecondaryImagesAugmentedCosetTable");
DeclareGlobalFunction("TrySecondaryImages");
DeclareGlobalFunction("KuKGenerators");
DeclareAttribute("IsomorphismSimplifiedFpGroup",IsSubgroupFpGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ghomfp.gd"

#F  file="lib/hash.gd" crc=113775004
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/hash.gd", 113775004 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/hash.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/hash.gd");
elif COM_RESULT = 3  then
Revision.hash_gd:="@(#)$Id: hash.gd,v 4.11 2002/04/15 10:04:53 sal Exp $";
DeclareCategory("IsExtensibleGeneralMapping",IsNonSPGeneralMapping and IsFinite and IsCopyable);
DeclareCategory("IsFlexibleGeneralMapping",IsExtensibleGeneralMapping);
IsExtensiblePartialMapping:=IsExtensibleGeneralMapping and IsSingleValued;
IsFlexiblePartialMapping:=IsFlexibleGeneralMapping and IsSingleValued;
DeclareOperation("AddImage",[IsExtensibleGeneralMapping and IsMutable,IsObject,IsObject]);
DeclareOperation("AddImageNC",[IsExtensibleGeneralMapping and IsMutable,IsObject,IsObject]);
DeclareOperation("SetImage",[IsExtensiblePartialMapping and IsMutable,IsObject,IsObject]);
DeclareOperation("DeleteImage",[IsFlexibleGeneralMapping and IsMutable,IsObject,IsObject]);
DeclareOperation("UnSetImage",[IsFlexiblePartialMapping and IsMutable,IsObject]);
DeclareOperation("HashTable",[IsCollection,IsCollection,IsFunction]);
DeclareOperation("ShrinkableHashTable",[IsCollection,IsCollection,IsFunction]);
DeclareOperation("SingleValuedHashTable",[IsCollection,IsCollection,IsFunction]);
DeclareOperation("ShrinkableSingleValuedHashTable",[IsCollection,IsCollection,IsFunction]);
BindGlobal("HashKeyBag",HASHKEY_BAG);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/hash.gd"

#F  file="lib/dt.g" crc=123262594
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/dt.g", 123262594 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/dt.g\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/dt.g");
elif COM_RESULT = 3  then
Revision.dt_g:="@(#)$Id: dt.g,v 4.12 2002/04/15 10:04:39 sal Exp $";
BindGlobal("mkavec",COM_FUN(1));
BindGlobal("equal",COM_FUN(2));
BindGlobal("ordne2",COM_FUN(3));
BindGlobal("fueghinzu",COM_FUN(4));
BindGlobal("dt_add",COM_FUN(5));
BindGlobal("konvertiere",COM_FUN(6));
BindGlobal("konvert2",COM_FUN(7));
CalcOrder:=COM_FUN(8);
MakeReadOnlyGlobal("CalcOrder");
BindGlobal("CompleteOrdersOfRws",COM_FUN(9));
BindGlobal("redkomprimiere",COM_FUN(10));
BindGlobal("ReduceCoefficientsOfRws",COM_FUN(11));
BindGlobal("GetMax",COM_FUN(12));
BindGlobal("GetNumRight",COM_FUN(13));
BindGlobal("calcrepsn",COM_FUN(14));
BindGlobal("calcreps2",COM_FUN(15));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/dt.g"

#F  file="lib/integer.gi" crc=-56851061
RANK_FILTER_LIST  := [ 51760556, 39, 51760556, 39, 39074792, 12, 65, 16, 33, 
  17, 42108362, 20, 42108362, 20, 51760556, 39, 44593727, 8, 60353033, 19, 
  44593727, 8, 65, 16, 40085428, 21, 51760556, 39, 17, 18, 51760556, 39, 17, 
  18, 17, 18, 51760556, 39, 17, 18, 17, 18, 51760556, 39, 17, 18, 51760556, 
  39, 17, 18, 17, 18, 51760556, 39, 17, 18, 51760556, 39, 17, 18, 51760556, 
  39, 17884240, 3, 17884241, 5, 17884240, 3, 51760556, 39, 17, 18, 17, 18, 
  17, 18, 17, 18, 51760556, 39, 17, 18, 17, 18, 17, 18, 51760556, 39, 17, 18, 
  17, 18, 51760556, 39, 17, 18, 17, 18, 17, 18, 51760556, 39, 17, 18, 17, 18, 
  51760556, 39, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 17, 18, 51760556, 39, 
  17, 18, 17, 18, 17, 18, 891025, 15, 51760556, 39, 891025, 15, 36412232, 27, 
  891025, 15, 5716544, 28, 60353033, 19 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/integer.gi", -56851061 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/integer.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/integer.gi");
elif COM_RESULT = 3  then
Revision.integer_gi:="@(#)$Id: integer.gi,v 4.63 2002/04/15 10:04:54 sal Exp $";
InstallValue(Integers,Objectify(NewType(CollectionsFamily(CyclotomicsFamily),IsIntegers and IsAttributeStoringRep),rec()));
SetName(Integers,"Integers");
SetIsLeftActedOnByDivisionRing(Integers,false);
SetSize(Integers,infinity);
SetLeftActingDomain(Integers,Integers);
SetGeneratorsOfRing(Integers,[1]);
SetGeneratorsOfLeftModule(Integers,[1]);
SetUnits(Integers,[-1,1]);
SetIsWholeFamily(Integers,false);
InstallValue(NonnegativeIntegers,Objectify(NewType(CollectionsFamily(CyclotomicsFamily),IsNonnegativeIntegers and IsAttributeStoringRep),rec()));
SetName(NonnegativeIntegers,"NonnegativeIntegers");
SetSize(NonnegativeIntegers,infinity);
SetGeneratorsOfSemiringWithZero(NonnegativeIntegers,[1]);
SetGeneratorsOfAdditiveMagmaWithZero(NonnegativeIntegers,[1]);
SetIsWholeFamily(NonnegativeIntegers,false);
InstallValue(PositiveIntegers,Objectify(NewType(CollectionsFamily(CyclotomicsFamily),IsPositiveIntegers and IsAttributeStoringRep),rec()));
SetName(PositiveIntegers,"PositiveIntegers");
SetSize(PositiveIntegers,infinity);
SetGeneratorsOfSemiring(PositiveIntegers,[1]);
SetGeneratorsOfAdditiveMagma(PositiveIntegers,[1]);
SetIsWholeFamily(PositiveIntegers,false);
InstallValue(GaussianIntegers,Objectify(NewType(CollectionsFamily(CyclotomicsFamily),IsGaussianIntegers and IsAttributeStoringRep),rec()));
SetLeftActingDomain(GaussianIntegers,Integers);
SetName(GaussianIntegers,"GaussianIntegers");
SetIsLeftActedOnByDivisionRing(GaussianIntegers,false);
SetSize(GaussianIntegers,infinity);
SetGeneratorsOfRing(GaussianIntegers,[E(4)]);
SetGeneratorsOfLeftModule(GaussianIntegers,[1,E(4)]);
SetUnits(GaussianIntegers,[-1,1,-E(4),E(4)]);
SetIsWholeFamily(GaussianIntegers,false);
DeclareRepresentation("IsCanonicalBasisIntegersRep",IsAttributeStoringRep,[]);
InstallMethod(Basis,"for integers (delegate to `CanonicalBasis')",[IsIntegers],CANONICAL_BASIS_FLAGS,CanonicalBasis);
InstallMethod(CanonicalBasis,"for Integers",true,[IsIntegers],0,COM_FUN(1));
InstallMethod(Coefficients,"for the canonical basis of Integers",IsCollsElms,[IsBasis and IsCanonicalBasis and IsCanonicalBasisIntegersRep,IsCyc],0,COM_FUN(2));
InstallValue(Primes,[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997]);
MakeImmutable(Primes);
InstallFlushableValue(Primes2,[10047871,10567201,10746341,12112549,12128131,12207031,12323587,12553493,12865927,13097927,13264529,13473433,13821503,13960201,14092193,14597959,15216601,15790321,16018507,18837001,20381027,20394401,20515111,20515909,21207101,21523361,22253377,22366891,22996651,23850061,25781083,26295457,28325071,28878847,29010221,29247661,29423041,29866451,32234893,32508061,36855109,41540861,42521761,43249589,44975113,47392381,47763361,48544121,48912491,49105547,49892851,51457561,55527473,56409643,56737873,59302051,59361349,59583967,60816001,62020897,63512437,65628751,69566521,75068993,76066181,85280581,93507247,96656723,97685839,106431697,107367629,109688713,110211473,112901153,119782433,127540261,134818753,134927809,136151713,147300841,155072369,160465489,164511353,177237331,183794551,184481113,190295821,190771747,193707721,195019441,202029703,206244761,212601841,212885833,228511817,231769777,234750601,272010961,280314943,283763713,297315901,305175781,308761441,319020217,359390389,407865361,420778751,424256201,432853009,457315063,466344409,510810301,515717329,527093491,529510939,536903681,540701761,550413361,603926681,616318177,632133361,715827883,724487149,745988807,763539787,815702161,834019001,852133201,857643277,879399649,909139159,1001523179,1036745531,1065264019,1106131489,1169382127,1390636259,1503418321,1527007411,1636258751,1644512641,1743831169,1824179209,1824726041,1826934301,1866013003,1990415149,2127357527,2127431041,2147483647,2238236249,2316281689,2413941289,2481791513,2550183799,2576743207,2664097031,2767631689,2903110321,2931542417,3021012311,3158528101,3173389601,3357897971,3652120847,4011586307,4058036683,4278255361,4375578271,4562284561,4649919401,4698932281,4795973261,4885168129,5960555749,6622733113,6630274723,6809710909,6860024417,7068569257,7151459701,7484047069,7685542369,7830118297,7866608083,8209475377,8831418697,9598959833,10879733611,11368765063,11898664849,12447002677,13455809771,13564461457,13841169553,13971969971,14425532687,15085812853,15768033143,15888756269,16055056483,16148168401,17056050293,17154094481,17189128703,19707683773,22434744889,23140471537,23535794707,24127552321,25194773531,25480398173,25829691707,25994736109,27669118297,27989941729,28086211607,30327152671,32952799801,33057806959,35532364099,39940132241,43872038849,45076044553,47072139617,50150933101,54410972897,56625998353,56770350869,60726444167,61070817601,62983048367,65247271367,69238518539,70845409351,76831835389,77158673929,77192844961,78009515593,83960385389,86950696619,87423871753,88959882481,99810171997,115868130379,125096112091,127522693159,128011456717,128653413121,129924628343,131105292137,152587500001,158822951431,159248456569,164504919713,165768537521,168749965921,213657222007,229890275929,241931001601,269089806001,282429005041,301077652751,332207361361,368592716837,374857981681,386478495679,392038110671,402011881627,441019876741,447600088289,461587317509,487824887233,531968664833,555915824341,593554036769,598761682261,641625222857,654652168021,761838257287,810221830361,840139875599,918585913061,1030330938209,1047623475541,1113491139767,1133836730401,1273880539247,1284297400723,1408429185797,1534179947851,1628744948329,1654058017289,1759217765581,1856458657451,2098303812601,2454335007529,2481357870461,2549755542947,2663568851051,2738039191709,2879347902817,2932031007403,3138426605161,3203431780337,3421169496361,3740221981231,4363953127297,4432676798593,4446437759531,4534166740403,4981857697937,5625767248687,6090817323763,6493405343627,6713103182899,6740339310641,7432339208719,8090594434231,8157179360521,8737481256739,8868050880709,9361973132609,9468940004449,9857737155463,10052678938039,10979607179423,13952598148481,15798461357509,15919793462773,17175865789597,18158209813151,22125996444329,22542470482159,22735632934561,23161037562937,23792163643711,24517014940753,24587411156281,28059810762433,29078814248401,31280679788951,31479823396757,32688470798197,33232924804801,42272797713043,44479210368001,45920153384867,49971617830801,57583418699431,62911130477521,67280421310721,70601370627701,71316922984999,83181652304609,89620825374601,94404837727799,95052547721497,110133112994711,140737471578113,145295143558111,150224123975857,160026187716961,204064664440913,205367807127911,242099935645987,270547105429567,303567967057423,332584516519201,434502978835771,475384700124973,500805747488153,520518327319589,560088668384411,608459012088799,637265428480297,643170158708221,707179356161321,866802946161469,926510094425921,990643452963163,1034150930241911,1066818132868207,1120648576818041,1357105535093947,1416258521793067,1587855697992791,1611479891519807,1628413557556843,1900857799450121,1958423494433591,2134387368610417,2646507710984041,2649263870814793,2752135920929651,2864226125209369,3208002856867129,4557772677741827,4889988840047743,5420506947192709,6957533874046531,9460375336977361,9472026608675509,11264087821629961,12557612956332313,13722816749522711,14436295738510501,18584774046020617,18624275418445601,20986207825565581,21180247636732981,22666879066355177,27145365052629449,32233368385529653,39392783590192547,46329453543600481,50544702849929377,59509429687890001,60081451169922001,70084436712553223,76394148218203559,77001139434480073,79787519018560501,96076791871613611,133088039373662309,144542918285300809,145171177264407947,153560376376050799,166003607842448777,177722253954175633,196915704073465747,316825425410373433,341117531003194129,380808546861411923,489769993189671059,538953023961943033,581283643249112959,617886851384381281,625552508473588471,645654335737185721,646675035253258729,658812288653553079,768614336404564651,862970652262943171,909456847814334401,1100876018364883721,1195857367853217109,1245576402371959291,1795918038741070627,2192537062271178641,2305843009213693951,2312581841562813841,2461243576713869557,2615418118891695851,2691614274040036601,3011347479614249131,3358335487319458201,3421093417510114543,3602372010909260861,3747607031112307667,3999088279399464409,4710883168879506001,5079304643216687969,5559917315850179173,5782172113400990737,6106505825833677713,6115909044841454629,9213624084535989031,9520972806333758431,10527743181888260981,14808607715315782481,18446744069414584321,26831423036065352611,32032215596496435569,34563155350221618511,36230454570129675721,58523123221688392679,60912916512835721519,82064241848634269407,86656268566282183151,87274497124602996457,105668621839502584913,157571957584602258799,162715052426691233701,172827552198815888791,195489390796456327201,240031591394168814433,266834785363181152127,344120456368919234899,358475907408445923469,846041103974872866961,2519545342349331183143,3658524738455131951223,3793685967117002179453,3976656429941438590393,5439042183600204290159,8198241112969626815581,11600321878916922053491,12812432238302009985937,17551032119981679046729,18489605314740987765913,27665283091695977275201,42437717969530394595211,57912614113275649087721,61654440233248340616559,63681511996418550459487,105293313660391861035901,155285743288572277679887,201487636602438195784363,231669654363683130095909,235169662395069356312233,402488219476647465854701,535347624791488552837151,604088623657497125653141,870035986098720987332873,950996059627210897943351,1412900479108654932024439,1431185706701868962383741,2047572230657338751575051,2048568835297380486760231,2741672362528725535068727,3042645634792541312037847,3745603812007166116831643,4362139336229068656094783,4805345109492315767981401,5042939439565996049162197,7289088383388253664437433,8235109336690846723986161,9680647790568589086355559,9768997162071483134919121,9842332430037465033595921,11053036065049294753459639,11735415506748076408140121,13842607235828485645766393,17499733663152976533452519,26273701844015319144827917,75582488424179347083438319,88040095945103834627376781,100641220283951395639601683,140194179307171898833699259,207617485544258392970753527,291280009243618888211558641,303309617049998388989376043,354639323684545612988577649,618970019642690137449562111,913242407367610843676812931,7222605228105536202757606969,7248808599285760001152755641,8170509011431363408568150369,8206973609150536446402438593,9080418348371887359375390001,14732265321145317331353282383,15403468930064931175264655869,15572244900182528777225808449,18806327041824690595747113889,21283620033217629539178799361,37201708625305146303973352041,42534656091583268045915654719,48845962828028421155731228333,123876132205208335762278423601,134304196845099262572814573351,172974812463239310024750410929,217648180992721729506406538251,227376585863531112677002031251,1786393878363164227858270210279,2598696228942460402343442913969,2643999917660728787808396988849,3340762283952395329506327023033,5465713352000770660547109750601,28870194250662203210437116612769,70722308812401674174993533367023,78958087694609321439660131899631,88262612316754526107621113329689,162259276829213363391578010288127,163537220852725398851434325720959,177635683940025046467781066894531,2679895157783862814690027494144991,3754733257489862401973357979128773,5283012903770196631383821046101707,5457586804596062091175455674392801,10052011757370829033540932021825161,11419697846380955982026777206637491,38904276017035188056372051839841219,1914662449813727660680530326064591907,7923871097285295625344647665764672671,9519524151770349914726200576714027279,10350794431055162386718619237468234569,170141183460469231731687303715884105727,1056836588644853738704557482552056406147,6918082374901313855125397665325977135579,235335702141939072378977155172505285655211,360426336941693434048414944508078750920763,1032670816743843860998850056278950666491537,1461808298382111034194027645506019619578037,79638304766856507377778616296087448490695649,169002145064468556765676975247413756542145739,8166146875847876762859119015147004762656450569,18607929421228039083223253529869111644362732899,33083146850190391025301565142735000331370209599,138497973518827432485604572537024087153816681041,673267426712748387612994804392183645147042355211,1489459109360039866456940197095433721664951999121,4884164093883941177660049098586324302977543600799,466345922275629775763320748688970211803553256223529,26828803997912886929710867041891989490486893845712448833,153159805660301568024613754993807288151489686913246436306439,1051153199500053598403188407217590190707671147285551702341089650185945215953]);
IsSSortedList(Primes2);
InstallGlobalFunction(BestQuoInt,COM_FUN(3));
InstallGlobalFunction(ChineseRem,COM_FUN(4));
InstallGlobalFunction(CoefficientsQadic,COM_FUN(5));
InstallGlobalFunction(CoefficientsMultiadic,COM_FUN(6));
BindGlobal("DivisorsIntCache",List([[1],[1,2],[1,3],[1,2,4],[1,5],[1,2,3,6],[1,7]],Immutable));
InstallGlobalFunction(DivisorsInt,COM_FUN(7));
FactorsRho:=COM_FUN(8);
MakeReadOnlyGlobal("FactorsRho");
InstallGlobalFunction(FactorsInt,COM_FUN(9));
InstallGlobalFunction(Gcdex,COM_FUN(10));
InstallGlobalFunction(IsEvenInt,COM_FUN(11));
InstallGlobalFunction(IsOddInt,COM_FUN(12));
TraceModQF:=COM_FUN(13);
MakeReadOnlyGlobal("TraceModQF");
InstallGlobalFunction(IsProbablyPrimeInt,COM_FUN(14));
InstallGlobalFunction(IsPrimeInt,COM_FUN(15));
InstallGlobalFunction(IsPrimePowerInt,COM_FUN(16));
InstallGlobalFunction(LcmInt,COM_FUN(17));
InstallGlobalFunction(LogInt,COM_FUN(18));
InstallGlobalFunction(NextPrimeInt,COM_FUN(19));
InstallGlobalFunction(PowerModInt,COM_FUN(20));
InstallGlobalFunction(PrevPrimeInt,COM_FUN(21));
InstallGlobalFunction(PrimePowersInt,COM_FUN(22));
InstallGlobalFunction(RootInt,COM_FUN(23));
InstallGlobalFunction(AbsInt,COM_FUN(24));
InstallMethod(AbsoluteValue,"rationals",true,[IsRat],0,AbsInt);
InstallGlobalFunction(SignInt,COM_FUN(25));
InstallGlobalFunction(SmallestRootInt,COM_FUN(26));
InstallMethod(RingByGenerators,"method that catches the cases of `Integers'",[IsCyclotomicCollection],SUM_FLAGS,COM_FUN(27));
InstallMethod(DefaultRingByGenerators,"method that catches the cases of `(Gaussian)Integers' and cycl. fields",true,[IsCyclotomicCollection],SUM_FLAGS,COM_FUN(28));
DeclareRepresentation("IsIntegersEnumerator",IsDomainEnumerator and IsAttributeStoringRep,[]);
InstallMethod(Enumerator,"for integers",true,[IsIntegers],0,COM_FUN(29));
InstallMethod(\[\],"for enumerator of `Integers'",true,[IsIntegersEnumerator,IsPosInt],0,COM_FUN(30));
InstallMethod(Position,"for enumerator of `Integers'",true,[IsIntegersEnumerator,IsCyc,IsZeroCyc],0,COM_FUN(31));
InstallMethod(EuclideanDegree,"for integers",true,[IsIntegers,IsInt],0,COM_FUN(32));
InstallMethod(EuclideanQuotient,"for integers",true,[IsIntegers,IsInt,IsInt],0,COM_FUN(33));
InstallMethod(EuclideanRemainder,"for integers",true,[IsIntegers,IsInt,IsInt],0,COM_FUN(34));
InstallMethod(Factors,"for integers",true,[IsIntegers,IsInt],0,COM_FUN(35));
InstallMethod(GcdOp,"for integers",true,[IsIntegers,IsInt,IsInt],0,COM_FUN(36));
InstallMethod(IsIrreducibleRingElement,"for integers",true,[IsIntegers,IsInt],0,COM_FUN(37));
InstallMethod(IsPrime,"for integers",true,[IsIntegers,IsInt],0,COM_FUN(38));
DeclareRepresentation("IsIntegersIteratorRep",IsComponentObjectRep,["structure","counter"]);
InstallMethod(Iterator,"for `Integers'",true,[IsIntegers],0,COM_FUN(39));
InstallMethod(IsDoneIterator,"for iterator of `Integers'",true,[IsIterator and IsIntegersIteratorRep],0,ReturnFalse);
InstallMethod(NextIterator,"for iterator of `Integers'",true,[IsIterator and IsMutable and IsIntegersIteratorRep],0,COM_FUN(40));
InstallMethod(ShallowCopy,"for iterator of `Integers'",true,[IsIterator and IsIntegersIteratorRep],0,COM_FUN(41));
InstallMethod(LcmOp,"for integers",true,[IsIntegers,IsInt,IsInt],0,COM_FUN(42));
InstallMethod(Log,"for two integers",true,[IsInt,IsInt],0,LogInt);
InstallMethod(PowerMod,"for integers",true,[IsIntegers,IsInt,IsInt,IsInt],0,COM_FUN(43));
InstallMethod(Quotient,"for integers",true,[IsIntegers,IsInt,IsInt],0,COM_FUN(44));
InstallMethod(QuotientMod,"for integers",true,[IsIntegers,IsInt,IsInt,IsInt],0,COM_FUN(45));
InstallMethod(QuotientRemainder,"for integers",true,[IsIntegers,IsInt,IsInt],0,COM_FUN(46));
NrBitsInt:=COM_FUN(47);
InstallMethod(Random,"for `Integers'",true,[IsIntegers],0,COM_FUN(48));
InstallOtherMethod(Random,"for two integers",IsIdenticalObj,[IsInt,IsInt],0,COM_FUN(49));
InstallMethod(Root,"for two integers",true,[IsInt,IsInt],0,RootInt);
InstallMethod(RoundCyc,"Integer",true,[IsInt],0,COM_FUN(50));
InstallMethod(RoundCycDown,"Integer",true,[IsInt],0,COM_FUN(51));
InstallMethod(StandardAssociate,"for integers",true,[IsIntegers,IsInt],0,COM_FUN(52));
InstallOtherMethod(Valuation,"for two integers",IsIdenticalObj,[IsInt,IsInt],0,COM_FUN(53));
InstallMethod(\in,"for integers",IsElmsColls,[IsCyclotomic,IsIntegers],0,COM_FUN(54));
InstallMethod(\in,"for positive integers",IsElmsColls,[IsCyclotomic,IsPositiveIntegers],0,COM_FUN(55));
InstallMethod(\in,"for nonnegative integers",IsElmsColls,[IsCyclotomic,IsNonnegativeIntegers],0,COM_FUN(56));
InstallGlobalFunction(PrintFactorsInt,COM_FUN(57));
InstallOtherMethod(Iterator,"more helpful error for integers",true,[IsPosInt],0,COM_FUN(58));
InstallGlobalFunction(PowerDecompositions,COM_FUN(59));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/integer.gi"

#F  file="lib/list.gi" crc=122859387
RANK_FILTER_LIST  := [ 43031883, 28, 43955404, 29, 51254585, 28, 52178106, 
  29, 16011776, 27, 23096495, 43, 34477729, 27, 41562448, 43, 54730723, 9, 
  54730723, 9, 67105912, 7, 67105912, 7, 41951068, 11, 8193, 2, 8193, 2, 
  41951068, 11, 139265, 3, 139265, 3, 8193, 2, 8193, 2, 54755299, 9, 
  54755299, 9, 21609, 7, 21609, 7, 1, 0, 41951068, 11, 1, 0, 8126465, 2, 1, 
  0, 54730723, 9, 1, 0, 8193, 2, 1, 0, 8112546, 4, 8193, 2, 8193, 2, 
  67108850, 28, 8193, 2, 8134657, 5, 8193, 2, 41951068, 11, 786433, 8, 8193, 
  2, 54747107, 9, 24577, 3, 8193, 2, 1, 0, 8193, 2, 794625, 8, 24577, 3, 
  811009, 9, 8193, 2, 794625, 8, 24577, 3, 811009, 9, 31498241, 3, 8193, 2, 
  31498241, 3, 16785409, 15, 8193, 2, 8193, 2, 16785409, 15, 8193, 2, 8193, 
  2, 16785409, 15, 8193, 2, 8193, 2, 24577, 3, 16385, 3, 5, 1, 8193, 2, 5, 1, 
  16785409, 15, 8193, 2, 8193, 2, 5, 1, 39963773, 3, 39963774, 5, 17013960, 
  4, 17013961, 6, 39963773, 3, 8193, 2, 8193, 2, 16385, 3, 8193, 2, 7626497, 
  3, 16385, 3, 5, 1, 8193, 2, 5, 1, 7626497, 3, 16385, 3, 8193, 2, 24902901, 
  3, 16385, 3, 5, 1, 8193, 2, 5, 1, 24902901, 3, 8193, 2, 17, 18, 54730723, 
  9, 54738915, 9, 8193, 2, 16385, 3, 54730724, 11, 54738915, 9, 54730723, 9, 
  8194, 4, 16385, 3, 8193, 2, 8193, 2, 60353033, 19, 1, 0, 1, 0, 54755299, 9, 
  32769, 4, 67105912, 7, 8193, 2, 1, 0, 8193, 2, 32769, 4, 32769, 4, 
  54755299, 9, 32769, 4, 1, 0, 54730723, 9, 1, 0, 17, 18, 8193, 2, 1, 0, 17, 
  18, 32769, 4, 1, 0, 17, 18, 55508963, 15, 1, 0, 17, 18, 786433, 8, 1, 0, 
  17, 18, 6299259, 4, 1, 0, 60353033, 19, 8255, 14, 1, 0, 55517217, 20, 1, 0, 
  8193, 2, 1, 0, 17, 18, 33554433, 5, 1025, 1, 17, 18, 54730723, 9, 1, 0, 
  8193, 2, 1, 0, 54730723, 9, 1, 0, 5, 1, 8193, 2, 1, 0, 5, 1, 16385, 3, 5, 
  1, 8193, 2, 8193, 2, 8193, 2, 17, 18, 1, 0, 1, 0, 41942876, 3, 8193, 2, 17, 
  18, 8193, 2, 41942876, 3, 17, 18, 8193, 2, 8193, 2, 17, 18, 1, 0, 1, 0, 
  41942876, 3, 8193, 2, 17, 18, 8193, 2, 41942876, 3, 17, 18, 8194, 4, 1, 0, 
  8194, 4, 8193, 2, 16785410, 17, 8193, 2, 8193, 2, 8193, 2, 8193, 2, 8193, 
  2, 8193, 2, 16385, 3, 67108850, 28, 54730724, 11, 8194, 4, 54730724, 11, 5, 
  1, 8194, 4, 5, 1, 8193, 2, 8193, 2, 5, 1, 8194, 4, 8193, 2, 8193, 2, 5, 1, 
  16386, 5, 16386, 5, 41951069, 13, 41951069, 13, 16386, 5, 16386, 5, 5, 1, 
  41951069, 13, 41951069, 13, 5, 1, 8193, 2, 8193, 2, 8193, 2, 8193, 2, 5, 1, 
  8193, 2, 67108850, 28, 786433, 8, 8193, 2, 67108850, 28, 786433, 8, 8193, 
  2, 513, 8, 4063233, 1, 5, 1, 8193, 2, 5, 1, 16385, 3, 60353033, 19, 
  31620551, 12, 31620551, 12, 31620551, 12, 31620551, 12, 31620551, 12, 1, 0, 
  1, 0, 31620551, 12, 31620551, 12, 31620551, 12, 923522, 3, 923522, 3, 
  923522, 3, 1, 0, 1, 0, 923522, 3, 31620551, 12, 31620551, 12, 44006900, 5, 
  44006900, 5, 8327094, 42, 11992760, 25, 8327094, 42, 11992760, 25, 
  66021257, 20, 64983746, 30, 31620551, 12, 1, 0, 1, 0, 31620551, 12, 
  31620551, 12, 31620551, 12, 23397249, 37, 59094779, 53, 46708805, 33, 
  59094779, 53, 31620551, 12, 1, 0, 1, 0, 31620551, 12, 31620551, 12, 
  31620551, 12, 1847043, 4, 1847043, 4, 1847043, 4, 1, 0, 1, 0, 1847043, 4, 
  67105912, 7, 67105882, 30, 8255, 14, 1025, 1, 8193, 2, 1, 0, 17, 18, 8193, 
  2, 1, 0, 32769, 4, 41975644, 11, 32769, 4, 41975644, 11, 16842753, 16, 
  8193, 2, 67108791, 40, 67108790, 38 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/list.gi", 122859387 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/list.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/list.gi");
elif COM_RESULT = 3  then
Revision.list_gi:="@(#)$Id: list.gi,v 4.191 2002/04/22 13:05:58 sal Exp $";
InstallMethod(NestingDepthA,[IsCyclotomicCollection and IsGeneralizedRowVector\
],COM_FUN(1));
InstallMethod(NestingDepthM,[IsCyclotomicCollection and IsMultiplicativeGenera\
lizedRowVector],COM_FUN(2));
InstallMethod(NestingDepthA,[IsFFECollection and IsGeneralizedRowVector],COM_FUN(3));
InstallMethod(NestingDepthM,[IsFFECollection and IsMultiplicativeGeneralizedRo\
wVector],COM_FUN(4));
InstallMethod(NestingDepthA,[IsCyclotomicCollColl and IsGeneralizedRowVector],COM_FUN(5));
InstallMethod(NestingDepthM,[IsCyclotomicCollColl and IsOrdinaryMatrix and IsMultiplicativeGeneralizedRowVector],COM_FUN(6));
InstallMethod(NestingDepthA,[IsFFECollColl and IsGeneralizedRowVector],COM_FUN(7));
InstallMethod(NestingDepthM,[IsFFECollColl and IsOrdinaryMatrix and IsMultipli\
cativeGeneralizedRowVector],COM_FUN(8));
InstallMethod(EQ,"for two small lists",IsIdenticalObj,[IsList and IsSmallList,IsList and IsSmallList],EQ_LIST_LIST_DEFAULT);
InstallMethod(EQ,"for two finite lists (not necessarily small)",IsIdenticalObj,[IsList and IsFinite,IsList and IsFinite],COM_FUN(9));
InstallMethod(EQ,"for two lists, the first being empty",[IsList and IsEmpty,IsList],SUM_FLAGS,COM_FUN(10));
InstallMethod(EQ,"for two lists, the second being empty",[IsList,IsList and IsEmpty],SUM_FLAGS,COM_FUN(11));
InstallMethod(EQ,"for two lists with length - last resort",IsIdenticalObj,[IsList and HasLength,IsList and HasLength],COM_FUN(12));
InstallMethod(EQ,"for two lists - last resort",IsIdenticalObj,[IsList,IsList],COM_FUN(13));
InstallMethod(LT,"for two small homogeneous lists",IsIdenticalObj,[IsHomogeneousList and IsSmallList,IsHomogeneousList and IsSmallList],LT_LIST_LIST_DEFAULT);
InstallMethod(LT,"for two finite homogeneous lists (not necessarily small)",IsIdenticalObj,[IsHomogeneousList and IsFinite,IsHomogeneousList and IsFinite],LT_LIST_LIST_FINITE);
InstallMethod(IN,"for an object, and an empty list",[IsObject,IsList and IsEmpty],ReturnFalse);
InstallMethod(IN,"for wrong family relation",IsNotElmsColls,[IsObject,IsCollection],SUM_FLAGS,ReturnFalse);
InstallMethod(IN,"for an object, and a small list",[IsObject,IsList and IsSmallList],IN_LIST_DEFAULT);
InstallMethod(IN,"for an object, and a list",[IsObject,IsList],COM_FUN(14));
InstallMethod(IN,"for an object, and a collection that contains the whole family",IsElmsColls,[IsObject,IsCollection and IsWholeFamily],SUM_FLAGS,RETURN_TRUE);
InstallMethod(Display,"for a (finite) list",[IsList],COM_FUN(15));
InstallMethod(String,"for a (finite) list",[IsList],COM_FUN(16));
InstallMethod(String,"for a range",[IsRange],COM_FUN(17));
InstallOtherMethod(Size,"for a list",[IsList],Length);
InstallOtherMethod(Size,"for a list that is a collection",[IsList and IsCollection],Length);
InstallOtherMethod(Representative,"for a list",[IsList],COM_FUN(18));
InstallOtherMethod(RepresentativeSmallest,"for an empty list",[IsList and IsEmpty],COM_FUN(19));
InstallOtherMethod(RepresentativeSmallest,"for a strictly sorted list",[IsSSortedList],COM_FUN(20));
InstallOtherMethod(RepresentativeSmallest,"for a list",[IsList],MinimumList);
InstallOtherMethod(Random,"for a dense small list",[IsList and IsDenseList and IsSmallList],RANDOM_LIST);
InstallOtherMethod(Random,"for a dense (small) list",[IsList and IsDenseList],COM_FUN(21));
InstallMethod(IsSmallList,"for a list",[IsList],COM_FUN(22));
InstallOtherMethod(IsSmallList,"for a non-list",[IsObject],COM_FUN(23));
for op in [ConstantTimeAccessList,ShallowCopy] do
InstallMethod(op,"for a list",[IsList],COM_FUN(24));
InstallMethod(op,"for a strictly sorted list",[IsList and IsSSortedList],COM_FUN(25));
InstallMethod(op,"for a dense list",[IsList and IsDenseList],COM_FUN(26));
InstallMethod(op,"for a strictly sorted dense list",[IsList and IsDenseList and IsSSortedList],COM_FUN(27));
od;
InstallMethod(ConstantTimeAccessList,"for a constant time access list",[IsList and IsConstantTimeAccessList],SUM_FLAGS,Immutable);
InstallOtherMethod(AsList,"for a list",[IsList],COM_FUN(28));
InstallOtherMethod(AsList,"for a constant time access list",[IsList and IsConstantTimeAccessList],Immutable);
InstallOtherMethod(AsPlist,"for a plist",[IsList and IsPlistRep],COM_FUN(29));
InstallOtherMethod(AsPlist,"for a list",[IsList],COM_FUN(30));
InstallOtherMethod(AsSSortedList,"for a list",[IsList],COM_FUN(31));
InstallOtherMethod(AsSSortedList,"for a plist",[IsList and IsPlistRep],AsSSortedListList);
InstallOtherMethod(AsSSortedList,"for a list",[IsList],COM_FUN(32));
InstallOtherMethod(Enumerator,"for a list",[IsList],Immutable);
InstallOtherMethod(EnumeratorSorted,"for a plist",[IsList and IsPlistRep],COM_FUN(33));
InstallOtherMethod(EnumeratorSorted,"for a list",[IsList],COM_FUN(34));
InstallMethod(ListOp,"for a list",[IsList],ShallowCopy);
InstallMethod(ListOp,"for a dense list",[IsList and IsDenseList],COM_FUN(35));
InstallMethod(ListOp,"for a dense list, and a function",[IsDenseList,IsFunction],COM_FUN(36));
InstallMethod(ListOp,"for any list, and a function",[IsList,IsFunction],COM_FUN(37));
InstallOtherMethod(SSortedList,"for a plist",[IsList and IsPlistRep],SSortedListList);
InstallOtherMethod(SSortedList,"for a list",[IsList],COM_FUN(38));
InstallOtherMethod(SSortedList,"for a list, and a function",[IsList,IsFunction],COM_FUN(39));
DeclareRepresentation("IsListIteratorRep",IsComponentObjectRep,["pos","list"]);
DeclareRepresentation("IsDenseListIteratorRep",IsListIteratorRep,[]);
InstallMethod(IsDoneIterator,"for a list iterator",[IsIterator and IsListIteratorRep],COM_FUN(40));
InstallMethod(NextIterator,"for a list iterator",[IsIterator and IsMutable and IsListIteratorRep],COM_FUN(41));
InstallMethod(IsDoneIterator,"for a dense list iterator",[IsIterator and IsDenseListIteratorRep],COM_FUN(42));
InstallMethod(NextIterator,"for a dense list iterator",[IsIterator and IsMutable and IsDenseListIteratorRep],COM_FUN(43));
InstallMethod(ShallowCopy,"for a list iterator",[IsIterator and IsListIteratorRep],COM_FUN(44));
InstallGlobalFunction(IteratorList,COM_FUN(45));
InstallOtherMethod(Iterator,"for a list",[IsList],IteratorList);
InstallOtherMethod(IteratorSorted,"for a list",[IsList],COM_FUN(46));
InstallOtherMethod(SumOp,"for a dense list",[IsDenseList],1,COM_FUN(47));
InstallOtherMethod(SumOp,"for a list, and initial value",[IsList,IsAdditiveElement],1,COM_FUN(48));
InstallOtherMethod(SumOp,"for a dense list, and a function",[IsDenseList,IsFunction],1,COM_FUN(49));
InstallOtherMethod(SumOp,"for a list, a function, and initial value",[IsList,IsFunction,IsAdditiveElement],1,COM_FUN(50));
InstallOtherMethod(ProductOp,"for a dense list",[IsDenseList],1,COM_FUN(51));
InstallOtherMethod(ProductOp,"for a list, and initial value",[IsList,IsMultiplicativeElement],1,COM_FUN(52));
InstallOtherMethod(ProductOp,"for a dense list and a function",[IsDenseList,IsFunction],1,COM_FUN(53));
InstallOtherMethod(ProductOp,"for a list, a function, and initial value",[IsList,IsFunction,IsMultiplicativeElement],1,COM_FUN(54));
InstallMethod(Elm0List,[IsList,IsInt],COM_FUN(55));
InstallMethod(ELMS_LIST,"for a small list and a small dense list",[IsList and IsSmallList,IsDenseList and IsSmallList],ELMS_LIST_DEFAULT);
InstallMethod(ELMS_LIST,"for a list and a dense list",[IsList,IsDenseList],COM_FUN(56));
InstallMethod(ASSS_LIST,"for a small mutable list, a small dense list, and a small list",[IsList and IsSmallList and IsMutable,IsDenseList and IsSmallList,IsList and IsSmallList],ASSS_LIST_DEFAULT);
InstallMethod(ASSS_LIST,"for a mutable list, a dense list, and a list",[IsList and IsMutable,IsDenseList,IsList],COM_FUN(57));
InstallOtherMethod(ASS_LIST,"error message for immutable list",[IsList,IsPosInt,IsObject],-100,COM_FUN(58));
InstallOtherMethod(IsSSortedList,"for non-lists",[IsObject],COM_FUN(59));
InstallMethod(IsSSortedList,"for a small homogeneous list",[IsHomogeneousList and IsSmallList],IS_SSORT_LIST_DEFAULT);
InstallMethod(IsSSortedList,"for a homogeneous list (not nec. finite)",[IsHomogeneousList],COM_FUN(60));
InstallMethod(IsSortedList,"for a finite list",[IsList and IsFinite],COM_FUN(61));
InstallMethod(IsSortedList,"for a list (not nec. finite)",[IsList],COM_FUN(62));
InstallOtherMethod(IsSortedList,"for non-lists",[IsObject],COM_FUN(63));
InstallMethod(IsDuplicateFree,"for a finite list",[IsList],COM_FUN(64));
InstallMethod(DifferenceLists,"homogeneous lists",[IsHomogeneousList,IsHomogeneousList],COM_FUN(65));
InstallMethod(IsPositionsList,"for a small homogeneous list",[IsHomogeneousList and IsSmallList],IS_POSS_LIST_DEFAULT);
InstallMethod(IsPositionsList,"for a homogeneous list",[IsHomogeneousList],COM_FUN(66));
InstallOtherMethod(IsPositionsList,"for non-lists",[IsObject],COM_FUN(67));
InstallMethod(Position,"for a small list, an object, and an integer",[IsList and IsSmallList,IsObject,IsInt],COM_FUN(68));
InstallMethod(Position,"for a (small) list, an object, and an integer",[IsList,IsObject,IsInt],COM_FUN(69));
InstallMethod(Position,"for a homog. list, an object not in the elements family, and an int.",COM_FUN(70),[IsHomogeneousList,IsObject,IsInt],RETURN_FAIL);
InstallMethod(Position,"for a small sorted list, an object, and an integer",[IsSSortedList and IsSmallList,IsObject,IsInt],COM_FUN(71));
InstallMethod(Position,"for a sorted list, an object, and an integer",[IsSSortedList,IsObject,IsInt],COM_FUN(72));
InstallMethod(Position,"for duplicate free list, object, and positive integer",[IsDuplicateFreeList,IsObject,IsPosInt],COM_FUN(73));
InstallMethod(PositionCanonical,"for internally represented lists, fall back on `Position'",[IsList and IsInternalRep,IsObject],COM_FUN(74));
InstallMethod(PositionCanonical,"internal small sorted lists, use `POSITION_SORTED_LIST'",[IsList and IsInternalRep and IsSSortedList and IsSmallList,IsObject],COM_FUN(75));
InstallMethod(PositionNthOccurrence,"for list, object, integer",[IsList,IsObject,IsInt],COM_FUN(76));
InstallMethod(PositionNthOccurrence,"for boolean list, boolean, integer",[IsBlist,IsBool,IsInt],COM_FUN(77));
InstallMethod(PositionSorted,"for small list, and object",[IsList and IsSmallList,IsObject],POSITION_SORTED_LIST);
InstallMethod(PositionSorted,[IsList,IsObject],COM_FUN(78));
InstallOtherMethod(PositionSorted,"for small list, object, and function",[IsList and IsSmallList,IsObject,IsFunction],POSITION_SORTED_LIST_COMP);
InstallOtherMethod(PositionSorted,"for list, object, and function",[IsList,IsObject,IsFunction],COM_FUN(79));
InstallGlobalFunction(PositionSet,COM_FUN(80));
InstallMethod(PositionProperty,"for dense list and function",[IsDenseList,IsFunction],COM_FUN(81));
InstallMethod(PositionBound,"for a list",[IsList],COM_FUN(82));
InstallMethod(PositionSublist,"list,sub,pos",IsFamFamX,[IsList,IsList,IS_INT],COM_FUN(83));
InstallOtherMethod(PositionSublist,"list, sub",[IsObject,IsObject],COM_FUN(84));
InstallOtherMethod(PositionSublist,"empty list,sub,pos",[IsEmpty,IsList,IS_INT],ReturnFail);
InstallOtherMethod(PositionSublist,"list,empty,pos",[IsList,IsEmpty,IS_INT],COM_FUN(85));
InstallMethod(IsMatchingSublist,"list,sub,pos",IsFamFamX,[IsList,IsList,IS_INT],COM_FUN(86));
InstallOtherMethod(IsMatchingSublist,"list, sub",[IsObject,IsObject],COM_FUN(87));
InstallOtherMethod(IsMatchingSublist,"empty list,sub,pos",[IsEmpty,IsList,IS_INT],COM_FUN(88));
InstallOtherMethod(IsMatchingSublist,"list,empty,pos",[IsList,IsEmpty,IS_INT],ReturnTrue);
InstallMethod(Add,"for mutable list and list",[IsList and IsMutable,IsObject],ADD_LIST_DEFAULT);
APPEND_LIST_DEFAULT:=COM_FUN(89);
InstallMethod(Append,"for mutable list and list",[IsList and IsMutable,IsList],APPEND_LIST_DEFAULT);
InstallMethod(Append,"for mutable list in plist representation and list",[IsList and IsPlistRep and IsMutable,IsList],APPEND_LIST_INTR);
InstallGlobalFunction(Apply,COM_FUN(90));
InstallGlobalFunction(Concatenation,COM_FUN(91));
InstallMethod(Compacted,"for a list",[IsList],COM_FUN(92));
InstallMethod(Collected,"for a list",[IsList],COM_FUN(93));
InstallMethod(DuplicateFreeList,"for a list",[IsList],COM_FUN(94));
InstallMethod(AsDuplicateFreeList,"for a list",[IsList],DuplicateFreeList);
InstallMethod(Flat,"for a list",[IsList],COM_FUN(95));
InstallGlobalFunction(Reversed,COM_FUN(96));
InstallMethod(ReversedOp,"for a dense list",[IsDenseList],COM_FUN(97));
InstallMethod(ReversedOp,"for a range",[IsRange],COM_FUN(98));
InstallMethod(Sort,"for a mutable small list",[IsList and IsMutable and IsSmallList],SORT_LIST);
InstallMethod(Sort,"for a mutable list",[IsList and IsMutable],COM_FUN(99));
InstallOtherMethod(Sort,"for a mutable small list and a function",[IsList and IsMutable and IsSmallList,IsFunction],SORT_LIST_COMP);
InstallOtherMethod(Sort,"for a mutable list and a function",[IsList and IsMutable,IsFunction],COM_FUN(100));
BindGlobal("SORT_MUTABILITY_ERROR_HANDLER",COM_FUN(101));
InstallOtherMethod(Sort,"for an immutable list",[IsList],SORT_MUTABILITY_ERROR_HANDLER);
InstallOtherMethod(Sort,"for an immutable list and a function",[IsList,IsFunction],SORT_MUTABILITY_ERROR_HANDLER);
InstallGlobalFunction(IsLexicographicallyLess,COM_FUN(102));
InstallMethod(Sortex,"for a mutable list",[IsList and IsMutable],COM_FUN(103));
InstallOtherMethod(Sortex,"for an immutable list",[IsList],SORT_MUTABILITY_ERROR_HANDLER);
InstallOtherMethod(Sortex,"for an immutable list and a function",[IsList,IsFunction],SORT_MUTABILITY_ERROR_HANDLER);
InstallGlobalFunction(PermListList,COM_FUN(104));
InstallGlobalFunction(SortingPerm,COM_FUN(105));
UseKernelSort:=true;
InstallMethod(SortParallel,"for two dense and mutable lists",[IsDenseList and IsMutable,IsDenseList and IsMutable],COM_FUN(106));
InstallOtherMethod(SortParallel,"for two empty lists",[IsList and IsEmpty and IsMutable,IsList and IsEmpty and IsMutable],Ignore);
InstallOtherMethod(SortParallel,"for two dense and mutable lists, and function",[IsDenseList and IsMutable,IsDenseList and IsMutable,IsFunction],COM_FUN(107));
InstallOtherMethod(SortParallel,"for two empty lists, and function",[IsList and IsEmpty and IsMutable,IsList and IsEmpty and IsMutable,IsFunction],Ignore);
InstallOtherMethod(SortParallel,"for two immutable lists",[IsList,IsList],SORT_MUTABILITY_ERROR_HANDLER);
InstallOtherMethod(SortParallel,"for two immutable lists and function",[IsList,IsList,IsFunction],SORT_MUTABILITY_ERROR_HANDLER);
InstallGlobalFunction(Maximum,COM_FUN(108));
InstallMethod(MaximumList,"for a list",[IsList],COM_FUN(109));
InstallMethod(MaximumList,"for a range",[IsRange],COM_FUN(110));
InstallMethod(MaximumList,"for a sorted list",[IsSSortedList],COM_FUN(111));
InstallGlobalFunction(Minimum,COM_FUN(112));
InstallMethod(MinimumList,"for a list",[IsList],COM_FUN(113));
InstallMethod(MinimumList,"for a range",[IsRange],COM_FUN(114));
InstallMethod(MinimumList,"for a sorted list",[IsSSortedList],COM_FUN(115));
Cartesian2:=COM_FUN(116);
MakeReadOnlyGlobal("Cartesian2");
InstallGlobalFunction(Cartesian,COM_FUN(117));
InstallMethod(Permuted,"for a list and a permutation",[IsList,IS_PERM],COM_FUN(118));
InstallGlobalFunction(First,COM_FUN(119));
InstallMethod(FirstOp,"for a list or collection and a function",[IsListOrCollection,IsFunction],COM_FUN(120));
InstallMethod(Iterated,"for a list and a function",[IsList,IsFunction],COM_FUN(121));
InstallGlobalFunction(ListN,COM_FUN(122));
InstallMethod(IsBound\[\],"for a dense list and positive integer",[IsDenseList,IsPosInt],COM_FUN(123));
InstallOtherMethod(ZeroMutable,[IsListDefault and IsSmallList],ZERO_MUT_LIST_DEFAULT);
InstallOtherMethod(ZeroSameMutability,[IsListDefault and IsSmallList],ZERO_LIST_DEFAULT);
InstallOtherMethod(AdditiveInverseMutable,[IsListDefault and IsSmallList],AINV_MUT_LIST_DEFAULT);
InstallOtherMethod(AdditiveInverseSameMutability,[IsListDefault and IsSmallList],AINV_LIST_DEFAULT);
InstallOtherMethod(\+,[IsListDefault and IsSmallList,IsObject],COM_FUN(124));
InstallOtherMethod(\+,[IsObject,IsListDefault and IsSmallList],COM_FUN(125));
DeclareGlobalFunction("LIST_WITH_HOMOGENEOUS_MUTABILITY_LEVEL");
InstallGlobalFunction(LIST_WITH_HOMOGENEOUS_MUTABILITY_LEVEL,COM_FUN(126));
DeclareGlobalFunction("IMMUTABILITY_LEVEL2");
InstallGlobalFunction(IMMUTABILITY_LEVEL2,COM_FUN(127));
BindGlobal("IMMUTABILITY_LEVEL",COM_FUN(128));
BindGlobal("SUM_LISTS_SPECIAL",COM_FUN(129));
InstallOtherMethod(\+,[IsListDefault and IsSmallList,IsListDefault and IsSmallList],COM_FUN(130));
InstallOtherMethod(\-,[IsGeneralizedRowVector,IsGeneralizedRowVector],COM_FUN(131));
InstallOtherMethod(\-,[IsGeneralizedRowVector,IsObject],COM_FUN(132));
InstallOtherMethod(\-,[IsObject,IsGeneralizedRowVector],COM_FUN(133));
InstallOtherMethod(\-,[IsListDefault and IsSmallList,IsListDefault and IsSmallList],COM_FUN(134));
InstallOtherMethod(OneOp,[IsListDefault],COM_FUN(135));
InstallOtherMethod(OneSameMutability,[IsListDefault],COM_FUN(136));
InstallOtherMethod(InverseOp,"for default list whose rows are vectors of FFEs",[IsListDefault and IsRingElementTable and IsFFECollColl],COM_FUN(137));
InstallOtherMethod(InverseOp,"for default list over a ring without zero divisors",[IsListDefault and IsZDFRECollColl],COM_FUN(138));
InstallOtherMethod(InverseSameMutability,"for default list whose rows are vectors of FFEs",[IsListDefault and IsRingElementTable and IsFFECollColl],COM_FUN(139));
InstallOtherMethod(InverseSameMutability,"for default list over a ring without zero divisors",[IsListDefault and IsZDFRECollColl],COM_FUN(140));
InstallOtherMethod(\^,"using `PROD' for ring element list and ring element table",IsElmsColls,[IsRingElementList,IsRingElementTable],PROD);
InstallOtherMethod(\*,[IsListDefault and IsSmallList,IsObject],COM_FUN(141));
InstallOtherMethod(\*,[IsObject,IsListDefault and IsSmallList],COM_FUN(142));
BindGlobal("LIST_WITH_HOLES",COM_FUN(143));
BindGlobal("PROD_LISTS_SPECIAL",COM_FUN(144));
InstallOtherMethod(\*,[IsListDefault and IsSmallList,IsListDefault and IsSmallList],COM_FUN(145));
InstallMethod(\*,"More efficient non-recursive kernel method for vector*matrix of cyclotomics",[IsListDefault and IsSmallList and IsCyclotomicCollection and IsPlistRep,IsListDefault and IsSmallList and IsCyclotomicCollColl and IsPlistRep and IsRectangularTable],PROD_VECTOR_MATRIX);
InstallMethod(\*,"More efficient non-recursive method for matrix*matrix of cyclotomics",[IsListDefault and IsSmallList and IsCyclotomicCollColl,IsListDefault and IsSmallList and IsCyclotomicCollColl and IsPlistRep and IsRectangularTable],COM_FUN(146));
BindGlobal("MOD_LIST_SCL_DEFAULT",COM_FUN(147));
BindGlobal("MOD_SCL_LIST_DEFAULT",COM_FUN(148));
BindGlobal("MOD_LIST_LIST_DEFAULT",COM_FUN(149));
InstallOtherMethod(\mod,[IsListDefault and IsSmallList,IsObject],COM_FUN(150));
InstallOtherMethod(\mod,[IsObject,IsListDefault and IsSmallList],COM_FUN(151));
InstallOtherMethod(\mod,[IsListDefault and IsSmallList,IsListDefault and IsSmallList],COM_FUN(152));
InstallOtherMethod(LeftQuotient,[IsMultiplicativeGeneralizedRowVector,IsMultiplicativeGeneralizedRowVector],COM_FUN(153));
InstallOtherMethod(LeftQuotient,[IsMultiplicativeGeneralizedRowVector,IsObject],COM_FUN(154));
InstallOtherMethod(LeftQuotient,[IsObject,IsMultiplicativeGeneralizedRowVector],COM_FUN(155));
InstallGlobalFunction(DifferenceBlist,COM_FUN(156));
InstallGlobalFunction(UnionBlist,COM_FUN(157));
InstallGlobalFunction(IntersectionBlist,COM_FUN(158));
InstallGlobalFunction(ListWithIdenticalEntries,COM_FUN(159));
InstallMethod(ViewObj,"for finite lists",[IsList and IsFinite],COM_FUN(160));
InstallMethod(ViewObj,"for ranges",[IsList and IsFinite and IsRange],COM_FUN(161));
ListSorted:=COM_FUN(162);
AsListSorted:=COM_FUN(163);
InstallMethod(SetIsSSortedList,"method for an internal list and a Boolean",[IsList and IsInternalRep,IsBool],COM_FUN(164));
InstallGlobalFunction(PlainListCopy,COM_FUN(165));
InstallMethod(PositionNot,"default method ",[IsList,IsObject,IsInt],POSITION_NOT);
InstallOtherMethod(PositionNot,"default value of third argument ",[IsList,IsObject],COM_FUN(166));
InstallMethod(CanEasilyCompareElements,"homogeneous list",[IsHomogeneousList],COM_FUN(167));
InstallMethod(CanEasilyCompareElements,"empty homogeneous list",[IsHomogeneousList and IsEmpty],COM_FUN(168));
InstallMethod(CanEasilySortElements,"homogeneous list",[IsHomogeneousList],COM_FUN(169));
InstallMethod(CanEasilySortElements,"empty homogeneous list",[IsHomogeneousList and IsEmpty],COM_FUN(170));
InstallGlobalFunction(Elements,COM_FUN(171));
InstallMethod(IsRectangularTable,"kernel method for a plain list",[IsTable and IsPlistRep],IsRectangularTablePlist);
InstallMethod(IsRectangularTable,"generic",[IsList],COM_FUN(172));
BLISTBYTES:=[];
HEXBYTES:=[];
BLISTBYTES1:=[];
HEXBYTES1:=[];
BindGlobal("HexBlistSetup",COM_FUN(173));
InstallGlobalFunction(HexStringBlist,COM_FUN(174));
InstallGlobalFunction(HexStringBlistEncode,COM_FUN(175));
InstallGlobalFunction(BlistStringDecode,COM_FUN(176));
InstallGlobalFunction(StateRandom,COM_FUN(177));
InstallGlobalFunction(RestoreStateRandom,COM_FUN(178));
InstallMethod(IntersectSet,"for two ranges",[IsRange and IsRangeRep and IsMutable,IsRange and IsRangeRep],INTER_RANGE);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/list.gi"

#F  file="lib/set.gi" crc=7356273
RANK_FILTER_LIST  := [ 8193, 2, 8193, 2, 8255, 14, 8255, 14, 8193, 2, 8193, 
  2, 8255, 14, 8255, 14, 8194, 4, 1, 0, 8256, 16, 1, 0, 8256, 16, 1, 0, 8194, 
  4, 1, 0, 8256, 16, 8255, 14, 8194, 4, 8193, 2, 8256, 16, 8255, 14, 8194, 4, 
  8193, 2, 8256, 16, 8255, 14, 8194, 4, 8193, 2 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/set.gi", 7356273 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/set.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/set.gi");
elif COM_RESULT = 3  then
Revision.set_gi:="@(#)$Id: set.gi,v 4.4 2002/04/15 10:05:22 sal Exp $";
InstallMethod(IsEqualSet,"for two lists",true,[IsList,IsList],0,COM_FUN(1));
InstallMethod(IsEqualSet,"for two internally represented lists",true,[IsList and IsInternalRep,IsList and IsInternalRep],0,IS_EQUAL_SET);
InstallMethod(IsSubsetSet,"for two lists",true,[IsList,IsList],0,COM_FUN(2));
InstallMethod(IsSubsetSet,"for two internally represented lists",true,[IsList and IsInternalRep,IsList and IsInternalRep],0,IS_SUBSET_SET);
InstallMethod(AddSet,"for mutable list, and object",true,[IsList and IsMutable,IsObject],0,COM_FUN(3));
InstallMethod(AddSet,"for mutable internally represented list, and object",true,[IsList and IsInternalRep and IsMutable,IsObject],0,ADD_SET);
InstallMethod(RemoveSet,"for mutable internally represented list, and object",true,[IsList and IsInternalRep and IsMutable,IsObject],0,REM_SET);
InstallMethod(RemoveSet,"for mutable list, and object",true,[IsList and IsMutable,IsObject],0,COM_FUN(4));
InstallMethod(UniteSet,"for two internally represented lists, the first being mutable",true,[IsList and IsInternalRep and IsMutable,IsList and IsInternalRep],0,UNITE_SET);
InstallMethod(UniteSet,"for two lists, the first being mutable",true,[IsList and IsMutable,IsList],0,COM_FUN(5));
InstallMethod(IntersectSet,"for two internally represented lists, the first being mutable",true,[IsList and IsInternalRep and IsMutable,IsList and IsInternalRep],0,INTER_SET);
InstallMethod(IntersectSet,"for two lists, the first being mutable",true,[IsList and IsMutable,IsList],0,COM_FUN(6));
InstallMethod(SubtractSet,"for two internally represented lists, the first being mutable",true,[IsList and IsInternalRep and IsMutable,IsList and IsInternalRep],0,SUBTR_SET);
InstallMethod(SubtractSet,"for two lists, the first being mutable",true,[IsList and IsMutable,IsList],0,COM_FUN(7));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/set.gi"

#F  file="lib/wpobj.gi" crc=-114739923
RANK_FILTER_LIST  := [ 67108400, 10, 60353033, 19, 67108401, 12, 60353033, 
  19, 1, 0, 67108400, 10, 67108400, 10, 60353033, 19, 67108401, 12, 60353033, 
  19, 67108400, 10, 67108400, 10, 67108400, 10 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/wpobj.gi", -114739923 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/wpobj.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/wpobj.gi");
elif COM_RESULT = 3  then
Revision.wpobj_gi:="@(#)$Id: wpobj.gi,v 4.8 2002/04/15 10:05:30 sal Exp $";
InstallMethod(\[\],"method for a weak pointer object",true,[IsWeakPointerObject,IsPosInt],0,COM_FUN(1));
InstallMethod(\[\]\:\=,"method for a weak pointer object",true,[IsWeakPointerObject and IsMutable,IsPosInt,IsObject],0,SetElmWPObj);
InstallMethod(Length,"method for a weak pointer object",true,[IsWeakPointerObject],0,LengthWPObj);
InstallMethod(IsBound\[\],"method for a weak pointer object",true,[IsWeakPointerObject,IsPosInt],0,IsBoundElmWPObj);
InstallMethod(Unbind\[\],"method for a weak pointer object",true,[IsWeakPointerObject and IsMutable,IsPosInt],0,UnbindElmWPObj);
InstallMethod(PrintObj,"method for a weak pointer object",true,[IsWeakPointerObject],0,COM_FUN(2));
InstallMethod(ViewObj,"method for a weak pointer object",true,[IsWeakPointerObject],0,COM_FUN(3));
InstallMethod(ShallowCopy,"method for a weak pointer object",true,[IsWeakPointerObject],0,COM_FUN(4));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/wpobj.gi"

#F  file="lib/grpnice.gd" crc=19972034
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 42418539, 3, 993, 2, 1, 0, 67108475, 7, 
  67108475, 7, 1, 0, 1, 0, 3801766, 16, 993, 2, 1, 0, 1, 0, 1, 0, 7602539, 3, 
  993, 2, 1, 0, 1, 0, 1, 0, 15205045, 3, 993, 2, 1, 0, 1, 0, 1, 0, 60818161, 
  3, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpnice.gd", 19972034 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpnice.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpnice.gd");
elif COM_RESULT = 3  then
Revision.grpnice_gd:="@(#)$Id: grpnice.gd,v 4.25 2002/04/15 10:04:45 sal Exp $";
DeclareAttribute("NiceMonomorphism",IsObject);
InstallSubsetMaintenance(NiceMonomorphism,IsGroup and HasNiceMonomorphism,IsGroup);
DeclareFilter("IsNiceMonomorphism");
DeclareGlobalFunction("RestrictedNiceMonomorphism");
DeclareProperty("IsCanonicalNiceMonomorphism",IsGroupGeneralMapping);
DeclareAttribute("CanonicalNiceMonomorphism",IsObject);
DeclareAttribute("NiceObject",IsObject);
DeclareProperty("IsHandledByNiceMonomorphism",IsObject,NICE_FLAGS);
InstallSubsetMaintenance(IsHandledByNiceMonomorphism,IsHandledByNiceMonomorphism and IsGroup,IsGroup);
RUN_IN_GGMBI:=false;
DeclareOperation("GroupByNiceMonomorphism",[IsGroupHomomorphism,IsGroup]);
BindGlobal("AttributeMethodByNiceMonomorphism",COM_FUN(1));
BindGlobal("AttributeMethodByNiceMonomorphismCollColl",COM_FUN(2));
BindGlobal("AttributeMethodByNiceMonomorphismCollElm",COM_FUN(3));
BindGlobal("AttributeMethodByNiceMonomorphismElmColl",COM_FUN(4));
BindGlobal("GroupMethodByNiceMonomorphism",COM_FUN(5));
BindGlobal("GroupMethodByNiceMonomorphismCollOther",COM_FUN(6));
BindGlobal("GroupMethodByNiceMonomorphismCollColl",COM_FUN(7));
BindGlobal("GroupMethodByNiceMonomorphismCollElm",COM_FUN(8));
BindGlobal("SubgroupMethodByNiceMonomorphism",COM_FUN(9));
BindGlobal("SubgroupsMethodByNiceMonomorphism",COM_FUN(10));
BindGlobal("SubgroupMethodByNiceMonomorphismCollOther",COM_FUN(11));
BindGlobal("SubgroupMethodByNiceMonomorphismCollColl",COM_FUN(12));
BindGlobal("SubgroupMethodByNiceMonomorphismCollElm",COM_FUN(13));
DeclareSynonym("PropertyMethodByNiceMonomorphism",AttributeMethodByNiceMonomorphism);
DeclareSynonym("PropertyMethodByNiceMonomorphismCollColl",AttributeMethodByNiceMonomorphismCollColl);
DeclareSynonym("PropertyMethodByNiceMonomorphismCollElm",AttributeMethodByNiceMonomorphismCollElm);
DeclareSynonym("PropertyMethodByNiceMonomorphismElmColl",AttributeMethodByNiceMonomorphismElmColl);
BindGlobal("GroupSeriesMethodByNiceMonomorphism",COM_FUN(14));
BindGlobal("GroupSeriesMethodByNiceMonomorphismCollOther",COM_FUN(15));
BindGlobal("GroupSeriesMethodByNiceMonomorphismCollColl",COM_FUN(16));
BindGlobal("GroupSeriesMethodByNiceMonomorphismCollElm",COM_FUN(17));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpnice.gd"

#F  file="lib/morpheus.gd" crc=-5066651
RANK_FILTER_LIST  := [ 8126465, 2, 67108010, 1, 1, 0, 1, 0, 54526450, 8, 993, 
  2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 16778104, 21, 993, 2, 1, 
  0, 1, 0, 1, 0, 1, 0, 33555215, 224, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 123, 
  224, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 213, 21, 993, 2, 
  1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/morpheus.gd", -5066651 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/morpheus.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/morpheus.gd");
elif COM_RESULT = 3  then
Revision.morpheus_gd:="@(#)$Id: morpheus.gd,v 4.30 2002/04/15 10:05:04 sal Exp $";
DeclareInfoClass("InfoMorph");
DeclareAttribute("AutomorphismGroup",IsDomain);
DeclareProperty("IsGroupOfAutomorphisms",IsGroup);
InstallTrueMethod(IsHandledByNiceMonomorphism,IsGroupOfAutomorphisms);
InstallSubsetMaintenance(IsGroupOfAutomorphisms,IsGroup and IsGroupOfAutomorphisms,IsGroup);
DeclareAttribute("AutomorphismDomain",IsGroupOfAutomorphisms);
DeclareProperty("IsAutomorphismGroup",IsGroupOfAutomorphisms);
InstallTrueMethod(IsGroupOfAutomorphisms,IsAutomorphismGroup);
DeclareAttribute("InnerAutomorphismsAutomorphismGroup",IsGroup);
DeclareGlobalFunction("AssignNiceMonomorphismAutomorphismGroup");
DeclareGlobalFunction("NiceMonomorphismAutomGroup");
DeclareGlobalFunction("MorFroWords");
DeclareGlobalFunction("MorRatClasses");
DeclareGlobalFunction("MorMaxFusClasses");
DeclareGlobalFunction("MorClassLoop");
DeclareGlobalFunction("MorFindGeneratingSystem");
DeclareGlobalFunction("Morphium");
DeclareGlobalFunction("AutomorphismGroupAbelianGroup");
DeclareGlobalFunction("IsomorphismAbelianGroups");
DeclareGlobalFunction("IsomorphismGroups");
DeclareOperation("GQuotients",[IsGroup,IsGroup]);
DeclareOperation("IsomorphicSubgroups",[IsGroup,IsGroup]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/morpheus.gd"

#F  file="lib/grpmat.gd" crc=119472948
RANK_FILTER_LIST  := [ 3813249, 8, 61011969, 7, 65011203, 9, 60816854, 16, 
  56435514, 26, 1, 0, 1, 0, 393, 31, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 
  65011203, 9, 60816854, 16, 56435514, 26, 1, 0, 1, 0, 753, 31, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 60816854, 16, 56435514, 26, 1, 0, 1, 
  0, 513, 31, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 60816854, 
  16, 56435514, 26, 1, 0, 1, 0, 42011778, 31, 993, 2, 1, 0, 60816854, 16, 
  60816854, 16, 1, 0, 1, 0, 25641932, 21, 993, 2, 1, 0, 3813249, 8, 61011969, 
  7, 65011203, 9, 60816854, 16, 56435514, 26, 1, 0, 1, 0, 27274307, 31, 993, 
  2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 27681068, 21, 993, 2, 1, 
  0, 3813249, 8, 61011969, 7, 65011203, 9, 60816854, 16, 56435514, 26, 1, 0, 
  1, 0, 43612414, 31, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 
  60816854, 16, 56435514, 26, 1, 0, 1, 0, 40228919, 31, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 60816854, 16, 56435514, 26, 1, 0, 1, 
  0, 13347966, 31, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 
  60816854, 16, 56435514, 26, 1, 0, 1, 0, 53390805, 31, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 60816854, 16, 56435514, 26, 1, 0, 1, 
  0, 39672698, 31, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 
  60816854, 16, 56435514, 26, 1, 0, 1, 0, 24471975, 31, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 60816854, 16, 56435514, 26, 1, 0, 1, 
  0, 48943917, 31, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 
  60816854, 16, 56435514, 26, 1, 0, 1, 0, 61554931, 31, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpmat.gd", 119472948 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpmat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpmat.gd");
elif COM_RESULT = 3  then
Revision.grpmat_gd:="@(#)$Id: grpmat.gd,v 4.23 2002/04/15 10:04:45 sal Exp $";
DeclareSynonym("IsMatrixGroup",IsRingElementCollCollColl and IsGroup);
InstallTrueMethod(IsHandledByNiceMonomorphism,IsMatrixGroup and IsFinite);
InstallTrueMethod(CanComputeSize,IsMatrixGroup and IsFinite);
DeclareGlobalFunction("ProjectiveActionHomomorphismMatrixGroup");
DeclareAttribute("DefaultFieldOfMatrixGroup",IsMatrixGroup);
InstallSubsetMaintenance(DefaultFieldOfMatrixGroup,IsMatrixGroup and HasDefaultFieldOfMatrixGroup,IsMatrixGroup);
DeclareAttribute("DimensionOfMatrixGroup",IsMatrixGroup);
InstallSubsetMaintenance(DimensionOfMatrixGroup,IsMatrixGroup and HasDimensionOfMatrixGroup,IsMatrixGroup);
DeclareAttribute("FieldOfMatrixGroup",IsMatrixGroup);
DeclareAttribute("TransposedMatrixGroup",IsMatrixGroup);
DeclareGlobalFunction("NaturalActedSpace");
DeclareProperty("IsGeneralLinearGroup",IsGroup);
DeclareSynonymAttr("IsGL",IsGeneralLinearGroup);
DeclareProperty("IsNaturalGL",IsMatrixGroup);
InstallTrueMethod(IsGeneralLinearGroup,IsNaturalGL);
DeclareProperty("IsSpecialLinearGroup",IsGroup);
DeclareSynonymAttr("IsSL",IsSpecialLinearGroup);
DeclareProperty("IsNaturalSL",IsMatrixGroup);
InstallTrueMethod(IsSpecialLinearGroup,IsNaturalSL);
DeclareProperty("IsSubgroupSL",IsMatrixGroup);
InstallTrueMethod(IsSubgroupSL,IsNaturalSL);
DeclareAttribute("InvariantBilinearForm",IsMatrixGroup);
DeclareProperty("IsFullSubgroupGLorSLRespectingBilinearForm",IsMatrixGroup);
DeclareAttribute("InvariantSesquilinearForm",IsMatrixGroup);
DeclareProperty("IsFullSubgroupGLorSLRespectingSesquilinearForm",IsMatrixGroup);
DeclareAttribute("InvariantQuadraticForm",IsMatrixGroup);
DeclareProperty("IsFullSubgroupGLorSLRespectingQuadraticForm",IsMatrixGroup);
DeclareGlobalFunction("AffineActionByMatrixGroup");
DeclareGlobalFunction("BlowUpIsomorphism");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpmat.gd"

#F  file="lib/grpffmat.gd" crc=-70955808
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpffmat.gd", -70955808 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpffmat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpffmat.gd");
elif COM_RESULT = 3  then
Revision.grpffmat_gd:="@(#)$Id: grpffmat.gd,v 4.18 2002/04/15 10:04:44 sal Exp $";
DeclareSynonym("IsFFEMatrixGroup",IsFFECollCollColl and IsMatrixGroup);
InstallTrueMethod(IsFinite,IsFFEMatrixGroup and IsFinitelyGeneratedGroup);
DeclareGlobalFunction("NicomorphismOfFFEMatrixGroup");
DeclareGlobalFunction("ProjectiveActionOnFullSpace");
DeclareGlobalFunction("ConjugacyClassesOfNaturalGroup");
DeclareGlobalFunction("Phi2");
DeclareGlobalFunction("NrConjugacyClassesGL");
DeclareGlobalFunction("NrConjugacyClassesGU");
DeclareGlobalFunction("NrConjugacyClassesSL");
DeclareGlobalFunction("NrConjugacyClassesSU");
DeclareGlobalFunction("NrConjugacyClassesPGL");
DeclareGlobalFunction("NrConjugacyClassesPGU");
DeclareGlobalFunction("NrConjugacyClassesPSL");
DeclareGlobalFunction("NrConjugacyClassesPSU");
DeclareGlobalFunction("NrConjugacyClassesSLIsogeneous");
DeclareGlobalFunction("NrConjugacyClassesSUIsogeneous");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpffmat.gd"

#F  file="lib/grpramat.gd" crc=29789225
RANK_FILTER_LIST  := [ 3813249, 8, 61011969, 7, 65011203, 9, 30176509, 19, 
  60816854, 16, 19503143, 29, 1, 0, 1, 0, 44892988, 34, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 30176509, 19, 60816854, 16, 19503143, 
  29, 1, 0, 1, 0, 45351215, 34, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 
  65011203, 9, 30176509, 19, 60816854, 16, 19503143, 29, 1, 0, 1, 0, 
  23593518, 34, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 30176509, 
  19, 60816854, 16, 19503143, 29, 1, 0, 1, 0, 47186043, 34, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 30176509, 19, 60816854, 16, 19503143, 
  29, 1, 0, 1, 0, 27263174, 34, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 
  65011203, 9, 30176509, 19, 60816854, 16, 19503143, 29, 1, 0, 1, 0, 
  41943718, 34, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 30176509, 
  19, 60816854, 16, 19503143, 29, 1, 0, 1, 0, 16777564, 34, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 30176509, 19, 60816854, 16, 19503143, 
  29, 1, 0, 1, 0, 33555095, 34, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 
  65011203, 9, 30176509, 19, 60816854, 16, 19503143, 29, 1, 0, 1, 0, 318, 34, 
  993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 30176509, 19, 60816854, 
  16, 19503143, 29, 1, 0, 1, 0, 27280832, 34, 993, 2, 1, 0, 3813249, 8, 
  61011969, 7, 65011203, 9, 30176509, 19, 60816854, 16, 19503143, 29, 1, 0, 
  1, 0, 14732981, 34, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpramat.gd", 29789225 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpramat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpramat.gd");
elif COM_RESULT = 3  then
Revision.grpramat_gd:="@(#)$Id: grpramat.gd,v 4.10 2002/04/15 10:04:52 sal Exp $";
IsCyclotomicMatrixGroup:=IsCyclotomicCollCollColl and IsMatrixGroup;
DeclareProperty("IsRationalMatrixGroup",IsCyclotomicMatrixGroup);
DeclareProperty("IsIntegerMatrixGroup",IsCyclotomicMatrixGroup);
IsNaturalGLnZ:=IsNaturalGL and IsIntegerMatrixGroup;
IsNaturalSLnZ:=IsNaturalSL and IsIntegerMatrixGroup;
DeclareAttribute("ZClassRepsQClass",IsCyclotomicMatrixGroup);
DeclareAttribute("NormalizerInGLnZ",IsCyclotomicMatrixGroup);
DeclareAttribute("CentralizerInGLnZ",IsCyclotomicMatrixGroup);
DeclareGlobalVariable("CrystGroupDefaultAction");
BindGlobal("LeftAction",Immutable("LeftAction"));
BindGlobal("RightAction",Immutable("RightAction"));
DeclareGlobalFunction("SetCrystGroupDefaultAction");
DeclareProperty("IsBravaisGroup",IsCyclotomicMatrixGroup);
DeclareAttribute("BravaisGroup",IsCyclotomicMatrixGroup);
DeclareAttribute("BravaisSubgroups",IsCyclotomicMatrixGroup);
DeclareAttribute("BravaisSupergroups",IsCyclotomicMatrixGroup);
DeclareAttribute("NormalizerInGLnZBravaisGroup",IsCyclotomicMatrixGroup);
DeclareAttribute("InvariantLattice",IsCyclotomicMatrixGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpramat.gd"

#F  file="grp/basic.gd" crc=-13186857
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "grp/basic.gd", -13186857 );
if COM_RESULT = fail  then
Error("cannot locate file \"grp/basic.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("grp/basic.gd");
elif COM_RESULT = 3  then
Revision.basic_gd:="@(#)$Id: basic.gd,v 4.28 2000/02/01 13:34:11 gap Exp $";
DeclareConstructor("TrivialGroupCons",[IsGroup]);
BindGlobal("TrivialGroup",COM_FUN(1));
DeclareConstructor("AbelianGroupCons",[IsGroup,IsList]);
BindGlobal("AbelianGroup",COM_FUN(2));
DeclareConstructor("AlternatingGroupCons",[IsGroup,IsInt]);
BindGlobal("AlternatingGroup",COM_FUN(3));
DeclareConstructor("CyclicGroupCons",[IsGroup,IsInt]);
BindGlobal("CyclicGroup",COM_FUN(4));
DeclareConstructor("DihedralGroupCons",[IsGroup,IsInt]);
BindGlobal("DihedralGroup",COM_FUN(5));
DeclareConstructor("ElementaryAbelianGroupCons",[IsGroup,IsInt]);
BindGlobal("ElementaryAbelianGroup",COM_FUN(6));
DeclareConstructor("ExtraspecialGroupCons",[IsGroup,IsInt,IsObject]);
BindGlobal("ExtraspecialGroup",COM_FUN(7));
DeclareConstructor("MathieuGroupCons",[IsGroup,IsInt]);
BindGlobal("MathieuGroup",COM_FUN(8));
DeclareConstructor("SymmetricGroupCons",[IsGroup,IsInt]);
BindGlobal("SymmetricGroup",COM_FUN(9));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="grp/basic.gd"

#F  file="grp/classic.gd" crc=-133621370
RANK_FILTER_LIST  := [ 49959545, 27, 49959545, 27, 49959545, 27, 49959545, 
  27, 49959545, 27 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "grp/classic.gd", -133621370 );
if COM_RESULT = fail  then
Error("cannot locate file \"grp/classic.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("grp/classic.gd");
elif COM_RESULT = 3  then
Revision.classic_gd:="@(#)$Id: classic.gd,v 4.14.2.1 2002/07/04 09:16:18 gap Exp $";
DeclareConstructor("GeneralLinearGroupCons",[IsGroup,IsInt,IsInt]);
BindGlobal("GeneralLinearGroup",COM_FUN(1));
DeclareSynonym("GL",GeneralLinearGroup);
DeclareConstructor("GeneralOrthogonalGroupCons",[IsGroup,IsInt,IsPosInt,IsPosInt]);
BindGlobal("GeneralOrthogonalGroup",COM_FUN(2));
DeclareSynonym("GO",GeneralOrthogonalGroup);
DeclareConstructor("GeneralUnitaryGroupCons",[IsGroup,IsPosInt,IsPosInt]);
BindGlobal("GeneralUnitaryGroup",COM_FUN(3));
DeclareSynonym("GU",GeneralUnitaryGroup);
DeclareConstructor("SpecialLinearGroupCons",[IsGroup,IsInt,IsInt]);
BindGlobal("SpecialLinearGroup",COM_FUN(4));
DeclareSynonym("SL",SpecialLinearGroup);
DeclareConstructor("SpecialOrthogonalGroupCons",[IsGroup,IsInt,IsPosInt,IsPosInt]);
BindGlobal("SpecialOrthogonalGroup",COM_FUN(5));
DeclareSynonym("SO",SpecialOrthogonalGroup);
DeclareConstructor("SpecialUnitaryGroupCons",[IsGroup,IsPosInt,IsPosInt]);
BindGlobal("SpecialUnitaryGroup",COM_FUN(6));
DeclareSynonym("SU",SpecialUnitaryGroup);
DeclareConstructor("SymplecticGroupCons",[IsGroup,IsPosInt,IsPosInt]);
BindGlobal("SymplecticGroup",COM_FUN(7));
DeclareSynonym("Sp",SymplecticGroup);
DeclareSynonym("SP",SymplecticGroup);
BindGlobal("DECLARE_PROJECTIVE_GROUPS_OPERATION",COM_FUN(8));
DECLARE_PROJECTIVE_GROUPS_OPERATION("GeneralLinearGroup","GL",1,COM_FUN(9));
DECLARE_PROJECTIVE_GROUPS_OPERATION("SpecialLinearGroup","SL",1,COM_FUN(10));
DECLARE_PROJECTIVE_GROUPS_OPERATION("GeneralUnitaryGroup","GU",2,COM_FUN(11));
DECLARE_PROJECTIVE_GROUPS_OPERATION("SpecialUnitaryGroup","SU",2,COM_FUN(12));
DECLARE_PROJECTIVE_GROUPS_OPERATION("SymplecticGroup","SP",1,COM_FUN(13));
DeclareSynonym("PSp",PSP);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="grp/classic.gd"

#F  file="grp/perf.gd" crc=108009259
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 6552834, 21, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "grp/perf.gd", 108009259 );
if COM_RESULT = fail  then
Error("cannot locate file \"grp/perf.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("grp/perf.gd");
elif COM_RESULT = 3  then
Revision.perf_gd:="@(#)$Id: perf.gd,v 4.14 2001/10/06 20:30:23 gap Exp $";
PERFRec:=fail;
PERFSELECT:=[];
PERFGRP:=[];
DeclareCategory("IsPerfectLibraryGroup",IsGroup);
DeclareConstructor("PerfGrpConst",[IsGroup,IsList]);
DeclareGlobalFunction("PerfGrpLoad");
DeclareAttribute("PerfectIdentification",IsGroup);
DeclareGlobalFunction("SizesPerfectGroups");
DeclareGlobalFunction("NumberPerfectGroups");
DeclareSynonym("NrPerfectGroups",NumberPerfectGroups);
DeclareGlobalFunction("NumberPerfectLibraryGroups");
DeclareSynonym("NrPerfectLibraryGroups",NumberPerfectLibraryGroups);
DeclareGlobalFunction("PerfectGroup");
DeclareGlobalFunction("DisplayInformationPerfectGroups");
DeclareGlobalFunction("SizeNumbersPerfectGroups");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="grp/perf.gd"

#F  file="grp/suzuki.gd" crc=-1375884
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "grp/suzuki.gd", -1375884 );
if COM_RESULT = fail  then
Error("cannot locate file \"grp/suzuki.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("grp/suzuki.gd");
elif COM_RESULT = 3  then
Revision.suzuki_gd:="@(#)$Id: suzuki.gd,v 4.3 2001/11/23 12:43:34 stefan Exp $";
DeclareConstructor("SuzukiGroupCons",[IsGroup,IsInt]);
BindGlobal("SuzukiGroup",COM_FUN(1));
DeclareSynonym("Sz",SuzukiGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="grp/suzuki.gd"

#F  file="grp/ree.gd" crc=126562683
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "grp/ree.gd", 126562683 );
if COM_RESULT = fail  then
Error("cannot locate file \"grp/ree.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("grp/ree.gd");
elif COM_RESULT = 3  then
Revision.ree_gd:="@(#)$Id: ree.gd,v 1.1 2001/12/23 22:20:15 gap Exp $";
DeclareConstructor("ReeGroupCons",[IsGroup,IsInt]);
BindGlobal("ReeGroup",COM_FUN(1));
DeclareSynonym("Ree",ReeGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="grp/ree.gd"

#F  file="grp/imf.gd" crc=116883545
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 59943321, 21, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "grp/imf.gd", 116883545 );
if COM_RESULT = fail  then
Error("cannot locate file \"grp/imf.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("grp/imf.gd");
elif COM_RESULT = 3  then
Revision.imf_gd:="@(#)$Id: imf.gd,v 1.1 2000/02/16 14:20:21 gap Exp $";
DeclareInfoClass("InfoImf");
DeclareFilter("IsImfMatrixGroup");
DeclareAttribute("ImfRecord",IsGroup,"mutable");
DeclareGlobalFunction("BaseShortVectors");
DeclareGlobalFunction("DisplayImfInvariants");
DeclareGlobalFunction("DisplayImfReps");
DeclareGlobalFunction("ImfInvariants");
DeclareGlobalFunction("IMFLoad");
DeclareGlobalFunction("ImfMatrixGroup");
DeclareGlobalFunction("ImfNumberQClasses");
DeclareGlobalFunction("ImfNumberQQClasses");
DeclareGlobalFunction("ImfNumberZClasses");
DeclareGlobalFunction("ImfPositionNumber");
DeclareGlobalFunction("OrbitShortVectors");
DeclareGlobalFunction("IsomorphismPermGroupImfGroup");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="grp/imf.gd"

#F  file="grp/glzmodmz.gd" crc=-43925557
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "grp/glzmodmz.gd", -43925557 );
if COM_RESULT = fail  then
Error("cannot locate file \"grp/glzmodmz.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("grp/glzmodmz.gd");
elif COM_RESULT = 3  then
Revision.glzmodmz_gd:="@(#)$Id: glzmodmz.gd,v 1.1 2001/11/29 12:12:15 stefan Exp $";
DeclareGlobalFunction("SizeOfGLdZmodmZ");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="grp/glzmodmz.gd"

#F  file="lib/orders.gd" crc=129576079
RANK_FILTER_LIST  := [ 1985, 1, 1, 0, 1, 0, 38443668, 4, 993, 2, 1, 0, 
  52775778, 1, 1, 0, 1, 0, 19553935, 4, 993, 2, 1, 0, 52775778, 1, 1, 0, 1, 
  0, 11103882, 4, 993, 2, 1, 0, 52775778, 1, 1, 0, 1, 0, 22207731, 4, 993, 2, 
  1, 0, 52775778, 1, 1, 0, 1, 0, 44415429, 4, 993, 2, 1, 0, 52775778, 1, 1, 
  0, 1, 0, 21721946, 4, 993, 2, 1, 0, 52775778, 1, 1, 0, 1, 0, 19775926, 4, 
  993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 39551819, 6, 993, 2, 1, 0, 52775778, 1, 
  52775778, 1, 1, 0, 1, 0, 23986539, 6, 993, 2, 1, 0, 52775778, 1, 52775778, 
  1, 1, 0, 1, 0, 47973045, 6, 993, 2, 1, 0, 52775778, 1, 52775778, 1, 1, 0, 
  1, 0, 57672403, 6, 993, 2, 1, 0, 52775778, 1, 52775778, 1, 1, 0, 1, 0, 
  48234934, 6, 993, 2, 1, 0, 52775778, 1, 52775778, 1, 1, 0, 1, 0, 58720919, 
  6, 993, 2, 1, 0, 52775778, 1, 1, 0, 1, 0, 33555020, 4, 993, 2, 1, 0, 
  52775778, 1, 1, 0, 1, 0, 303, 4, 993, 2, 1, 0, 52775778, 1, 52775778, 1, 1, 
  0, 1, 0, 573, 6, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/orders.gd", 129576079 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/orders.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/orders.gd");
elif COM_RESULT = 3  then
Revision.orders_gd:="@(#)$Id: orders.gd,v 4.13 2002/04/15 10:05:11 sal Exp $";
DeclareCategory("IsOrdering",IsObject);
DeclareAttribute("OrderingsFamily",IsFamily);
DeclareProperty("IsWellFoundedOrdering",IsOrdering);
DeclareProperty("IsTotalOrdering",IsOrdering);
DeclareAttribute("FamilyForOrdering",IsOrdering);
DeclareAttribute("LessThanFunction",IsOrdering);
DeclareAttribute("LessThanOrEqualFunction",IsOrdering);
DeclareOperation("IsLessThanUnder",[IsOrdering,IsObject,IsObject]);
DeclareOperation("IsLessThanOrEqualUnder",[IsOrdering,IsObject,IsObject]);
DeclareOperation("IsIncomparableUnder",[IsOrdering,IsObject,IsObject]);
DeclareOperation("OrderingByLessThanFunctionNC",[IsFamily,IsFunction]);
DeclareOperation("OrderingByLessThanOrEqualFunctionNC",[IsFamily,IsFunction]);
DeclareProperty("IsOrderingOnFamilyOfAssocWords",IsOrdering);
DeclareAttribute("LetterRepWordsLessFunc",IsOrderingOnFamilyOfAssocWords);
DeclareProperty("IsTranslationInvariantOrdering",IsOrdering and IsOrderingOnFamilyOfAssocWords);
DeclareSynonym("IsReductionOrdering",IsTranslationInvariantOrdering and IsWellFoundedOrdering);
DeclareAttribute("OrderingOnGenerators",IsOrdering and IsOrderingOnFamilyOfAssocWords);
DeclareOperation("LexicographicOrdering",[IsFamily and IsAssocWordFamily,IsList and IsAssocWordCollection]);
DeclareOperation("ShortLexOrdering",[IsFamily and IsAssocWordFamily,IsList and IsAssocWordCollection]);
DeclareProperty("IsShortLexOrdering",IsOrdering and IsOrderingOnFamilyOfAssocWords);
DeclareGlobalFunction("IsShortLexLessThanOrEqual");
DeclareOperation("WeightLexOrdering",[IsFamily and IsAssocWordFamily,IsList and IsAssocWordCollection,IsList]);
DeclareAttribute("WeightOfGenerators",IsOrdering and IsOrderingOnFamilyOfAssocWords);
DeclareProperty("IsWeightLexOrdering",IsOrdering and IsOrderingOnFamilyOfAssocWords);
DeclareOperation("BasicWreathProductOrdering",[IsAssocWordFamily,IsList]);
DeclareProperty("IsBasicWreathProductOrdering",IsOrdering);
DeclareGlobalFunction("IsBasicWreathLessThanOrEqual");
DeclareOperation("WreathProductOrdering",[IsFamily,IsList,IsList]);
DeclareProperty("IsWreathProductOrdering",IsOrdering);
DeclareAttribute("LevelsOfGenerators",IsOrdering and IsWreathProductOrdering);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/orders.gd"

#F  file="lib/trans.gd" crc=34862599
RANK_FILTER_LIST  := [ 67108040, 6, 1, 0, 1, 0, 14289379, 9, 993, 2, 1, 0, 
  67108040, 6, 1, 0, 1, 0, 1858152, 9, 993, 2, 1, 0, 67108040, 6, 1, 0, 1, 0, 
  44105537, 9, 993, 2, 1, 0, 67108040, 6, 1, 0, 1, 0, 46273428, 9, 993, 2, 1, 
  0, 67108040, 6, 1, 0, 1, 0, 25436984, 9, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/trans.gd", 34862599 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/trans.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/trans.gd");
elif COM_RESULT = 3  then
Revision.trans_gd:="@(#)$Id: trans.gd,v 4.17 2002/04/15 10:05:25 sal Exp $";
DeclareCategory("IsTransformation",IsMultiplicativeElementWithOne and IsAssociativeElement);
DeclareCategoryCollections("IsTransformation");
DeclareRepresentation("IsTransformationRep",IsPositionalObjectRep,[1]);
DeclareGlobalFunction("Transformation");
DeclareGlobalFunction("TransformationNC");
DeclareGlobalFunction("IdentityTransformation");
DeclareGlobalFunction("RandomTransformation");
DeclareAttribute("DegreeOfTransformation",IsTransformation);
DeclareAttribute("ImageListOfTransformation",IsTransformation);
DeclareAttribute("ImageSetOfTransformation",IsTransformation);
DeclareAttribute("RankOfTransformation",IsTransformation);
DeclareAttribute("KernelOfTransformation",IsTransformation);
DeclareOperation("PreimagesOfTransformation",[IsTransformation,IsInt]);
DeclareOperation("RestrictedTransformation",[IsTransformation,IsListOrCollection]);
DeclareOperation("AsTransformation",[IsObject]);
DeclareOperation("AsTransformationNC",[IsObject]);
DeclareOperation("TransformationRelation",[IsGeneralMapping]);
DeclareOperation("BinaryRelationTransformation",[IsTransformation]);
DeclareOperation("InverseOp",[IsTransformation]);
DeclareOperation("PermLeftQuoTransformation",[IsTransformation,IsTransformation]);
DeclareGlobalFunction("TransformationFamily");
DeclareGlobalFunction("TransformationType");
DeclareGlobalFunction("TransformationData");
_TransformationFamiliesDatabase:=[];
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/trans.gd"

#F  file="lib/fastendo.gd" crc=-45012668
RANK_FILTER_LIST  := [ 67108475, 7, 67108475, 7, 1, 0, 1, 0, 50872975, 16, 
  993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/fastendo.gd", -45012668 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/fastendo.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/fastendo.gd");
elif COM_RESULT = 3  then
Revision.fastendo_gd:="@(#)$Id: fastendo.gd,v 4.2 2002/04/15 10:04:39 sal Exp $";
DeclareAttribute("TransformationRepresentation",IsEndoMapping);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/fastendo.gd"

#F  file="lib/fpsemi.gd" crc=68140826
RANK_FILTER_LIST  := [ 49544677, 11, 2161292, 9, 51705968, 15, 1, 0, 1, 0, 
  8646157, 20, 993, 2, 1, 0, 49544677, 11, 2161292, 9, 51705968, 15, 1, 0, 1, 
  0, 17292281, 20, 993, 2, 1, 0, 49544677, 11, 2161292, 9, 51705968, 15, 1, 
  0, 1, 0, 34583569, 20, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 
  0, 2058226, 16, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/fpsemi.gd", 68140826 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/fpsemi.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/fpsemi.gd");
elif COM_RESULT = 3  then
Revision.fpsemi_gd:="@(#)$Id: fpsemi.gd,v 4.13 2002/04/15 10:04:40 sal Exp $";
DeclareCategory("IsElementOfFpSemigroup",IsMultiplicativeElement and IsAssociativeElement);
DeclareOperation("FpSemigroupOfElementOfFpSemigroup",[IsElementOfFpSemigroup]);
DeclareCategoryCollections("IsElementOfFpSemigroup");
DeclareSynonymAttr("IsSubsemigroupFpSemigroup",IsSemigroup and IsElementOfFpSemigroupCollection);
DeclareCategoryFamily("IsElementOfFpSemigroup");
DeclareGlobalFunction("FactorFreeSemigroupByRelations");
DeclareOperation("ElementOfFpSemigroup",[IsElementOfFpSemigroupFamily,IsAssocWord]);
DeclareSynonym("IsFpSemigroup",IsSubsemigroupFpSemigroup and IsWholeFamily);
DeclareAttribute("FreeGeneratorsOfFpSemigroup",IsFpSemigroup);
DeclareAttribute("FreeSemigroupOfFpSemigroup",IsFpSemigroup);
DeclareAttribute("RelationsOfFpSemigroup",IsFpSemigroup);
DeclareAttribute("IsomorphismFpSemigroup",IsSemigroup);
DeclareOperation("FpGrpMonSmgOfFpGrpMonSmgElement",[IsMultiplicativeElement]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/fpsemi.gd"

#F  file="lib/fpmon.gd" crc=-94871220
RANK_FILTER_LIST  := [ 31981434, 13, 8230853, 10, 40212286, 17, 1, 0, 1, 0, 
  32924401, 22, 993, 2, 1, 0, 31981434, 13, 8230853, 10, 40212286, 17, 1, 0, 
  1, 0, 65847809, 22, 993, 2, 1, 0, 31981434, 13, 8230853, 10, 40212286, 17, 
  1, 0, 1, 0, 64586706, 22, 993, 2, 1, 0, 31981434, 13, 31981434, 13, 1, 0, 
  1, 0, 62063540, 18, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/fpmon.gd", -94871220 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/fpmon.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/fpmon.gd");
elif COM_RESULT = 3  then
Revision.fpmon_gd:="@(#)$Id: fpmon.gd,v 4.5 2002/04/15 10:04:40 sal Exp $";
DeclareCategory("IsElementOfFpMonoid",IsMultiplicativeElementWithOne and IsAssociativeElement);
DeclareCategoryCollections("IsElementOfFpMonoid");
DeclareSynonymAttr("IsSubmonoidFpMonoid",IsMonoid and IsElementOfFpMonoidCollection);
DeclareCategoryFamily("IsElementOfFpMonoid");
DeclareGlobalFunction("FactorFreeMonoidByRelations");
DeclareOperation("ElementOfFpMonoid",[IsElementOfFpMonoidFamily,IsAssocWordWithOne]);
DeclareOperation("FpMonoidOfElementOfFpMonoid",[IsElementOfFpMonoid]);
DeclareSynonym("IsFpMonoid",IsSubmonoidFpMonoid and IsWholeFamily);
DeclareAttribute("FreeGeneratorsOfFpMonoid",IsFpMonoid);
DeclareAttribute("FreeMonoidOfFpMonoid",IsFpMonoid);
DeclareAttribute("RelationsOfFpMonoid",IsFpMonoid);
DeclareAttribute("IsomorphismFpMonoid",IsMonoid);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/fpmon.gd"

#F  file="lib/rwssmg.gd" crc=-70259428
RANK_FILTER_LIST  := [ 49544677, 11, 49544677, 11, 1, 0, 1, 0, 57017208, 16, 
  993, 2, 1, 0, 50077622, 2, 1, 0, 1, 0, 46924544, 5, 993, 2, 1, 0, 50077622, 
  2, 1, 0, 1, 0, 26739216, 5, 993, 2, 1, 0, 50077622, 2, 1, 0, 1, 0, 
  53477439, 5, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/rwssmg.gd", -70259428 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/rwssmg.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/rwssmg.gd");
elif COM_RESULT = 3  then
Revision.rwssmg_gd:="@(#)$Id: rwssmg.gd,v 4.14 2002/04/15 10:05:16 sal Exp $";
DeclareAttribute("ReducedConfluentRewritingSystem",IsSemigroup);
DeclareAttribute("FreeMonoidOfRewritingSystem",IsRewritingSystem);
DeclareAttribute("FamilyForRewritingSystem",IsRewritingSystem);
DeclareAttribute("FreeSemigroupOfRewritingSystem",IsRewritingSystem);
DeclareGlobalFunction("ReduceLetterRepWordsRewSys");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/rwssmg.gd"

#F  file="lib/kbsemi.gd" crc=45245806
RANK_FILTER_LIST  := [ 39844974, 3, 1, 0, 1, 0, 12583020, 6, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/kbsemi.gd", 45245806 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/kbsemi.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/kbsemi.gd");
elif COM_RESULT = 3  then
Revision.kbsemi_gd:="@(#)$Id: kbsemi.gd,v 4.19 2002/04/15 10:04:54 sal Exp $";
DeclareInfoClass("InfoKnuthBendix");
DeclareCategory("IsKnuthBendixRewritingSystem",IsRewritingSystem);
DeclareOperation("KnuthBendixRewritingSystem",[IsFamily,IsOrdering]);
DeclareGlobalFunction("CreateKnuthBendixRewritingSystem");
DeclareGlobalFunction("MakeKnuthBendixRewritingSystemConfluent");
BindGlobal("GAPKB_REW",rec(name:="GAP library Knuth-Bendix"));
KB_REW:=GAPKB_REW;
DeclareGlobalFunction("ReduceWordUsingRewritingSystem");
DeclareAttribute("TzRules",IsKnuthBendixRewritingSystem);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/kbsemi.gd"

#F  file="lib/tcsemi.gd" crc=37787445
RANK_FILTER_LIST  := [ 10878092, 22, 1, 0, 1, 0, 25166007, 25, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/tcsemi.gd", 37787445 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/tcsemi.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/tcsemi.gd");
elif COM_RESULT = 3  then
Revision.tcsemi_gd:="@(#)$Id: tcsemi.gd,v 4.8 2002/04/15 10:05:24 sal Exp $";
DeclareAttribute("CosetTableOfFpSemigroup",IsRightMagmaCongruence);
SemigroupTCInitialTableSize:=5000000;
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/tcsemi.gd"

#F  file="lib/semirel.gd" crc=-46776596
RANK_FILTER_LIST  := [ 1, 0, 1, 0, 1, 0, 33555050, 24, 993, 2, 1, 0, 1, 0, 1, 
  0, 1, 0, 44111372, 24, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 40341760, 24, 993, 
  2, 1, 0, 1, 0, 1, 0, 1, 0, 25263312, 24, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 
  50319045, 24, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 67055443, 24, 993, 2, 1, 0, 
  1, 0, 1, 0, 1, 0, 67001014, 24, 993, 2, 1, 0, 39747165, 6, 1, 0, 1, 0, 
  66674440, 9, 993, 2, 1, 0, 39747165, 6, 1, 0, 1, 0, 65369104, 9, 993, 2, 1, 
  0, 39747165, 6, 1, 0, 1, 0, 60147760, 9, 993, 2, 1, 0, 39747165, 6, 1, 0, 
  1, 0, 39264304, 9, 993, 2, 1, 0, 39747165, 6, 1, 0, 1, 0, 22839359, 9, 993, 
  2, 1, 0, 39747165, 6, 1, 0, 1, 0, 24248458, 9, 993, 2, 1, 0, 1, 0, 1, 0, 1, 
  0, 48496883, 11, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 0, 
  29884854, 16, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 0, 
  59769675, 16, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 0, 
  52429478, 16, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 0, 
  37749084, 16, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 0, 
  8389256, 16, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 16777519, 11, 993, 2, 1, 0, 1, 
  0, 1, 0, 1, 0, 33555005, 11, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 138, 11, 993, 
  2, 1, 0, 1, 0, 1, 0, 1, 0, 25268127, 11, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 
  42657673, 11, 993, 2, 1, 0, 1, 0, 1, 0, 1, 0, 43473148, 11, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/semirel.gd", -46776596 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/semirel.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/semirel.gd");
elif COM_RESULT = 3  then
Revision.semirel_gd:="@(#)$Id: semirel.gd,v 4.19.2.1 2002/10/03 14:22:55 gap Exp $";
DeclareProperty("IsGreensRelation",IsEquivalenceRelation);
DeclareProperty("IsGreensRRelation",IsEquivalenceRelation);
DeclareProperty("IsGreensLRelation",IsEquivalenceRelation);
DeclareProperty("IsGreensJRelation",IsEquivalenceRelation);
DeclareProperty("IsGreensHRelation",IsEquivalenceRelation);
DeclareProperty("IsGreensDRelation",IsEquivalenceRelation);
DeclareAttribute("AssociatedSemigroup",IsEquivalenceRelation);
DeclareProperty("IsGreensClass",IsEquivalenceClass);
DeclareProperty("IsGreensRClass",IsEquivalenceClass);
DeclareProperty("IsGreensLClass",IsEquivalenceClass);
DeclareProperty("IsGreensJClass",IsEquivalenceClass);
DeclareProperty("IsGreensHClass",IsEquivalenceClass);
DeclareProperty("IsGreensDClass",IsEquivalenceClass);
DeclareAttribute("AssociatedSemigroup",IsGreensClass);
DeclareAttribute("InternalRepresentative",IsGreensClass);
DeclareAttribute("GreensRRelation",IsSemigroup);
DeclareAttribute("GreensLRelation",IsSemigroup);
DeclareAttribute("GreensJRelation",IsSemigroup);
DeclareAttribute("GreensDRelation",IsSemigroup);
DeclareAttribute("GreensHRelation",IsSemigroup);
DeclareOperation("GreensRClasses",[IsSemigroup]);
DeclareOperation("GreensLClasses",[IsSemigroup]);
DeclareOperation("GreensJClasses",[IsSemigroup]);
DeclareOperation("GreensDClasses",[IsSemigroup]);
DeclareOperation("GreensHClasses",[IsSemigroup]);
DeclareOperation("GreensHClasses",[IsGreensClass]);
DeclareOperation("GreensRClassOfElement",[IsSemigroup,IsObject]);
DeclareOperation("GreensLClassOfElement",[IsSemigroup,IsObject]);
DeclareOperation("GreensDClassOfElement",[IsSemigroup,IsObject]);
DeclareOperation("GreensJClassOfElement",[IsSemigroup,IsObject]);
DeclareOperation("GreensHClassOfElement",[IsSemigroup,IsObject]);
DeclareOperation("IsGreensLessThanOrEqual",[IsGreensClass,IsGreensClass]);
DeclareAttribute("RClassOfHClass",IsGreensHClass);
DeclareAttribute("LClassOfHClass",IsGreensHClass);
DeclareAttribute("GroupHClassOfGreensDClass",IsGreensDClass);
DeclareProperty("IsRegularDClass",IsGreensDClass);
DeclareProperty("IsGroupHClass",IsGreensHClass);
DeclareAttribute("EggBoxOfDClass",IsGreensDClass);
DeclareGlobalFunction("DisplayEggBoxOfDClass");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/semirel.gd"

#F  file="lib/semitran.gd" crc=-92969353
RANK_FILTER_LIST  := [ 49544677, 11, 40388547, 10, 22824344, 16, 1, 0, 1, 0, 
  41733130, 19, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 0, 
  32711783, 16, 993, 2, 1, 0, 49544677, 11, 40388547, 10, 22824344, 16, 1, 0, 
  1, 0, 65422573, 19, 993, 2, 1, 0, 49544677, 11, 49544677, 11, 1, 0, 1, 0, 
  63735274, 16, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/semitran.gd", -92969353 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/semitran.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/semitran.gd");
elif COM_RESULT = 3  then
Revision.semitran_gd:="@(#)$Id: semitran.gd,v 4.7 2002/04/15 10:05:22 sal Exp $";
DeclareSynonymAttr("IsTransformationSemigroup",IsSemigroup and IsTransformationCollection);
DeclareProperty("IsTransformationMonoid",IsTransformationSemigroup);
DeclareProperty("IsFullTransformationSemigroup",IsSemigroup);
DeclareGlobalFunction("FullTransformationSemigroup");
DeclareAttribute("DegreeOfTransformationSemigroup",IsTransformationSemigroup);
DeclareAttribute("IsomorphismTransformationSemigroup",IsSemigroup);
DeclareOperation("HomomorphismTransformationSemigroup",[IsSemigroup,IsRightMagmaCongruence]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/semitran.gd"

#F  file="lib/reesmat.gd" crc=-60133833
RANK_FILTER_LIST  := [ 49544677, 11, 49544677, 11, 1, 0, 1, 0, 60360676, 16, 
  993, 2, 1, 0, 49544677, 11, 13117232, 9, 62661908, 15, 1, 0, 1, 0, 
  52470877, 18, 993, 2, 1, 0, 49544677, 11, 26234463, 8, 8670260, 12, 1, 0, 
  1, 0, 37832842, 17, 993, 2, 1, 0, 49544677, 11, 13117232, 9, 62661908, 15, 
  1, 0, 1, 0, 8556772, 18, 993, 2, 1, 0, 49544677, 11, 26234463, 8, 8670260, 
  12, 1, 0, 1, 0, 17113511, 17, 993, 2, 1, 0, 49544677, 11, 13117232, 9, 
  62661908, 15, 1, 0, 1, 0, 34226989, 18, 993, 2, 1, 0, 49544677, 11, 
  26234463, 8, 8670260, 12, 1, 0, 1, 0, 1344106, 17, 993, 2, 1, 0, 49544677, 
  11, 13117232, 9, 62661908, 15, 1, 0, 1, 0, 2687219, 18, 993, 2, 1, 0, 
  49544677, 11, 26234463, 8, 8670260, 12, 1, 0, 1, 0, 5374405, 17, 993, 2, 1, 
  0, 53610488, 5, 1, 0, 1, 0, 10748777, 8, 993, 2, 1, 0, 40113056, 4, 1, 0, 
  1, 0, 21496561, 7, 993, 2, 1, 0, 53610488, 5, 1, 0, 1, 0, 42992129, 8, 993, 
  2, 1, 0, 40113056, 4, 1, 0, 1, 0, 18875346, 7, 993, 2, 1, 0, 53610488, 5, 
  1, 0, 1, 0, 37749699, 8, 993, 2, 1, 0, 40113056, 4, 1, 0, 1, 0, 8389526, 7, 
  993, 2, 1, 0, 40113056, 4, 1, 0, 1, 0, 33555125, 7, 993, 2, 1, 0, 1, 0, 1, 
  0, 1, 0, 378, 11, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/reesmat.gd", -60133833 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/reesmat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/reesmat.gd");
elif COM_RESULT = 3  then
Revision.reesmat_gd:="@(#)$Id: reesmat.gd,v 4.12 2002/04/15 10:05:14 sal Exp $";
DeclareGlobalFunction("ReesMatrixSemigroup");
DeclareGlobalFunction("ReesZeroMatrixSemigroup");
DeclareAttribute("IsomorphismReesMatrixSemigroup",IsSemigroup);
DeclareCategory("IsReesMatrixSemigroupElement",IsAssociativeElement);
DeclareCategory("IsReesZeroMatrixSemigroupElement",IsMultiplicativeElement);
DeclareCategoryCollections("IsReesMatrixSemigroupElement");
DeclareCategoryCollections("IsReesZeroMatrixSemigroupElement");
DeclareGlobalFunction("ReesMatrixSemigroupElement");
DeclareGlobalFunction("ReesZeroMatrixSemigroupElement");
DeclareSynonymAttr("IsSubsemigroupReesMatrixSemigroup",IsSemigroup and IsReesMatrixSemigroupElementCollection);
DeclareSynonymAttr("IsSubsemigroupReesZeroMatrixSemigroup",IsSemigroup and IsReesZeroMatrixSemigroupElementCollection);
DeclareSynonymAttr("IsReesMatrixSemigroup",IsSubsemigroupReesMatrixSemigroup and IsWholeFamily);
DeclareAttribute("SandwichMatrixOfReesMatrixSemigroup",IsSubsemigroupReesMatri\
xSemigroup);
DeclareAttribute("SandwichMatrixOfReesZeroMatrixSemigroup",IsSubsemigroupReesZ\
eroMatrixSemigroup);
DeclareAttribute("RowsOfReesMatrixSemigroup",IsSubsemigroupReesMatrixSemigroup\
);
DeclareAttribute("RowsOfReesZeroMatrixSemigroup",IsSubsemigroupReesZeroMatrixS\
emigroup);
DeclareAttribute("ColumnsOfReesMatrixSemigroup",IsSubsemigroupReesMatrixSemigr\
oup);
DeclareAttribute("ColumnsOfReesZeroMatrixSemigroup",IsSubsemigroupReesZeroMatr\
ixSemigroup);
DeclareAttribute("UnderlyingSemigroupOfReesMatrixSemigroup",IsSubsemigroupReesMatrixSemigroup);
DeclareAttribute("UnderlyingSemigroupOfReesZeroMatrixSemigroup",IsSubsemigroupReesZeroMatrixSemigroup);
DeclareAttribute("RowIndexOfReesMatrixSemigroupElement",IsReesMatrixSemigroupElement);
DeclareAttribute("RowIndexOfReesZeroMatrixSemigroupElement",IsReesZeroMatrixSemigroupElement);
DeclareAttribute("ColumnIndexOfReesMatrixSemigroupElement",IsReesMatrixSemigroupElement);
DeclareAttribute("ColumnIndexOfReesZeroMatrixSemigroupElement",IsReesZeroMatrixSemigroupElement);
DeclareAttribute("UnderlyingElementOfReesMatrixSemigroupElement",IsReesMatrixSemigroupElement);
DeclareAttribute("UnderlyingElementOfReesZeroMatrixSemigroupElement",IsReesZeroMatrixSemigroupElement);
DeclareSynonymAttr("IsReesZeroMatrixSemigroup",IsSubsemigroupReesZeroMatrixSemigroup and IsWholeFamily);
DeclareProperty("ReesZeroMatrixSemigroupElementIsZero",IsReesZeroMatrixSemigroupElement);
DeclareAttribute("AssociatedReesMatrixSemigroupOfDClass",IsGreensDClass);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/reesmat.gd"

#F  file="lib/semiquo.gd" crc=-73638338
RANK_FILTER_LIST  := [ 45106121, 14, 1, 0, 1, 0, 1102825, 17, 993, 2, 1, 0, 
  45106121, 14, 1, 0, 1, 0, 47311047, 17, 993, 2, 1, 0, 45106121, 14, 1, 0, 
  1, 0, 5510693, 17, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/semiquo.gd", -73638338 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/semiquo.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/semiquo.gd");
elif COM_RESULT = 3  then
Revision.semiquo_gd:="@(#)$Id: semiquo.gd,v 4.9 2002/04/15 10:05:22 sal Exp $";
DeclareCategory("IsQuotientSemigroup",IsSemigroup);
DeclareGlobalFunction("HomomorphismQuotientSemigroup");
DeclareAttribute("QuotientSemigroupPreimage",IsQuotientSemigroup);
DeclareAttribute("QuotientSemigroupCongruence",IsQuotientSemigroup);
DeclareAttribute("QuotientSemigroupHomomorphism",IsQuotientSemigroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/semiquo.gd"

#F  file="lib/pager.gd" crc=120998950
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/pager.gd", 120998950 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/pager.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/pager.gd");
elif COM_RESULT = 3  then
Revision.pager_gd:="@(#)$Id: pager.gd,v 1.3 2002/04/15 10:05:11 sal Exp $";
DeclareGlobalFunction("Pager");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/pager.gd"

#F  file="lib/helpbase.gd" crc=100378686
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/helpbase.gd", 100378686 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/helpbase.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/helpbase.gd");
elif COM_RESULT = 3  then
Revision.helpbase_gd:="@(#)$Id: helpbase.gd,v 1.3 2002/04/15 10:04:53 sal Exp $";
DeclareGlobalFunction("MATCH_BEGIN");
DeclareGlobalFunction("MATCH_BEGIN_COUNT");
DeclareGlobalFunction("FILLED_LINE");
DeclareGlobalFunction("SIMPLE_STRING");
DeclareGlobalVariable("HELP_KNOWN_BOOKS");
DeclareGlobalFunction("HELP_ADD_BOOK");
DeclareGlobalVariable("HELP_BOOK_HANDLER");
DeclareGlobalVariable("HELP_BOOKS_INFO");
DeclareGlobalFunction("HELP_BOOK_INFO");
DeclareGlobalFunction("HELP_SHOW_BOOKS");
DeclareGlobalFunction("HELP_SHOW_CHAPTERS");
DeclareGlobalFunction("HELP_SHOW_SECTIONS");
DeclareGlobalFunction("HELP_PRINT_MATCH");
DeclareGlobalFunction("HELP_SHOW_PREV_CHAPTER");
DeclareGlobalFunction("HELP_SHOW_NEXT_CHAPTER");
DeclareGlobalFunction("HELP_SHOW_PREV");
DeclareGlobalFunction("HELP_SHOW_NEXT");
DeclareGlobalFunction("HELP_SHOW_WELCOME");
DeclareGlobalFunction("HELP_GET_MATCHES");
DeclareGlobalFunction("HELP_SHOW_MATCHES");
DeclareGlobalFunction("HELP_SHOW_FROM_LAST_TOPICS");
DeclareGlobalFunction("HELP_LAB_FILE");
DeclareGlobalVariable("HELP_BOOK_RING");
DeclareGlobalVariable("HELP_TOPIC_RING");
DeclareGlobalVariable("HELP_LAST");
DeclareGlobalFunction("HELP");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/helpbase.gd"

#F  file="lib/helpview.gd" crc=8491351
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/helpview.gd", 8491351 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/helpview.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/helpview.gd");
elif COM_RESULT = 3  then
Revision.helpview_gd:="@(#)$Id: helpview.gd,v 1.2 2002/04/15 10:04:53 sal Exp $";
DeclareGlobalVariable("HELP_VIEWER_INFO");
DeclareGlobalFunction("FindWindowId");
DeclareGlobalFunction("SetHelpViewer");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/helpview.gd"

#F  file="lib/helpt2t.gd" crc=-110828206
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/helpt2t.gd", -110828206 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/helpt2t.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/helpt2t.gd");
elif COM_RESULT = 3  then
Revision.helpt2t_gd:="@(#)$Id: helpt2t.gd,v 1.2 2001/07/27 16:28:54 gap Exp $";
DeclareGlobalFunction("HELP_PRINT_SECTION_TEXT");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/helpt2t.gd"

#F  file="lib/helpdef.gd" crc=-55952681
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/helpdef.gd", -55952681 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/helpdef.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/helpdef.gd");
elif COM_RESULT = 3  then
Revision.helpdef_gd:="@(#)$Id: helpdef.gd,v 1.2 2002/04/15 10:04:53 sal Exp $";
DeclareGlobalFunction("GapLibToc2Gap");
DeclareGlobalVariable("HELP_CHAPTER_BEGIN");
DeclareGlobalVariable("HELP_SECTION_BEGIN");
DeclareGlobalVariable("HELP_FAKECHAP_BEGIN");
DeclareGlobalVariable("HELP_PRELCHAPTER_BEGIN");
DeclareGlobalFunction("HELP_CHAPTER_INFO");
DeclareGlobalFunction("HELP_PRINT_SECTION_URL");
DeclareGlobalFunction("HELP_PRINT_SECTION_MAC_IC_URL");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/helpdef.gd"

#F  file="lib/ctbl.gd" crc=-98973005
RANK_FILTER_LIST  := [ 37255093, 3, 1, 0, 1, 0, 29606213, 6, 993, 2, 1, 0, 
  37255093, 3, 1, 0, 1, 0, 59211433, 6, 993, 2, 1, 0, 60816854, 16, 60816854, 
  16, 1, 0, 1, 0, 51312994, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 
  0, 1, 0, 35516116, 21, 993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 
  0, 3923320, 21, 993, 2, 1, 0, 7401306, 3, 1, 0, 1, 0, 7845647, 6, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 15690301, 21, 993, 2, 1, 0, 
  56126751, 1, 1, 0, 1, 0, 62759185, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 
  0, 49710004, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 64619279, 4, 993, 2, 
  1, 0, 56126751, 1, 1, 0, 1, 0, 57147500, 4, 993, 2, 1, 0, 56126751, 1, 1, 
  0, 1, 0, 27263264, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 41943118, 4, 
  993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 16777324, 4, 993, 2, 1, 0, 56126751, 
  1, 1, 0, 1, 0, 33554615, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 318, 4, 
  993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 603, 4, 993, 2, 1, 0, 56126751, 1, 
  1, 0, 1, 0, 56131808, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 34176460, 
  4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 57373683, 4, 993, 2, 1, 0, 
  56126751, 1, 1, 0, 1, 0, 36661170, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 
  0, 62344063, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 40583887, 4, 993, 2, 
  1, 0, 56126751, 1, 1, 0, 1, 0, 14057902, 4, 993, 2, 1, 0, 56126751, 1, 1, 
  0, 1, 0, 28114811, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 56228629, 4, 
  993, 2, 1, 0, 18627547, 2, 1, 0, 1, 0, 45347386, 5, 993, 2, 1, 0, 37255093, 
  3, 1, 0, 1, 0, 23584900, 6, 993, 2, 1, 0, 37255093, 3, 1, 0, 1, 0, 
  47168807, 6, 993, 2, 1, 0, 37255093, 3, 1, 0, 1, 0, 27228702, 6, 993, 2, 1, 
  0, 37255093, 3, 1, 0, 1, 0, 54456411, 6, 993, 2, 1, 0, 37255093, 3, 1, 0, 
  1, 0, 41802950, 6, 993, 2, 1, 0, 37255093, 3, 1, 0, 1, 0, 16496988, 6, 993, 
  2, 1, 0, 37255093, 3, 1, 0, 1, 0, 32993943, 6, 993, 2, 1, 0, 37255093, 3, 
  1, 0, 1, 0, 65986893, 6, 993, 2, 1, 0, 37255093, 3, 1, 0, 1, 0, 64864874, 
  6, 993, 2, 1, 0, 37255093, 3, 1, 0, 1, 0, 62619876, 6, 993, 2, 1, 0, 
  37255093, 3, 1, 0, 1, 0, 58130840, 6, 993, 2, 1, 0, 37255093, 3, 1, 0, 1, 
  0, 49152768, 6, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 31195664, 4, 993, 2, 
  1, 0, 7401306, 3, 1, 0, 1, 0, 62390335, 6, 993, 2, 1, 0, 37255093, 3, 1, 0, 
  1, 0, 57671758, 6, 993, 2, 1, 0, 18627547, 2, 1, 0, 1, 0, 48234604, 5, 993, 
  2, 1, 0, 37255093, 3, 1, 0, 1, 0, 29360296, 6, 993, 2, 1, 0, 56126751, 1, 
  1, 0, 1, 0, 58720559, 4, 993, 2, 1, 0, 56126751, 1, 1, 0, 1, 0, 50332206, 
  4, 993, 2, 1, 0, 37255093, 3, 1, 0, 1, 0, 33554540, 6, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/ctbl.gd", -98973005 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/ctbl.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/ctbl.gd");
elif COM_RESULT = 3  then
Revision.ctbl_gd:="@(#)$Id: ctbl.gd,v 4.81 2002/04/15 10:04:31 sal Exp $";
DeclareInfoClass("InfoCharacterTable");
DeclareCategory("IsNearlyCharacterTable",IsObject);
DeclareCategory("IsCharacterTable",IsNearlyCharacterTable);
DeclareCategory("IsOrdinaryTable",IsCharacterTable);
DeclareCategory("IsBrauerTable",IsCharacterTable);
DeclareCategory("IsCharacterTableInProgress",IsNearlyCharacterTable);
DeclareGlobalVariable("NearlyCharacterTablesFamily");
BindGlobal("SupportedCharacterTableInfo",[]);
BindGlobal("DeclareAttributeSuppCT",COM_FUN(1));
BindGlobal("DeclarePropertySuppCT",COM_FUN(2));
DeclareAttributeSuppCT("UnderlyingGroup",IsOrdinaryTable,[]);
DeclareAttributeSuppCT("ConjugacyClasses",IsOrdinaryTable,["class"]);
DeclareAttributeSuppCT("IdentificationOfConjugacyClasses",IsOrdinaryTable,["class"]);
DeclareGlobalFunction("ConnectGroupAndCharacterTable");
DeclareOperation("CompatibleConjugacyClasses",[IsGroup,IsList,IsOrdinaryTable]);
DeclareOperation("CompatibleConjugacyClasses",[IsGroup,IsList,IsOrdinaryTable,IsRecord]);
DeclareOperation("CompatibleConjugacyClasses",[IsOrdinaryTable]);
DeclareOperation("CompatibleConjugacyClasses",[IsOrdinaryTable,IsRecord]);
DeclareGlobalFunction("CompatibleConjugacyClassesDefault");
DeclareAttribute("CharacterDegrees",IsGroup);
DeclareOperation("CharacterDegrees",[IsGroup,IsInt]);
DeclareAttributeSuppCT("CharacterDegrees",IsNearlyCharacterTable,[]);
InstallIsomorphismMaintenance(CharacterDegrees,IsGroup and HasCharacterDegrees,IsGroup);
DeclareAttribute("Irr",IsGroup);
DeclareOperation("Irr",[IsGroup,IsInt]);
DeclareAttributeSuppCT("Irr",IsNearlyCharacterTable,["class","character"]);
DeclareAttribute("LinearCharacters",IsGroup);
DeclareOperation("LinearCharacters",[IsGroup,IsInt]);
DeclareAttributeSuppCT("LinearCharacters",IsNearlyCharacterTable,["class"]);
DeclareAttribute("IBr",IsBrauerTable);
DeclareOperation("IBr",[IsGroup,IsPosInt]);
DeclareAttributeSuppCT("OrdinaryCharacterTable",IsGroup,[]);
DeclareAttributeSuppCT("AbelianInvariants",IsNearlyCharacterTable,[]);
DeclareAttributeSuppCT("CommutatorLength",IsNearlyCharacterTable,[]);
DeclareAttributeSuppCT("Exponent",IsNearlyCharacterTable,[]);
DeclarePropertySuppCT("IsAbelian",IsNearlyCharacterTable);
DeclarePropertySuppCT("IsCyclic",IsNearlyCharacterTable);
DeclarePropertySuppCT("IsFinite",IsNearlyCharacterTable);
DeclareAttributeSuppCT("NrConjugacyClasses",IsNearlyCharacterTable,[]);
DeclareAttributeSuppCT("Size",IsNearlyCharacterTable,[]);
DeclarePropertySuppCT("IsMonomialCharacterTable",IsNearlyCharacterTable);
DeclarePropertySuppCT("IsNilpotentCharacterTable",IsNearlyCharacterTable);
DeclarePropertySuppCT("IsPerfectCharacterTable",IsNearlyCharacterTable);
DeclarePropertySuppCT("IsSimpleCharacterTable",IsNearlyCharacterTable);
DeclarePropertySuppCT("IsSolvableCharacterTable",IsNearlyCharacterTable);
DeclarePropertySuppCT("IsSupersolvableCharacterTable",IsNearlyCharacterTable);
InstallTrueMethod(IsAbelian,IsOrdinaryTable and IsCyclic);
InstallTrueMethod(IsMonomialCharacterTable,IsOrdinaryTable and IsSupersolvableCharacterTable and IsFinite);
InstallTrueMethod(IsNilpotentCharacterTable,IsOrdinaryTable and IsAbelian);
InstallTrueMethod(IsPerfectCharacterTable,IsOrdinaryTable and IsSimpleCharacterTable);
InstallTrueMethod(IsSolvableCharacterTable,IsOrdinaryTable and IsSupersolvableCharacterTable);
InstallTrueMethod(IsSolvableCharacterTable,IsOrdinaryTable and IsMonomialCharacterTable);
InstallTrueMethod(IsSupersolvableCharacterTable,IsOrdinaryTable and IsNilpotentCharacterTable);
DeclareGlobalFunction("CharacterTable_IsNilpotentFactor");
DeclareGlobalFunction("CharacterTable_IsNilpotentNormalSubgroup");
DeclareAttributeSuppCT("OrdersClassRepresentatives",IsNearlyCharacterTable,["class"]);
DeclareAttributeSuppCT("SizesCentralizers",IsNearlyCharacterTable,["class"]);
DeclareAttributeSuppCT("SizesConjugacyClasses",IsNearlyCharacterTable,["class"]);
DeclareAttributeSuppCT("AutomorphismsOfTable",IsNearlyCharacterTable,["class"]);
DeclareAttributeSuppCT("UnderlyingCharacteristic",IsNearlyCharacterTable,[]);
DeclareAttributeSuppCT("ClassNames",IsNearlyCharacterTable,["class"]);
DeclareOperation("ClassNames",[IsNearlyCharacterTable,IsString]);
DeclareAttributeSuppCT("CharacterNames",IsNearlyCharacterTable,["character"]);
DeclareAttributeSuppCT("ClassParameters",IsNearlyCharacterTable,["class"]);
DeclareAttributeSuppCT("CharacterParameters",IsNearlyCharacterTable,["character"]);
DeclareAttributeSuppCT("Identifier",IsNearlyCharacterTable,[]);
DeclareGlobalVariable("LARGEST_IDENTIFIER_NUMBER","list containing the largest identifier of an ordinary character table in the\
 current session");
InstallFlushableValue(LARGEST_IDENTIFIER_NUMBER,[0]);
DeclareAttributeSuppCT("InfoText",IsNearlyCharacterTable,"mutable",[]);
DeclareAttribute("InverseClasses",IsNearlyCharacterTable);
DeclareAttributeSuppCT("RealClasses",IsNearlyCharacterTable,["class"]);
DeclareOperation("ClassOrbit",[IsNearlyCharacterTable,IsPosInt]);
DeclareAttribute("ClassRoots",IsCharacterTable);
DeclareAttribute("ClassPositionsOfNormalSubgroups",IsOrdinaryTable);
DeclareAttribute("ClassPositionsOfMaximalNormalSubgroups",IsOrdinaryTable);
DeclareOperation("ClassPositionsOfAgemo",[IsOrdinaryTable,IsPosInt]);
DeclareAttribute("ClassPositionsOfCentre",IsOrdinaryTable);
DeclareAttributeSuppCT("ClassPositionsOfDirectProductDecompositions",IsOrdinaryTable,["class"]);
DeclareOperation("ClassPositionsOfDirectProductDecompositions",[IsOrdinaryTable,IsList]);
DeclareAttribute("ClassPositionsOfDerivedSubgroup",IsOrdinaryTable);
DeclareAttribute("ClassPositionsOfElementaryAbelianSeries",IsOrdinaryTable);
DeclareAttribute("ClassPositionsOfFittingSubgroup",IsOrdinaryTable);
DeclareGlobalFunction("CharacterTable_UpperCentralSeriesFactor");
DeclareAttribute("ClassPositionsOfLowerCentralSeries",IsOrdinaryTable);
DeclareAttribute("ClassPositionsOfUpperCentralSeries",IsOrdinaryTable);
DeclareAttribute("ClassPositionsOfSolvableResiduum",IsOrdinaryTable);
DeclareAttribute("ClassPositionsOfSupersolvableResiduum",IsOrdinaryTable);
DeclareOperation("ClassPositionsOfNormalClosure",[IsOrdinaryTable,IsHomogeneousList and IsCyclotomicCollection]);
DeclareOperation("PrimeBlocks",[IsOrdinaryTable,IsPosInt]);
DeclareOperation("PrimeBlocksOp",[IsOrdinaryTable,IsPosInt]);
DeclareAttributeSuppCT("ComputedPrimeBlockss",IsOrdinaryTable,"mutable",["character"]);
DeclareGlobalFunction("SameBlock");
DeclareAttributeSuppCT("BlocksInfo",IsNearlyCharacterTable,"mutable",["character"]);
DeclareAttribute("DecompositionMatrix",IsBrauerTable);
DeclareOperation("DecompositionMatrix",[IsBrauerTable,IsPosInt]);
DeclareGlobalFunction("LaTeXStringDecompositionMatrix");
DeclareOperation("IsPSolvableCharacterTable",[IsOrdinaryTable,IsInt]);
DeclareOperation("IsPSolvableCharacterTableOp",[IsOrdinaryTable,IsInt]);
DeclareAttributeSuppCT("ComputedIsPSolvableCharacterTables",IsOrdinaryTable,"mutable",[]);
DeclareGlobalFunction("IsClassFusionOfNormalSubgroup");
DeclareOperation("Indicator",[IsNearlyCharacterTable,IsPosInt]);
DeclareOperation("Indicator",[IsNearlyCharacterTable,IsList,IsPosInt]);
DeclareOperation("IndicatorOp",[IsNearlyCharacterTable,IsList,IsPosInt]);
DeclareAttributeSuppCT("ComputedIndicators",IsCharacterTable,"mutable",["character"]);
DeclareGlobalFunction("NrPolyhedralSubgroups");
DeclareOperation("ClassMultiplicationCoefficient",[IsOrdinaryTable,IsPosInt,IsPosInt,IsPosInt]);
DeclareGlobalFunction("MatClassMultCoeffsCharTable");
DeclareGlobalFunction("ClassStructureCharTable");
DeclareOperation("CharacterTable",[IsGroup]);
DeclareOperation("CharacterTable",[IsGroup,IsInt]);
DeclareOperation("CharacterTable",[IsOrdinaryTable,IsInt]);
DeclareOperation("CharacterTable",[IsString]);
DeclareOperation("BrauerTable",[IsOrdinaryTable,IsPosInt]);
DeclareOperation("BrauerTable",[IsGroup,IsPosInt]);
DeclareOperation("BrauerTableOp",[IsOrdinaryTable,IsPosInt]);
DeclareAttribute("ComputedBrauerTables",IsOrdinaryTable,"mutable");
DeclareGlobalFunction("CharacterTableRegular");
DeclareGlobalFunction("ConvertToCharacterTable");
DeclareGlobalFunction("ConvertToCharacterTableNC");
DeclareGlobalFunction("ConvertToLibraryCharacterTableNC");
DeclareAttribute("DisplayOptions",IsNearlyCharacterTable);
DeclareGlobalFunction("CharacterTableDisplayStringEntryDefault");
DeclareGlobalFunction("CharacterTableDisplayStringEntryDataDefault");
DeclareGlobalFunction("CharacterTableDisplayPrintLegendDefault");
DeclareGlobalFunction("PrintCharacterTable");
DeclareOperation("CharacterTableDirectProduct",[IsNearlyCharacterTable,IsNearlyCharacterTable]);
DeclareGlobalFunction("CharacterTableHeadOfFactorGroupByFusion");
DeclareOperation("CharacterTableFactorGroup",[IsNearlyCharacterTable,IsHomogeneousList]);
DeclareOperation("CharacterTableIsoclinic",[IsNearlyCharacterTable]);
DeclareOperation("CharacterTableIsoclinic",[IsNearlyCharacterTable,IsList and IsCyclotomicCollection]);
DeclareOperation("CharacterTableIsoclinic",[IsNearlyCharacterTable,IsList and IsCyclotomicCollection,IsPosInt]);
DeclareGlobalFunction("CharacterTableOfNormalSubgroup");
DeclareGlobalFunction("CharacterTableOfTypeGS3");
DeclareGlobalFunction("PossibleActionsForTypeGS3");
DeclareGlobalFunction("CharacterTableOfTypeMGA");
DeclareGlobalFunction("PossibleActionsForTypeMGA");
DeclareGlobalFunction("PermutationToSortCharacters");
DeclareOperation("CharacterTableWithSortedCharacters",[IsNearlyCharacterTable]);
DeclareOperation("CharacterTableWithSortedCharacters",[IsNearlyCharacterTable,IsPerm]);
DeclareOperation("SortedCharacters",[IsNearlyCharacterTable,IsHomogeneousList]);
DeclareOperation("SortedCharacters",[IsNearlyCharacterTable,IsHomogeneousList,IsString]);
DeclareGlobalFunction("PermutationToSortClasses");
DeclareOperation("CharacterTableWithSortedClasses",[IsNearlyCharacterTable]);
DeclareOperation("CharacterTableWithSortedClasses",[IsNearlyCharacterTable,IsString]);
DeclareOperation("CharacterTableWithSortedClasses",[IsNearlyCharacterTable,IsPerm]);
DeclareGlobalFunction("SortedCharacterTable");
DeclareAttributeSuppCT("ClassPermutation",IsNearlyCharacterTable,["class"]);
DeclareAttribute("NormalSubgroupClassesInfo",IsOrdinaryTable,"mutable");
DeclareGlobalFunction("ClassPositionsOfNormalSubgroup");
DeclareGlobalFunction("NormalSubgroupClasses");
DeclareGlobalFunction("FactorGroupNormalSubgroupClasses");
BindGlobal("SupportedLibraryTableComponents",["basicset","brauertree","decinv","defect","factorblocks","indicator","cliffordTable","construction","projectives","isSimple","extInfo","factors","tomfusion","tomidentifier",]);
DeclareRepresentation("IsLibraryCharacterTableRep",IsAttributeStoringRep,SupportedLibraryTableComponents);
DeclareRepresentation("IsGenericCharacterTableRep",IsNearlyCharacterTable,["domain","wholetable","classparam","charparam","specializedname","size","centralizers","orders","powermap","classtext","matrix","irreducibles","text",]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/ctbl.gd"

#F  file="lib/proto.gd" crc=81480373
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/proto.gd", 81480373 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/proto.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/proto.gd");
elif COM_RESULT = 3  then
Revision.proto_gd:="@(#)$Id: proto.gd,v 4.5 2002/04/15 10:05:13 sal Exp $";
DeclareGlobalFunction("ArithmeticElementCreator");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/proto.gd"

#F  file="lib/other.gd" crc=1028152
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/other.gd", 1028152 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/other.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/other.gd");
elif COM_RESULT = 3  then
Revision.other_gd:="@(#)$Id: other.gd,v 4.1 2000/08/17 10:58:08 ahulpke Exp $";
DeclareOperation("MagmaInputString",[IsObject,IsString]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/other.gd"

#F  file="lib/utils.gd" crc=65814714
RANK_FILTER_LIST  := [ 34353841, 6, 3197603, 7, 12790409, 7, 51161633, 7, 
  35215346, 7, 6643623, 7, 3717409, 9, 14869633, 13, 27731732, 19, 1, 0, 1, 
  0, 62345683, 28, 993, 2, 1, 0, 34353841, 6, 1598802, 7, 3197603, 7, 
  12790409, 7, 51161633, 7, 35215346, 7, 6643623, 7, 49544677, 11, 3717409, 
  9, 14869633, 13, 11766330, 26, 1, 0, 1, 0, 52818685, 39, 993, 2, 1, 0, 
  34353841, 6, 1598802, 7, 3197603, 7, 12790409, 7, 51161633, 7, 35215346, 7, 
  6643623, 7, 49544677, 11, 3717409, 9, 14869633, 13, 11766330, 26, 1, 0, 1, 
  0, 33763729, 39, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 
  67108415, 19, 60816854, 16, 56435049, 29, 1, 0, 1, 0, 53654631, 34, 993, 2, 
  1, 0, 1, 0, 1, 0, 1, 0, 50110885, 12, 993, 2, 1, 0, 3813249, 8, 61011969, 
  7, 65011203, 9, 67108415, 19, 60816854, 16, 56435049, 29, 1, 0, 1, 0, 
  66222803, 34, 993, 2, 1, 0, 3813249, 8, 61011969, 7, 65011203, 9, 67108415, 
  19, 60816854, 16, 56435049, 29, 1, 0, 1, 0, 63561596, 34, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 60013320, 31, 993, 2, 1, 0, 
  3813249, 8, 61011969, 7, 65011203, 9, 67108415, 19, 60816854, 16, 56435049, 
  29, 1, 0, 1, 0, 52916768, 42, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/utils.gd", 65814714 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/utils.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/utils.gd");
elif COM_RESULT = 3  then
Revision.utils_gd:="@(#)$Id: utils.gd,v 4.5 2002/04/15 10:05:26 sal Exp $";
DeclareGlobalFunction("UseSubsetRelationNC",[IsCollection,IsCollection]);
DeclareOperation("ImageUnderWord",[IsList,IsWordWithInverse,IsList,IsGroupHomo\
morphism]);
DeclareOperation("ImageUnderWord",[IsInt,IsWordWithInverse,IsList,IsGroupHomom\
orphism]);
DeclareSynonym("PrimeOfPGroup",PrimePGroup);
DeclareAttribute("UnderlyingField",IsVectorSpace);
DeclareAttribute("UnderlyingField",IsFFEMatrixGroup);
DeclareAttribute("MatrixDimension",IsAlgebra);
DeclareAttribute("MatrixDimension",IsFFEMatrixGroup);
DeclareAttribute("UnderlyingVectorSpace",IsAlgebra);
DeclareAttribute("UnderlyingVectorSpace",IsFFEMatrixGroup);
DeclareAttribute("UnderlyingVectorSpace",IsMatrix);
DeclareOperation("FixedPointSpace",[IsMatrix]);
DeclareOperation("PermMatrixGroup",[IsPermGroup]);
DeclareOperation("EnvelopingAlgebra",[IsFFEMatrixGroup]);
DeclareOperation("SpanOfMatrixGroup",[IsFFEMatrixGroup]);
DeclareProperty("IsUniformMatrixGroup",IsFFEMatrixGroup);
DeclareAttribute("PreBasis",IsVectorSpaceHomomorphism);
DeclareGlobalFunction("PullBack",[IsVectorSpaceHomomorphism,IsVector]);
DeclareGlobalFunction("ImageMat",[IsVectorSpaceHomomorphism,IsMatrix]);
DeclareGlobalFunction("ExtendToBasis",[IsVectorSpace,IsList]);
DeclareGlobalFunction("ProjectionOntoVectorSubspace",[IsVectorSpace,IsVectorSpace]);
DeclareGlobalFunction("IsomorphismToFullRowSpace",[IsVectorSpace]);
DeclareGlobalFunction("ProjectionOntoFullRowSpace",[IsVectorSpace,IsVectorSpace]);
DeclareGlobalFunction("RandomSubprod",[IsGroup,IsVectorSpace]);
DeclareGlobalFunction("RandomNormalSubproduct",[IsGroup,IsGroup]);
DeclareGlobalFunction("RandomCommutatorSubproduct",[IsGroup,IsGroup]);
DeclareProperty("IsCharacteristicMatrixPGroup",IsFFEMatrixGroup);
DeclareProperty("IsNoncharacteristicMatrixPGroup",IsFFEMatrixGroup);
DeclareOperation("SizeUpperBound",[IsGroup]);
DeclareGlobalFunction("DecomposeEltIntoPElts");
DeclareOperation("PGroupGeneratorsOfAbelianGroup",[IsGroup and IsAbelian]);
DeclareAttribute("GeneratorOfCyclicGroup",IsGroup and IsCyclic);
DeclareAttribute("IndependentGeneratorsOfAbelianMatrixGroup",IsGroup and IsFFEMatrixGroup and IsAbelian);
DeclareAttribute("IndependentGeneratorsOfAbelianMatrixGroup",IsAdditiveGroup);
DeclareGlobalFunction("IsInCenter",[IsGroup,IsAssociativeElement]);
DeclareGlobalFunction("UnipotentSubgroup",[IsInt,IsInt]);
DeclareOperation("NaturalHomomorphismByInvariantSubspace",[IsAlgebra,IsVectorSpace]);
DeclareOperation("NaturalHomomorphismByInvariantSubspace",[IsFFEMatrixGroup,IsVectorSpace]);
DeclareOperation("NaturalHomomorphismByFixedPointSubspace",[IsFFEMatrixGroup,IsVectorSpace]);
DeclareOperation("NaturalHomomorphismByHomVW",[IsFFEMatrixGroup,IsVectorSpace]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/utils.gd"

#F  file="lib/quogphom.gd" crc=-90809246
RANK_FILTER_LIST  := [ 67108475, 7, 67108475, 7, 1, 0, 1, 0, 20678719, 20, 
  993, 2, 1, 0, 38723632, 18, 1, 0, 1, 0, 53658141, 19, 993, 2, 1, 0, 
  38723632, 18, 1, 0, 1, 0, 40061794, 19, 993, 2, 1, 0, 38723632, 18, 1, 0, 
  1, 0, 52785285, 19, 993, 2, 1, 0, 38723632, 18, 1, 0, 1, 0, 19805863, 19, 
  993, 2, 1, 0, 38723632, 18, 1, 0, 1, 0, 12111594, 19, 993, 2, 1, 0, 
  67108475, 7, 67108475, 7, 1, 0, 1, 0, 24222195, 20, 993, 2, 1, 0, 38723632, 
  18, 1, 0, 1, 0, 48443397, 19, 993, 2, 1, 0, 38723632, 18, 1, 0, 1, 0, 
  29776922, 19, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/quogphom.gd", -90809246 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/quogphom.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/quogphom.gd");
elif COM_RESULT = 3  then
Revision.quogphom_gd:="@(#)$Id: quogphom.gd,v 4.12 2002/04/15 10:05:13 sal Exp $";
DeclareInfoClass("InfoQuotientGroup");
DeclareCategory("IsHomCoset",IsRightCoset and IsAssociativeElement and IsMultiplicativeElementWithInverse);
DeclareCategoryCollections("IsHomCoset");
InstallTrueMethod(IsAssociativeElement,IsHomCoset);
DeclareAttribute("HomCosetFamily",IsGroupHomomorphism);
DeclareCategory("IsHomCosetToPerm",IsHomCoset and IsPerm);
DeclareCategoryCollections("IsHomCosetToPerm");
DeclareRepresentation("IsHomCosetToPermRep",IsHomCosetToPerm and IsComponentObjectRep and IsAttributeStoringRep,["Homomorphism","SourceElt"]);
DeclareCategory("IsHomCosetToMatrix",IsHomCoset and IsMatrix and IsRingElementTable and IsOrdinaryMatrix);
DeclareCategoryCollections("IsHomCosetToMatrix");
DeclareRepresentation("IsHomCosetToMatrixRep",IsHomCosetToMatrix and IsComponentObjectRep and IsAttributeStoringRep,["Homomorphism","SourceElt"]);
DeclareCategory("IsHomCosetToFp",IsHomCoset and IsWordWithInverse);
DeclareCategoryCollections("IsHomCosetToFp");
DeclareRepresentation("IsHomCosetToFpRep",IsHomCosetToFp and IsComponentObjectRep and IsAttributeStoringRep,["Homomorphism","SourceElt"]);
DeclareCategory("IsHomCosetToTuple",IsHomCoset and IsTuple);
DeclareCategoryCollections("IsHomCosetToTuple");
DeclareRepresentation("IsHomCosetToTupleRep",IsHomCosetToTuple and IsComponentObjectRep and IsAttributeStoringRep,["Homomorphism","SourceElt"]);
DeclareCategory("IsHomCosetToAdditiveElt",IsHomCosetToMatrix);
DeclareCategoryCollections("IsHomCosetToAdditiveElt");
DeclareRepresentation("IsHomCosetToAdditiveEltRep",IsHomCosetToAdditiveElt and IsComponentObjectRep and IsAttributeStoringRep,["Homomorphism","SourceElt"]);
DeclareRepresentation("IsHomCosetToObjectRep",IsComponentObjectRep and IsAttributeStoringRep and IsHomCoset and IsObject,["Homomorphism","SourceElt"]);
DeclareProperty("IsHomCosetOfPerm",IsHomCoset);
DeclareProperty("IsHomCosetOfMatrix",IsHomCoset);
DeclareProperty("IsHomCosetOfAdditiveElt",IsHomCoset);
DeclareProperty("IsHomCosetOfFp",IsHomCoset);
DeclareProperty("IsHomCosetOfTuple",IsHomCoset);
DeclareSynonym("IsHomQuotientGroup",IsGroup and IsHomCosetCollection);
DeclareSynonym("IsQuotientToPermGroup",IsGroup and IsHomCosetToPermCollection);
DeclareSynonym("IsQuotientToMatrixGroup",IsGroup and IsHomCosetToMatrixCollection);
InstallTrueMethod(IsFFEMatrixGroup,IsQuotientToMatrixGroup);
DeclareSynonym("IsQuotientToTupleGroup",IsGroup and IsHomCosetToTupleCollection);
DeclareSynonym("IsQuotientToFpGroup",IsGroup and IsHomCosetToFpCollection);
DeclareSynonym("IsQuotientToAdditiveGroup",IsGroup and IsHomCosetToAdditiveEltCollection);
DeclareGlobalFunction("HomCoset",[IsGroupHomomorphism,IsAssociativeElement]);
DeclareGlobalFunction("HomCosetWithImage",[IsGroupHomomorphism,IsAssociativeElement,IsAssociativeElement]);
DeclareAttribute("QuotientGroupHom",IsGroupHomomorphism);
DeclareGlobalFunction("QuotientGroupByHomomorphism",[IsGroupHomomorphism]);
DeclareGlobalFunction("QuotientGroupByImages",[IsGroup,IsGroup,IsList,IsList]);
DeclareGlobalFunction("QuotientGroupByImagesNC",[IsGroup,IsGroup,IsList,IsList]);
DeclareGlobalFunction("IsTrivialHomCoset",[IsHomCoset]);
DeclareOperation("Homomorphism",[IsHomCoset]);
DeclareOperation("Homomorphism",[IsHomQuotientGroup]);
DeclareOperation("SourceElt",[IsHomCoset]);
DeclareAttribute("ImageElt",IsHomCoset);
DeclareAttribute("CanonicalElt",IsHomCoset);
DeclareAttribute("Source",IsHomQuotientGroup);
DeclareAttribute("Range",IsHomQuotientGroup);
DeclareAttribute("ImagesSource",IsHomQuotientGroup);
DeclareAttribute("Length",IsWord and IsHomCosetToFp);
DeclareOperation("POW",[IsVector,IsHomCosetToMatrix]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/quogphom.gd"

#F  file="lib/gptransv.gd" crc=-116176698
RANK_FILTER_LIST  := [ 59551859, 5, 1, 0, 1, 0, 36882748, 7, 993, 2, 1, 0, 
  6654632, 6, 1, 0, 1, 0, 26620477, 7, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/gptransv.gd", -116176698 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/gptransv.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/gptransv.gd");
elif COM_RESULT = 3  then
Revision.gptransv_gd:="@(#)$Id: gptransv.gd,v 4.7 2002/04/15 10:04:43 sal Exp $";
DeclareInfoClass("InfoTransversal");
DeclareOperation("TransversalElt",[IsRightTransversal,IsAssociativeElement]);
DeclareOperation("SiftOneLevel",[IsRightTransversal,IsAssociativeElement]);
DeclareRepresentation("IsTransvBySchreierTree",IsComponentObjectRep and IsRightTransversal,["OrbitGenerators","BasePoint","Action","HashTable"]);
DeclareCategoryCollections("IsTransvBySchreierTree");
TransvBySchreierTreeFamily:=NewFamily("ScheierTransvRep",IsTransvBySchreierTre\
e);
DeclareGlobalFunction("SchreierTransversal",[IsObject,IsFunction,IsList]);
DeclareOperation("OrbitGenerators",[IsTransvBySchreierTree]);
DeclareOperation("OrbitGeneratorsInv",[IsTransvBySchreierTree]);
DeclareOperation("BasePointOfSchreierTransversal",[IsTransvBySchreierTree]);
DeclareAttribute("One",IsTransvBySchreierTree);
DeclareGlobalFunction("ExtendSchreierTransversal",[IsTransvBySchreierTree,IsList]);
DeclareGlobalFunction("ExtendSchreierTransversalShortCube");
DeclareGlobalFunction("ExtendSchreierTransversalShortTree");
DeclareGlobalFunction("CompleteSchreierTransversal",[IsTransvBySchreierTree]);
DeclareAttribute("PreferredGenerators",IsTransvBySchreierTree);
DeclareGlobalFunction("SchreierTreeDepth",[IsTransvBySchreierTree]);
DeclareRepresentation("IsTransvByHomomorphism",IsComponentObjectRep and IsAttributeStoringRep and IsRightTransversal,["Homomorphism","QuotientGroup"]);
DeclareCategoryCollections("IsTransvByHomomorphism");
TransvByHomomorphismFamily:=NewFamily("TransvByHomomorphism",IsTransvByHomomor\
phism);
DeclareGlobalFunction("HomTransversal",[IsGroupHomomorphism]);
DeclareOperation("Homomorphism",[IsTransvByHomomorphism]);
DeclareAttribute("QuotientGroup",IsTransvByHomomorphism);
DeclareOperation("ImageGroup",[IsTransvByHomomorphism]);
DeclareRepresentation("IsTransvByDirProd",IsComponentObjectRep and IsRightTransversal,["Projection","Injection"]);
DeclareCategoryCollections("IsTransvByDirProd");
TransvByDirProdFamily:=NewFamily("TransvByDirProd",IsTransvByDirProd);
DeclareGlobalFunction("DirProdTransversal",[IsGroupHomomorphism,IsGroupHomomorphism]);
DeclareOperation("Projection",[IsTransvByDirProd]);
DeclareOperation("Injection",[IsTransvByDirProd]);
DeclareRepresentation("IsTransvByTrivSubgrp",IsComponentObjectRep and IsRightTransversal,["Group"]);
DeclareCategoryCollections("IsTransvByTrivSubgrp");
TransvByTrivSubgrpFamily:=NewFamily("TransvByTrivSubgrp",IsTransvByTrivSubgrp);
DeclareGlobalFunction("TransversalByTrivial",[IsGroup]);
DeclareRepresentation("IsTransvBySiftFunct",IsComponentObjectRep and IsAttributeStoringRep and IsRightTransversal,["Sift","ParentGroup","Subgroup","Size"]);
DeclareCategoryCollections("IsTransvBySiftFunct");
TransvBySiftFunctFamily:=NewFamily("TransvBySiftFunct",IsTransvBySiftFunct);
DeclareGlobalFunction("TransversalBySiftFunction",[IsFunction,IsGroup]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/gptransv.gd"

#F  file="lib/grpchain.gd" crc=70664498
RANK_FILTER_LIST  := [ 60816854, 16, 60816854, 16, 1, 0, 1, 0, 51904755, 21, 
  993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 36700598, 21, 993, 2, 
  1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 25166157, 21, 993, 2, 1, 0, 
  3965249, 33, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 33554690, 21, 993, 2, 
  1, 0, 49959545, 27, 37748707, 20, 33444908, 18, 16514638, 27, 60816854, 16, 
  10222612, 27, 1, 0, 1, 0, 52790580, 30, 993, 2, 1, 0, 49959545, 27, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 33986857, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 53654479, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 25879884, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/grpchain.gd", 70664498 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/grpchain.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/grpchain.gd");
elif COM_RESULT = 3  then
Revision.grpchain_gd:="@(#)$Id: grpchain.gd,v 4.7 2002/04/15 10:04:44 sal Exp $";
DeclareInfoClass("InfoChain");
UseMatrixChainSubgroups:=false;
UsePermChainSubgroups:=false;
UseStabChainViaChainSubgroup:=false;
SmallSpaceCutoff:=50000;
DeclareAttribute("ChainSubgroup",IsGroup,"mutable");
DeclareAttribute("Transversal",IsGroup);
DeclareFilter("IsInChain");
InstallTrueMethod(IsInChain,HasChainSubgroup);
InstallTrueMethod(IsInChain,HasTransversal);
DeclareProperty("IsFFEMatrixGroupOverLargeSpace",IsGroup);
InstallImmediateMethod(IsFFEMatrixGroupOverLargeSpace,IsFFEMatrixGroup and HasDimensionOfMatrixGroup and HasFieldOfMatrixGroup,0,COM_FUN(1));
DeclareProperty("IsChainTypeGroup",IsGroup);
InstallImmediateMethod(IsChainTypeGroup,IsPermGroup,0,COM_FUN(2));
InstallImmediateMethod(IsChainTypeGroup,IsFFEMatrixGroupOverLargeSpace,0,COM_FUN(3));
InstallMethod(IsChainTypeGroup,"default:  false if no immediate method ran",true,[IsGroup],0,ReturnFalse);
DeclareProperty("IsStabChainViaChainSubgroup",IsPermGroup);
InstallImmediateMethod(IsStabChainViaChainSubgroup,IsPermGroup,0,COM_FUN(4));
DeclareProperty("GeneratingSetIsComplete",IsGroup);
DeclareOperation("SiftOneLevel",[IsGroup and HasChainSubgroup,IsAssociativeElement]);
DeclareOperation("Sift",[IsGroup,IsAssociativeElement]);
DeclareGlobalFunction("SizeOfChainOfGroup",[IsGroup]);
DeclareGlobalFunction("TransversalOfChainSubgroup",[IsGroup]);
DeclareGlobalFunction("ChainStatistics",[IsGroup and HasChainSubgroup]);
DeclareGlobalFunction("HasChainHomomorphicImage");
DeclareGlobalFunction("ChainHomomorphicImage");
DeclareAttribute("BaseOfGroup",IsGroup and IsInChain);
DeclareOperation("ExtendedGroup",[IsGroup and IsInChain,IsAssociativeElement]);
DeclareGlobalFunction("StrongGens",[IsGroup]);
DeclareGlobalFunction("ChainSubgroupByStabiliser",[IsGroup,IsObject,IsFunction]);
DeclareAttribute("OrbitGeneratorsOfGroup",IsGroup);
DeclareGlobalFunction("ChainSubgroupByHomomorphism",[IsGroupHomomorphism]);
DeclareGlobalFunction("ChainSubgroupByProjectionFunction",[IsGroup,IsGroup,IsFunction]);
DeclareGlobalFunction("QuotientGroupByChainHomomorphicImage");
DeclareAttribute("ChainSubgroupQuotient",IsGroup);
DeclareGlobalFunction("ChainSubgroupByDirectProduct",[IsGroupHomomorphism,IsGroupHomomorphism]);
DeclareGlobalFunction("ChainSubgroupByPSubgroupOfAbelian",[IsGroup and IsAbelian,IsInt]);
DeclareGlobalFunction("ChainSubgroupByTrivialSubgroup",[IsGroup]);
DeclareGlobalFunction("ChainSubgroupBySiftFunction",[IsGroup,IsGroup,IsFunction]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/grpchain.gd"

#F  file="lib/rss.gd" crc=-81536982
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/rss.gd", -81536982 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/rss.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/rss.gd");
elif COM_RESULT = 3  then
Revision.rss_gd:="@(#)$Id: rss.gd,v 4.4 2002/04/15 10:05:15 sal Exp $";
DeclareInfoClass("InfoRSS");
DeclareGlobalFunction("SetValueOption");
DeclareGlobalFunction("ReturnPopOptions");
DeclareGlobalFunction("RandomSchreierSims");
DeclareGlobalFunction("ChangedBaseGroup");
DeclareGlobalFunction("RSSDefaultOptions");
DeclareGlobalFunction("SiftForStrongGenerator");
DeclareGlobalFunction("StopNumSift");
DeclareGlobalFunction("StopNumConsecSiftToOne");
DeclareGlobalFunction("StopSize");
DeclareGlobalFunction("ReturnNextBasePoint");
DeclareGlobalFunction("PermNewBasePoint",[IsGroup,IsPerm]);
DeclareGlobalFunction("MatrixNewBasePoint",[IsGroup,IsMatrix]);
DeclareOperation("EspaceBasePoints",[IsFFEMatrixGroup]);
DeclareOperation("EvectBasePoints",[IsFFEMatrixGroup]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/rss.gd"

#F  file="lib/basicim.gd" crc=92921943
RANK_FILTER_LIST  := [ 60816854, 16, 9971060, 9, 3679034, 20, 1, 0, 1, 0, 
  19943111, 23, 993, 2, 1, 0, 60816854, 16, 9971060, 9, 3679034, 20, 1, 0, 1, 
  0, 39885229, 23, 993, 2, 1, 0, 60816854, 16, 9971060, 9, 3679034, 20, 1, 0, 
  1, 0, 12660586, 23, 993, 2, 1, 0, 60816854, 16, 9971060, 9, 3679034, 20, 1, 
  0, 1, 0, 25320179, 23, 993, 2, 1, 0, 38539970, 5, 1, 0, 1, 0, 50639365, 8, 
  993, 2, 1, 0, 60816854, 16, 60816854, 16, 1, 0, 1, 0, 34169818, 21, 993, 2, 
  1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/basicim.gd", 92921943 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/basicim.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/basicim.gd");
elif COM_RESULT = 3  then
Revision.basicim_gd:="@(#)$Id: basicim.gd,v 4.2 2002/04/15 10:04:26 sal Exp $";
DeclareInfoClass("InfoBasicImage");
DeclareRepresentation("IsBasicImageEltRep",IsAssociativeElement,["Word","Base","BaseImage","OrbitGenerators","HomFromFree"]);
DeclareCategoryCollections("IsBasicImageEltRep");
BasicImageEltRepFamily:=NewFamily("BasicImageEltRep",IsBasicImageEltRep);
DeclareSynonym("IsBasicImageGroup",IsGroup and IsBasicImageEltRepCollection);
DeclareGlobalFunction("ConvertToSiftGroup",[IsGroup,IsList,IsGroupHomomorphism]);
DeclareGlobalFunction("BasicImageGroup",[IsGroup and HasChainSubgroup]);
DeclareOperation("BasicImageGroupElement",[IsWord,IsList,IsList,IsList,IsGroupHomomorphism]);
DeclareOperation("BasicImageGroupElement",[IsBasicImageGroup,IsAssociativeElement]);
DeclareOperation("BasicImageGroupElement",[IsGroup and HasChainSubgroup,IsGroupHomomorphism,IsList,IsAssociativeElement\
]);
DeclareAttribute("OrbitGeneratorsOfGroup",IsBasicImageGroup);
DeclareAttribute("BaseOfBasicImageGroup",IsBasicImageGroup);
DeclareAttribute("FreeGroupOfBasicImageGroup",IsBasicImageGroup);
DeclareAttribute("SiftGroup",IsBasicImageGroup);
DeclareAttribute("HomFromFreeOfBasicImageGroup",IsBasicImageGroup);
DeclareAttribute("FreeGroupOfBasicImageGroup",IsBasicImageGroup);
DeclareOperation("Word",[IsBasicImageEltRep]);
DeclareOperation("BaseOfElt",[IsBasicImageEltRep]);
DeclareOperation("BaseImage",[IsBasicImageEltRep]);
DeclareOperation("OrbitGenerators",[IsBasicImageEltRep]);
DeclareOperation("HomFromFree",[IsBasicImageEltRep]);
DeclareOperation("FreeGroupOfElt",[IsBasicImageEltRep]);
DeclareAttribute("ConvertBasicImageGroupElement",IsBasicImageEltRep);
DeclareOperation("ONE",[IsBasicImageEltRep]);
DeclareAttribute("One",IsBasicImageEltRep);
DeclareOperation("INV",[IsBasicImageEltRep]);
DeclareAttribute("Inverse",IsBasicImageEltRep);
DeclareOperation("QUO",[IsBasicImageEltRep,IsBasicImageEltRep]);
DeclareOperation("COMM",[IsBasicImageEltRep,IsBasicImageEltRep]);
DeclareAttribute("Presentation",IsGroup);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/basicim.gd"

#F  file="lib/solmxgrp.gd" crc=-124727970
RANK_FILTER_LIST  := [ 60816854, 16, 33553593, 33, 27261567, 45, 1, 0, 1, 0, 
  1229764, 48, 993, 2, 1, 0, 60816854, 16, 3717409, 9, 14869633, 13, 
  12295015, 24, 1, 0, 1, 0, 2458535, 32, 993, 2, 1, 0, 60012328, 29, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 9833081, 21, 993, 2, 1, 0, 
  60816854, 16, 60816854, 16, 1, 0, 1, 0, 19665169, 21, 993, 2, 1, 0 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/solmxgrp.gd", -124727970 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/solmxgrp.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/solmxgrp.gd");
elif COM_RESULT = 3  then
Revision.solmxgrp_gd:="@(#)$Id: solmxgrp.gd,v 4.7 2002/04/15 10:05:22 sal Exp $";
DeclareGlobalFunction("SetIsCyclicWithSize",[IsGroup,IsAssociativeElement,IsInt]);
DeclareGlobalFunction("ConjugateMatrixActionToLinearAction",[IsAssociativeElement]);
DeclareGlobalFunction("ConjugateMatrixGroupToLinearAction",[IsFFEMatrixGroup]);
DeclareOperation("MakeHomChain",[IsGroup]);
DeclareAttribute("BasisOfHomCosetAddMatrixGroup",IsGroup and IsQuotientToAdditiveGroup);
DeclareAttribute("BasisOfHomCosetAddMatrixGroup",IsAdditiveGroup);
DeclareGlobalFunction("BasisOfHomCosetAddMatrixGroupFnc");
DeclareGlobalFunction("SiftVector");
DeclareAttribute("SiftFunction",IsGroup and IsAdditiveGroup);
DeclareAttribute("SiftFunction",IsGroup and IsQuotientToAdditiveGroup);
DeclareAttribute("SiftFunction",IsGroup and IsFFEMatrixGroup and IsCyclic and IsPGroup);
DeclareOperation("InvariantSubspaceOrCyclicGroup",[IsFFEMatrixGroup and IsAbelian]);
DeclareOperation("InvariantSubspaceOrCyclicGroup",[IsTrivial]);
DeclareOperation("InvariantSubspaceOrUniformCyclicPGroup",[IsFFEMatrixGroup]);
DeclareOperation("KernelOfHomQuotientGroup",[IsHomQuotientGroup and IsAbelian]);
InstallImmediateMethod(Size,HasGeneratorOfCyclicGroup,0,COM_FUN(1));
DeclareOperation("Sift",[IsFFEMatrixGroup and IsCyclic and IsPGroup,IsMultiplicativeElementWithInverse]);
DeclareOperation("TrivialQuotientSubgroup",[IsGroup]);
DeclareProperty("CanFindNilpotentClassTwoElement",IsGroup);
DeclareAttribute("NilpotentClassTwoElement",IsGroup);
DeclareGlobalFunction("NaturalHomomorphismByNilpotentClassTwoElement",[IsFFEMatrixGroup]);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/solmxgrp.gd"

