From parth_dixit at da-iict.org Tue Jan 13 18:27:55 2004 From: parth_dixit at da-iict.org (parth dixit) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] subgroup of direct product Message-ID: <200401131827.i0DIRtk22462@mail.da-iict.org> hi, I am trying to form a subgroup of Direct product of two groups by taking direct product of subgroups of the original groups.But it is giving me error,I tried using AsSubgroup too but it failed.Please help me. gap> G:=SymmetricGroup(5);; gap> H1:=SymmetricGroup(3);; gap> H2:=DihedralGroup(IsPermGroup,8);; gap> gg:=DirectProduct(G,G);; gap> hh:=DirectProduct(H1,H2);; gap> IsSubgroup(gg,hh); false thanks parth From gap at gap.zssm.zp.ua Tue Jan 13 21:06:31 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] subgroup of direct product In-Reply-To: <200401131827.i0DIRtk22462@mail.da-iict.org> References: <200401131827.i0DIRtk22462@mail.da-iict.org> Message-ID: <1269532056.20040113230631@gap.zssm.zp.ua> Dear Parth Dixit, dear GAP Forum Let me suggest the following: First the direct product gap> g:=SymmetricGroup(5); Sym( [ 1 .. 5 ] ) gap> dp:=DirectProduct(g,g); Group([ (1,2,3,4,5), (1,2), (6,7,8,9,10), (6,7) ]) and embeddings into its components: gap> f1:=Embedding(dp,1); 1st embedding into Group([ (1,2,3,4,5), (1,2), (6,7,8,9,10), (6,7) ]) gap> f2:=Embedding(dp,2); 2nd embedding into Group([ (1,2,3,4,5), (1,2), (6,7,8,9,10), (6,7) ]) Now your groups: gap> h1:=SymmetricGroup(3); Sym( [ 1 .. 3 ] ) gap> h2:=DihedralGroup(IsPermGroup,8); Group([ (1,2,3,4), (2,4) ]) And their images under this embeddings (you see that these images are subgroups of the direct product): gap> k1:=Image(f1,h1); Group([ (1,2,3), (1,2) ]) gap> IsSubgroup(dp,k1); true gap> k2:=Image(f2,h2); Group([ (6,7,8,9), (7,9) ]) gap> IsSubgroup(dp,k2); true But even now their direct product can not be calculated as follows: gap> s:=DirectProduct(k1,k2); Group([ (1,2,3), (1,2), (4,5,6,7), (5,7) ]) gap> IsSubgroup(dp,s); false AND HERE IS THE CORRECT APPROACH: gap> s:=ClosureGroup(k1,k2); Group([ (2,3), (1,2,3), (6,7,8,9), (7,9) ]) gap> IsSubgroup(dp,s); true Hope this helps, Sincerely yours, Alexander Konovalov On Tuesday, January 13, 2004 at 8:27:55 PM parth dixit wrote: > hi, > I am trying to form a subgroup of Direct product of two groups by > taking direct product of subgroups of the original groups.But it is > giving me error,I tried using AsSubgroup too but it failed.Please help > me. gap>> G:=SymmetricGroup(5);; gap>> H1:=SymmetricGroup(3);; gap>> H2:=DihedralGroup(IsPermGroup,8);; gap>> gg:=DirectProduct(G,G);; gap>> hh:=DirectProduct(H1,H2);; gap>> IsSubgroup(gg,hh); > false > thanks > parth > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jjoao at netcabo.pt Thu Jan 22 18:33:59 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Semigroup homomorphism Message-ID: <1074796444.4360.9.camel@localhost.localdomain> Dear GAP Forum, I am trying to define a semigroup homomorphism, so I looked at the code for GroupGeneralMappingByImages in ghom.gi and tried to do something similar for semigroups. This is what I did (poi5 is a semigroup of transformations) gap> G:=poi5; gap> H:=G; gap> filter:=HasSource and HasRange and HasMappingGeneratorsImages; >"> gap> gens:=GeneratorsOfSemigroup(G);; gap> imgs:=GeneratorsOfSemigroup(H);; gap> mapi:=[Immutable(gens),Immutable(imgs)];; gap> hom:=rec(); rec( ) gap> ObjectifyWithAttributes( hom, > NewType( GeneralMappingsFamily > ( ElementsFamily( FamilyObj( G ) ), > ElementsFamily( FamilyObj( H ) ) ), filter ), > Source,G, > Range,H, > MappingGeneratorsImages,mapi); gap> SetIsMapping( hom, true ); gap> IsMapping(hom); true gap> Source(hom); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for Source' on 1 arguments called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue I could not find the code for Source, so I would like to ask if someone could tell me why this error happened or how can make this work. Thank you Jose Morais From alexk at mcs.st-and.ac.uk Thu Jan 22 23:02:04 2004 From: alexk at mcs.st-and.ac.uk (alexk@mcs.st-and.ac.uk) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Hi Message-ID: Test =) vurpwtmbdwhmps -- Test, yep. From jjoao at netcabo.pt Fri Jan 23 11:51:15 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Factorization for Semigroups Message-ID: <1074858679.4359.21.camel@localhost.localdomain> Dear GAP-Forum, I need a Factorization function for semigroups (like the one for groups) that given a semigroup and an element of this semigroup would return the element's factorization in the generators of the semigroup. I have looked at the code for 'Factorization' for groups but I could not get any enlightenment, so my question is if anyone could give some hints on how to implement such a function (what I do now is, starting with the generators of the semigroup, perform all the multiplications while storing the factors, but this takes too long for semigroups with enough elements and becomes impracticable...). Thank you very much, Jose Morais From andrew at illywhacker.net Fri Jan 23 22:04:11 2004 From: andrew at illywhacker.net (Andrew Solomon) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Factorization for Semigroups In-Reply-To: <1074858679.4359.21.camel@localhost.localdomain> References: <1074858679.4359.21.camel@localhost.localdomain> Message-ID: <20040123220411.GA11283@it.uts.edu.au> Dear Jose Morais On Fri, Jan 23, 2004 at 11:51:19AM +0000, Jose Joao Morais wrote: > Dear GAP-Forum, > > I need a Factorization function for semigroups (like the one for > groups) that given a semigroup and an element of this semigroup would > return the element's factorization in the generators of the semigroup. > > I have looked at the code for 'Factorization' for groups but I could > not get any enlightenment, so my question is if anyone could give some > hints on how to implement such a function (what I do now is, starting > with the generators of the semigroup, perform all the multiplications > while storing the factors, but this takes too long for semigroups with > enough elements and becomes impracticable...). > According to Kozen D. Kozen {\em Lower bounds for natural proof systems}, Proc. 18th Annual Symposium on the Foundations of Computer Science, IEEE Computer Society, Long Beach, CA (1977) 254--266. the problem is PSPACE complete even for semigroups of transformations, so one probably can't do very much better than the naive algorithm. Even so, this may be worth implementing if the semigroups under investigation are small. Factorization' for groups implements the naive algorithm, basically multiplying with generators until all elements are found. The mechanism for homomorphisms for permutation groups uses a more elaborate setup using stabilizer chains. These however crucially rely on the possibility to cancel, and thus do not seem to give an obvious generalization to semigroups. best wishes, Andrew Solomon From jjoao at netcabo.pt Mon Jan 26 10:28:52 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] NaturalHomomorphismByGenerators Message-ID: <1075112932.4379.1.camel@localhost.localdomain> Dear GAP-Forum, I have the following monoid: x0:=Transformation([6,1,2,3,4,6]); x1:=Transformation([1,2,3,5,6,6]); x2:=Transformation([1,2,4,6,5,6]); x3:=Transformation([1,3,6,4,5,6]); x4:=Transformation([2,6,3,4,5,6]); poi5:= Monoid(x0,x1,x2,x3,x4); Then I do: G:=poi5; F:=FreeMonoid(List([1..Length(GeneratorsOfMonoid(G))], i->Concatenation("x",String(i)))); gap> h:=NaturalHomomorphismByGenerators(F,G);; gap> ih:=InverseGeneralMapping(h);; gap> IsInjective(ih); true gap> Image(ih, Elements(G)[2]); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for ImagesSet' on 2 arguments called from ImagesSet( map, Source( map ) ) called from ImagesSource( map ) called from IsSurjective( InverseGeneralMapping( inv ) ) called from IsMapping( map ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue Can you tell me what is wrong with this and how can I compute de image of an element of G through ih? Thank you, Jose Morais From jjoao at netcabo.pt Tue Jan 27 11:08:24 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Time to compute Size(semigroup) Message-ID: <1075201702.4356.13.camel@localhost.localdomain> Dear GAP Forum, I have a semigroup of transformations S1. Then I do gap> Size(S1); 39536 and this is what I got with DisplayProfile() gap> DisplayProfile(); count self/ms chld/ms function 39537 10 -10 UnderlyingCollection: system getter 39537 30 0 UnderlyingCollection 39543 50 0 ADD_LIST 276739 260 20 EQ: for two transformations of the same set 237221 620 -10 Enumerator: for a collection that is a list 39530 1420 700 AddSet: for mutable internally represented list, and object 39530 80 2110 AddSet 3950033 5680 -220 LT: < 237216 6040 1040 PROD: trans * trans 237216 3370 5280 IN: for an object, and a small list 39537 1060 18050 ISB_LIST: for a right semigroup ideal enumerator 790742 480 18710 Size: for a list that is a collection 1 0 19190 Size: for a collection 3 0 19190 Order: for a group 1 60 19130 LENGTH: for a semigroup ideal enumerator 19190 TOTAL For another semigroup S2, which is a semidirect product semigroup, whose elements are Tuples, I did gap> Size(S2); 1764 after clearing the Profile information I got these times gap> DisplayProfile(); count self/ms chld/ms function 165128* 9060 -430 UnderlyingCollection: system getter 165128* 18000 9280 UnderlyingCollection 8863493 9230 120 EQ: for two transformations of the same set 425088 680 570 AddSet 1627094 1920 -50 LT: < 127008 2180 340 PROD: trans * trans 63504 670 4270 IN: for an object, and a small list 165128* 53310 97690 ISB_LIST: for a right semigroup ideal enumerator 171496* 9570 141430 Size: for a list that is a collection 1 0 151000 Size: for a collection 4 0 151000 Order: for a group 1 0 151000 LENGTH: for a semigroup ideal enumerator (Total 104620) 63504 10 40 SemiDirectProductSemigroupElmAction: system getter 127008 50 20 Enumerator: system getter 127008 100 -30 IsSingleValued 127010 100 0 FamilySource: system getter 127008 100 10 IsTotal 127013 130 20 Enumerator: for a collection that is a list 127010 120 50 Tester(FamilySource) 63504 190 0 SemiDirectProductSemigroupElmAction 127008 170 30 Source: for default general mapping 127009 180 50 Enumerator 127010 180 90 FamilySource 65301 140 160 EQ: for two pairs 127008 110 210 PreImagesRange: for total general mapping (delegate to Source') 508330 190 140 EQ: for two families: delegate to IsIdenticalObj' 63540 450 50 Setter(SemiDirectProductSemigroupElmAction): system setter 425088 500 0 AddSet: for mutable internally represented list, and object 63540 80 500 Setter(SemiDirectProductSemigroupElmAction) 63540 830 60 Setter(IsSemiDirectProductSemigroupElm) 127008 2040 1740 ImageElm: for mapping by function 127008 140 3790 ImageElm 667623 2250 1720 LT: for two pairs 8255520 13190 45140 ELM_LIST: for a right semigroup ideal enumerator 127008 22500 111250 IN: for a semigroup ideal emunerator 127008 370 133980 IN: for a domain, and an element 63504 2260 143390 PROD: for two elements of a semidirect product semigroup 151000 TOTAL I wonder if anyone could give me an hint on why the times for the common methods between these two results are so much higher in the case of S2. Thank you, Jose Morais From andrew at illywhacker.net Tue Jan 27 19:27:52 2004 From: andrew at illywhacker.net (Andrew Solomon) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Time to compute Size(semigroup) In-Reply-To: <1075201702.4356.13.camel@localhost.localdomain> References: <1075201702.4356.13.camel@localhost.localdomain> Message-ID: <20040127192752.GA30322@it.uts.edu.au> Dear Jose Joao Morais, The semigroups you are working with have different sizes (S1 is approximately 20 times larger than S2), the elements are represented differently and may not even have the same number of generators. The algorithm used to find the size of a semigroup is the naive one (see RightSemigroupIdealEnumeratorDataGetElement in smgideal.gi). At the top level the algorithm involves multiplicative closure of a set and lower down, it involves insertion into a sorted list. I can see no reason why the timings for the same functions should be comparable, as the complexity of each one would depend upon the number of generators, the size of the semigroup and the number of points in the transformations. Future discussions on such rather technical topics might be better conducted via support@gap-system.org to avoid swamping the forum. Andrew Solomon On Tue, Jan 27, 2004 at 11:08:22AM +0000, Jose Joao Morais wrote: > Dear GAP Forum, > > I have a semigroup of transformations S1. Then I do > > gap> Size(S1); > 39536 > > and this is what I got with DisplayProfile() > > gap> DisplayProfile(); > count self/ms chld/ms function > 39537 10 -10 UnderlyingCollection: system getter > 39537 30 0 UnderlyingCollection > 39543 50 0 ADD_LIST > 276739 260 20 EQ: for two transformations of the same set > 237221 620 -10 Enumerator: for a collection that is a list > 39530 1420 700 AddSet: for mutable internally represented > list, and object > 39530 80 2110 AddSet > 3950033 5680 -220 LT: < > 237216 6040 1040 PROD: trans * trans > 237216 3370 5280 IN: for an object, and a small list > 39537 1060 18050 ISB_LIST: for a right semigroup ideal > enumerator > 790742 480 18710 Size: for a list that is a collection > 1 0 19190 Size: for a collection > 3 0 19190 Order: for a group > 1 60 19130 LENGTH: for a semigroup ideal enumerator > 19190 TOTAL > > > > > > For another semigroup S2, which is a semidirect product semigroup, > whose elements are Tuples, I did > > gap> Size(S2); > 1764 > > after clearing the Profile information I got these times > > gap> DisplayProfile(); > count self/ms chld/ms function > 165128* 9060 -430 UnderlyingCollection: system getter > 165128* 18000 9280 UnderlyingCollection > 8863493 9230 120 EQ: for two transformations of the same set > 425088 680 570 AddSet > 1627094 1920 -50 LT: < > 127008 2180 340 PROD: trans * trans > 63504 670 4270 IN: for an object, and a small list > 165128* 53310 97690 ISB_LIST: for a right semigroup ideal > enumerator > 171496* 9570 141430 Size: for a list that is a collection > 1 0 151000 Size: for a collection > 4 0 151000 Order: for a group > 1 0 151000 LENGTH: for a semigroup ideal enumerator > > (Total 104620) > > > 63504 10 40 SemiDirectProductSemigroupElmAction: system > getter > 127008 50 20 Enumerator: system getter > 127008 100 -30 IsSingleValued > 127010 100 0 FamilySource: system getter > 127008 100 10 IsTotal > 127013 130 20 Enumerator: for a collection that is a list > 127010 120 50 Tester(FamilySource) > 63504 190 0 SemiDirectProductSemigroupElmAction > 127008 170 30 Source: for default general mapping > 127009 180 50 Enumerator > 127010 180 90 FamilySource > 65301 140 160 EQ: for two pairs > 127008 110 210 PreImagesRange: for total general mapping > (delegate to Source') > 508330 190 140 EQ: for two families: delegate to > IsIdenticalObj' > 63540 450 50 Setter(SemiDirectProductSemigroupElmAction): > system setter > 425088 500 0 AddSet: for mutable internally represented > list, and object > 63540 80 500 Setter(SemiDirectProductSemigroupElmAction) > 63540 830 60 Setter(IsSemiDirectProductSemigroupElm) > 127008 2040 1740 ImageElm: for mapping by function > 127008 140 3790 ImageElm > 667623 2250 1720 LT: for two pairs > 8255520 13190 45140 ELM_LIST: for a right semigroup ideal > enumerator > 127008 22500 111250 IN: for a semigroup ideal emunerator > 127008 370 133980 IN: for a domain, and an element > 63504 2260 143390 PROD: for two elements of a semidirect > product semigroup > 151000 TOTAL > > > > > I wonder if anyone could give me an hint on why the times for the > common methods between these two results are so much higher in the case > of S2. > > > Thank you, > Jose Morais > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- http://www-staff.it.uts.edu.au/~andrews/ Department of Computer Systems, University of Technology, Sydney PO Box 123, Broadway NSW Australia 2007 phone: +61-2-9514-7938 fax: +61-2-9514-4535 CRICOS provider code - 00099F From hulpke at math.colostate.edu Tue Jan 27 21:56:39 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Re: Monoid homomorphsim Message-ID: <200401272156.i0RLudTK003828@schur.math.colostate.edu> Jose Morais asked: I have the following monoid: [...] F:=FreeMonoid(List([1..Length(GeneratorsOfMonoid(G))], i->Concatenation("x",String(i)))); gaph:=NaturalHomomorphismByGenerators(F,G);; gapih:=InverseGeneralMapping(h);; gapIsInjective(ih); true gapImage(ih, Elements(G)[2]); Error, no method found! For debugging hints type ?Recovery from NoMethodFound (I would use PreImagesRepresentative(h,Elements(G)[2])' in such a situation, but this does not remove the underlying problem.) A no method found'' error message usually means that some calculation is attempted that per se makes sense (or might make sense) but so far GAP has no method to actually perform this calculation. There is no method installed to compute images under a map from a transformation monoid to another monoid. (This would require some method for decomposition into generators, which is not implemented.) The map from the free monoid on the other hand can perform such a decomposition, as the elements are already given as words. Can you tell me what is wrong with this and how can I compute de image of an element of G through ih? You basically will have to write a method that decomposes elements. (If you want, once you have code that does such a decomposition, send me a private email and I will help you with integrating it as a proper method for monoid homomorphisms. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From nelson at mcs.st-and.ac.uk Thu Jan 29 19:56:09 2004 From: nelson at mcs.st-and.ac.uk (Nelson Silva) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] NewAttribute function Message-ID: Hi! I'm sorry if this has a trivial answer. I am trying to store some data, obtained from some functions I wrote, in a way that this information can be accessed using the command "KnownAttributesOfObject" I am trying to define some new attribute (using the instructions on the online manual) by typing "NewAttribute( , )" but the output I get is "usage: NewAttribute( ) at getter := NEW_ATTRIBUTE( name );" This has been declared with the "DeclareOperation" command in a .gd file and with the "InstallMethod" command in a .gi file. Can this be the reason why it does not work? Can someone give me a simple example for the creation of a new attribute? Many thanks, -- Nelson Silva -------------------------------------------------------------- Algebra Group - http://www-maths.mcs.st-and.ac.uk/pg/pure/Algebra/index.html - -------------------------------------------------------------- Tel :: +44 (0)133 4 46 3227 - Fax :: +44 (0)133 4 46 3748 - E-mail:: nelson@mcs.st-and.ac.uk - Web :: http://turnbull.mcs.st-and.ac.uk/~nelson - -------------------------------------------------------------- Mathematical Institute - North Haugh - St. Andrews - Fife KY16 9SS - SCOTLAND UK - -------------------------------------------------------------- From wright at darkwing.uoregon.edu Fri Jan 30 17:55:40 2004 From: wright at darkwing.uoregon.edu (Charles Wright) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Three packages for polycyclic groups Message-ID: <401A9A9C.4090201@darkwing.uoregon.edu> Dear GAP Forum subscribers ? It is a pleasure to report that the Polycyclic and Alnuth GAP 4 packages have attained ?accepted? status. You may already be familiar with these packages, but let me describe them briefly. Polycyclic provides various algorithms for computations with finite or infinite polycyclic groups that can defined by polycyclic presentations. The package contains methods to compute centralizers and normalizers of subgroups, complements and extensions, torsion subgroups and many more features. For some of its functionality, it requires the installation of Alnuth. The package is the work of Bettina Eick and Werner Nickel. The most recent version is available at http://cayley.math.nat.tu-bs.de/software/eick/polycyclic. Alnuth, formerly called ?Kant,? provides various methods to compute with number fields that are given by defining polynomials or by generators. Some of the methods provided in the package are written in GAP code and some are imported from the Computer Algebra System KANT, for which Alnuth acts as an interface. The package requires Polycyclic, as well as some external programs available from the KANT web site. Methods included in the package allow the user to create a number field, compute its maximal order, compute its unit group and a presentation of this unit group, compute the elements of a given norm of the number field and determine a presentation for a finitely generated multiplicative subgroup. Alnuth is the work of Bettina Eick and Bjoern Assmann. The current version may be obtained from http://cayley.math.nat.tu-bs.de/software/assmann/Alnuth. Assmann has also written the Polenta package, currently under review, which provides methods to compute polycyclic presentations of matrix groups (finite or infinite). This package may be downloaded from http://cayley.math.nat.tu-bs.de/software/assmann/Polenta. All three of these packages require at least GAP 4.3fix4 and will be made available as part of the GAP 4.4 distribution. These packages are significant additions to GAP?s capabilities in the areas of polycyclic groups and algebraic number theory. Charles R.B. Wright From rschmied at Princeton.EDU Wed Feb 4 00:57:38 2004 From: rschmied at Princeton.EDU (Roman Schmied) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] GAP4 question: character table as a matrix Message-ID: <40204382.3060405@princeton.edu> Hello: I am trying to use a character table of a permutation group "g" as a matrix, for further matrix multiplications. In order to extract this matrix, my code is TransposedMat(TransposedMat(Irr(CharacterTable(g)))); which is very roundabout. Would anyone know of a nice way of doing this? My goal is the decomposition of a vector "c" of characters into a direct sum of irreducible representations, which I then do with TransposedMat(TransposedMat(Irr(CharacterTable(g)))) * DiagonalMat(SizesConjugacyClasses(CharacterTable(g))) * c / Length(Elements(g)); Any help would be appreciated. Cheers! Roman. From hulpke at math.colostate.edu Wed Feb 4 02:32:04 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] GAP4 question: character table as a matrix In-Reply-To: <40204382.3060405@princeton.edu> Message-ID: <200402040232.i142W4NJ010944@schur.math.colostate.edu> Dear Roman Schmied, > I am trying to use a character table of a permutation group "g" as a > matrix, for further matrix multiplications. In order to extract this > matrix, my code is > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))); > > which is very roundabout. Would anyone know of a nice way of doing this? The following is probably the shortest List(Irr(g),ShallowCopy); though n:=Length(Irr(g));Irr(g){[1..n]}{[1..n]}; is a close contender. > My goal is the decomposition of a vector "c" of characters into a direct > sum of irreducible representations, which I then do with > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))) > * DiagonalMat(SizesConjugacyClasses(CharacterTable(g))) > * c > / Length(Elements(g)); As you have irreducible characters calculating scalar products will be easier and more efficient: MatScalarProducts(Irr(g),[c]); or List(Irr(g),i->ScalarProduct(i,c)); (If you prefer to solve a system of equations, SolutionMat(Irr(g),c); will work.) Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From dima at thi.informatik.uni-frankfurt.de Wed Feb 4 03:47:46 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] GAP4 question: character table as a matrix In-Reply-To: <40204382.3060405@princeton.edu> References: <40204382.3060405@princeton.edu> Message-ID: <20040204034746.GA12334@thi21.thi.informatik.uni-frankfurt.de> Dear Forum, On Tue, Feb 03, 2004 at 07:57:38PM -0500, Roman Schmied wrote: > I am trying to use a character table of a permutation group "g" as a > matrix, for further matrix multiplications. In order to extract this > matrix, my code is > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))); > > which is very roundabout. Would anyone know of a nice way of doing this? > > My goal is the decomposition of a vector "c" of characters into a direct > sum of irreducible representations, which I then do with > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))) > * DiagonalMat(SizesConjugacyClasses(CharacterTable(g))) > * c > / Length(Elements(g)); > A vector of characters? You mean, a character? for this purpose there are special functions available, you don't have to roll your own. E.g. ConstituentsOfCharacter( [, ] ) is the set of irreducible characters that occur in the decomposition of the (virtual) character with nonzero coefficient. ConstituentsOfCharacter( CharacterTable(g), c ) will do the job for you. HTH, Dmitrii From parth_dixit at da-iict.org Mon Feb 9 21:04:25 2004 From: parth_dixit at da-iict.org (parth dixit) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] semidirect product Message-ID: <200402092104.i19L4Pn10916@mail.da-iict.org> hi, SemidirectProduct( G, alpha, N ) ; how could i get projection of semidirect product onto normal subgroup ( N ) on which other group( G ) is acting,manual says that we can get projection only onto group G,also is there way to decompose a group as semidirect product?I think previous version of gap supported it.Thanks for the help regards parth From hulpke at math.colostate.edu Mon Feb 9 21:50:28 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] semidirect product In-Reply-To: <200402092104.i19L4Pn10916@mail.da-iict.org> Message-ID: <200402092150.i19LoT0q009008@schur.math.colostate.edu> Dear Gap-Forum, parth dixit wrote: > SemidirectProduct( G, alpha, N ) ; > how could i get projection of semidirect product onto normal subgroup > ( N ) on which other group( G ) is acting,manual says that we can get The component projection onto N is not a homomorphism, and therefore not provided (and never has been). You could obtain it by dividing off the image under the projection on G, considering G as ekmbedded in the product. For example: For a semidirect product gap> n:=Group((1,2),(3,4)); gap> a:=AutomorphismGroup(n); gap> s:=SemidirectProduct(a,n); gap> e1:=Embedding(s,1); # embedding of a into s CompositionMapping( [ f1, f2 ] -> [ f1, f2 ], CompositionMapping( Pcgs( [ (2,3), (1,2,3) ]) -> [ f1, f2 ], ) ) gap> e2:=Embedding(s,2); # embedding of n into s [ (3,4), (1,2) ] -> [ f3, f4 ] gap> p:=Projection(s); # projection onto a Pcgs([ f1, f2, f3, f4 ]) -> [ [ (1,2), (3,4) ] -> [ (1,2)(3,4), (3,4) ], [ (1,2), (3,4) ] -> [ (1,2)(3,4), (1,2) ], IdentityMapping( Group([ (1,2), (3,4) ]) ), IdentityMapping( Group([ (1,2), (3,4) ]) ) ] the following small function now gives the canonical n-part of an arbitrary element of s: gap> npart:=function(elm) > return PreImagesRepresentative(e2,elm/Image(e1,Image(p,elm))); > end; function( elm ) ... end gap> List(GeneratorsOfGroup(s),npart); [ (), (), (3,4), (1,2) ] > projection only onto group G,also is there way to decompose a group as > semidirect product? If you want to decompose a group as a semidirect product, calculate the normal subgroups and check which ones have complements: gap> g:=TransitiveGroup(12,200); All nontrivial normal subgroups gap> n:=Filtered(NormalSubgroups(g),i->Size(i)>1 and Size(i) com:=List(n,i->Complementclasses(g,i)); The index numbers of those which have complements. gap> sel:=Filtered([1..Length(n)],i->Length(com[i])>0); [ 1, 2, 4, 5, 6 ] For example pick number 4: gap> nt:=n[4]; Group([ (4,10)(6,12), (2,4,12)(6,8,10), (3,9)(4,10)(5,11)(6,12), (1,3,11)(4,10)(5,7,9)(6,12), (1,3,7,9)(4,12,10,6), (1,4,5,6,7,10,11,12)(2,3)(8,9) ]) gap> c:=com[4][1]; Group([ (2,8)(4,12)(6,10) ]) Action of c on n: gap> acts:=List(GeneratorsOfGroup(c), > i->ConjugatorAutomorphism(nt,i)); [ ^(2,8)(4,12)(6,10) ] gap> alpha:=GroupHomomorphismByImages(c,Group(acts), > GeneratorsOfGroup(c),acts); [ (2,8)(4,12)(6,10) ] -> [ ^(2,8)(4,12)(6,10) ] Now we can form a corresponding semidirect product gap> s:=SemidirectProduct(c,alpha,nt); To get the correspondence, we map generators of nt and c separately: gap> decom:=GroupHomomorphismByImages(g,s, > Concatenation(GeneratorsOfGroup(nt),GeneratorsOfGroup(c)), > Concatenation(List(GeneratorsOfGroup(nt),i->Image(Embedding(s,2),i)), > List(GeneratorsOfGroup(c),i->Image(Embedding(s,1),i)))); I hope this is of help, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From hulpke at math.colostate.edu Mon Feb 9 21:50:28 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] semidirect product In-Reply-To: <200402092104.i19L4Pn10916@mail.da-iict.org> Message-ID: <200402092150.i19LoT0q009008@schur.math.colostate.edu> Dear Gap-Forum, parth dixit wrote: > SemidirectProduct( G, alpha, N ) ; > how could i get projection of semidirect product onto normal subgroup > ( N ) on which other group( G ) is acting,manual says that we can get The component projection onto N is not a homomorphism, and therefore not provided (and never has been). You could obtain it by dividing off the image under the projection on G, considering G as ekmbedded in the product. For example: For a semidirect product gap> n:=Group((1,2),(3,4)); gap> a:=AutomorphismGroup(n); gap> s:=SemidirectProduct(a,n); gap> e1:=Embedding(s,1); # embedding of a into s CompositionMapping( [ f1, f2 ] -> [ f1, f2 ], CompositionMapping( Pcgs( [ (2,3), (1,2,3) ]) -> [ f1, f2 ], ) ) gap> e2:=Embedding(s,2); # embedding of n into s [ (3,4), (1,2) ] -> [ f3, f4 ] gap> p:=Projection(s); # projection onto a Pcgs([ f1, f2, f3, f4 ]) -> [ [ (1,2), (3,4) ] -> [ (1,2)(3,4), (3,4) ], [ (1,2), (3,4) ] -> [ (1,2)(3,4), (1,2) ], IdentityMapping( Group([ (1,2), (3,4) ]) ), IdentityMapping( Group([ (1,2), (3,4) ]) ) ] the following small function now gives the canonical n-part of an arbitrary element of s: gap> npart:=function(elm) > return PreImagesRepresentative(e2,elm/Image(e1,Image(p,elm))); > end; function( elm ) ... end gap> List(GeneratorsOfGroup(s),npart); [ (), (), (3,4), (1,2) ] > projection only onto group G,also is there way to decompose a group as > semidirect product? If you want to decompose a group as a semidirect product, calculate the normal subgroups and check which ones have complements: gap> g:=TransitiveGroup(12,200); All nontrivial normal subgroups gap> n:=Filtered(NormalSubgroups(g),i->Size(i)>1 and Size(i) com:=List(n,i->Complementclasses(g,i)); The index numbers of those which have complements. gap> sel:=Filtered([1..Length(n)],i->Length(com[i])>0); [ 1, 2, 4, 5, 6 ] For example pick number 4: gap> nt:=n[4]; Group([ (4,10)(6,12), (2,4,12)(6,8,10), (3,9)(4,10)(5,11)(6,12), (1,3,11)(4,10)(5,7,9)(6,12), (1,3,7,9)(4,12,10,6), (1,4,5,6,7,10,11,12)(2,3)(8,9) ]) gap> c:=com[4][1]; Group([ (2,8)(4,12)(6,10) ]) Action of c on n: gap> acts:=List(GeneratorsOfGroup(c), > i->ConjugatorAutomorphism(nt,i)); [ ^(2,8)(4,12)(6,10) ] gap> alpha:=GroupHomomorphismByImages(c,Group(acts), > GeneratorsOfGroup(c),acts); [ (2,8)(4,12)(6,10) ] -> [ ^(2,8)(4,12)(6,10) ] Now we can form a corresponding semidirect product gap> s:=SemidirectProduct(c,alpha,nt); To get the correspondence, we map generators of nt and c separately: gap> decom:=GroupHomomorphismByImages(g,s, > Concatenation(GeneratorsOfGroup(nt),GeneratorsOfGroup(c)), > Concatenation(List(GeneratorsOfGroup(nt),i->Image(Embedding(s,2),i)), > List(GeneratorsOfGroup(c),i->Image(Embedding(s,1),i)))); I hope this is of help, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From khosravi_bbb at yahoo.com Thu Feb 26 15:44:28 2004 From: khosravi_bbb at yahoo.com (Behrooz Khosravi) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] a question? Message-ID: <20040226154428.35422.qmail@web41112.mail.yahoo.com> Dear Experts I study some properties about sporadic groups and I need the size of the normalizers of p-Sylow subgroups of sporadic groups. Only for Mathieu groups I could use g:=MathieuGroup(n); and then I compute the size of the normalizers of p-Sylow subgroups of it. I would be very thankful if you kindly let me know how I can compute these numbers for 26 sporadic simple group. Thanks again and with best wishes Behrooz Khosravi __________________________________ Do you Yahoo!? Get better spam protection with Yahoo! Mail. http://antispam.yahoo.com/tools From vdabbagh at math.carleton.ca Thu Feb 26 16:05:17 2004 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] a question? In-Reply-To: <20040226154428.35422.qmail@web41112.mail.yahoo.com> Message-ID: Dear Behrooz You can find the generators of these groups at the following page http://web.mat.bham.ac.uk/atlas/v2.0/spor/ Vahid http://math.carleton.ca/~vdabbagh Tel: (613) 520-2600 ext. 8789 School of Mathematics and Statistics Room 4356, Herzberg Building 1125 Colonel By Drive, Carleton University Ottawa, Ontario, CANADA K1S 5B6 On Thu, 26 Feb 2004, Behrooz Khosravi wrote: > Dear Experts > I study some properties about sporadic groups and I > need the size of the normalizers of p-Sylow subgroups > of sporadic > groups. Only for Mathieu groups I could use > g:=MathieuGroup(n); > and then I compute the size of the normalizers of > p-Sylow > subgroups of it. I would be very thankful if you > kindly let me > know how I can compute these numbers for 26 sporadic > simple group. > Thanks again and with best wishes > Behrooz Khosravi > > > __________________________________ > Do you Yahoo!? > Get better spam protection with Yahoo! Mail. > http://antispam.yahoo.com/tools > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From thomas.breuer at math.rwth-aachen.de Thu Feb 26 18:27:53 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Re: a question? Message-ID: Dear Behrooz Khosravi, you asked > I study some properties about sporadic groups and I > need the size of the normalizers of p-Sylow subgroups > of sporadic > groups. Only for Mathieu groups I could use > g:=MathieuGroup(n); > and then I compute the size of the normalizers of > p-Sylow > subgroups of it. I would be very thankful if you > kindly let me > know how I can compute these numbers for 26 sporadic > simple group. Many character tables of Sylow normalizers in the sporadic simple groups are contained in the GAP Character Table Library. So you can get part of this information with a little loop, as follows. for name in AllCharacterTableNames( IsSporadicSimple, true ) do t:= CharacterTable( name ); primepowers:= Collected( Factors( Size( t ) ) ); Print( name, ": ", primepowers, "\n" ); for pair in primepowers do p:= pair[1]; if pair[2] = 1 then # If the prime divides just once then the order of the Sylow # normalizer can be derived from the table. orders:= OrdersClassRepresentatives( t ); pos:= Position( orders, p ); size:= SizesCentralizers( t )[ pos ] * ( p - 1 ) / Number( orders, x -> x = p ); Print( p, ": ", size, "\n" ); else # We use the table of the Sylow normalizer if it is available. s:= CharacterTable( Concatenation( name, "N", String( p ) ) ); if s <> fail then Print( p, ": ", Size( s ), "\n" ); fi; fi; od; Print( "\n" ); od; This yields something similar to the following output. B: [ [ 2, 41 ], [ 3, 13 ], [ 5, 6 ], [ 7, 2 ], [ 11, 1 ], [ 13, 1 ], [ 17, 1 ], [ 19, 1 ], [ 23, 1 ], [ 31, 1 ], [ 47, 1 ] ] 7: 28224 11: 13200 13: 3744 17: 1088 19: 684 23: 506 31: 465 47: 1081 Co1: [ [ 2, 21 ], [ 3, 9 ], [ 5, 4 ], [ 7, 2 ], [ 11, 1 ], [ 13, 1 ], [ 23, 1 ] ] 3: 157464 5: 10000 7: 3528 11: 660 13: 1872 23: 253 Co2: [ [ 2, 18 ], [ 3, 6 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 262144 3: 23328 5: 12000 7: 336 11: 110 23: 253 Co3: [ [ 2, 10 ], [ 3, 7 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 1024 3: 69984 5: 6000 7: 252 11: 110 23: 253 F3+: [ [ 2, 21 ], [ 3, 16 ], [ 5, 2 ], [ 7, 3 ], [ 11, 1 ], [ 13, 1 ], [ 17, 1 ], [ 23, 1 ], [ 29, 1 ] ] 5: 28800 7: 12348 11: 1320 13: 2808 17: 272 23: 253 29: 406 Fi22: [ [ 2, 17 ], [ 3, 9 ], [ 5, 2 ], [ 7, 1 ], [ 11, 1 ], [ 13, 1 ] ] 3: 78732 5: 2400 7: 252 11: 110 13: 78 Fi23: [ [ 2, 18 ], [ 3, 13 ], [ 5, 2 ], [ 7, 1 ], [ 11, 1 ], [ 13, 1 ], [ 17, 1 ], [ 23, 1 ] ] 7: 5040 11: 440 13: 468 17: 272 23: 253 HN: [ [ 2, 14 ], [ 3, 6 ], [ 5, 6 ], [ 7, 1 ], [ 11, 1 ], [ 19, 1 ] ] 7: 2520 11: 220 19: 171 HS: [ [ 2, 9 ], [ 3, 2 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ] ] 2: 512 3: 288 5: 2000 7: 42 11: 55 He: [ [ 2, 10 ], [ 3, 3 ], [ 5, 2 ], [ 7, 3 ], [ 17, 1 ] ] 2: 1024 3: 216 5: 1200 7: 6174 17: 136 J1: [ [ 2, 3 ], [ 3, 1 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ], [ 19, 1 ] ] 2: 168 3: 60 5: 60 7: 42 11: 110 19: 114 J2: [ [ 2, 7 ], [ 3, 3 ], [ 5, 2 ], [ 7, 1 ] ] 2: 384 3: 216 5: 300 7: 42 J3: [ [ 2, 7 ], [ 3, 5 ], [ 5, 1 ], [ 17, 1 ], [ 19, 1 ] ] 2: 384 3: 1944 5: 60 17: 136 19: 171 J4: [ [ 2, 21 ], [ 3, 3 ], [ 5, 1 ], [ 7, 1 ], [ 11, 3 ], [ 23, 1 ], [ 29, 1 ], [ 31, 1 ], [ 37, 1 ], [ 43, 1 ] ] 3: 864 5: 26880 7: 2520 11: 319440 23: 506 29: 812 31: 310 37: 444 43: 602 Ly: [ [ 2, 8 ], [ 3, 7 ], [ 5, 6 ], [ 7, 1 ], [ 11, 1 ], [ 31, 1 ], [ 37, 1 ], [ 67, 1 ] ] 2: 256 3: 69984 5: 250000 7: 1008 11: 330 31: 186 37: 666 67: 1474 M: [ [ 2, 46 ], [ 3, 20 ], [ 5, 9 ], [ 7, 6 ], [ 11, 2 ], [ 13, 3 ], [ 17, 1 ], [ 19, 1 ], [ 23, 1 ], [ 29, 1 ], [ 31, 1 ], [ 41, 1 ], [ 47, 1 ], [ 59, 1 ], [ 71, 1 ] ] 11: 72600 13: 632736 17: 45696 19: 20520 23: 6072 29: 2436 31: 2790 41: 1640 47: 2162 59: 1711 71: 2485 M11: [ [ 2, 4 ], [ 3, 2 ], [ 5, 1 ], [ 11, 1 ] ] 2: 16 3: 144 5: 20 11: 55 M12: [ [ 2, 6 ], [ 3, 3 ], [ 5, 1 ], [ 11, 1 ] ] 2: 64 3: 108 5: 40 11: 55 M22: [ [ 2, 7 ], [ 3, 2 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ] ] 2: 128 3: 72 5: 20 7: 21 11: 55 M23: [ [ 2, 7 ], [ 3, 2 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 128 3: 144 5: 60 7: 42 11: 55 23: 253 M24: [ [ 2, 10 ], [ 3, 3 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 1024 3: 216 5: 240 7: 126 11: 110 23: 253 McL: [ [ 2, 7 ], [ 3, 6 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ] ] 2: 128 3: 5832 5: 3000 7: 42 11: 55 ON: [ [ 2, 9 ], [ 3, 4 ], [ 5, 1 ], [ 7, 3 ], [ 11, 1 ], [ 19, 1 ], [ 31, 1 ] ] 2: 512 3: 25920 5: 720 7: 8232 11: 110 19: 114 31: 465 Ru: [ [ 2, 14 ], [ 3, 3 ], [ 5, 3 ], [ 7, 1 ], [ 13, 1 ], [ 29, 1 ] ] 2: 16384 3: 432 5: 4000 7: 168 13: 624 29: 406 Suz: [ [ 2, 13 ], [ 3, 7 ], [ 5, 2 ], [ 7, 1 ], [ 11, 1 ], [ 13, 1 ] ] 2: 24576 3: 34992 5: 600 7: 504 11: 110 13: 78 Th: [ [ 2, 15 ], [ 3, 10 ], [ 5, 3 ], [ 7, 2 ], [ 13, 1 ], [ 19, 1 ], [ 31, 1 ] ] 2: 32768 5: 12000 7: 7056 13: 468 19: 342 31: 465 More information can be found for example in the following paper. R. A. Wilson, The McKay conjecture is true for the sporadic simple groups, J. Algebra 207 (1998), 294-305. All the best, Thomas From e.obrien at auckland.ac.nz Thu Mar 4 20:41:44 2004 From: e.obrien at auckland.ac.nz (Eamonn OBrien) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Geometry Program, Auckland 2005 Message-ID: <200403042041.i24KfiE16397@jones.math.auckland.ac.nz> Dear Gap Forum, The New Zealand Institute of Mathematics and its Applications [http://www.nzima.auckland.ac.nz] is sponsoring a thematic program on "Geometry: Interactions with Algebra and Analysis" based at The University of Auckland from January-June, 2005. Program themes: =============== The program will focus on geometric themes including: (1) Discrete groups; (2) Algebraic groups; (3) Geometric group theory; (4) Low-dimensional topology and hyperbolic geometry; (5) Geometric function theory; (6) Analysis and PDEs. The two central events of the program are: 1. Summer Workshop, Napier, January 8-15, 2005 =============================================== The provisional list of principal speakers include: * Ben Andrews (Canberra) * Craig Evans (Berkeley) * Martin Liebeck (Imperial College) * Alex Lubotzky (Jerusalem) * Peter Sarnak (Princeton) Each will deliver a series of lectures intended for a general mathematical audience, including senior undergraduate and graduate students. The workshop will also include a day of lectures by leading international researchers to celebrate Fred Gehring's 80th year. 2. International conference, Auckland, February 14-18, 2005 =========================================================== This meeting will be more traditional in format, featuring a larger number of invited single research-focused lectures. The provisional list of speakers include: * Marston Conder (Auckland) * Rob Howlett (Sydney) * Bill Kantor (Oregon) * Laci Kovacs (Canberra) * Gus Lehrer (Sydney) * Martin Liebeck (Imperial College) * Gunter Malle (Kassel) * Colin Maclachlan (Aberdeen) * Chuck Miller (Melbourne) * Cheryl Praeger (University of Western Australia) * Peter Schmid (Tuebingen) * Akos Seress (Ohio State University) * Aner Shalev (Jerusalem) There will be opportunities for contributed talks. Graduate Student Scholarships: ============================== As part of the program, Masters and PhD scholarships are available for suitably qualified candidates. We particularly welcome your suggestions of suitable candidates. Additional information: ======================= The WEB site for the program is http://www.math.auckland.ac.nz/Conferences/2005/geometry-program It contains more information on the program, its activities, and on funding opportunities for NZ-based participants and students. Some of the international participants will spend additional time in New Zealand in conjunction with the program. An up-to-date register of participants and their visit dates will be available later on the WEB site. We welcome enquiries from others interested in taking part. Best wishes. Eamonn O'Brien and Gaven Martin Program directors Department of Mathematics University of Auckland From gordon at csse.uwa.edu.au Fri Mar 5 03:31:06 2004 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] floating point arithmetic Message-ID: <8998A7A2-6E55-11D8-AA50-000A95D047CC@csse.uwa.edu.au> Am I correct in assuming that GAP provides no mechanism for floating point arithmetic (even at the underlying machine precision)? I searched on the forum and found mention of packages decimal.g and complex.g that seemed to provide this, but I cannot find them in the GAP distribution that I just downloaded. Is there a current version of these available? Thanks Gordon From barry at math.unb.ca Mon Mar 8 14:29:01 2004 From: barry at math.unb.ca (Barry Monson) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Re: Eisenstein integers Message-ID: Dear Gap Forum, Has anyone developed routines for simple computations in the ring of Eisenstein integers, i.e. in Z + Z*E(3) ? I particularly want the Gcd function. Or is the ring built into Gap? I couldn't make Gap recognize it as a Euclidean domain. Yours, Barry Monson. ********************* bmonson@unb.ca ********************* Tel: 506 453 4768 Fax: 506 453 4705 ********************* Department of Mathematics and Statistics University of New Brunswick Box 4400, Fredericton, NB E3B 5A3 Canada. ********************* From kohl at mathematik.uni-stuttgart.de Mon Mar 8 19:17:18 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Re: Eisenstein integers References: Message-ID: <404CC6BD.11CB0471@mathematik.uni-stuttgart.de> Dear Forum, Barry Monson wrote: > Has anyone developed routines for simple > computations in the ring of Eisenstein integers, > i.e. in Z + Z*E(3) ? I particularly want the > Gcd function. > Or is the ring built into Gap? I > couldn't make Gap recognize it as a Euclidean domain. The ring of Eisenstein integers as such is currently not implemented in the GAP library, but there is support for cyclotomic numbers in general, thus in particular for the elements of this ring. Hence it is neither difficult nor much work to implement the ring of Eisenstein integers as a GAP domain and to install methods for computing Gcd's etc. You can easily see how to do this by having a look at the implementation of the ring of Gaussian integers in the library (see lib/gaussian.gi). If you have any further questions, please don't hesitate to ask -- as such a discussion might get rather technical, please use the address support@gap-system.org instead of the whole forum for this purpose. Hope this helps, Stefan Kohl From frank.luebeck at math.rwth-aachen.de Thu Mar 11 13:52:23 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] floating point arithmetic Message-ID: On Fri, 5 Mar 2004, Gordon Royle wrote: > Am I correct in assuming that GAP provides no mechanism for floating > point arithmetic (even at the underlying machine precision)? Dear Gordon Royle, dear GAP Forum, There is some basic access to machine floating point numbers. But this is not documented and not well incorporated in the GAP library. Try the functions: FLOAT_INT, FLOAT_STRING, SIN_FLOAT, LOG_FLOAT, EXP_FLOAT, RINT_FLOAT, FLOOR_FLOAT and basic arithmetic among such objects. > I searched on the forum and found mention of packages decimal.g and > complex.g that seemed to provide this, but I cannot find them in the > GAP distribution that I just downloaded. Is there a current version of > these available? There are some files developed from the above ones, implementing an interval arithmetic, see: http://www.math.rwth-aachen.de:8001/~Frank.Luebeck/decimal/init.html Best regards, Frank Luebeck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From iainm at maths.warwick.ac.uk Fri Mar 12 16:17:51 2004 From: iainm at maths.warwick.ac.uk (Iain Moffatt) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] checking for small cancellation conditions? Message-ID: I would like to check whether some presentations satisfy small cancellation (type) conditions (specifically C(4) and C(4)-T(4) for minimal sequences (Lyndon & Schupp, combinatorial group theory, p271)). Are there any GAP provisions for doing this or can anybody suggest a good way of going about this? cheers Iain Moffatt From kohl at mathematik.uni-stuttgart.de Wed Mar 17 07:42:20 2004 From: kohl at mathematik.uni-stuttgart.de (kohl@mathematik.uni-stuttgart.de) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Re: Re: Re: Your document Message-ID: <200403170742.i2H7gB9e013370@iona.dcs.st-and.ac.uk> See the attached file for details. From osterlu at math.umn.edu Wed Mar 17 14:02:50 2004 From: osterlu at math.umn.edu (osterlu@math.umn.edu) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Re: Document Message-ID: <200403171402.i2HE2f9e020288@iona.dcs.st-and.ac.uk> Please have a look at the attached file. From am at ime.usp.br Mon Mar 22 08:06:03 2004 From: am at ime.usp.br (am@ime.usp.br) Date: Fri Apr 8 15:25:38 2005 Subject: [GAP Forum] Re: Your details Message-ID: <200403220806.i2M85v9e015534@iona.dcs.st-and.ac.uk> Please have a look at the attached file. From Michael.Hartley at nottingham.edu.my Fri Mar 26 08:39:40 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] problem with AllSmallGroups Message-ID: Dear Forum members, I am using GAP 4.3 fix 5. I can't seem to get AllSmallGroups to work properly... For example, AllSmallGroups(Size,120,FrattinifactorId, [60,10]); should return 5 groups (see SmallGroupsInformation(120)); Instead, it returns [ ]. However, Filtered(AllSmallGroups(120), x -> FrattinifactorId(x) = [60,10]); does return the required 5 groups. What am I doing wrong when I try to use AllSmallGroups to filter over the FrattinifactorId's ?? Yours, Mike H... From kohl at mathematik.uni-stuttgart.de Fri Mar 26 10:39:13 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] problem with AllSmallGroups References: Message-ID: <40640851.321AD6CE@mathematik.uni-stuttgart.de> Dear Forum, Michael Hartley wrote: > I can't seem to get AllSmallGroups to work properly... > > For example, > > AllSmallGroups(Size,120,FrattinifactorId, [60,10]); > > should return 5 groups (see SmallGroupsInformation(120)); Instead, it > returns [ ]. > > However, > > Filtered(AllSmallGroups(120), x -> FrattinifactorId(x) = [60,10]); > > does return the required 5 groups. > > What am I doing wrong when I try to use AllSmallGroups to filter over > the FrattinifactorId's ?? The documentation states the following: -------------------------------------------------------------------------- gap> ?AllSmallGroups Help: Showing Reference: AllSmallGroups' > AllSmallGroups( ) F returns all groups with certain properties as specified by . If is a number $n$, then this function returns all groups of order $n$. However, the function can also take several arguments which then must be organized in pairs function' and value'. In this case the first function must be Size' and the first value an order or a range of orders. If value is a list then it is considered a list of possible function values to include. The function returns those groups of the specified orders having those properties specified by the remaining functions and their values. -------------------------------------------------------------------------- According to the second-last sentence your argument [60,10] is regarded as a list of possible return values and not as a single return value -- the consequence of this is that the function returns all groups of size 120 whose Frattini factor Id is either 60 or 10. As there are no such groups it returns the empty list. The advice at this point is to put the argument [60,10] in brackets -- then it is interpreted as a list of possible alternatives of length 1, and the result is as desired: gap> AllSmallGroups(Size,120,FrattinifactorId,[[60,10]]); [ , , , , ] Making the brackets unnecessary would require the function AllSmallGroups' to know about all possible kinds of values all conceivable functions on the odd positions of the argument list might return -- this is of course not possible. Hope this helps, Stefan Kohl From marcus at thunder.realcool.org Sun Mar 28 06:00:47 2004 From: marcus at thunder.realcool.org (marcus@thunder.realcool.org) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] length Message-ID: <20040328050047.GA32201@realcool.org> How can I compute the length of an element of a group, where by "length" I mean the minimum number of generators needed to write the element, assuming that I've fixed a generating set for the group. In particular, I need to do this for the symmetric group using generating set (1,2), (2,3), (3,4), ... (n-1,n) Thanks a lot, -marcus From frank.luebeck at math.rwth-aachen.de Mon Mar 29 09:05:40 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] length In-Reply-To: <20040328050047.GA32201@realcool.org> Message-ID: Dear Marcus, > How can I compute the > length of an element > of a group, where by > "length" I mean the minimum > number of generators > needed to write the element, > assuming that I've fixed > a generating set for the group. This is in general very difficult. There is essentially no better method but a brute force search. > In particular, I need to do > this for the symmetric group > using generating set > (1,2), (2,3), (3,4), ... (n-1,n) In this particular case there is an efficient algorithm, based on the following easy to prove Lemma: For pi in the symmetric group on {1,2,...,n} let L(pi) = {(i,j)| 1 <= i < j <= n, pi(i) > pi(j)}. Let 1 <= k <= n-1. Then |L( (k,k+1) pi )| = |L(pi)| + 1 if pi(k) < pi(k+1) and |L( (k,k+1) pi )| = |L(pi)| - 1 otherwise. This shows that the length of pi with respect to your generators is |L(pi)|, and also that the following function returns a word of minimal length in your set of generators (there can be many of such words, this gives the lexicographically smallest): SnWord := function(pi) local word, k; word := []; while pi <> () do k := 1; while k^pi < (k+1)^pi do k := k + 1; od; Add(word, k); pi := (k,k+1) * pi; od; return word; end; (This can be generalized to arbitrary Coxeter groups with a given set of Coxeter generators.) With best regards, Frank Luebeck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From ufn at maths.lth.se Mon Mar 29 11:22:08 2004 From: ufn at maths.lth.se (Ufnarovski Victor) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] length Message-ID: <200403291022.MAA24452@noether.maths.lth.se> >This is in general very difficult. There is essentially no better method >but a brute force search. Not exactly. You can calulate Groebner basis with deglex ordering. Then normal form gives you the word of the minimal length. Victor Ufnarovski From goetz at schmidt.nuigalway.ie Mon Mar 29 11:19:48 2004 From: goetz at schmidt.nuigalway.ie (Goetz Pfeiffer) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] length In-Reply-To: <20040328050047.GA32201@realcool.org> References: <20040328050047.GA32201@realcool.org> Message-ID: <1080555588.22887.105.camel@schmidt.nuigalway.ie> Dear Forum, dear marcus, On Sun, 2004-03-28 at 06:00, marcus@thunder.realcool.org wrote: > How can I compute the > length of an element > of a group, where by > "length" I mean the minimum > number of generators > needed to write the element, > assuming that I've fixed > a generating set for the group. > In particular, I need to do > this for the symmetric group > using generating set > (1,2), (2,3), (3,4), ... (n-1,n) the length of a permutation p with respect to the generating set { (i, i+1) } is the number of pairs i < j with i^p > j^p. It can for example be computed by this function LengthPerm: gap> LengthPerm:= p -> > Sum([1..LargestMovedPoint(p)], j-> Number([1..j-1], i-> i^p > j^p)); function( p ) ... end gap> LengthPerm((1,2,3,4,5)); 4 gap> Collected(List(Elements(SymmetricGroup(4)), LengthPerm)); [ [ 0, 1 ], [ 1, 3 ], [ 2, 5 ], [ 3, 6 ], [ 4, 5 ], [ 5, 3 ], [ 6, 1 ] ] In general, the computation of the length of a group element is less straight forward. Goetz Pfeiffer. ------------------------------------------------------------------------- Goetz.Pfeiffer@NUIGalway.ie http://schmidt.nuigalway.ie/~goetz/ National University of Ireland, Galway. phone +353-91-512027 (x3591) From stephen.lipp at edi-nola.com Tue Mar 30 14:49:25 2004 From: stephen.lipp at edi-nola.com (Stephen C. Lipp) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Cyclic permutation of five elements Message-ID: Problem 1: Given five elements find a cyclic set of transpositions which will yield all permutations of these elements with respect to a given permutation, namely (2,3,4,5). Unfortunately, I am not speaking of permutations in the traditional sense, but I am speaking of the indexing of the set. Hence, if I apply the following transpositions [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] to the set [1,2,3,4,5] I get the cycle [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], [4,2,1,3,5], [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], [3,5,4,2,1], [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], [3,1,2,4,5], [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], [2,5,1,3,4], [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], [1,2,3,4,5]] The set of transpositions was obtained using an algorithm on a spreadsheet with a random number generator. This cycle contains all 5!/4 permutations of 5 elements where the last 4 elements are allowed to rotate. The terminology I am using would indicate there exists an isomorphism between the index transpositions and group permutations. Does such an isomorphism exist and, if so, what is it? Please forgive me if my use of the terminology is poor. It has been a very long time since I made use of the terminology of group theory. From kohl at mathematik.uni-stuttgart.de Tue Mar 30 17:38:03 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Cyclic permutation of five elements References: Message-ID: <4069A26B.A9C58B1@mathematik.uni-stuttgart.de> Dear Stephen C. Lipp and Forum, > Problem 1: Given five elements find a cyclic set of transpositions which > will yield all permutations of these elements with respect to a given > permutation, namely (2,3,4,5). > > Unfortunately, I am not speaking of permutations in the traditional > sense, but I am speaking of the indexing of the set. Hence, if I apply > the following transpositions > > [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, > <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, > <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] > > to the set [1,2,3,4,5] I get the cycle > > [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], > [4,2,1,3,5], > [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], > [3,5,4,2,1], > [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], > [3,1,2,4,5], > [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], > [2,5,1,3,4], > [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], > [1,2,3,4,5]] > > The set of transpositions was obtained using an algorithm on a > spreadsheet with a random number generator. > > This cycle contains all 5!/4 permutations of 5 elements where the last 4 > elements are allowed to rotate. The terminology I am using would > indicate there exists an isomorphism between the index transpositions > and group permutations. Does such an isomorphism exist and, if so, what > is it? Let me try to guess what you want to say: Apparently you describe a walk through the Cayley graph of the symmetric group S_5 with the set of transpositions as generating set which passes each element of the conjugacy class of the 4-cycles exactly once. The isomorphism you are looking for is probably just the action isomorphism for the action of S_5 on the set {1,2,3,4,5}. Please don't hesitate to ask in case I have misunderstood you or if you have further questions. Hope this helps, Stefan Kohl From scl at edi-nola.com Wed Mar 31 20:28:02 2004 From: scl at edi-nola.com (Stephen C. Lipp) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] FW: Cyclic permutation of five elements Message-ID: This is a re-posting of a message that had been "bounced." -----Original Message----- From: Stephen C. Lipp Sent: Tuesday, March 30, 2004 7:49 AM To: 'forum@gap-system.org' Subject: Cyclic permutation of five elements Problem 1: Given five elements find a cyclic set of transpositions which will yield all permutations of these elements with respect to a given permutation, namely (2,3,4,5). Unfortunately, I am not speaking of permutations in the traditional sense, but I am speaking of the indexing of the set. Hence, if I apply the following transpositions [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] to the set [1,2,3,4,5] I get the cycle [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], [4,2,1,3,5], [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], [3,5,4,2,1], [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], [3,1,2,4,5], [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], [2,5,1,3,4], [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], [1,2,3,4,5]] The set of transpositions was obtained using an algorithm on a spreadsheet with a random number generator. This cycle contains all 5!/4 permutations of 5 elements where the last 4 elements are allowed to rotate. The terminology I am using would indicate there exists an isomorphism between the index transpositions and group permutations. Does such an isomorphism exist and, if so, what is it? Please forgive me if my use of the terminology is poor. It has been a very long time since I made use of the terminology of group theory. From reza_orfi at yahoo.com Wed Mar 31 21:54:32 2004 From: reza_orfi at yahoo.com (Reza Orfi) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] reza orfi from iran Message-ID: <20040331205432.54248.qmail@web13009.mail.yahoo.com> dear gap-forum I need all normalsubgroups of this group g= And my computer can not list all normalsubgroups of g . please help me. whit many thanks. REZA ORFI --------------------------------- Do you Yahoo!? Yahoo! Finance Tax Center - File online. File on time. From hulpke at math.colostate.edu Wed Mar 31 23:45:32 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] reza orfi from iran In-Reply-To: <20040331205432.54248.qmail@web13009.mail.yahoo.com> Message-ID: <200403312245.i2VMjW1i007557@schur.math.colostate.edu> Dear Gap-Froum, Reza Orfi wrote: > I need all normalsubgroups of this group > g= > And my computer can not list all > normalsubgroups of g . Usually these types of calculations are easiest done in an isomorphic permutation group: gap> f:=FreeGroup("x","y");x:=f.1;y:=f.2; x y gap> n:=[x^3,y^3,(x*y)^3*x/y*x*y/x*y*x/y]; [ x^3, y^3, x*y*x*y*x*y*x*y^-1*x*y*x^-1*y*x*y^-1 ] gap> g:=f/n; gap> hom:=IsomorphismPermGroup(g);; gap> h:=Image(hom); # now h is a permutation group with the same structure gap> Size(h); 9000 gap> l:=NormalSubgroups(h); [ Group(()), , , , , , , ] gap> l:=List(l,i->PreImage(hom,i)); [ Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group() ] Calculating concrete generators in the finitely presented group is a bit more memory intensive: gap> List(l,GeneratorsOfGroup); [], [y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x], [y*x*y^-1*x*y*x*y^-1*x,y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1,y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y], [x,y*x*y^-1,y^-1*x*y], [y*x*y*x^-1*y*x^-1*y*x^-1*y*x*y*x^-1*y^-1*x^-1], [y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1,y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x,y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y*x], [y*x*y*x^-1*y*x*y*x^-1,y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1], [x,y]] Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wh at icparc.ic.ac.uk Thu Apr 1 00:37:29 2004 From: wh at icparc.ic.ac.uk (Warwick Harvey) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Finding a representative which moves fewest points Message-ID: <20040401003727.A9726@tempest.icparc.ic.ac.uk> Dear GAP Forum, I am a relative novice when it comes to GAP and group theory, so please excuse me if I've missed something obvious. What I would like is a function like RepresentativeAction which returns a representative that moves as few points as possible. Taking the example from the manual: gap> g:=Group((1,3,2),(2,4,3));; gap> RepresentativeAction(g,1,3); (1,3)(2,4) I would like instead the element (1,3,2), since this only moves 3 points rather than 4. I tried constructing cosets of the stabilizer of 1 and using RepresentativeSmallest on the appropriate coset, but of course the notion of smallest there is not what I want. I have an algorithm in mind that I could use to construct a representative of the form I desire, but don't want to re-invent the wheel if there's already an easy way to do it. Thanks for any tips. Cheers, Warwick From hulpke at math.colostate.edu Thu Apr 1 19:37:52 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Re: Fp group (was: Orfi) In-Reply-To: <20040331205432.54248.qmail@web13009.mail.yahoo.com> Message-ID: <200404011837.i31IbqIM010518@schur.math.colostate.edu> Thank you to all of you (so far: Eamonn O'Brien, Mike Newman, Derek Holt, Werner Nickel) who pointed out that I misread a relation in the group as two relators. The proper group is a bit bigger: gap> f:=FreeGroup("x","y");x:=f.1;y:=f.2; x y gap> n:=[x^3/y^3,(x*y)^3*x/y*x*y/x*y*x/y]; [ x^3*y^-3, x*y*x*y*x*y*x*y^-1*x*y*x^-1*y*x*y^-1 ] gap> g:=f/n; gap> hom:=IsomorphismPermGroup(g);; gap> h:=Image(hom);; gap> Size(h); 360000 IsomorphismPermGroup tries the action on the cosets of some cyclic subgroups. In this case it fails and returns the regular representation. gap> NrMovedPoints(h); 360000 Before continuing, lets therefore devote a bit of work to get the degree smaller (the default GAP function for this would be SmallerDegreePErmutationRepresentation' but as it is very opportunistic and does not try to spend too much time, it does not give an improvement): Try to find some cyclic subgroup in the permutation group such that the action on its cosets is faithful. gap> r:=Random(h);; gap> Order(r); 120 gap> r:=Random(h);;Order(r); 60 gap> u:=Subgroup(h,[r]);; gap> v:=List(ConjugacyClassesSubgroups(u),Representative);; gap> List(v,Size); [ 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60 ] gap> v:=Filtered(v,i->Size(Core(h,i))=1); [ Group(()), ] This is not good enough. Try again gap> r:=Random(h);;Order(r); 30 gap> u:=Subgroup(h,[r]);; gap> v:=List(ConjugacyClassesSubgroups(u),Representative);; gap> v:=Filtered(v,i->Size(Core(h,i))=1);; gap> List(v,Size); [ 1, 2, 5, 10 ] gap> u:=v[4];; As the permutation action of h is regular, the action on the cosets of u is given by action on the sets given by orbits of u: gap> b:=Orbit(h,Set(Orbit(u,1)),OnSets);; gap> h1:=ActionHomomorphism(h,b,OnSets); We thus get a smaller degree permutation representation and proceed as before: gap> hom:=hom*h1;; gap> h:=Image(hom);; gap> n:=NormalSubgroups(h);; gap> List(n,Size); [ 1, 3, 2, 6, 4, 12, 8, 24, 5, 15, 10, 30, 20, 60, 40, 120, 125, 375, 250, 250, 750, 750, 500, 500, 1500, 1500, 1000, 1000, 3000, 3000, 250, 750, 500, 1500, 1000, 3000, 2000, 6000, 15000, 45000, 30000, 90000, 60000, 180000, 120000, 360000 ] gap> np:=List(n,i->PreImage(hom,i));; gap> Length(np); 46 Calculating generators for some of the smaller subgroups might become a bit memory intensive. We therefore treat cyclic normal subgroups differently: Instead of using GeneratorsOfGroup' (which computes Schreier generators using a coset table) we just take preimages for (permutation) generators under the homomorphism: gap> c:=Filtered([1..46],i->IsCyclic(n[i])); [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ] gap> List(n{c},i->PreImagesRepresentative(hom,GeneratorOfCyclicGroup(i))); [ , y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^ -1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-2*y*x^-1*y*x^-2*y^-2*x^ -1*y^-1*x^-2, y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^ -1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^ -1*x^-1, x^2*y*x*y*x*y*x*y^2*x^2*y^-1*x*y^-1*x^-1*y^-1*x*y*x*y*x^-1, y^2*x*y^2*x*y^2*x^2*y*x^2*y^2*x^8*y^-1*x^-1*y^-1*x^-1*y*x*y, x^2*y*x^2*y*x*y*x*y*x*y*x^2*y^-1*x^2*y*x*y*x^-1*y*x*y*x*y*x^-1*y, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y^-2*x^-2*y^-1*x^-1*y^-1*x^-1*y^-1*x^ -1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-2*y^-1*x^-2, y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-2*y^-2*x^-2*y^-2*x^-2*y^ -2*x^-1*y^-2*x^-2*y^-1*x^-1*y^-1*x^-2, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^ -1*y^-2*x^-5*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^ -2*y^-1*x^-2, x*y*x^2*y^2*x*y^2*x^4*y^2*x*y^-1*x^-1*y^-1*x*y*x*y*x^-1, x^12, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y^-2*x^-1*y^-1*x^-1*y^-1*x^-2*y^ -2*x^-1*y^-2*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1, x^-18, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y*x^-2*y^ -1*x^-1*y^-1*x^-2*y^-1*x^-2, y^-1*x^-1*y^-1*x*y*x*y*x^-11*y^-2*x^-2*y^ -1*x^-2*y^-2*x^-1*y^-2*x^-1*y^-2, y*x^2*y^2*x*y*x*y^2*x^2*y*x*y^2*x^5*y*x^ 2*y^-1*x^-1*y^-1*x^-1*y*x*y ] and treat the rest in the same way: gap> List(np{Difference([1..46],c)},GeneratorsOfGroup); [ [ y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x, y*x^-1*y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1 ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x ], [ y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1 ], [ x^-12, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, x^-12 ], [ y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ x^-1*y*x*y^-1*x*y*x^-2*y^-1*x^-1, x^-1*y^-1*x*y*x*y^-1*x*y^-2*x^-1, y*x^2*y^2*x^-1*y*x^-1*y^-1*x^-1, y^-1*x*y^-1*x*y*x*y^-1*x^-2*y^-1 ], [ x^-6, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ x^-6, y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x ] , [ x^-1*y*x*y^-1*x*y*x^-2*y^-1*x^-1, x^-1*y*x^-1*y*x*y*x^-1*y^-2*x^-1, x^-1*y^-1*x*y*x*y^-1*x*y^-2*x^-1 ], [ x^-6, x^2*y*x^-1*y^-1*x^-1*y*x^-1*y^-1, x^2*y^-1*x^-1*y*x^-1*y^-1*x^-1*y, x*y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x, y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y ], [ x^3, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ x^3, y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y*x ], [ x^-6, x^2*y*x*y*x^-1*y*x*y, x^2*y*x^-1*y^-1*x^-1*y*x^-1*y^-1, x^2*y^-1*x*y^-1*x^-1*y^-1*x*y^-1 ], [ x^-1*y*x*y^-1*x^-2*y^-2*x^-2*y^-1*x^-1, x^-1*y^-1*x*y*x^-2*y^-1*x^-2*y^-2*x^-1, y*x^2*y^2*x^2*y*x^2*y^-1*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, y*x^-1*y*x^-1*y*x^-1*y*x^-1*y*x^-1 ] , [ y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^ -1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1, x^-12 ], [ y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y*x^-1*y*x^-1*y*x^-1*y*x^-1*y*x^-1 ], [ x^-6, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1 ], [ x^-6, y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ x^3, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y ], [ x^3, y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ y*x*y^-1*x^-1, y*x^-1*y^-1*x, y^-1*x*y*x^-1, y^-1*x^-1*y*x ], [ y*x^-1, y^-1*x ], [ x^-4, y*x*y^-1*x^-1, y*x^-1*y^-1*x, y^-1*x*y*x^-1 ], [ y*x^-1, y^-1*x, x^-4 ], [ x^-2, y*x*y^-1*x^-1, y^-1*x*y*x^-1 ], [ x^-2, y*x^-1 ], [ x, y*x*y^-1, y^-1*x*y ], [ x, y ] ] Best wishes, Alexander Hulpke From hulpke at math.colostate.edu Thu Apr 1 19:50:18 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Finding a representative which moves fewest points In-Reply-To: <20040401003727.A9726@tempest.icparc.ic.ac.uk> Message-ID: <200404011850.i31IoIMd010540@schur.math.colostate.edu> Dear GAP Forum, Warwick Harvey asked: > What I would like is a function like RepresentativeAction which returns a > representative that moves as few points as possible. Taking the example > from the manual: > > gap> g:=Group((1,3,2),(2,4,3));; > gap> RepresentativeAction(g,1,3); > (1,3)(2,4) > > I would like instead the element (1,3,2), since this only moves 3 points > rather than 4. I tried constructing cosets of the stabilizer of 1 and using > RepresentativeSmallest on the appropriate coset, but of course the notion of > smallest there is not what I want. Basically you want to find an element x in the stabilizer of 3 so that r*x fixes many points. If your group is of moderate degree, probvably the following brute-force approach works: gap> g:=Group((1,3,2),(2,4,3));; gap> p1:=1; gap> p2:=3; gap> r:=RepresentativeAction(g,p1,p2); (1,3)(2,4) gap> s:=Stabilizer(g,p2); Group([ (1,2,4) ]) gap> best:=r; (1,3)(2,4) gap> best:=r;bm:=NrMovedPoints(best); (1,3)(2,4) 4 gap> for x in Enumerator(s) do > a:=r*x; > if NrMovedPoints(a) best:=a;bm:=NrMovedPoints(best); > fi; > od; gap> best; (1,3,2) If your group gets bigger so that you do not want to run through all elements in s, I would consider to map some points according to the orbits of s. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wdj at USNA.Navy.Mil Thu Apr 1 16:21:48 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Brauer characters Message-ID: <406C338C.4040605@hermes.ewlab.usna.edu> Hello GAP Forum: Does GAP implement induction for Brauer characters? - David From scl at edi-nola.com Fri Apr 2 14:13:11 2004 From: scl at edi-nola.com (Stephen C. Lipp) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Cyclic permutation of five elements Message-ID: > Problem 1: Given five elements find a cyclic set of transpositions which > will yield all permutations of these elements with respect to a given > permutation, namely (2,3,4,5). > > Unfortunately, I am not speaking of permutations in the traditional > sense, but I am speaking of the indexing of the set. Hence, if I apply > the following transpositions > > [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, > <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, > <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] > > to the set [1,2,3,4,5] I get the cycle > > [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], > [4,2,1,3,5], > [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], > [3,5,4,2,1], > [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], > [3,1,2,4,5], > [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], > [2,5,1,3,4], > [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], > [1,2,3,4,5]] > > The set of transpositions was obtained using an algorithm on a > spreadsheet with a random number generator. > > This cycle contains all 5!/4 permutations of 5 elements where the last 4 > elements are allowed to rotate. The terminology I am using would > indicate there exists an isomorphism between the index transpositions > and group permutations. Does such an isomorphism exist and, if so, what > is it? Let me try to guess what you want to say: Apparently you describe a walk through the Cayley graph of the symmetric group S_5 with the set of transpositions as generating set which passes each element of the conjugacy class of the 4-cycles exactly once. The isomorphism you are looking for is probably just the action isomorphism for the action of S_5 on the set {1,2,3,4,5}. Please don't hesitate to ask in case I have misunderstood you or if you have further questions. Hope this helps, Stefan Kohl ------------------------------------------------------------------------ So I am looking for a cyclic walk through the Cayley table of 120 elements where the equivalence classes are with respect to rotation on the last 4 elements of the set. Hence there are 30 steps taken to cover all the classes. The obvious question that arises is, How does one find a "walk" through this set? As pointed out in the initial E-mail, the walk was found using an algorithm (basically a depth-first search) on a spreadsheet with a random number generator. Now suppose the set is larger (the Cayley table is 5040 elements where the equivalence classes are with respect to a rotation of order 3). Hence there are 1680 steps taken to cover all the partitions of the set. Is there a more efficient algorithm than a depth-first search? The other question that has not been addressed is existence. Does such a walk exist? If, for example, I try to walk through S_3 where the equivalence class is with respect to transposition of the first two elements of the set, such a transposition walk does not exist. Stephen C. Lipp From wdj at madeline.usna.edu Sat Apr 3 20:59:10 2004 From: wdj at madeline.usna.edu (David Joyner) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] guava 1.9 Message-ID: <406F178E.1010001@gwweb.usna.edu> Hello GAP Forum: This is to announce that the next version of GAP's error-correcting codes package GUAVA, version 1.9, is ready. Many thanks to Frank Luebeck for help with this. I hope the permission problems Frank discovered are corrected. From the CHANGES file: Version 1.9 has: o Faster MinimumDistance algorithm (joint with Aron Foster, a student). o MinimumDistanceLeon algorithm (joint with Aron Foster). o Faster PutStandard form algorithm (with GAP's Frank Luebeck). o New PermutationGroup command (for possibly non-binary codes). o New PermutationDecode command. See the manual on the web page for more information and downloading: http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ Pleas email me if you experience any problems. - David Joyner From dima at thi.informatik.uni-frankfurt.de Tue Apr 6 09:56:03 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] decomposition formulae for C-representations Message-ID: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> Dear Forum, are the formulae that give the decomposition of a C-represenation p of a finite group G into direct sums of irreducibles implemented in GAP? (perhaps somewhere within character theory machinery I guess) I mean the standard ones given in e.g. Serre's "Linear Representations of Finite Groups", Sect. 2.6 and 2.7. For instance to obtain the subrepresentation of p (a direct sum of irreducible representations with the same character chi) of dimension n_chi, corresponding to the irrducible character chi, one uses the projection n_chi/|G| sum_{g in G} chi^*(g)p(g) (Thm. 8 in Sect. 2.6 of the Serre's book) Certainly, this is only feasible for groups of relatively small order to use these formulae directly, but in our case the groups are of order <10^4. thanks Dmitrii From carcher at ulb.ac.be Tue Apr 6 13:24:36 2004 From: carcher at ulb.ac.be (carcher@ulb.ac.be) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] New features for the Polycyclic package ; Message-ID: <200404061224.OAA26217@web1.ulb.ac.be> I have some question about the very nice Polycyclic Package of Bettina and Werner. First of all, thank you for the package. Here are my questions 1) how are cocycle components ordered for Pcp groups ? For finite pc group there is a line in file in /lib/twocohom.gi ## The tail of a conjugate i^j (i>j) or a power i^p (i=j) is stored at ## posiition (i^2-i)/2+j that gives the solution. Unfortunately i haven't found such a line in the code of the polycyclic package. 2) I would like to compute the second cohomology groups Z2(G,A) and B2(G,A) of an arbitrary finitely generated abelian group A. In the gap library, this is only possible if A is elementary abelian and G is polycyclic. Are there any plan to do it for arbitrary A and G polycyclic ? And for G a non polycyclic permutation group ? Derek Holt has implemented in Magma a method for A arbitrary and i think that further developments of your Polycyclic package is the solution to implement it in GAP. The idea is to write the module action on A by integer matrices and to add linear equations to the linear system needed to compute the cocycle. This new equations specify that some coefficients of the system have to be interpreted modulo an integer. i have tried to do the job by myself first by modifyng the equations of the linear system. In attachement you can find a modify version of the function TwoCocyclesCR. --> see attachement TwoCocyclesCRbis:=function( A, invarlist ) 3) Is there some plan to provide automorphisms group of Pcp group ? 4) Another nice posibility of the polycyclic package is to use non prime pcgs. But, if for a given pcp group G one wants to construct G one a non prime pcgs there is no function to do so without refining it into a prime pcgs. A nice application of non prime pcgs is the ability to reduce the number of unknowns in the linear system to determine cocycle Thank you very much for your help Claude -------------- next part -------------- ############################################################################# ## #F TwoCocyclesCRbis( A, invarlist ) ### Twococyles for a finitely generated abelian group, ## described as a product of the cyclic group invarlist[i] ##InstallGlobalFunction( TwoCocyclesCRbis, function( A , invarlist ) TwoCocyclesCRbis:=function( A, invarlist ) local C, n, e, id, l, gn, gp, gi, eq, pairs, i, j, k, w1, w2, d, sys, h, ### new variables for the new code (arbitrary finitely generated abelian group) m,standardvect,fullkernel,ll; # set up system of length d n := Length( A.mats ); e := RelativeOrdersOfPcp( A.factor ); l := Length( A.enumrels ); d := A.dim; sys := CRSystem( d, l, A.char ); # set up for equations id := IdentityMat(n); gn := List( id, x -> rec( word := x, tail := [] ) ); # precompute (ij) for i > j pairs := List( [1..n], x -> [] ); for i in [1..n] do if e[i] > 0 then h := rec( word := (e[i] - 1) * id[i], tail := [] ); pairs[i][i] := CollectedTwoCR( A, h, gn[i] ); fi; for j in [1..i-1] do pairs[i][j] := CollectedTwoCR( A, gn[i], gn[j] ); od; od; # consistency 1: k(ji) = (kj)i for i in [ n, n-1 .. 1 ] do for j in [ n, n-1 .. i+1 ] do for k in [ n, n-1 .. j+1 ] do w1 := CollectedTwoCR( A, gn[k], pairs[j][i] ); w2 := CollectedTwoCR( A, pairs[k][j], gn[i] ); if w1.word <> w2.word then Error( "k(ji) <> (kj)i" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; od; od; od; # consistency 2: j^(p-1) (ji) = j^p i for i in [n,n-1..1] do for j in [n,n-1..i+1] do if e[j] > 0 then h := rec( word := (e[j] - 1) * id[j], tail := [] ); w1 := CollectedTwoCR( A, h, pairs[j][i]); w2 := CollectedTwoCR( A, pairs[j][j], gn[i]); if w1.word <> w2.word then Error( "j^(p-1) (ji) <> j^p i" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; fi; od; od; # consistency 3: k (i i^(p-1)) = (ki) i^p-1 for i in [n,n-1..1] do if e[i] > 0 then h := rec( word := (e[i] - 1) * id[i], tail := [] ); l := CollectedTwoCR( A, gn[i], h ); for k in [n,n-1..i+1] do w1 := CollectedTwoCR( A, gn[k], l ); w2 := CollectedTwoCR( A, pairs[k][i], h ); if w1.word <> w2.word then Error( "k i^p <> (ki) i^(p-1)" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; od; fi; od; # consistency 4: (i i^(p-1)) i = i (i^(p-1) i) for i in [ n, n-1 .. 1 ] do if e[i] > 0 then h := rec( word := (e[i] - 1) * id[i], tail := [] ); l := CollectedTwoCR( A, gn[i], h ); w1 := CollectedTwoCR( A, l, gn[i] ); w2 := CollectedTwoCR( A, gn[i], pairs[i][i] ); if w1.word <> w2.word then Error( "i i^p-1 <> i^p" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; fi; od; # consistency 5: j = (j -i) i gi := List( id, x -> rec( word := -x, tail := [] ) ); for i in [n,n-1..1] do for j in [n,n-1..i+1] do #if e[i] = 0 then w1 := CollectedTwoCR( A, gn[j], gi[i] ); w2 := CollectedTwoCR( A, w1, gn[i] ); if w2.word <> id[j] then Error( "j <> (j -i) i" ); else AddEquationsCR( sys, w2.tail, [], true ); fi; #fi; od; od; # consistency 6: i = -j (j i) for i in [n,n-1..1] do for j in [n,n-1..i+1] do if e[j] = 0 then w1 := CollectedTwoCR( A, gi[j], pairs[j][i] ); if w1.word <> id[i] then Error( "i <> -j (j i)" ); else AddEquationsCR( sys, w1.tail, [], true ); fi; fi; od; od; # consistency 7: -i = -j (j -i) for i in [n,n-1..1] do for j in [n,n-1..i+1] do if e[i] = 0 and e[j] = 0 then w1 := CollectedTwoCR( A, gn[j], gi[i] ); w1 := CollectedTwoCR( A, gi[j], w1 ); if w1.word <> -id[i] then Error( "-i <> -j (j -i)" ); else AddEquationsCR( sys, w1.tail, [], true ); fi; fi; od; od; # add a check ((j ^ i) ^-i ) = j for i in [1..n] do for j in [1..i-1] do w1 := CollectedTwoCR( A, gi[j], pairs[i][j] ); w1 := CollectedTwoCR( A, gn[j], w1 ); w1 := CollectedTwoCR( A, w1, gi[j] ); if w1.word <> id[i] then Error("in rel check "); elif not IsZeroTail( w2.tail ) then # Error("relations bug"); AddEquationsCR( sys, w1.tail, [], true ); fi; od; od; ########################################### ######### new code for arbitrary abelian group m:=Length(sys.base)/d; # Now, we add d*m new unknowns y[k] as follows : # since equation k=j*d+i evaluates to 0 (mod invarlist[i]), a multiple of invarlist[i], # we add the multiple y[k]*invarlist[i] to equation[k] for i in [1..d] do for j in [0..m-1] do standardvect:=List([1..d*m],x->0); standardvect[j*d+i]:=invarlist[i]; Append( sys.base[j*d+i],standardvect); od; od; fullkernel:=KernelCR( A, sys ).basis; ### Now, we get rid off the d*m auxilliary unknowns we added ### we want the projection of the null space NS on the l*d original coordinates ## If the solutions in {B} form a basis for NS then proj({B}) generates proj(NS). ## Moreover the component [j*d+i] of a vector in proj({B}) may be reduced mod invarlist[i] ## improvement ? : the coefficients of fullkernel can be very large so we should have a ## way to reduce them during the calculation of KernelCR( A, sys ).basis; ## if we want to preserve the type of fullkernel ll:=Length(A.enumrels); # l has changed, why ? so we rename it for k in [1..Length(fullkernel)] do fullkernel[k]:=fullkernel[k]{[1..ll*d]}; for i in [1..d] do for j in [0..ll-1] do fullkernel[k][j*d+i]:=fullkernel[k][j*d+i] mod invarlist[i]; od; od; od; # and return solution return Set(fullkernel); ## after the modulo reduction, many zero vectors appear end ; ############################################################################# From jjoao at netcabo.pt Mon Apr 5 22:34:19 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] InstallCharReadHookFunc Message-ID: <1081200746.5806.3.camel@a81-84-193-207.netcabo.pt> Dear GAP Forum, I have the following code: gap> d := Directory("/home/josejoao/Projects/project2/src");; gap> f := Filename(d, "gapmenu");; gap> gapmenustream := InputOutputLocalProcess(d,f,[]);; gap> func := function() > Print(ReadAll(gapmenustream)); > end;; gap> InstallCharReadHookFunc( gapmenustream, "r", func ); But as soon as there is somethig ready to be read from the stream, I get the following error: gap> Function: number of arguments must be 0 (not 1) not in any function Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace the argument list via 'return ;' to continue Can someone tell me what is wrong in this? Thank you, Jose Morais From wdj at USNA.Navy.Mil Wed Apr 7 15:54:35 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] decomposition formulae for C-representations In-Reply-To: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> References: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> Message-ID: <4074162B.3060406@hermes.ewlab.usna.edu> Dmitrii Pasechnik wrote: >Dear Forum, > >are the formulae that give the decomposition of a C-represenation p >of a finite group G into direct sums of irreducibles implemented in GAP? >(perhaps somewhere within character theory machinery I guess) > >I mean the standard ones given in e.g. Serre's "Linear Representations >of Finite Groups", Sect. 2.6 and 2.7. >For instance to obtain the subrepresentation of p (a direct sum of >irreducible representations with the same character chi) of dimension >n_chi, corresponding to the irrducible character chi, one uses the projection > n_chi/|G| sum_{g in G} chi^*(g)p(g) >(Thm. 8 in Sect. 2.6 of the Serre's book) > >Certainly, this is only feasible for groups of relatively small order >to use these formulae directly, but in our case the groups >are of order <10^4. > >thanks >Dmitrii > >_______________________________________________ >Forum mailing list >Forum@mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum > > How is your repn p entered? For example, A5:=AlternatingGroup(5); A5_repns:=Irr(A5); C:=Centralizer(A5,(1,2)(3,4)); C_repns:=Irr(C); ind:=InducedClassFunction(C_repns[1],A5); m:=List(A5_repns,x->ScalarProduct(ind,x)); returns the multiplicities occuring in an induced repn. If p is entered as a class function, I'm not sure, but I'd like to know too! From scl at edi-nola.com Wed Apr 7 22:07:58 2004 From: scl at edi-nola.com (Stephen C. Lipp) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Cyclic permutation of five elements Message-ID: So I am looking for a cyclic walk through the Cayley table of 120 elements where the equivalence classes are with respect to rotation on the last 4 elements of the set. Hence there are 30 steps taken to cover all the classes. The obvious question that arises is, How does one find a "walk" through this set? As pointed out in the initial E-mail, the walk was found using an algorithm (basically a depth-first search) on a spreadsheet with a random number generator. Now suppose the set is larger (the Cayley table is 5040 elements where the equivalence classes are with respect to a rotation of order 3). Hence there are 1680 steps taken to cover all the partitions of the set. Is there a more efficient algorithm than a depth-first search? The other question that has not been addressed is existence. Does such a walk exist? If, for example, I try to walk through S_3 where the equivalence class is transposition of the first two elements of the set, such a transposition walk does not exist. There is no way to walk from [1, 2, 3] through the other two equivalence classes and arrive back at [1, 2, 3] in three steps. Stephen C. Lipp From thomas.breuer at math.rwth-aachen.de Thu Apr 8 08:39:37 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Re: decomposition formulae for C-representations Message-ID: Dear GAP Forum, Dima Pasechnik asked > are the formulae that give the decomposition of a C-represenation p > of a finite group G into direct sums of irreducibles implemented in GAP? > (perhaps somewhere within character theory machinery I guess) > > I mean the standard ones given in e.g. Serre's "Linear Representations > of Finite Groups", Sect. 2.6 and 2.7. > [...] > Certainly, this is only feasible for groups of relatively small order > to use these formulae directly, but in our case the groups > are of order <10^4. I am not aware of a GAP implementation for that. One possibility for groups of this small order would certainly be to compute the character of the given representation, to decompose it into irreducibles, to compute all irreducible representations of the group, and to use their characters for deciding which ones occur as summands of the given representation. Of course this can be viewed as an ugly attempt because it does not really decompose the given data. But computing the irreducible representations of small groups is not hard, and for the case of abelian by supersolvable groups one gets them in the nice form of monomial representations. The question is whether this suffices or whether you need the explicit base change that transforms the given matrices into block diagonal form. (And of course another question is whether it would be possible to avoid computations with representations at all.) All the best, Thomas From hulpke at math.colostate.edu Fri Apr 9 03:45:46 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] decomposition formulae for C-representations Message-ID: <200404090245.i392jknK010764@schur.math.colostate.edu> Dear Gap-Forum, (Somehow my original reply only went to Dima Pasechnik and not to the list. Thus a bit belatedly:) Dima Pasechnik wrote: > are the formulae that give the decomposition of a C-represenation p > of a finite group G into direct sums of irreducibles implemented in GAP? To my knowledge they are not immediately implemented, but it is relatively easyly done (I leave out the GAP output as it gets quite long): # construct some group and a matrix representation (this is your input) g:=TransitiveGroup(12,150); mats:=List(GeneratorsOfGroup(g),i->PermutationMat(i,12,1)); # matrix rep. hom:=GroupHomomorphismByImages(g,Group(mats),GeneratorsOfGroup(g),mats); # get character table and corresponding character c:=CharacterTable(g); char:=ClassFunction(c,List(ConjugacyClasses(c), i->TraceMat(Image(hom,Representative(i))))); # calculate decomposition MatScalarProducts(Irr(c),[char]); # In the example character 9 occurs. find the submodule x:=Irr(c)[9]; l:=Length(ConjugacyClasses(c)); # the projectuion matrix according to the formula you gave (I sum up the # elements according to conjugacy classes: proj:=x[1]/Size(g)*Sum([1..l],i->GaloisCyc(x[i],-1) *Sum(Elements(ConjugacyClasses(c)[i]),j->Image(hom,j))); # its rank (the dimension of the module) and a basis RankMat(proj); v:=BaseMat(proj); # for example the induced action on the submodule. induc:=List(mats,i->List(v,j->SolutionMat(v,j*i))); I hope this helps, Alexander -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From vdabbagh at math.carleton.ca Sun Apr 11 17:50:56 2004 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] decomposition formulae for C-representations In-Reply-To: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> Message-ID: Dear Dima and Dear GAP forum. I have developed a GAP share package "REPSN" to construct representations of finite groups. You can use this package to construct representations affording the given character. If you know constituents then using this package you can compute representations corresponding to these constituents to find a decomposition of the given representation. If you are interested please let me know then I can send you a prereleased version of that. Regards, Vahid Dabbaghian-Abdoly http://math.carleton.ca/~vdabbagh Tel: (613) 520-2600 ext. 8789 School of Mathematics and Statistics Room 4356, Herzberg Building 1125 Colonel By Drive, Carleton University Ottawa, Ontario, CANADA K1S 5B6 From vvk at csu.ru Tue Apr 13 04:25:37 2004 From: vvk at csu.ru (vvk@csu.ru) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Re: Protected Mail Delivery Message-ID: <200404130324.i3D3Of1C002236@gap-system.org> Protected message is available. ++++ Attachment: No Virus found ++++ Norton AntiVirus - www.symantec.de From e.obrien at auckland.ac.nz Tue Apr 13 08:49:03 2004 From: e.obrien at auckland.ac.nz (e.obrien@auckland.ac.nz) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Re: Delivery Protection Message-ID: <200404130748.i3D7lw1C006965@gap-system.org> Protected message is available. From sal at dcs.st-and.ac.uk Tue Apr 13 10:33:30 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Two spurious messages Message-ID: <20040413103330.1fcbaec3@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Two messages were sent out to the forum today, apparently from e.obrien@auckland.ac.nz and vvk@csu.ru These were in fact sent by a virus-infected computer apperantly in Russia (as you can see by a close examination of the headers). Any non-text attachments on forum messages are removed by mailman automatically, so these messages did not carry viruses. We will work on improving our defences against such mails. In the mean time, please just ignore them. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From sal at dcs.st-and.ac.uk Tue Apr 13 18:18:53 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Re: InstallCharReadHookFunc Message-ID: <20040413181853.191c558c@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Jose Morais asked: > gap> func := function() > > Print(ReadAll(gapmenustream)); > > end;; > gap> InstallCharReadHookFunc( gapmenustream, "r", func ); > > But as soon as there is somethig ready to be read from the stream, I > get the following error: > > gap> Function: number of arguments must be 0 (not 1) > not in any function > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can replace the argument list via 'return ;' to > continue > > > Can someone tell me what is wrong in this? The problem here is that the function supplied to InstallCharReadHookFunc must take one argument (which it can ignore). The manual mentions this, in passing: Note that handler functions must not return anything and get one integer ^^^^^^^^^^^^^^^^^ argument, which refers to an index in one of the following arrays (according to ^^^^^^^^ whether the function was installed for input, output or exceptions on the stream). Your message is produced when your function func() which takes no arguments is called by GAP with one argument. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From beick at tu-bs.de Thu Apr 15 13:59:52 2004 From: beick at tu-bs.de (Bettina Eick) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] New features for the Polycyclic package ; In-Reply-To: <200404061224.OAA26217@web1.ulb.ac.be> Message-ID: Dear Claude, dear Forum-members, > 1) how are cocycle components ordered for Pcp groups ? Let G be a pcp-group and let M = Z^d be a G-module. Suppose that G has l relators in its polycyclic presentation. Then the cocycles are returned as vectors of length l*d. Every vector is the concatenation of the l tails to the polycyclic relations of G. The relators of G are sorted for this purpose and the sorting is recorded in the cohomology record. An example: the infinite Dihedralgroup acting on Z as trivial module. gap> G := DihedralPcpGroup(0);; gap> mats := [IdentityMat(1), IdentityMat(1)];; gap> CR := CRRecordByMats(G,mats);; gap> CR.enumrels; [ [ 1, 1 ], [ 2, 1 ], [ 2, 3 ] ] gap> TwoCohomologyCR(CR).gcc; [ [ 1, 0, 0 ], [ 0, 1, 1 ] ] CR.enumrels tells you that there are three relations and they are sorted: [1,1] corresponds to the power relation g1^2 [2,1] corresponds to the conjugate relation g2^g1 [2,3] corresponds to the conjugate relation with the inverse g2^(g1^-1) Thus the cocycles are returned as vectors of length 3. > 2) > I would like to compute the second cohomology groups Z2(G,A) and B2(G,A) > of an arbitrary finitely generated abelian group A. In the gap library, > this is only possible if A is elementary abelian and G is polycyclic. There is also Derek's Cohomolo Package for arbitrary finite groups G. If you want to do a similar computation for finite abelian groups A which are not elementary abelian, then you can use a G-invariant series through A with elementary abelian factors and do induction along such a series. The case of an elementary or free abelian module A and a polycyclic factor G is covered in the Polycyclic package. Again, using induction along a series you could use this to deal with finitely generated abelian groups A. > 3) Is there some plan to provide automorphisms group of Pcp group ? For a finite pcp-group you can translate the automorphism group from the automorphism group of its corresponding pc-group. > 4) Another nice posibility of the polycyclic package is to use non prime > pcgs. But, if for a given pcp group G one wants to construct G one a non > prime pcgs there is no function to do so without refining it into a prime > pcgs. I do not understand this comment. Surely, you can define a pcp-group in GAP on a non-prime pcgs: gap> G := DihedralPcpGroup(20); Pcp-group with orders [ 2, 10 ] Hope this helps, Bettina From hulpke at math.colostate.edu Thu Apr 15 20:49:35 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Release Announcement: GAP 4.4 Message-ID: <200404151949.i3FJnaSL012676@schur.math.colostate.edu> Dear Gap-Forum, GAP 4.4 is available! It contains a variety of new features, improved algorithms and new programming tools. A detailed outline is included below. We recommend all GAP 4 users to upgrade to GAP 4.4 and we wish you fun and success in using GAP. You can download the new version of GAP from http://www.gap-system.org The GAP group ############################################################################# New Mathematical Features ------------------------- * New Algorithms and Functions in GAP - Groebner Bases: Buchberger's algorithm to compute Groebner Bases has been implemented in GAP. (By A. Hulpke) For large scale Groebner Basis computations there also is an interface to the Singular system available in the 'Singular' Package. (By M. Costantini and W. de Graaf) - Algebraic Field Extension: New methods for factorizing polynomials over algebraic extensions of the rationals have been implemented in GAP. (By A. Hulpke) For more functionality to compute with algebraic number fields there is an interface to the Kant system available in the 'Alnuth' Package. (By B. Assmann and B. Eick) - Galois Groups: A method for computing the Galois group of a rational polynomial has been implemented in GAP. (By A. Hulpke) - Finite Groups: A new operation and a new method to compute the minimal normal subgroups of a finite group and a method to determine the socle of a finite group has been installed. (By B. Hoefling) - Permutation Groups: A fast method for recognizing whether a permutation group is symmetric or alternating in its natural representation is available now. (By A. Seress) - Brauer Tables: The algorithm for 'BrauerCharacterValue' has been extended to the case where the splitting field is not supported in GAP. (By T. Breuer) Brauer tables of direct products can now be constructed from the known Brauer tables of the direct factors. (By T. Breuer) - Vector spaces: Basic support for vector spaces of rational functions and of uea elements is available now in GAP. (By T. Breuer and W. de Graaf) - Integer matrices: Various new functions for computations with integer matrices are available, such as methods for computing normal forms of integer matrices as well as nullspaces or solutions systems of equations. (By W. Nickel and F. Gaehler) - Meataxe: It is now possible to compute invariant forms and orthogonal signs of modules. (By D. Holt and J. Thackray) ############################################################################# * New Packages for GAP The following new Packages have been accepted. - LAGUNA: Computing with Lie Algebras and Units of Group Algebras. By V. Bovdi, A. Konovalov, R. Rossmanith, C. Schneider. - NQ: The ANU Nilpotent Quotient Algorithm. By W. Nickel. - KBMAG: Knuth-Bendix for Monoids and Groups. By D. Holt. - QuaGroup: Computing with Quantized Enveloping Algebras. By W. de Graaf. - AlNuTh: Algebraic Number Theory and an Interface to the Kant System. By B. Assmann and B. Eick - Polycyclic: Computation with Polycyclic Groups. By B. Eick and W. Nickel - Sonata: Construction and analysis of finite nearrings. By E. Aichinger, F. Binder, J. Ecker, P. Mayr, C. Noebauer ############################################################################# * Performance Enhancements - Character Theory: The computation of irreducible representations and irreducible characters using the Baum-Clausen algorithm and the implementation of the Dixon-Schneider algorithm have been speeded up. The algorithm for 'PossibleClassFusions' has been changed: the efficiency has been improved and a new criterion is used. The algorithm for 'PossibleFusionsCharTableTom' has been speeded up. The method for 'PrimeBlocks' has been improved following a suggestion of H. Pahlings. - Symmetric Groups New improved methods for normalizer and subgroup conjugation in Sn have been installed and new improved methods for IsNaturalSn/An have been implemented. These improve the available methods when groups of large degrees are given. - Permutation Groups: The partition split method used in the permutation backtrack is now in the kernel. Transversal computations in large permutation groups are improved. The decomposition of a permutation as a word in the generators now produces substantially shorter words: for example, the words have lengths about 100 for the Rubics Cube group. - Matrix Groups: The membership test in SP and SU has been improved using the invariant forms underlying these groups. - Finite groups: An improvement for the cyclic extension method has been implemented. - Matrices: A better method for MinimalPolynomial for finite field matrices has been implemented. - Polynomials: The display has changed and the arithmetic of multivariate polynomials has been improved. - LogMod: Uses now Pollard's rho method combined with the Pohlig/Hellmann approach. (By Sean Gage) - Lists: Various functions for sets and lists have been improved following suggestions of L. Teirlinck. These include: Sort, Sortex, SortParallel, SortingPerm, NrArrangements. - Finite Dimensional Algebras: The methods for 'StructureConstantsTable' and 'GapInputSCTable' have been improved in the case of a known (anti-) symmetry following a suggestion of M. Costantini. Unless otherwise stated, the improvements listed in this Section have been implemented by T. Breuer and A. Hulpke. ############################################################################# * Technical changes in GAP and new programming tools - IsSimple: Returns false now for the trivial group. - PrimeBlocks: The output format has changed. - Division Rings: These are implemented as 'IsRingWithOne' now. - DirectSumOfAlgebras: Pth power maps are compatible with the input now. - EnumeratorByFunctions: A new tool to create enumerators. - IteratorByFunctions: A new tool to create iterators. ############################################################################# * Bug Fixes It remains to mention that GAP 4.4 includes fixes for all bugs which had been reported before the deadline for the release. ############################################################################# New Programming and User Features --------------------------------- - Workspaces: The 2GB limit has been removed and version numbers have been introduced. (By S. Linton and B. Hoefling) - Types: The limit on the total number of types created in a session has been removed. (By S. Linton) - Packages: There is a new mechanism for loading packages available. Packages need a file PackageInfo.g now. (By T. Breuer and F. Luebeck) ############################################################################# Upwards Compatibility --------------------- The mechanism for the loading of Packages has changed. Packages require a file PackageInfo.g now. These new PackageInfo.g files are available for all accepted and deposited Packages within GAP 4.4. Apart from the Package loading, there are only some other very minor changes (e.g. the trivial group is not a simple group in GAP any longer) which are not compatible with GAP 4.3. ############################################################################# License and Installing GAP 4.4 ------------------------------ GAP is free software which is distributed under the GNU general public licence. You can get GAP 4.4 from - http://www.gap-system.org - ftp://ftp.gap-system.org in the directory pub/gap/gap4. ############################################################################# Acknowledgements --------------- * Personal Support The members of the GAP development team are working on GAP as a part of their research or in their free time. The GAP development team has members all over the world and thus GAP can be considered as a world wide joint research project. A list of the members of the GAP development team can be found in the Tutorial manual of GAP. A significant part of the functionality of GAP is available in the GAP packages. These are independently developed packages of code with their own author lists. A detailed list of the available GAP packages can be found on the GAP web pages. Finally, there is a long list of collaborateurs and users of GAP. The feedback and constructive critism of these people has helped to fix bugs and to improve the system. Many thanks are due to all these people. * Financial Support We acknowledge with gratitude the support of the development of GAP provided by a variety of funding bodies. Details can be found on the GAP web pages. ############################################################################ Bugfixes -------- If you have followed the releases of GAP over the last years you might have noted that a first bugfix typically comes early after a release. This is despite of extensive testing, but unfortunately reflects the limited size of the developer group compared to the user community. We simply might not have thought of doing certain things. If the experience of previous releases holds, we therfore will have a first update within the next two or three weeks. You might want to plan accordingly. From sal at dcs.st-and.ac.uk Fri Apr 16 22:56:39 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Release -- A Couple of Details Message-ID: <20040416225639.3c72f371@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Just a few points to follow the release announcement. Firstly, due to some glitches here, the Website and FTP site were not fully updated with the intended new contents until this afternoon. In particular, the packages archive briefly contained a broken version of the xmod package. These sites are now updated. Apologies to anyone affected. As you will see the Website is still somewhat transitional, containing pages with both old and new "look". Over the next months we should complete the move to the new style. We would welcome comments on this style. Secondly, as ever, a few minor bugs came to light too late in the release process for fixes to be safely included in the release, and will be fixed in a bugfix in the next week or so. If any of them cause you especial difficulties, we may be able to send a specific correction to you. 1. A bug in the on-line help functions causes errors displaying a very few sections of the manual using the "screen" viewer. 2. There is a bug when computing homomorphisms from a finitely-presented group with a generator that occurs in no relator, which can cause an error.. 3. When GAP is loaded from a saved workspace, user specific information (such as the home directory referred to by ~) is taken from the workspace, not from the loading user. Thus if user a saves a workspace, and user b loads it and then does Read("~/myfuncs.g"); it will try to load "/home/a/myfuncs.g". 4. Runtimes() under Windows reports 0 instead of fail for the unavailable system and child CPU times. Finally, I'd like to take this opportunity to thank everyone concerned for their hard work in the long process of preparing this release. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From bcolletti at compuserve.com Sun Apr 18 15:46:57 2004 From: bcolletti at compuserve.com (Bruce W. Colletti) Date: Fri Apr 8 15:25:39 2005 Subject: [GAP Forum] Writing to File Message-ID: <002601c42554$012d67d0$6501a8c0@bcolletti> Re GAP 4.3fix4 running under WinXP Home. How do I set the record length of an output text file? When printing to the file, numbers follow one another (as desired) until too many occur, at which time GAP automatically creates a new output line. Numbers are separated by a space or tab. LogTo("filename") opens the file...maybe that's the problem. If so, what else should I use? I've tried an example in the manual that starts: name := Filename(DirectoryTemporary(),"test"); but GAP gags on the DirectoryTemporary() command. Thanks. Bruce From gap at gap.zssm.zp.ua Sun Apr 18 19:10:01 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Writing to File In-Reply-To: <002601c42554$012d67d0$6501a8c0@bcolletti> References: <002601c42554$012d67d0$6501a8c0@bcolletti> Message-ID: <636591620.20040418201001@gap.zssm.zp.ua> Dear Bruce, if I understand your task perfectly, you would like to write certain information to the text file and you need to increase the number of symbols per line in the output file. There are several approaches to this. The simplest, but less flexible is to use 'LogTo("filename");' and it will just copy the output from the screen to the file. In this case you may use the command 'SizeScreen([256,]);' to reach the maximum possible length of the line, but no more than 256 symbols. More opportunities are provided by using streams, and it is very useful that your are already looking in this direction. Indeed, 'DirectoryTemporary()' works only for UNIX-type systems, but this function is not essential in reaching your aims. In the example you cited this function is used to create a filename in the temporary directory, but you may enter the next command from this example in the form output := OutputTextFile( "filename", true );; and it will create the file "filename" just in your current directory. Line length in this file can also be regulated by the SizeScreen command - it will be changed on screen and in the stream simultaneously. You could also be interested *** to have all output in one single line of text without line breaks *** - in conditions above, this may be achieved entering the command SetPrintFormattingStatus( out, false ) Hope this helps. Sincerely yours, Alexander Konovalov On Sunday, April 18, 2004 at 4:46:57 PM Bruce W. Colletti wrote: > Re GAP 4.3fix4 running under WinXP Home. > How do I set the record length of an output text file? > When printing to the file, numbers follow one another (as desired) until too many occur, at which time GAP automatically creates a new output line. Numbers are separated by a space or tab. > LogTo("filename") opens the file...maybe that's the problem. If so, what else should I use? I've tried an example in the manual that starts: > name := Filename(DirectoryTemporary(),"test"); > but GAP gags on the DirectoryTemporary() command. > Thanks. > Bruce > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From costanti at science.unitn.it Sun Apr 18 18:24:51 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Writing to File In-Reply-To: <002601c42554$012d67d0$6501a8c0@bcolletti> References: <002601c42554$012d67d0$6501a8c0@bcolletti> Message-ID: <1082309091.4082b9e35b4f2@www.unitn.it> Dear Bruce and gap-forum, Scrive "Bruce W. Colletti" : > Re GAP 4.3fix4 running under WinXP Home. > > How do I set the record length of an output text file? > > When printing to the file, numbers follow one another (as desired) until too > many occur, at which time GAP automatically creates a new output line. Try something like AppendToFile := function ( file, s ) local otf; otf := OutputTextFile( file, true ); SetPrintFormattingStatus( otf, false ); AppendTo( otf, s ); CloseStream( otf ); end; Where s is what you want to write in the file > Numbers are separated by a space or tab. > > LogTo("filename") opens the file...maybe that's the problem. If so, what > else should I use? I've tried an example in the manual that starts: > > name := Filename(DirectoryTemporary(),"test"); > > but GAP gags on the DirectoryTemporary() command. What do you mean with "gags"? Try an other directory. Best, Marco From wh at icparc.ic.ac.uk Mon Apr 19 18:21:22 2004 From: wh at icparc.ic.ac.uk (Warwick Harvey) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Finding a representative which moves fewest points In-Reply-To: <200404011850.i31IoIMd010540@schur.math.colostate.edu>; from hulpke@math.colostate.edu on Thu, Apr 01, 2004 at 11:50:18AM -0700 References: <20040401003727.A9726@tempest.icparc.ic.ac.uk> <200404011850.i31IoIMd010540@schur.math.colostate.edu> Message-ID: <20040419182121.A26952@tempest.icparc.ic.ac.uk> Dear Alexander, dear GAP Forum, Thanks for your feedback. On Thu, Apr 01, 2004 at 11:50:18AM -0700, Alexander Hulpke wrote: > Warwick Harvey asked: > > > What I would like is a function like RepresentativeAction which returns a > > representative that moves as few points as possible. Taking the example > > from the manual: > > > > gap> g:=Group((1,3,2),(2,4,3));; > > gap> RepresentativeAction(g,1,3); > > (1,3)(2,4) > > > > I would like instead the element (1,3,2), since this only moves 3 points > > rather than 4. I tried constructing cosets of the stabilizer of 1 and using > > RepresentativeSmallest on the appropriate coset, but of course the notion of > > smallest there is not what I want. > > Basically you want to find an element x in the stabilizer of 3 so that r*x > fixes many points. If your group is of moderate degree, probvably the > following brute-force approach works: Thanks. Unfortunately, by the time I apply it to real problems, a brute force search is out of the question. The first real problem I tried it on required solving a sequence of a couple of hundred such problems on groups growing to size 2e35 (large base groups with lots of block structure). > If your group gets bigger so that you do not want to run through all > elements in s, I would consider to map some points according to the orbits > of s. Indeed. In the last couple of weeks I have developed a backtracking search algorithm which appears to be quite effective; each of the above instances is solved in less than a minute, often under a second (1.7GHz Centrino processor). The minimal representatives had between 52 and 260 moved points out of 1170. The real key was finding a good lower bound on the number of points that must be moved in a representative. If anybody is interested in the details I am happy to pass them on. One thing I noticed while working on this which surprised me (probably just my naivete) was that something like RepresentativeAction(g, 1, 2) was significantly slower than Orbit(g, 1) - at least for my groups. Presumably the algorithm that RepresentativeAction uses is a general one, and there's no specialisation for this easy case. (Either that, or Orbit is doing something smarter than I expected.) (This is using 4.3 - I haven't tried 4.4 yet.) Cheers, Warwick From heckenb at mi.uni-erlangen.de Tue Apr 20 00:43:14 2004 From: heckenb at mi.uni-erlangen.de (Frank Heckenbach) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Bug in Process() Message-ID: <200404192343.BAA10287@goedel.fjf.gnu.de> Dear Gap-Forum, it seems to become a tradition for me to find a bug related to Process() in each new release. ;-) With GAP 4.4.2 I see this: gap> s := "";; gap> out := OutputTextString (s, true);; gap> inp := InputTextFile ("/dev/null");; gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; gap> DirectoryTemporary ();; gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; List Element: must be a list (not a boolean) at return ExecuteProcess( dir, prg, input![1], output![1], args ); called from EXECUTE_PROCESS_FILE_STREAM( dir, prg, input, new_output, args ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace via 'return ;' to continue The problem seems to be the caching of PROCESS_INPUT_TEMPORARY' and PROCESS_OUTPUT_TEMPORARY' in process.gi' while the corresponding files are erased. TmpName' or DirectoryTemporary' then seem to reuse the name (I assume this is intended). If it's reused as a directory which still exists (like here), this will fail and result in new_output = fail', leading to the error shown. (If it's reused as a file, it may silently overwrite that file; I haven't checked this case.) Quick fix: --- gap4r4/lib/process.gi.orig Mon Apr 19 03:22:39 2004 +++ gap4r4/lib/process.gi Mon Apr 19 03:31:20 2004 @@ -148,9 +148,6 @@ #M Process( , , , , ) . . . . stream/stream ## -PROCESS_INPUT_TEMPORARY := fail; -PROCESS_OUTPUT_TEMPORARY := fail; - InstallMethod( Process, [ IsDirectory and IsDirectoryRep, IsString, @@ -162,10 +159,9 @@ # convert input into a file if not IsInputTextFileRep(input) then - while PROCESS_INPUT_TEMPORARY = fail do - PROCESS_INPUT_TEMPORARY := TmpName(); - od; - name_input := PROCESS_INPUT_TEMPORARY; + repeat + name_input := TmpName(); + until name_input <> fail; new := OutputTextFile( name_input, true ); allinput := ReadAll(input); if allinput= fail then @@ -178,10 +174,9 @@ # convert output into a file if not IsOutputTextFileRep(output) then - while PROCESS_OUTPUT_TEMPORARY = fail do - PROCESS_OUTPUT_TEMPORARY := TmpName(); - od; - name_output := PROCESS_OUTPUT_TEMPORARY; + repeat + name_output := TmpName(); + until name_output <> fail; new_output := OutputTextFile( name_output, true ); else new_output := output; Frank Heckenbach -- Frank Heckenbach, heckenb@mi.uni-erlangen.de http://www.mi.uni-erlangen.de/~heckenb/ GnuPG and PGP keys: http://fjf.gnu.de/plan (7977168E) From rschmied at Princeton.EDU Wed Apr 21 03:11:54 2004 From: rschmied at Princeton.EDU (Roman Schmied) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] group theory and molecular spectroscopy Message-ID: <4085D86A.5040003@princeton.edu> Hello GAP forum: I thought it might be of interest for some of you to know that group theory is being used regularly in molecular spectroscopy. I have just had a GAP4-based note accepted by the Journal of Molecular Spectroscopy; you can download it at http://arxiv.org/abs/physics/0404095 In essence, we use permutations to represent the effect of symmetry operations on identical atoms in molecules. The character of the total molecular wavefunction can be computed from the spin-statistics theorem of quantum mechanics: the wavefunction must change sign under any odd permutation of Fermions, and stay the same under any other permutation (even permutations and/or Bosons). This leads to experimentally observable effects in the temperature-dependent populations of molecular energy eigenstates. All this has been known for a long time, but it is very valuable to have a tool like GAP on our hands now. Thanks for all the help, especially to Alexander Hulpke and Dmitrii Pasechnik for improving my GAP code! Roman. -- Roman Schmied Department of Chemistry Princeton University Princeton, NJ 08544 office (609) 258-3357, lab -4975, fax -6665 From l.h.soicher at qmul.ac.uk Wed Apr 21 14:37:15 2004 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] GRAPE 4.2 Message-ID: <200404211337.OAA03127@dirac.maths.qmw.ac.uk> Dear GAP-Forum, I am pleased to announce the release of the GRAPE 4.2 GAP Package for computing with graphs and groups. GRAPE 4.2 is included with the recently released GAP 4.4, and should not be used with any previous version of GAP. I hope you enjoy using GRAPE 4.2. Regards, Leonard Soicher The main changes from GRAPE 4.1 to GRAPE 4.2 are: ------------------------------------------------ (1) Including Steve Linton's SmallestImageSet' function, and using this function for faster isomorph rejection in CompleteSubgraphs', CompleteSubgraphsOfGivenSize', and PartialLinearSpaces'. (2) Further improvements to CompleteSubgraphs' and CompleteSubgraphsOfGivenSize', including functionality in the latter which will be required by the Design' package. (3) All global function names are now read-only. (4) OrbitalGraphIntersectionMatrices' is no longer an alternative name for OrbitalGraphColadjMats'. This change is *not* backward compatible. (5) The function Vertices' is now an operation, so as not to conflict with the xgap package. (6) The default value for GRAPE_NRANGRENS has been increased to 18. (7) Output streams are now used in AutGroupGraph' and SetAutGroupCanonicalLabelling'. From dima at thi.informatik.uni-frankfurt.de Thu Apr 22 10:16:00 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] computing the structure of a big imprimitive permgroup Message-ID: <20040422091600.GA23757@thi21.thi.informatik.uni-frankfurt.de> Dear Forum, I have a permutation group G on 6^4 points, with a maximal imprimitivity block system B with blocks of size 6. The action on these blocks contains Alt(6^3), that is, the base for the StabChain for G will be long, at least about 6^3. I try to compute the StabChain, but it seems to take forever to complete. I would like to find the kernel of the action of G on B. (or at least |G|) Any tips as to how this can be best accomplished? Thanks, Dima From costanti at science.unitn.it Thu Apr 22 11:47:41 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] p-quotient of an infinite matrix group Message-ID: <1082630861.4087a2cd1d4d9@www.unitn.it> Dear gap-forum, let G be an infinite matrix group, like in the example below. I'd like to study a p-quotient (or a nilpotent-, solvable-, polycyclic- quotient) of G (I mean a quotient of the form G / PCentralSeries(G,7)[n]). The obstacles are that the quotient methods requires a finitely presented group, and the conversion from matrix groups to finitely presented groups is available only for finite groups. Are there any suggestion? r := [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; s := [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; G:=Group( [ r, s ] ); Thank you for your attention, Marco Costantini From carcher at ulb.ac.be Fri Apr 23 11:48:21 2004 From: carcher at ulb.ac.be (Claude Archer) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] New features for the Polycyclic package ; Message-ID: <200404231048.MAA04727@web1.ulb.ac.be> Dear Bettina, dear forum members , Thank you for your answer I will reformulate question 4 on non prime pcgs with the polycyclic package. suppose l:=[g1,g2,g3] is a pcgs for G. The it is possible to build a new Pc group (newG ) whose pcgs is l using : newpcgs:=PcgsByPcSequence(FamilyObj(l[1]), l ); newG:=PcGroupWithPcgs(newpcgs); # at the moment Gap only accepts it if l is a prime pcgs How to do that on a pcp group with an arbitrary non prime pcgs l (in order to build a new pcp group) ? > 2) > I would like to compute the second cohomology groups Z2(G,A) and B2(G,A) > of an arbitrary finitely generated abelian group A. Answer : you can use a G-invariant series through A with elementary abelian factors and do induction along such a series. Yes i understand that but the problem is that after some steps you get too many extensions of groups A' that are not isomorphic to A even if they have the same type of G-invariant series. That is why i was looking for implemeting a direct method using linear equations on integer (cfr Holt) Regards Claude From beick at tu-bs.de Mon Apr 26 09:10:33 2004 From: beick at tu-bs.de (Bettina Eick) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] New features for the Polycyclic package ; In-Reply-To: <200404231048.MAA04727@web1.ulb.ac.be> Message-ID: Dear Claude, der GAP-forum members, > That is why i was looking for implemeting a direct method using > linear equations on integer (cfr Holt) As far as I know the method is not implemented in GAP and, of course, you are very welcome to implement it. As you pointed out, this should be possible as a modification of the existing extension code in the Polycyclic package. I will discuss the more technical questions of Claude in a direct e-mail. If anyone else is interested in following this discussion, then please let me know. Best wishes, Bettina From eckert at math.wayne.edu Mon Apr 26 21:56:41 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs Message-ID: The problem I am attempting is verifying the correctness and completeness of free-mod-relations for the sporadic pure-braid groups: here "full" is a free group modulo a set of "brds" braid-relations; "weyl" is also modulo the "sqrs" letters-squared; "pure" should be the kernel of the map from "full" to "weyl" and is claimed to be "gens" mod "rels"; the correctness check is whether all the rels are actually trivial under the brds; the completeness check is whether there are any other true relations among the gens independent of rels. Here is the file for C2, a small case (symmetries of the square): c2:=FreeGroup(2); c2brds:=[c2.1*c2.2*c2.1*c2.2*c2.1^-1*c2.2^-1*c2.1^-1*c2.2^-1]; c2sqrs:=[c2.1^2,c2.2^2]; a12:=c2.1*c2.1; a23:=c2.2*c2.2; a13:=c2.2*c2.1*c2.1*c2.2^-1; b23:=c2.1*c2.2*c2.2*c2.1^-1; c2gens:=[a12,a23,a13,b23]; r1:=Comm(a23,b23*a12*a13); r2:=Comm(a13,a23*b23*a12); r3:=Comm(a12,a13*a23*b23); c2rels:=[r1,r2,r3]; c2full:=c2/c2brds; c2weyl:=c2/Union(c2brds,c2sqrs); c2pure:=Subgroup(c2,c2gens)/c2rels; c2fhom:=GroupHomomorphismByImages(c2,c2full,GeneratorsOfGroup(c2),GeneratorsOfGroup(c2full)); c2errs:=Image(c2fhom,c2rels); correct:=IsTrivial(c2errs); c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); c2phom:=GroupHomomorphismByImages(c2pure,Kernel(c2whom),GeneratorsOfGroup(c2pure),Image(c2fhom,c2gens)); c2gaps:=Kernel(c2phom); complete:=IsTrivial(c2gaps); The correctness question is whether c2rels is in the normal closure of c2brds. Asking for NormalClosure(c2,c2brds) gives a Reidemeister-Schreier process with infinite coset traversal: old versions crashed with "coset enumeration exceeds 256000" while 4.4 just refuses "No Method Found". The homomorphism trivializing c2brds will define, but then asking for the image under that hom sends it into "MakeKnuthBendixRewritingConfluent" forever and ever: the log-file shows it dying between the definition of c2fhom and c2errs, after a 45-minute run, from memory exhaustion. For the completeness test it needs to construct Kernel(c2whom), which is what the pure-braid group really is, to get c2phom from the claimed "pure" to the real "pure"; this hangs in a same way (I killed it after 90 minutes). Is there another way to do this? Or would either one of these, done as above, eventually finish given enough time and space? -------------- next part -------------- gap> Read("a:\C2a.gap");time;correct;complete; user interrupt at p := 0; called from KBOverlaps( i[1], i[2], kbrws, p ) called from KB_REW.MakeKnuthBendixRewritingSystemConfluent( rws ); called from MakeKnuthBendixRewritingSystemConfluent( kbrws ); called from MakeConfluent( kbrws ); called from ReducedConfluentRewritingSystem( M, wordord ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> return; exceeded the permitted memory (-o' command line option) at Append( l, [ [ i, n ], [ n, i ] ] ); called from add_rule( [ a, b ], kbrws ); called from AddRuleReduced( kbrws, [ a, c ] ); called from KBOverlaps( i[1], i[2], kbrws, p ) called from KB_REW.MakeKnuthBendixRewritingSystemConfluent( rws ); called from MakeKnuthBendixRewritingSystemConfluent( kbrws ); called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> quit; gap> time; 2720266 gap> c2errs; Variable: 'c2errs' must have a value gap> c2fhom; [ f1, f2 ] -> [ f1, f2 ] gap> c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); [ f1, f2 ] -> [ f1, f2 ] gap> c2phom:=GroupHomomorphismByImages(c2pure,Kernel(c2whom),GeneratorsOfGroup(c2pure),Image(c2fhom,c2gens)); user interrupt at Append( l, [ [ i, n ], [ n, i ] ] ); called from add_rule( [ a, b ], kbrws ); called from AddRuleReduced( kbrws, [ a, c ] ); called from KBOverlaps( i[1], i[2], kbrws, p ) called from KB_REW.MakeKnuthBendixRewritingSystemConfluent( rws ); called from MakeKnuthBendixRewritingSystemConfluent( kbrws ); called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> quit: Syntax error: ; expected in *errin* line 1 quit: ^ brk> quit; gap> time > ; 5460140 gap> quit; From hulpke at math.colostate.edu Tue Apr 27 04:13:44 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: Message-ID: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> Dear Robert Eckert, > The problem I am attempting is verifying the correctness and completeness > of free-mod-relations for the sporadic pure-braid groups: here "full" is > > c2:=FreeGroup(2); > c2brds:=[c2.1*c2.2*c2.1*c2.2*c2.1^-1*c2.2^-1*c2.1^-1*c2.2^-1]; > The correctness question is whether c2rels is in the normal closure of > c2brds. Asking for NormalClosure(c2,c2brds) gives a Reidemeister-Schreier > process with infinite coset traversal: old versions crashed with "coset > enumeration exceeds 256000" while 4.4 just refuses "No Method Found". The (I doubt that this command as given would have worked under 4.3), the version NormalClosure(c2,Subgroup(c2,c2brds)); starts but similarly runs into memory problems. The reason for this not just a shortcoming of GAP but there are fundamental algorithmic difficulties when working with finitely presented groups (the general unsolvability of the word problem). One example of tyhis is the error message after defining 256000 cosets, which is intended to keep a program from running out of memory. (It is possible to continue the calculation by typing return'; however in this case, this is unlikely to help). GAP's algorithms for finitely presented groups mostly assume that subgroups are of finite index and might not terminate if subgroups have infinite index. The recent 4.4 release comes with a new package FGA (free group algorithms) that provide some further functionality for subgroups of free groups that might help a bit, but I expect this package alone will not solve the problem. > c2sqrs:=[c2.1^2,c2.2^2]; > a12:=c2.1*c2.1; > a23:=c2.2*c2.2; > a13:=c2.2*c2.1*c2.1*c2.2^-1; > b23:=c2.1*c2.2*c2.2*c2.1^-1; > c2gens:=[a12,a23,a13,b23]; > r1:=Comm(a23,b23*a12*a13); > r2:=Comm(a13,a23*b23*a12); > r3:=Comm(a12,a13*a23*b23); > c2rels:=[r1,r2,r3]; > c2full:=c2/c2brds; > c2weyl:=c2/Union(c2brds,c2sqrs); > c2pure:=Subgroup(c2,c2gens)/c2rels; > c2fhom:=GroupHomomorphismByImages(c2,c2full,GeneratorsOfGroup(c2),GeneratorsOfGroup(c2full)); > c2errs:=Image(c2fhom,c2rels); Image' forms a set of the images of the elements and thus has to test equality. This is what takes time. If you use: c2errs:=List(c2rels,i->ImageElm(c2fhom,i)); you will get a result in no time. > correct:=IsTrivial(c2errs); This is a very hard command. You ask for the fact whether elements given as words are trivial. GAP will start a Knuth-Bendix (performance can be improved using the kbmag' package that uses an external binary), but again (due to the fundamental difficulties mentioned above) one can only hope for, but not necessarily guarantee termination in limited time/memory. > c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); > c2phom:=GroupHomomorphismByImages(c2pure,Kernel(c2whom),GeneratorsOfGroup(c2pure),Image(c2fhom,c2gens)); Again, here I would compute the image of the elements separately. Also GroupHomomorphismByImages' will test the homomorphism property which requires knowledge of relators -- the NC version just assumes that the map is a homomorphism: c2phom:=GroupHomomorphismByImagesNC(c2pure,Kernel(c2whom), GeneratorsOfGroup(c2pure),List(c2gens,i->Image(c2fhom,i))); > c2gaps:=Kernel(c2phom); This again is unlikely to work. What might work is: - Compute a presentation for the kernel(c2whom) using IsomorphismFpGroupByGenerators'. - evaluate the relators in the generators of c2pure. However then again you have a triviality test, which might run into the same problems with the Knuth Bendix. You will likely have to involve some theory or hand calculations. Best wishes, Alexander Hulpke From eckert at math.wayne.edu Tue Apr 27 15:49:31 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> References: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> Message-ID: Thank you for your quick reply. I have tried with: ... c2errs:=List(c2rels,i->ImageElm(c2fhom,i)); c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); correct:=IsTrivial(c2errs); c2real:= Kernel(c2whom); c2phom:=GroupHomomorphismByImagesNC(c2pure,c2real,GeneratorsOfGroup(c2pure), List(c2gens,i->Image(c2fhom,i))); c2gaps:=Kernel(c2phom); complete:=IsTrivial(c2gaps); and it ran until the evaluation of "complete": gap> Read("a:\C2x.gap");time;correct;complete; Error, the coset enumeration has defined more than 256000 cosets called from TCENUM.CosetTableFromGensAndRels( fgens, grels, fsgens ) called from CosetTableFromGensAndRels( fgens, grels, fsgens ) called from TryCosetTableInWholeGroup( H ) called from CosetTableInWholeGroup( ImagesSet( iso, U ) ) called from oper( super, sub ) called from ... Entering break read-eval-print loop ... type 'return;' if you want to continue with a new limit of 512000 cosets, type 'quit;' if you want to quit the coset enumeration, type 'maxlimit := 0; return;' in order to continue without a limit brk> quit; #I Options stack has been reset gap> correct; false gap> c2real; Group() gap> c2phom; [ f1^2, f2^2, f2*f1^2*f2^-1, f1*f2^2*f1^-1 ] -> [ f1^2, f2^2, f2*f1^2*f2^-1, f1*f2^2*f1^-1 ] gap> c2gaps; Group() gap> complete; Variable: 'complete' must have a value gap> LogTo(); Here it is very disturbing that "correct" evaluated as "false" when I know perfectly well it is "true". Apparently, when it is asked if c2errs given as a list is trivial, it doesn't check anything except whether the word-spellings as given are null strings. So I altered it to: c2errs:=Subgroup(c2full,List(c2rels,i->ImageElm(c2fhom,i))); and now it hangs on "correct:=IsTrivial(c2errs);" as before. On Mon, 26 Apr 2004, Alexander Hulpke wrote: > The reason for this not just a shortcoming of GAP but there are fundamental > algorithmic difficulties when working with finitely presented groups (the > general unsolvability of the word problem). Yes, I know this. I gave up on using any general-purpose packages for these groups a long time ago, and have written a monstrous special-purpose program in C. In any string of "letters" (of the free group) or "generators" (of the pure) there are typically dozens of moves which look simplifying (letter-switches via the braids, or applying known commutators to the generators), all but one of which lead into cyclic futilities. "Strait is the gate and narrow the way that leads to salvation": I search in every string for the one and only move that makes progress. There is no hope of avoiding cyclic futilities, only of recognizing when you are in one and refusing to keep going around and around. > GAP's algorithms for finitely presented groups mostly assume that subgroups > are of finite index and might not terminate if subgroups have infinite > index. Is there any way to tell when the process simply requires a long time, or if it is not guaranteed to terminate even in billions of years? I know, I know, this is Turing's Halting Problem. > The recent 4.4 release comes with a new package FGA (free group algorithms) > that provide some further functionality for subgroups of free groups that > might help a bit, but I expect this package alone will not solve the > problem. Are there some useful new commands in there? All I see written up is "Centralizer". > > > c2gaps:=Kernel(c2phom); > > This again is unlikely to work. What might work is: > - Compute a presentation for the kernel(c2whom) using > IsomorphismFpGroupByGenerators'. > - evaluate the relators in the generators of c2pure. This gives for F4 a presentation with 1198 generators (the correct number of independent generators is 24) and thousands of very long relations. It attempts to do Tietze reductions (purging the generator set of those where a relation lets one be redefined in terms of the other): this part only takes my program seconds, but after 15 minutes GAP is nowhere near getting down to the 24, and I am not sure if it would finish in a human lifespan. From hulpke at math.colostate.edu Tue Apr 27 16:53:39 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Bug in Process() In-Reply-To: <200404192343.BAA10287@goedel.fjf.gnu.de> Message-ID: <200404271553.i3RFrdrX009781@schur.math.colostate.edu> Dear Frank Heckenbach, > GAP 4.4.2 I see this: > > gap> s := "";; > gap> out := OutputTextString (s, true);; > gap> inp := InputTextFile ("/dev/null");; > gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; > gap> DirectoryTemporary ();; > gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; > List Element: must be a list (not a boolean) at > return ExecuteProcess( dir, prg, input![1], output![1], args ); > called from > EXECUTE_PROCESS_FILE_STREAM( dir, prg, input, new_output, args ) called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can replace via 'return ;' to continue > > The problem seems to be the caching of PROCESS_INPUT_TEMPORARY' and > PROCESS_OUTPUT_TEMPORARY' in process.gi' while the corresponding Thank you very much for the bug report and the corresponding correction. This fix will be included in the next bugfix. Best wishes, Alexander Hulpke PS: This reply only goes to the forum as the original report was to the forum. Errors reported to support@gap-system.org' will usually be acknowledged privately, unless they could cause wrong results (in which case we will alert the forum), but of course as well will be corrected in the subsequent next bugfix. AH -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wdj at USNA.Navy.Mil Wed Apr 28 22:34:27 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Schur index question Message-ID: <40902363.6080208@hermes.ewlab.usna.edu> Hello Gap Forum: Is there a GAP function which computes the Schur index (over Q) of a representation? Doesn't seem to be an answer to this in the Forum archives. The following seems to give a bound (based on my possibly wrong understanding of a test in Cor 31 of ch 22 of Berkovich+Zhmud, Chars of finite gps, vol 2): SchurIndexBound:=function(chi) local G,H,IrrH,CG,n,i,L,B; G:=UnderlyingGroup(chi); L:=[DegreeOfCharacter(chi)]; CG:=ConjugacyClassesSubgroups(G); n:=Length(CG); for i in [2..n] do H:=Representative(CG[i]); IrrH:=Irr(H); L:=Union(L,[ScalarProduct(RestrictedClassFunction(chi,H),IrrH[1])]); od; B:=Gcd(L); return(B); end; I'm wondering if there is something better out there. - David Joyner From sievers at math2.nat.tu-bs.de Thu Apr 29 18:32:14 2004 From: sievers at math2.nat.tu-bs.de (Christian Sievers) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: References: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> Message-ID: <16529.15390.349258.356047@gauss00.math2.nat.tu-bs.de> Dear Robert, dear Forum, Robert Eckert asked about the FGA package: > Are there some useful new commands in there? All I see written up is > "Centralizer". I certainly hope that the commands in the FGA package are useful. It mainly installs methods for operations that GAP already knew, but could not compute for free groups. I am not sure if these method installations should be called "new commands". In any case, they provide new functionality. Most of the methods work with finitely generated subgroups of free groups. They allow a (constructive) membership test and compute the rank, the index, the normalizer, the centralizer and (a new command: FreeGeneratorsOfGroup) a free generating set of such subgroups. It is also possible to compute their intersection and to test conjugacy of elements or subgroups. Finally, the package also provides a presentation of the automorphism group of a free group. Alas, I don't see how this might help you to solve your problem. If you have an idea and need help with the package, please feel free to ask me. All the best Christian Sievers From c.bates at postgrad.umist.ac.uk Thu Apr 29 21:18:06 2004 From: c.bates at postgrad.umist.ac.uk (Chris Bates) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Brauer Table for L2(128) Message-ID: <1083269886.409162fec1778@webmail1.umist.ac.uk> Hi, Does anybody know if the mod 2 Brauer character table for L_{2}(128) is available anywhere? Thanks, CB -- Chris Bates MSS/Q10 Dept. of Mathematics UMIST Manchester M60 1QD http://personalpages.umist.ac.uk/postgrad/C.Bates From eckert at math.wayne.edu Fri Apr 30 05:30:04 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <16529.15390.349258.356047@gauss00.math2.nat.tu-bs.de> References: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> <16529.15390.349258.356047@gauss00.math2.nat.tu-bs.de> Message-ID: On Thu, 29 Apr 2004, Christian Sievers wrote: > Dear Robert, dear Forum, > > Robert Eckert asked about the FGA package: > > > Are there some useful new commands in there? All I see written up is > > "Centralizer". > > I certainly hope that the commands in the FGA package are useful. Yes, they are. My problem turned out to be just a glitch in the way the manual was installed; in various sections, including most of the FGA info, I would hit "?" and get the headers and zero text; this has been fixed. ... > Most of the methods work with finitely generated subgroups of free groups. > They allow a (constructive) membership test... The problem, with groups not subgroups-of-free but quotient-groups modding out some relations, is that it may falsely say a word is "not" in the group, if it is distinguished from a word it would recognize by something which, really, is trivial, but which it does not know how to trivialize. This is not a fault of the packages but of the general "word problem". Forcing Knuth-Bendix to run asks if this is in "the swamp", when, alas, the swamp is bottomless. Holt's KBMag package says, effectively, "let's just map the top ten meters of the swamp". Pardon me if I am asking a "duh, of course!" or "duh, of course not!" question, but is there a way of force-feeding a set of rules? "Forget what Knuth-Bendix says looks good, you will use THESE rules and like it"? The problem may be that K-B wants to find the shortening possibilities, where actually a rewriting that makes most things longer is what some purposes need. If I rewrite in an ugly set of generators, I can deploy a filtration, pure-F4 = top-F4 semidirect product by pure-C3, which is top-C3 by pure-C2, which is top-C2 by pure-A1, which is free on letter-1-squared. For each high-grade generator G and lower-grade g there is exactly one relation like G g = g G' G" G G"- G'- moving g left and replacing G with its conjugate by a varying number (zero to hundreds) of generators at its same grade. KBMag can guarantee me something IS trivial, but this way can guarantee something is NOT trivial; if all grades are separated, each graded component must be trivial (and within each grade there are few relations: all grade-2 and all type-A or type-C at every grade are purely free; type-D and H3 have only one commutator, the two blocks of which can be decreed to be two of the generators; top-E6/E7/E8/F4/H4 are worse but not horribly so). I have been fighting to make my home-brew program do this right for a wearyingly long time, but I can get it to spit out its rules into a file GAP can Read if there is code to pick up the ball from there. > All the best Bob Eckert From nickel at mathematik.tu-darmstadt.de Fri Apr 30 12:31:07 2004 From: nickel at mathematik.tu-darmstadt.de (Werner Nickel) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] p-quotient of an infinite matrix group In-Reply-To: <1082630861.4087a2cd1d4d9@www.unitn.it> References: <1082630861.4087a2cd1d4d9@www.unitn.it> Message-ID: <20040430113107.GA6330@mathematik.tu-darmstadt.de> Dear Gap Forum, dear Marco, > let G be an infinite matrix group, like in the example below. I'd like to > study a p-quotient (or a nilpotent-, solvable-, polycyclic- quotient) of > G (I mean a quotient of the form G / PCentralSeries(G,7)[n]). > > The obstacles are that the quotient methods requires a finitely presented > group, and the conversion from matrix groups to finitely presented groups > is available only for finite groups. > > Are there any suggestion? > > r := > [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], > [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], > [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], > [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; > s := > [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], > [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], > [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; > > G := Group( r,s ); I don't have an out-of-the box solution for Marco's question. I would like to make the following suggestions: There is a map of rings from the 7-th cyclotomic integers into a finite field F containing a 7-th root of unity. The map is essentially specified by mapping E(7) to the 7-th root of unity in F. This map defines a map from G into the (invertible) matrices over F. As far as I could see the resulting matrix group is not easy to analyze with the standard GAP functions. Here is a strategy for an analysis by hand: Take the (images of the) conjugates of s by the powers of r. This gives 7 upper triangular matrices. The subgroup generated by their commutators contains matrices of the shape [ 1 * * * * * * * ] [ 1 0 0 0 0 0 0 ] [ 1 0 0 0 0 0 ] .... [ 1 ] generating a subgroup of F^7. It is easy to determine a basis (over the prime field) for the subgroup. After that it is easy to specify the action of the conjugates of s on the commutator subgroup and finally to add the action of r on the group generated by the conjugates of s. After all this is done one ends up with a pc-presentation for the image group. If one chooses F to be GF(7) then most of the structure of the group disappears because the only 7-th root of unity in characteristic 7 is 1. Hope this helps, Werner Nickel -- Dr (AUS) Werner Nickel Mathematics with Computer Science Room: S2 15/212 Fachbereich Mathematik, AG 2 Tel: +49 6151 163487 TU Darmstadt Fax: +49 6151 166535 Schlossgartenstr. 7 Email: nickel@mathematik.tu-darmstadt.de D-64289 Darmstadt -- From eckert at math.wayne.edu Fri Apr 30 16:10:58 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Marco's question: p-quotient of an infinite matrix group In-Reply-To: <20040430113107.GA6330@mathematik.tu-darmstadt.de> References: <1082630861.4087a2cd1d4d9@www.unitn.it> <20040430113107.GA6330@mathematik.tu-darmstadt.de> Message-ID: On Fri, 30 Apr 2004, Werner Nickel wrote: ...> > let G be an infinite matrix group, like in the example below... > > r := > > [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], > > [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], > > [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], > > [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; > > s := > > [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], > > [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], > > [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], > > [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; > > > > G := Group( r,s ); > > I don't have an out-of-the box solution for Marco's question. I would > like to make the following suggestions: > > There is a map of rings from the 7-th cyclotomic integers into a > finite field F containing a 7-th root of unity. Computationally cleanest would be GF(64) with defining polynomial x^6 = x^5 + x^4 + x^3 + x^2 + x + 1 = x^(-1) Elements could be written with x^0 to x^5 in bits 1 to 6 of a byte leaving bits 0 and 7 clear; then "times/divide x" is a one-position rotate, followed, if bit 0 or 7 is left set, by setting the other and then complementing the whole byte. This group is acting on the dim-8 vectors (really dim-7 as the first coefficient is always fixed, but I assume this is not always the case in Marco's groups). Surely GAP give an fp-presentation of SL(8,64); to find the appropriate subgroup, note that if the defining polynomial for GF(64) is other than the above, the actual seventh-root of one must be used instead of just "x". Bob Eckert (Wayne State) From frank.luebeck at math.rwth-aachen.de Fri Apr 30 17:08:01 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Brauer Table for L2(128) In-Reply-To: <1083269886.409162fec1778@webmail1.umist.ac.uk> Message-ID: On Thu, 29 Apr 2004, Chris Bates wrote: > Does anybody know if the mod 2 Brauer character table for L_{2}(128) is > available anywhere? Dear Chris, dear Forum, I don't know of such an explicit table. But it is not too difficult to construct it. Even all irreducible representations are not difficult to construct: One needs the natural representation of G = SL_{2}(128) as 2x2 matrices over GF(128). Steinbergs tensor product theorem says how all irreducible representations are constructed; they are tensor products of the Frobenius twists of this fixed natural representation. This description can also be used to write down the corresponding Brauer characters. If you think the explicit Brauer table is useful for this case (the values give a 128x128 matrix with unpleasant root of unity terms) and need help with a short GAP program along the lines above, don't hesitate to contact me. Best regards, Frank /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From nickel at mathematik.tu-darmstadt.de Mon May 3 08:17:06 2004 From: nickel at mathematik.tu-darmstadt.de (Werner Nickel) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Re: Marco's question: p-quotient of an infinite matrix group In-Reply-To: References: <1082630861.4087a2cd1d4d9@www.unitn.it> <20040430113107.GA6330@mathematik.tu-darmstadt.de> Message-ID: <20040503071706.GA10480@mathematik.tu-darmstadt.de> Dear Robert, [...] > > There is a map of rings from the 7-th cyclotomic integers into a > > finite field F containing a 7-th root of unity. > Computationally cleanest would be GF(64) with defining polynomial > x^6 = x^5 + x^4 + x^3 + x^2 + x + 1 = x^(-1) > Elements could be written with x^0 to x^5 in bits 1 to 6 of a byte leaving > bits 0 and 7 clear; then "times/divide x" is a one-position rotate, > followed, if bit 0 or 7 is left set, by setting the other and then > complementing the whole byte. you correctly point out that arithmetic in GF(64) is efficient if one chooses an adequate representation for the elements of the field. However, efficiency of the field arithmetic is not the main difficulty in Marco's question. The main point is to find a homomorphism into a finite (p-) group. Once you have defined a homomorphism into a matrix group over a suitable finite field, the speed of the underlying arithmetic plays a role but most likely not a prominent one. By the way, GAP implements elements of GF(64) (and all finite fields of small order) by storing the power of an element with respect to fixed primitive element of the field. Multiplication reduces to addition modulo the order of the mutliplicative group. Addition is essentially encoded by an addition table. > This group is acting on the dim-8 vectors (really dim-7 as the first > coefficient is always fixed, but I assume this is not always the case in > Marco's groups). Surely GAP give an fp-presentation of SL(8,64); A finite presentation for SL(8,64) does not help much in finding a finite presentation for Marco's group because it is a difficult to derive a presentation for a subgroup from one of the whole group, in particular if the index of the subgroup is big as it is in this case. With kind regards, Werner Nickel. -- Dr (AUS) Werner Nickel Mathematics with Computer Science Room: S2 15/212 Fachbereich Mathematik, AG 2 Tel: +49 6151 163487 TU Darmstadt Fax: +49 6151 166535 Schlossgartenstr. 7 Email: nickel@mathematik.tu-darmstadt.de D-64289 Darmstadt -- From hulpke at math.colostate.edu Mon May 3 16:59:20 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: Message-ID: <200405031559.i43FxK3K007212@schur.math.colostate.edu> Dear GAP-Forum, Robert Eckert wrote: > Forcing Knuth-Bendix to run asks if this is in "the swamp", when, alas, > the swamp is bottomless. Holt's KBMag package says, effectively, "let's > just map the top ten meters of the swamp". Pardon me if I am asking a > "duh, of course!" or "duh, of course not!" question, but is there a way of > force-feeding a set of rules? "Forget what Knuth-Bendix says looks > good, you will use THESE rules and like it"? The problem may be that K-B While I'm not 100% certain on this interpretation, I understand yoiur question as asking whether you can prescribe your own rewriting rules. This is possible (see the manual chapter on rewriting systems). However in this case: - you will have to ensure confluence on your own. (which can be nontrivial). - Unless you substitute your rewriting system (for this you would have to change the library code), you will have to call ReducedForm' with monoid elements and cannot simply do group arithmetic. > wants to find the shortening possibilities, where actually a rewriting > that makes most things longer is what some purposes need. > If I rewrite in an ugly set of generators, I can deploy a filtration, > pure-F4 = top-F4 semidirect product by pure-C3, which is top-C3 by > pure-C2, which is top-C2 by pure-A1, which is free on letter-1-squared. > For each high-grade generator G and lower-grade g there is exactly one > relation like > G g = g G' G" G G"- G'- > moving g left and replacing G with its conjugate by a varying number (zero What you are doing effectively is to work in some quotient group. GAP can get you some of these (see e.g. SolvableQuotient'). In principle you could try to generalize existing code to work even in a profinite quotient. The problem then becomes to know when to stop evaluating to prove (non)-equality of elements. Best wishes, Alexander Hulpke From dfh at maths.warwick.ac.uk Mon May 3 18:41:14 2004 From: dfh at maths.warwick.ac.uk (Derek Holt) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <200405031559.i43FxK3K007212@schur.math.colostate.edu> References: <200405031559.i43FxK3K007212@schur.math.colostate.edu> Message-ID: <20040503174114.GA10581@maths.warwick.ac.uk> On Mon, May 03, 2004 at 09:59:20AM -0600, Alexander Hulpke wrote: > Dear GAP-Forum, > > Robert Eckert wrote: > > > Forcing Knuth-Bendix to run asks if this is in "the swamp", when, alas, > > the swamp is bottomless. Holt's KBMag package says, effectively, "let's > > just map the top ten meters of the swamp". Pardon me if I am asking a > > "duh, of course!" or "duh, of course not!" question, but is there a way of > > force-feeding a set of rules? "Forget what Knuth-Bendix says looks > > good, you will use THESE rules and like it"? The problem may be that K-B > > While I'm not 100% certain on this interpretation, I understand yoiur > question as asking whether you can prescribe your own rewriting rules. I was also uncertain about what was being asked. I guess KBMAG should have an option to essentially do nothing and to use just the existing rules for reduction - I have occasionally wanted to do that myself. But you can essentially achieve that aim by setting the maximum number of rewrite rules allowed to be something less than the initial number. It might, however, insist on tidying up your rule set slightly - for example, the rewriting algorithm in KBMAG gets confused if two different rewriting rules have the same left hand side. > This is possible (see the manual chapter on rewriting systems). However in > this case: > - you will have to ensure confluence on your own. (which can be > nontrivial). > - Unless you substitute your rewriting system (for this you would have to > change the library code), you will have to call ReducedForm' with monoid > elements and cannot simply do group arithmetic. > > > wants to find the shortening possibilities, where actually a rewriting > > that makes most things longer is what some purposes need. A number of orderings of words are available in KBMAG, some of which will result in rewriting systems which can make words longer. For example, in the wreath product orderings (which are the ones on which reduction to normal form in polycyclic groups is based) generators have levels, and one occurrence of a generator at a higher level will be regarded as larger (in the ordering) than any number of occurrencs of lower level generators. But again, I don't know whether this is the kind of thing that you are looking for! Dere Holt. > > If I rewrite in an ugly set of generators, I can deploy a filtration, > > pure-F4 = top-F4 semidirect product by pure-C3, which is top-C3 by > > pure-C2, which is top-C2 by pure-A1, which is free on letter-1-squared. > > For each high-grade generator G and lower-grade g there is exactly one > > relation like > > G g = g G' G" G G"- G'- > > moving g left and replacing G with its conjugate by a varying number (zero > > What you are doing effectively is to work in some quotient group. GAP can > get you some of these (see e.g. SolvableQuotient'). > > In principle you could try to generalize existing code to work even in a > profinite quotient. The problem then becomes to know when to stop evaluating > to prove (non)-equality of elements. > > Best wishes, > > Alexander Hulpke > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From eckert at math.wayne.edu Mon May 3 22:29:53 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <20040503174114.GA10581@maths.warwick.ac.uk> References: <200405031559.i43FxK3K007212@schur.math.colostate.edu> <20040503174114.GA10581@maths.warwick.ac.uk> Message-ID: On Mon, 3 May 2004, Derek Holt wrote: > ... I guess KBMAG should have an > option to essentially do nothing and to use just the existing rules for > reduction - I have occasionally wanted to do that myself. But you can > essentially achieve that aim by setting the maximum number of rewrite rules > allowed to be something less than the initial number. This sounds like it will do what I want it to, thanks. > It might, however, > insist on tidying up your rule set slightly - for example, the rewriting > algorithm in KBMAG gets confused if two different rewriting rules have the > same left hand side. This can be avoided in this case. > A number of orderings of words are available in KBMAG, some of which will > result in rewriting systems which can make words longer. For example, in the > wreath product orderings (which are the ones on which reduction to normal > form in polycyclic groups is based) generators have levels, and one > occurrence of a generator at a higher level will be regarded as larger (in > the ordering) than any number of occurrencs of lower level generators. > > But again, I don't know whether this is the kind of thing that you > are looking for! Very similar. I want everything of "high grade" pushed in one direction. From Michael.Hartley at nottingham.edu.my Mon May 3 22:43:42 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 1 Message-ID: I am currently on leave until the 17th of May. I will attend to your email when I return. Thank you. From bjoerna77 at gmx.de Tue May 4 11:23:19 2004 From: bjoerna77 at gmx.de (Bjoern Assmann) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] p-quotient of an infinite matrix group References: <16773.1083666105@www2.gmx.net> Message-ID: <26934.1083666199@www2.gmx.net> Dear GAP Forum, dear Marco, on Thu, 22 Apr 2004 Marco Costantini wrote > let G be an infinite matrix group, like in the example below. > I'd like to study a p-quotient (or a nilpotent-, solvable-, > polycyclic- quotient) of > G (I mean a quotient of the > form G / PCentralSeries(G,7)[n]). The obstacles are that the quotient > methods requires a finitely presented group, and the conversion from > matrix groups to finitely presented groups > is available only for finite groups. > > Are there any suggestion? > > r := > [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], > [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], > [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], > [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; > s := > [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], > [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], > [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; > > G:=Group( [ r, s ] ); I think that I can solve Marco's problem using the methods of the Polenta package. This package contains an algorithm to determine a polycyclic presentation for a polycyclic rational matrix group. A variation of the method applies to Marco's group. I used this variation to compute a polycyclic presentation on 70 generators for the considered matrix group in GL(8, Q(E(7))). The factors of its polycyclic series are [ 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] where 0 stands for an infinite factor. Using the polycyclic presentation it is now straightforward to compute all kinds of factor groups for the considered group (these methods are implemented in the Polycyclic package). For example, the orders of the first 7 factors of the 7-central series of the group are: 49, 7, 7, 7, 7, 7, 49 The Polenta package is using a similar approach as suggested by Werner: it first computes a polycyclic presentation for a finite image of the group in GL( d, q ) for some suitable prime power q and then it computes a polycyclic presentation for the kernel of this map. The practicality of the method depends critically on the choosen prime power q and also, in Marco's case, I needed to extend the method from working over the rationals to working over an algebraic number field. Hence the Polenta package does not solve Marco's problem without some additional tricks. These tricks are available on http://cayley.math.nat.tu-bs.de/software/assmann/marcosgroup.g gap> K := PcpGroupOfMarcosExam(); Pcp-group with orders [ 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] gap> time; 1027770 # this are approximately 17 minutes Marco wrote > I'd like to > study a p-quotient (or a nilpotent-, solvable-, polycyclic- quotient) of > G (I mean a quotient of the form G / PCentralSeries(G,7)[n]). The function call PCentralSeriesSteps( K, 7, n) caculates the first n+1 Groups of the 7-central series (this function written by Bettina is also contained in the file marcosgroup.g). gap> ser := PCentralSeriesSteps(K,7,7);; gap> Order( ser[1]/ser[2] ); 49 gap> Order( ser[2]/ser[3] ); 7 Maybe it suffices to study a quotient of K (see the ANUPQ Package). Short Desription of the implemented method: ------------------------------------------ on Fri, 30 Apr 2004 Wernel Nickel wrote > There is a map of rings from the 7-th cyclotomic integers into a > finite field F containing a 7-th root of unity. The map is > essentially specified by mapping E(7) to the 7-th root of unity in F. > This map defines a map from G into the (invertible) matrices over F. Following the suggestion from Werner I chosed a map from the 7-th cyclotomic integers into the Galois Field GF(2^3) (mapping E(7) to Z(2^3)). This map gives rise to a map phi : G -> GL(8,GF(2^3)) The images of r and s under phi are phi(r) = [ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ]; phi(s) = [ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), Z(2^3)^6, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2^3), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ] ]; With the function "PcpGroupByMatGroup" you can calculate a polycyclic presentation of phi(G). Using the relations of this presenation you can calculate normal subgroup generators k_1,...,k_n for the kernel of phi. The matrices k_i are of the shape 1 * * * * * * * 0 1 0 0 0 0 0 0 ............... 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 where the entries "*" are in the 7-th cyclotomic integers I. Thus the kernel of phi is isomorphic to a subgroup of the lattice I^7 and therefore polycyclic. It follows that the hole group G is polycyclic. Now it is easy to calculate a basis for the lattice, which is isomorphic to , and to close this basis under the conjuation action of G. Using the homomorpism from G onto the polycyclic presentation of phi(G) and the basis for the kernel of phi, you can calculate a presentation for the whole group G. Remark 1 -------- In principal you could also represent G as 48 * 48 matrix group "G_big" over the rationals. (Every entry of r and s would become a 6*6 matrix and E(7) would be represented as [ [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ -1, -1, -1, -1, -1, -1 ] ]) Then you could apply directly PcpGroupByMatGroup to G_big. Unfortunately the computation costs too much memory in this case. To be more precise the arrising orbits of a finite image of G_big become to long. Remark 2 -------- As Werner Nickel pointet out to me yesterday, his suggestion for the computation of a presentation by hand for a finite image of G ( see his e-mail to the GAP Forum from Friday, 30 Apr 2004) is also valid for G. Best wishes Bjoern From ally at dcs.gla.ac.uk Thu May 6 16:57:11 2004 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Using GAP to identify permutation groups with "well known" groups Message-ID: I have a permutation group G of the following form: G=<(5 6)(20 21),(6 7)(21 22),(8 9)(23 24),(9 10)(24 25),(5 8)(6 9)(7 10)(20 23)(21 24)(22 25)(2 3)(17 18)(14 15),(11 12)(26 27)> I've used GAP to check that this is isomorphic to DirectProduct(S2,WreathProduct(S3,S2)) (if it's not then I've made a mistake writing the generators!). What I'm trying to do is to classify certain groups arising from graphs as products/wreath products of "well known" groups like S3 and S2. I'm wondering if GAP has some way of automatically classifying permutation groups in a way similar to this. Any ideas? Thanks Alastair Donaldson From ally at dcs.gla.ac.uk Thu May 6 17:25:01 2004 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Using GAP to identify permutation groups with "well known" groups Message-ID: I have a permutation group G of the following form: G=<(5 6)(20 21),(6 7)(21 22),(8 9)(23 24),(9 10)(24 25),(5 8)(6 9)(7 10)(20 23)(21 24)(22 25)(2 3)(17 18)(14 15),(11 12)(26 27)> I've used GAP to check that this is isomorphic to DirectProduct(S2,WreathProduct(S3,S2)) (if it's not then I've made a mistake writing the generators!). What I'm trying to do is to classify certain groups arising from graphs as products/wreath products of "well known" groups like S3 and S2. I'm wondering if GAP has some way of automatically classifying permutation groups in a way similar to this. Any ideas? Thanks Alastair Donaldson From costanti at science.unitn.it Thu May 6 18:52:42 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Using GAP to identify permutation groups with "well known" groups In-Reply-To: References: Message-ID: <1083865962.409a7b6a9237f@www.unitn.it> Dear Alastair Donaldson and gap forum, the groups are isomorphic. See the documentations of the functions IdGroup and IsomorphismGroups, and try the following code. All the best, Marco Costantini G1:=Group( (5, 6)(20, 21),(6, 7)(21, 22),(8, 9)(23, 24),(9, 10)(24, 25),(5,8) (6, 9)(7, 10)(20, 23)(21, 24)(22, 25)(2, 3)(17, 18)(14, 15),(11, 12)(26, 27)); S2:=SymmetricGroup(2); S3:=SymmetricGroup(3); G2:=DirectProduct(S2,WreathProduct(S3,S2)); IdGroup(G1); IdGroup(G2); IsomorphismGroups(G1,G2); Scrive Alastair Donaldson : > I have a permutation group G of the following form: > > G=<(5 6)(20 21),(6 7)(21 22),(8 9)(23 24),(9 10)(24 25),(5 8)(6 9)(7 > 10)(20 23)(21 24)(22 25)(2 3)(17 18)(14 15),(11 12)(26 27)> > > I've used GAP to check that this is isomorphic to > DirectProduct(S2,WreathProduct(S3,S2)) (if it's not > then I've made a mistake writing the generators!). What I'm > trying to do is to classify certain groups arising from graphs as > products/wreath products of "well known" groups like S3 and S2. > > I'm wondering if GAP has some way of automatically classifying > permutation > groups in a way similar to this. > > Any ideas? > > Thanks > > Alastair Donaldson From vdabbagh at math.carleton.ca Thu May 6 23:01:29 2004 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Not G-conjugate subgroups Message-ID: Dear GAP Forum, If P is a Sylow subgroup of G, how can I get all not G-conjugate subgroups of P without computing the lattice of subgroups of G? Regards, Vahid http://math.carleton.ca/~vdabbagh Tel: (613) 520-2600 ext. 8789 School of Mathematics and Statistics Room 4356, Herzberg Building 1125 Colonel By Drive, Carleton University Ottawa, Ontario, CANADA K1S 5B6 From parth_dixit at da-iict.org Thu May 6 23:43:50 2004 From: parth_dixit at da-iict.org (parth dixit) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] (no subject) Message-ID: <200405062243.i46Mhol17750@mail.da-iict.org> hi, Is there any way to compute the extnsion of character in GAP (given that it exists) of subgroup to its parent group?thanks in advance regards parth dixit From kohl at mathematik.uni-stuttgart.de Fri May 7 12:18:07 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Not G-conjugate subgroups References: Message-ID: <409B706F.E1134AAB@mathematik.uni-stuttgart.de> Dear Forum, Vahid Dabbaghian-Abdoly asked: > If P is a Sylow subgroup of G, how can I get all not G-conjugate subgroups > of P without computing the lattice of subgroups of G? Of course there is no need to compute the whole subgroup lattice of G -- you can just compute representatives for the conjugacy classes of subgroups of P, and then get the desired result by testing conjugacy in G. Taking a Sylow 2 subgroup of M_11 as an easy example we can illustrate this as follows: gap> G := MathieuGroup(11); Group([ (1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6) ]) gap> P := SylowSubgroup(G,2); Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) gap> subP := List(ConjugacyClassesSubgroups(P),Representative); [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,6,5)(4,11,8,7) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(subP); 10 gap> reps := [subP[1]];; gap> repeat H := First(subP,grp->not ForAny(reps,rep->IsConjugate(G,grp,rep)))$gap> reps; # The desired set of representatives. [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(reps); 8 Hope this helps, Stefan Kohl From kohl at mathematik.uni-stuttgart.de Fri May 7 12:25:30 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Not G-conjugate subgroups References: Message-ID: <409B722A.98E0CFD8@mathematik.uni-stuttgart.de> Dear Forum, Vahid Dabbaghian-Abdoly asked: > If P is a Sylow subgroup of G, how can I get all not G-conjugate subgroups > of P without computing the lattice of subgroups of G? [ Once again -- in my last mail an overly long line has been cut, which I now have split into several shorter lines. Apologies. ] Of course there is no need to compute the whole subgroup lattice of G -- you can just compute representatives for the conjugacy classes of subgroups of P, and then get the desired result by testing conjugacy in G. Taking a Sylow 2 subgroup of M_11 as an easy example we can illustrate this as follows: gap> G := MathieuGroup(11); Group([ (1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6) ]) gap> P := SylowSubgroup(G,2); Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) gap> subP := List(ConjugacyClassesSubgroups(P),Representative); [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,6,5)(4,11,8,7) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(subP); 10 gap> reps := [subP[1]];; gap> repeat > H := First(subP,grp->not ForAny(reps,rep->IsConjugate(G,grp,rep))); > if H <> fail then Add(reps,H); fi; > until H = fail; gap> reps; # The desired set of representatives. [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(reps); 8 Hope this helps, Stefan Kohl From thomas.breuer at math.rwth-aachen.de Fri May 7 17:21:15 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] (no subject) Message-ID: Dear GAP Forum, Parth Dixit wrote > Is there any way to compute the extnsion of character in GAP (given > that it exists) of subgroup to its parent group?thanks in advance If the given character chi of the subgroup H is irreducible then one possibility would be to compute all irreducible characters of the supergroup G, then to compute their restrictions to H, and then to fetch those irreducibles of G that restrict to chi. If the given character chi is a permutation character of H and one is interested in the extension of chi as a permutation character of G then the GAP function PermChars' can be used to compute candidates (which then have to be verified). All the best, Thomas From hulpke at math.colostate.edu Tue May 11 16:46:30 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:40 2005 Subject: [GAP Forum] Bugfix/Upgrade GAP 4.4.2 to 4.4.3 Message-ID: <200405111546.i4BFkU3Z021977@schur.math.colostate.edu> Dear GAP-Forum, We are happy to announce the release of teh first bugfix for GAP 4.4 that will upgrade the release to version 4.4.3. The release announcement, including installation instructions and a list of the errors fixed, is attached. For those of you who have been using prior releases of GAP, let me add a few remarks about small changes we have made with release 4.4: - Bugfixes now increment the sub-version number, so instead of 4r4fix3, the version is called 4r4p3. However the process of installing the fix is the same as with previous versions. - The only exception to this is that now the Windows binary and (in the .zoo archive) the MacOS binary are included in the same archive. If you are using GAP on another architecture you can of course delete these binaries and recover 2 or 3 MB of memory. - To ease installation for persons who install GAP only after a bugfix is released we will also update the main GAP archive (in this case to gap4r4p3) to include the bugfix. Installing a previous archive and a fix, or installing the new archive will produce exactly the same files. (Thus in particular, the manual in gap4r4p3 still lists 4.4.2, as we usually do not update the manual with bugfixes.) - Packages, as before, are updated by the respective authors. You will find the most recent versions on the GAP webpages (as single packages as well as a uniform archive packages-...'). We hope that these changes will make installing and updating GAP easier. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke ============================================================================= Bugfix Announcement: This is to announce a bugfix that updates GAP 4.4.2 to GAP 4.4.3 . The priority of this fix is high. You should not apply this fix to any version of GAP before GAP 4.4. (If you run such an old version, please update to GAP 4.4 as release 4.4 corrects many problems.) GAP Bugfixes now are comprehensive. If you forgot to install prior bugfixes, you do only need to install this, and no prior ones. If you did not yet install GAP 4.4 you only need to install GAP 4.4.3 which will incorporate this bugfix. This fix corrects: 1) Problems with the online help with some manual sections. 2) Problems of the online help on Windows systems. 3) A problem in GQuotients when mapping from a finitely presented group which has a free direct factor. 4) The function DisplayRevision' 5) The trivial finitely presented group on no generators was not recognized as finitely presented. 6) A problem with Process'. 7) A problem when intersecting subgroups of finitely presented groups that are represented in quotient representation'' with the quotient not a permutation group. 8) A bug in the generic Intersection2' method for vector spaces, in the case that both spaces are trivial. 9) Correct setting of system variables (e.g., home directory and command line options) after loading a workspace. 10) Enable ReeGroup(q) for q = 3. 11) A problem in the installation of the multiplication routine for matrices that claimed to be applicable for more general list multiplications. 12) A problem when computing weight distributions of codes with weights > 2^28 13) Wrong handling of integer literals within functions or loops on 64bit architectures (only integers in the range from 2^28 to 2^60). Errors 1,3,4,5,6,7,8 and 10 may cause GAP to stop with an error message. Error 2 caused the Windows version not to display the online help properly. Error 9 caused GAP to use wrong system variables after loading a workspace. Errors 11 and 12 could cause GAP to crash in very rare circumstances. Error 13 caused GAP to compute with wrong integers (only on 64bit and in the special situation mentioned above). Many thanks to: Frank Heckenbach for reporting error 6. Chris Wensley for reporting problem 13. Installing the bugfix. ====================== Load the zoo archive fix4r4p3.zoo' (or respectively other formats) from the bugfixes web page http://www.gap-system.org/tmpsite/Download/upgrade.html Alternatively you can find this file in the bugfixes' directory of the GAP4 ftp distribution. Unpack the file in the home directory of your GAP distribution (the directory containing the lib' and grp' directories), for example by using unzoo -x fix4r4p3.zoo' if you use the zoo' archive. The archive uncompressor program may ask you for permissions to overwrite files, answer this with Y)es or A)ll. This will replace the erroneous files by fixed versions. (Under Windows or MacOS you will have to copy unzoo' in the same directory and enter the argument line after the call to unzoo'.) Make sure you have write permissions when applying the fix. This fix changes the kernel. You have to recompile by calling make' in the directory in which you unpacked the fix. Windows users will find a new binary as bin/gapw95.exe' in the archive. MacOS users must use the zoo' archive and will find a new binary in the root directory. After installing the bugfix you can test whether the bugfix has been applied correctly by starting GAP from the gap4r4' directory and issuing gap> ReadTest("tst/bugfix.tst"); + bugfixes test + GAP4stones: 163 true (The output should be like this if the bugfixes have been installed correctly. The number of GAP4stones may vary according to your system.) Running this test is not a necessary part of installing a bug fix, but only serves as a confirmation that everything went well. The test might run for a long time and GAP will not output information while running. Note that it is not possible to run the test twice without restarting GAP and that an interruption of the test with CTRL-C will produce lots of (harmless) error messages. You can remove this file description3' afterwards. The GAP Group From marcus at math.uic.edu Tue May 11 17:49:57 2004 From: marcus at math.uic.edu (marcus@math.uic.edu) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] colors Message-ID: <20040511164957.GA27353@math.uic.edu> I'm really embarrased to be asking for something so silly, but in the previous release of GAP, there was file called something like tips.unix that had a bunch of commands to cause GAP to print various colors. It also had instructions on saved workspaces and tab completion, but these features have apparently been put into CreateWorkspace.sh. Anyway, the colors made doing algebra marginally less unpleasant. Does anyone have this file, or can you just tell me how to get my pretty colors back? -marcus -- I used to be "with it," but then they changed what "it" was. Now, what I'm "with" isn't "it," and what's "it" seems weird and scary to me. It'll happen to you... - Grampa Simpson From costanti at science.unitn.it Tue May 11 22:12:22 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] colors In-Reply-To: <20040511164957.GA27353@math.uic.edu> References: <20040511164957.GA27353@math.uic.edu> Message-ID: <1084309942.40a141b61eb60@www.unitn.it> Dear Marcus, the colo[u]rs were a very important feaure of gap4.3, and the lack of them is a bug of 4.4 that should be fixed. You can get the colors againg by reading the attached file. (Guess what does the Italian word 'lampeggiante' mean.) Best wishes, Marco Scrive marcus@math.uic.edu: > I'm really embarrased to be asking > for something so silly, but > in the previous release of GAP, > there was file called something > like tips.unix that had a bunch > of commands to cause GAP to print various > colors. It also had instructions > on saved workspaces and tab > completion, but these features > have apparently been put into > CreateWorkspace.sh. > Anyway, the colors made doing > algebra marginally less unpleasant. > Does anyone have this file, or > can you just tell me how to > get my pretty colors back? > -marcus > -- > I used to be "with it," but then they changed what "it" was. Now, what > I'm "with" isn't "it," and what's "it" seems weird and scary to > me. It'll happen to you... > > - Grampa Simpson > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > -------------- next part -------------- UsaIlColore := true; ANSI_COLORS := ShallowCopy( UsaIlColore ); if CompareVersionNumbers( VERSION, "4.3" ) then # prepara per usare il colore STDOUT := OutputTextUser();; PrintPromptHook:=CPROMPT;; EndLineHook:=function() end;; ColorPrompt := function(b) if b=false then Unbind(PrintPromptHook); Unbind(EndLineHook); return; fi; # my colored interface # we stored this above to avoid overwriting last system error with # function call ### STDOUT := OutputTextUser(); # print the prompt PrintPromptHook := function() local cp; cp := CPROMPT(); if cp = "gap> " then cp := "gap> "; fi; # different color for brk...> prompts if Length(cp)>0 and cp[1] = 'b' then WriteAll(STDOUT, "\033[1m\033[31m"); else WriteAll(STDOUT, "\033[1m\033[34m"); fi; # use this instead of Print such that the column counter for the # command line editor is correct PRINT_CPROMPT(cp); # another color for input WriteAll(STDOUT, "\033[0m\033[31m"); end; # reset attributes before going to the next line EndLineHook := function() WriteAll(STDOUT, "\033[0m"); end; end; Unbind(PrintPromptHook); Unbind(EndLineHook); ColorPrompt( UsaIlColore ); fi; if UsaIlColore and CompareVersionNumbers( VERSION, "4.3" ) then printcolorato := function ( arg ) Print( "\033[1m\033[33m" ); CallFuncList( Print, arg ); Print( "\033[0m" ); return; end; printlampeggiante := function ( arg ) Print( "\033[5m\033[33m" ); CallFuncList( Print, arg ); Print( "\033[0m" ); return; end; printreversed := function ( arg ) Print( "\033[7m\033[33m" ); CallFuncList( Print, arg ); Print( "\033[0m" ); return; end; else printcolorato := Print; printlampeggiante := Print; printreversed := Print; fi; From Jan.Draisma at unibas.ch Thu May 13 15:01:27 2004 From: Jan.Draisma at unibas.ch (Jan Draisma) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] MatrixOfAction Message-ID: <20040513140127.GC3894@igor.urz.unibas.ch> Dear Gap-Forum, I'm having the following problem with MatrixOfAction: g:=SimpleLieAlgebra("A",1,Rationals);; x:=GeneratorsOfAlgebra(g);; V:=HighestWeightModule(g,[1]);; W:=DirectSumOfAlgebraModules(V,V);; B:=Basis(W);; MatrixOfAction(B,x[1]); Error, no method found! ... Is this use of MatrixOfAction (or in Coefficients, where the problem seems to be located) unsupported? Best wishes, Jan From frank.luebeck at math.rwth-aachen.de Fri May 14 10:59:26 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] colors In-Reply-To: <20040511164957.GA27353@math.uic.edu> Message-ID: > I'm really embarrased to be asking > for something so silly, but > in the previous release of GAP, > there was file called something > like tips.unix that had a bunch > of commands to cause GAP to print various > colors. Dear Marcus, dear Forum, Interesting to hear that some people actually like and use the colors which distinguish prompt, input and output in a terminal running GAP. (I also use and like them.) Nothing has changed about it in GAP 4.4. I've only moved the corresponding part of the README.unix file you have mentioned to a private page. Fetch the file http://www.math.rwth-aachen.de:8001/RsyncLinuxGAP/colorprompt.g and copy it, say, to the 'lib' directory of your GAP installation. Saying ReadLib("colorprompt.g"); in GAP or your ~/.gaprc file enables the colored prompt and sets the variable 'ANSI_COLORS' to 'true'. (You can switch it off with 'ColorPrompt(false); ANSI_COLORS := false;'.) If ANSI_COLORS is 'true', some help pages are also displayed with color markup. The reason that I removed it from the "official" GAP pages is that I mainly got negative comments so far. But following your forum mail I suddenly got a bunch of positive ones. So, I will put some version of 'colorprompt.g' in the GAP library and document the functionality. (For the moment, please follow the instructions above.) Two more remarks on using colors with GAP (code): (1) If you want to use colors for your own 'Print' or 'View' functions in GAP you find some utilities in the GAPDoc package, ask the GAP help system for ?TextAttr Using this you can easily change background and foreground colors as well as other attributes while printing to the terminal. (Of course, only in terminal emulations which understand the "ANSI color escape sequences", there is no way to force certain colors, they depend on the configuration of the terminal.) If you use this in code you may want to distribute, I suggest that you always include a non-color variant and recognize the setting of 'ANSI_COLORS': if ANSI_COLORS = true then ... with colors else ... non-colored variant fi; (2) The GAP distribution contains some utilities for editing and viewing GAP code with the editor 'vim', see the file 'etc/README.vim-utils'. This includes colored syntax hilighting, automatic indentation and folding. > It also had instructions > on saved workspaces and tab > completion, but these features > have apparently been put into > CreateWorkspace.sh. You are right, this part of the README.unix has become a more official part of the installation instructions. We are currently thinking about a few more technical details concerning workspaces, such that we can change the instructions for starting GAP with a saved workspace from "optional" to "recommended". With best regards, Frank /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From wdj at USNA.Navy.Mil Wed May 19 21:59:28 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] finite fields question Message-ID: <40ABCAB0.2080601@hermes.ewlab.usna.edu> Hello GAP forum people: Possibly a stupid question, but I'm wondering if there is GAP code which implements an isomorphism GF(p)[x]/(f(x)) --> GF(p^d), where f(x) in GF(p)[x] is irreducible. - David Joyner From hulpke at math.colostate.edu Wed May 19 17:35:51 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] finite fields question In-Reply-To: <40ABCAB0.2080601@hermes.ewlab.usna.edu> Message-ID: <200405191635.i4JGZpBV020148@schur.math.colostate.edu> Dear David, Dear GAP-forum: > Possibly a stupid question, but I'm wondering if there is GAP code > which implements an isomorphism > > GF(p)[x]/(f(x)) --> GF(p^d), > > where f(x) in GF(p)[x] is irreducible. What you would have to do is to calculate a root a of f in GF(p^d), thsn you can just evaluate at a: gap> x:=X(GF(3),"x"); x gap> f:=x^7+x^3+x+1; x^7+x^3+x+Z(3)^0 gap> IsIrreducible(f); true gap> RootsOfUPol gap> RootsOfUPol(GF(3^7),f); [ Z(3^7)^1551, Z(3^7)^281, Z(3^7)^343, Z(3^7)^517, Z(3^7)^843, Z(3^7)^901, Z(3^7)^1029 ] gap> a:=last[1]; # for example - you could take any other Z(3^7)^1551 gap> Value(f,a); 0*Z(3) gap> pol:=x^2+x+1; x^2+x+Z(3)^0 gap> Value(pol,a); Z(3^7)^74 All the best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From Michael.Hartley at nottingham.edu.my Wed May 19 17:41:53 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 3 (Email problems) Message-ID: I am currently having problems with my computer. IS is working on the issue. Until the problem is solved, I may not be able to read all my email. With apologies, Michael Hartley From amahalan at fau.edu Thu May 20 17:20:54 2004 From: amahalan at fau.edu (Ayan Mahalanobis) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] help with polycyclic In-Reply-To: References: Message-ID: <40ACDAE6.5080204@fau.edu> Hello, I am new in GAP and was trying to come up with a polycyclic presentation of a 2-group. I couldn't get it to work. The message I am getting is this gap>UpdatePolycyclicCollector(flt); gap> IsConfluent(flt); Inconsistency at 4 3 2 false The message makes no sense to me. I can provide with more details including the Fp definition of the group, if necessary. Thanks and regards Ayan From nickel at mathematik.tu-darmstadt.de Thu May 20 22:50:57 2004 From: nickel at mathematik.tu-darmstadt.de (Werner Nickel) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] help with polycyclic In-Reply-To: <40ACDAE6.5080204@fau.edu> References: <40ACDAE6.5080204@fau.edu> Message-ID: <20040520215057.GA7336@mathematik.tu-darmstadt.de> > Hello, > I am new in GAP and was trying to come up with a polycyclic presentation > of a 2-group. I couldn't get it to work. > The message I am getting is this > > gap>UpdatePolycyclicCollector(flt); > gap> IsConfluent(flt); > Inconsistency at 4 3 2 > false A polycyclic presentation called confluent if any two words in reduced form (i.e. x1^e1*x2^e2*...*xn^en) define different elements of the group given by the polycyclic presentation. The reduced form is used to check equality of elements. Therefore, confluence of the polycyclic presentation is essential for being able to perform arithmetic in the group. There are a number of reason why your presentation may not be confluent. If you send me the presentation, I am happy to have a look. All the best Werner Nickel From pliner at sky.ru Mon May 24 12:34:34 2004 From: pliner at sky.ru (Lev Pliner) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] A service for GAP remote access Message-ID: <001501c44183$1682f960$b90d72d9@lsp> Dear forum users. My name is Lev Pliner. I'm a PhD student at Ural State University, Katerinburg, Russia. I've rendered a server that allows to remotely run GAP (rGAP) and a simple client for it (cGAP). I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it so, the mentioned software allows to use GAP kernel run under linux with all packages using a client run under windows. A client based upon readline library so many customizations can be done (see man readline for further information). I can send a singlethreaded version of server; multithreaded is ready but still has a lot of bugs. Lev. From freundt at math.TU-Berlin.DE Mon May 24 21:35:18 2004 From: freundt at math.TU-Berlin.DE (Sebastian Freundt) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] A service for GAP remote access In-Reply-To: <001501c44183$1682f960$b90d72d9@lsp> (Lev Pliner's message of "Mon, 24 May 2004 17:34:34 +0600") References: <001501c44183$1682f960$b90d72d9@lsp> Message-ID: "Lev Pliner" writes: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). [snip] I'd like to try it. Is it available somewhere? Greets Sebastian Freundt From qphysics at yahoo.com Tue May 25 01:05:08 2004 From: qphysics at yahoo.com (J.F. Huesman) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] A service for GAP remote access In-Reply-To: <001501c44183$1682f960$b90d72d9@lsp> Message-ID: <20040525000508.81889.qmail@web51604.mail.yahoo.com> Hello, I run cygwin, solaris, redhat linux, and NeXT. Is the service available, I would like to see about compiling it on different platforms and seeing how it works. J.F. Huesman University of South Florida Tampa, Florida --- Lev Pliner wrote: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > so, the mentioned software allows to use GAP kernel run under linux with all > packages using a client run under windows. A client based upon readline > library so many customizations can be done (see man readline for further > information). > > I can send a singlethreaded version of server; multithreaded is ready but > still has a lot of bugs. > > Lev. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ===== For every credibility gap, there is a gullibility fill. -- R. Clopton From pliner at sky.ru Tue May 25 05:06:11 2004 From: pliner at sky.ru (Lev Pliner) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] A service for GAP remote access References: <001501c44183$1682f960$b90d72d9@lsp> Message-ID: <003b01c4420d$9d5555c0$b90d72d9@lsp> > I'd like to try it. Is it available somewhere? 1. Use following command to build rGAP (server): gcc rpcGAP.c rpcGAP_s.c iGAP_ss.c rGAP_ss.c -lrpclib -orGAP 2. Use following command to build cGAP (client): gcc rpcGAP.c rpcGAP_c.c iGAP_ss.c cGAP.c -lrpclib -lreadline -ocGAP 3. GAP root should be /usr/sbin/gap (or modifications should be done at rGAP_ss.c). 4. Some source was taken from xGAP. 5. To quit client execution better type '?quit', not 'quit;' to close GAP. 6. If this work will be of intrest, I will send multithreaded version with documentation (this version is not documented at all), including my plans for further work. Best wishes. Lev. From wright at uoregon.edu Tue May 25 16:23:07 2004 From: wright at uoregon.edu (Charles Wright) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] REPSN package Message-ID: <40B364DB.9040504@uoregon.edu> Dear GAP Forum members -- I am pleased to report acceptance of the GAP4 Package "Repsn" by Vahid Dabbaghian-Abdoly. The package deals with the computation of complex irreducible representations of finite groups and provides a combination of several heuristics for constructing the representations in question by inducing or extending representations of suitable subgroups (as an application of Clifford's Theorem). It also includes a special treatment of perfect groups, with the effect that the functions of the package can compute a representation affording any irreducible group character of degree less than 32, with no restriction on the degree if the group is solvable. The package will be included in the standard GAP package distribution and is available now from www.math.carleton.ca/~vdabbagh/gap/repsn.html. Charles R.B. Wright From quagroup at hetnet.nl Sat May 15 01:42:06 2004 From: quagroup at hetnet.nl (quagroup) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] MatrixOfAction Message-ID: <03578DA00653CD418F5C3C16B7295A3802D062A5@HNEXVS03.HETNET.LOCAL> Dear Jan, Thanks for your report. What you reported was indeed a bug, which will be fixed in the next bugfix. Temporarily you can fix it in your own copy of GAP by loading the code below. If you have any questions, please ask. Best wishes, Willem de Graaf ############################################################################ ## #M DirectSumOfAlgebraModules( ) #M DirectSumOfAlgebraModules( , ) ## InstallMethod( DirectSumOfAlgebraModules, "for a list of algebra modules", true, [ IsDenseList ], 0, function( list ) local left_action, right_action, F, fam, type, niceVF, gens, zero, i, gV, v, be, A, B, V, W, niceMod, BW; # There are two types of action on a direct sum: left and right. left_action:= function( x, tn ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> x^u ) ); end; right_action:= function( tn, x ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> u^x ) ); end; # We first make the family of the direct sum elements, and construct # a basis of the direct sum. Note that if the arguments do not # know how to compute bases, then the rewriting of direct sum elements # to normal # forms will fail. Hence we can assume that every module has a basis, # and therefore we have a basis of the direct sum as well. F:= LeftActingDomain( list[1] ); fam:= NewFamily( "DirectSumElementsFam", IsDirectSumElement ); type:= NewType( fam, IsPackedElementDefaultRep ); fam!.directSumElementDefaultType:= type; fam!.zeroCoefficient:= Zero( F ); fam!.constituentModules:= list; niceMod:= FullSparseRowSpace( F, Sum( List( list, Dimension ) ) ); niceVF:= ElementsFamily( FamilyObj( niceMod ) ); fam!.niceVectorFam:= niceVF; gens:= [ ]; zero:= List( list, x -> Zero( x ) ); for i in [1..Length(list)] do gV:= Basis( list[i] ); for v in gV do be:= ShallowCopy( zero ); be[i]:= v; Add( gens, be ); od; od; if gens = [ ] then gens:= [ zero ]; fi; gens:= List( gens, x -> ObjByExtRep( fam, x ) ); for i in [1..Length(gens)] do gens[i]![2]:= true; od; # Now we make the direct sum, we need to consider a few cases... if IsLeftAlgebraModuleElementCollection( list[1] ) then if IsRightAlgebraModuleElementCollection( list[1] ) then if not ForAll( list, V -> IsLeftAlgebraModuleElementCollection(V) and IsRightAlgebraModuleElementCollection(V)) then Error("for all modules the algebra must act om the same side"); fi; A:= LeftActingAlgebra( list[1] ); B:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) and IsIdenticalObj( RightActingAlgebra(V), B ) ) then Error("all modules must have the same left acting algebra" ); fi; V:= BiAlgebraModuleByGenerators( A, B, left_action, right_action, gens ); fi; if not ForAll( list, IsLeftAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= LeftActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= LeftAlgebraModuleByGenerators( A, left_action, gens ); else if not ForAll( list, IsRightAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( RightActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= RightAlgebraModuleByGenerators( A, right_action, gens ); fi; if IsZero( gens[1] ) then return V; fi; # We construct a basis B' of the direct sum. # This is a basis of an algebra module, so it works via a delegate # basis, which is a basis of the module spanned by the elements gens'. # We call this module W', and BW' will be a basis of W'. # Now W' works via a nice basis and we know the basis vectors of this # nice basis (namely all unit vectors). So we set the attribute NiceBasis' # of BW' to be the standard basis of the full row space. W:= VectorSpace( F, gens, "basis" ); SetNiceFreeLeftModule( W, niceMod ); B:= Objectify( NewType( FamilyObj( V ), IsFiniteBasisDefault and IsBasisOfAlgebraModuleElementSpace and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( B, V ); SetBasisVectors( B, GeneratorsOfAlgebraModule(V) ); BW:= Objectify( NewType( FamilyObj( W ), IsBasisByNiceBasis and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( BW, W ); SetBasisVectors( BW, gens ); SetNiceBasis( BW, Basis( niceMod ) ); B!.delegateBasis:= BW; SetBasis( V, B ); SetDimension( V, Length( gens ) ); return V; end ); From pliner at sky.ru Mon May 31 08:32:48 2004 From: pliner at sky.ru (Lev Pliner) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] A service for GAP remote access References: <20040525000508.81889.qmail@web51604.mail.yahoo.com> Message-ID: <000b01c446e1$795e5df0$b90d72d9@lsp> Have anybody tried to build the source? Lev. ----- Original Message ----- From: "J.F. Huesman" To: Sent: Tuesday, May 25, 2004 6:05 AM Subject: Re: [GAP Forum] A service for GAP remote access > Hello, > I run cygwin, solaris, redhat linux, and NeXT. > Is the service available, I would like to see about compiling it on different > platforms and seeing how it works. > > J.F. Huesman > University of South Florida > Tampa, Florida > > > --- Lev Pliner wrote: > > Dear forum users. > > > > My name is Lev Pliner. I'm a PhD student at Ural State University, > > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > > (rGAP) and a simple client for it (cGAP). > > > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > > so, the mentioned software allows to use GAP kernel run under linux with all > > packages using a client run under windows. A client based upon readline > > library so many customizations can be done (see man readline for further > > information). > > > > I can send a singlethreaded version of server; multithreaded is ready but > > still has a lot of bugs. > > > > Lev. > > > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > ===== > For every credibility gap, there is a gullibility fill. > -- R. Clopton > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Michael.Hartley at nottingham.edu.my Mon May 31 08:46:36 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 4 Message-ID: I am currently off campus until the 17th of June. I will attend to your email when I return. Thank you. Apologies for any inconvenience. From allomber at math.u-bordeaux.fr Mon May 31 10:44:01 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] A service for GAP remote access In-Reply-To: <000b01c446e1$795e5df0$b90d72d9@lsp> References: <20040525000508.81889.qmail@web51604.mail.yahoo.com> <000b01c446e1$795e5df0$b90d72d9@lsp> Message-ID: <20040531094401.GJ5026@seventeen> On Mon, May 31, 2004 at 01:32:48PM +0600, Lev Pliner wrote: > Have anybody tried to build the source? Did you make the source available somewhere ? I found no links to them in any of your posts. I would like to try and see whether that could be used to interface GAP with other computer algebra systems. Cheers, Bill. From rashid at jinnah.edu.pk Wed Jun 2 07:06:10 2004 From: rashid at jinnah.edu.pk (Rashid Ali) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] RE: Forum Digest, Vol 6, Issue 4 Message-ID: Dear Forum Members I am working on computations of Self-Connected and H-Connected transversals of a group G. Since total number of transversals for a finite group G with a subgroup H = Order(H)^Index(G,H). I've designed an algorithm that searches self-connected and H-connected transversals. It works properly for small groups but for large gooups say for example when Order(G)=1792, and Order(H)=64, it perform computations for many hours but it quits gap session automatically leaving the executation incomplete, and displays following message that I'm unable to understand: 0 [main] gapw95 1116 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION 1062 [main] gapw95 1116 stackdump: Dumping stack trace to gapw95.exe.stackdump I can't understand how to resolve this problem Regards Rashid Ali -----Original Message----- From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org]On Behalf Of forum-request@gap-system.org Sent: Monday, May 31, 2004 12:38 PM To: forum@gap-system.org Subject: Forum Digest, Vol 6, Issue 4 Send Forum mailing list submissions to forum@mail.gap-system.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.gap-system.org/mailman/listinfo/forum or, via email, send a message with subject or body 'help' to forum-request@mail.gap-system.org You can reach the person managing the list at forum-owner@mail.gap-system.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Forum digest..." Today's Topics: 1. Re: Forum Digest, Vol 6, Issue 3 (Email problems) (Michael Hartley) 2. help with polycyclic (Ayan Mahalanobis) 3. Re: help with polycyclic (Werner Nickel) 4. A service for GAP remote access (Lev Pliner) 5. Re: A service for GAP remote access (Sebastian Freundt) 6. Re: A service for GAP remote access (J.F. Huesman) 7. Re: A service for GAP remote access (Lev Pliner) 8. REPSN package (Charles Wright) 9. RE: MatrixOfAction (quagroup) 10. Re: A service for GAP remote access (Lev Pliner) ---------------------------------------------------------------------- Message: 1 Date: Thu, 20 May 2004 00:41:53 +0800 From: "Michael Hartley" Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 3 (Email problems) To: Message-ID: Content-Type: text/plain; charset=US-ASCII I am currently having problems with my computer. IS is working on the issue. Until the problem is solved, I may not be able to read all my email. With apologies, Michael Hartley ------------------------------ Message: 2 Date: Thu, 20 May 2004 12:20:54 -0400 From: Ayan Mahalanobis Subject: [GAP Forum] help with polycyclic To: gap-forum@dcs.st-and.ac.uk Message-ID: <40ACDAE6.5080204@fau.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Hello, I am new in GAP and was trying to come up with a polycyclic presentation of a 2-group. I couldn't get it to work. The message I am getting is this gap>UpdatePolycyclicCollector(flt); gap> IsConfluent(flt); Inconsistency at 4 3 2 false The message makes no sense to me. I can provide with more details including the Fp definition of the group, if necessary. Thanks and regards Ayan ------------------------------ Message: 3 Date: Thu, 20 May 2004 23:50:57 +0200 From: Werner Nickel Subject: Re: [GAP Forum] help with polycyclic To: Ayan Mahalanobis Cc: gap-forum@dcs.st-and.ac.uk Message-ID: <20040520215057.GA7336@mathematik.tu-darmstadt.de> Content-Type: text/plain; charset=us-ascii > Hello, > I am new in GAP and was trying to come up with a polycyclic presentation > of a 2-group. I couldn't get it to work. > The message I am getting is this > > gap>UpdatePolycyclicCollector(flt); > gap> IsConfluent(flt); > Inconsistency at 4 3 2 > false A polycyclic presentation called confluent if any two words in reduced form (i.e. x1^e1*x2^e2*...*xn^en) define different elements of the group given by the polycyclic presentation. The reduced form is used to check equality of elements. Therefore, confluence of the polycyclic presentation is essential for being able to perform arithmetic in the group. There are a number of reason why your presentation may not be confluent. If you send me the presentation, I am happy to have a look. All the best Werner Nickel ------------------------------ Message: 4 Date: Mon, 24 May 2004 17:34:34 +0600 From: "Lev Pliner" Subject: [GAP Forum] A service for GAP remote access To: Message-ID: <001501c44183$1682f960$b90d72d9@lsp> Content-Type: text/plain; charset="koi8-r" Dear forum users. My name is Lev Pliner. I'm a PhD student at Ural State University, Katerinburg, Russia. I've rendered a server that allows to remotely run GAP (rGAP) and a simple client for it (cGAP). I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it so, the mentioned software allows to use GAP kernel run under linux with all packages using a client run under windows. A client based upon readline library so many customizations can be done (see man readline for further information). I can send a singlethreaded version of server; multithreaded is ready but still has a lot of bugs. Lev. ------------------------------ Message: 5 Date: Mon, 24 May 2004 20:35:18 +0000 From: Sebastian Freundt Subject: Re: [GAP Forum] A service for GAP remote access To: "Lev Pliner" Cc: forum@gap-system.org Message-ID: Content-Type: text/plain; charset=us-ascii "Lev Pliner" writes: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). [snip] I'd like to try it. Is it available somewhere? Greets Sebastian Freundt ------------------------------ Message: 6 Date: Mon, 24 May 2004 17:05:08 -0700 (PDT) From: "J.F. Huesman" Subject: Re: [GAP Forum] A service for GAP remote access To: forum@gap-system.org Message-ID: <20040525000508.81889.qmail@web51604.mail.yahoo.com> Content-Type: text/plain; charset=us-ascii Hello, I run cygwin, solaris, redhat linux, and NeXT. Is the service available, I would like to see about compiling it on different platforms and seeing how it works. J.F. Huesman University of South Florida Tampa, Florida --- Lev Pliner wrote: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > so, the mentioned software allows to use GAP kernel run under linux with all > packages using a client run under windows. A client based upon readline > library so many customizations can be done (see man readline for further > information). > > I can send a singlethreaded version of server; multithreaded is ready but > still has a lot of bugs. > > Lev. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ===== For every credibility gap, there is a gullibility fill. -- R. Clopton ------------------------------ Message: 7 Date: Tue, 25 May 2004 10:06:11 +0600 From: "Lev Pliner" Subject: Re: [GAP Forum] A service for GAP remote access To: "Sebastian Freundt" , "John Brinkman" Cc: forum@gap-system.org Message-ID: <003b01c4420d$9d5555c0$b90d72d9@lsp> Content-Type: text/plain; charset="iso-8859-1" > I'd like to try it. Is it available somewhere? 1. Use following command to build rGAP (server): gcc rpcGAP.c rpcGAP_s.c iGAP_ss.c rGAP_ss.c -lrpclib -orGAP 2. Use following command to build cGAP (client): gcc rpcGAP.c rpcGAP_c.c iGAP_ss.c cGAP.c -lrpclib -lreadline -ocGAP 3. GAP root should be /usr/sbin/gap (or modifications should be done at rGAP_ss.c). 4. Some source was taken from xGAP. 5. To quit client execution better type '?quit', not 'quit;' to close GAP. 6. If this work will be of intrest, I will send multithreaded version with documentation (this version is not documented at all), including my plans for further work. Best wishes. Lev. ------------------------------ Message: 8 Date: Tue, 25 May 2004 08:23:07 -0700 From: Charles Wright Subject: [GAP Forum] REPSN package To: GAP Forum Message-ID: <40B364DB.9040504@uoregon.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Dear GAP Forum members -- I am pleased to report acceptance of the GAP4 Package "Repsn" by Vahid Dabbaghian-Abdoly. The package deals with the computation of complex irreducible representations of finite groups and provides a combination of several heuristics for constructing the representations in question by inducing or extending representations of suitable subgroups (as an application of Clifford's Theorem). It also includes a special treatment of perfect groups, with the effect that the functions of the package can compute a representation affording any irreducible group character of degree less than 32, with no restriction on the degree if the group is solvable. The package will be included in the standard GAP package distribution and is available now from www.math.carleton.ca/~vdabbagh/gap/repsn.html. Charles R.B. Wright ------------------------------ Message: 9 Date: Sat, 15 May 2004 02:42:06 +0200 From: "quagroup" Subject: RE: [GAP Forum] MatrixOfAction To: "Jan Draisma" , "GAP Forum" Message-ID: <03578DA00653CD418F5C3C16B7295A3802D062A5@HNEXVS03.HETNET.LOCAL> Content-Type: text/plain; charset="Windows-1252" Dear Jan, Thanks for your report. What you reported was indeed a bug, which will be fixed in the next bugfix. Temporarily you can fix it in your own copy of GAP by loading the code below. If you have any questions, please ask. Best wishes, Willem de Graaf ############################################################################ ## #M DirectSumOfAlgebraModules( ) #M DirectSumOfAlgebraModules( , ) ## InstallMethod( DirectSumOfAlgebraModules, "for a list of algebra modules", true, [ IsDenseList ], 0, function( list ) local left_action, right_action, F, fam, type, niceVF, gens, zero, i, gV, v, be, A, B, V, W, niceMod, BW; # There are two types of action on a direct sum: left and right. left_action:= function( x, tn ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> x^u ) ); end; right_action:= function( tn, x ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> u^x ) ); end; # We first make the family of the direct sum elements, and construct # a basis of the direct sum. Note that if the arguments do not # know how to compute bases, then the rewriting of direct sum elements # to normal # forms will fail. Hence we can assume that every module has a basis, # and therefore we have a basis of the direct sum as well. F:= LeftActingDomain( list[1] ); fam:= NewFamily( "DirectSumElementsFam", IsDirectSumElement ); type:= NewType( fam, IsPackedElementDefaultRep ); fam!.directSumElementDefaultType:= type; fam!.zeroCoefficient:= Zero( F ); fam!.constituentModules:= list; niceMod:= FullSparseRowSpace( F, Sum( List( list, Dimension ) ) ); niceVF:= ElementsFamily( FamilyObj( niceMod ) ); fam!.niceVectorFam:= niceVF; gens:= [ ]; zero:= List( list, x -> Zero( x ) ); for i in [1..Length(list)] do gV:= Basis( list[i] ); for v in gV do be:= ShallowCopy( zero ); be[i]:= v; Add( gens, be ); od; od; if gens = [ ] then gens:= [ zero ]; fi; gens:= List( gens, x -> ObjByExtRep( fam, x ) ); for i in [1..Length(gens)] do gens[i]![2]:= true; od; # Now we make the direct sum, we need to consider a few cases... if IsLeftAlgebraModuleElementCollection( list[1] ) then if IsRightAlgebraModuleElementCollection( list[1] ) then if not ForAll( list, V -> IsLeftAlgebraModuleElementCollection(V) and IsRightAlgebraModuleElementCollection(V)) then Error("for all modules the algebra must act om the same side"); fi; A:= LeftActingAlgebra( list[1] ); B:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) and IsIdenticalObj( RightActingAlgebra(V), B ) ) then Error("all modules must have the same left acting algebra" ); fi; V:= BiAlgebraModuleByGenerators( A, B, left_action, right_action, gens ); fi; if not ForAll( list, IsLeftAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= LeftActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= LeftAlgebraModuleByGenerators( A, left_action, gens ); else if not ForAll( list, IsRightAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( RightActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= RightAlgebraModuleByGenerators( A, right_action, gens ); fi; if IsZero( gens[1] ) then return V; fi; # We construct a basis B' of the direct sum. # This is a basis of an algebra module, so it works via a delegate # basis, which is a basis of the module spanned by the elements gens'. # We call this module W', and BW' will be a basis of W'. # Now W' works via a nice basis and we know the basis vectors of this # nice basis (namely all unit vectors). So we set the attribute NiceBasis' # of BW' to be the standard basis of the full row space. W:= VectorSpace( F, gens, "basis" ); SetNiceFreeLeftModule( W, niceMod ); B:= Objectify( NewType( FamilyObj( V ), IsFiniteBasisDefault and IsBasisOfAlgebraModuleElementSpace and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( B, V ); SetBasisVectors( B, GeneratorsOfAlgebraModule(V) ); BW:= Objectify( NewType( FamilyObj( W ), IsBasisByNiceBasis and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( BW, W ); SetBasisVectors( BW, gens ); SetNiceBasis( BW, Basis( niceMod ) ); B!.delegateBasis:= BW; SetBasis( V, B ); SetDimension( V, Length( gens ) ); return V; end ); ------------------------------ Message: 10 Date: Mon, 31 May 2004 13:32:48 +0600 From: "Lev Pliner" Subject: Re: [GAP Forum] A service for GAP remote access To: "J.F. Huesman" , Message-ID: <000b01c446e1$795e5df0$b90d72d9@lsp> Content-Type: text/plain; charset="iso-8859-1" Have anybody tried to build the source? Lev. ----- Original Message ----- From: "J.F. Huesman" To: Sent: Tuesday, May 25, 2004 6:05 AM Subject: Re: [GAP Forum] A service for GAP remote access > Hello, > I run cygwin, solaris, redhat linux, and NeXT. > Is the service available, I would like to see about compiling it on different > platforms and seeing how it works. > > J.F. Huesman > University of South Florida > Tampa, Florida > > > --- Lev Pliner wrote: > > Dear forum users. > > > > My name is Lev Pliner. I'm a PhD student at Ural State University, > > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > > (rGAP) and a simple client for it (cGAP). > > > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > > so, the mentioned software allows to use GAP kernel run under linux with all > > packages using a client run under windows. A client based upon readline > > library so many customizations can be done (see man readline for further > > information). > > > > I can send a singlethreaded version of server; multithreaded is ready but > > still has a lot of bugs. > > > > Lev. > > > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > ===== > For every credibility gap, there is a gullibility fill. > -- R. Clopton > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ------------------------------ _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum End of Forum Digest, Vol 6, Issue 4 *********************************** From costanti at science.unitn.it Wed Jun 2 09:25:33 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] RE: Forum Digest, Vol 6, Issue 4 In-Reply-To: References: Message-ID: <1086164733.40bd8efd8ae92@www.unitn.it> Dear Rashid Ali and dear gap-forum, maybe your problem is a Windows specific problem; did you try the same computation on a linux machine? (By the way, Gap under linux is faster than under Windows). If you send (maybe to support@gap-system.org) all the code that produces the problem, then other people may look into this. Please check: Do you have the most recent version of GAP installed? (4.4.3) Did you install the bug?fix? When reporting the error, please state: What version of GAP and what computer you are using and possibly what compiler you used in installing GAP (some of this information will be contained in the banner you see when staring up GAP). What is your input. (Please also include the definitions of your objects so that we can redo the calculation.) What output do you get? When replaying a previous mail, you shouldn't quote all the mail, but only the relevant part. Best regards, Marco Costantini Scrive Rashid Ali : > Dear Forum Members > > I am working on computations of Self-Connected and H-Connected > transversals of a group G. Since total number of transversals for a > finite group G with a subgroup H = Order(H)^Index(G,H). I've designed an > algorithm that searches self-connected and H-connected transversals. It > works properly for small groups but for large gooups say for example when > Order(G)=1792, and Order(H)=64, it perform computations for many hours > but it quits gap session automatically leaving the executation > incomplete, and displays following message that I'm unable to understand: > > 0 [main] gapw95 1116 handle_exceptions: Exception: > STATUS_ACCESS_VIOLATION > > 1062 [main] gapw95 1116 stackdump: Dumping stack trace to > gapw95.exe.stackdump > > I can't understand how to resolve this problem > > Regards > > Rashid Ali From joachim.neubueser at math.rwth-aachen.de Wed Jun 2 14:49:17 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] RE: Forum Digest, Vol 6, Issue 4 (fwd) Message-ID: Dear Rashid Ali, You wrote to the GAP Forum: > Dear Forum Members > I am working on computations of Self-Connected and H-Connected > transversals of a group G. Since total number of transversals for a > finite group G with a subgroup H = Order(H)^Index(G,H). I've > designed an algorithm that searches self-connected and H-connected > transversals. It works properly for small groups but for large > gooups say for example when Order(G)=1792, and Order(H)=64, it > perform computations for many hours but it quits gap session > automatically leaving the executation incomplete, and displays > following message that I'm unable to understand: > 0 [main] gapw95 1116 handle_exceptions: Exception: > STATUS_ACCESS_VIOLATION > > 1062 [main] gapw95 1116 stackdump: Dumping stack trace to > gapw95.exe.stackdump > I can't understand how to resolve this problem > > Regards > > Rashid Ali I have seen that you got some reply dealing with problems possibly stemming from using Windows rather than Unix. However for me the main problem is that I do not understand the mathematical problem that you are dealing with. What are 'Self Connected' and 'H-Connected' transversals of a subgroup of a finite group? These terms are not standard, I have never heard them. Could you provide definitions of these terms, give references to papers where they are used, and could you tell for which groups and which subgroups you want to do the computation? Only then there is a chance that we may be able to really give you some advice. With kind regards Joachim Neubueser ---------------------------------------------------------------------- Prof. em. J. Neubueser Lehrstuhl D fuer Mathematik RWTH Aachen Germany From drkrause at mindspring.com Thu Jun 3 00:20:36 2004 From: drkrause at mindspring.com (Drew Krause) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Lyndon words in GAP Message-ID: <40BE60C4.80100@mindspring.com> Hello, I'd be interested to see if anyone has done work with generating (not necessarily enumerating) Lyndon Words using GAP. I'm attempting it myself -- any pointers? Drew Krause From gordon at csse.uwa.edu.au Thu Jun 3 02:41:25 2004 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Lyndon words in GAP In-Reply-To: <40BE60C4.80100@mindspring.com> References: <40BE60C4.80100@mindspring.com> Message-ID: <1086226885.20359.7.camel@ekaltadeta> The FKM algorithm is very easy to implement, and one can extract the Lyndon words from the output. I gave it to my students as an assignment question so could give you up to 8 different programs to do it. However these are not trying to be super-efficient, but just implementing the algorithm using GAP lists to represent the words.. Proceed as follows to generate length n Lyndon words over an alphabet of k symbols (0,1,... k-1). Start with w = [0,0,...,0] Find the largest index i such that w[i] < k-1 Increase w[i] by 1, and then replace the remainder of the list (w[i+1] ..w[n]) by as many copies of w[1]...w[i] as will fit. Then - if i = n, the word is a Lyndon word, - if i | n, the word is a periodic necklace, - otherwise the word is a pre-necklace (prefix of some longer necklace). Then repeat. If you wanted huge lists of Lyndon words for some purpose, then I am sure that there are more efficient ways, but this is good if you just want a few thousand.. On Thu, 2004-06-03 at 07:20, Drew Krause wrote: > Hello, I'd be interested to see if anyone has done work with generating > (not necessarily enumerating) Lyndon Words using GAP. I'm attempting it > myself -- any pointers? From costanti at science.unitn.it Thu Jun 3 07:22:17 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Lyndon words in GAP In-Reply-To: <40BE60C4.80100@mindspring.com> References: <40BE60C4.80100@mindspring.com> Message-ID: <1086243737.40bec3999a2d9@www.unitn.it> Dear Drew Krause and Gap-forum, have a look at the file lib/alglie.gi in the Gap distribution. Maybe you will find something useful for you. Best regards, Marco Costantini > Hello, I'd be interested to see if anyone has done work with generating > (not necessarily enumerating) Lyndon Words using GAP. I'm attempting it > myself -- any pointers? From sjp at maths.gla.ac.uk Mon Jun 7 09:05:22 2004 From: sjp at maths.gla.ac.uk (sjp@maths.gla.ac.uk) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] ALAN TURING Message-ID: <1086595522.40c421c267e2c@mail.maths.gla.ac.uk> ALAN TURING Today, June 7th, is the 50th anniversary of Alan Turing's death. There was a memorial conference in Manchester last Sat (5th June), http://www.maths.man.ac.uk/logic/turing2004/ and today a plaque will be unveiled at his home in Wilmslow near Manchester. You can listen to the song "Alan Mathison Turing" written a couple of years ago (in Lisbon) at http://www.diskiamusic.com/turing (You will need RealPlayer.) Steve Pride ----- End forwarded message ----- ----- End forwarded message ----- ----- End forwarded message ----- From Colva at dcs.st-and.ac.uk Tue Jun 15 10:25:29 2004 From: Colva at dcs.st-and.ac.uk (Colva@dcs.st-and.ac.uk) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] missing primitive group Message-ID: <20040615092529.GA4766@jordan.mcs.st-and.ac.uk> Dear all There is a missing cohort of primitive groups in Gap's database. This is a degree 574 action of PSL(2, 41) on the cosets of A_5. It has rank 16, and its full normaliser in Sym(574) is PSL(2, 41): the cohort therefore consists of a single group. This group will be added to the database with the next bugfix. Best wishes Colva Roney-Dougal From holmespe at for.mat.bham.ac.uk Tue Jun 15 12:48:07 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] a graph question Message-ID: Dear GAP forum, I have a graph on about 25000 points. I would like to find the size of a maximal set of pairwise non-adjacent points. Is there a way to do this in GAP? Thanks, Beth Holmes From dima at thi.informatik.uni-frankfurt.de Wed Jun 16 00:37:31 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] a graph question In-Reply-To: References: Message-ID: <20040615233731.GA17366@thi21.thi.informatik.uni-frankfurt.de> Dear GAP forum, On Tue, Jun 15, 2004 at 12:48:07PM +0100, Petra Holmes wrote: > I have a graph on about 25000 points. I would like to find the size of a > maximal set of pairwise non-adjacent points. Is there a way to do this in > GAP? > that's an NP-hard problem, moreover, a one that is hard to approximate. Unless the graph is very dence, you might be seriously out of luck, no matter what software you're using. You might have to combine information about co-cliques you know with upper bounds on their size, such as one can obtain from the information on the graph spectrum, etc... HTH, Dmitrii From sal at dcs.st-and.ac.uk Wed Jun 16 13:31:26 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] a graph question In-Reply-To: <20040615233731.GA17366@thi21.thi.informatik.uni-frankfurt.de> References: <20040615233731.GA17366@thi21.thi.informatik.uni-frankfurt.de> Message-ID: <20040616133126.135a08ad@caolila.dcs.st-and.ac.uk> Dear GAP Forum > > On Tue, Jun 15, 2004 at 12:48:07PM +0100, Petra Holmes wrote: > > I have a graph on about 25000 points. I would like to find the size of a > > maximal set of pairwise non-adjacent points. Is there a way to do this in > > GAP? > > On Wed, 16 Jun 2004 01:37:31 +0200, Dmitrii Pasechnik wrote: > that's an NP-hard problem, moreover, a > one that is hard to approximate. Unless the graph is very dence, you might be > seriously out of luck, no matter what software you're using. > > You might have to combine information about co-cliques you know > with upper bounds on their size, such as one can obtain from > the information on the graph spectrum, etc... > Dima is correct, of course, that this is a very hard problem in general. It is, however, also worth mentioning the facilities of Len Soicher's GRAPE package, which include a function CompleteSubgraphs, which (up to taking the complement of your graph) does what you want. The effectiveness of the GRAPE function (and indeed of the whole of GRAPE) depends greatly on whether you know or can find a sizable subgroup of the automorphism group of your graph. While 25000 is pretty large, you might be able to get somewhere if there is a big group acting. See the GRAPE manual for details. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From l.h.soicher at qmul.ac.uk Wed Jun 16 16:25:21 2004 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] a graph question Message-ID: <200406161525.QAA15557@dirac.maths.qmw.ac.uk> Dear Petra, Dear GAP Forum, >> >> On Tue, Jun 15, 2004 at 12:48:07PM +0100, Petra Holmes wrote: >> > I have a graph on about 25000 points. I would like to find the size of a >> > maximal set of pairwise non-adjacent points. Is there a way to do this in >> > GAP? >> > First, let's take the complement gamma of your graph, so what we are looking for is a certain complete subgraph. As Steve Linton said, the GAP Package GRAPE has functions to determine certain sets of complete subgraphs of a (possibly vertex-weighted) graph, subject to user specified parameters. See the documentation for the GRAPE functions CompleteSubgraphs and CompleteSubgraphsOfGivenSize. Now if what you really want is a maximal complete subgraph (i.e. one which is not properly contained in a larger complete subgraph of gamma) then this is easy: just call CompleteSubgraphs(gamma,-1,0) . However, I suspect you are interested in the much harder problem of finding the maximum size of a complete subgraph of gamma. Here, CompleteSubgraphsOfGiven may help. As Steve said, this depends very much on the graph gamma and a known subgroup of its automorphism group (it may be possible to compute Aut(gamma) via GRAPE and nauty). Then (after constructing gamma in GRAPE using the known subgroup of Aut(gamma)) the call CompleteSubgraphsOfGivenSize(gamma,k,0,true) can be used to determine whether gamma contains a maximal complete subgraph of size k. So what you want to find is the largest k for which this is true. I would be very happy to give you further advice (outside of the Forum) if you send me details about your graph. Best wishes, Leonard From sal at dcs.st-and.ac.uk Fri Jun 18 11:15:12 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Refereed Package SONATA Message-ID: <20040618111512.20db6593@caolila.dcs.st-and.ac.uk> Dear GAP Forum, The SONATA package for "systems of nearrings and their applications" was accepted through the package refereeing process in 2003, but its release was delayed for technical reasons until the release of GAP 4.4 a few months ago, and as responsible editor, I am afraid I qforgot to send the customary message announcing its acceptance and release at that time. So, I can now belatedly, but with great pleasure, announce that the SONATA package, by Erhard Aichinger, Franz Binder, Juergen Ecker, Peter Mayr and Christof Noebauer has been accepted as a refereed GAP package and is available for download from the GAP Web, and FTP sites, or from the authors Web page at http://www.algebra.uni-linz.ac.at/Sonata/. Note however, that anyone who has downloaded any GAP 4.4 package archive, already has the latest version of SONATA. The following brief description of the functionality of the package is taken from the authors' Web page. SONATA stands for "systems of nearrings and their applications". It provides methods for the construction and the analysis of finite nearrings. A left nearring is an algebra (N;+,*), where (N,+) is a (not necessarily abelian) group, (N,*) is a semigroup, and x*(y+z) = x*y + x*z holds for all x,y,z in N. As a typical example of a nearring, we may consider the set of all mappings from a group G into G, where the addition is the pointwise addition of mappings in G, and the multiplication is composition of functions. If functions are written on the right of their arguments, then the left distributive law holds, while the right distributive law is not satisfied for non-trivial G. The SONATA package provides methods for the construction and analysis of finite nearrings. 1. Methods for constructing all endomorphisms and all fixed-point-free automorphisms of a given group. 2. Methods for constructing the following nearrings of functions on a group G: * the nearring of polynomial functions of G (in the sense of Lausch-N?bauer); * the nearring of compatible functions of G; * distributively generated nearrings such as I(G), A(G), E(G); * centralizer nearrings. 3. A library of all small nearrings (up to order 15) and all small nearrings with identity (up to order 31). 4. Functions to obtain solvable fixed-point-free automorphism groups on abelian groups, nearfields, planar nearrings, as well as designs from those. 5. Various functions to study the structure (size, ideals, N-groups, ...) of nearrings, to determine properties of nearring elements, and to decide whether two nearrings are isomorphic. 6. If the package XGAP is installed, the lattices of one- and two-sided ideals of a nearring can be studied interactively using a graphical representation. I apologise again for the delay in this announcement, Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From marcus at math.uic.edu Fri Jun 18 17:07:18 2004 From: marcus at math.uic.edu (marcus@math.uic.edu) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] generic character tables Message-ID: <20040618160718.GA22075@math.uic.edu> I need to produce generic character tables, that is, character tables for linear groups over a field of size$q$, where I actually want to use the symbol$q$in place of some number. CHEVIE apparently does this, but it seems to require version 5 of Maple, which I can't find anywhere. My network administrator has version 6. Will this work? Otherwise, does anyone know how I might do this? -marcus -- "Live free() or die()" -The openMosix HOWTO From allomber at math.u-bordeaux.fr Fri Jun 18 17:47:16 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Debian packages for GAP 4r4p3 available Message-ID: <20040618164716.GW9620@seventeen> Dear GAP Forum, I have updated the GAP Debian packages to GAP 4r4p3. Packages for the distributions testing(sarge) and unstable(sid) are available from Debian mirrors since one month already. Packages for woody(stable) are available since today, use the sources.list below: deb http://people.debian.org/~ballombe/gap woody main deb-src http://people.debian.org/~ballombe/gap woody main The set of package available is: o The whole GAP system base (Debian packages gap, gap-core, gap-dev, gap-doc, gap-libs, gap-online-help) o The full group library (gap-prim-groups, gap-small-groups, gap-small-groups-extra, gap-trans-groups) o The character tables library (gap-character-tables) o The table of mark library (but not tomlib-xtra) (gap-table-of-marks) gap is a dummy package that depend on the main GAP components, so just installing gap lead to an usable GAP system. This package include a script (update-gap-workspace) to manage workspace. See man update-gap-workspace' for more information. Please report any success or problems to me (ballombe@debian.org). Cheers, -- Bill From costanti at science.unitn.it Sun Jun 20 13:27:00 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] generic character tables In-Reply-To: <20040618160718.GA22075@math.uic.edu> References: <20040618160718.GA22075@math.uic.edu> Message-ID: <1087734420.40d5829460917@www.unitn.it> Dear Marcus and dear gap-forum, Scrive marcus@math.uic.edu: > CHEVIE apparently does > this, but it seems > to require version 5 > of Maple, which I can't > find anywhere. Maple 5 is available at the Medicis computing center; see http://www.medicis.polytechnique.fr/ and http://www.stix.polytechnique.fr/medicis/ri.html They give account for free to do research, and they have both Gap (versions 4.1, 4.2, 4.3, 4.4) and Maple (versions 5.4, 5.5, 6, 7, 8, 9). I don't know whether they have Gap3 installed. > My network administrator > has version 6. Will > this work? My suggestion (this is a general suggestion for "Will this work?", and not specific to your problem) is to try and to find out. If it works, you can send a report to the CHEVIE authors, so that they can update the documentation. If it doesn't work, you can try to fix it by yourself, and then you can send the fix to the CHEVIE authors. If you can not fix it by yourself, you can send a detailed bug report (see http://www.chiark.greenend.org.uk/~sgtatham/bugs.html ) so that the CHEVIE authors can fix it. Greetings, Marco Costantini From frank.luebeck at math.rwth-aachen.de Wed Jun 23 10:41:57 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] generic character tables In-Reply-To: <20040618160718.GA22075@math.uic.edu> Message-ID: On Fri, 18 Jun 2004 marcus@math.uic.edu wrote: > I need to produce > generic character > tables, that is, > character tables > for linear groups > over a field of size >$q$, where I actually > want to use the symbol >$q$in place of some > number. > > CHEVIE apparently does > this, but it seems > to require version 5 > of Maple, which I can't > find anywhere. > My network administrator > has version 6. Will > this work? > > Otherwise, does anyone > know how I might do this? Dear Marcus, dear Gap Forum, It happens that very recently another user has translated the Maple code of the CHEVIE package to work with Maple 8. After some tests I have put that version on the web page: http://www.math.rwth-aachen.de/~CHEVIE In fact that version seems to work with Maple 7, 8 or 9. Unfortunately it doesn't work with Maple 6 for reasons I don't understand. I hope you find a way to use either the Maple V.3 or the new variant of the package. Don't hesitate to contact me if you need further help concerning generic character tables. (But probably not via the GAP Forum, since this part of the CHEVIE package is not GAP related.) With best regards, Frank L?beck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From nickel at mathematik.tu-darmstadt.de Thu Jun 24 09:37:20 2004 From: nickel at mathematik.tu-darmstadt.de (nickel@mathematik.tu-darmstadt.de) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] (no subject) Message-ID: <200406240853.i5O8rLhP016235@iona.dcs.st-and.ac.uk> From iqbox_postech at yahoo.com Sat Jun 26 17:29:18 2004 From: iqbox_postech at yahoo.com (Kang ByoungKwan) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Question about Representation of Permutation group's elements Message-ID: <20040626162918.53062.qmail@web50004.mail.yahoo.com> I am a beginner of GAP. I don't search the representation of permutation group's elements from website. If I want to calculate some math problems related to all elements of permutation group, how can I represent the elements of permutation group in GAP? For example, there are S_5. I want to computing some equation related to group elements. How can I take all elements of S_5 in GAP for using computing ? Thank you for your reading and help Best Regards --------------------------------- Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! From holmespe at for.mat.bham.ac.uk Sat Jun 26 21:39:35 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Fri Apr 8 15:25:41 2005 Subject: [GAP Forum] Question about Representation of Permutation group's elements In-Reply-To: <20040626162918.53062.qmail@web50004.mail.yahoo.com> Message-ID: Try G:=SymmetricGroup(5); Then you can get all the elements in a list with the command Elements(G); Or you can get a pair of generators with GeneratorsOfGroup(G); Beth On Sat, 26 Jun 2004, Kang ByoungKwan wrote: > I am a beginner of GAP. > I don't search the representation of permutation group's elements from website. > > If I want to calculate some math problems related to all elements of permutation group, > how can I represent the elements of permutation group in GAP? > > For example, there are S_5. I want to computing some equation related to group elements. How can I take all elements of S_5 in GAP for using computing ? > > Thank you for your reading and help > > Best Regards > > > > > --------------------------------- > Do you Yahoo!? > New and Improved Yahoo! Mail - Send 10MB messages! > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From costanti at science.unitn.it Sun Jun 27 17:51:43 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Question about Representation of Permutation group's elements In-Reply-To: <20040626162918.53062.qmail@web50004.mail.yahoo.com> References: <20040626162918.53062.qmail@web50004.mail.yahoo.com> Message-ID: <1088355103.40defb1ff0968@www.unitn.it> Dear Kang ByoungKwan, > I am a beginner of GAP. Welcome! > If I want to calculate some math problems related to all elements of > permutation group, > how can I represent the elements of permutation group in GAP? A permutation is represented like (1,3,4,2,5) The group generated by (1,2,3) and (1,4,5) is represented by Group( (1,2,3), (1,4,5) ) (remember ';' at the end of the command) > For example, there are S_5. I want to computing some equation related to > group elements. How can I take all elements of S_5 in GAP for using > computing ? See the help giving the command ?Basic Groups In general, it may be not efficient to list all the elements of a Group. It may be better to look at the conjugacy classes: try ConjugacyClasses( SymmetricGroup( 5 ) ); All the best, Marco Costantini From potter at southwestern.edu Sun Jun 27 20:14:48 2004 From: potter at southwestern.edu (potter@southwestern.edu) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Example Programs Message-ID: <1088363688.40df1ca82a529@webmail.southwestern.edu> Folks, Is there a collection of programs online that one can look at for examples of good programming style in Gap? Thanks, Walt ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From costanti at science.unitn.it Mon Jun 28 10:52:15 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Example Programs In-Reply-To: <1088363688.40df1ca82a529@webmail.southwestern.edu> References: <1088363688.40df1ca82a529@webmail.southwestern.edu> Message-ID: <1088416335.40dfea4f7f308@www.unitn.it> Dear Walt, > Is there a collection of programs online that one can look at for > examples of > good programming style in Gap? Try the 'lib' directory of your Gap distribution, and the page http://www.gap-system.org/Info/examples.html Best regards, Marco Costantini From igor at txc.com Mon Jun 28 18:54:37 2004 From: igor at txc.com (Igor Schein) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name Message-ID: <20040628175437.GE24881@txc.com> Dear forum, I am struggling to find the way to retrieve canonical group names in GAP4 ( I've done it once in GAP3 ). Basically, I need a function which will output "Q8" if the input is SmallGroup(8,4), for example. Thanks Igor From allomber at math.u-bordeaux.fr Mon Jun 28 20:14:37 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name In-Reply-To: <20040628175437.GE24881@txc.com> References: <20040628175437.GE24881@txc.com> Message-ID: <20040628191437.GQ9620@seventeen> On Mon, Jun 28, 2004 at 01:54:37PM -0400, Igor Schein wrote: > Dear forum, > > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. I have made a backport of GAP3 group names to GAP4 if no one proposes a better solution. Be aware that as far as I understand, there are really no canonical group names. Cheers, Bill. From costanti at science.unitn.it Tue Jun 29 13:52:50 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name In-Reply-To: <20040628175437.GE24881@txc.com> References: <20040628175437.GE24881@txc.com> Message-ID: <1088513570.40e166228fd1b@www.unitn.it> Dear Igor and dear gap-forum, > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. Try IdGroup. As far as I know, "most" of the groups have no canonical name. Maybe, if you are interested in a particular class of groups, something could be arranged. Let us know. Let us also know in which way do you want to use the strings like "Q8", and maybe we could suggest you something else for your problem. Best regards, Marco Costantini From kohl at mathematik.uni-stuttgart.de Tue Jun 29 15:25:43 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name References: <20040628175437.GE24881@txc.com> Message-ID: <40E17BE7.68E8D6CB@mathematik.uni-stuttgart.de> Dear Forum, Igor Schein wrote: > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. Currently there is no function which returns a canonical name for a given group, but you can get information about the isomorphism types of the groups of a given order by the function 'SmallGroupsInformation', e.g. ---------------------------------------------------------------------- gap> SmallGroupsInformation(8); There are 5 groups of order 8. 1 is of type c8. 2 is of type 2x4. 3 is of type D8. 4 is of type Q8. 5 is of type 2^3. The groups whose order factorises in at most 3 primes have been classified by O. Hoelder. This classification is used in the SmallGroups library. This size belongs to layer 1 of the SmallGroups library. IdSmallGroup is available for this size. ---------------------------------------------------------------------- For example the line 4 is of type Q8.' tells you that SmallGroup(8,4) is the quaternion group of order 8. However there are no canonical names for larger groups -- thus for these, the function SmallGroupsInformation' provides only partial information -- e.g. ---------------------------------------------------------------------- gap> SmallGroupsInformation(64); There are 267 groups of order 64. They are sorted by their ranks. 1 is cyclic. 2 - 54 have rank 2. 55 - 191 have rank 3. 192 - 259 have rank 4. 260 - 266 have rank 5. 267 is elementary abelian. For the selection functions the values of the following attributes are precomputed and stored: IsAbelian, PClassPGroup, RankPGroup, FrattinifactorSize and FrattinifactorId. This size belongs to layer 2 of the SmallGroups library. IdSmallGroup is available for this size. ---------------------------------------------------------------------- Note in this context that distinguishing groups of orders with many' equal prime factors is often quite difficult, and that one would need a very elaborate and complicate naming scheme for them if one would like to have descriptive names. Best wishes, Stefan Kohl From eckert at math.wayne.edu Wed Jun 30 15:47:01 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name In-Reply-To: <40E17BE7.68E8D6CB@mathematik.uni-stuttgart.de> References: <20040628175437.GE24881@txc.com> <40E17BE7.68E8D6CB@mathematik.uni-stuttgart.de> Message-ID: On Tue, 29 Jun 2004, Stefan Kohl wrote: > Igor Schein wrote: > > > I am struggling to find the way to retrieve canonical group names ... > However there are no canonical names for larger groups -- > ...Note in this context that distinguishing groups of orders with > many' equal prime factors is often quite difficult, and that one > would need a very elaborate and complicate naming scheme for them > if one would like to have descriptive names. This is probably more than you want to know, but... For some time I have worked on what a "canonical" naming scheme for a Classification of Finite *non*Simple Groups would have to look like. This is the language I use: an *alphabet* for a group G is a nested inclusion of subgroups {1} = H_0 in H_1 in H_2 ... in H_n = G, with right coset transversals T_i, 1<=i<=n so that H_i = H_i-1 T_i. Each group element can thus be written "Chinese restaurant menu" style (one from column A, one from column B...) as t_1 t_2 ... t_n and calculations performed if the *combing* rules for rewriting t' t where t' in T_j but t in T_i, i h_a as the *action* of t_1 on H; t_1 *acts trivially* if alpha(t_1) is the identity map, and *alpha is trivial* if all T acts trivially. Define beta(h_2) : t_1 -> t_b as the *back-action* of h_2 on T; h_2 *reacts trivially* if beta(h_2) is the identity map, and *beta is trivial* if all H reacts trivially. Define gamma(t_b, t_2) = h_c as the *carry* T x T -> H; *gamma is trivial* if this is always the identity element. For any t in T let t-bar be the coset representative of t^-1, then gamma(t, t-bar) is the *internal carry* of t. Define pi(t_b, t_2) = t_p as the *factor product* in T, not the same as the group product in G if gamma non-trivial, and not even associative if Image(gamma) reacts non-trivially. At a minimum this product has an identity (the coset representative of H itself, for which there can be no reason to choose anything except the identity element of G) and inverses (although in perverse cases of non-associativity, the left-side and right-side inverts might not be the same). H is normal iff beta trivial. T is a subgroup of G iff gamma trivial. T is self-conjugate (normal, if also a subgroup) iff alpha trivial. In coding the types of decomposition, I assign a weight of "4" to non-trivial beta, "2" to non-trivial alpha, "1" to non-trivial gamma: Type 0 (alpha, beta, gamma all trivial): "direct product" +. H and T are both normal subgroups, operating independently. Type 1 (only gamma non-trivial): "ordinary product" *, taking a subscript to mark the particular choice of gamma map if more than one is possible. The pi product makes T into the quotient group; the order of its elements under pi has to be multiplied by the order of their internal carries to find the order in G. For example, Z_4 = Z_2 * Z_2, meaning that 01 01 = 10, not 01 01 = 00 as in Z_2 + Z_2. This is a seriously understudied case, given how common it is, driving the proliferation of subtly distinguishable p-groups. The quaternions Q_8 = Z_2 * (Z_2 + Z_2) is an instructive example. Write the elements of the first Z_2 (left of the asterisk) as "+" and "-", of the second as blank and "i", of the third as blank and "j"; the carry-map is: i i = - (internal to i) j j = - (internal to j) j i = - i j (*induced* carry) This is what the "undecorated" Z_2 * (Z_2 + Z_2) ought to be reserved for. Other non-trivial carry maps are possible: but if there is no induced carry, the group is the rectangular abelian, better written as Z_4 + Z_2 = (Z_2 * Z_2) + Z_2; while if j induces a carry when passing i but does not carry internally, then j acts by inversion on the cyclic-4 generated by i and this is D_8 better written Z_4 X| Z_2. The quaternions are *completely ordinary*, with the carry-map non-trivial in every case where it can be-consistent with the requirements of associativity, which force some carries trivial. For example, in Z_2 * (Z_4 + Z_2) = Z_2 * ((Z_2 * Z_2) + Z_2), calling the generator of the cyclic-4 in the right factor "i" (it is order-8 in the full G), then if j induces carry j i = - i j we must have j i^2 = (- i j) i = + i^2 j so j cannot induce carry on the high-order bit. Type 2 (only alpha non-trivial): "semidirect product" X| with superscript for choice of alpha if necessary. H normal, T a subgroup acting homomorphically on H. In many cases, isomorphic subgroups of Aut(H) will act to give non-isomorphic semidirect products. To decide which of these the "undecorated" semidirect product "ought" to stand for, is a difficult part of this project. For example, there are Z_8 X|^7 Z_2, Z_8 X|^5 Z_2, and Z_8 X|^3 Z_2 using actions that send the generator of the cyclic-8 to its 7th, 5th, or 3rd power, with distinct groups resulting. The action ^7 is most "kindly": a "kind" of group is a parameterized series, with relations definable by some template, as g^n = id defines the cyclic kind Z_n, and r^n = t^2 = (tr)^2 = id defines the dihedral kind D_2n; a decomposition D_2n = Z_n X| Z_2 exists for all in this kind. So the others should be named some different way: Z_8 X|^5 Z_2 = Z_2 * (Z_4 + Z_2) and Z_8 X|^3 Z_2 = Q_8 X| Z_2. This is typical if H has a center: unless the center is elementary, some central subgroup must be fixed by the action, and can be pulled out as an ordinary-product left-factor; if this is not completely ordinary, there will be some rearrangement. If there is no center, H typically has a lot of inner automorphisms, and if T contains any inner actions these can be removed as a direct-product factor; Out(H) is generally quite small. If the action is free on an elementary center, it is tightly constrained, but there is often an ambiguity between a *wreathlike* and non-wreath actions: when H is further decomposed into H_L and H_R (left, right factors), the action of T on H_R may involve a non-trivial H_L component, a *carry-back*, and more troublesomely for calculations, the action of T on H_L may involve a non-trivial *carry-up* to H_R, which defines a wreathlike action. I use S for "swap", or integral-sign when available, to distinguish (Z_3 + Z_3) S Z_2, acting by 01 <-> 10, from (Z_3 + Z_3) X| Z_2, acting by 11 <-> 22. Type 3 (alpha and gamma non-trivial): "indirect product" *|, perhaps needing both subscript and superscript. Usually this can be *rectified* with a better choice of T to trivialize one or both maps. This is the smallest example of an unrectifiably indirect decomposition: A_6 *| Z_2 indicates an order-FOUR (at least) automorphism (the order in the right factor must be multiplied by the order of its carry) whose square is inner to A_6; now this could be: "even inner", like conjugation by (1 2 3 4)(5 6); but this is isomorphic to A_6 + Z_2 mapping (sigma, z) where z is the non-trivial element of T to (sigma times (1 2 3 4)(5 6), z') where z' now acts trivially and does not carry. "odd inner" (inner to S_6, though outer to A_6), like conjugation by (1 2 3 4); but this can be rectified in the same way, now z' acts by conjugation by (5 6) which is the "kindly" action like all other cases of A_n X| Z_2 = S_n. "even outer", an outer automorphism of S_6 which respects the two 5-cycle conjugacy subclasses in A_6; but some of these are involutions, so this rectifies to an A_6 X| Z_2 with unkindly (very unique) action. "odd outer", from Out(S_6) but swapping the 5-cycle conjugacy subclasses; none of these are involutions, so this is an indirect product and cannot be made "prettier". An infinite-group example: F(Q) is the group of "field operations" (additions, multiplications and their compositions) over the rationals, decomposing as F(Q) = Add(Q) X| Mult(Q) but Mult(Q) has a subgroup Mult^2(Q) restricted to multiplications by perfect squares, yielding F^2(Q) = Add(Q) X| Mult^2(Q). F^2(Q) is normal in F(Q) so: F(Q) = F^2(Q) *| E_2^infinity where the right factor is an elementary-2 group of infinite dimension (one for each prime), acting non-trivially on the additives and carrying into the multiplicatives. Type 4 (only beta non-trivial): "reverse semidirect product" |X. This time T is normal, and H |X T = T X| H. The notational distinction can be used to write Z_2 |X A_6 for the "unkindly" action of an even-outer automorphism; this is a waste-basket case I use for ambiguous semidirects I have no better way to mark. Type 5 (beta and gamma non-trivial): "abnormal product" ~. In every case without exception, HT has a normal subgroup but neither H (not normal) nor T (self-conjugate but not a subgroup) is it: if Image(gamma) non-trivially intersects any conjugate, it shares that intersection with all conjugates and this is normal; if its conjugates are a trivial-intersection set, the complement (plus the identity) is a normal subgroup. Thus this product should never be used at all. But in defining a "canonical" decomposition for each group, the possible series of refinements to atomic are ranked in a *lexical* order by the Type codes at each step, so that for example pulling out a Type 0 direct-product factor as the first step is always favored when possible: Z_6 could be written Z_2 * Z_3 but Z_2 + Z_3 is objectively better (if the group-elements are being stored in a computer, "better" means "fewer calculational steps"). Now, this lexical ordering is modified by reassigning some decompositions whose maps indicate a different Type to Type 5 "abnormal": an ordinary product which is incompletely ordinary has *abnormal carry*; a semidirect or indirect product which my (yet to be rigorously defined) rules single out as "unkindly" has *abnormal action*; in either of these cases, Type 5 has the effect of disfavoring this route of decomposition over any other that uses a normal subgroup as a factor (but for exploring subgroup structure, knowing of the existence of non-canonical decompositions like D_8 = Z_2 *~ (Z_2 + Z_2) is helpful). However, if the group is simple so that only Type 6 or 7 decompositions are possible, assigning Type 5 *standard abnormal* (naturally, every decomposition of a simple group is "abnormal") has the effect of singling it out as favored. Type 6 (alpha and beta non-trivial): "set product", no symbol but concatenation. Both H and T are subgroups, but neither is normal, and neither of the actions is homomorphic. For example, A_5 = A_4 Z_5: multiply any sigma in A_5 by whatever power of the 5-cycle returns number 5 back home; then sigma is the product of the residual A_4 element and the inverse power of the 5-cycle; this works for any odd-numbered alternating group. Among the evens, but A_6 = D_10 F^2(9) representing F^2(9) (additives by square-multiplicatives in GF(9), order-36) by <(1 2 3), (4 5 6), (1 4)(2 5 3 6)>. Few simple groups have a set-product decomposition: an important result is that PSL(2,q) has a set product iff q = 4, 5, 7, 9, or 11. Type 7 (all non-trivial): "pseudo-product", sometimes I mark as psi, but usually I only deal with the standard abnormal marked ~. Here T is not even a factor-group, but only a *pseudo-group* (not like a semigroup, which has associativity but not invertibility; a pseudo-group has invertibility but not associativity). For PSL(2,F) over any (finite or infinite) field, acting on the projective field F U {infinity}, define Add(a) : x -> x+a, fixing infinity (a in F; Add(0) = id; Add(infinity) not defined) Mult(m) : x -> xm, fixing infinity and 0 (m square; Mult(1) = id; Mult(0), Mult(infinity) not defined) Twist(t) : x <-> t + (t-x)^-1, x <-> infinity (t in F; Twist(infinity) another synonym for id) PSL(2,F) = (Add(F) X| Mult^2(F)) ~ Twist(F) writing every element as a product Add(a) Mult(m) Twist(t), for finite fields this gives q times either q-1 or (q-1)/2 times q+1 choices. In the representation on the 2-dimensional vectors, Add(a) is the matrix [1 a] [0 1], Mult(m) is [m^(-1/2) 0] [0 m^(1/2)], Twist(0) is [0 -1] [1 0] with all other (non-trivial) Twist(t) obtainable as the conjugates of Twist(0) by Add(t). The group product rules are all obtainable from: Add(a) Add(b) = Add(a+b) Mult(m) Mult(n) = Mult(mn) Add(a) Mult(m) = Mult(m) Add(am) Twist(t)^2 = id (all are their own inverses) Twist(t) Add(a) = Add(a) Twist(t+a) (alpha trivial on the additives) Twist(0) Mult(m) = Mult(m^-1) Twist(0) (alpha by inversion on the multiplicatives; but there is induced carry from Twist(t) if t nonzero) [Add(1) Twist(0)]^3 = id (a somewhat difficult induced-carry map results) This presentation helps to clarify the conjugacy classes (everything can be conjugated to the form Add(chi) Twist(0) where chi is the character) and other calculational exercises. Similarly in PSL(3,q) the pseudo-group contains 1 (the identity) plus q (Twists all conjugates of each other by an additive subgroup) plus q^2 (Twists conjugated by the product of additive subgroups in the same column per the matrix representation). This kind of rectified pseudo-product (rectified in the sense that many T-elements are made conjugates by some subgroup so that alpha is trivialized "by decree" to that extent) is defined as *diagrammatic* (for all Chevalley groups, whether classical, exceptional, or twisted, the pseudo-group factors have a roughly similar structure). It can be proven without any assumptions about the internal structure of a finite simple group that it has a standard-abnormal rectified pseudo-product sharing at least some of the diagrammatic properties; those that are not quite diagrammatic are lumped as *alternative* (the alternating and sporadic groups have these). The standard-abnormal decomposition defines a relationship to a smaller simple group, the *simple core* (for PSL(2,q) this would only be a prime-cyclic; for larger diagrammatics, a group whose diagram has one fewer node). The larger simple group is then viewed as a *diagrammatic extension* or *alternative extension* of the simple core. The "grail" of this project then is a more streamlined proof to the Classification Theorem for Finite Simple Groups, with a big lemma to the effect "a simple core can only support an alternative extension if it itself has a decomposition of set-product or alternative type". The alternating groups have alternative extensions, each to the next-higher A_n+1; only a couple other small cases, the order-168 and order-660 groups, have escapes out of the diagrammatic superfamily, into the Mathieu and Janko groups, which continue to spawn alternative extensions up to where all paths merge into the Baby Monster, which has one more alternative extension to the Monster, which has no finite alternative extension (I believe there is a horrid infinite simple group, the "Affine Monster", which I see through a glass darkly). From l.h.soicher at qmul.ac.uk Wed Jun 30 18:23:03 2004 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Release of Design 1.1 Package for GAP 4.4 Message-ID: <20040630182303.A19400@cantor.maths.qmw.ac.uk> Dear All, I am pleased to announce the release of the DESIGN 1.1 package for GAP 4.4. The DESIGN package is for generating, classifying and studying block designs. You can download the package from http://designtheory.org/software/gap_design/ where you will also find HTML and PDF documentation, which include installation instructions. Regards, Leonard Soicher %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main changes from DESIGN 1.0 to DESIGN 1.1 ------------------------------------------ (1) Made compatible with GAP 4.4 and its package loading mechanism. DESIGN 1.1 works only with GAP 4.4/GRAPE 4.2/GAPDoc 0.9999. (2) Upgraded XML I/O to DTRS protocol 2.0. (3) BlockDesignsToXMLFile has additional parameters to allow more user control over expansion, output, and design id's. The default now is for minimal expansion and writing out, which is a *change* from DESIGN 1.0. (4) Added functions: BlockDesignIsomorphismClassRepresentatives, DualBlockDesign, ComplementBlocksBlockDesign. (5) Function names made read-only. (6) Some utility functionality moved to GRAPE 4.2. (7) Added files README and gpl.txt. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From eckert at math.wayne.edu Thu Jul 1 16:55:49 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name (fwd) Message-ID: ---------- Forwarded message ---------- Date: Thu, 1 Jul 2004 01:25:40 -0400 (EDT) From: Robert Eckert To: Stefan Kohl Cc: GAP Support Subject: Re: [GAP Forum] Retrieving group name On Wed, 30 Jun 2004, Stefan Kohl wrote: > Robert Eckert wrote: > > > This is probably more than you want to know, but... > > For some time I have worked on what a "canonical" naming scheme for a > > Classification of Finite *non*Simple Groups would have to look like. > > [ ... ] > > This looks like a larger project -- > > Some questions however (maybe the answers are somewhere hidden in your text): > > 1. Is there a bijection between your names and the isomorphism types > of finite groups? That's the plan, at least: a symbol-string should stand for either an impossibility (there exists Z_3 X| Z_2 = D_6 = S_3 but no Z_2 X| Z_3) or a group determined up to isomorphism; and each group (finite at least: infinites have "self-similar" decompositions like Z = Z * Z_2 or "free product" decompositions and maybe phenomena for which this whole language is not suitable) should have a unique "canonical" symbol-string naming. Problems divide into "ambiguities" (same symbol string for non-isomorphic groups, from two series of refinements of the same Type at each step down to the same atomics but with alpha/gamma choices that cause different effects) and the much less serious "ambivalencies" (as between Z_6 = Z_2 + Z_3, Z_6 = Z_3 + Z_2, who really cares? any arbitrary tie-breaker rule will do). Ambiguities about the choice of gamma I know how to deal with; ambiguous semidirect products are more confusing and this remains work in progress. > > 2. If not: for which types of groups or orders of groups are your names > unique, or which invariants do they determine? "All groups of finite order" is the desired answer. With certain "honorary atomics" like Z, Q, R we can also deal with infinites that are "solvable over the finites" (has a subnormal series of inclusions of subgroups, i.e. each normal in the next if not necessarily in the whole, where each quotient is abelian OR finite). > > 3. Is it algorithmically feasible to determine the name of a given group > according to your naming scheme? If so, for how large / complicate groups? Very much work in progress. First approx: determine whether the group has a center by taking commutator-derivation until it goes trivial or stops shrinking; if so, try to pull out the center as a direct or ordinary left factor: if ordinary, keep decomposing and note whether carry is revealed to be incompletely ordinary at some stage-- there are systematic moves that can be made to rectify the decomposition if this happens. But if there is no center, use the first commutator-derived (not the terminal stage) as your attempted H to get a semidirect by a cyclic action, or by an abelian group of non-interacting actions, and keep decomposing to see if one of the actions "does something funny"-- here is where I am groping even to pin down what exactly I mean, let alone what to do about it. The actions should fall into inner/central-fixing cases rectifiable to direct or ordinary, and wreath/non-wreath actions, plus only a handful of exceptionals that need to be tagged "reverse". The conjecture is that the exceptionals only happen with a few "smallish" groups like A_6: that might prove false, but I doubt it because it is those exceptionals and the anomalies surrounding them that allow the sporadic simples to arise; so if there was a large counterexample, there ought to be a whole new family of large sporadics also, and while the Simple Classification Theorem is now scattered among hundreds of papers that I doubt any one person has read all through, the community seems satisfied that it is correct. A more likely kind of failure for my scheme: what I think is non-exceptional, the wreath/non-wreath, conceals a kind of ambiguity (more than one "wreathlike" or more than one "non") that I haven't considered. To show a small example, the wreath (Z_3 + Z_3) S Z_2 would proceed algorithmically through the "ordinary" fork; writing the elements 0/1/2, 0/1/2, blank/S, the action of S fixes the central {00, 11, 22} so I would try that as H and find the quotient is a D_6 = Z_3 X| Z_2 with, say, {00, 01, 02} as the Z_3 (no carry), and either 01S, which carries by 01S 01S = 01 10 S^2 = 11 or 00S, which does not carry but induces carry, as the non-trivial in Z_2. This is incompletely ordinary, so it would be kicked over to the semidirect fork of the algorithm: the rectification is to combine the old H with the part of T that failed to carry at all to make our new H, the elementary-9, and treat the part of T that either carried or induced carry as the subgroup acting on it. Discover "carry-up" and tag it "wreath". For cases with a center or a smaller commutator-derived, having chosen a tentative H, the T-elements are chosen preferring *independent* elements (no power except id falling into H or into the cosets of H using those T-elements already chosen) of maximal order, or else the *maximally independent* (largest power before it falls in), and if t is chosen, also incorporate into T the powers of t as far as independent; this trivializes gamma so far as possible. But for other cases, simple or near-simple groups where commutator-derivation does not shrink the group at all, take a maximal H: start with an element of maximal order and keep appending elements of maximal independence that do not generate the full G until you cannot anymore; the T that is appropriate here is constructed by different principles, preferring involutions where possible and incorporating conjugates rather than powers; if the group is not actually simple, decompose as if it were the simple group anyway, and the extra factor will have to be detected. > > Depending on the answers to these questions I think it might be *very* desirable > to have these names and a corresponding group identification routine available > in GAP, and I would recommend that you discuss this with the author of the > small groups library, Bettina Eick. That might be premature at this time; on the other hand, maybe working on an implementation would clarify my mind about what the "rules" really need to be. > > Another question: How do you suppose the Affine Monster' to look like, Like a warthog who can't get a date even from female warthogs. > and with which kind of methods do you try to establish its existence, > i.e. do you use a constructive approach (construct a permutation representation, > matrix representation, finite presentation, ...) or a non-constructive one? Gross framework of the "big lemma": work in permutation-representation terms. Given an arbitrary finite simple G, choose a maximal subgroup H and action on H-cosets is permutational of least possible degree-- unless there happens to be a different maximal subgroup of smaller index reachable by a different route? H is a one-point stabilizer: label the point standing for H-itself as "point infinity". Pick a "point 0" and an involution t_0 in that coset; now find a "wholly regular" element of H, meaning one that has no power short of id that fixes any point but "infinity" (no mixing of different lengths in the disjoint-cycle structure), and build up to the largest possible wholly-regular subgroup (at least containing that cyclic, but as much as you can add and have no non-trivial element acting less than freely on the points other than infinity)-- unless there isn't even one regular in H that doesn't mix cycle lengths? Start the rectified T as t_0 (moves "infinity" to "0") plus its conjugates by the big wholly-regular subgroup (each moving "infinity" to a different point); if that reaches all the points we are done (as in PSL(2,q) but not in general); else find an independent wholly regular element of H moving "0" to one of the points not reached by the orbit of the earlier subgroup-- unless that doesn't exist? Else continue adding blocs of conjugates to the transversal until complete. Regardless of what the simple group, you should be able to rectify thus far. If, instead of an arbitrary simple group we are given one equipped with a canonical decomposition, the rightmost pseudo-group factor will be defining S, the "simple core"-- unless all H is solvable? The factors right of that pseudo-group will contain some multi-point stabilizing stuff (the "multiplicatives") and what we want to be the initial big wholly-regular subgroup (the "additives")-- unless it just isn't there? (For example, in PSL(n,q) the H we have in mind is the subgroup of matrices with the bottom row all zeroes except the rightmost entry; this breaks down as PSL(n-1,q) which is our S, one new multiplicative group, and a column of new additive groups which t_0 is to be conjugated by to get us started off). Then the further regular subgroups that suffice to fill out T should be precisely the same ones which sufficed to build the pseudogroup for S. If everything goes through, we get diagrammatic relationships and can show how to figure out which diagram it is. The question marks are the places where things could fail, and that should mean G isn't really simple, or H really isn't maximal, or S wasn't diagrammatic either, or it can mean a different H should be chosen-- but you can get two H's pointing their fingers at each other saying "use that one instead"; this comes up in the "set-product" case. I think I can get to "if everything was diagrammatic and typical before, it will be again". The problem is that I also seem to be finding indications of the converse, "if the simple core is weird, there is going to be a weird way of carrying it on." In the alternating groups, this is true: every one is a base for building the next one. I don't want to prove that for every sporadic group there exists a next-larger one, because it doesn't seem to be true, and I find it embarrassing to prove falsehoods. Given a simple core, if you are then going to append some intervening factors and a capping pseudo-group that closes up as a new simple group, the nature of the pseudo-group defining the simple core puts constraints on what this continuation has to be; the diagrammatic case imposes some complicated constraints (intervening additive and multiplicative factors that tie back just so); the alternating groups are certainly unlike most sporadics in demanding a very simple constraint, no intervening factors period, old simple core maximal in the next simple group; but each sporadic wants thus-and-so, blah-blah-blah, lah-di-da, and it is hard to see why the constraints would boil down to a contradiction, just "can't be done", especially hard to see why this would happen in one case only. This is not what happens in the "terminal" diagrammatic cases, the E_8, F_4, and G_2 exceptionals: if you add a node you get affine diagrams, and what that means for the E_9, F_5, and G_3 groups is that the constraints will demand intervening factors which need some more which need some more which need... Let us look at some easier groups to get the picture. I decompose Z as ... * Z_2 * Z_2 * Z_2 (or you can use all Z_10 if you like decimal digits better), each bit carrying to the next higher-order, indexed 0 to infinity: but with the restriction that an element of Z has all bits 0 past some N, or else all bits 1 (the negatives: in base-10, negative 1 would be written all 9's). This I would write asterisk-with-a-bar-over-it Z_2, the bar for "ceiling", as opposed to asterisk-hat, for "metric completion", an infinite ordinary product of Z_2's indexed 0 to infinity, but without the restriction: that construction makes the p-adics, and it is not isomorphic when you change base anymore. Asterisk-underlined is product of Z_2's indexed minus infinity to 0: this is the lesser Pru"fer group (he called it "quasi-cyclic") of fractions whose denominators are all powers of two (not isomorphic if you use a different prime), modulo one (no carry out of the topmost bit, it just overflows); putting a wedge (upside-down hat) instead of bar underneath means no restriction that you get down to a sea of zeroes eventually, and this is R/Z, the reals from 0 to 1 (and isomorphic if the base is changed); bar over and wedge under is R. Similarly you can make various infinite iterations of direct products, like the infinite elementary-2; additive Q is a direct product of the greater-Pru"fers (bar over and under an asterisk: fractions, whether greater or less than one, whose denominators are powers of p) for each prime p; multiplicative positive Q a direct product of an infinite number of copies of Z ("logarithms" for the p-factor at each prime p); both with the all-but-a-finite-number-trivial restriction. Semidirect products would not seem to admit this kind of iteration, but what the "Affine Chevalley" groups ought to look like is some infinite tuple of groups joined by operators like we find in the move up from PSL(n,q) to PSL(n+1,q), where a column of additive groups acts each on the previous until a multiplicative group acts on them all and a pseudo-group wraps it up-- except that there is "column" after "column" after "column" in some rhythmic pattern, an infinite number of times "before" the pseudogroup. It still should be possible to construct a systematic description of what kind of infinite tuple constitutes an element of an Affine Chevalley, and what the product of two elements is defined as-- not that I feel like sitting down and writing out such a description right now! So, the Monster shouldn't lead to "no continuation possible" but to "no continuation can close in a finite number of steps", at least that is my hunch. Besides the Dynkin diagrams there are the H diagrams, using braid numbers 5 and 5/2 with Dynkin edge-number D(B) = 4 cos^2 pi(1 - 1/B) working out to phi^2 = 2.618... and 2-phi = .382... (for sound reasons stemming from the non-integral Dynkin numbers, they support no Lie-algebra structures and thus aren't heard of as much); these describe the fivefold symmetric polytopes, like my "good friend" H_3 who lives in the icosahedron. You approach H_3 groups which act on a minimum of 12 points through the one-point stabilizers with their peculiar actions on 11: this is so strongly reminiscent of the Mathieu groups that there must be a connection, although I am damned if I can tell you what it is. There is an affine ~H_4, forked with a central node connected to three others by 1 (braid-number 3), .382 (5/2), and 2.618 (5) edges: the affine nature indicates the linear dependency between the vectors defining the icosahedron and those of Kepler's stella minor figure (12 pentagrams joined 5 at a vertex, using the same vertices as the icosahedron, but a set of three which would be a triangle in the icosahedron have no edge connections here at all). To make these reflections act independently, you have to change the figure into a multi-sheeted Riemann cover, festooned with branch points so that a series of moves which ought to bring you back home instead leaves you at the analogous place one sheet up; this structure is maddeningly confusing, governed by some kind of "Affine Mathieu" group that I need to get a grip on. Then there is an affine ~H_5, an unforked chain with 2.618, 1, 1, .382 edges, describing a linear dependency among the 10 stellated polytopes that can be inscribed in the large 4-dimensional hypericosahedron/hyperdodecahedron polytopes; again there is, or should be if I could figure it out, a way of turning this into a Riemann cover where paths that should be loops do not bring you home. Inside THIS labyrinth is where the "Minotaur" (my pet name for the "Affine Monster") ought to live. I feel that if I could just write down the reiterative description of what the Minotaur is, it would be immediately "obvious" not only that it has to be infinite, but that it is the Monster's only son. > > Best wishes, > Bob X From eckert at math.wayne.edu Thu Jul 1 17:32:21 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] "Affine Monster" In-Reply-To: References: Message-ID: In looking over that big long middle-of-the-night post to Stefan, I see that I didn't really quite around to answering his question, whether I would use a constructive or non-constructive way to prove existence of the "Affine Monster", and if constructive what kind of construction. I would certainly want to construct it. One style would be an "alphabet" for it, an infinite tuple of Z_2's, Z_3's, Z_5's, Z_7's, Z_11's, Z_19's, whatever primes it likes, presumably recurring in a repetitive pattern, some long batch of them over and over, or maybe each batch is longer than the previous but systematically describable and indexable. And there would be some pseudo-groups, but except for the final one all of these would occur in the initial, non-repeating, description of the Finite Monster (like a decimal expansion of a fraction where the first digits are not part of the final loop). Each would have an action as it passes any element from a more leftward Z_p, many of these actions trivial but in resolving the product each Z_p will have an infinite number of more rightward places from which it could receive a non-trivial action: thus, the usual kind of restriction that all but a finite number of the Z_p's are at the trivial value must be imposed or there is no way the product could be defined. The element from the rightmost atomic, the capping pseudo-group, has to pass everything, receiving a back-action and spitting back a carry each time; the defining rule, I am sure, is very difficult to express. Or: the "Minotaur" could be defined in a more permutational style, as mappings on the infinite set of vertices in the multi-sheeted cover of the 4D-icosahedron (120 vertices in each sheet), doing reflections and rotations on the hypericosahedron but also moving some vertices up or down some number of sheets. I think the simple core of this symmetry group is the "Affine Monster" I am hunting; but maybe the "Minotaur" and "Affine Monster" are not actually the same thing, just cousins of some kind. From Michael.Hartley at nottingham.edu.my Fri Jul 2 07:19:22 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] problem with Stabilizer Message-ID: Dear Forum, What am I doing wrong here?? The following commands (given to Gap 4.3fix5) grp := AlternatingGroup(7); aut := AutomorphismGroup(grp); stb := Stabilizer(aut,(3,4)(5,6)); lead to this error : ------- begin GAP output--------- GAP4, Version: 4.3fix5 of June, 2003, i686-pc-cygwin-gcc Components: small, small2, small3, small4, small5, small6, small7, small8, id2, id3, id4, id5, id6, trans, prim loaded. Packages: crisp, cryst, polycyclic, crystcat, ctbllib, tomlib, EDIM, GAPDoc, factint, lag loaded. gap> grp := AlternatingGroup(7); Alt( [ 1 .. 7 ] ) gap> aut := AutomorphismGroup(grp); gap> stb := Stabilizer(aut,(3,4)(5,6)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for ConjugatorOfConjugatorIsomorphism' on 1\ arguments called from ConjugatorOfConjugatorIsomorphism( auto ) called from map!.fun( elm ) called from ImagesRepresentative( nice, obj2 ) called from ClosureGroup( G, obj ) called from ClosureSubgroupNC( stb, sch ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> ----------end GAP output----------- The error depends sensitively on the group, even on the order of its generators! Eg, if the first line is replaced with any of grp := AlternatingGroup(6); or grp := AlternatingGroup(8); or even (!) grp := Group(GeneratorsOfGroup(AlternatingGroup(7))); allows the Stabilizer function to finish normally. Can this be fixed by merely upgrading to the current latest version of GAP? Or is there a workaround in my version? Or must I wait for a future version?? Yours, Mike H... From holmespe at for.mat.bham.ac.uk Fri Jul 2 07:25:34 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name (fwd) In-Reply-To: Message-ID: On Thu, 1 Jul 2004, Robert Eckert wrote: > the "Affine Monster") ought to live. I feel that if I could just write > down the reiterative description of what the Minotaur is, it would be > immediately "obvious" not only that it has to be infinite, but that it is > the Monster's only son. > > Haha! So then the Baby Monster is a girl!! Beth From sal at dcs.st-and.ac.uk Fri Jul 2 08:00:19 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] problem with Stabilizer In-Reply-To: References: Message-ID: <20040702080019.1076886c@caolila.dcs.st-and.ac.uk> Dear GAP Forum, On Fri, 02 Jul 2004 14:19:22 +0800, "Michael Hartley" reported a problem with these commands: > grp := AlternatingGroup(7); > aut := AutomorphismGroup(grp); > stb := Stabilizer(aut,(3,4)(5,6)); These appear to work correctly in GAP 4.4.3, to which we would urge him (and everyone else) to upgrade. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From beick at tu-bs.de Mon Jul 5 10:25:59 2004 From: beick at tu-bs.de (Bettina Eick) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name In-Reply-To: <20040628175437.GE24881@txc.com> Message-ID: Dear Gap-forum, Igor Schein wrote: > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. In GAP 3 the catalogue of all solvable groups of order at most 100 contained names for many of the groups in this catalogue. I guess that Igor refers to these names. In GAP 4 this catalogue of solvable groups is not explicitly available anymore as all the groups in the catalogue are contained in the small groups library. The relation between the two catalogues is given by the GAP 4 function Gap3CatalogueIdGroup. But the names of the groups as in GAP 3 have not been translated to GAP 4. The basic reason for this is that Hans Ulrich Besche (who implemented the GAP 3 names) considered the GAP 3 names as too unsystematic. The GAP 3 names are based on the well-known names for certain groups such as the cyclic, dihedral, symmetric and alternating groups. Beyond these groups, the GAP 3 names use a structure analysis to determine a name; for example, An.C2 would be a group with An as normal subgroup of index 2. Thus the GAP 3 names are just a description of the group structure. The GAP 3 names should not be considered as 'canonical'. Also, there are groups of order less than 100 which did not get a name under this scheme, as there did not exist a nice, short and unique structure analysis that could be used as a name. Further, some groups could have two or more different names, as more than one structure analysis applies to them. Nonetheless, a more systematic version of the GAP 3 names would perhaps be nice to have in GAP 4 also. I'll think about it. Determining canonical names for all finite groups is a different project. 'Canonical' means to me that every isomorphism type of group gets a unique name such that non-isomorphic groups have different names. Thus a canonical name really is a description of the group up to isomorphism. For such a naming scheme we need at least as many names as we have isomorphism types of groups. As the number of groups of order n grows exponentially with the largest exponent in the prime-power factorisation of n, it is obvious that we cannot expect canonical names to be short and easy. For p-groups there exists the standard presentation algorithm in the ANUPQ package by Eamonn O'Brien. This can determine a standard presentation for a p-group G. Such a presentation is unique for the isomorphism type of G and thus it could be considered as a canonical name for G. If G has order p^n, then a standard presentation has n(n+1)/2 relations and each relation can be written as a vector of length at most n over GF(p). Thus a standard presentation is quite long and perhaps not easy to read as name for the group. But considering the number of groups of order p^n, it seems unlikely that one can get much shorter canonical names in general. I think this idea of computing a standard presentation extends at least to all finite solvable groups. This extension has not been implemented so far, but it would be a very worth-while project. If we have such a function that can determine a canonical name or a standard presentation for a finite group, then this would also solve the isomorphism problem and thus would be very valuable. If anybody is interested in following this project up, then please let me know. I would be happy to supply further information. Best wishes, Bettina From pueschel at ece.cmu.edu Mon Jul 5 19:29:06 2004 From: pueschel at ece.cmu.edu (Markus Pueschel) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Retrieving group name (fwd) In-Reply-To: References: Message-ID: <200407051429.06821.pueschel@ece.cmu.edu> Hello, I want to add to this discussion that Sebastian Egner and myself wrote a program a while ago (1997, GAP3) that decomposes a group into semidirect and direct product of "basic" groups (cyclic, dihedral, and some others) and constructs accordingly a name. I give an example below. I am happy to send this program if somebody wants it. best regards, Markus Pueschel gap> AllSmallGroups(32); [ 32_1, 32_2, 32_3, 32_4, 32_5, 32_6, 32_7, 32_8, 32_9, 32_10, 32_11, 32_12, 32_13, 32_14, 32_15, 32_16, 32_17, 32_18, 32_19, 32_20, 32_21, 32_22, 32_23, 32_24, 32_25, 32_26, 32_27, 32_28, 32_29, 32_30, 32_31, 32_32, 32_33, 32_34, 32_35, 32_36, 32_37, 32_38, 32_39, 32_40, 32_41, 32_42, 32_43, 32_44, 32_45, 32_46, 32_47, 32_48, 32_49, 32_50, 32_51 ] gap> List(last, OneIsomorphismTypeGroup); [ Z32, (Z4 : (Z2 x Z4)), (Z4 x Z8), (Z4 : Z8), (Z2 : (Z2 x Z8)), (Z2 : (Z2 : (Z2 x Z4))), (Z2 : (Z2 : Z8)), NonSplit(32), (Z2 : (Z2 x Z8)), (Z4 : Q8), (Z2 : (Z4 x Z4)), (Z8 : Z4), (Z4 : Z8), (Z4 : Z8), NonSplit(32), (Z2 x Z16), (Z2 : Z16), D32, QD32, Q32, (Z2 x Z4 x Z4), (Z2 x (Z2 : (Z2 x Z4))), (Z2 x (Z4 : Z4)), (Z2 : (Z4 x Z4)), (Z4 x D8), (Z4 x Q8), (Z2 : (Z2 x Z2 x Z2 x Z2)), (Z2 : (Z2 x Z2 x Z4)), (Z2 : (Z2 x Q8)), (Z2 : (Z2 x Z2 x Z4)), (Z2 : (Z4 x Z4)), NonSplit(32), (Z2 : (Z4 x Z4)), (Z2 : (Z4 x Z4)), (Q8 : Z4), (Z2 x Z2 x Z8), (Z2 x (Z2 : Z8)), (Z2 : (Z2 x Z8)), (Z2 x D16), (Z2 x QD16), (Z2 x Q16), (Z2 : (Z2 x Z8)), (Z2 : (Z2 x D8)), (Z2 : (Z2 x Q8)), (Z2 x Z2 x Z2 x Z4), (Z2 x Z2 x D8), (Z2 x Z2 x Q8), (Z2 x (Z2 : (Z2 x Z4))), (Z2 : (Z2 x D8)), (Z2 : (Z2 x Q8)), (Z2 x Z2 x Z2 x Z2 x Z2) ] On Thursday 01 July 2004 11:55, Robert Eckert wrote: > ---------- Forwarded message ---------- > Date: Thu, 1 Jul 2004 01:25:40 -0400 (EDT) > From: Robert Eckert > To: Stefan Kohl > Cc: GAP Support > Subject: Re: [GAP Forum] Retrieving group name > > On Wed, 30 Jun 2004, Stefan Kohl wrote: > > Robert Eckert wrote: > > > This is probably more than you want to know, but... > > > For some time I have worked on what a "canonical" naming scheme for a > > > Classification of Finite *non*Simple Groups would have to look like. > > > > [ ... ] > > > > This looks like a larger project -- > > > > Some questions however (maybe the answers are somewhere hidden in your > > text): > > > > 1. Is there a bijection between your names and the isomorphism types > > of finite groups? > > That's the plan, at least: a symbol-string should stand for either an > impossibility (there exists Z_3 X| Z_2 = D_6 = S_3 but no Z_2 X| Z_3) or a > group determined up to isomorphism; and each group (finite at least: > infinites have "self-similar" decompositions like Z = Z * Z_2 or "free > product" decompositions and maybe phenomena for which this whole language > is not suitable) should have a unique "canonical" symbol-string naming. > Problems divide into "ambiguities" (same symbol string for non-isomorphic > groups, from two series of refinements of the same Type at each step down > to the same atomics but with alpha/gamma choices that cause different > effects) and the much less serious "ambivalencies" (as between > Z_6 = Z_2 + Z_3, Z_6 = Z_3 + Z_2, > who really cares? any arbitrary tie-breaker rule will do). Ambiguities > about the choice of gamma I know how to deal with; ambiguous semidirect > products are more confusing and this remains work in progress. > > > 2. If not: for which types of groups or orders of groups are your names > > unique, or which invariants do they determine? > > "All groups of finite order" is the desired answer. With certain > "honorary atomics" like Z, Q, R we can also deal with infinites that are > "solvable over the finites" (has a subnormal series of inclusions of > subgroups, i.e. each normal in the next if not necessarily in the whole, > where each quotient is abelian OR finite). > > > 3. Is it algorithmically feasible to determine the name of a given group > > according to your naming scheme? If so, for how large / complicate > > groups? > > Very much work in progress. First approx: determine whether the group > has a center by taking commutator-derivation until it goes trivial or > stops shrinking; if so, try to pull out the center as a direct or ordinary > left factor: if ordinary, keep decomposing and note whether carry is > revealed to be incompletely ordinary at some stage-- there are systematic > moves that can be made to rectify the decomposition if this happens. But > if there is no center, use the first commutator-derived (not the terminal > stage) as your attempted H to get a semidirect by a cyclic action, or by an > abelian group of non-interacting actions, and keep decomposing to see if > one of the actions "does something funny"-- here is where I am groping even > to pin down what exactly I mean, let alone what to do about it. The > actions should fall into inner/central-fixing cases rectifiable to direct > or ordinary, and wreath/non-wreath actions, plus only a handful of > exceptionals that need to be tagged "reverse". The conjecture is that the > exceptionals only happen with a few "smallish" groups like A_6: that might > prove false, but I doubt it because it is those exceptionals and the > anomalies surrounding them that allow the sporadic simples to arise; so if > there was a large counterexample, there ought to be a whole new family of > large sporadics also, and while the Simple Classification Theorem is now > scattered among hundreds of papers that I doubt any one person has read all > through, the community seems satisfied that it is correct. A more likely > kind of failure for my scheme: what I think is non-exceptional, the > wreath/non-wreath, conceals a kind of ambiguity (more than one "wreathlike" > or more than one "non") that I haven't considered. > > To show a small example, the wreath > (Z_3 + Z_3) S Z_2 > would proceed algorithmically through the "ordinary" fork; writing the > elements 0/1/2, 0/1/2, blank/S, the action of S fixes the central {00, 11, > 22} so I would try that as H and find the quotient is a D_6 = Z_3 X| Z_2 > with, say, {00, 01, 02} as the Z_3 (no carry), and either 01S, which > carries by > 01S 01S = 01 10 S^2 = 11 > or 00S, which does not carry but induces carry, as the non-trivial in Z_2. > This is incompletely ordinary, so it would be kicked over to the > semidirect fork of the algorithm: the rectification is to combine the old > H with the part of T that failed to carry at all to make our new H, the > elementary-9, and treat the part of T that either carried or induced carry > as the subgroup acting on it. Discover "carry-up" and tag it "wreath". > > For cases with a center or a smaller commutator-derived, having chosen a > tentative H, the T-elements are chosen preferring *independent* elements > (no power except id falling into H or into the cosets of H using those > T-elements already chosen) of maximal order, or else the *maximally > independent* (largest power before it falls in), and if t is chosen, > also incorporate into T the powers of t as far as independent; this > trivializes gamma so far as possible. But for other cases, simple or > near-simple groups where commutator-derivation does not shrink the group > at all, take a maximal H: start with an element of maximal order and keep > appending elements of maximal independence that do not generate the full G > until you cannot anymore; the T that is appropriate here is constructed by > different principles, preferring involutions where possible and > incorporating conjugates rather than powers; if the group is not actually > simple, decompose as if it were the simple group anyway, and the extra > factor will have to be detected. > > > Depending on the answers to these questions I think it might be *very* > > desirable to have these names and a corresponding group identification > > routine available in GAP, and I would recommend that you discuss this > > with the author of the small groups library, Bettina Eick. > > That might be premature at this time; on the other hand, maybe working on > an implementation would clarify my mind about what the "rules" really need > to be. > > > Another question: How do you suppose the Affine Monster' to look like, > > Like a warthog who can't get a date even from female warthogs. > > > and with which kind of methods do you try to establish its existence, > > i.e. do you use a constructive approach (construct a permutation > > representation, matrix representation, finite presentation, ...) or a > > non-constructive one? > > Gross framework of the "big lemma": work in permutation-representation > terms. Given an arbitrary finite simple G, choose a maximal subgroup H > and action on H-cosets is permutational of least possible degree-- unless > there happens to be a different maximal subgroup of smaller index > reachable by a different route? H is a one-point stabilizer: label the > point standing for H-itself as "point infinity". Pick a "point 0" and an > involution t_0 in that coset; now find a "wholly regular" element of H, > meaning one that has no power short of id that fixes any point but > "infinity" (no mixing of different lengths in the disjoint-cycle > structure), and build up to the largest possible wholly-regular subgroup > (at least containing that cyclic, but as much as you can add and have no > non-trivial element acting less than freely on the points other than > infinity)-- unless there isn't even one regular in H that doesn't mix > cycle lengths? Start the rectified T as t_0 (moves "infinity" to "0") > plus its conjugates by the big wholly-regular subgroup (each moving > "infinity" to a different point); if that reaches all the points we are > done (as in PSL(2,q) but not in general); else find an independent wholly > regular element of H moving "0" to one of the points not reached by the > orbit of the earlier subgroup-- unless that doesn't exist? Else continue > adding blocs of conjugates to the transversal until complete. Regardless > of what the simple group, you should be able to rectify thus far. > If, instead of an arbitrary simple group we are given one equipped with a > canonical decomposition, the rightmost pseudo-group factor will be > defining S, the "simple core"-- unless all H is solvable? The > factors right of that pseudo-group will contain some multi-point > stabilizing stuff (the "multiplicatives") and what we want to be > the initial big wholly-regular subgroup (the "additives")-- unless it just > isn't there? (For example, in PSL(n,q) the H we have in mind is the > subgroup of matrices with the bottom row all zeroes except the rightmost > entry; this breaks down as PSL(n-1,q) which is our S, one new > multiplicative group, and a column of new additive groups which t_0 is to > be conjugated by to get us started off). Then the further regular > subgroups that suffice to fill out T should be precisely the same ones > which sufficed to build the pseudogroup for S. If everything goes > through, we get diagrammatic relationships and can show how to figure out > which diagram it is. > > The question marks are the places where things could fail, and that should > mean G isn't really simple, or H really isn't maximal, or S wasn't > diagrammatic either, or it can mean a different H should be chosen-- but > you can get two H's pointing their fingers at each other saying "use that > one instead"; this comes up in the "set-product" case. I think I can get > to "if everything was diagrammatic and typical before, it will be again". > The problem is that I also seem to be finding indications of the converse, > "if the simple core is weird, there is going to be a weird way of carrying > it on." In the alternating groups, this is true: every one is a base for > building the next one. I don't want to prove that for every sporadic > group there exists a next-larger one, because it doesn't seem to be true, > and I find it embarrassing to prove falsehoods. Given a simple core, if > you are then going to append some intervening factors and a capping > pseudo-group that closes up as a new simple group, the nature of the > pseudo-group defining the simple core puts constraints on what this > continuation has to be; the diagrammatic case imposes some complicated > constraints (intervening additive and multiplicative factors that tie > back just so); the alternating groups are certainly unlike most sporadics > in demanding a very simple constraint, no intervening factors period, old > simple core maximal in the next simple group; but each sporadic wants > thus-and-so, blah-blah-blah, lah-di-da, and it is hard to see why the > constraints would boil down to a contradiction, just "can't be done", > especially hard to see why this would happen in one case only. > > This is not what happens in the "terminal" diagrammatic cases, the E_8, > F_4, and G_2 exceptionals: if you add a node you get affine diagrams, and > what that means for the E_9, F_5, and G_3 groups is that the constraints > will demand intervening factors which need some more which need some more > which need... Let us look at some easier groups to get the picture. I > decompose Z as ... * Z_2 * Z_2 * Z_2 (or you can use all Z_10 if you like > decimal digits better), each bit carrying to the next higher-order, > indexed 0 to infinity: but with the restriction that an element of > Z has all bits 0 past some N, or else all bits 1 (the negatives: in > base-10, negative 1 would be written all 9's). This I would write > asterisk-with-a-bar-over-it Z_2, the bar for "ceiling", as opposed to > asterisk-hat, for "metric completion", an infinite ordinary product of > Z_2's indexed 0 to infinity, but without the restriction: that > construction makes the p-adics, and it is not isomorphic when you change > base anymore. Asterisk-underlined is product of Z_2's indexed minus > infinity to 0: this is the lesser Pru"fer group (he called it > "quasi-cyclic") of fractions whose denominators are all powers of two (not > isomorphic if you use a different prime), modulo one (no carry out of the > topmost bit, it just overflows); putting a wedge (upside-down hat) instead > of bar underneath means no restriction that you get down to a sea of > zeroes eventually, and this is R/Z, the reals from 0 to 1 (and isomorphic > if the base is changed); bar over and wedge under is R. > > Similarly you can make various infinite iterations of direct products, > like the infinite elementary-2; additive Q is a direct product of the > greater-Pru"fers (bar over and under an asterisk: fractions, whether > greater or less than one, whose denominators are powers of p) for each > prime p; multiplicative positive Q a direct product of an infinite number > of copies of Z ("logarithms" for the p-factor at each prime p); both with > the all-but-a-finite-number-trivial restriction. Semidirect products > would not seem to admit this kind of iteration, but what the "Affine > Chevalley" groups ought to look like is some infinite tuple of groups > joined by operators like we find in the move up from PSL(n,q) to > PSL(n+1,q), where a column of additive groups acts each on the previous > until a multiplicative group acts on them all and a pseudo-group wraps it > up-- except that there is "column" after "column" after "column" in some > rhythmic pattern, an infinite number of times "before" the pseudogroup. > It still should be possible to construct a systematic description of what > kind of infinite tuple constitutes an element of an Affine Chevalley, and > what the product of two elements is defined as-- not that I feel like > sitting down and writing out such a description right now! > > So, the Monster shouldn't lead to "no continuation possible" but to "no > continuation can close in a finite number of steps", at least that is my > hunch. Besides the Dynkin diagrams there are the H diagrams, using braid > numbers 5 and 5/2 with Dynkin edge-number D(B) = 4 cos^2 pi(1 - 1/B) > working out to phi^2 = 2.618... and 2-phi = .382... (for sound reasons > stemming from the non-integral Dynkin numbers, they support no Lie-algebra > structures and thus aren't heard of as much); these describe the fivefold > symmetric polytopes, like my "good friend" H_3 who lives in the > icosahedron. You approach H_3 groups which act on a minimum of 12 points > through the one-point stabilizers with their peculiar actions on 11: this > is so strongly reminiscent of the Mathieu groups that there must be a > connection, although I am damned if I can tell you what it is. There is > an affine ~H_4, forked with a central node connected to three others by 1 > (braid-number 3), .382 (5/2), and 2.618 (5) edges: the affine nature > indicates the linear dependency between the vectors defining the > icosahedron and those of Kepler's stella minor figure (12 pentagrams > joined 5 at a vertex, using the same vertices as the icosahedron, but a > set of three which would be a triangle in the icosahedron have no edge > connections here at all). To make these reflections act independently, > you have to change the figure into a multi-sheeted Riemann cover, > festooned with branch points so that a series of moves which ought to > bring you back home instead leaves you at the analogous place one sheet > up; this structure is maddeningly confusing, governed by some kind of > "Affine Mathieu" group that I need to get a grip on. Then there is an > affine ~H_5, an unforked chain with 2.618, 1, 1, .382 edges, describing a > linear dependency among the 10 stellated polytopes that can be inscribed > in the large 4-dimensional hypericosahedron/hyperdodecahedron polytopes; > again there is, or should be if I could figure it out, a way of turning > this into a Riemann cover where paths that should be loops do not bring > you home. Inside THIS labyrinth is where the "Minotaur" (my pet name for > the "Affine Monster") ought to live. I feel that if I could just write > down the reiterative description of what the Minotaur is, it would be > immediately "obvious" not only that it has to be infinite, but that it is > the Monster's only son. > > > Best wishes, > > Bob X > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Markus Pueschel Research Faculty Dept. of Electrical and Computer Engineering Carnegie Mellon University http://www.ece.cmu.edu/~pueschel From pliner at sky.ru Tue Jul 6 06:33:27 2004 From: pliner at sky.ru (Lev Pliner) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Loading workspaces Message-ID: <003001c4631a$e207ad70$b90d72d9@lsp> Dear forum users. Is there a way how saved workspace can be loaded in the working instance of GAP? Somthing like: gap> LoadWorkspace ("savefile"); Lev. From costanti at science.unitn.it Tue Jul 6 14:27:14 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Loading workspaces In-Reply-To: <003001c4631a$e207ad70$b90d72d9@lsp> References: <003001c4631a$e207ad70$b90d72d9@lsp> Message-ID: <1089120434.40eaa8b24f8c2@www.unitn.it> Dear Lev and dear forum users, > > Is there a way how saved workspace can be loaded in the working instance > of GAP? Somthing like: > > gap> LoadWorkspace ("savefile"); Try to start a new gap session with gap -L savefile As far as I know, it is not possible loading a saved workspace within an already started Gap session. Best, Marco Costantini From Michael.Hartley at nottingham.edu.my Thu Jul 8 09:13:25 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] orbits... Message-ID: Dear Forum, thanks for the advice on the stabilizer bug. I have now upgraded to 4.4. On another topic - suppose I want a representative of each orbit of group acting on a set, without actually finding the whole orbits? Specifically, I am trying to get Automorphism classes of involutions of a group. So far, I do this : AutomorphismClassesInvolutions := function(grp) # should probably be called AutomorphismClassRepresentativeInvolutions. local ss,inv,cr,au; au := AutomorphismGroup(grp); # find the automorphism group ss := SylowSubgroup(grp,2); # find a sylow 2-subgroup ss inv := Filtered(Elements(ss),x -> Order(x) = 2); # get the involutions in ss cr := List(Orbits(au,inv),Representative); # get representatives of the orbits of the involutions under the automorphism group. return cr; end; Note that the last line before the return will actually compute the whole Orbit. I really just want a representative from each orbit. Or is there a faster way to get the involutions?? Yours, Mike H... From kohl at mathematik.uni-stuttgart.de Thu Jul 8 11:26:51 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] orbits... References: Message-ID: <40ED216B.3D4D2887@mathematik.uni-stuttgart.de> Dear Forum, Michael Hartley wrote: > On another topic - suppose I want a representative of each orbit of > group acting on a set, without actually finding the whole orbits? > Specifically, I am trying to get Automorphism classes of involutions of > a group. > > So far, I do this : > > AutomorphismClassesInvolutions := function(grp) # should probably be > called AutomorphismClassRepresentativeInvolutions. > local ss,inv,cr,au; > au := AutomorphismGroup(grp); # find the automorphism group > ss := SylowSubgroup(grp,2); # find a sylow 2-subgroup ss > inv := Filtered(Elements(ss),x -> Order(x) = 2); # get the > involutions in ss > cr := List(Orbits(au,inv),Representative); # get representatives > of the orbits of the involutions under the automorphism group. > return cr; > end; > > Note that the last line before the return will actually compute the > whole Orbit. > > I really just want a representative from each orbit. Or is there a > faster way to get the involutions?? Of course there is a faster way to get the involutions -- you can use ConjugacyClasses' to compute the conjugacy classes of your group, and then check which conjugacy classes of involutions are fused under outer automorphisms. You might try the following -- of course significant algorithmic improvements are possible depending on the representation of your groups, and it may happen for various reasons that you can save the work of actually computing the automorphism group, thus the following is just a general purpose' approach: AutomorphismClassRepresentativeInvolutions := function ( G ) local ccl, rep, A, autgen, outer, pos, Out, orb, i; ccl := Filtered( ConjugacyClasses( G ), cl -> Order( Representative( cl ) ) = 2 ); if Length( Set ( List( ccl, Size ) ) ) = Length( ccl ) then return List( ccl, Representative ); fi; rep := List( ccl, Representative ); A := AutomorphismGroup( G ); autgen := GeneratorsOfGroup( A ); outer := Filtered( autgen, a -> not IsInnerAutomorphism( a ) ); Out := Group(()); pos := [ ]; for i in [ 1 .. Length( outer ) ] do pos[i] := List([ 1 .. Length( ccl ) ], j -> Position(List(rep,g->IsConjugate(G,g,Image(outer[i], rep[j]))), true)); Out := ClosureGroup( Out, SortingPerm( pos[ i ] ) ); od; return List( Orbits( Out, [ 1 .. Length( ccl ) ] ), orb -> Representative( ccl[ orb[ 1 ] ] ) ); end; Hope this helps, Stefan Kohl From iqbox_postech at yahoo.com Mon Jul 12 15:05:51 2004 From: iqbox_postech at yahoo.com (Kang ByoungKwan) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] How many elements of SymmetricGroup can be represented by GAP ? Message-ID: <20040712140551.2267.qmail@web50009.mail.yahoo.com> Dear forum members, I met the problem about limit # of representing elements of symmetric group. This is my partial code for using all elements of symmetric group gap>idx:=10; gap>G:=SymmetricGroup(idx); gap>sub:=Elements(G); gap: cannot extend the workspace any more gap: Press to end program If I write idx:=9 then the above program acts well. But, If idx:=10 then they break Is there some solutions for solving this problem ? Thank you for your reading. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From kohl at mathematik.uni-stuttgart.de Mon Jul 12 16:50:39 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] How many elements of SymmetricGroup can be representedby GAP ? References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> Message-ID: <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> Dear Forum, Kang ByoungKwan wrote: > I met the problem about limit # of representing elements of symmetric group. > This is my partial code for using all elements of symmetric group > > gap>idx:=10; > gap>G:=SymmetricGroup(idx); > gap>sub:=Elements(G); > > gap: cannot extend the workspace any more > gap: Press to end program > > If I write idx:=9 then the above program acts well. But, If idx:=10 then they break > Is there some solutions for solving this problem ? There are basically two solutions to this problem: - If you just want to loop over all group elements, then you can write for g in SymmetricGroup(10) do < your code, i.e. what you want to do with the group element > od; - If you want to have an object which behaves like a list of all group elements, then you can write l := Enumerator(SymmetricGroup(10)); This does not actually compute all group elements (thus does not need much memory), but can be used as if it would be a list of all group elements, e.g. you can write gap> l[1]; () gap> l[1000000]; (1,9)(3,10,6,8,7,4,5) gap> l{[785433..785438]}; [ (1,2,10,3,9,4,8,7,5), (1,3,9,4,8,7,5), (1,4,8,7,5)(3,9,10), (1,5)(3,9,4,8,7,10), (1,6,10,3,9,4,8,7,5), (1,7,5)(3,9,4,8,10) ] Hope this helps, Stefan Kohl From costanti at science.unitn.it Mon Jul 12 17:27:00 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] How many elements of SymmetricGroup can be represented by GAP ? In-Reply-To: <20040712140551.2267.qmail@web50009.mail.yahoo.com> References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> Message-ID: <1089649620.40f2bbd4e46c8@www.unitn.it> Dear Kang ByoungKwan and dear forum members, > I met the problem about limit # of representing elements of symmetric > group. > This is my partial code for using all elements of symmetric group > > gap>idx:=10; > gap>G:=SymmetricGroup(idx); > gap>sub:=Elements(G); > > gap: cannot extend the workspace any more > gap: Press to end program There are 3628800 element in SymmetricGroup(10) and these are too much, not only for Gap to store all them in memory (at least on your computer), but also for you, to consider all of them. The standard suggestion in this case is to consider only the conjugacy classes. idx := 10; G := SymmetricGroup( idx ); cc := ConjugacyClasses( G ); For further information, see the Gap help about this topic, with the command ?Conjugacy Classes Best regards, Marco Costantini From e.obrien at auckland.ac.nz Mon Jul 12 23:52:29 2004 From: e.obrien at auckland.ac.nz (Eamonn OBrien) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] International conference, Auckland February 2005 Message-ID: <200407122252.i6CMqTD05810@aitken.math.auckland.ac.nz> Dear Gap Forum, ================================================ Geometry: Interactions with Algebra and Analysis International conference, Auckland 14-18 February 2005 ================================================ Second announcement This international meeting is one of the key events of a Thematic Program funded by the New Zealand Institute of Mathematics and its Applications . Full details of the program and its related events, including a workshop at Napier from 8-15 January 2005, can be found at Speakers ======== The list of speakers include: * Arjeh Cohen (Eindhoven) * Marston Conder (Auckland) * Rob Howlett (Sydney) * Bill Kantor (Oregon) * Laci Kovacs (Canberra) * Gus Lehrer (Sydney) * Martin Liebeck (Imperial College) * Colin Maclachlan (Aberdeen) * Gunter Malle (Kassel) * Chuck Miller (Melbourne) * Paul Norbury (Melbourne) * Cheryl Praeger (University of Western Australia) * Lawrence Reeves (Marseilles) * Peter Schmid (Tuebingen) * Akos Seress (Ohio State University) * Aner Shalev (Jerusalem) Timetable ========= The conference will commence on Monday, 14 February, and finish on Friday, 18 February. In addition to the invited lectures, there will be an opportunity for contributed talks, of up to 25 minutes in duration. See the WEB site for details. Accommodation ============= A range of options, catering for most budgets and tastes, is available. See the WEB site for details, including reservation links. Further information =================== The WEB site for the meeting is There you can register to participate and contribute a lecture. It also includes information on accommodation, tourism, and scholarships which may be available to both local and international students. Please register via the WEB site before December 10, 2004. Since the meeting runs during high tourism season, we encourage you to plan *early*. Best wishes. Eamonn O'Brien and Gaven Martin Program Directors From mjoao at univ-ab.pt Tue Jul 13 11:06:00 2004 From: mjoao at univ-ab.pt (=?iso-8859-1?B?Sm/jbyBBcmH6am8=?=) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] permutations and transformations References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> Message-ID: <00ee01c468c1$03d983a0$360aa8c0@jarajo> Dear GAP Forum, Is there any way of automatically translate the permutation (1,2,3) to the transformation Transformation([2,3,1])? (I am working with some semigroups generated by a group G and some non-invertible transformations. Therefore I have been introducing the group G as group of permutations, use GAP to find the generators, translate by hand the cycle notation to transformations and then generate the semigroup; but maybe there is an easier and faster way of doing this...). I thank any help. Jo?o From peter.mueller at iwr.uni-heidelberg.de Tue Jul 13 11:53:07 2004 From: peter.mueller at iwr.uni-heidelberg.de (Peter Mueller) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] permutations and transformations In-Reply-To: <00ee01c468c1$03d983a0$360aa8c0@jarajo> References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> <00ee01c468c1$03d983a0$360aa8c0@jarajo> Message-ID: See ?PermList and ?ListPerm Peter M"uller (Heidelberg) On Tue, 13 Jul 2004, Jo?o Ara?jo wrote: > Dear GAP Forum, > > Is there any way of automatically translate the permutation (1,2,3) to the > transformation > > Transformation([2,3,1])? > > (I am working with some semigroups generated by a group G and some > non-invertible transformations. Therefore I have been introducing the group > G as group of permutations, use GAP to find the generators, translate by > hand the cycle notation to transformations and then generate the semigroup; > but maybe there is an easier and faster way of doing this...). > > I thank any help. > > Jo?o > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From Sergei.Haller at math.uni-giessen.de Tue Jul 13 12:24:55 2004 From: Sergei.Haller at math.uni-giessen.de (Sergei Haller) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] permutations and transformations In-Reply-To: <00ee01c468c1$03d983a0$360aa8c0@jarajo> References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> <00ee01c468c1$03d983a0$360aa8c0@jarajo> Message-ID: On Tue, 13 Jul 2004, Jo?o Ara?jo (JA) wrote: JA> Dear GAP Forum, JA> JA> Is there any way of automatically translate the permutation (1,2,3) to the JA> transformation JA> JA> Transformation([2,3,1])? something like that? gap> d := 5;; gap> S := SymmetricGroup(5);; gap> p := Random(S); (1,5,2)(3,4) gap> t := Transformation( List([1..d], x->x^p ) ); Transformation( [ 5, 1, 4, 3, 2 ] ) Best wishes, Sergei -- -------------------------------------------------------------------- -?) eMail: Sergei.Haller@math.uni-giessen.de /\\ -------------------------------------------------------------------- _\_V Be careful of reading health books, you might die of a misprint. -- Mark Twain From rm43 at evansville.edu Tue Jul 13 13:35:45 2004 From: rm43 at evansville.edu (Morse, Robert) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] permutations and transformations Message-ID: Jo?o Ara?jo wrote: > Is there any way of automatically translate the permutation (1,2,3) to the > transformation > Transformation([2,3,1])? Yes. Use the command AsTransformation. gap> AsTransformation((1,2,3)); Transformation( [ 2, 3, 1 ] ) See ?AsTransformation for other objects that can be represented as transformations. Regards, Robert F. Morse From Michael.Hartley at nottingham.edu.my Wed Jul 14 03:54:19 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Re: Forum Digest, Vol 8, Issue 3 Message-ID: Dear Stefan, Thanks. I'll try your method and see if it works out as more efficiently. Yours, Mike H... Michael Hartley wrote: > On another topic - suppose I want a representative of each orbit of > group acting on a set, without actually finding the whole orbits? > Specifically, I am trying to get Automorphism classes of involutions of > a group. > > So far, I do this : > [snip] > Note that the last line before the return will actually compute the > whole Orbit. > > I really just want a representative from each orbit. Or is there a > faster way to get the involutions?? Of course there is a faster way to get the involutions -- you can use ConjugacyClasses' to compute the conjugacy classes of your group, and then check which conjugacy classes of involutions are fused under outer automorphisms. You might try the following -- of course significant algorithmic improvements are possible depending on the representation of your groups, and it may happen for various reasons that you can save the work of actually computing the automorphism group, thus the following is just a general purpose' approach: AutomorphismClassRepresentativeInvolutions := function ( G ) local ccl, rep, A, autgen, outer, pos, Out, orb, i; ccl := Filtered( ConjugacyClasses( G ), cl -> Order( Representative( cl ) ) = 2 ); if Length( Set ( List( ccl, Size ) ) ) = Length( ccl ) then return List( ccl, Representative ); fi; rep := List( ccl, Representative ); A := AutomorphismGroup( G ); autgen := GeneratorsOfGroup( A ); outer := Filtered( autgen, a -> not IsInnerAutomorphism( a ) ); Out := Group(()); pos := [ ]; for i in [ 1 .. Length( outer ) ] do pos[i] := List([ 1 .. Length( ccl ) ], j -> Position(List(rep,g->IsConjugate(G,g,Image(outer[i], rep[j]))), true)); Out := ClosureGroup( Out, SortingPerm( pos[ i ] ) ); od; return List( Orbits( Out, [ 1 .. Length( ccl ) ] ), orb -> Representative( ccl[ orb[ 1 ] ] ) ); end; Hope this helps, Stefan Kohl From edmund at mcs.st-and.ac.uk Fri Jul 16 09:45:14 2004 From: edmund at mcs.st-and.ac.uk (Edmund Robertson) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] Change in membership of GAP Support Group Message-ID: <200407160845.i6G8jE202549@mcs.st-and.ac.uk> Dear Forum members May I inform you about two changes in the membership of the GAP Support Group: 1. Volkmar Felsch, who has been a member of the Support Group since it began, has now asked to be removed from the list of members. Although he retired from LDfM at Aachen a year ago, during this last year he has taken a major part in the preparation of a new web site for GAP which we hope to release very soon. He wants now to concentrate on research into the life of Otto Blumenthal, a Mathematics Professor at RWTH, who died in a concentration camp in 1945. I'm sure you will all join me in thanking him for his long involvement with Computational Group Theory, and in particular with GAP, and with wishing him all the best for the years ahead. 2. We are pleased to announce that Marco Costantini, whose name you will have seen answering questions sent to the GAP Forum and to GAP Support, has agreed to officially join the GAP Support group. Thank you Marco. Edmund Robertson ---------------------------------------------------------------------- Professor E F Robertson Chairman of GAP Council Centre for Interdisciplinary Research in Computational Algebra Mathematical Institute University of St Andrews St Andrews KY16 9SS Scotland Email: edmund@mcs.st-and.ac.uk Tel: +44 (0)1334 463743 Fax: +44 (0)1334 463748 ---------------------------------------------------------------------- From edmund at mcs.st-and.ac.uk Fri Jul 16 10:52:43 2004 From: edmund at mcs.st-and.ac.uk (Edmund Robertson) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] New GAP web site Message-ID: <200407160952.i6G9qhD02785@mcs.st-and.ac.uk> Dear Forum members May I inform you that the new GAP web site is now active. It now replaces the previous site. You can see it at the old URL: http://www.gap-system.org/ I would like to take this opportunity of thanking the many people who have helped develop the site. I'm sure you will all join me in thanking them all. In particular: Thanks to Alexander Hulpke for his work on the former GAP web site. Much of the present site is based on his contributions. Thanks to Leonard Soicher who, over two years ago, proposed the basic design criteria on which the site is based. Thanks to Max Neunhoeffer for the 'mixer' program which separates the definition of a 'spanning tree' from writing the individual pages. The 'mixer' has been a most valuable tool in the development of the new web site. Thanks also for all his work in installing the site on the St Andrews computers. Thanks to Frank Luebeck for his work on the 'Download' and the 'Package' branch that will now be regularly kept up to date using scripts that Frank has written for the purpose. Thanks to Volkmar Felsch for devoting so much time over the last year to developing the new site. Thanks to Joachim Neubueser for his all his efforts in preparing the new site and also in coordinating the whole project. I would further like to take this opportunity of thanking the many people who have provided helpful feedback as the site was being developed. Also thanks to those in St Andrews who have assisted. Finally I am delighted to announce that Joachim Neubueser has agreed to act as maintainer of the new web site for the immediate future. In a separate message he will give some comments on the new web site. Edmund Robertson ---------------------------------------------------------------------- Professor E F Robertson Chairman of GAP Council Centre for Interdisciplinary Research in Computational Algebra Mathematical Institute University of St Andrews St Andrews KY16 9SS Scotland Email: edmund@mcs.st-and.ac.uk Tel: +44 (0)1334 463743 Fax: +44 (0)1334 463748 ---------------------------------------------------------------------- From laurent.bartholdi at epfl.ch Sun Jul 18 16:59:34 2004 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] PhD Position available in EPFL Message-ID: Dear GAPers and PUBers, A position is available for a PhD student in EPFL, Lausanne, starting anytime from the coming October 2004. The candidate will contribute to the development of GAP code handling recursively defined infinite groups -- as a typical example, the infinite, finitely generated torsion groups, of intermediate word-growth, acting on rooted trees and defined by automata. The candidate should therefore have strong interests and knowledge in GAP. The position is available for 3 years. It will include involvement in the department's activities, including some TA work (<= 1 day / week). The salary is roughly 45'000 swiss francs, i.e. 36'000 USD. Knowledge of french is not necessary. If you, or any person you know, is interested, please send relevant information (CV, prior accomplishments in GAP) to me, at Laurent.Bartholdi@epfl.ch Best regards, Laurent -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From joachim.neubueser at math.rwth-aachen.de Mon Jul 19 11:33:26 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] The new GAP web site Message-ID: Dear GAP Forum members, Last Friday Edmund Robertson, as chairman of the GAP Council, has officially announced that a new GAP web site has now replaced the old one and that at least for some initial period, I will try to act as its maintainer. In this letter I will point to some new features of this new web site. First of all I want to emphasize that we, that is Volkmar Felsch and I, have tried to save all the lot of information that had been compiled over the years in the old one. But also this letter is meant as a call for suggestions for further improvements of the web site. The first you will notice when you visit the site at the old place of GAP web sites: http://www.gap-system.org/ is a new outlook, but this is not the main change. More important are a new structure and several new pages with dedicated purpose. 1. The start page. The start page is meant to serve different groups of people: - Newcomers who want to see what GAP is about. For these we say in a few lines of the main text what the GAP system provides, but we also give a brief indication of the 'philosophy' of the GAP project as a cooperative effort. - People who have found the general information interesting enough to have a closer look. For these we provide (on the left side bar) at the top of the 'Quicklinks' a link to 'site structure', linking to an answer to the FAQ 'How is the GAP site organised?', and a link to a 'site map' which depicts the beginnings of the main branches of the navigation tree (I hope you will find this site map generally useful, too). - Experienced users of GAP who just want to go to a particular page. For these we provide among the 'Quicklinks' on the left side bar a few ones that we guess will be often used such as a link to the 'Manual' page giving access to all available manuals including those of 'packages'. 2. The structure of the site. For technical information link to 'site structure'. All pages of the new site have a uniform design with a part of the navigation tree on the left bar and the main branches of the navigation tree in the top bar. Only if you get down to manual pages or the like, these show up without such 'margins'. All references to the old version GAP3 are now collected in a separate branch and all pages of that branch have a (yellow) warning on the top that these refer to GAP3, which for some time now has not been further developed. 3. New features. The main branches of the 'navigation tree' each collect information on particular aspects of the GAP project., e.g. 'Documentation' on all textual material, 'Contacts' on all aspects of contacts between the GAP Group and the users of GAP. In detail: - The page 'Capabilities' and those available through it are meant to help finding quickly if GAP may provide functionality for various areas of discrete mathematics by giving many links to parts of the reference manual as well as to packages. I would be most grateful for suggestions of further helpful links of this kind by colleagues particularly familiar with certain areas. - The branch 'Data libraries' unifies information on the many collections of group theoretical data that are available through GAP. If you have or know of further such collections that might be made available through GAP, please inform us. - Thanks to Frank Luebeck's efforts the pages on all packages are now in a uniform format and give up to date information. - There is a new page 'References' which points to some basic text books on the methods of Computational Group Theory, for which we have often been asked. - There is a page 'Learning' on which we have collected links to material that may help learning GAP. If you have or know of further such material, I would be grateful for suggestions to extend this page. - There is a page 'Teaching' with some links to material on the use of GAP in teaching courses on algebra etc. Here in particular I am pretty certain that more such material (course texts as well as collections of exercises) ought to exist and would be grateful for suggestions to include further links. - There are now uniform search facilities for the web site, the manuals, the Forum Archive and the Bibliography of papers quoting GAP. - The collection of worked-out 'Examples' has been extended and links to private collections of examples, e.g. by Thomas Breuer and Alexander Hulpke have been provided. - Also the collection of material from 'Talks and Preprints' has been extended and reorganised. - A page 'History' that had been promised in several release announcements now collects manual prefaces etc that document the growth of GAP. - Of course we have tried to update all information and to remove obsolete one. If you note remaining outdated statements or any errors, I would be grateful for being alerted to it. While Ed Robertson has already acknowledged the help that several colleagues have given to the making of the new web site, I want to emphasize that also its further maintenance and development will be a cooperative effort: Frank Luebeck will provide the information on the status of packages which from now on by his organisation of package loading etc should be kept much more up to date, Ed Robertson will look after the 'Teaching' and 'Learning' material, and further colleagues from St Andrews, in particular John McDermott and Alan Cain will look after 'Forum Archive' and 'Bibliography'. Last not least I hope for further help by Max Neunhoeffer when needed. He has already provided me with so nice tools for maintaining the web site that I have dared to accept starting the maintenance even though I have five left thumbs on each hand when it comes to work on a terminal. Hoping that you will like the new web site and looking forward to suggestions and constructive criticism, With kind regards Joachim Neubueser ---------------------------------------------------------------------- Prof. em. J. Neubueser LDfM RWTH Aachen Germany From Michael.Hartley at nottingham.edu.my Wed Jul 21 09:19:09 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] large degree permutations Message-ID: Dear Forum, I think I remember reading somewhere in the documentation about how to instruct GAP to store permutations in a manner which requires less memory than the usual method. I need it now since I am trying to do some manipulations on the janko group j3. However, I have hunted high and low but cannot find in the docs what I thought I read earlier. Does anyone know how to solve this problem? Yours, Mike H... From hulpke at math.colostate.edu Wed Jul 21 21:07:34 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] large degree permutations In-Reply-To: Message-ID: <200407212007.i6LK7YEY009215@schur.math.colostate.edu> Dear Michael Hartley, > I think I remember reading somewhere in the documentation about how to > instruct GAP to store permutations in a manner which requires less > memory than the usual method. I need it now since I am trying to do some > manipulations on the janko group j3. However, I have hunted high and low > but cannot find in the docs what I thought I read earlier. You might want to look at section 41.12 -- working with large degree permutation groups. The section is on the web pages at http://www.gap-system.org/Manuals/doc/htm/ref/CHAP041.htm#SECT012 However J3 (degree 6500) is not such a large degree and I'm slightly surprised that memory turns out to be an issue -- feel free to tellk me (if you want privately) about what you are calculating and I can have a look on whether there is somewhere a memory inefficiency. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From brianbec at comcast.net Sun Jul 25 18:44:07 2004 From: brianbec at comcast.net (Brian Beckman) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] ? trouble getting started ? Message-ID: <200407251741.i6PHfvkS004693@gap-system.org> Hello -- I had some trouble understanding Permutations as presented in the tutorial and I wondered whether someone might help me out. I'm working through http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I was able to understand "conjugating" permutations with the "caret" operator, so, for instance, (1,2)^(1,2,3)=(2,3); made sense to me and (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did not make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I expected (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's obviously not the case. I apologize for my ignorance of the subject, but I am attempting to use GAP to learn algebra. So far, I only know of one kind of operation for permutations (that being composition or conjugation) and I couldn't quickly figure out what your multiplication means. I'll continue to play around with it and may possibly find my own answer, but it's humiliating to get frustrated by the very first algebraic operation I attempted here. Regards, Brian Beckman From brianbec at comcast.net Sun Jul 25 19:02:52 2004 From: brianbec at comcast.net (Brian Beckman) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] RE: ? trouble getting started ? Message-ID: <200407251800.i6PI0fkS005079@gap-system.org> I was able to induce from the example that A*B does not mean first apply A, then apply B, then apply A-inverse, or, in conjugation notation, (A ^ B) ^ (A ^ -1). This looked promising at first, since (1,2)*(1,2,3)=((1,2)^(1,2,3))^((1,2)^-1); --> true but ... ooops (1,2,3)*(1,2)=((1,2,3)^(1,2))^((1,2,3)^-1); did not work out. sorry to 'blog' like this. If this is forum abuse just tell me and I will stop. _____ From: Brian Beckman [mailto:brianbec@comcast.net] Sent: Sunday, July 25, 2004 10:44 AM To: forum@mail.gap-system.org Cc: brianbec@comcast.net Subject: ? trouble getting started ? Hello -- I had some trouble understanding Permutations as presented in the tutorial and I wondered whether someone might help me out. I'm working through http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I was able to understand "conjugating" permutations with the "caret" operator, so, for instance, (1,2)^(1,2,3)=(2,3); made sense to me and (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did not make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I expected (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's obviously not the case. I apologize for my ignorance of the subject, but I am attempting to use GAP to learn algebra. So far, I only know of one kind of operation for permutations (that being composition or conjugation) and I couldn't quickly figure out what your multiplication means. I'll continue to play around with it and may possibly find my own answer, but it's humiliating to get frustrated by the very first algebraic operation I attempted here. Regards, Brian Beckman From justin at mac.com Sun Jul 25 19:09:26 2004 From: justin at mac.com (Justin Walker) Date: Fri Apr 8 15:25:42 2005 Subject: [GAP Forum] ? trouble getting started ? In-Reply-To: <200407251741.i6PHfvkS004693@gap-system.org> References: <200407251741.i6PHfvkS004693@gap-system.org> Message-ID: On Jul 25, 2004, at 10:44, Brian Beckman wrote: > Hello -- > > I had some trouble understanding Permutations as presented in the > tutorial > and I wondered whether someone might help me out. > > I'm working through > http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I > was > able to understand "conjugating" permutations with the "caret" > operator, so, > for instance, (1,2)^(1,2,3)=(2,3); made sense to me and > (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out > "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did > not > make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I > expected > (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's > obviously not the case. > > I apologize for my ignorance of the subject, but I am attempting to > use GAP > to learn algebra. Maybe an investment in a book on Algebra (like Rotman's, or Dummit/Foote) will help :=}. > So far, I only know of one kind of operation for > permutations (that being composition or conjugation) Those (composition, conjugation) are actually two kinds of operation. Composition is "apply one, then apply the second", while conjugation is two applications of composition: a^b = bab^(-1) (or b^(-1)ab, depending on your political party). > and I couldn't quickly > figure out what your multiplication means. Multiplication here is (sort of) composition. If you think of multiplication as "apply the left-most first", then your example of (1,2)*(1,2,3) works out to be: 1 -> 2 -> 3 2 -> 1 -> 2 3 -> 3 -> 1 i.e., 2 is left fixed, and 1,3 are transposed, so the result is (1,3). In terms of mappings, multiplication in this setting is "composition in reverse". > I'll continue to play around with > it and may possibly find my own answer, but it's humiliating to get > frustrated by the very first algebraic operation I attempted here. If this is humiliating, don't take up golf :-}. FWIW, you will find that mathematics is a discipline and it requires its own thought patterns. You will get better with practice, but it does take practice. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | "Weaseling out of things is what | separates us from the animals. | Well, except the weasel." | - Homer J Simpson *--------------------------------------*-------------------------------* From brianbec at comcast.net Sun Jul 25 20:13:08 2004 From: brianbec at comcast.net (brianbec@comcast.net) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] ? trouble getting started ? Message-ID: <072520041913.22990.41040644000156E7000059CE22007456720C0A0D020E079D0D@comcast.net> Thanks all for your generous help. Looks like I just had "conjugation" and "composition" backwards in my mind and I'm now "unstuck" :) I've got a book by Fraleigh (http://www.amazon.com/exec/obidos/tg/detail/-/0201763907/qid=1090782562/sr=8-1/ref=pd_ka_1/102-1074212-8968942?v=glance&s=books&n=507846 ). I've read through it (all the way lightly) once, and am now looking forward to being able to plow through the exercises using GAP. I had attempted to use Mathematica for that, but I would have had to create a bunch of support for non-commutative multiplication by overloading operators like Circle-Times and what not, or working with matrix representations ALL the time (yucch). I may be too dumb for algebra, but I'm too smart to try golf -------------- Original message -------------- > > On Jul 25, 2004, at 10:44, Brian Beckman wrote: > > > Hello -- > > > > I had some trouble understanding Permutations as presented in the > > tutorial > > and I wondered whether someone might help me out. > > > > I'm working through > > http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I > > was > > able to understand "conjugating" permutations with the "caret" > > operator, so, > > for instance, (1,2)^(1,2,3)=(2,3); made sense to me and > > (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out > > "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did > > not > > make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I > > expected > > (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's > > obviously not the case. > > > > I apologize for my ignorance of the subject, but I am attempting to > > use GAP > > to learn algebra. > > Maybe an investment in a book on Algebra (like Rotman's, or > Dummit/Foote) will help :=}. > > > So far, I only know of one kind of operation for > > permutations (that being composition or conjugation) > > Those (composition, conjugation) are actually two kinds of operation. > Composition is "apply one, then apply the second", while conjugation is > two applications of composition: a^b = bab^(-1) (or b^(-1)ab, > depending on your political party). > > > and I couldn't quickly > > figure out what your multiplication means. > > Multiplication here is (sort of) composition. If you think of > multiplication as "apply the left-most first", then your example of > (1,2)*(1,2,3) works out to be: > 1 -> 2 -> 3 > 2 -> 1 -> 2 > 3 -> 3 -> 1 > i.e., 2 is left fixed, and 1,3 are transposed, so the result is (1,3). > > In terms of mappings, multiplication in this setting is "composition in > reverse". > > > I'll continue to play around with > > it and may possibly find my own answer, but it's humiliating to get > > frustrated by the very first algebraic operation I attempted here. > > If this is humiliating, don't take up golf :-}. > > FWIW, you will find that mathematics is a discipline and it requires > its own thought patterns. You will get better with practice, but it > does take practice. > > Regards, > > Justin > > -- > Justin C. Walker, Curmudgeon-At-Large * > Institute for General Semantics | "Weaseling out of things is > what > | separates us from the animals. > | Well, except the weasel." > | - Homer J Simpson > *--------------------------------------*-------------------------------* > From justin at mac.com Mon Jul 26 01:56:24 2004 From: justin at mac.com (Justin Walker) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] ? trouble getting started ? In-Reply-To: <072520041913.22990.41040644000156E7000059CE22007456720C0A0D020E079D0D@comcast.net> References: <072520041913.22990.41040644000156E7000059CE22007456720C0A0D020E079D0D@comcast.net> Message-ID: <9DEEB50C-DE9E-11D8-A9F3-00306544D642@mac.com> On Jul 25, 2004, at 12:13, brianbec@comcast.net wrote: > Thanks all for your generous help.? Looks like I just had > "conjugation" and "composition" backwards in my mind and I'm now > "unstuck" :) Glad you're back on track. > I may be too dumb for algebra, but I'm too smart to try golf grin> :-} Cheers, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | It's not whether you win or lose... | It's whether *I* win or lose. *--------------------------------------*-------------------------------* From iqbox_postech at yahoo.com Mon Jul 26 08:15:51 2004 From: iqbox_postech at yahoo.com (Kang ByoungKwan) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Inqury about parallel computing in GAP ? Message-ID: <20040726071551.97016.qmail@web50007.mail.yahoo.com> Dear gap-forum members, I have met a time-consumping problem. So, I want to calculate that problem more faster. So, I have a schedule to use supercomputer. Here, I am wondering whether GAP is supporting parallel computing or not. If you know that, please let me know how I use that. Thank you for your reading. --------------------------------- Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! From costanti at science.unitn.it Mon Jul 26 13:44:09 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Inqury about parallel computing in GAP ? In-Reply-To: <20040726071551.97016.qmail@web50007.mail.yahoo.com> References: <20040726071551.97016.qmail@web50007.mail.yahoo.com> Message-ID: <1090845849.4104fc999298e@www.unitn.it> Dear Kang ByoungKwan and gap-forum members, > Here, I am wondering whether > GAP is supporting parallel computing or not. > If you know that, please let me know how I use that. Yes, GAP suppurts parallel computing, via the package ParGAP; for further information, see http://www.gap-system.org/Packages/pargap.html . Best regards, Marco Costantini From costanti at science.unitn.it Mon Jul 26 14:06:39 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] ? trouble getting started ? In-Reply-To: <200407251741.i6PHfvkS004693@gap-system.org> References: <200407251741.i6PHfvkS004693@gap-system.org> Message-ID: <1090847199.410501df0b5b6@www.unitn.it> Dear Brian Beckman and dear Gap-forum, > I could not figure out > "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did > not > make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I expected > (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's > obviously not the case. You can think the permutations as elements of a opportune permutation group, and the composition of permutation as the group operation. As usually the group operation is called "multiplication" and is denoted by "*", it is natural to call "multiplication" also the composition of permutations, and to use "*" in Gap, where only a limited set of symbols is available. > I apologize for my ignorance of the subject, but I am attempting to use > GAP > to learn algebra. Welcome to using Gap and to learn algebra! Please feel free to ask in case that you need further help. There is the address support@gap-system.org to deal with those topics that are more or less local to you, that is, are likely not of interest to most of the other GAP users. On the other hand, the GAP Forum should be reserved for discussions about problems that are likely to interest many of the GAP users. Best regards, Marco Costantini From joachim.neubueser at math.rwth-aachen.de Wed Jul 28 10:40:19 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] The new GAP web site In-Reply-To: <41001726.3104.1804289383@slu.edu> Message-ID: Dear Julianne, > Joachim, > I have written a lab manual called "Abstract > Algebra with GAP" that contains a series of > exercises to use in a first undergraduate > course in Abstract Algebra. This lab manual > can be found at: > http://euler.slu.edu/Dept/Faculty/rainbolt/manual.html > > Would you like to include a link to this page > from the "teaching" page of the GAP web site? > > Julianne Rainbolt Thank you for sending me this reference. I have added a link to this page on the 'teaching' page of the GAP web site. Have a look if this is as you like it to be. I have included a link to your home page while naming you as an author. If you could send me the link to J.A. Gallian's homepage, I would like also not just to name him but use that link as well. I reply with copy to the GAP Forum because this is where your original letter went and we want to show in the Forum that we try to react to all letters, but further correspondence could then go just to me. Kind regards Joachim Neubueser From kp201120 at zodiac.mimuw.edu.pl Sat Jul 10 11:06:26 2004 From: kp201120 at zodiac.mimuw.edu.pl (Karol Palka) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Fox derivatives In-Reply-To: References: Message-ID: Dear Forum, is it possible to compute the Fox derivatives of a word in GAP ? It's quite important and not very difficult tool in homology theory of finitely presented groups. (Maybe somebody can implement it ?) Karol Palka, Warsaw Univ. From Manel.Velasco at upc.es Thu Jul 29 10:00:17 2004 From: Manel.Velasco at upc.es (Manel Velasco/UPC) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Lie Algebras over Complex field Message-ID: Hi, I would like to know how to create a lie algeba structure over the complex numbres. Is it possile? From costanti at science.unitn.it Thu Jul 29 14:19:47 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Lie Algebras over Complex field In-Reply-To: References: Message-ID: <1091107187.4108f973e0c7f@www.unitn.it> Dear Manel Velasco and Gap forum > I would like to know how to create a lie algeba structure over the > complex numbres. Is it possile? No, it is not possible, but it is possible to do something similar, which could fit your needs. The field of the complex numbers is not supported by Gap, hence it is not possible to create structure over the complex numbers, but there are other field implemented in Gap that could fit your needs: for instance GaussianRationals (the smallest field including the square root of -1), the other cyclotomic fields, and the algebraic extension of the Rarionals. The relevant chapters in the documentation are the following. http://www.gap-system.org/Manuals/doc/htm/ref/CHAP018.htm http://www.gap-system.org/Manuals/doc/htm/ref/CHAP056.htm http://www.gap-system.org/Manuals/doc/htm/ref/CHAP058.htm http://www.gap-system.org/Manuals/doc/htm/ref/CHAP065.htm Once that you have a field, then you can create a Lie algebra structure over this field: see the documentation about Lie algebras at http://www.gap-system.org/Manuals/doc/htm/ref/CHAP061.htm This documentation should also be included in your Gap distribution. Best regards, Marco From tim at timesup.org Thu Jul 1 14:29:23 2004 From: tim at timesup.org (Tim B) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Reading data? Message-ID: <40E3FE9E.3070401@timesup.org> Hi All, this should be a silly question: how do I read in some table of data? I have a file with what is essentially a matrix as space-separated integers, and I would like to get it into GAP as a matrix without having to manually place commas and square brackets in the file. This has to be easy, but I cannot find even the faintest shimmer of a way to make it happen - I cannot even see how to read an integer! Hope someone can help! Cheers, Tim -- -------- ------------------------------------ \ / Tim Boykett mailto:tim@timesup.org \ / TIME'S UP \/ Industriezeile 33 B /\ A-4020 Linz /xx\ ph/fax:+43/732-787804 /xxxx\ http://www.timesup.org -------- ------------------------------------ From joachim.neubueser at math.rwth-aachen.de Fri Jul 30 10:27:29 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Fox derivatives In-Reply-To: Message-ID: Dear Karol Palka You wrote: > Dear Forum, > > is it possible to compute the Fox derivatives of a word in GAP ? > It's quite important and not very difficult tool in homology theory of > finitely presented groups. (Maybe somebody can implement it ?) > > Karol Palka, > Warsaw Univ. This letter to the GAP Forum of July 10 was unfortunately held up until yesterday, because you are not a member of the GAP Forum and so your letter did not get posted automatically to all Forum members but was only found in a revision 'by hand' of mail to the Forum. So independently of the following, may I recommend that you register as a Forum member as explained on the GAP website for future cases. I have yesterday forwarded your letter to Professor Derek Holt at Warwick and got the folowing answer, which I hope will help you. If you have further questions feel free to write either to Professor Holt or to the address gap-support as explained on the GAP website. Kind regards and apologies for the delay, Joachim Neubueser ---------------------------------------------------------------------- I think the (rather easy) function below computes the required Fox derivatives. This is for right actions, however, and it is quite likely that he would prefer it for left actions. Maybe he can adapt it himself? Anyway, let me know if there are any problems. Derek. FoxDerivative := function(F,i,w) ## F should be a free group of rank r, i an integer with 1 <= i <= r, ## and w a word in F. ## The value of the i-th Fox derivative of F on w is returned as a list ## of pairs [k,v] (v in F, k = 1 or -1) representing the element ## sum k * v of the group algebra ZF. local len, er, j, fd; fd := []; len := Length(w); for j in [1..len] do er := ExtRepOfObj(Subword(w,j,j)); if er[1] = i and er[2] = 1 then Add(fd,[1,Subword(w,j+1,len)]); fi; if er[1] = i and er[2] = -1 then Add(fd,[-1,Subword(w,j,len)]); fi; od; return fd; end; ------------------------------------------------------------------------ From Dursun.Bulutoglu at afit.edu Sat Jul 31 21:07:02 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Generating the total number of distinct permutations in the set UG Message-ID: <4CFC110AB744244C824D25E59665956C14159B@ms-afit-04.afit.edu> Dear Gap Forum; I was able to generate two permutation groups U and G in GAP. U has order 480 and G has order 185794560. Let elements of U be u_1, u_2, ...u_480. I am interested in the cosets u_1G, u_2G,...u_480G. I would like to be able to compute the number of distinct such cosets of G. (Here there may be repeated cosets.) I was wondering how I could do this efficiently in GAP. I would very much appreciate the help. Dursun. From Dursun.Bulutoglu at afit.edu Sun Aug 1 00:57:24 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Generating the total number of distinct permutations in the set UG Message-ID: <4CFC110AB744244C824D25E59665956C13DC6F@ms-afit-04.afit.edu> Dear Gap Forum, I solved my problem. The solution is as follows. Group U acts on G by left multiplication sending cosets of G to cosets of G. I am looking for the order of the orbit of G under the action of U. This is simply |U|/(U intersect G). I used the function Intersection in GAP to compute (G intersect U) -----Original Message----- From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org] On Behalf Of Bulutoglu Dursun A Civ AFIT/ENC Sent: Saturday, July 31, 2004 4:07 PM To: forum@gap-system.org Subject: [GAP Forum] Generating the total number of distinct permutations inthe set UG Dear Gap Forum; I was able to generate two permutation groups U and G in GAP. U has order 480 and G has order 185794560. Let elements of U be u_1, u_2, ...u_480. I am interested in the cosets u_1G, u_2G,...u_480G. I would like to be able to compute the number of distinct such cosets of G. (Here there may be repeated cosets.) I was wondering how I could do this efficiently in GAP. I would very much appreciate the help. Dursun. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From costanti at science.unitn.it Sun Aug 1 22:34:10 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Generating the total number of distinct permutations in the set UG In-Reply-To: <4CFC110AB744244C824D25E59665956C14159B@ms-afit-04.afit.edu> References: <4CFC110AB744244C824D25E59665956C14159B@ms-afit-04.afit.edu> Message-ID: <1091396050.410d61d227b84@www.unitn.it> Dear Dursun Bulutoglu and Gap forum, > I was able to generate two permutation groups U and G in GAP. U > has order 480 and G has order 185794560. Let elements of U be u_1, u_2, > ...u_480. I am interested in the cosets > u_1G, u_2G,...u_480G. I would like to be able to compute the number of > distinct such cosets of G. (Here there may be repeated cosets.) I was > wondering how I could do this efficiently in GAP. Try something like the following: I := Intersection( U, G ); rc := RightCosets( G, I ); Length ( rc ); Best regards, Marco Costantini From hulpke at math.colostate.edu Wed Aug 4 03:31:16 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Re: Reading data Message-ID: <200408040231.i742VGTV025316@schur.math.colostate.edu> Dear GAP Forum, Tim Boykett wrote > this should be a silly question: how do I read in > some table of data? I have a file with what is essentially > a matrix as space-separated integers, and I would like > to get it into GAP as a matrix without having to manually > place commas and square brackets in the file. For the case that the data format of the file is both simple and reliable, and that the objects in the file can be understood by GAP --as is the case for a file containing space separated integers-- the following is perhaps the easiest way to import the data. 1. Read the file using StringFile' (see StringFile'' in the GAP documentation); this yields a GAP string. 2. Perform the manipulations you do not want to apply to the file. In the example, normalize the whitespace if necessary (see NormalizeWhitespace'' in the GAP documentation), globally replace the whitespace by commas and --if applicable-- replace line separators by substrings of the form ],[' representing the switch to a new matrix row (see ReplacedString''), and add square brackets around the string (see Concatenation''), such that the string finally has a syntax that GAP understands. 3. Evaluate this string using EvalString' (see EvalString''); this will return the matrix you wanted to get. If the input data does not contain information about the distribution of the entries to rows and columns then the result of step 2. may be a list of all matrix entries. Then you can turn this into a matrix using a command such as List( [ 1 .. nrrows ], i -> list{ [ 1 .. nrcols ] + (i-1)*nrcols } ); where list' is the list of integers, and nrrows' and nrcols' are the matrix dimensions. If the data format is more complicated or not reliable --for example, the numbers of rows and columns of the matrix may be stored in the header of the file, or some missing matrix entries may be marked as ?' or something similar that is not understood by GAP-- then you can read in a text file via streams: stream:=InputTextFile("myfilename"); while not IsEndOfStream(stream) do line:=ReadLine(stream); ... process od; Note that essentially you will be getting strings and will have to cut them apart yourself (for example using SplitString'). You then can use Int' or Rat' to convert a string to a number, and you can catch weird input before GAP signals an error. Also be aware that the strings you get are CR terminated and you might want to clean them up using Chomp'. All the best, Thomas Breuer and Alexander Hulpke From freundt at math.TU-Berlin.DE Sun Aug 8 16:48:04 2004 From: freundt at math.TU-Berlin.DE (Sebastian Freundt) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] segfault after call of FLOAT_STRING Message-ID: Hi list, following occured when investigating the rudiments of the float.c in the gap core. gap> FLOAT_STRING(21); Segmentation Fault The error has been in the core since at least May 2002 (gap4.3r3) and is even in the most recent version of gap. Greets Sebastian From gap at gap.zssm.zp.ua Mon Aug 9 20:11:34 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] 5th International Algebraic Conference in Ukraine (1st Announcement) Message-ID: <605930092.20040809211134@gap.zssm.zp.ua> Dear GAP Forum members, I am forwarding the conference announcement from Odessa. Best wishes, Alexander Konovalov --------------------------------------------------------------------- FIRST ANNOUNCEMENT The 5th International Algebraic Conference in Ukraine will be held on 20-27, July, 2005 in the Odessa I.I. Mechnikov National University. The Conference is organized jointly by the Odessa I.I. Mechnikov National University, Kyiv Taras Shevchenko National University and Institute of Mathematics of National Academy of Sciences of Ukraine. Chairman of Organizing committee of conference - V.A.Smyntyna, rector of ONU; The vice-chairman - Varbanets P.D., the head of the faculty of computer and discrete mathematics ONU. Co-chairmen of Program committee: Kirichenko V.V., Sushchanskij V.I. The conference will include the following topical sections: 1. Rings and Modules; 2. Theory of Groups; 3. Groups and Algebraic Dynamics; 4. Algebraic Geometry, Theory of Representations and Linear algebra; 5. The Analytical and Algebraic Theory of Numbers; 6. Computer Algebra and Discrete Mathematics; 7. Topological Methods in Algebra; 8. Semigroups and Algebraic Systems We plan plenary talks (45 min), section talks (25 min) and short communications (15 min) The official languages of the Conference are Ukraine, Russian and English. Persons interested in participating at the Conference are kindly asked to register by e-mail or by post (see Appendix 1) as well as to send one page abstract in English, which should be prepared in LaTeX (see Appendix 2) both by e-mail and by post till April 15, 2005. At the moment more than 100 algebraists from different countries asked to be included in the mailing list of the Conference. The registration fee is 100 USD (for accompanying persons 50 USD), for participants from the countries of the former Soviet Union the registration fee is 30 USD (for accompanying persons 15 USD). The registration fee is to be paid upon arrival in Odessa. The fee covers organization costs: abstracts, tea/coffee during breaks, and cultural program. The accomodation price in Odessa at the moment is from 20 to 80 USD per night depending on facilities. Further information you can find on the web page of the Conference http://www.imem.odessa.ua/algconf The Organizing Committee will have the opportunity to pre-book rooms in Students Hostel (for interested participants). We regret that travel and daily expenses cannot be paid by the Organizing Committee. For further information or specific requests please contact the Organizing Committee at the below e-mail address algconf@imem.odessa.ua varb@te.net.ua The correspondence should be addressed to: Prof. Dr. P.D. Varbanets Department of Mathematics, Economics and Mechanics Odessa I.I. Mechnikov National University 2 Dvoryanskaya str. 65026 Odessa UKRAINE Tel/Fax: +38 (0482) 23-82-00 Tel: +38 (0482) 68-83-29 Appendix 1 Please, fill in the registration form below in LaTeX and send it to us algconf@imem.odessa.ua or by post First name: _______________________________________________ Other names: _____________________________________________ Birth date: _______________ Citizenship: ____________________ Postal address: ____________________________________________ __________________________________________________________ Institution and affiliation: ___________________________________ __________________________________________________________ Phone/fax number: _________________________________________ __________________________________________________________ E-mail: ___________________________________________________ Talk: I intend to give a lecture/I do not intend to give a lecture Section: ___________________________________________________ Co-authors: _______________________________________________ Title of the talk: ___________________________________________ _________________________________________________________ _________________________________________________________ Additional information: _________________________________________________________ Date of arrival in Odessa: _____________________________________ Accomodation: (please, indicate the type of appartment, hotel rating, and the period for which you intend to stay at the hotel) _________________________________________________________ _________________________________________________________ Appendix 2 Abstracts of the talks will be published before the beginning of the conference. Please send your abstracts composed according to the Latex template below (not to exceed one page) to the email address algconf@imem.odessa.ua before April 15, 2005. \documentclass[12pt]{article} \usepackage{amsmath,amssymb} \pagestyle{empty} \textheight=23.5cm \textwidth=15.7cm \voffset=-0.8cm \hoffset=-1.4cm \sloppy \begin{document} \begin{center} {\LARGE Title} \end{center} \vskip 0.1cm \centerline{\large \large A.~Authors } \vskip 0.7cm The body of the abstract here \medskip \noindent \begin{minipage}[t]{7.5cm} \small{ Your address here } \end{minipage} \end{document} From dutour at liga.ens.fr Fri Jul 30 08:04:11 2004 From: dutour at liga.ens.fr (Mathieu Dutour) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Reading data? In-Reply-To: <40E3FE9E.3070401@timesup.org> References: <40E3FE9E.3070401@timesup.org> Message-ID: <20040730070411.GA51476@orge.ens.fr> On Thu, Jul 01, 2004 at 02:07:58PM +0200, Tim B wrote: > > Hi All, > > this should be a silly question: how do I read in > some table of data? I have a file with what is essentially > a matrix as space-separated integers, and I would like > to get it into GAP as a matrix without having to manually > place commas and square brackets in the file. > > This has to be easy, but I cannot find even the faintest > shimmer of a way to make it happen - I cannot even see how > to read an integer! > > Hope someone can help! > > Cheers, > > Tim Dear Tim, I am confronted with a similar problem very frequently. The solution, which I am using, is to use perl script. So, in your case the script would transform the file 1 2 3 4 5 6 into the file return [[1,2,3],[4,5,6]]; which you can get in GAP by the command TheMat:=ReadAsFunction("fileMat")(); If necessary I will write the script for you, the idea being that every kind of file requires its own script. Hope this help. Mathieu -- Mathieu Dutour Researcher in Math Tel. (+972)2 65 84 103 and Computer Science Fax. (+972)2 56 30 702 Einstein Institute of Mathematics E-mail: Mathieu.Dutour@ens.fr Hebrew University of Jerusalem http://www.liga.ens.fr/~dutour Israel From nicola.sottocornola at wanadoo.fr Fri Aug 13 12:17:16 2004 From: nicola.sottocornola at wanadoo.fr (Nicola SOTTOCORNOLA) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Matrix group Message-ID: <30670450.1092395836723.JavaMail.www@wwinf1002> Dear Gap-forum, I'm trying to study the 80 elements group generated by the matrices A:=[[0,0,0,0,1], [1,0,0,0,0], [0,1,0,0,0], [0,0,1,0,0], [0,0,0,1,0]];; and R:=[[1,0,0,0,0], [0,1,0,0,0], [0,0,1,0,0], [0,0,0,-1,0], [0,0,0,0,-1]];; This group has a normal subgroup H of size 16. H:=MaximalNormalSubgroups(G); [ ] I'd like to study the structure of H. Why I obtain the following error msg? gap> P := PresentationViaCosetTable(H);; Error, first argument must be a group called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Thanks, Nicola From holmespe at for.mat.bham.ac.uk Fri Aug 13 13:12:57 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Matrix group In-Reply-To: <30670450.1092395836723.JavaMail.www@wwinf1002> Message-ID: Nicola, On Fri, 13 Aug 2004, Nicola SOTTOCORNOLA wrote: > This group has a normal subgroup H of size 16. > > H:=MaximalNormalSubgroups(G); > [ ] > The output from this looks like a list of length 1, where the element H[1] group. > I'd like to study the structure of H. Why I obtain the following error msg? > > gap> P := PresentationViaCosetTable(H);; > Error, first argument must be a group called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > You have given it a list, not a group. Try P:=PresentationViaCosetTable(H[1]); Beth From Sergei.Haller at math.uni-giessen.de Fri Aug 13 13:39:28 2004 From: Sergei.Haller at math.uni-giessen.de (Sergei Haller) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Matrix group In-Reply-To: <30670450.1092395836723.JavaMail.www@wwinf1002> References: <30670450.1092395836723.JavaMail.www@wwinf1002> Message-ID: On Fri, 13 Aug 2004, Nicola SOTTOCORNOLA (NS) wrote: NS> H:=MaximalNormalSubgroups(G); NS> [ ] NS> NS> I'd like to study the structure of H. Why I obtain the following error msg? NS> NS> gap> P := PresentationViaCosetTable(H);; NS> Error, first argument must be a group [...] Dear Nicola, this is because H is a list of groups. Please try P := PresentationViaCosetTable(H[1]);; Best wishes, Sergei -- -------------------------------------------------------------------- -?) eMail: Sergei.Haller@math.uni-giessen.de /\\ -------------------------------------------------------------------- _\_V Be careful of reading health books, you might die of a misprint. -- Mark Twain From anvita21 at usa.com Sat Aug 14 16:38:44 2004 From: anvita21 at usa.com (Anvita *) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] a semidirect product Message-ID: <20040814153844.A347D1537C2@ws3-1.us4.outblaze.com> Dear forum, Given a group Q, how can I construct the semidirect Product (Q x Q):Aut(Q), where Aut(Q) acts on Q x Q componentwise? In order to use SemidirectProduct, I need to define the right embedding Aut(Q) -> Aut(Q X Q) in GAP. here is the beginning of my program ------------------------- # Q is given A:=AutomorphismGroup(Q); QQ:=DirectProduct(Q,Q); p1:=Projection(QQ,1); p2:=Projection(QQ,2); e1:=Embedding(QQ,1); e2:=Embedding(QQ,2); L:=List(GeneratorsOfGroup(A), a->[Composition(e1,a,p1),Composition(e2,a,p2)]); ------------------------ Now, for each pair l in L, I need to mutiply the endmorphisms l[1] and l[2] of QQ, but I have not been able to find a suitable GAP function for this. Section 31.5 of the manual mentions "Scalar multiplication of general mappings" but does not say how (or whether) this scalar product is imlemented in GAP. Any help would be very appreciated. Anvita -- ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm From gapforum at mowsey.org Sun Aug 15 04:43:49 2004 From: gapforum at mowsey.org (gapforum@mowsey.org) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Re: a semidirect product Message-ID: I am not sure if this is the best method, but it appears to work well enough. I assume Q is a given group, and then: A:=AutomorphismGroup(Q); QQ:=DirectProduct(Q,Q); p1:=Projection(QQ,1); p2:=Projection(QQ,2); e1:=Embedding(QQ,1); e2:=Embedding(QQ,2); L:=List(GeneratorsOfGroup(A), a-> GroupHomomorphismByImages(QQ,QQ, GeneratorsOfGroup(QQ), List(GeneratorsOfGroup(QQ),g-> Image(CompositionMapping(e1,a,p1),g)* Image(CompositionMapping(e2,a,p2),g)))); AA:=Group(L); HH:=SemidirectProduct(AA,QQ); From stefano.simonucci at tin.it Mon Aug 23 11:37:53 2004 From: stefano.simonucci at tin.it (Stefano Simonucci) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Convolutive algebra over a finite group Message-ID: <4129C901.5030907@tin.it> Hi! I have known that the irreducible representations of a finite group is related to the ideals of a convolutive algebra over the group. I don't know if it is possible to build this algebra, starting from the structure of the group, by means of GAP. Thank you Stefano From pbrooksb at bucknell.edu Mon Aug 23 19:14:14 2004 From: pbrooksb at bucknell.edu (Brooksbank) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] using GAP on windows Message-ID: Dear Forum I have questions that are more about operating systems than GAP, but maybe someone can help. I am about to introduce GAP to the students in my algebra class, and the tech people at my college installed the system on a collection of windows machines in one of our computer labs. In the past, I have only installed and used GAP on Linux machines, and I'm having trouble both logging GAP sessions to external files, and reading external files into a GAP system. The LogTo() command results in an error. The problem with the Read() command is that I don't seem to be able to save files inside the "gap4r4" folder or any of its subfolders. Are the two problems related? Is it that permissions to write files to the "gap4r4" folder need to be set by system administrators? I'd be most grateful if anyone can answer these specific questions and/or have suggestions/tips for using GAP on windows. Best Regards, Peter Brooksbank From qphysics at yahoo.com Tue Aug 24 04:15:20 2004 From: qphysics at yahoo.com (J.F. Huesman) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] using GAP on windows In-Reply-To: Message-ID: <20040824031520.77628.qmail@web51608.mail.yahoo.com> While I am sure there will be more constructive answers, my suggestion would be to ask your IT people to install Cygwin on the windows machines. I run Cygwin on every windows computer I own, NT, 98SE, and XP OS's. A symbolic link gap -> "install directory"/bin/gap.bat and you're up and running. Best luck to you, J.F. Huesman --- Brooksbank wrote: > > Dear Forum > > I have questions that are more about operating systems than GAP, but maybe > someone can help. I am about to introduce GAP to the students in my algebra > class, and the tech people at my college installed the system on a > collection of windows machines in one of our computer labs. In the past, I > have only installed and used GAP on Linux machines, and I'm having trouble > both logging GAP sessions to external files, and reading external files > into a GAP system. The > > LogTo() > > command results in an error. The problem with the > > Read() > > command is that I don't seem to be able to save files inside the "gap4r4" > folder or any of its subfolders. Are the two problems related? Is it that > permissions to write files to the "gap4r4" folder need to be set by system > administrators? > > I'd be most grateful if anyone can answer these specific questions and/or > have suggestions/tips for using GAP on windows. > > Best Regards, > > Peter Brooksbank > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From mschaps at macs.biu.ac.il Wed Aug 25 11:10:38 2004 From: mschaps at macs.biu.ac.il (Prof. Malka Schaps) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] P/G/L/V/ext names in Character Table Library Message-ID: Dear gap-forum, I am a heavy user of the 1129 character tables which are in the character table library, and most of the groups are easily identified from the names that occur in LIBLIST.firstnames[i], but I am having difficulty with names like P21/G2/L1/V1/ext2. I have figured out that this is probably of the form 2^r:G, where G is a permutation group, often A_n or perhaps S_n. Is there a way to decipher this from the name? Is there a list somewhere which translates these names? I need this for my database of blocks of defect 2, which I would like to make as transparent as possible, and also for a student whose is trying to determine which blocks are obtained from others by Clifford theory. Here is the data base address for the prime 3, which shows which groups are important to us. The database was prepared in GAP. http://www.cs.biu.ac.il/~mschaps/SortAt_3.html Sincerely, Mary Schaps From mschaps at macs.biu.ac.il Wed Aug 25 12:15:25 2004 From: mschaps at macs.biu.ac.il (Prof. Malka Schaps) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] more names of character tables Message-ID: Dear forum, With regard to our previous query about how to decipher names of the form P21/G1/L1/V1/ext2, we are also interested in names of the form PnLm and mo81. The URL of the database in which we used these names was written incorrectly. It should have been http://www.cs.biu.ac.il/~mschaps/BLOCKSTEMP/SortAt_3.html Thanks, Mary Schaps From wdj at usna.edu Thu Jul 15 13:19:06 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] [Fwd: Fundamental domains for Shimura curves] Message-ID: <40F676BE.20102@usna.edu> Hello GAP People: Forwarded FYI. - David Joyner From thomas.breuer at math.rwth-aachen.de Fri Aug 27 16:33:24 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Re: P/G/L/V/ext names in Character Table Library Message-ID: Dear GAP Forum, Mary Schaps asked for an interpretation of character table names such as P21/G2/L1/V1/ext2'. Most of the tables with such names are contained (in CAS format, with the same names) in the microfiches that are a part of the book Perfect Groups'', by D. Holt and W. Plesken. The underlying groups are factor groups of space groups, specifically, they are downward extensions of finite integral matrix groups (point groups)$G$with abelian groups of the form$L/n L$, where$L$is a sublattice of the natural Z-lattice on which$G$acts, and$n$is a positive integer. Each name is of the form P/G/L/V/ext', where is the number of the isomorphism type of the point group$G$, say, in the list in Section 6.2 of the book (so P21' means the alternating group on six points), distinguishes the integral matrix representations of$G$, and distinguish the sublattices$L$and the vector systems$V$(see the tables in Chapter 6 of the book), and is the positive integer$n$such that the character table is that of the extension of$G$by the reduction mod$n$of the sublattice. The appendix of the book contains a list of the tables on the microfiches, for example the table with the name P21/G2/L1/V1/ext2' occurs in line -6 on p. 358 of the book. (By the way, recently I found an error in the table with the name P12/G1/L2/V1/ext2'; this will be corrected with the next release of the GAP Character Table Library.) Mary Schaps also asked for the character table names of the forms PL' and mo81'. These names stem from the CAS library of character tables. Names of the first form denote certain parabolic subgroups of linear groups. For example, 'P1L62' denotes 2^5:L5(2) < L6(2), 'P1L72' denotes 2^6:L6(2) < L7(2), and 'P1L82' denotes 2^7:L7(2) < L8(2). The InfoText' value of the table mo81' says origin: CAS library, names:=mo81; m8[1] order: 2^13.3^2.5.7 = 2,580,480 number of classes: 64 source:dye, r.h. the classes and characters of certain maximal and other subgroups of o 2n+2(2) ann.mat.pura appl.(4) 107 (1975), 13-47 comments:semidirect product of an elementary abelian group of order 2^6 and o6, table blown up using cas-system tests: 1.o.r., pow[2,3,5,7] In ATLAS notation, one would call this table 2^6:S8', the group is a maximal subgroup of O8+(2).2', see p. 85 of the ATLAS of Finite Groups. I hope this helps, Thomas From amahalan at fau.edu Sat Aug 28 23:31:01 2004 From: amahalan at fau.edu (Ayan Mahalanobis) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] problem with installation Message-ID: <413107A5.4020609@fau.edu> Hi, I am having some problem with installing gap in linux. I installed gap before and it went without a glich. This time it is different. :( I am inside the deirectory /usr/local/gap4r4> and the followiing commands are exercised. sx084k5:/usr/local/gap4r4 # ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking whether make sets$(MAKE)... no configure: creating ./config.status config.status: creating Makefile config.status: creating sysinfo.gap config.status: creating bin/gap.sh make bash: make: command not found sx084k5:/usr/local/gap4r4 # ls . config.log doc lib prim sysinfo.gap .. config.status etc Makefile README sysinfo.in bin configure gap.shi Makefile.in small trans cnf description3 grp pkg src tst I have no idea what is going on. any help will be highly appreciated. Ayan From marcus at math.uic.edu Sun Aug 29 00:02:56 2004 From: marcus at math.uic.edu (marcus@math.uic.edu) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] amahalan@fau.edu: problem with installation Message-ID: <20040828230256.GA2504@math.uic.edu> You need to install make. You're probabally using some Redhat-like distribution such as Fedora or Suse, no? I don't use Redhat, but from what I understand, Redhat users install software as follows. You go to www.rpmfind.net and search for make.rpm. Install it into your /tmp directory, and type cd /tmp su (type root password) rpm -Uvh make.rpm Alternatly, you dig out the disks that your operating system came on and install make via whatever installation program you find in the start menu. Good luck, -marcus ----- Forwarded message from Ayan Mahalanobis ----- From: Ayan Mahalanobis To: forum@gap-system.org Cc: Subject: [GAP Forum] problem with installation X-BeenThere: forum@mail.gap-system.org X-Mailman-Version: 2.1.4 List-Id: The GAP Forum mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hi, I am having some problem with installing gap in linux. I installed gap before and it went without a glich. This time it is different. :( I am inside the deirectory /usr/local/gap4r4> and the followiing commands are exercised. sx084k5:/usr/local/gap4r4 # ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for gcc... gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking whether make sets $(MAKE)... no configure: creating ./config.status config.status: creating Makefile config.status: creating sysinfo.gap config.status: creating bin/gap.sh make bash: make: command not found sx084k5:/usr/local/gap4r4 # ls . config.log doc lib prim sysinfo.gap .. config.status etc Makefile README sysinfo.in bin configure gap.shi Makefile.in small trans cnf description3 grp pkg src tst I have no idea what is going on. any help will be highly appreciated. Ayan _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum ----- End forwarded message ----- -- "Live free() or die()" -The openMosix HOWTO From laurent.bartholdi at epfl.ch Mon Aug 30 15:23:23 2004 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] enumerator for magmas Message-ID: hi, probably something easy to add, but inexistent in my version: gap> Enumerator(FreeGroup(2)){[1..2]}; [ , f1 ] gap> Enumerator(FreeMagma(2)){[1..2]}; ... runs forever. best, laurent -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From thomas.breuer at math.rwth-aachen.de Mon Aug 30 16:53:56 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Convolutive algebra over a finite group Message-ID: Dear GAP Forum, Stefano Simonucci asked > I have known that the irreducible representations of a finite group is > related to the ideals of a convolutive algebra over the group. > I don't know if it is possible to build this algebra, starting from the > structure of the group, by means of GAP. I am not sure whether Stefano means the group algebra, but this is closely related to the representations of a group is the group algebra. The GAP library contains basic support for creating group algebras, see section GroupRing'' in the GAP Reference Manual, for example http://www.gap-system.org/Manuals/doc/htm/ref/CHAP063.htm'. Special functions for group rings can be found in the GAP package laguna'', see http://www.gap-system.org/Packages/laguna.html'. For questions concerning the centre of a group algebra, also the character theory stuff in GAP may be of interest, see chapter Character Tables'' in the GAP Reference Manual, for example http://www.gap-system.org/Manuals/doc/htm/ref/CHAP069.htm'. All the best, Thomas Breuer From stefano.simonucci at tin.it Tue Aug 31 07:21:40 2004 From: stefano.simonucci at tin.it (Stefano Simonucci) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Re: reply to GAP forum question In-Reply-To: References: Message-ID: <1093933300.3784.20.camel@debsim.localnet> On Mon, 2004-08-30 at 18:21, Paul Eric Becker wrote: > Date: Mon, 30 Aug 2004 12:14:52 -0400 (EDT) > From: Paul Eric Becker > To: stefano.simonucki@tin.it > Subject: GAP forum qutestion > > Stefano: > > I have been doing a little work with group algebras and irreducible > representations using GAP. I may be able to answer some of your > questions: > I have the problem to find the invariant subspaces of a representation of a group. With the table of the character of the group I can construct a projector onto a subspace relative to a particular irreducible representation. But I must also find the decomposition (in invariant subspaces) of an external product of invariant subspaces. I think that it is not possible only with the table of the characters of the group. I think that if I can find all the minimal ideals of the algebra of the group I can also find the decomposition (in irreducile representations) of the external product of irreducible representations. Do you know if this is possible? Thank you From laurent.bartholdi at epfl.ch Tue Aug 31 13:07:51 2004 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] bases of vector spaces Message-ID: hi, this is maybe not a bug, but seems very strange behaviour to me: gap> GF(2)^100; ( GF(2)^100 ) gap> Basis(last); CanonicalBasis( ( GF(2)^100 ) ) gap> VectorSpace(GF(2),last); gap> Basis(last); SemiEchelonBasis( , ... ) gap> VectorSpace(GF(2),last); gap> Basis(last); Basis( , ... ) gap> VectorSpace(GF(2),last); user interrupt at i := i + 1; ... and GAP runs till it exhausts memory. if instead of VectorSpace(GF(2),last) i used VectorSpace(GF(2),Elements(last)) there is no problem. best, laurent -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From stefano.simonucci at tin.it Tue Aug 31 18:06:17 2004 From: stefano.simonucci at tin.it (Stefano Simonucci) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Convolutive algebra over a finite group In-Reply-To: References: Message-ID: <1093971977.5759.16.camel@debsim.localnet> On Mon, 2004-08-30 at 17:53, Thomas Breuer wrote: > I am not sure whether Stefano means the group algebra, > but this is closely related to the representations > of a group is the group algebra. > > The GAP library contains basic support for creating group algebras, > see section GroupRing'' in the GAP Reference Manual, > for example http://www.gap-system.org/Manuals/doc/htm/ref/CHAP063.htm'. > Special functions for group rings can be found in the GAP package laguna'', > see http://www.gap-system.org/Packages/laguna.html'. > > For questions concerning the centre of a group algebra, > also the character theory stuff in GAP may be of interest, > see chapter Character Tables'' in the GAP Reference Manual, > for example http://www.gap-system.org/Manuals/doc/htm/ref/CHAP069.htm'. > > All the best, > Thomas Breuer > > I have resolved my problem by means of your suggestions. For example gap> A:=Group((1,2),(1,3)); Group([ (1,2), (1,3) ]) gap> B:=GroupRing(Rationals,A); gap> dd:=DirectSumDecomposition(B); [ , (1 generators)>, , (1 generators)>, , (1 generators)> ] gap> List(dd,Dimension); [ 1, 1, 4 ] gap> List(dd,Basis); [ Basis( , (dimension 1)>, [ (1)*()+(-1)*(2,3)+(-1)*(1,2)+(1)*(1,2,3)+(1)*(1,3,2)+(-1)*(1,3) ] ), Basis( , (dimension 1)>, [ (1)*()+(1)*(2,3)+(1)*(1,2)+(1)*(1,2,3)+(1)*(1,3,2)+(1)*(1,3) ] ), Basis( , (dimension 4)>, [ (1)*()+(-1/2)*(1,2,3)+(-1/2)*(1,3,2), (1)*(2,3)+(-2)*(1,2)+(1)*(1,3), (1)*(1,2)+(-1)*(1,3), (1)*(1,2,3)+(-1)*(1,3,2) ] ) ] Thank you best, Stefano From gap at gap.zssm.zp.ua Tue Aug 31 20:32:09 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] using GAP on windows In-Reply-To: References: Message-ID: <833359071.20040831213209@gap.zssm.zp.ua> Dear Peter Brooksbank and GAP Forum, I believe that this problem is actually caused by permissions. There are several ways of resolving it. The idea to grant all users full access to the gap4r4 directory do will work, but it may be not compatible with current permission policy implemented by system administrators of your organisation. The clean approach depends on the way how you launch GAP. If you are using gap4r4\bin\gap.bat or gap4r4\bin\gaprxvt.bat batch files, than you may copy this files to your "home" folder, i.e. any local folder where you have full access, and then start GAP using these batch files. Then you will be able to read from and write to this directory. You may also create shortcuts pointing to *these* files on the desktop or in the main menu. If you prefer to use shortcuts, than you should change the working directory in the shortcut properties to the desired directory where you have full access rights. Alternatively, you may create new shortcuts as it was explained in the previous paragraph. Note that changing gap4r4\bin\gap.bat you can also modify other parameters, like initial amount of memory, etc. Hope this helps. Sincerely yours, Alexander Konovalov On Monday, August 23, 2004 at 8:14:14 PM Brooksbank wrote: > Dear Forum > I have questions that are more about operating systems than GAP, but maybe > someone can help. I am about to introduce GAP to the students in my algebra > class, and the tech people at my college installed the system on a > collection of windows machines in one of our computer labs. In the past, I > have only installed and used GAP on Linux machines, and I'm having trouble > both logging GAP sessions to external files, and reading external files > into a GAP system. The > LogTo() > command results in an error. The problem with the > Read() > command is that I don't seem to be able to save files inside the "gap4r4" > folder or any of its subfolders. Are the two problems related? Is it that > permissions to write files to the "gap4r4" folder need to be set by system > administrators? > I'd be most grateful if anyone can answer these specific questions and/or > have suggestions/tips for using GAP on windows. > Best Regards, > Peter Brooksbank > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From thomas.breuer at math.rwth-aachen.de Thu Sep 2 09:06:04 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] bases of vector spaces Message-ID: Dear GAP Forum, Laurent Bartholdi wrote > hi, > this is maybe not a bug, but seems very strange behaviour to me: > > gap> GF(2)^100; > ( GF(2)^100 ) > gap> Basis(last); > CanonicalBasis( ( GF(2)^100 ) ) > gap> VectorSpace(GF(2),last); > > gap> Basis(last); > SemiEchelonBasis( , ...= > ) > gap> VectorSpace(GF(2),last); > > gap> Basis(last); > Basis( , ... ) > gap> VectorSpace(GF(2),last); > user interrupt at > i :=3D i + 1; > =2E.. > and GAP runs till it exhausts memory. if instead of > VectorSpace(GF(2),last) i used VectorSpace(GF(2),Elements(last)) ther= > e is > no problem. > > best, laurent Sure this is a bug. And this is the problem behind the message. gap> v1:= GF(2)^100;; b1:= Basis( v1 ); CanonicalBasis( ( GF(2)^100 ) ) gap> IsMatrix( b1 ); true gap> v2:= VectorSpace( GF(2), b1 );; b2:= Basis( v2 ); SemiEchelonBasis( , ... ) gap> IsMatrix( b2 ); false The method that is used to create the basis b2' did not store that the basis is a matrix. This information would be needed for the creation of the next vector space. This bug will be fixed with the next bugfix. For the moment, reading the following piece of code will help. InstallMethod( SemiEchelonBasis, "for Gaussian row space", [ IsGaussianRowSpace ], function( V ) local B, gens; B:= Objectify( NewType( FamilyObj( V ), IsFiniteBasisDefault and IsSemiEchelonized and IsSemiEchelonBasisOfGaussianRowSpaceRep ), rec() ); gens:= GeneratorsOfLeftModule( V ); if IsEmpty( gens ) or ForAll( gens, IsZero ) then SetIsEmpty( B, true ); else SetIsRectangularTable( B, true ); fi; SetUnderlyingLeftModule( B, V ); return B; end ); All the best, Thomas From thomas.breuer at math.rwth-aachen.de Fri Sep 3 17:42:31 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Re: reply to GAP forum question Message-ID: Dear GAP Forum, Laurent Bartholdi had asked for a special Enumerator' method for free magmas. The GAP code below provides this. All the best, Thomas ############################################################################# ## #M Enumerator( ) . . . . . . . . . . . . . . enumerator for a free magma ## BindGlobal( "CATALAN", [ 1 ] ); BindGlobal( "Catalan", function( n ) if not IsBound( CATALAN[n+1] ) then CATALAN[n+1]:= Binomial( 2*n, n ) / ( n+1 ); fi; return CATALAN[n+1]; end ); BindGlobal( "ElementNumber_FreeMagma", function( enum, nr ) local WordFromInfo, n, l, summand, NB, q, p; # Create the external representation (recursively). WordFromInfo:= function( N, l, p, q ) local k, NB, summand, Nk, p1, p2, q1, q2;; if l = 1 then return p; fi; k:= 0; while 0 < q do k:= k+1; NB:= Catalan( l-k-1 ); summand:= Catalan( k-1 ) * NB; q:= q - summand; od; q:= q + summand; Nk:= N^k; p1:= p mod Nk; if p1 = 0 then p1:= Nk; fi; p2:= ( p - p1 ) / Nk + 1; q2:= q mod NB; if q2 = 0 then q2:= NB; fi; q1:= ( q - q2 ) / NB + 1; return [ WordFromInfo( N, k, p1, q1 ), WordFromInfo( N, l-k, p2, q2 ) ]; end; n:= enum!.nrgenerators; l:= 0; while 0 < nr do NB:= Catalan( l ); l:= l+1; summand:= n^l * NB; nr:= nr - summand; od; nr:= nr + summand; q:= nr mod NB; if q = 0 then q:= NB; fi; p:= ( nr - q ) / NB + 1; return ObjByExtRep( enum!.family, WordFromInfo( n, l, p, q ) ); end ); BindGlobal( "NumberElement_FreeMagma", function( enum, elm ) local WordInfo, n, info, pos, i; if not IsCollsElms( FamilyObj( enum ), FamilyObj( elm ) ) then return fail; fi; # Analyze the structure (recursively). WordInfo:= function( ngens, obj ) local info1, info2, N; if IsInt( obj ) then return [ ngens, 1, obj, 1 ]; else info1:= WordInfo( ngens, obj[1] ); info2:= WordInfo( ngens, obj[2] ); N:= info1[2] + info2[2]; return [ ngens, N, info1[3]+ ngens^info1[2] * ( info2[3]-1 ), Sum( List( [ 1 .. info1[2]-1 ], i -> Catalan( i-1 ) * Catalan( N-i-1 ) ), 0 ) + ( info1[4] - 1 ) * Catalan( info2[2]-1 ) + info2[4] ]; fi; end; # Calculate the length, the number of the corresponding assoc. word, # and the number of the bracketing. n:= enum!.nrgenerators; info:= WordInfo( n, ExtRepOfObj( elm ) ); # Compute the position. pos:= 0; for i in [ 1 .. info[2]-1 ] do pos:= pos + n^i * Catalan( i-1 ); od; return pos + ( info[3] - 1 ) * Catalan( info[2]-1 ) + info[4]; end ); InstallMethod( Enumerator, "for a free magma", [ IsWordCollection and IsWholeFamily and IsMagma ], function( M ) # A free associative structure needs another method. if IsAssocWordCollection( M ) then TryNextMethod(); fi; return EnumeratorByFunctions( M, rec( ElementNumber := ElementNumber_FreeMagma, NumberElement := NumberElement_FreeMagma, family := ElementsFamily( FamilyObj( M ) ), nrgenerators := Length( ElementsFamily( FamilyObj( M ) )!.names ) ) ); end ); From sal at dcs.st-and.ac.uk Sun Sep 19 23:57:22 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Fw: help with permutation groups Message-ID: <20040919235722.798e6692@caolila.dcs.st-and.ac.uk> This was sent to the old address: Begin forwarded message: Date: Sun, 19 Sep 2004 18:31:31 -0400 From: Ayan Mahalanobis To: gap-forum@dcs.st-and.ac.uk Subject: help with permutation groups Hello all, I need some help working with permutation group. I am working with the schreier-sims algorithm as implemented in GAP. I am usin StabChain to create a record for the group (as I understand it right now). Then say I want to create a random element of the group. I want to proceed in the folowing way, pick an random coset and then a coset representative of G_{i+1} in G_i for each i and multiply them. Also suppose I have a element g of the group and I want to do a constructive membership testing, i.e. I want to find the word in stab chain representing g. I think the information is there hiding in the record. Can some one please point me to the right direction. Thanks in advance Ayan -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From anvita21 at usa.com Thu Sep 23 23:13:56 2004 From: anvita21 at usa.com (Anvita ) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] -1 in [1..2] Message-ID: <20040923221356.6BC821537C2@ws3-1.us4.outblaze.com> Dear Forum, I have run into the following peculiar behavior of GAP: ---------------------------------------------------- gap> -1 in [1..2]; true gap> Position([1..2],-1); -1 ---------------------------------------------------- On the other hand: ---------------------------------------------------- gap> l:=[1..2];; gap> l[-1]; List Element: must be positive (not a -1) ---------------------------------------------------- Is it supposed to be this way? Thank you Anvita P.S. I am using GAP version 4.4.3 -- ___________________________________________________________ Sign-up for Ads Free at Mail.com http://promo.mail.com/adsfreejump.htm From alireza_abdollahi at yahoo.com Sat Sep 25 13:16:36 2004 From: alireza_abdollahi at yahoo.com (Alireza Abdollahi) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Semisimple group In-Reply-To: <20040923221356.6BC821537C2@ws3-1.us4.outblaze.com> Message-ID: <20040925121636.38738.qmail@web51109.mail.yahoo.com> Dears, I need to compute all "semisimple" subgroups (up to isomorphism) of the direct product of seven SymmetricGroup(10). I mean by a semisimple group, a group which contains no non-trivial normal abelian subgroup. (we know that if$G$is a finite semisimple group and$R$is the socle of$G$, then$R\leq G\leq Aut(R)$. Does there exist an "ad hoc" way for solving this problem? Any information is appreciated. All the best Alireza Abdollahi ===== Alireza Abdollahi Assistant Professor, (Dr.) Department of Mathematics University of Isfahan, Isfahan 81744,Iran e-mail: abdollahi@member.ams.org a.abdollahi@math.ui.ac.ir URL: http://sci.ui.ac.ir/math/New/abdollahi1.htm __________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! http://promotions.yahoo.com/new_mail From hulpke at math.colostate.edu Sat Sep 25 16:29:21 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:43 2005 Subject: [GAP Forum] Re: Semisimple groups Message-ID: <200409251529.i8PFTLZJ005349@schur.math.colostate.edu> Dear GAP-Forum, Alireza Abdollahi wrote: > I need to compute all "semisimple subgroups" (up to > isomorphism) of the direct product of seven > SymmetricGroup(10). > (By a semisimple group I mean a finite non-trivial > group which contains no non-trivial abelian normal > subgroup.) > > Does anyone know an "ad hoc" way to compute all such > subgroups with GAP? I think the image under each projection on on of the 7 copies of S_10 has to be semisimple again. Thus you are looking for iterated subdirect products of 7 groups, each of which is a semisimple subgroup of S10. There is no built-in function for this, however the appended code forms subdirect products of two groups (some of the resulting groups are still isomorphic!). On could try to iterate it to get 7 copies, but this is likely to take very long and might be memory intensive. For example, this would be the calculation for S_5^3: g:=SymmetricGroup(5); d:=DirectProduct(g,g); semi:=[g,DerivedSubgroup(g)]; # list of all semisimple subgroups of S5 semi2:=AllSubdirectProducts(d,semi,semi); # semisimple subgroups of S5xS5 Now add 3rd copy: d3:=DirectProduct(d,g); semi3:=AllSubdirectProducts(d3,semi2,semi); However S_10^7 is rather large -- I have not tried how far this approach would go. Also at each step you might want to weed out isomorphic groups by hand before proceeding. I hope this is of help, Alexander Hulpke PS: As the question was sent three days ago to gap-trouble and now has been sent again to the Forum (thus the public reply) let me add the note that while we will try to respond to every question all of us have other duties besides of answering questions -- sometimes it might take a week or two to respond. Please exercise some patience! -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke AllSubdirectProducts:=function(d,l1,l2) local prd, e1, e2, n, m, nate, gf, natf, iso, au, t, gens, g, h, e, f, rep; prd:=[]; e1:=Embedding(d,1); e2:=Embedding(d,2); # run through all pairs of groups for g in l1 do for h in l2 do n:=NormalSubgroups(g); m:=NormalSubgroups(h); # run through all pairs of normal subgroups for e in n do nate:=NaturalHomomorphismByNormalSubgroup(g,e); gf:=Image(nate,g); for f in m do if Index(h,f)=Index(g,e) then natf:=NaturalHomomorphismByNormalSubgroup(h,f); iso:=IsomorphismGroups(gf,Image(natf,h)); if iso<>fail then # run through all isomorphisms between the factors modulo # inner au:=AutomorphismGroup(gf); t:=RightTransversal(au,InnerAutomorphismsAutomorphismGroup(au)); for rep in t do # form product gens:=Concatenation( List(GeneratorsOfGroup(e),i->Image(e1,i)), List(GeneratorsOfGroup(f),i->Image(e2,i)), List(GeneratorsOfGroup(g), i->Image(e1,i)* Image(e2,PreImagesRepresentative(natf, Image(iso,Image(rep,Image(nate,i)))) ))); gens:=Group(gens,One(d)); Print("found :",Size(e)," ",Size(f),"->",Size(gens),"\n"); Add(prd,gens); od; fi; fi; od; od; od; od; return prd; end; g:=SymmetricGroup(5); d:=DirectProduct(g,g); semi:=[g,DerivedSubgroup(g)]; From dfh at maths.warwick.ac.uk Sat Sep 25 18:15:47 2004 From: dfh at maths.warwick.ac.uk (Derek Holt) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Re: Semisimple groups In-Reply-To: <200409251529.i8PFTLZJ005349@schur.math.colostate.edu> References: <200409251529.i8PFTLZJ005349@schur.math.colostate.edu> Message-ID: <20040925171547.GA8515@maths.warwick.ac.uk> Dear GAP-Forum, On Sat, Sep 25, 2004 at 09:29:21AM -0600, Alexander Hulpke wrote: > Dear GAP-Forum, > > Alireza Abdollahi wrote: > > > I need to compute all "semisimple subgroups" (up to > > isomorphism) of the direct product of seven > > SymmetricGroup(10). > > (By a semisimple group I mean a finite non-trivial > > group which contains no non-trivial abelian normal > > subgroup.) > > > > Does anyone know an "ad hoc" way to compute all such > > subgroups with GAP? > > I think the image under each projection on on of the 7 copies of S_10 has to > be semisimple again. Thus you are looking for iterated subdirect products > of 7 groups, each of which is a semisimple subgroup of S10. I think this is going to be a horrendously difficult problem! It would not be impossible to write down the possible socles of the semisimple subgroups of (S10)^7, and then one could classify the semisimple groups according to their socle. Possibly the most difficult of these subcases is groups with socle (A5)^14 (14 copies of A5). Such groups G satisfy (A5)^14 < G < (S5 wr C2)^7, where the quoteint group (S5 wr C2)^7/(A5)^14 is isomorphic to the direct product (D8)^7 of 7 copies of the dihedral group of order 8. So to get isomorphism classes of the possible G, I think one needs to find representatives of the subgroups of (D8)^7 under the action of S7 permuting the direct factors of (D8)^7. This would seem to be very difficult - (D8)^7 has one heck of a lot so subgroups! Derek Holt. > There is no built-in function for this, however the appended code forms > subdirect products of two groups (some of the resulting groups are still > isomorphic!). > > On could try to iterate it to get 7 copies, but this is likely to take very > long and might be memory intensive. > > For example, this would be the calculation for S_5^3: > > g:=SymmetricGroup(5); > d:=DirectProduct(g,g); > semi:=[g,DerivedSubgroup(g)]; # list of all semisimple subgroups of S5 > semi2:=AllSubdirectProducts(d,semi,semi); # semisimple subgroups of S5xS5 > > Now add 3rd copy: > > d3:=DirectProduct(d,g); > semi3:=AllSubdirectProducts(d3,semi2,semi); > > However S_10^7 is rather large -- I have not tried how far this approach > would go. Also at each step you might want to weed out isomorphic groups by > hand before proceeding. > > I hope this is of help, > > Alexander Hulpke > > PS: As the question was sent three days ago to gap-trouble and now has been > sent again to the Forum (thus the public reply) let me add the note that > while we will try to respond to every question all of us have other duties > besides of answering questions -- sometimes it might take a week or two to > respond. Please exercise some patience! > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > AllSubdirectProducts:=function(d,l1,l2) > local prd, e1, e2, n, m, nate, gf, natf, iso, au, t, gens, g, h, e, f, rep; > prd:=[]; > e1:=Embedding(d,1); > e2:=Embedding(d,2); > # run through all pairs of groups > for g in l1 do > for h in l2 do > n:=NormalSubgroups(g); > m:=NormalSubgroups(h); > # run through all pairs of normal subgroups > for e in n do > nate:=NaturalHomomorphismByNormalSubgroup(g,e); > gf:=Image(nate,g); > for f in m do > if Index(h,f)=Index(g,e) then > natf:=NaturalHomomorphismByNormalSubgroup(h,f); > iso:=IsomorphismGroups(gf,Image(natf,h)); > if iso<>fail then > # run through all isomorphisms between the factors modulo > # inner > au:=AutomorphismGroup(gf); > t:=RightTransversal(au,InnerAutomorphismsAutomorphismGroup(au)); > for rep in t do > # form product > gens:=Concatenation( > List(GeneratorsOfGroup(e),i->Image(e1,i)), > List(GeneratorsOfGroup(f),i->Image(e2,i)), > List(GeneratorsOfGroup(g), > i->Image(e1,i)* > Image(e2,PreImagesRepresentative(natf, > Image(iso,Image(rep,Image(nate,i)))) ))); > gens:=Group(gens,One(d)); > Print("found :",Size(e)," ",Size(f),"->",Size(gens),"\n"); > Add(prd,gens); > od; > fi; > fi; > od; > od; > od; > od; > return prd; > end; > > g:=SymmetricGroup(5); > d:=DirectProduct(g,g); > semi:=[g,DerivedSubgroup(g)]; > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ally at dcs.gla.ac.uk Fri Oct 1 15:30:04 2004 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Computing a subgroup of G which does not map i to j Message-ID: Dear GAP forum I have the following problem: I have a permutation group G acting on the set 1..n, given by a set of generators. I've discovered that one of the generators of G maps a certain value i to a certain value j, and that this is not suitable for my purposes. I want a subgroup of G which does not map i to j. I could throw away all generators that map i to j, but I'd probably lose most of the group then. Is there an efficient way to compute generators for a "large" subgroup of G which has no element that maps i to j? Thanks Alastair. From d.v.pasechnik at uvt.nl Fri Oct 1 17:30:52 2004 From: d.v.pasechnik at uvt.nl (Dima Pasechnik) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Computing a subgroup of G which does not map i to j In-Reply-To: References: Message-ID: <20041001163052.GA8825@pi1407.uvt.nl> Dear GAP forum > On Fri, Oct 01, 2004 at 03:30:04PM +0100, Alastair Donaldson wrote: > I have the following problem: I have a permutation group G acting on the > set 1..n, given by a set of generators. > > I've discovered that one of the generators of G maps a certain value i to > a certain value j, and that this is not suitable for my purposes. > > I want a subgroup of G which does not map i to j. I could throw away all > generators that map i to j, but I'd probably lose most of the group then. the set of elements of G that do not map i to j is not a subgroup of G. E.g. the subgroup generated by (ik) and (jk) - note that these permutations do not map i to j - contains (ij), that does map i to j The set of elements of G that fixes i and j is a subgrop, that can be computed using Stabilizer HTH, Dmitrii http://center.uvt.nl/staff/pasechnik/ From wh at icparc.ic.ac.uk Fri Oct 1 20:02:19 2004 From: wh at icparc.ic.ac.uk (wh@icparc.ic.ac.uk) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Computing a subgroup of G which does not map i to j In-Reply-To: References: Message-ID: <20041001190219.GC8497@tempest.icparc.ic.ac.uk> Hi Alastair, As Dima Pasechnik noted, in general the set of elements which do not map i to j do not form a group. Do you really want a group of such elements? If not: there is one coset of the stabiliser of i which contains all the elements of G that map i to j; thus the elements that do not map i to j are all the other cosets. If so: if j = i there is nothing you can do. :) Otherwise, the stabiliser of i is a subgroup of G that does not map i to j. There may be a larger subgroup with this property, depending on your group, consisting of this stabiliser and some of its cosets. One naive way to look for a larger subgroup is to try adding to the stabiliser a representative for one of its cosets, and see whether j is in i's orbit in the resulting group. If it is, try another representative. If not, you have a larger subgroup with the desired property. Repeat with a representative of a coset which is disjoint from the new subgroup until further enlargement is not possible. Lots of optimisations possible. E.g. exploiting the fact that you can't put more than half the cosets of the stabiliser of i into the subgroup without necessarily including j in i's orbit (this assumes j appears in i's orbit in G, which you say is true for your case). There may be much better approaches, but my knowledge of group theory is limited to the fairly simple stuff. :) Cheers, Warwick On Fri, Oct 01, 2004 at 03:30:04PM +0100, Alastair Donaldson wrote: > Dear GAP forum > > I have the following problem: I have a permutation group G acting on the > set 1..n, given by a set of generators. > > I've discovered that one of the generators of G maps a certain value i to > a certain value j, and that this is not suitable for my purposes. > > I want a subgroup of G which does not map i to j. I could throw away all > generators that map i to j, but I'd probably lose most of the group then. > > Is there an efficient way to compute generators for a "large" subgroup of > G which has no element that maps i to j? > > Thanks > > Alastair. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ally at dcs.gla.ac.uk Tue Oct 5 10:47:08 2004 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Computing a subgroup of G which does not map i to j In-Reply-To: <20041001190219.GC8497@tempest.icparc.ic.ac.uk> Message-ID: Thanks to everyone for their useful comments on my problem. I appreciate that the set of elements that doesn't map i to j is not in general a group, and I'm sure that I do need a group for my purposes. As someone pointed out I could just use the stabiliser of i, but this would potentially eliminate a lot of the group which I could have safely used, so a larger group would be preferrable. I'm going to experiment with the various possibilities which have been proposed and I'll let the forum know if I have any success... Cheers Ally Donaldson On Fri, 1 Oct 2004 wh@icparc.ic.ac.uk wrote: > Hi Alastair, > > As Dima Pasechnik noted, in general the set of elements which do not map i > to j do not form a group. > > Do you really want a group of such elements? > > If not: there is one coset of the stabiliser of i which contains all the > elements of G that map i to j; thus the elements that do not map i to j are > all the other cosets. > > If so: if j = i there is nothing you can do. :) Otherwise, the stabiliser > of i is a subgroup of G that does not map i to j. There may be a larger > subgroup with this property, depending on your group, consisting of this > stabiliser and some of its cosets. One naive way to look for a larger > subgroup is to try adding to the stabiliser a representative for one of its > cosets, and see whether j is in i's orbit in the resulting group. If it is, > try another representative. If not, you have a larger subgroup with the > desired property. Repeat with a representative of a coset which is disjoint > from the new subgroup until further enlargement is not possible. Lots of > optimisations possible. E.g. exploiting the fact that you can't put more > than half the cosets of the stabiliser of i into the subgroup without > necessarily including j in i's orbit (this assumes j appears in i's orbit in > G, which you say is true for your case). There may be much better > approaches, but my knowledge of group theory is limited to the fairly simple > stuff. :) > > Cheers, > Warwick > > On Fri, Oct 01, 2004 at 03:30:04PM +0100, Alastair Donaldson wrote: > > Dear GAP forum > > > > I have the following problem: I have a permutation group G acting on the > > set 1..n, given by a set of generators. > > > > I've discovered that one of the generators of G maps a certain value i to > > a certain value j, and that this is not suitable for my purposes. > > > > I want a subgroup of G which does not map i to j. I could throw away all > > generators that map i to j, but I'd probably lose most of the group then. > > > > Is there an efficient way to compute generators for a "large" subgroup of > > G which has no element that maps i to j? > > > > Thanks > > > > Alastair. > > > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From thomas.breuer at math.rwth-aachen.de Tue Oct 5 14:55:57 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Computing a subgroup of G which does not map i to j Message-ID: Dear GAP Forum, Alastair Donaldson wrote > I have the following problem: I have a permutation group G acting on the > set 1..n, given by a set of generators. > > I've discovered that one of the generators of G maps a certain value i to > a certain value j, and that this is not suitable for my purposes. > > I want a subgroup of G which does not map i to j. I could throw away all > generators that map i to j, but I'd probably lose most of the group then. > > Is there an efficient way to compute generators for a "large" subgroup of > G which has no element that maps i to j? In general there is not a unique largest subgroup of G that does not map i to j. For example, consider G a symmetric group on at least three points, then the point stabilizers of i and j are two different subgroups with the required property. More generally, a collection of examples of subgroups with this propertyy are the setwise stabilizers of those subsets of the moved points of G that contain i but not j. (Warwick Harvey mentioned stabilizers in his message.) Interesting subgroups of this kind are the block stabilizers of (maximal) blocks of imprimitivity containing i but not j; if the group acts primitively then one gets just the point stabilizers this way. These subgroups can be computed quite efficiently. By the way, the fact that a group contains an element that maps i to j does not depend on the fact that the given generating set contains an element with this property; so omitting all generators with this property does not necessarily yield a generating set for a group in which i and j lie in different orbits. (And on the other hand, the subgroup obtained this way may be smaller than the stabilizers mentioned above.) All the best, Thomas From sal at dcs.st-and.ac.uk Wed Oct 6 11:41:42 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Negative entries in positive ranges Message-ID: <20041006114142.1615e17a@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Anvita reported: > I have run into the following peculiar behavior of GAP: > ---------------------------------------------------- > gap> -1 in [1..2]; > true > gap> Position([1..2],-1); > -1 > ---------------------------------------------------- > > On the other hand: > ---------------------------------------------------- > gap> l:=[1..2];; > gap> l[-1]; > List Element: must be positive (not a -1) > ---------------------------------------------------- > > Is it supposed to be this way? > Of course it is not supposed to be this way. This is a bug in GAP and will be fixed in the next bugfix. The problem is in the kernel, so there is no simple workaround. It arises only when a negative integer is tested for membership in a range consisting entirely of positive integers. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From clearthink at cavtel.net Mon Oct 11 09:07:10 2004 From: clearthink at cavtel.net (shane miller) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] re: some simple and obvious and MISSING items for the FAQ Message-ID: <1097482030.19800.30.camel@rilke> Hi, I installed gap without problem using gapsync. GAP is an impressive algebra system. However, some really obvious things are missing. Perhaps this needs mere FAQ documentation: 1. Almost every tutorial or other documentation tells how one can compute 43 million things (like subgroups or cosets) on a given group but fails to: a. tell how to perform a binary operation on the darned elements of the group. Now, for Sn groups this appears documented via constructions like (1 2 3)(4 2 1) etc. But, 1. what do you if 4 or 5 Sn groups have been constructed. Then the command (1 2 3)(4 2 1) applies to which Sn group? How does GAP match the binary operation request with a group structure esp. if more than one has been defined? Please make this general: Q8 or Z4 do not (typically) use permutation notation. 2. how to add, say, 5+13 in some Z/Z15 (i.e. 15>5, 15>13) or Z/Z3 group? 3. How does GAP know Z/Z3 is using + (add) or '*'? This must be implied by the groups's generator? 2. Many classic groups like D4, Q8 can be constructed via simple commands. But there are no elements; they're only generators! How in the heck do you get GAP to tell you what the actual elements are for Q8? i.e. q8:=SmallGroup(8,4); Elements(q8) = [f1,f2,f3] <-- not elements In any basic algebra book Q8 is a group on 8 distinct symbols {i,j,k,1,-1,-i,-j,-k}. How do you make GAP use these elements? How can you get GAP to do this: Elements(q8)={i,j,k,1,-1,-i,-j,-k} Of course the i,j,k etc. are not special; but how can one specify this set? And finally how would one then ask GAP to compute, say, "-1*j" in q8? 3. Presumably, once (2) is solved, then commands like NormalSubgroups(q8) will print all the normal subgroups using (user specified) elements and not darned generator expressions. Ditto computing cosets, normalizers etc. 4. Another super feature is the GraphicSubgroupLattice. But again, the numbered subgroups in the diagram are not that useful. Suppose you diagram D16 and pick, at random, subgroup #3. How in the heck do you ask GAP to tell you the generating elements (not generator expressions) for that subgroup (#3 here)? 5. And finally, given (4), how do you tell GAP to generate the number #3 subgroup of D16 using the generation information from (4)? Shane -- Sure it's a technical problem of fine pedigree ... But all such problems are wrapped inside a management problem. And there's the rub. From gapforum at mowsey.org Mon Oct 11 23:35:37 2004 From: gapforum at mowsey.org (Mowsey) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Re: Computations with group elements Message-ID: <200410112235.i9BMZ3ow015557@gap-system.org> I'll mostly just give some simple answers to your questions, but I am worried that they will not help relieve any frustration. I'll label my attempt at answering this unasked question as 6. 1.a.1.i. There is only one multiplication defined for permutations, composition. The result of (1,2,3)*(4,2,1) is always (2,3,4) no matter which group you think (1,2,3) and (4,2,1) come from. If it helps, function are written on the right, x^f is the result of applying f to x. So to find what (1,2,3) does to 7, ask gap for "7^(1,2,3)" and it will tell you "7". So x^(f*g) = (x^f)^g and 2^((1,2,3)*(4,2,1)) is (2^(1,2,3))^(4,2,1) = 3^(4,2,1) = 3, etc. giving (2,3,4). 1.a.1.ii. Q8 and Z4 do not use permutation representations because you did not request them as permutation groups. Permutation representations are extremely useful for insoluable groups, but for soluable groups much more efficient representations are known, and these are used by default. Here is how to request permutation representations: q8perm:= Image(IsomorphismPermGroup(SmallGroup(8,4))); z4perm:= CyclicGroup(IsPermGroup,4); 1.a.2. To add 5 + 13 mod 15, just use (5+13) mod 15; 1.a.3. To work with the additive group of integers mod 15, one can use "ZmodnZ(15)" to construct the group, and "ZmodnZ(1,15)" to get a generator. You can tell which operation is in use for a group using: IsAdditiveGroup(ZmodnZ(15)); If you use "+" it will use addition, if you use "*" it will use multiplication. If one or the other is not defined, you will get a "Method not found" error. If you are planning on doing much group theory which such a group, it may be more efficient to work with the cyclic group of order 15, which is written multiplicatively. G:=CyclicGroup(15); generator:=G.1; 2. If you wish to see a listing of the elements of a group, you can use: G:=SmallGroup(8,4); Elements(G); You will notice all 8 elements are printed, not just the generators. G is in an efficient representation which is extremely similar to a vector space, the basis is {f1,f2,f3} and the elements are products f1^i*f2^j*f3^k where i,j,k is in {0,1}. Hopefully it is clear that there is no need to name every element of a vector space, only the basis elements need be given names. To quickly access these generators, one can use "G.1" to refer to "f1" in G, and of course "G.2" and "G.3". Try computing G.1^2, and notice that it is not the identity, but rather is G.3. In Q8, the square of every element g is -1 or 1 (the latter happenning only for g=+-1), so we now know that G.3 is -1 and G.1 is one of i,j, or k. Exercise: "Which one is it?" is a misguided question, figure out why. Short solution: We'll label G.1 as "i" for convenience and since G.1,G.2,G.3 is a generating set of Q8 (while {i,-1,1,-i} is not) we are free to label G.2 as "j". Now -i is G.1*G.3, -j is G.2*G.3, k is G.1*G.2, and -k is G.1*G.2*G.3. 3. I think you'll understand that this feature would be less than useless for anything other than toy groups of small size. Working with generators (usually a special system of generators) leads to much better understanding and much faster algorithms. 5. Given a list of generators of a subgroup of G, you use the Subgroup command to generate the subgroup. H:=Subgroup(G,[G.3]); will produce the center of the quaternion group. 6. I was initially frustrated with GAP, but mostly because I misunderstood its purpose and methods. GAP is certainly a great aid in learning some basic group theory, but it is probably important to realize that it is also a tool allowing mathematicians to solve for the first time very very difficult problems in Algebra. Even more, it also contains many of those beautiful solutions in algorithmic form. It is really amazing how many deep results from the mid 1800s to the 21st century are made precise in the GAP distribution. I guess basically I would suggest trying to think of how your improvements would be applied to the 51 groups of order 32, which were calculated by Miller in 1896. For instance, produce meaningful names for all 1632 elements involved, or even just for the groups themselves. Suppose you were asked to list the elements of S_5, do you think it would be useful to produce a list of 120 permutations in cycle notation? At the very least the list should be organized into smaller sections, for instance into conjugacy classes. Often times a very reasonable question for a tiny group becomes silly tedium or incomprehensible data for even a moderately sized group. The degree 11 group of Mathieu is a very interesting subgroup of S_11 generated by (1,2,3,4,5,6,7,8,9,10,11) and (3,7,11,8)(4,10,5,6). It would be somewhat ridiculous to ask for a list of its 7920 elements, whereas this seems a very natural thing to do for Q8 or Z4. From sal at dcs.st-and.ac.uk Tue Oct 12 11:42:39 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] re: some simple and obvious and MISSING items for the FAQ Message-ID: <20041012114239.04f7e8b9@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Shane Miller asked a number of questions. "Mowsey" has already provided a number of excellent answers. We will think about ways to include some of these points in the tutorial documentation. Let me here expand on a few points further, and include some examples: The first point, which answers several of them is that the group operation in GAP is always multiplication, written with *. This works for groups of permutations, and matrices and for more abstract groups given by generators and relations. While you can construct a number of groups of permutations, they all have the same multiplication, in the sense that if two permutations p1 and p2 are both in two permutation groups, their product in each group will be the permutation p1*p2 given by applying p1 followed by p2. In fact, this essentially works the other way round. GAP first defines elements, such as permutations, matrices or words in abstract generators, with their operations such as multiplication and inverse, then it allows you to define groups of such objects, using the objects multiplication as the group operation. GAP does support additive groups (for example vector spaces are additive groups) but they are not the same, for GAP's purposes, as "groups" which are always multiplicative. for example SylowSubgroup' cannot be used to compute a Sylow subgroup of an additive group. Thus, (Z/3Z, +) is, for GAP purposes, not a group. You can construct an isomorphic multiplicative group in a variety of ways, most simply using the CyclicGroup constructor, and solve any mathematical problem you want in that isomorphic group, but you cannot actually have a GAP group whose operation is addition. Although they cannot be an additive group, GAP does support computation in the integers mod n, in a number of ways. You can do individual computations using the mod operator (3 + 5) mod 7 will be 1, for instance, or you can construct the whole ring of integers modulo n using ZmodnZ (see the manual section). Next, GAP's group constructors will generally, and by default, construct a group of the specified isomorphism type, in whatever form is most efficient for computation. No specific nomenclature for the elements if guaranteed. So gap> q8 := SmallGroup(8,4); gap> AsList(q8); [ of ..., f1, f2, f3, f1*f2, f1*f3, f2*f3, f1*f2*f3 ] gap> is a perfectly good description of a group of order 8 isomorphic to the group generated by the quaternions i and j. We can actually see that by making the group of quaternions: gap> q := QuaternionAlgebra(Rationals); gap> gens := GeneratorsOfAlgebraWithOne(q); [ e, i, j, k ] gap> e := gens[1]; i := gens[2]; j := gens[3]; k := gens[4]; e i j k gap> g := Group(i,j); #I default IsGeneratorsOfMagmaWithInverses' method returns true' for [ i, j ] gap> AsList(g); [ (-1)*e, (-1)*i, (-1)*j, (-1)*k, k, j, i, e ] gap> IsomorphismGroups(q8,g); [ f1, f2, f3 ] -> [ j, i, (-1)*e ] Here we construct the group q8 that you were expecting, list its elements and, in the last line, demonstrate an isomorphism between the library group SmallGroup(8,4) and the group of quaternions. Using this group g, we can, for instance print the normal subgroups gap> Print(NormalSubgroups(g),"\n");; [ Group( [ i, j ] ), Group( [ (-1)*k, (-1)*e ]), Group( [ (-1)*j, (-1)*e ] ), Group( [ i, (-1)*e ] ), Group( [(-1)*e ] ), Group( e ) ] Each subgroup is still given only in terms of generating elements because as soon as your groups get much larger you almost never actually want the complete list of elements. If you want them in this case, you can do gap> for n in NormalSubgroups(g) do Print(AsList(n),"\n"); od; [ (-1)*e, (-1)*i, (-1)*j, (-1)*k, k, j, i, e ] [ (-1)*e, (-1)*k, k, e ] [ (-1)*e, (-1)*j, j, e ] [ (-1)*e, (-1)*i, i, e ] [ (-1)*e, e ] [ e ] gap> In general, if you want to see the elements of your group in some particular notation, you need to construct the group from elements of that kind. Then, if you ask for a subgroup or coset AsList', you will get what you want. AsList is better than Elements' because it does not insist that the elements be sorted, and can, as a result be considerably faster in many cases. For instance, when you say you want the generating elements for a particular subgroup of D16, in what form do you want them? The standard representation (because it's the best for computing), is as words in what are called polycylic generators. If you would prefer permutations, you can specify this when constructing the group: gap> DihedralGroup(IsPermGroup,16); Group([ (1,2,3,4,5,6,7,8), (2,8)(3,7)(4,6) ]) or see IsomorphismPermGroup in the manual for a more general approach. D16 might also be thought of as a finitely-presented group in at least two ways: As the group generated by an element of order 8 (a rotation) and an element of order 2 which reverses it (a reflection) gap> f := FreeGroup("a","b"); gap> a := f.1; b := f.2; a b gap> g := f/[a^8, b^2,b^-1*a*b*a]; gap> Size(g); 16 gap> AsList(g); [ , b, a^7*b, a, a^7, a*b, a^6*b, a^2, a^6, a^2*b, a^5*b, a^3, a^5, a^3*b, a^4*b, a^4 ] As the group generated by two elements of order 2 with product of order 8: gap> f := FreeGroup("s","t"); gap> s := f.1; t := f.2; s t gap> g2 := f/[s^2,t^2,(s*t)^8]; gap> Size(g2); 16 gap> AsList(g2); [ , t, s, t*s, s*t, t*s*t, s*t*s, t*s*t*s, s*t*s*t, t*s*t*s*t, s*t*s*t*s, t*s*t*s*t*s, s*t*s*t*s*t, t*s*t*s*t*s*t, s*t*s*t*s*t*s, s*t*s*t*s*t*s*t ] gap> IsomorphismGroups(g,g2); [ a, b ] -> [ s^-1*t*s^2, t^-1*s^-1*t*s^2 ] Finally, to get groups from the GraphicSubgroupLattice back into GAP you can use the"selected groups to GAP" option on the "Subgroups" menu. This sets the GAP variable last to a list containing all the selected subgroups. This is described in the manual for the XGAP package. In general, if you want to enter elements of any pc group as they print you need to do something like: gap> g := DihedralGroup(16); gap> gens := GeneratorsOfGroup(g); [ f1, f2, f3, f4 ] gap> f1 := gens[1]; f2 := gens[2]; f3 := gens[3]; f4 := gens[4]; f1 f2 f3 f4 After which you can do things like: gap> Group([f1]); gap> AsList(last); [ of ..., f1 ] In practise, however, you almost never need to do this. I hope this all helps. If you have any further difficulties, please feel free to contact support, or continue discussion on the forum. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From mschaps at macs.biu.ac.il Tue Oct 12 12:49:51 2004 From: mschaps at macs.biu.ac.il (Malka Schaps) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] 2005 conference? Message-ID: Is there a Groups at St. Andrews or some such conference coming up which would be attended by GAP users? Mary Schaps From edmund at mcs.st-and.ac.uk Tue Oct 12 13:09:56 2004 From: edmund at mcs.st-and.ac.uk (Edmund Robertson) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Automata package released Message-ID: <200410121209.i9CC9uW02705@mcs.st-and.ac.uk> Dear GAP Forum, I announce, with great pleasure, that the Automata package, by Manuel Delgado, Steve Linton and Joao Morais has been accepted as a refereed GAP package and is available for download from the GAP Web site, and FTP sites, or from the authors Web page at http://www.fc.up.pt/cmup/mdelgado/automata/ The following brief description of the functionality of the package is based on the authors' description. The features of the Automata package include: - computing a rational expression for the language recognized by a finite automaton and computing an automaton for the language given by a rational expression; - computing an equivalent deterministic automaton to a given non-deterministic automaton; - standard constructions such as intersection automata and product automata - minimalising a deterministic finite automaton; - constructing an inverse automaton corresponding to a subgroup of a free group via a flower automaton and Stallings foldings; - visualizing automata graphically (using the external program GraphViz) This convenient tool presently works only under LINUX. Edmund Robertson ---------------------------------------------------------------------- Professor E F Robertson Centre for Interdisciplinary Research in Computational Algebra School of Mathematics and Statistics Mathematical Institute University of St Andrews St Andrews KY16 9SS Scotland Email: edmund@mcs.st-and.ac.uk Tel: +44 (0)1334 463743 Fax: +44 (0)1334 463748 ---------------------------------------------------------------------- From edmund at mcs.st-and.ac.uk Tue Oct 12 14:38:12 2004 From: edmund at mcs.st-and.ac.uk (Edmund Robertson) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] 2005 conference? Message-ID: <200410121338.i9CDcCV02800@mcs.st-and.ac.uk> Dear Mary >Is there a Groups at St. Andrews or some such conference coming up which would be attended by GAP users? Yes there is - see http://www.groupsstandrews.org/ Hope to see you in St Andrews next summer. Best wishes Edmund Robertson From gzabl at yahoo.com Thu Oct 14 17:05:12 2004 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Automata package released In-Reply-To: <200410121209.i9CC9uW02705@mcs.st-and.ac.uk> Message-ID: <20041014160512.80241.qmail@web53003.mail.yahoo.com> Dear Edmund, I downloaded the Automata package the other day and installed it on my Windows 2000 machine. I have Cygwin installed on the machine, and the wish executable that was installed with Cygwin was selected and works fine for the xautomata part of the package (I will be testing with other Tcl/Tk installations in the next few days). Everything seems to run fine (I only did some very rudimentary tests). The only problem I had was that the XAutomaton() returns "quit\r\n" rather than "quit\n" when the Quit button is selected. The following change fixes the problem for me: XAutomaton := function(arg) local func, d, f, xautomatonstream, otu, A, args, i, s, s2, a, q, var; func := function(ix) local i, result, s; s := ReadAll(xautomatonstream); ##Change for Windows: from [if s = "quit\n" then] if s = "quit\n" or s = "quit\r\n" then ##/Change for Windows ##Added line to fix lack of gap prompt on exit from XAutomaton() PrintTo(otu, "gap> "); ##/Added line to fix lack of gap prompt on exit from XAutomaton() UnInstallCharReadHookFunc( xautomatonstream, func ); CloseStream(xautomatonstream); CloseStream(otu); else ... I hope this information is of use to other users of GAP. Gary Zablackis Edmund Robertson wrote: Dear GAP Forum, I announce, with great pleasure, that the Automata package, by Manuel Delgado, Steve Linton and Joao Morais has been accepted as a refereed GAP package and is available for download from the GAP Web site, and FTP sites, or from the authors Web page at http://www.fc.up.pt/cmup/mdelgado/automata/ The following brief description of the functionality of the package is based on the authors' description. The features of the Automata package include: - computing a rational expression for the language recognized by a finite automaton and computing an automaton for the language given by a rational expression; - computing an equivalent deterministic automaton to a given non-deterministic automaton; - standard constructions such as intersection automata and product automata - minimalising a deterministic finite automaton; - constructing an inverse automaton corresponding to a subgroup of a free group via a flower automaton and Stallings foldings; - visualizing automata graphically (using the external program GraphViz) This convenient tool presently works only under LINUX. Edmund Robertson ---------------------------------------------------------------------- Professor E F Robertson Centre for Interdisciplinary Research in Computational Algebra School of Mathematics and Statistics Mathematical Institute University of St Andrews St Andrews KY16 9SS Scotland Email: edmund@mcs.st-and.ac.uk Tel: +44 (0)1334 463743 Fax: +44 (0)1334 463748 ---------------------------------------------------------------------- _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From yannis_michos at yahoo.co.uk Thu Oct 21 11:03:15 2004 From: yannis_michos at yahoo.co.uk (Yannis Michos) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Normal basis of a finite field Message-ID: <20041021100315.81446.qmail@web25702.mail.ukl.yahoo.com> Dear GAP users, How do I find a normal basis of a finite field K? Suppose for example that K := GF(16). I use the command NormalBase(K) I saw in the manual but there is a problem. It seems I have to use the form NormalBase(K, elm) but should the element elm be? Ioannis Michos --------------------------------- ALL-NEW Yahoo! Messenger - all new features - even more fun! From Dursun.Bulutoglu at afit.edu Thu Oct 21 22:16:09 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Finding the maximal subgroup of S_n such that a subpace V of R^n is invariant Message-ID: <4CFC110AB744244C824D25E59665956C01DC26CD@ms-afit-04.afit.edu> Let V be an m dimensional subspace of R^n. Let S_n act on R^n and on V by permuting the coordinates of each vector in R^n. Thus S_n acts on R^n regularly. I was wondering whether there is any tool in GAP that I could use to find the maximal subgroup G of S_n such that V remains invariant under this action. Obviously one can fix a basis for V and compute the symmetry group of the matrix formed by putting these basis vectors into a matrix. This symmetry group would be a subgroup of of G but I would like to be able to compute G or some subgroup of G that has as many elements of G as possible. Dursun. From sal at dcs.st-and.ac.uk Fri Oct 22 13:01:12 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Fw: Finding the maximal subgroup ... Message-ID: <20041022130112.4ad9a093@caolila.dcs.st-and.ac.uk> This came to the old address. Begin forwarded message: Date: Fri, 22 Oct 2004 12:46:11 +0200 From: Jan Draisma To: GAP Forum Subject: Re: Finding the maximal subgroup ... Dear GAP-Forum and Dursun, > Let V be an m dimensional subspace of R^n. Let S_n act on R^n and on V > by permuting the coordinates of each vector in R^n. Thus S_n acts on R^n > regularly. > I was wondering whether there is any tool in GAP that I could > use to find the maximal subgroup G of S_n such that V remains invariant > under this action. Obviously one can fix a basis for V and compute the > symmetry group of the matrix formed by putting these basis vectors into > a matrix. This symmetry group would be a subgroup of of G but I would > like to be able to compute G or some subgroup of G that has as many > elements of G as possible. The brute force code below will work for those n for which listing all elements of S_n is feasible. There should be more efficient algorithms, though, using (the code for) Stabiliser'. Over finite fields, one may try to implement Grassmannians and compute the stabiliser of V there. Syms:=function(V) # V is a subspace of F^n for some field F, and this returns the # subgroup of S_n stabilising V. local B,Ann,Zo,L,n; if Dimension(V)=0 then return(SymmetricGroup(Length(AsSet(V)[1]))); fi; B:=List(Basis(V)); n:=Length(B[1]); Ann:=TransposedMat(NullspaceMat(TransposedMat(B))); #eqs defining V; Zo:=B*Ann; #zero matrix L:=Filtered(SymmetricGroup(n),pi-> (List(B,v->Permuted(v,pi))*Ann = Zo)); return Group(L); end; Example: n:=7; Rn:=Rationals^n; V:=Subspace(Rn,[[1,2,0,4,0,1,0],[2,2,0,0,2,0,1], [2,1,0,0,4,1,0],[2,2,0,2,0,0,1]]); Syms(V); Answer: Group([ (), (1,2), (4,5), (1,2)(4,5) ]) Best wishes, Jan -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From pmxjs at nottingham.ac.uk Fri Oct 22 14:33:27 2004 From: pmxjs at nottingham.ac.uk (Jerry Swan) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] converting kbmag fsa to GRAPE graph Message-ID: Dear GAP fourm members, Any pointers on using GAP to convert a finite state automata (as output by kbmag) into a form that can be manipulated by the GRAPE graph package would be appreciated. Regards, Jerry. This message has been scanned but we cannot guarantee that it and any attachments are free from viruses or other damaging content: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. From Dursun.Bulutoglu at afit.edu Fri Oct 22 20:54:41 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] RE: Finding the maximal subgroup of S_n such that a subpace V of R^n is invariant Message-ID: <4CFC110AB744244C824D25E59665956C01DC2762@ms-afit-04.afit.edu> Dear GAP-Forum and Jan, In my problems n is large (1000 Let V be an m dimensional subspace of R^n. Let S_n act on R^n and on V > by permuting the coordinates of each vector in R^n. Thus S_n acts on > R^n regularly. > I was wondering whether there is any tool in GAP that I could use to > find the maximal subgroup G of S_n such that V remains invariant under > this action. Obviously one can fix a basis for V and compute the > symmetry group of the matrix formed by putting these basis vectors > into a matrix. This symmetry group would be a subgroup of of G but I > would like to be able to compute G or some subgroup of G that has as > many elements of G as possible. The brute force code below will work for those n for which listing all elements of S_n is feasible. There should be more efficient algorithms, though, using (the code for) Stabiliser'. Over finite fields, one may try to implement Grassmannians and compute the stabiliser of V there. Syms:=function(V) # V is a subspace of F^n for some field F, and this returns the # subgroup of S_n stabilising V. local B,Ann,Zo,L,n; if Dimension(V)=0 then return(SymmetricGroup(Length(AsSet(V)[1]))); fi; B:=List(Basis(V)); n:=Length(B[1]); Ann:=TransposedMat(NullspaceMat(TransposedMat(B))); #eqs defining V; Zo:=B*Ann; #zero matrix L:=Filtered(SymmetricGroup(n),pi-> (List(B,v->Permuted(v,pi))*Ann = Zo)); return Group(L); end; Example: n:=7; Rn:=Rationals^n; V:=Subspace(Rn,[[1,2,0,4,0,1,0],[2,2,0,0,2,0,1], [2,1,0,0,4,1,0],[2,2,0,2,0,0,1]]); Syms(V); Answer: Group([ (), (1,2), (4,5), (1,2)(4,5) ]) Best wishes, Jan From gapforum at mowsey.org Sun Oct 24 06:53:01 2004 From: gapforum at mowsey.org (Mowsey) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Re: Normal basis of a finite field Message-ID: <200410240551.i9O5pbow024259@gap-system.org> I think GAP does not currently provide a function to compute a normal base of a finite field. Luckily for the finite fields that GAP supports it is fairly quick just to find one yourself. There are some theoretical results on how quickly this works, but since GF(p^n) and Z(p^n) require p^n < 2^17 or so, I can't easily access fields large enough to make this silly search not obviously fine: NormalBase_FiniteFieldSimpleSearch:=function(p,n) local i; i:=1; while( n > Dimension(VectorSpace(GF(p),Conjugates(Z(p^n)^i))) ) do i:=i+1; od; return Conjugates(Z(p^n)^i); end; Z(p^n) is a root of the polynomial ConwayPolynomial(p,n) and is a primitive element of the corresponding finite field of size p^n. The only fields this applies to are the fields whose order is in the list Q:=[ 4, 8, 9, 16, 25, 27, 32, 49, 64, 81, 121, 125, 128, 169, 243, 256, 289, 343, 361, 512, 529, 625, 729, 841, 961, 1024, 1331, 1369, 1681, 1849, 2048, 2187, 2197, 2209, 2401, 2809, 3125, 3481, 3721, 4096, 4489, 4913, 5041, 5329, 6241, 6561, 6859, 6889, 7921, 8192, 9409, 10201, 10609, 11449, 11881, 12167, 12769, 14641, 15625, 16129, 16384, 16807, 17161, 18769, 19321, 19683, 22201, 22801, 24389, 24649, 26569, 27889, 28561, 29791, 29929, 32041, 32761, 32768, 36481, 37249, 38809, 39601, 44521, 49729, 50653, 51529, 52441, 54289, 57121, 58081, 59049, 63001, 65536]; And the command for q in Q do p:=SmallestRootInt(q); n:=LogInt(q,p); NormalBase_FiniteFieldSimpleSearch(p,n); od; runs in a few seconds on a cheap personal computer. From frank.luebeck at math.rwth-aachen.de Mon Oct 25 16:43:23 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Normal basis of a finite field In-Reply-To: <20041021100315.81446.qmail@web25702.mail.ukl.yahoo.com> Message-ID: On Thu, 21 Oct 2004, Yannis Michos wrote: > Dear GAP users, > How do I find a normal basis of a finite field K? > Suppose for example that K := GF(16). I use the command NormalBase(K) I saw > in the manual but there is a problem. It seems I have to use the form > NormalBase(K, elm) but should the element elm be? Dear GAP-forum, dear Yannis Michos, Yes there is a problem: So far, nobody implemented a method for computing a normal base of a finite field. After reading the code below into your GAP session commands like NormalBase( GF(16) ); NormalBase( GF( GF(4), 2 ) ); will work. A method for this will be included in future updates of GAP. With best regards, Frank L?beck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ InstallMethod( NormalBase, "for a finite field and scalar", [ IsField and IsFinite, IsScalar ], function(F, b) local q, d, z, l, bas, i; if b=0*b then b := One(F); fi; q := Size(LeftActingDomain(F)); d := Dimension(F); z := PrimitiveRoot(F); repeat l := [b]; for i in [1..d-1] do Add(l, l[i]^q); od; bas := Basis(F, l); b := b*z; until bas <> fail; return l; end); From wdj at usna.edu Mon Oct 25 18:32:57 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] GUAVA 2.0 alpha Message-ID: <417D38C9.6050306@usna.edu> Hello: I've been working on GUAVA and making a lot of additions. There is an alpha version of the next release, called GUAVA 2.0, now available at http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ if anyone is interested in testing it out. Thanks in advance for any bug reports. Here is a list of some of the changes from the last version: o Changed ViewObj method for random linear codes, speeding up the implementation of the RandomLinearCode command. o Modified BCHCode and RootsCode implementation. o Corrected bug in UpperBoundElias. o Rewrote GUAVA documentation into GAPDoc, with many revisions. o Added EvaluationCode and related codes (GeneralizedReedSolomonCode, ..., joint with Jason McGowan) o Added interpolation decoding method for GeneralizedReedSolomonCode (joint with Jason McGowan - unfinished) o Added Gao decoding method for GeneralizedReedSolomonCode - unfinished o MinimumDistanceLeon algorithm (joint with Jerry Irons) in non-binary case. - unfinished o Added list-decoding algorithm for GeneralizedReedSolomonCode (joint with Clifton Lennon - unfinished) o Bug fix for SortedGaloisFieldElements (used to construct Gabidulin codes). o CalculateLinearCodeCoveringRadius changed to a slightly faster algorithm. o minor bug fix for ExhaustiveSearchCoveringRadius o minor bug fix for IncreaseCoveringRadiusLowerBound o Changed ConstantWeightSubcode so it does not call Leon's program if wtdist is not installed. Moreover, the procedure interfacing with the binary had a bug which was fixed. o Added check in AutomorphismGroup: if Leon's desauto is not compiled (e.g., on a windows machine) then it calls PermutationAutomorphismGroup command instead. o Added Decodeword (which also works for non-linear codes - unfinished) o Added PermutationAutomorphismGroup (which will replace the poorly named PermutationGroup command added in version 1.9) o Moved several decoding commands from codeops.gi to decoders.gi (with no change in functionality). - David From reza_orfi at yahoo.com Wed Oct 27 09:54:26 2004 From: reza_orfi at yahoo.com (Reza Orfi) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] reza orfi Message-ID: <20041027085426.66305.qmail@web53409.mail.yahoo.com> Dear forum. with many thanks. I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. but there are not in gap4r4. please help me .i need this group . Best regard. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From beick at tu-bs.de Thu Oct 28 09:38:58 2004 From: beick at tu-bs.de (Bettina Eick) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] reza orfi In-Reply-To: <20041027085426.66305.qmail@web53409.mail.yahoo.com> Message-ID: Dear GAP Forum, dear Reza Orfi, you wrote: > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > but there are not in gap4r4. please help me .i need this group . it is true that the groups of your considered orders are not available in GAP. For many of these orders an explicit determination of these groups has not been done yet and would probably be difficult. For example, consider the groups of order p^10. For p=2, these groups have been enumerated and thus it is known that there are 49487365422 groups of order 2^10. (See: B. Eick, E. O'Brien. Enumerating p-groups. J. Austral. Math. Soc. 67, 191 - 205 (1999).) As this is a very large number, we did not attempt to list the groups of order 2^10 explicitly or to include them in an electronic database. This problem is going to be worse for the groups of order 3^10 and 5^10. The groups of these orders have not been enumerated or listed yet and it seems unlikely that this will happen soon. For the smallest of your orders, (e.g. 3^7,) it may be possible to list all or at least the interesting groups explicitly, if you are willing to invest time and effort in it. In principle, the p-groups of order p^n can be determined (up to isomorphism) using the p-group generation algorithm by E. O'Brien. This is available in the ANUPQ package of GAP. A good strategy in your case might be to try to restrict the groups that you need first and then try to list these groups with p-group generation. If you find a suitable restriction, then this approach might work. Hope this helps, Bettina From alec at khakasnet.ru Thu Oct 28 16:17:32 2004 From: alec at khakasnet.ru (Alec Makosi) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] using GAP workspace Message-ID: <1098976387.1039.8.camel@localhost.localdomain> Dear forum! Whether is able GAP to maintain in workspace enumerators? More precisely, the situation is those: I create enumerator for the list in which approximately 200000 elements. Each element is a permutation enough a large degree. I save it in workspace. Then restart GAP having loaded workspace. Size command correctly specifies size of the relevant list. But attempt to receive "far enough" elements comes to failure (the message, something such as "List Element: [1361] must have an assigned value at pnt := G.orbit[b * U.lenblock + 1]; called from ... "). Certainly it is a pity, if such possibility is not present. And I can somewhere am mistaken? Thank. Sincerely Alec Makosi. From gzabl at yahoo.com Thu Oct 28 17:29:31 2004 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] GUAVA 2.0 alpha In-Reply-To: <417D38C9.6050306@usna.edu> Message-ID: <20041028162931.18338.qmail@web53008.mail.yahoo.com> David, I downloaded and installed GUAVA 2.0 on my PC running Windows 2K yesterday. I ran ./configure and make from a CYGWIN bash shell and the executables were all correctly created. I attempted RequirePackage("guava"); and received several undefined variable errors (I forget what the exact GAP error message is and am not at my machine). The following changes fixed the problem: In lib\codeman.gi: InstallMethod(ConstantWeightSubcode, "method for linear code, weight", true, [IsLinearCode, IsInt], 0, function(C, wt) ###Comment out: local S, c, a, CWS,path; ##GEZ add the following: local S, c, a, CWS,path, F, tmpdir, incode, infile, inV, Els, i, D; In lib\decoders.gi: ###??????? insert Irons' code here ?????? ###GEZ: I just return 0 for the moment return 0; and all of the tests I have had time to run worked except for two that I will report to you later, once I have had a chance to make sure that they are not an artifact of my GAP setup. I hope this is of some help and thanks for the great work, Gary Zablackis __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From laurent.bartholdi at epfl.ch Thu Oct 28 17:48:19 2004 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] a problem with matrix algebras and homomorphisms Message-ID: hi! i'm trying to set up the following: A := FreeAssociativeAlgebraWithOne(Integers,"s","f"); s := A.1; f := A.2; z := Zero(A); o := One(A); M := MatrixAlgebra(A,2); phi := AlgebraHomomorphismByImages(A,M,[s,f],[[[z,o],[o,z]],[[f,z],[s,z]]]); i.e. a free associative algebra A, and a map phi from A to 2x2 matrices over itself. unfortunately, gap chokes saying Error, and must have same left acting domain called from ... now on one side it's true that they don't have the same acting domain; all that's needed is that _contain_ the left acting domain of . so i tried to double-think gap with "M!.LeftActingDomain := Integers", but then i get in to the error that the matrix entries are not in Integers. thanks for your help, laurent -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From costanti at science.unitn.it Thu Oct 28 18:18:54 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] reza orfi In-Reply-To: <20041027085426.66305.qmail@web53409.mail.yahoo.com> References: <20041027085426.66305.qmail@web53409.mail.yahoo.com> Message-ID: <200410281918.54797.costanti@science.unitn.it> Dear all, On Wednesday 27 October 2004 10:54, Reza Orfi wrote: > Dear forum. > with many thanks. > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > but there are not in gap4r4. As Bettina Eick pointed out, all the groups of these orders are not available, and it is suggested to restrict to the groups really needed. In fact, some classes of groups can be computed more easily. I have lists of the groups of orders 2^10, 3^7, 3^8, 3^9, 5^7 and rank (number of generators) 1 and 2, and of order 5^6 and rank 1, 2, 3, and 4. These lists were calculated with the GrpConst package, and a few weeks of CPU time. They include all the groups of the given orders and ranks, but are not duplicate free. At the moment, these lists are roughly organized as a gap4.3 package. Calculating the groups of higher order in this way would require months of machine time, and calculating groups of higher rank would require to solve problems related to the memory management. If you are interested, I can give you these lists. Best regard, Marco Costantini From wdj at usna.edu Fri Oct 29 12:06:41 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Schreier-Sims for matrix gps paper Message-ID: <41822441.2060209@usna.edu> FYI: A new paper on implementing Schreier-Sims alg for matri groups in GAP by H Baarnhielm has appeared on the math arcxiv: http://arxiv.org/abs/math/0410593 Here's the abstract: This is the report of a project with the aim to make a new implementation of the Schreier-Sims algorithm in GAP, specialized for matrix groups. The standard Schreier-Sims algorithm is described in some detail, followed by descriptions of the probabilistic Schreier-Sims algorithm and the Schreier-Todd-Coxeter-Sims algorithm. Then we discuss our implementation and some optimisations, and finally we report on the performance of our implementation, as compared to the existing implementation in GAP, and we give benchmark results. The conclusion is that our implementation in some cases is faster and consumes much less memory. From sal at dcs.st-and.ac.uk Tue Nov 2 12:23:47 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Dangerous bug in Saving Workspaces (was "using GAP workspace") Message-ID: <20041102122347.5b2f94df@caolila.dcs.st-and.ac.uk> Dear GAP Forum, A few days ago Alex Makosi reported problems with certain objects in a saved GAP workspace not loading correctly. It turns out that the cause of this problem is the code that saves Boolean lists (blists). Any blist with more than 32 entries would almost certainly not be saved correctly, and might load with wrong values or even as a completely corrupt object. This bug has been present in all releases of GAP 4. A fix for this problem is available and will be included in release 4.4.4 due in a few days. However, all workspaces created by SaveWorkspace up to now must be regarded as suspect. Boolean lists are used quite widely in the library (for instance in the code for transversals of subgroups of permutation groups), so you may be using them even if you do not think you are. We must therefore recommend that you recheck any results created using data from saved workspace if you have any reason to doubt them. We apologize for any inconvenience caused by this problem. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From gap at gap.zssm.zp.ua Tue Nov 2 20:25:47 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Sophus package for Lie algebras is accepted Message-ID: <1532396636.20041102222547@gap.zssm.zp.ua> Dear GAP Forum, I am very glad to announce that the Sophus package by Csaba Schneider has been accepted as a refereed GAP package. The package is now available for download from the GAP www-page http://www.gap-system.org or FTP sites, and also from the author's homepage at http://www.sztaki.hu/~schneider/Research/Sophus/ Following author's description of the package, it is written for computations with nilpotent Lie algebras over finite prime fields. Using this package, you can compute the cover, the list of immediate descendants, and the automorphism group of such Lie algebras. You can also test if two such Lie algebras are isomorphic. The immediate descendant function of the package can be used to classify small-dimensional nilpotent Lie algebras over a given field. For instance, the package author obtained a classification of nilpotent Lie algebras with dimension at most 9 over F_2; see www.sztaki.hu/~schneider/Research/SmallLie. The Sophus package works in any operating system where the GAP system works. Please note that to use Sophus you will also need to install the AutPGrp package (version >= 1.2) by Bettina Eick and Eamonn O'Brien, which is available from the GAP site or from http://www.tu-bs.de/~beick/so.html. To use Sophus online help, it is necessary to install the GAP4 package GAPDoc by Frank Luebeck and Max Neunhoeffer, which is available from the GAP site or http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/. Alexander Konovalov From reza_orfi at yahoo.com Thu Nov 4 21:17:22 2004 From: reza_orfi at yahoo.com (Reza Orfi) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] p-group of maximal class Message-ID: <20041104211722.28402.qmail@web53405.mail.yahoo.com> Dear gap-forum. we have two questions about p-groups of maximal class. 1)let G be a p-group of maximal class with order p^n (n>=5). what do you know about the structure of G/Z(G)? for exampel we know that exp(G/Z(G))=p and G/Z(G) is of maximal class and has two generators. we want to know if anyone found a presentation for G/Z(G) or not. 2) let G be p-group of maximal class with order p^n (n>=5). we want to know some information about Aut(G). with best regards. REZA ORFI & SHIRIN FOULADI __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From gapforum at mowsey.org Thu Nov 4 22:18:45 2004 From: gapforum at mowsey.org (Mowsey) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] Re: p-group of maximal class Message-ID: <200411042237.iA4MbUow023404@gap-system.org> My apologies in advance for such a partial reply. I still don't know enough about groups of maximal class to be very useful. All p-groups of maximal class are descendents of a group of maximal class from a particular family, and the descendents can be described fairly explicitly by twistings. This is described in chapter 8 of Leedham-Green and McKay's "Structure of Groups of Prime Power Order". Prof. Eick has made these descriptions concrete in her paper "On the determination of the uniserial space groups with a given coclass." I have not myself been able to construct all groups of maximal class, but I have written a very simple routine to generate the infinite family. Perhaps it may help to at least have one example of every order, though this is obviously a far cry from having all such groups. # pHedralGroupCons(p,n) returns a group of order p^n and nilpotency # class p^(n-1). See Leedham-Green&McKay, example 3.1.5.ii, example # 7.4.14.i, and proposition 8.2.3.iii pHedralGroupCons:=function(p,n) local F,rels,i,j,gens; F:=FreeGroup(IsSyllableWordsFamily,n+1); gens:=GeneratorsOfGroup(F); gens:=Concatenation(gens,ListWithIdenticalEntries(p+1,One(F))); rels:=[]; Add(rels,gens[1]^p); for i in [2..n+1] do Add(rels,gens[i]^p/gens[i+p-1]); od; for i in [2..n+1] do if(1 = i mod (p-1) or p=2) then Add(rels, Comm(gens[i],gens[1])* Product(List([i+2-p..i],j->gens[j+p-1]^(Binomial(p,1+(j-2) mod (p-1))/p)))); else Add(rels,Comm(gens[i],gens[1])/gens[i+1]); fi; for j in [2..i-1] do Add(rels,Comm(gens[i],gens[j])); od; od; rels:=Filtered(rels,x->not IsOne(x)); return RefinedPcGroup(PcGroupFpGroup(F/rels)); end; From thomas.breuer at math.rwth-aachen.de Wed Nov 10 17:10:21 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 8 15:25:44 2005 Subject: [GAP Forum] a problem with matrix algebras and homomorphisms Message-ID: Dear GAP Forum, Laurent Bartholdi wrote > i'm trying to set up the following: > > A :=3D FreeAssociativeAlgebraWithOne(Integers,"s","f"); > s :=3D A.1; f :=3D A.2; z :=3D Zero(A); o :=3D One(A); > M :=3D MatrixAlgebra(A,2); > phi :=3D AlgebraHomomorphismByImages(A,M,[s,f],[[[z,o],[o,z]],[[f,z],= > [s,z]]]); > > i.e. a free associative algebra A, and a map phi from A to 2x2 matric= > es > over itself. > > unfortunately, gap chokes saying > Error, and must have same left acting domain called from ... > > now on one side it's true that they don't have the same acting domain= > ; all > that's needed is that _contain_ the left acting domain of . > so i tried to double-think gap with "M!.LeftActingDomain :=3D Integer= > s", > but then i get in to the error that the matrix entries are not in > Integers. I am sorry but the GAP machinery is not developed very far in the area of algebras and algebra homomorphisms. What works is the case of finite dimensional algebras over fields, which are treated mainly via linear algebra. (As indicated in the question, it is reasonable to extend the current behaviour such that also F-linear maps from a space V over F into a space W over K are supported, if K is an F-space; currently it is necessary to replace W explicitly by the corresponding F-space.) If I understand the underlying wish correctly then it is intended to map an element in a free associative algebra to a matrix. This can be achieved as follows. gap> A:= FreeAssociativeAlgebraWithOne( Integers, "s", "f" );; gap> z:= Zero(A);; o:= One(A);; gap> s:= A.1;; f:= A.2;; gap> mats:= [ [[z,o],[o,z]], [[f,z],[s,z]] ];; gap> MappedExpressionForElementOfFreeAssociativeAlgebra( s*f, [s,f], mats ); [ [ (1)*s, of ... ], [ (1)*f, of ... ] ] One final comment: Overwriting components in GAP objects with the !.' operator cannot be recommended. In fact, I would not trust any result of a computation with such an object. Note that GAP is able to store a lot of information inside its objects, and exchanging part of this by hand will almost certainly break the consistency of the object. All the best, Thomas From sidhu at mri.ernet.in Thu Nov 11 01:21:22 2004 From: sidhu at mri.ernet.in (Siddhartha Sarkar) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] commutator relations in p-group In-Reply-To: <200411101714.iAAHENp1021190@gap-system.org> Message-ID: Dear forum, I need to know the classification of p-groups satisfy the following commutator relation: (1) say the group G is minimally generated by d elements x_1, x_2,...,x_d. (2) if d is even, the relation is [x_1, x_2]...[x_{d-1},x_d] = 1 (3) for d odd, the relation is [x_1, x_2]...[x_d,x] = 1 for some element x in G. Kindly help me in this. with regards, Siddhartha *************************************************************************** Siddhartha Sarkar School of Mathematics Harish Chandra Research Institute Chhatnag Road,Jhusi Allahabad-211019. India. *************************************************************************** On Wed, 10 Nov 2004 forum-request@gap-system.org wrote: > Send Forum mailing list submissions to > forum@mail.gap-system.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.gap-system.org/mailman/listinfo/forum > or, via email, send a message with subject or body 'help' to > forum-request@mail.gap-system.org > > You can reach the person managing the list at > forum-owner@mail.gap-system.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Forum digest..." > > > Today's Topics: > > 1. reza orfi (Reza Orfi) > 2. Re: reza orfi (Bettina Eick) > 3. using GAP workspace (Alec Makosi) > 4. Re: GUAVA 2.0 alpha (Gary Zablackis) > 5. a problem with matrix algebras and homomorphisms > (Laurent Bartholdi) > 6. Re: reza orfi (Marco Costantini) > 7. Schreier-Sims for matrix gps paper (David Joyner) > 8. Dangerous bug in Saving Workspaces (was "using GAP > workspace") (Steve Linton) > 9. Sophus package for Lie algebras is accepted (Alexander Konovalov) > 10. p-group of maximal class (Reza Orfi) > 11. Re: p-group of maximal class (Mowsey) > 12. Re: a problem with matrix algebras and homomorphisms > (Thomas Breuer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 27 Oct 2004 01:54:26 -0700 (PDT) > From: Reza Orfi > Subject: [GAP Forum] reza orfi > To: Forum@gap-system.org > Message-ID: <20041027085426.66305.qmail@web53409.mail.yahoo.com> > Content-Type: text/plain; charset=us-ascii > > Dear forum. > with many thanks. > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > but there are not in gap4r4. > please help me .i need this group . > Best regard. > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------ > > Message: 2 > Date: Thu, 28 Oct 2004 10:38:58 +0200 (MESZ) > From: Bettina Eick > Subject: Re: [GAP Forum] reza orfi > To: , Reza Orfi > Message-ID: > > Content-Type: TEXT/PLAIN; charset=US-ASCII > > > Dear GAP Forum, dear Reza Orfi, > > you wrote: > > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > > but there are not in gap4r4. please help me .i need this group . > > it is true that the groups of your considered orders are not available > in GAP. For many of these orders an explicit determination of these > groups has not been done yet and would probably be difficult. > > For example, consider the groups of order p^10. For p=2, these groups > have been enumerated and thus it is known that there are 49487365422 > groups of order 2^10. (See: B. Eick, E. O'Brien. Enumerating p-groups. > J. Austral. Math. Soc. 67, 191 - 205 (1999).) As this is a very large > number, we did not attempt to list the groups of order 2^10 explicitly > or to include them in an electronic database. > > This problem is going to be worse for the groups of order 3^10 and 5^10. > The groups of these orders have not been enumerated or listed yet and it > seems unlikely that this will happen soon. > > For the smallest of your orders, (e.g. 3^7,) it may be possible to list > all or at least the interesting groups explicitly, if you are willing > to invest time and effort in it. In principle, the p-groups of order p^n > can be determined (up to isomorphism) using the p-group generation > algorithm by E. O'Brien. This is available in the ANUPQ package of GAP. > > A good strategy in your case might be to try to restrict the groups that > you need first and then try to list these groups with p-group generation. > If you find a suitable restriction, then this approach might work. > > Hope this helps, > Bettina > > > > > ------------------------------ > > Message: 3 > Date: Thu, 28 Oct 2004 23:17:32 +0800 > From: Alec Makosi > Subject: [GAP Forum] using GAP workspace > To: GAP forum > Message-ID: <1098976387.1039.8.camel@localhost.localdomain> > Content-Type: text/plain > > Dear forum! > > Whether is able GAP to maintain in workspace enumerators? > > More precisely, the situation is those: > I create enumerator for the list in which approximately 200000 elements. > Each element is a permutation enough a large degree. > I save it in workspace. Then restart GAP having loaded workspace. Size > command correctly specifies size of the relevant list. > But attempt to receive "far enough" elements comes to failure > (the message, something such as "List Element: [1361] must have > an assigned value at > pnt := G.orbit[b * U.lenblock + 1]; > called from ... "). > > Certainly it is a pity, if such possibility is not present. And I can > somewhere am mistaken? > > Thank. > > Sincerely Alec Makosi. > > > > > ------------------------------ > > Message: 4 > Date: Thu, 28 Oct 2004 09:29:31 -0700 (PDT) > From: Gary Zablackis > Subject: Re: [GAP Forum] GUAVA 2.0 alpha > To: David Joyner , GAP forum > Message-ID: <20041028162931.18338.qmail@web53008.mail.yahoo.com> > Content-Type: text/plain; charset=us-ascii > > David, > > I downloaded and installed GUAVA 2.0 on my PC running > Windows 2K yesterday. > > I ran ./configure and make from a CYGWIN bash shell > and the executables were all correctly created. I > attempted RequirePackage("guava"); and received > several undefined variable errors (I forget what the > exact GAP error message is and am not at my machine). > > The following changes fixed the problem: > In lib\codeman.gi: > InstallMethod(ConstantWeightSubcode, "method for > linear code, weight", true, > [IsLinearCode, IsInt], 0, > function(C, wt) > ###Comment out: local S, c, a, CWS,path; > ##GEZ add the following: > local S, c, a, CWS,path, F, tmpdir, incode, > infile, inV, Els, i, D; > In lib\decoders.gi: > ###??????? insert Irons' code here ?????? > ###GEZ: I just return 0 for the moment > return 0; > > and all of the tests I have had time to run worked > except for two that I will report to you later, once I > have had a chance to make sure that they are not an > artifact of my > GAP setup. > > I hope this is of some help and thanks for the great > work, > Gary Zablackis > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > > > ------------------------------ > > Message: 5 > Date: Thu, 28 Oct 2004 18:48:19 +0200 (CEST) > From: Laurent Bartholdi > Subject: [GAP Forum] a problem with matrix algebras and homomorphisms > To: Gap 4 Forum > Message-ID: > Content-Type: TEXT/PLAIN; charset=iso8859-1 > > hi! > i'm trying to set up the following: > > A := FreeAssociativeAlgebraWithOne(Integers,"s","f"); > s := A.1; f := A.2; z := Zero(A); o := One(A); > M := MatrixAlgebra(A,2); > phi := AlgebraHomomorphismByImages(A,M,[s,f],[[[z,o],[o,z]],[[f,z],[s,z]]]); > > i.e. a free associative algebra A, and a map phi from A to 2x2 matrices > over itself. > > unfortunately, gap chokes saying > Error, and must have same left acting domain called from ... > > now on one side it's true that they don't have the same acting domain; all > that's needed is that _contain_ the left acting domain of . > so i tried to double-think gap with "M!.LeftActingDomain := Integers", > but then i get in to the error that the matrix entries are not in > Integers. > > thanks for your help, > laurent > > -- > Laurent Bartholdi \ laurent.bartholdiepflch > EPFL, IGAT, Bâtiment BCH \ Téléphone: +41 21-6930380 > CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 > > > > ------------------------------ > > Message: 6 > Date: Thu, 28 Oct 2004 19:18:54 +0200 > From: Marco Costantini > Subject: Re: [GAP Forum] reza orfi > To: Reza Orfi , Forum@gap-system.org > Message-ID: <200410281918.54797.costanti@science.unitn.it> > Content-Type: text/plain; charset="iso-8859-1" > > Dear all, > > On Wednesday 27 October 2004 10:54, Reza Orfi wrote: > > Dear forum. > > with many thanks. > > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > > but there are not in gap4r4. > > As Bettina Eick pointed out, all the groups of these orders are not available, > and it is suggested to restrict to the groups really needed. In fact, some > classes of groups can be computed more easily. > > I have lists of the groups of orders 2^10, 3^7, 3^8, 3^9, 5^7 and rank (number > of generators) 1 and 2, and of order 5^6 and rank 1, 2, 3, and 4. > These lists were calculated with the GrpConst package, and a few weeks of CPU > time. They include all the groups of the given orders and ranks, but are not > duplicate free. At the moment, these lists are roughly organized as a gap4.3 > package. > > Calculating the groups of higher order in this way would require months of > machine time, and calculating groups of higher rank would require to solve > problems related to the memory management. > > If you are interested, I can give you these lists. > > Best regard, > Marco Costantini > > > > ------------------------------ > > Message: 7 > Date: Fri, 29 Oct 2004 07:06:41 -0400 > From: David Joyner > Subject: [GAP Forum] Schreier-Sims for matrix gps paper > To: GAP forum > Message-ID: <41822441.2060209@usna.edu> > Content-Type: text/plain; charset=us-ascii; format=flowed > > FYI: A new paper on implementing Schreier-Sims alg for matri groups in > GAP by > H Baarnhielm has appeared on > the math arcxiv: http://arxiv.org/abs/math/0410593 > > Here's the abstract: > This is the report of a project with the aim to make a new > implementation of the Schreier-Sims algorithm in GAP, specialized for > matrix groups. The standard Schreier-Sims algorithm is described in some > detail, followed by descriptions of the probabilistic Schreier-Sims > algorithm and the Schreier-Todd-Coxeter-Sims algorithm. Then we discuss > our implementation and some optimisations, and finally we report on the > performance of our implementation, as compared to the existing > implementation in GAP, and we give benchmark results. The conclusion is > that our implementation in some cases is faster and consumes much less > memory. > > > > ------------------------------ > > Message: 8 > Date: Tue, 2 Nov 2004 12:23:47 +0000 > From: Steve Linton > Subject: [GAP Forum] Dangerous bug in Saving Workspaces (was "using > GAP workspace") > To: GAP Forum > Message-ID: <20041102122347.5b2f94df@caolila.dcs.st-and.ac.uk> > Content-Type: text/plain; charset=US-ASCII > > > Dear GAP Forum, > > A few days ago Alex Makosi reported problems with certain objects in a > saved GAP workspace not loading correctly. It turns out that the cause of this > problem is the code that saves Boolean lists (blists). Any blist with more than > 32 entries would almost certainly not be saved correctly, and might load with > wrong values or even as a completely corrupt object. This bug has been present > in all releases of GAP 4. > > A fix for this problem is available and will be included in release 4.4.4 due > in a few days. However, all workspaces created by SaveWorkspace up to now must > be regarded as suspect. Boolean lists are used quite widely in the library (for > instance in the code for transversals of subgroups of permutation groups), so > you may be using them even if you do not think you are. We must therefore > recommend that you recheck any results created using data from saved workspace > if you have any reason to doubt them. > > We apologize for any inconvenience caused by this problem. > > Steve Linton > > -- > Steve Linton School of Computer Science & > Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44 (1334) 463269 > http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 > > > > ------------------------------ > > Message: 9 > Date: Tue, 2 Nov 2004 22:25:47 +0200 > From: Alexander Konovalov > Subject: [GAP Forum] Sophus package for Lie algebras is accepted > To: GAP Forum > Message-ID: <1532396636.20041102222547@gap.zssm.zp.ua> > Content-Type: text/plain; charset=us-ascii > > Dear GAP Forum, > > I am very glad to announce that the Sophus package by Csaba Schneider > has been accepted as a refereed GAP package. The package is now > available for download from the GAP www-page http://www.gap-system.org > or FTP sites, and also from the author's homepage at > > http://www.sztaki.hu/~schneider/Research/Sophus/ > > Following author's description of the package, it is written for > computations with nilpotent Lie algebras over finite prime fields. > Using this package, you can compute the cover, the list of immediate > descendants, and the automorphism group of such Lie algebras. You can > also test if two such Lie algebras are isomorphic. > > The immediate descendant function of the package can be used to > classify small-dimensional nilpotent Lie algebras over a given field. > For instance, the package author obtained a classification of > nilpotent Lie algebras with dimension at most 9 over F_2; see > www.sztaki.hu/~schneider/Research/SmallLie. > > The Sophus package works in any operating system where the GAP system > works. Please note that to use Sophus you will also need to install > the AutPGrp package (version >= 1.2) by Bettina Eick and Eamonn > O'Brien, which is available from the GAP site or from > http://www.tu-bs.de/~beick/so.html. > > To use Sophus online help, it is necessary to install the GAP4 package > GAPDoc by Frank Luebeck and Max Neunhoeffer, which is available from > the GAP site or http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/. > > > Alexander Konovalov > > > > > ------------------------------ > > Message: 10 > Date: Thu, 4 Nov 2004 13:17:22 -0800 (PST) > From: Reza Orfi > Subject: [GAP Forum] p-group of maximal class > To: Forum@gap-system.org > Message-ID: <20041104211722.28402.qmail@web53405.mail.yahoo.com> > Content-Type: text/plain; charset=us-ascii > > Dear gap-forum. > we have two questions about p-groups of maximal class. > 1)let G be a p-group of maximal class with order p^n (n>=5). > what do you know about the structure of G/Z(G)? > for exampel we know that exp(G/Z(G))=p and G/Z(G) is of maximal class > and has two generators. > we want to know if anyone found a presentation for G/Z(G) or not. > 2) let G be p-group of maximal class with order p^n (n>=5). > we want to know some information about Aut(G). > with best regards. > REZA ORFI & SHIRIN FOULADI > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------ > > Message: 11 > Date: Thu, 04 Nov 2004 17:18:45 -0500 > From: Mowsey > Subject: [GAP Forum] Re: p-group of maximal class > To: forum@gap-system.org > Message-ID: <200411042237.iA4MbUow023404@gap-system.org> > > My apologies in advance for such a partial reply. I still don't > know enough about groups of maximal class to be very useful. > > All p-groups of maximal class are descendents of a group of maximal > class from a particular family, and the descendents can be described > fairly explicitly by twistings. This is described in chapter 8 > of Leedham-Green and McKay's "Structure of Groups of Prime Power > Order". Prof. Eick has made these descriptions concrete in her > paper "On the determination of the uniserial space groups with a > given coclass." > > I have not myself been able to construct all groups of maximal > class, but I have written a very simple routine to generate the > infinite family. Perhaps it may help to at least have one example > of every order, though this is obviously a far cry from having > all such groups. > > # pHedralGroupCons(p,n) returns a group of order p^n and nilpotency > # class p^(n-1). See Leedham-Green&McKay, example 3.1.5.ii, example > # 7.4.14.i, and proposition 8.2.3.iii > > pHedralGroupCons:=function(p,n) > local F,rels,i,j,gens; > F:=FreeGroup(IsSyllableWordsFamily,n+1); > gens:=GeneratorsOfGroup(F); > gens:=Concatenation(gens,ListWithIdenticalEntries(p+1,One(F))); > rels:=[]; > Add(rels,gens[1]^p); > for i in [2..n+1] do Add(rels,gens[i]^p/gens[i+p-1]); od; > for i in [2..n+1] do > if(1 = i mod (p-1) or p=2) then Add(rels, Comm(gens[i],gens[1])* > Product(List([i+2-p..i],j->gens[j+p-1]^(Binomial(p,1+(j-2) mod (p-1))/p)))); > else Add(rels,Comm(gens[i],gens[1])/gens[i+1]); > fi; > for j in [2..i-1] do Add(rels,Comm(gens[i],gens[j])); od; > od; > rels:=Filtered(rels,x->not IsOne(x)); > return RefinedPcGroup(PcGroupFpGroup(F/rels)); > end; > > > > > ------------------------------ > > Message: 12 > Date: Wed, 10 Nov 2004 18:10:21 +0100 > From: Thomas Breuer > Subject: Re: [GAP Forum] a problem with matrix algebras and > homomorphisms > To: forum@gap-system.org > Message-ID: > > Dear GAP Forum, > > Laurent Bartholdi wrote > > > i'm trying to set up the following: > > > > A :=3D FreeAssociativeAlgebraWithOne(Integers,"s","f"); > > s :=3D A.1; f :=3D A.2; z :=3D Zero(A); o :=3D One(A); > > M :=3D MatrixAlgebra(A,2); > > phi :=3D AlgebraHomomorphismByImages(A,M,[s,f],[[[z,o],[o,z]],[[f,z],= > > [s,z]]]); > > > > i.e. a free associative algebra A, and a map phi from A to 2x2 matric= > > es > > over itself. > > > > unfortunately, gap chokes saying > > Error, and must have same left acting domain called from ... > > > > now on one side it's true that they don't have the same acting domain= > > ; all > > that's needed is that _contain_ the left acting domain of . > > so i tried to double-think gap with "M!.LeftActingDomain :=3D Integer= > > s", > > but then i get in to the error that the matrix entries are not in > > Integers. > > I am sorry but the GAP machinery is not developed very far in the > area of algebras and algebra homomorphisms. > What works is the case of finite dimensional algebras over fields, > which are treated mainly via linear algebra. > (As indicated in the question, it is reasonable to extend the > current behaviour such that also F-linear maps from a space V over F > into a space W over K are supported, if K is an F-space; > currently it is necessary to replace W explicitly by the corresponding > F-space.) > > If I understand the underlying wish correctly then it is intended to > map an element in a free associative algebra to a matrix. > This can be achieved as follows. > > gap> A:= FreeAssociativeAlgebraWithOne( Integers, "s", "f" );; > gap> z:= Zero(A);; o:= One(A);; > gap> s:= A.1;; f:= A.2;; > gap> mats:= [ [[z,o],[o,z]], [[f,z],[s,z]] ];; > gap> MappedExpressionForElementOfFreeAssociativeAlgebra( s*f, [s,f], mats ); > [ [ (1)*s, of ... ], [ (1)*f, of ... ] ] > > One final comment: > Overwriting components in GAP objects with the !.' operator > cannot be recommended. > In fact, I would not trust any result of a computation with such > an object. > Note that GAP is able to store a lot of information inside its objects, > and exchanging part of this by hand will almost certainly break the > consistency of the object. > > All the best, > Thomas > > > > > ------------------------------ > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > > End of Forum Digest, Vol 12, Issue 1 > ************************************ > From sidhu at mri.ernet.in Thu Nov 11 01:22:33 2004 From: sidhu at mri.ernet.in (Siddhartha Sarkar) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] commutator relations in p-group Message-ID: Dear forum, I need to know the classification of p-groups satisfy the following commutator relation: (1) say the group G is minimally generated by d elements x_1, x_2,...,x_d. (2) if d is even, the relation is [x_1, x_2]...[x_{d-1},x_d] = 1 (3) for d odd, the relation is [x_1, x_2]...[x_d,x] = 1 for some element x in G. Kindly help me in this. with regards, Siddhartha *************************************************************************** Siddhartha Sarkar School of Mathematics Harish Chandra Research Institute Chhatnag Road,Jhusi Allahabad-211019. India. *************************************************************************** On Wed, 10 Nov 2004 forum-request@gap-system.org wrote: > Send Forum mailing list submissions to > forum@mail.gap-system.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.gap-system.org/mailman/listinfo/forum > or, via email, send a message with subject or body 'help' to > forum-request@mail.gap-system.org > > You can reach the person managing the list at > forum-owner@mail.gap-system.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Forum digest..." > > > Today's Topics: > > 1. reza orfi (Reza Orfi) > 2. Re: reza orfi (Bettina Eick) > 3. using GAP workspace (Alec Makosi) > 4. Re: GUAVA 2.0 alpha (Gary Zablackis) > 5. a problem with matrix algebras and homomorphisms > (Laurent Bartholdi) > 6. Re: reza orfi (Marco Costantini) > 7. Schreier-Sims for matrix gps paper (David Joyner) > 8. Dangerous bug in Saving Workspaces (was "using GAP > workspace") (Steve Linton) > 9. Sophus package for Lie algebras is accepted (Alexander Konovalov) > 10. p-group of maximal class (Reza Orfi) > 11. Re: p-group of maximal class (Mowsey) > 12. Re: a problem with matrix algebras and homomorphisms > (Thomas Breuer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Wed, 27 Oct 2004 01:54:26 -0700 (PDT) > From: Reza Orfi > Subject: [GAP Forum] reza orfi > To: Forum@gap-system.org > Message-ID: <20041027085426.66305.qmail@web53409.mail.yahoo.com> > Content-Type: text/plain; charset=us-ascii > > Dear forum. > with many thanks. > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > but there are not in gap4r4. > please help me .i need this group . > Best regard. > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------ > > Message: 2 > Date: Thu, 28 Oct 2004 10:38:58 +0200 (MESZ) > From: Bettina Eick > Subject: Re: [GAP Forum] reza orfi > To: , Reza Orfi > Message-ID: > > Content-Type: TEXT/PLAIN; charset=US-ASCII > > > Dear GAP Forum, dear Reza Orfi, > > you wrote: > > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > > but there are not in gap4r4. please help me .i need this group . > > it is true that the groups of your considered orders are not available > in GAP. For many of these orders an explicit determination of these > groups has not been done yet and would probably be difficult. > > For example, consider the groups of order p^10. For p=2, these groups > have been enumerated and thus it is known that there are 49487365422 > groups of order 2^10. (See: B. Eick, E. O'Brien. Enumerating p-groups. > J. Austral. Math. Soc. 67, 191 - 205 (1999).) As this is a very large > number, we did not attempt to list the groups of order 2^10 explicitly > or to include them in an electronic database. > > This problem is going to be worse for the groups of order 3^10 and 5^10. > The groups of these orders have not been enumerated or listed yet and it > seems unlikely that this will happen soon. > > For the smallest of your orders, (e.g. 3^7,) it may be possible to list > all or at least the interesting groups explicitly, if you are willing > to invest time and effort in it. In principle, the p-groups of order p^n > can be determined (up to isomorphism) using the p-group generation > algorithm by E. O'Brien. This is available in the ANUPQ package of GAP. > > A good strategy in your case might be to try to restrict the groups that > you need first and then try to list these groups with p-group generation. > If you find a suitable restriction, then this approach might work. > > Hope this helps, > Bettina > > > > > ------------------------------ > > Message: 3 > Date: Thu, 28 Oct 2004 23:17:32 +0800 > From: Alec Makosi > Subject: [GAP Forum] using GAP workspace > To: GAP forum > Message-ID: <1098976387.1039.8.camel@localhost.localdomain> > Content-Type: text/plain > > Dear forum! > > Whether is able GAP to maintain in workspace enumerators? > > More precisely, the situation is those: > I create enumerator for the list in which approximately 200000 elements. > Each element is a permutation enough a large degree. > I save it in workspace. Then restart GAP having loaded workspace. Size > command correctly specifies size of the relevant list. > But attempt to receive "far enough" elements comes to failure > (the message, something such as "List Element: [1361] must have > an assigned value at > pnt := G.orbit[b * U.lenblock + 1]; > called from ... "). > > Certainly it is a pity, if such possibility is not present. And I can > somewhere am mistaken? > > Thank. > > Sincerely Alec Makosi. > > > > > ------------------------------ > > Message: 4 > Date: Thu, 28 Oct 2004 09:29:31 -0700 (PDT) > From: Gary Zablackis > Subject: Re: [GAP Forum] GUAVA 2.0 alpha > To: David Joyner , GAP forum > Message-ID: <20041028162931.18338.qmail@web53008.mail.yahoo.com> > Content-Type: text/plain; charset=us-ascii > > David, > > I downloaded and installed GUAVA 2.0 on my PC running > Windows 2K yesterday. > > I ran ./configure and make from a CYGWIN bash shell > and the executables were all correctly created. I > attempted RequirePackage("guava"); and received > several undefined variable errors (I forget what the > exact GAP error message is and am not at my machine). > > The following changes fixed the problem: > In lib\codeman.gi: > InstallMethod(ConstantWeightSubcode, "method for > linear code, weight", true, > [IsLinearCode, IsInt], 0, > function(C, wt) > ###Comment out: local S, c, a, CWS,path; > ##GEZ add the following: > local S, c, a, CWS,path, F, tmpdir, incode, > infile, inV, Els, i, D; > In lib\decoders.gi: > ###??????? insert Irons' code here ?????? > ###GEZ: I just return 0 for the moment > return 0; > > and all of the tests I have had time to run worked > except for two that I will report to you later, once I > have had a chance to make sure that they are not an > artifact of my > GAP setup. > > I hope this is of some help and thanks for the great > work, > Gary Zablackis > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > > > ------------------------------ > > Message: 5 > Date: Thu, 28 Oct 2004 18:48:19 +0200 (CEST) > From: Laurent Bartholdi > Subject: [GAP Forum] a problem with matrix algebras and homomorphisms > To: Gap 4 Forum > Message-ID: > Content-Type: TEXT/PLAIN; charset=iso8859-1 > > hi! > i'm trying to set up the following: > > A := FreeAssociativeAlgebraWithOne(Integers,"s","f"); > s := A.1; f := A.2; z := Zero(A); o := One(A); > M := MatrixAlgebra(A,2); > phi := AlgebraHomomorphismByImages(A,M,[s,f],[[[z,o],[o,z]],[[f,z],[s,z]]]); > > i.e. a free associative algebra A, and a map phi from A to 2x2 matrices > over itself. > > unfortunately, gap chokes saying > Error, and must have same left acting domain called from ... > > now on one side it's true that they don't have the same acting domain; all > that's needed is that _contain_ the left acting domain of . > so i tried to double-think gap with "M!.LeftActingDomain := Integers", > but then i get in to the error that the matrix entries are not in > Integers. > > thanks for your help, > laurent > > -- > Laurent Bartholdi \ laurent.bartholdiepflch > EPFL, IGAT, Bâtiment BCH \ Téléphone: +41 21-6930380 > CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 > > > > ------------------------------ > > Message: 6 > Date: Thu, 28 Oct 2004 19:18:54 +0200 > From: Marco Costantini > Subject: Re: [GAP Forum] reza orfi > To: Reza Orfi , Forum@gap-system.org > Message-ID: <200410281918.54797.costanti@science.unitn.it> > Content-Type: text/plain; charset="iso-8859-1" > > Dear all, > > On Wednesday 27 October 2004 10:54, Reza Orfi wrote: > > Dear forum. > > with many thanks. > > I need all groups of order 3^7,3^8,3^9,3^10,5^7,5^8,5^9,5^10. > > but there are not in gap4r4. > > As Bettina Eick pointed out, all the groups of these orders are not available, > and it is suggested to restrict to the groups really needed. In fact, some > classes of groups can be computed more easily. > > I have lists of the groups of orders 2^10, 3^7, 3^8, 3^9, 5^7 and rank (number > of generators) 1 and 2, and of order 5^6 and rank 1, 2, 3, and 4. > These lists were calculated with the GrpConst package, and a few weeks of CPU > time. They include all the groups of the given orders and ranks, but are not > duplicate free. At the moment, these lists are roughly organized as a gap4.3 > package. > > Calculating the groups of higher order in this way would require months of > machine time, and calculating groups of higher rank would require to solve > problems related to the memory management. > > If you are interested, I can give you these lists. > > Best regard, > Marco Costantini > > > > ------------------------------ > > Message: 7 > Date: Fri, 29 Oct 2004 07:06:41 -0400 > From: David Joyner > Subject: [GAP Forum] Schreier-Sims for matrix gps paper > To: GAP forum > Message-ID: <41822441.2060209@usna.edu> > Content-Type: text/plain; charset=us-ascii; format=flowed > > FYI: A new paper on implementing Schreier-Sims alg for matri groups in > GAP by > H Baarnhielm has appeared on > the math arcxiv: http://arxiv.org/abs/math/0410593 > > Here's the abstract: > This is the report of a project with the aim to make a new > implementation of the Schreier-Sims algorithm in GAP, specialized for > matrix groups. The standard Schreier-Sims algorithm is described in some > detail, followed by descriptions of the probabilistic Schreier-Sims > algorithm and the Schreier-Todd-Coxeter-Sims algorithm. Then we discuss > our implementation and some optimisations, and finally we report on the > performance of our implementation, as compared to the existing > implementation in GAP, and we give benchmark results. The conclusion is > that our implementation in some cases is faster and consumes much less > memory. > > > > ------------------------------ > > Message: 8 > Date: Tue, 2 Nov 2004 12:23:47 +0000 > From: Steve Linton > Subject: [GAP Forum] Dangerous bug in Saving Workspaces (was "using > GAP workspace") > To: GAP Forum > Message-ID: <20041102122347.5b2f94df@caolila.dcs.st-and.ac.uk> > Content-Type: text/plain; charset=US-ASCII > > > Dear GAP Forum, > > A few days ago Alex Makosi reported problems with certain objects in a > saved GAP workspace not loading correctly. It turns out that the cause of this > problem is the code that saves Boolean lists (blists). Any blist with more than > 32 entries would almost certainly not be saved correctly, and might load with > wrong values or even as a completely corrupt object. This bug has been present > in all releases of GAP 4. > > A fix for this problem is available and will be included in release 4.4.4 due > in a few days. However, all workspaces created by SaveWorkspace up to now must > be regarded as suspect. Boolean lists are used quite widely in the library (for > instance in the code for transversals of subgroups of permutation groups), so > you may be using them even if you do not think you are. We must therefore > recommend that you recheck any results created using data from saved workspace > if you have any reason to doubt them. > > We apologize for any inconvenience caused by this problem. > > Steve Linton > > -- > Steve Linton School of Computer Science & > Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44 (1334) 463269 > http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 > > > > ------------------------------ > > Message: 9 > Date: Tue, 2 Nov 2004 22:25:47 +0200 > From: Alexander Konovalov > Subject: [GAP Forum] Sophus package for Lie algebras is accepted > To: GAP Forum > Message-ID: <1532396636.20041102222547@gap.zssm.zp.ua> > Content-Type: text/plain; charset=us-ascii > > Dear GAP Forum, > > I am very glad to announce that the Sophus package by Csaba Schneider > has been accepted as a refereed GAP package. The package is now > available for download from the GAP www-page http://www.gap-system.org > or FTP sites, and also from the author's homepage at > > http://www.sztaki.hu/~schneider/Research/Sophus/ > > Following author's description of the package, it is written for > computations with nilpotent Lie algebras over finite prime fields. > Using this package, you can compute the cover, the list of immediate > descendants, and the automorphism group of such Lie algebras. You can > also test if two such Lie algebras are isomorphic. > > The immediate descendant function of the package can be used to > classify small-dimensional nilpotent Lie algebras over a given field. > For instance, the package author obtained a classification of > nilpotent Lie algebras with dimension at most 9 over F_2; see > www.sztaki.hu/~schneider/Research/SmallLie. > > The Sophus package works in any operating system where the GAP system > works. Please note that to use Sophus you will also need to install > the AutPGrp package (version >= 1.2) by Bettina Eick and Eamonn > O'Brien, which is available from the GAP site or from > http://www.tu-bs.de/~beick/so.html. > > To use Sophus online help, it is necessary to install the GAP4 package > GAPDoc by Frank Luebeck and Max Neunhoeffer, which is available from > the GAP site or http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/. > > > Alexander Konovalov > > > > > ------------------------------ > > Message: 10 > Date: Thu, 4 Nov 2004 13:17:22 -0800 (PST) > From: Reza Orfi > Subject: [GAP Forum] p-group of maximal class > To: Forum@gap-system.org > Message-ID: <20041104211722.28402.qmail@web53405.mail.yahoo.com> > Content-Type: text/plain; charset=us-ascii > > Dear gap-forum. > we have two questions about p-groups of maximal class. > 1)let G be a p-group of maximal class with order p^n (n>=5). > what do you know about the structure of G/Z(G)? > for exampel we know that exp(G/Z(G))=p and G/Z(G) is of maximal class > and has two generators. > we want to know if anyone found a presentation for G/Z(G) or not. > 2) let G be p-group of maximal class with order p^n (n>=5). > we want to know some information about Aut(G). > with best regards. > REZA ORFI & SHIRIN FOULADI > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > > ------------------------------ > > Message: 11 > Date: Thu, 04 Nov 2004 17:18:45 -0500 > From: Mowsey > Subject: [GAP Forum] Re: p-group of maximal class > To: forum@gap-system.org > Message-ID: <200411042237.iA4MbUow023404@gap-system.org> > > My apologies in advance for such a partial reply. I still don't > know enough about groups of maximal class to be very useful. > > All p-groups of maximal class are descendents of a group of maximal > class from a particular family, and the descendents can be described > fairly explicitly by twistings. This is described in chapter 8 > of Leedham-Green and McKay's "Structure of Groups of Prime Power > Order". Prof. Eick has made these descriptions concrete in her > paper "On the determination of the uniserial space groups with a > given coclass." > > I have not myself been able to construct all groups of maximal > class, but I have written a very simple routine to generate the > infinite family. Perhaps it may help to at least have one example > of every order, though this is obviously a far cry from having > all such groups. > > # pHedralGroupCons(p,n) returns a group of order p^n and nilpotency > # class p^(n-1). See Leedham-Green&McKay, example 3.1.5.ii, example > # 7.4.14.i, and proposition 8.2.3.iii > > pHedralGroupCons:=function(p,n) > local F,rels,i,j,gens; > F:=FreeGroup(IsSyllableWordsFamily,n+1); > gens:=GeneratorsOfGroup(F); > gens:=Concatenation(gens,ListWithIdenticalEntries(p+1,One(F))); > rels:=[]; > Add(rels,gens[1]^p); > for i in [2..n+1] do Add(rels,gens[i]^p/gens[i+p-1]); od; > for i in [2..n+1] do > if(1 = i mod (p-1) or p=2) then Add(rels, Comm(gens[i],gens[1])* > Product(List([i+2-p..i],j->gens[j+p-1]^(Binomial(p,1+(j-2) mod (p-1))/p)))); > else Add(rels,Comm(gens[i],gens[1])/gens[i+1]); > fi; > for j in [2..i-1] do Add(rels,Comm(gens[i],gens[j])); od; > od; > rels:=Filtered(rels,x->not IsOne(x)); > return RefinedPcGroup(PcGroupFpGroup(F/rels)); > end; > > > > > ------------------------------ > > Message: 12 > Date: Wed, 10 Nov 2004 18:10:21 +0100 > From: Thomas Breuer > Subject: Re: [GAP Forum] a problem with matrix algebras and > homomorphisms > To: forum@gap-system.org > Message-ID: > > Dear GAP Forum, > > Laurent Bartholdi wrote > > > i'm trying to set up the following: > > > > A :=3D FreeAssociativeAlgebraWithOne(Integers,"s","f"); > > s :=3D A.1; f :=3D A.2; z :=3D Zero(A); o :=3D One(A); > > M :=3D MatrixAlgebra(A,2); > > phi :=3D AlgebraHomomorphismByImages(A,M,[s,f],[[[z,o],[o,z]],[[f,z],= > > [s,z]]]); > > > > i.e. a free associative algebra A, and a map phi from A to 2x2 matric= > > es > > over itself. > > > > unfortunately, gap chokes saying > > Error, and must have same left acting domain called from ... > > > > now on one side it's true that they don't have the same acting domain= > > ; all > > that's needed is that _contain_ the left acting domain of . > > so i tried to double-think gap with "M!.LeftActingDomain :=3D Integer= > > s", > > but then i get in to the error that the matrix entries are not in > > Integers. > > I am sorry but the GAP machinery is not developed very far in the > area of algebras and algebra homomorphisms. > What works is the case of finite dimensional algebras over fields, > which are treated mainly via linear algebra. > (As indicated in the question, it is reasonable to extend the > current behaviour such that also F-linear maps from a space V over F > into a space W over K are supported, if K is an F-space; > currently it is necessary to replace W explicitly by the corresponding > F-space.) > > If I understand the underlying wish correctly then it is intended to > map an element in a free associative algebra to a matrix. > This can be achieved as follows. > > gap> A:= FreeAssociativeAlgebraWithOne( Integers, "s", "f" );; > gap> z:= Zero(A);; o:= One(A);; > gap> s:= A.1;; f:= A.2;; > gap> mats:= [ [[z,o],[o,z]], [[f,z],[s,z]] ];; > gap> MappedExpressionForElementOfFreeAssociativeAlgebra( s*f, [s,f], mats ); > [ [ (1)*s, of ... ], [ (1)*f, of ... ] ] > > One final comment: > Overwriting components in GAP objects with the !.' operator > cannot be recommended. > In fact, I would not trust any result of a computation with such > an object. > Note that GAP is able to store a lot of information inside its objects, > and exchanging part of this by hand will almost certainly break the > consistency of the object. > > All the best, > Thomas > > > > > ------------------------------ > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > > End of Forum Digest, Vol 12, Issue 1 > ************************************ > From e.obrien at auckland.ac.nz Thu Nov 11 10:12:16 2004 From: e.obrien at auckland.ac.nz (Eamonn OBrien) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] International conference, Auckland February 2005 Message-ID: <200411111012.iABACGl24269@aitken.math.auckland.ac.nz> Dear Gap Forum, ================================================ Geometry: Interactions with Algebra and Analysis International conference, Auckland 14-18 February 2005 ================================================ Final announcement This international meeting is one of the key events of a Thematic Program funded by the New Zealand Institute of Mathematics and its Applications . Full details of the program and its related events, including a workshop at Napier from 8-15 January 2005, can be found at Speakers ======== The following will deliver one-hour invited lectures: * Arjeh Cohen (Eindhoven) * Marston Conder (Auckland) * Marcel Herzog (Tel Aviv) * Rob Howlett (Sydney) * Bill Kantor (Oregon) * Laci Kovacs (Canberra) * Gus Lehrer (Sydney) * Martin Liebeck (Imperial College) * Colin Maclachlan (Aberdeen) * Gunter Malle (Kassel) * Chuck Miller (Melbourne) * Paul Norbury (Melbourne) * Cheryl Praeger (University of Western Australia) * Lawrence Reeves (Melbourne) * Peter Schmid (Tuebingen) * Carlo Scoppola (L'Aquila) * Akos Seress (Ohio State University) * Aner Shalev (Jerusalem) Titles and abstracts for talks are available via the WEB site. Timetable ========= The conference will commence on Monday, 14 February, and finish on Friday, 18 February. In addition to the invited lectures, there will be an opportunity for contributed talks, of up to 25 minutes in duration. See the WEB site for details. Accommodation ============= A range of options, catering for most budgets and tastes, is available. See the WEB site for details, including reservation links. All unallocated accommodation held by us is released after registrations close on December 10, 2004. Further information =================== The WEB site for the meeting is There you can register to participate and contribute a lecture. It also includes information on accommodation, tourism, and scholarships which may be available to both local and international students. Registration ============= Registrations close on December 10, 2004. Please register via the WEB site. Since the meeting runs during high tourism season, we encourage you to act now. Best wishes. Eamonn O'Brien and Gaven Martin Program Directors From primoz.moravec at fmf.uni-lj.si Mon Nov 15 14:32:34 2004 From: primoz.moravec at fmf.uni-lj.si (Primoz Moravec) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] 64-bit GAP Message-ID: <44305.193.2.67.50.1100529154.squirrel@wwwmail.fmf.uni-lj.si> Dear Forum, does there exist a 64-bit version of GAP? Best regards, Primoz. From allomber at math.u-bordeaux.fr Mon Nov 15 17:47:19 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] 64-bit GAP In-Reply-To: <44305.193.2.67.50.1100529154.squirrel@wwwmail.fmf.uni-lj.si> References: <44305.193.2.67.50.1100529154.squirrel@wwwmail.fmf.uni-lj.si> Message-ID: <20041115174719.GA25398@seventeen> On Mon, Nov 15, 2004 at 03:32:34PM +0100, Primoz Moravec wrote: > Dear Forum, > > does there exist a 64-bit version of GAP? I am not sure what you are looking for, but I have personnaly tested GAP on the following 64bit plateforms (under a 64bit userland): alpha, ia64 and amd64, all running Debian GNU/Linux. The only issue is that you have to compile without optimisations on ia64. Cheers, Bill. From wdj at usna.edu Mon Nov 15 18:31:16 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] GUAVA 2.0 beta Message-ID: <4198F5F4.3050903@usna.edu> Hello: I've been working on GUAVA and making a lot of additions. There is an beta version of the next release, called GUAVA 2.0, now available at http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ if anyone is interested in testing it out. Thanks to those who commented on the alpha version and thanks in advance for any more bug reports. Here is a list of some of the changes from version 1.9: o Changed ViewObj method for random linear codes, speeding up the implementation of the RandomLinearCode command. o Modified BCHCode and RootsCode implementation. o Corrected bug in UpperBoundElias. o Rewrote GUAVA documentation into GAPDoc, with many revisions. o Added EvaluationCode and related codes (GeneralizedReedMullerCode, GeneralizedReedSolomonCode, OnePointAGCode, joint with Jason McGowan) o Added interpolation decoding method for GeneralizedReedSolomonCode (joint with Jason McGowan) o Added S. Gao decoding method for GeneralizedReedSolomonCode o Fixed bug in MinimumDistance (wrong result if G=(I|A) and A had a row of 0s) o MinimumDistanceLeon algorithm implemented (joint with Jerry Irons) in non-binary case. - unfinished o Added list-decoding algorithm for GeneralizedReedSolomonCode (joint with Clifton Lennon - unfinished) o Bug fix for SortedGaloisFieldElements (used to construct Gabidulin codes). o CalculateLinearCodeCoveringRadius changed to a slightly faster algorithm. o minor bug fix for ExhaustiveSearchCoveringRadius o minor bug fix for IncreaseCoveringRadiusLowerBound o Changed ConstantWeightSubcode so it does not call Leon's program if wtdist is not installed. Moreover, the procedure interfacing with the binary had a bug, which was fixed. o Added check in AutomorphismGroup: if Leon's desauto is not compiled (e.g., on a windows machine) then it calls PermutationGroup command instead. o Added Decodeword (which also works for non-linear codes) o Added PermutationAutomorphismGroup (which will replace the poorly named PermutationGroup command added in version 1.9) o Moved several decoding commands from codeops.gi to decoders.gi (with no change in functionality). o Added LowerBoundGilbertVarshamov and LowerBoundSpherePacking. Note that there are still 2 unfinished items to be fininished before the final release. - David Joyner From ahmaderfanian at yahoo.com Tue Nov 16 06:31:22 2004 From: ahmaderfanian at yahoo.com (Ahmad Erfanian) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Schur Multiplier In-Reply-To: <6.1.0.6.0.20041014102621.01c24018@139.179.10.13> Message-ID: <20041116063122.1374.qmail@web41205.mail.yahoo.com> Dear users, I would like to ask that how we can compute the Schur Multiplier of a given finite group by Gap. With thanks, A. Erfanian. --------------------------------- Do you Yahoo!? Meet the all-new My Yahoo! – Try it today! From dfh at maths.warwick.ac.uk Tue Nov 16 11:30:18 2004 From: dfh at maths.warwick.ac.uk (Derek Holt) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Schur Multiplier In-Reply-To: <20041116063122.1374.qmail@web41205.mail.yahoo.com> References: <6.1.0.6.0.20041014102621.01c24018@139.179.10.13> <20041116063122.1374.qmail@web41205.mail.yahoo.com> Message-ID: <20041116113018.GA14450@maths.warwick.ac.uk> On Mon, Nov 15, 2004 at 10:31:22PM -0800, Ahmad Erfanian wrote: > > Dear users, > > I would like to ask that how we can compute the Schur Multiplier of a given finite group by Gap. > > With thanks, > > A. Erfanian. One possibility is to use the package "cohomolo". But this package involves external C programs, and it is only possible to use it under Unix or Linux. You first have to follow the instructions in the package directory to compile the external programs. It calculates the Schur multiplier with respect to a given prime, so you need to try all primes dividing the group order. The input group must be a permutation group. Here is an example. gap> G:=PSL(3,4);; gap> chr := CHR(G,2);; gap> SchurMultiplier(chr); [ 4, 4 ] gap> chr := CHR(G,3);; gap> SchurMultiplier(chr); [ 3 ] gap> chr := CHR(G,5);; gap> SchurMultiplier(chr); The Sylow p-subgroup of the group is cyclic - so the multiplier is trivial. [ ] gap> chr := CHR(G,7);; gap> SchurMultiplier(chr); The Sylow p-subgroup of the group is cyclic - so the multiplier is trivial. [ ] We conclude that the Schur multiplier is a direct product of cyclic groups of order 4, 4 and 3. It is also possible to compute finite presentations of covering groups. Derek Holt. From wdj at usna.edu Tue Nov 16 11:54:23 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] 64-bit GAP In-Reply-To: <44305.193.2.67.50.1100529154.squirrel@wwwmail.fmf.uni-lj.si> References: <44305.193.2.67.50.1100529154.squirrel@wwwmail.fmf.uni-lj.si> Message-ID: <4199EA6F.3080006@usna.edu> Primoz Moravec wrote: >Dear Forum, > >does there exist a 64-bit version of GAP? > > Yes. GAP compiles natively on a 64-bit linux machine. On an amd-64 machine with suse linx 9.1, the flag ./configure --enable-libsuffix=64 works. - David Joyner >Best regards, >Primoz. > >_______________________________________________ >Forum mailing list >Forum@mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum > > From hulpke at math.colostate.edu Tue Nov 16 17:48:52 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Schur Multiplier In-Reply-To: <20041116063122.1374.qmail@web41205.mail.yahoo.com> Message-ID: <200411161748.iAGHmqHT000391@schur.math.colostate.edu> Dear GAP-Forum, > I would like to ask that how we can compute the Schur Multiplier of a given finite group by Gap. Let me just add to Derek Holt's response, that GAP also has a built-in routine for multiplier calcultation. The commands are AbelianInvariantsMultiplier (structure of the multiplier) and EpimorphismSchurCover (map from a covering group, represented as finitely presented group, onto original group) gap> AbelianInvariantsMultiplier(SymmetricGroup(6)); [ 2 ] gap> EpimorphismSchurCover(SymmetricGroup(6)); [ f1, f2, f3, f4, f5 ] -> [ (1,2), (2,3), (3,4), (4,5), (5,6) ] The algorithms used are similar to the ones used by the cohomolo' package, the main advantage of the library implementation is that it does not require an external program and thus can also run under Windows or if the cohomolo' package is not installed. On the other hand I would expect the cohomolo' package to run faster. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From D.V.Pasechnik at uvt.nl Wed Nov 17 12:28:14 2004 From: D.V.Pasechnik at uvt.nl (D.V.Pasechnik) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Schur Multiplier In-Reply-To: <20041116113018.GA14450@maths.warwick.ac.uk> References: <6.1.0.6.0.20041014102621.01c24018@139.179.10.13> <20041116063122.1374.qmail@web41205.mail.yahoo.com> <20041116113018.GA14450@maths.warwick.ac.uk> Message-ID: <20041117122814.GB684@pi1216> Dear Forum, On Tue, Nov 16, 2004 at 11:30:18AM +0000, Derek Holt wrote: > On Mon, Nov 15, 2004 at 10:31:22PM -0800, Ahmad Erfanian wrote: > > I would like to ask that how we can compute the Schur Multiplier of a given finite group by Gap. > One possibility is to use the package "cohomolo". But this package involves > external C programs, and it is only possible to use it under Unix or Linux. in fact, "cohomolo" also runs seemingly OK on Windows with Cygwin. There are a couple of very minor changes in the installation procedure of the package. I had to 1) change the line "./Makefile" to "Makefile" in the configure script, (taking care that .: is in my PATH) 2) add, after the configuration was complete, the first line #!/bin/sh to the file bin/i686-pc-cygwin-gcc/execcmd.gap (the proper fix is to change the original file that gets copied to that place during the installation) 3) in testdata/test.g change the first line to TestDir:= "../testdata/"; As far as the installation of the current GAP version under Cygwin, just get the standard Unix distribution and follow the Unix instructions. At the very end of the procedure you'll see >( cd bin/i686-pc-cygwin-gcc ; strip gap) >strip: gap: No such file or directory >make: *** [strip] Error 1 that you can safely ignore. (This leaves you with a slightly bigger gap executable, that's all) Actually, this can be fixed, by changing the configure script (or maybe just Makefile.in) so that it takes notice of the fact that the executable files get suffix .exe on Windows. That is to say, that the line ( cd bin/i686-pc-cygwin-gcc ; strip gap) in the generated Makefile must be ( cd bin/i686-pc-cygwin-gcc ; strip gap.exe) instead. Hope this is of some help, Dima PS. For these who do not know, Cygwin is on http://www.cygwin.com --- Dr. D.V. Pasechnik E&OR/FEB Tilburg University P.O. Box 90153 5000 LE Tilburg The Netherlands email: d.v.pasechnik@uvt.nl url: http://center.uvt.nl/staff/pasechnik/ From gzabl at yahoo.com Wed Nov 17 17:06:44 2004 From: gzabl at yahoo.com (Gary Zablackis) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Schur Multiplier In-Reply-To: <20041117122814.GB684@pi1216> Message-ID: <20041117170644.87620.qmail@web53001.mail.yahoo.com> Dear Forum, On Wed, 17 Nov 2004 13:28:14 +0100 D.V.Pasechnik wrote: in fact, "cohomolo" also runs seemingly OK on Windows with Cygwin. There are a couple of very minor changes in the installation procedure of the package. I had to ... I am in the process of going through all of the packages for GAP and writing up what changes need to be made in the setup instructions and scripts for each one to enable seamless installation under Windows with Cygwin. I have been able to get all packages except for one (which requires using the GAC to run) to work under Windows with Cygwin. I hope to have sent information to all of the package authors as well as the GAP support team within the next month or so. Sincerely, Gary Zablackis --------------------------------- Do you Yahoo!? Meet the all-new My Yahoo! – Try it today! From kwheinri at swen.uwaterloo.ca Tue Nov 16 16:10:52 2004 From: kwheinri at swen.uwaterloo.ca (Kenn Heinrich) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] IntHexString bug? Message-ID: <200411161610.LAA27467@bsr2.uwaterloo.ca> All, Is this a bug? It looks like IntHexString only handles StringRep strings, while other functions like LowercaseString, EvalString, and Chomp can handle either explicit char lists or StringRep strings. - Kenn s1 := "a"; s2 := ['a']; s1 = s2; # evaluates to true as expected LowercaseString(s1) = LowercaseString(s2); # true as expected IntHexString(s1); # 10 as expected IntHexString(s2); # gives a non-valid character error From mschaps at macs.biu.ac.il Mon Nov 22 12:08:09 2004 From: mschaps at macs.biu.ac.il (Malka Schaps) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Upgrade anxiety Message-ID: Dear forum, How compatible are gap 4.2 and gap 4.4? I have some long programs which work fine in 4.2, and before I ask our administrator to upgrade to 4.4, I would like to hear that they won't fill up with bugs. I am interested in the upgrade because of this EpimorphismSchurCover function I just heard about from the forum. It exists already in the 4.3 that I have on my home computer. How do I ask GAP to save the source, i.e., the Schur cover, so that I can transfer it to the mainframe, which still is running 4.2? ( At least until I get up my nerve to order the upgrade.) It is given as a pc group. Once it gets do the mainframe, it will be used to calculate normalizers and centralizers of various p-subgroups for our internet database of blocks with abelian defect group. Would it be best to convert to a permutation representation? Sincerely, Malka Schaps From saadchina at maktoob.com Tue Nov 23 11:33:29 2004 From: saadchina at maktoob.com (saad bedaiwi) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] parabolic and Borel subgroups Message-ID: Dear forum, Is there any way to get the parabolic subgroups and the Borel subgroups of SL(2,7)? How? Thanks ----------------- Saad.A.Bedaiwi Univ. Of Science And Technology Of China,Dept Of Math. Tel No : +86 551_3650275 ------------------- _________________________________________________ ?????? ???? ???????? ??????? ??? ?????! ?????? ???? ?????? http://www.maktoob.com/chat From jmcd at dcs.st-and.ac.uk Wed Nov 24 09:24:07 2004 From: jmcd at dcs.st-and.ac.uk (John McDermott) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Fwd: Upgrade anxiety Message-ID: <977A2E3F-3DFA-11D9-AC87-000A95ABA3A2@dcs.st-and.ac.uk> This was posted to the old address (gap-forum@dcs...). Mail to the GAP Forum should be posted to the new address forum@gap-system.org. John. Begin forwarded message: > From: Alexander Hulpke > Date: 23 November 2004 18:01:06 GMT > To: gap-forum@dcs.st-and.ac.uk > Subject: Re: Upgrade anxiety > > Dear Malka Schaps, Dear GAP-Forum, > >> How compatible are gap 4.2 and gap 4.4? I have some long programs >> which work fine in 4.2, and before I ask our administrator to upgrade >> to >> 4.4, I would like to hear that they won't fill up with bugs. > > Incompatibilities are minimal and listed in the release announcements. > I > would be surprised if you had a program that would not run correctly > in 4.2 > but not in 4.4. (If I am wrong and you upgrade and your program does > not run > any longer, feel free to send me the program and input with which it > runs > under 4.2 but not 4.4 and I will have a look at it.) > >> I am interested in the upgrade because of this >> EpimorphismSchurCover >> function I just heard about from the forum. It exists already in the >> 4.3 that I have on my home computer. How do I ask GAP to save the >> source, i.e., the Schur cover, so that I can transfer it to the >> mainframe, which still is running 4.2? ( At least until I get up my >> nerve > > The source is in lib/schur.gd and lib/schur.gi. However I would advise > against doing so -- the code has not been tested under 4.2 and might > rely on > other additions. Also 4.4 contains a multitude of bug fixes. > >> to order the upgrade.) It is given as a pc group. Once it gets do >> the >> mainframe, it will be used to calculate normalizers and centralizers >> of >> various p-subgroups for our internet database of blocks with abelian >> defect group. Would it be best to convert to a permutation >> representation? > > No, a pc group will be fine. The group obtained from > EpimorphismSchurCover' > will be represented as a finitely presented group. You can use > SolvableQuotient to convert it to a pc group again. > > (I believe the cohomolo' package requires permutation groups. If you > have > large calculations, using this package might be notably faster). > > Best wishes, > > Alexander Hulpke > > -- Colorado State University, Department of Mathematics, > Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA > email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > -- John McDermott Computing Officer & Purchase Officer School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SS tel +44 1334 463252 mob +44 7941 507531 From wdj at usna.edu Wed Nov 24 11:28:03 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] parabolic and Borel subgroups In-Reply-To: References: Message-ID: <41A47043.5060106@usna.edu> Hi Saad Bedaiwi: p:=7; G:=SL(2,p); a0:=[ [ Z(p), Z(p) ], [ Z(p)*0, Z(p)^(-1) ] ]; n0:=[ [ Z(p)0, Z(p) ], [ Z(p)*0, Z(p)0 ] ]; B:=Group([a0,n0]); IsSubgroup(G,B); On the other hand, it is convenient often to first convert the group SL(2,7) into a permutation group. For this use, G:=SL(2,p); iso:=IsomorphismPermGroup(G); G0:=Image(iso); a0:=Image(iso,[ [ Z(p), Z(p) ], [ Z(p)*0, Z(p)^(-1) ] ]); n0:=Image(iso,[ [ Z(p)0, Z(p) ], [ Z(p)*0, Z(p)0 ] ]); B:=Group([a0,n0]);; # the Borel as a permutation group Hope this helps. - David Joyner ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ saad bedaiwi wrote: >Dear forum, > >Is there any way to get the parabolic subgroups and the Borel subgroups of >SL(2,7)? How? > > > >Thanks > > >----------------- Saad.A.Bedaiwi > >Univ. Of Science And Technology Of China,Dept Of Math. > >Tel No : +86 551_3650275 ------------------- > > >_________________________________________________ >?????? ???? ???????? ??????? ??? ?????! ?????? ???? ?????? >http://www.maktoob.com/chat > >_______________________________________________ >Forum mailing list >Forum@mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum > > From kohl at mathematik.uni-stuttgart.de Wed Nov 24 16:59:40 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] commutator relations in p-group In-Reply-To: References: Message-ID: <41A4BDFC.6060308@mathematik.uni-stuttgart.de> Dear Forum, Siddhartha Sarkar wrote: > I need to know the classification of p-groups satisfy the following > commutator relation: > > (1) say the group G is minimally generated by d elements > x_1, x_2,...,x_d. > (2) if d is even, the relation is [x_1, x_2]...[x_{d-1},x_d] = 1 > (3) for d odd, the relation is [x_1, x_2]...[x_d,x] = 1 > for some element x in G. Your condition is relatively weak -- A pc-presentation of a p-group of order p^n requires n(n+1)/2 relations. Out of these you prescribe only one. Given that there are asymptotically p^((2/27)n^3) isomorphism types of groups of order p^n, it seems likely that there also is a huge number of p-groups which satisfy your relation, and that it does not make sense to attempt to classify them in general. Bettina Eick has already suggested you off-list to use NQ or ANUPQ -- maybe these packages help you in investigating your problem. By the way: when replying to Forum digests, please make sure that you only cite the relevant part. Thanks! Best wishes, Stefan Kohl From frank.luebeck at math.rwth-aachen.de Thu Nov 25 16:59:33 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] IntHexString bug? In-Reply-To: <200411161610.LAA27467@bsr2.uwaterloo.ca> Message-ID: On Tue, 16 Nov 2004, Kenn Heinrich wrote: > Is this a bug? It looks like IntHexString only handles StringRep > strings, while other functions like LowercaseString, EvalString, and > Chomp can handle either explicit char lists or StringRep strings. [...] > s1 := "a"; > s2 := ['a']; > s1 = s2; # evaluates to true as expected > LowercaseString(s1) = LowercaseString(s2); # true as expected > IntHexString(s1); # 10 as expected > IntHexString(s2); # gives a non-valid character error Dear Kenn Heinrich, dear Forum, Thanks for this example! You are right, this is a bug (and the error message from the last line is strange). It was forgotten to mention in the documentation that the argument should be in IsStringRep. For the moment, please, apply 'ConvertToStringRep' to a string in list of characters representation before using it as argument for IntHexString. In one of the next updates of GAP I will change IntHexString to silently convert its argument if necessary. With best regards, Frank Luebeck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From Dursun.Bulutoglu at afit.edu Thu Nov 25 20:11:32 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:45 2005 Subject: [GAP Forum] Removing identifiers in GAP Message-ID: <4CFC110AB744244C824D25E59665956C01F9EEC7@ms-afit-04.afit.edu> Dear GAP Forum, I was wondering if it is possible to remove user defined identifiers in GAP. If I type "a" right after I start the gap session I get the message "Variable 'a' must have a value". Then I make the following object assignment: "a:=4;" Then if I type "a;" I get "4". Now how can I undo this assignment? In other words what am I supposed to do other than logging out so that I get the message Variable 'a' must have a value? From justin at mac.com Thu Nov 25 22:06:15 2004 From: justin at mac.com (Justin Walker) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Removing identifiers in GAP In-Reply-To: <4CFC110AB744244C824D25E59665956C01F9EEC7@ms-afit-04.afit.edu> References: <4CFC110AB744244C824D25E59665956C01F9EEC7@ms-afit-04.afit.edu> Message-ID: <39E647EC-3F2E-11D9-84D1-00306544D642@mac.com> On Nov 25, 2004, at 12:11, Bulutoglu Dursun A Civ AFIT/ENC wrote: > I was wondering if it is possible to remove user defined > identifiers in GAP. Cf. 'Unbind()'. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | Some people have a mental | horizon of radius zero, and | call it their point of view. | -- David Hilbert *--------------------------------------*-------------------------------* From teirllm at dms.auburn.edu Thu Nov 25 22:07:27 2004 From: teirllm at dms.auburn.edu (Luc Teirlinck) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Removing identifiers in GAP In-Reply-To: <4CFC110AB744244C824D25E59665956C01F9EEC7@ms-afit-04.afit.edu> (Dursun.Bulutoglu@afit.edu) References: <4CFC110AB744244C824D25E59665956C01F9EEC7@ms-afit-04.afit.edu> Message-ID: <200411252207.iAPM7Rg05816@raven.dms.auburn.edu> Bulutoglu Dursun wrote: "a:=4;" Then if I type "a;" I get "4". Now how can I undo this assignment? Unbind(a); Sincerely, Luc. From mmarco at unizar.es Fri Nov 26 11:44:28 2004 From: mmarco at unizar.es (mmarco@unizar.es) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] problems with pargap Message-ID: <1101469468.41a7171c8de0e@webmail.unizar.es> We are working in the study of line arrangements, and need to solve some combinatorial problems. GAP seems to be the best option for it, but the size of our problems is too much for a single computer, so we are trying it with pargap. The problem is that we are not able to make it work. For testing, i have installed it in two machines: the first one is called riemann.unizar.es, and gap is installed in /usr/local/bin/gap4r4/ the second one is called poincare.unizar.es and gap is installed in /usr/local/lib/gap4r4/ we don't use rsh for security reasons, but we use ssh instead. The content of the file procgroup in /usr/local/bin/gap4r4/pkg/pargap/bin/ is local 0 poincare.unizar.es 1 /usr/local/lib/gap4r4/pkg/pargap/bin/pargap.sh An the content of pargap.sh in the same directory is RSH=ssh export RSH if [ "x$GAP_DIR" = "x" ]; then GAP_DIR=/usr/local/bin/gap4r4 fi if [ "x$GAP_MEM" = "x" ]; then GAP_MEM=24m fi if [ "x$GAP_PRG" = "x" ]; then GAP_PRG=i686-pc-linux-gnu-gcc/pargapmpi fi exec $GAP_DIR/bin/$GAP_PRG -m $GAP_MEM -l$GAP_DIR $* But when i execute ./pargap.sh from the directory where it is, the only output i get is: slave.c(line 50): connect: No route to host What am i doing wrong? Thanks in advance. Miguel Angel Marco-Buzunariz Departamento de Matematicas Universidad de Zaragoza From Dursun.Bulutoglu at afit.edu Fri Nov 26 20:33:46 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Removing identifiers in GAP Message-ID: <4CFC110AB744244C824D25E59665956C01F9EED7@ms-afit-04.afit.edu> I was wondering if it is possible to remove several identifiers for several global variables at once. Is there a way to do something like "Unbind(a,b,c);"? "Unbind(a,b,c);" does not work. Thanks a lot for your help. Dursun. -----Original Message----- From: Luc Teirlinck [mailto:teirllm@dms.auburn.edu] Sent: Thursday, November 25, 2004 5:07 PM To: Bulutoglu Dursun A Civ AFIT/ENC Cc: forum@gap-system.org Subject: Re: [GAP Forum] Removing identifiers in GAP Bulutoglu Dursun wrote: "a:=4;" Then if I type "a;" I get "4". Now how can I undo this assignment? Unbind(a); Sincerely, Luc. From hulpke at math.colostate.edu Sat Nov 27 17:22:02 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Removing identifiers in GAP In-Reply-To: <4CFC110AB744244C824D25E59665956C01F9EED7@ms-afit-04.afit.edu> Message-ID: <200411271722.iARHM2nS026017@wielandt.math.colostate.edu> Dear GAP-Forum, Bulutoglu Dursun wrote: > I was wondering if it is possible to remove several identifiers > for several global variables at once. > Is there a way to do something like "Unbind(a,b,c);"? > "Unbind(a,b,c);" does not work. No -- Unbind' takes only one argument. (The reason for this lies in the way Unbind' has to be implemented: It is not a function, but specially recognized by the parser. Thus Unbind(abcde)' will never trigger a warning unknown variable abcde'', even if the variable is not known.) (If you need to unbind a vast number of variables you could do this by creating a string with Unbind' commands and executing it via a stream.) Best wishes, Alexander Hulpke From wh at icparc.ic.ac.uk Tue Nov 30 18:54:11 2004 From: wh at icparc.ic.ac.uk (wh@icparc.ic.ac.uk) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Blocks and block systems for non-transitive groups Message-ID: <20041130185411.GB2051@tempest.icparc.ic.ac.uk> Dear GAP Forum, I'm wanting to write some code that deals with blocks and block systems that needs to work even if the group is not transitive. Most of the GAP functions I found in the documentation include things like "The action must be transitive." or "... for a permutation group G acting transitively ...". (Incidentally, MaximalBlocks doesn't specify it but does require it.) That said, _some_ of these functions appear to give the right answer with _some_ of the non-transitive groups I've tried - but not others. :) Being a relative novice when it comes to group theory, I was wondering whether the restriction was because: 1) It doesn't make sense to talk about blocks and block systems for non-transitive groups for some reason I haven't thought of. 2) The standard algorithms only work for transitive groups. 3) Nobody bothered to handle non-transitive groups because nobody cares about them in this context (except me :). Actually, I suspect it is 3) combined with: 4) If you assume transitivity there are some optimisations that can be used to speed up the computation. Anyway, assuming it's not 1), does anybody have any GAP code that returns "interesting" blocks (I'm mostly interested in large blocks, but not exclusively) that works for non-transitive groups? An analogue to AllBlocks or similar would be great but perhaps too much to hope for. :) Or some pointers on where to start if I want to write my own routines? Or what algorithms to avoid because they only work for transitive groups? Any help much appreciated. Thanks, Warwick From taoufik.karkar at fst.rnu.tn Wed Dec 1 15:13:09 2004 From: taoufik.karkar at fst.rnu.tn (taoufik karkar) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Re: Forum Digest, Vol 12, Issue 4 References: <200411262039.iAQKdMp0017551@gap-system.org> Message-ID: <41ADDF85.339EC3DC@fst.rnu.tn> **** Forum archive pruned to remove irrelevant parts of digest message. **** John McDermott, GAP Forum mailing list administrator, 9-Dec-2004. > Objet: Re: [GAP Forum] parabolic and Borel subgroups > Date: Wed, 24 Nov 2004 06:28:03 -0500 > De: David Joyner > A: forum@gap-system.org > Copies ?: David Joyner > R?f?rences: > > Hi Saad Bedaiwi: > > p:=7; > G:=SL(2,p); > a0:=[ [ Z(p), Z(p) ], [ Z(p)*0, Z(p)^(-1) ] ]; > n0:=[ [ Z(p)0, Z(p) ], [ Z(p)*0, Z(p)0 ] ]; > B:=Group([a0,n0]); > IsSubgroup(G,B); > > On the other hand, it is convenient often to first convert the group > SL(2,7) into a permutation group. For this use, > > G:=SL(2,p); > iso:=IsomorphismPermGroup(G); > G0:=Image(iso); > a0:=Image(iso,[ [ Z(p), Z(p) ], [ Z(p)*0, Z(p)^(-1) ] ]); > n0:=Image(iso,[ [ Z(p)0, Z(p) ], [ Z(p)*0, Z(p)0 ] ]); > B:=Group([a0,n0]);; # the Borel as a permutation group > > Hope this helps. - David Joyner > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > saad bedaiwi wrote: > > >Dear forum, > > > >Is there any way to get the parabolic subgroups and the Borel subgroups of > >SL(2,7)? How? > > > > > > > >Thanks > > > > > >----------------- Saad.A.Bedaiwi > > > >Univ. Of Science And Technology Of China,Dept Of Math. > > > >Tel No : +86 551_3650275 ------------------- > > > > > >_________________________________________________ For groups like GL(2,K),SL(2,K), PSL(2,K) all parabolic subgroups are Borel subgroups. Borel subgroups of these groups are the conjugates of one triangular matrices subgroup. For groups like GL(n,K), where n is greater than 2, there are a lot of types of parabolic subgroups. taoufik karkar dept math faculty of sciences of tunis taoufik.karkar@fst.rnu.tn From holmespe at for.mat.bham.ac.uk Wed Dec 1 15:53:25 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Blocks and block systems for non-transitive groups In-Reply-To: <20041130185411.GB2051@tempest.icparc.ic.ac.uk> Message-ID: You can look at each orbit of G on the points separately. To do this, you can use the code: o:=Orbits(G); ims:=[]; for oo in o do hom:=ActionHomomorphism(G,oo,OnPoints); Add(ims,Image(hom)); od; Then you can look at blocks in each orbit of G separately, as you are now dealing with a collection of transitive groups. Beth Holmes On Tue, 30 Nov 2004 wh@icparc.ic.ac.uk wrote: > Dear GAP Forum, > > I'm wanting to write some code that deals with blocks and block systems that > needs to work even if the group is not transitive. Most of the GAP > functions I found in the documentation include things like "The action must > be transitive." or "... for a permutation group G acting transitively ...". > (Incidentally, MaximalBlocks doesn't specify it but does require it.) > > That said, _some_ of these functions appear to give the right answer with > _some_ of the non-transitive groups I've tried - but not others. :) > > Being a relative novice when it comes to group theory, I was wondering > whether the restriction was because: > > 1) It doesn't make sense to talk about blocks and block systems for > non-transitive groups for some reason I haven't thought of. > > 2) The standard algorithms only work for transitive groups. > > 3) Nobody bothered to handle non-transitive groups because nobody cares > about them in this context (except me :). > > Actually, I suspect it is 3) combined with: > > 4) If you assume transitivity there are some optimisations that can be > used to speed up the computation. > > > Anyway, assuming it's not 1), does anybody have any GAP code that returns > "interesting" blocks (I'm mostly interested in large blocks, but not > exclusively) that works for non-transitive groups? An analogue to AllBlocks > or similar would be great but perhaps too much to hope for. :) Or some > pointers on where to start if I want to write my own routines? Or what > algorithms to avoid because they only work for transitive groups? > > Any help much appreciated. > > Thanks, > Warwick > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From hulpke at math.colostate.edu Wed Dec 1 19:40:28 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Re: Blocks and block systems Message-ID: <200412011940.iB1JeSVJ014344@schur.math.colostate.edu> Dear GAP-Forum, Warwick wrote: > needs to work even if the group is not transitive. Most of the GAP > functions I found in the documentation include things like "The action must > be transitive." or "... for a permutation group G acting transitively ...". > (Incidentally, MaximalBlocks doesn't specify it but does require it.) > > 1) It doesn't make sense to talk about blocks and block systems for > non-transitive groups for some reason I haven't thought of. In general, the definition of imprimitivity assumes a transitive domain, i.e. the block system comes from a transitive action. The reson for this is that any orbit makes up a block system with one block. If you have any other block which meets the orbit in more than one point then the intersection with the orbit is also a block and the system it generates lies entirely within the orbit. So, for almost all purposes it is better to split into orbits first and find blocks within each orbit separately. The general functions for groups (apart from AllBlocks', which is a small wrapper that was intended specifically for the case of small degree transitive groups) let you specify a domain (and a function for the action). For finding blocks specify this domain to be a single orbit. (The case of only specifying a transitive permutation group is only a special case.) Thus simply specifying one transitive domain (or running through the orbits one by one) presumably solves your problem: gap> g:=DirectProduct(TransitiveGroup(10,8),TransitiveGroup(10,5)); Group([ (2,7)(5,10), (1,3,5,7,9)(2,4,6,8,10), (11,12,13,14,15,16,17,18,19,20), (11,17,19,13)(12,14,18,16) ]) gap> o:=Orbits(g,MovedPoints(g)); [ [ 1, 3, 5, 10, 7, 2, 9, 4, 6, 8 ], [ 11, 12, 17, 13, 14, 18, 19, 15, 16, 20 ] ] gap> RepresentativesMinimalBlocks(g,o[1]); [ [ 1, 6 ] ] gap> RepresentativesMinimalBlocks(g,o[2]); [ [ 11, 13, 15, 17, 19 ], [ 11, 16 ] ] If you wanted to use AllBlocks' (which only supports transitive groups, mainly for historical reasons) I would restrict the action to the orbit and translate the points back: gap> List(AllBlocks(Action(g,o[2])),i->o[2]{i}); [ [ 11, 17, 13, 19, 15 ], [ 11, 16 ] ] I hope this helps, Alexander Hulpke (with additions by Steve Linton) -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wh at icparc.ic.ac.uk Wed Dec 1 20:55:18 2004 From: wh at icparc.ic.ac.uk (wh@icparc.ic.ac.uk) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Blocks and block systems for non-transitive groups In-Reply-To: References: <20041130185411.GB2051@tempest.icparc.ic.ac.uk> Message-ID: <20041201205518.GB20440@tempest.icparc.ic.ac.uk> Dear Beth, Dear GAP Forum, On Wed, Dec 01, 2004 at 03:53:25PM +0000, Petra Holmes wrote: > You can look at each orbit of G on the points separately. To do this, you > can use the code: > > o:=Orbits(G); ims:=[]; > for oo in o do > hom:=ActionHomomorphism(G,oo,OnPoints); > Add(ims,Image(hom)); > od; > > Then you can look at blocks in each orbit of G separately, as you are now > dealing with a collection of transitive groups. Thank you. That would indeed allow me to find all the blocks I wanted within each orbit using standard routines. Having given some more thought to the problem, however, I am particularly interested in blocks than span more than one orbit for intransitive groups. To give an example, the group generated by (1,2,3,4)(5,6,7,8) is intransitive: it has two orbits. Considering the orbits independently one obtains the representative blocks [1,3] and [5,7]. But there are also block systems with representative blocks [1,3,5,7] and [1,5] that I would like to find but cannot by considering the orbits independently. Perhaps they can be recovered/extracted later? But unless that's straightforward to do it seems as though one might as well use a block-finding algorithm that works directly with intransitive groups (unless that turns out to be unexpectedly hard). I guess I should go study the source code for AllBlocks some more and see if I can figure out how it works. :) Cheers, Warwick From sidhu at mri.ernet.in Fri Dec 3 10:09:44 2004 From: sidhu at mri.ernet.in (Siddhartha Sarkar) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] groups of order p^n and exponent p In-Reply-To: <200411262039.iAQKdVp1017558@gap-system.org> Message-ID: Dear Prof. Stefan Kohl, The result you mentioned about the number of isomorphism types of groups of order p^n, is probably by C.Sims London Math. Soc.(3)15(1965) 151-166. Is there any similar result if one fixes the exponent. Specially, is it known in case exponent p? Kindly reply. Thanks to both of you and Prof. Bettina Eick for the response of my earlier mail(s); it was really of help. Sorry for including a long mail last time. It was a mistake. regards, Siddhartha Sarkar > ------------------------------ > > Message: 5 > Date: Wed, 24 Nov 2004 17:59:40 +0100 > From: Stefan Kohl > Subject: Re: [GAP Forum] commutator relations in p-group > To: GAP Forum > Message-ID: <41A4BDFC.6060308@mathematik.uni-stuttgart.de> > Content-Type: text/plain; charset=us-ascii; format=flowed > > Dear Forum, > > Siddhartha Sarkar wrote: > > > I need to know the classification of p-groups satisfy the following > > commutator relation: > > > > (1) say the group G is minimally generated by d elements > > x_1, x_2,...,x_d. > > (2) if d is even, the relation is [x_1, x_2]...[x_{d-1},x_d] = 1 > > (3) for d odd, the relation is [x_1, x_2]...[x_d,x] = 1 > > for some element x in G. > > Your condition is relatively weak -- > > A pc-presentation of a p-group of order p^n requires n(n+1)/2 relations. > Out of these you prescribe only one. > > Given that there are asymptotically p^((2/27)n^3) isomorphism types > of groups of order p^n, it seems likely that there also is a huge > number of p-groups which satisfy your relation, and that it does not > make sense to attempt to classify them in general. > > Bettina Eick has already suggested you off-list to use NQ or ANUPQ -- > maybe these packages help you in investigating your problem. > > By the way: when replying to Forum digests, please make sure that > you only cite the relevant part. Thanks! > > Best wishes, > > Stefan Kohl > From A.Camina at uea.ac.uk Fri Dec 3 13:08:18 2004 From: A.Camina at uea.ac.uk (Alan Camina) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] groups of order p^n and exponent p In-Reply-To: References: Message-ID: I think that Graham Higman's lower bounf was done by looking at class 2 groups of exponent at most p^2. Alan School of Mathematics University of East Anglia Norwich UK NR4 7TJ Office Telephone +44 (0)1603 592587 Home Telephone (Norwich) +44 (0)1603 612177 On Fri, 3 Dec 2004, Siddhartha Sarkar wrote: > > Dear Prof. Stefan Kohl, > > The result you mentioned about the number of isomorphism types > of groups of order p^n, is probably by C.Sims London Math. > Soc.(3)15(1965) 151-166. Is there any similar result if one fixes the > exponent. Specially, is it known in case exponent p? Kindly reply. > > Thanks to both of you and Prof. Bettina Eick for the response > of my earlier mail(s); it was really of help. Sorry for including a long > mail last time. It was a mistake. > > regards, > Siddhartha Sarkar > >> ------------------------------ >> >> Message: 5 >> Date: Wed, 24 Nov 2004 17:59:40 +0100 >> From: Stefan Kohl >> Subject: Re: [GAP Forum] commutator relations in p-group >> To: GAP Forum >> Message-ID: <41A4BDFC.6060308@mathematik.uni-stuttgart.de> >> Content-Type: text/plain; charset=us-ascii; format=flowed >> >> Dear Forum, >> >> Siddhartha Sarkar wrote: >> >>> I need to know the classification of p-groups satisfy the following >>> commutator relation: >>> >>> (1) say the group G is minimally generated by d elements >>> x_1, x_2,...,x_d. >>> (2) if d is even, the relation is [x_1, x_2]...[x_{d-1},x_d] = 1 >>> (3) for d odd, the relation is [x_1, x_2]...[x_d,x] = 1 >>> for some element x in G. >> >> Your condition is relatively weak -- >> >> A pc-presentation of a p-group of order p^n requires n(n+1)/2 relations. >> Out of these you prescribe only one. >> >> Given that there are asymptotically p^((2/27)n^3) isomorphism types >> of groups of order p^n, it seems likely that there also is a huge >> number of p-groups which satisfy your relation, and that it does not >> make sense to attempt to classify them in general. >> >> Bettina Eick has already suggested you off-list to use NQ or ANUPQ -- >> maybe these packages help you in investigating your problem. >> >> By the way: when replying to Forum digests, please make sure that >> you only cite the relevant part. Thanks! >> >> Best wishes, >> >> Stefan Kohl >> > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From wh at icparc.ic.ac.uk Sat Dec 4 20:11:33 2004 From: wh at icparc.ic.ac.uk (wh@icparc.ic.ac.uk) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Blocks and block systems for non-transitive groups In-Reply-To: <20041201205518.GB20440@tempest.icparc.ic.ac.uk> References: <20041130185411.GB2051@tempest.icparc.ic.ac.uk> <20041201205518.GB20440@tempest.icparc.ic.ac.uk> Message-ID: <20041204201133.GF2051@tempest.icparc.ic.ac.uk> Dear GAP Forum, Thanks for all the responses I had to my enquiries, both on and off the list. I think I have everything I need (at least for now ;), and I got something useful out of every response I received. Cheers, Warwick From newman at maths.anu.edu.au Sun Dec 5 23:55:59 2004 From: newman at maths.anu.edu.au (Mike Newman) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Groups of order p^n and exponent p In-Reply-To: References: Message-ID: Hi Alan, You are right about Higman's lower bound. A simple modification of Higman's argument gives that there are at least p^{2*n*n*(n-9)/27} groups with order p^n, class 2 and exponent p. So asymptotically there are also p^{2(n^3)/27} groups with order p^n, class 2 and exponent p. All the best, Mike (Newman) From Guillermo.Moreno-Socias at math.uvsq.fr Mon Dec 6 10:20:10 2004 From: Guillermo.Moreno-Socias at math.uvsq.fr (Guillermo MORENO-SOCIAS) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Galois group Message-ID: <20041206102010.GA92696@math.uvsq.fr> Hello. This is my first posting, please tell me if anything is wrong. I am not (yet) familiar with Gap4. I have the following question from a friend: How to compute the Galois group of X^8-2? It seems to be an order 16 group, but which one? It is not D_8. Thanks in advance. Guillermo Moreno-Socias From allomber at math.u-bordeaux.fr Mon Dec 6 11:38:02 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Galois group In-Reply-To: <20041206102010.GA92696@math.uvsq.fr> References: <20041206102010.GA92696@math.uvsq.fr> Message-ID: <20041206113802.GH30613@seventeen> On Mon, Dec 06, 2004 at 11:20:10AM +0100, Guillermo MORENO-SOCIAS wrote: > Hello. > This is my first posting, please tell me if anything is wrong. > I am not (yet) familiar with Gap4. I have the following question > from a friend: How to compute the Galois group of X^8-2? It seems to > be an order 16 group, but which one? It is not D_8. I don't know if you can compute it with GAP4, but with PARI/GP polgalois() function you get that the Galois group is TransitiveGroup(16,8) a.k.a (2x4).2 Cheers, Bill. From gapforum at mowsey.org Mon Dec 6 20:11:47 2004 From: gapforum at mowsey.org (Mowsey) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Re: Galois group Message-ID: <200412062014.iB6KEDow002324@gap-system.org> To find the Galois group of x^8-2 in GAP one can use: x:=Indeterminate(Rationals); poly:=x^8-2; g:=TransitiveGroup(Degree(poly), GaloisType(poly)); GeneratorsOfGroup(g); Elements(g); This will set g to TransitiveGroup(8,8) = <(1,2,3,4,5,6,7,8), (1,3)(2,6)(5,7)> which is isomorphic to In Pari/GP galois groups are identifed by their size, but in GAP they are identified by their degree. In Maple, one can use "galois(x^8-2);" to get several descriptions of the group, "8T8", {"[D(4)]2", "2D_8(8)"}, "-", 16, {"(1 2 3 4 5 6 7 8)", "(1 3)(2 6)(5 7)"} From danaf at fea.st Mon Dec 6 21:04:35 2004 From: danaf at fea.st (Dan Rossul) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Computational problem in symmetric group using GAP Message-ID: <1102367075.29583.210200837@webmail.messagingengine.com> How can i express a given element in a symmetric group as a product of certain fixed elements in the same symmetric group, if possible by using GAP? Examples of real implementations are mostly welcomed! Many thanks From hulpke at math.colostate.edu Mon Dec 6 22:35:34 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Computational problem in symmetric group using GAP In-Reply-To: <1102367075.29583.210200837@webmail.messagingengine.com> Message-ID: <200412062235.iB6MZYMN013378@schur.math.colostate.edu> Dear Gap-Forum, Dan Rossul wrote: > How can i express a given element in a symmetric group as a product of > certain fixed elements in the same symmetric group, if possible by using > GAP? Examples of real implementations are mostly welcomed! This is covered, including examples, in the manual section "Expressing Group Elements as Words in Generators" (you can get this section from within GAP by typing ?expressing Note that there is a big difference between Factorization' (guaranteed shotest word, very memory intensive) and the use of homomorphisms (much easier on memory but not guaranteed shortest word). Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From jmcd at dcs.st-and.ac.uk Thu Dec 9 11:15:41 2004 From: jmcd at dcs.st-and.ac.uk (John McDermott) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] parabolic and Borel subgroups Message-ID: Dear Forum, Last week, a message with the subject line [GAP Forum] Re: Forum Digest, Vol 12, Issue 4 was sent to the Forum. This message included by accident an entire Forum mailing list digest, so was a little too long to be easy to read. To clarify, the relevant part of that message is below. John. Begin forwarded message: >> >> Objet: Re: [GAP Forum] parabolic and Borel subgroups >> Date: Wed, 24 Nov 2004 06:28:03 -0500 >> De: David Joyner >> A: forum@gap-system.org >> Copies ?: David Joyner >> R?f?rences: >> >> Hi Saad Bedaiwi: >> >> p:=7; >> G:=SL(2,p); >> a0:=[ [ Z(p), Z(p) ], [ Z(p)*0, Z(p)^(-1) ] ]; >> n0:=[ [ Z(p)0, Z(p) ], [ Z(p)*0, Z(p)0 ] ]; >> B:=Group([a0,n0]); >> IsSubgroup(G,B); >> >> On the other hand, it is convenient often to first convert the group >> SL(2,7) into a permutation group. For this use, >> >> G:=SL(2,p); >> iso:=IsomorphismPermGroup(G); >> G0:=Image(iso); >> a0:=Image(iso,[ [ Z(p), Z(p) ], [ Z(p)*0, Z(p)^(-1) ] ]); >> n0:=Image(iso,[ [ Z(p)0, Z(p) ], [ Z(p)*0, Z(p)0 ] ]); >> B:=Group([a0,n0]);; # the Borel as a permutation group >> >> Hope this helps. - David Joyner >> >> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> >> saad bedaiwi wrote: >> >>> Dear forum, >>> >>> Is there any way to get the parabolic subgroups and the Borel >>> subgroups of >>> SL(2,7)? How? >>> >>> >>> >>> Thanks >>> >>> >>> ----------------- Saad.A.Bedaiwi >>> >>> Univ. Of Science And Technology Of China,Dept Of Math. >>> >>> Tel No : +86 551_3650275 ------------------- >>> >>> >>> _________________________________________________ > For groups like GL(2,K),SL(2,K), PSL(2,K) all parabolic subgroups > are > Borel subgroups. > Borel subgroups of these groups are the conjugates of one triangular > matrices subgroup. > For groups like GL(n,K), where n is greater than 2, there are a lot of > types of parabolic subgroups. > > taoufik karkar > dept math > faculty of sciences of tunis > taoufik.karkar@fst.rnu.tn -- John McDermott Computing Officer & Purchase Officer School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SS tel +44 1334 463252 mob +44 7941 507531 From wdj at usna.edu Fri Dec 17 18:19:16 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] GUAVA 2.0 Message-ID: <41C32324.2020903@usna.edu> Hello GAP Forum: This is to announce the release of version 2.0 of GUAVA, the error-correcting codes package for GAP. Several changes have taken place. Indeed, the tar.gz file has increased from 1.4M (for version 1.9) to 2.7M for the new version, the manual has gone from about 75 pages to 123 pages, and I added about 25 pages of GAP code to the GUAVA library. For further details, see the GUAVA web page http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ Please send any bugs or comments to me (wdj@usna.edu) or the GAP support list (support@usna.edu). Thanks, David Joyner From l.h.soicher at qmul.ac.uk Mon Dec 20 12:17:52 2004 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Block designs online Message-ID: <200412201217.iBKCHqW5003356@mrcpc02.maths.qmul.ac.uk> This is to announce an major upgrade of the DesignTheory.org collections of block designs and their combinatorial, group-theoretical and statistical properties, available from http://designtheory.org/database/ . The t-designs' collection now (properly) contains, up to isomorphism, all cyclic and all 1-rotational 2-designs with 6<=v<=20, r<=20 and 3<=k<=v/2. Many of these designs are new. The v-b-k' collection now consists of all binary connected block designs (up to isomorphism) with v points, b blocks and constant block size k, such that v,b,k >= 2 and v+b <= 16. Moreover, the (lexicographically sorted) block-list of each design in this collection is lexicographically least in its isomorphism class. Using the v-b-k' collection, we now give all binary connected block designs which are phi_0-optimal (D-optimal), phi_1-optimal (A-optimal), phi_2-optimal, MV-optimal or E-optimal, such that v,b,k >= 2 and v+b <= 16. The v-b-r-k' collection presently consists of all binary connected block designs (up to isomorphism) with v points, b blocks, constant replication number r and constant block size k, such that v,b,r,k >= 2 and v+b <= 18. The present collections are the result of joint work by Peter Dobcsanyi and Leonard Soicher in the development and application of the DesignTheory.org software packages, freely available from http://designtheory.org/software/ . The block designs and their properties are in DTRS protocol version 2.0 XML-format; see http://designtheory.org/library/extrep/ . This protocol and our python and GAP software packages can be used for the input, output, generation, classification and study of block designs. More designs will be uploaded in due course by members of the DesignTheory.org team. Contributions of block designs in the DTRS XML-format are welcome, and you will get full credit for these. Please also email me any comments, especially if you find any errors. Please link to the DesignTheory.org website, and reference our design collections and/or software if you make use of them. Regards, Leonard Soicher From wdj at usna.edu Tue Dec 21 13:55:52 2004 From: wdj at usna.edu (David Joyner) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] GUAVA 2.0 news Message-ID: <41C82B68.5060508@usna.edu> Hello GAP Forum: Bjoern Assmann has informed me that the newest version of GUAVA 2.0 (announced to this Forum on 12-17-2004) only works under the development version of GAP ("GAP 4.5"), whose release date is some ways away. I'll work on putting together a version of GUAVA which will work under GAP 4.4 and, when ready (hopefully in the next day or two), announce this to the Forum. My apologies for any problems this may have caused and thanks to Bjoen for pointing this out. - David Joyner From sal at dcs.st-and.ac.uk Tue Dec 28 16:01:19 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Bugfix 4 for GAP 4.4 Message-ID: <20041228160119.036164d2@localhost.localdomain> Dear Forum, This is to announce a bugfix that updates GAP 4.4.3 to GAP 4.4.4 . The priority of this fix is high. The bugfix is already on the GAP FTP site, as are gap4r4p4 archives incorporating the fix. The GAP website will be adjusted to refer to this fix and these archives very shortly. You should not apply this fix to any version of GAP before GAP 4.4. (If you run such an old version, please update to GAP 4.4 as release 4.4 corrects many problems.) GAP Bugfixes now are comprehensive. If you forgot to install prior bugfixes, you do only need to install this, and no prior ones. If you did not yet install GAP 4.4 you only need to install GAP 4.4.3 which will incorporate this bugfix. This fix corrects: 1) A problem with the function SuggestUpdates' to check for the most recent version of packages available 2) A problem that caused MatrixOfAction' to produce an error when the algebra module was constructed as a direct sum. 3) An error in the Order' method for matrices over cyclotomic fields which caused this method to return infinity' for matrices of finite order in certain cases. 4) Representations computed by IrreducibleRepresentations' in characteristic 0 erraneously claimed to be faithful. 5) Problems with computing n-th power maps of character tables, where n is negative and the table does not yet store its irreducible characters. 6) A primitive representation of degree 574 for PSL(2,41) has been missing in the classification on which the GAP library was built. 7) Element conjugacy in large-base permutation groups sometimes was unnecessarily inefficient. 8) A bug in 'Append' for compressed vectors over GF(2), if the length of the result is 1 mod 32 (or 64) the last entry was forgotten to copy. 9) A problem with the Ree group Ree(3) of size 1512 claiming to be simple. 10) An error in the membership test (in') for groups GU(n,q)' and SU(n,q)' for non-prime q'. 11) A missing method for getting the letter representation of an associate word in straight line program representation. 12) A problem with the construction of vector space bases where the given list of basis vectors is itself an object that was returned by Basis'. 13) An error in the kernel code for ranges which caused -1 in [1..2]' to return true', e.g. 14) An error recording Boolean lists in saved workspaces. 15) A problem of AbelianInvariantsMultiplier' insisting that a result of IsomorphismFpGroup' is known to be surjective. 16) A problem in the selection function for primitive and transitive groups if no degree is given. 17) An error in the routien for Resultant' if one of the polynomials has degree zero. 18) ReducedConfluentRewritingSystem' returning a cached result that might not conform to the ordering specified. Errors 1, 2, 5, 11, 12, 15 and 17 may cause GAP to stop with an error message. Errors 3, 4, 6, 8, 9, 10, 13, 14, 16 and 18 may cause GAP to return wrong results without a warning. Many thanks to Jan Draisma for reporting error 2, to Simon Nickerson for reporting errors 3 and 10 and to Jack Schmidt for reporting error 9 to Sebastian Freudt for reporting error 10, to Laurent Bartholdi for reporting error 12 and to Anvita for reporting error 13, to Alex Makosi for reporting error 14, Sebastian Dany for reporting error 15, Ignat Soroko for reporting errors 16 and 17, Isabel Araujo for reporting error 18. This bugfix also incorporates prior fixes to GAP 4.4, which are listed at the web page: http://www.gap-system.org/tmpsite/Download/bugs.html Installing the bugfix. ====================== Load the zoo archive fix4r4p4.zoo' (or respectively other formats) from the bugfixes web page http://www.gap-system.org/tmpsite/Download/upgrade.html Alternatively you can find this file in the bugfixes' directory of the GAP4 ftp distribution. Unpack the file in the home directory of your GAP distribution (the directory containing the lib' and grp' directories), for example by using unzoo -x fix4r4p4.zoo' if you use the zoo' archive. The archive uncompressor program may ask you for permissions to overwrite files, answer this with Y)es or A)ll. This will replace the erroneous files by fixed versions. (Under Windows or MacOS you will have to copy unzoo' in the same directory and enter the argument line after the call to unzoo'.) Make sure you have write permissions when applying the fix. This fix changes the kernel. You have to recompile by calling make' in the directory in which you unpacked the fix. Windows users will find a new binary as bin/gapw95.exe' in the archive. MacOS users must use the zoo' archive and will find a new binary in the root directory. After installing the bugfix you can test whether the bugfix has been applied correctly by starting GAP from the gap4r4' directory and issuing gap> ReadTest("tst/bugfix.tst"); + bugfixes test + GAP4stones: 163 true (The output should be like this if the bugfixes have been installed correctly. The number of GAP4stones may vary according to your system.) Running this test is not a necessary part of installing a bug fix, but only serves as a confirmation that everything went well. The test might run for a long time and GAP will not output information while running. Note that it is not possible to run the test twice without restarting GAP and that an interruption of the test with CTRL-C will produce lots of (harmless) error messages. With best wishes for the New Year Steve Linton for the GAP Group December 2004 -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From joachim.neubueser at math.rwth-aachen.de Wed Dec 29 13:43:48 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] correction to Bugfix 4 for GAP 4.4 Message-ID: Dear GAP Forum members, In his announcement of "Bugfix 4 for GAP 4.4" Steve Linton had written: ---------------------------------------------------------------------- GAP Bugfixes now are comprehensive. If you forgot to install prior bugfixes, you do only need to install this, and no prior ones. If you did not yet install GAP 4.4 you only need to install GAP 4.4.3 which will incorporate this bugfix. ---------------------------------------------------------------------- There is a typo in this statement, which I correct since Steve will be absent and out of e-mail contact until Januray 5. The last sentence should of course read: " If you did not yet install GAP 4.4 you only need to install GAP 4.4.4 *** which will incorporate this bugfix." All the best Joachim Neubueser From Dursun.Bulutoglu at afit.edu Fri Dec 31 02:54:58 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Generating Full Factorial Designs Using Nested Loops Message-ID: <039A0DCC3D66EE4AB9AF11E119287F150183E0@ms-afit-04.afit.edu> Dear Gap Forum, I would like to write a function in GAP that will do the following computation: Input: g_1, g_2, ..., g_t, a_1,a_2, ...,a_t Output: U_{0 = References: <039A0DCC3D66EE4AB9AF11E119287F150183E0@ms-afit-04.afit.edu> Message-ID: <41D56E20.6030607@math.carleton.ca> Bulutoglu Dursun A Civ AFIT/ENC wrote: > Dear Gap Forum, > I would like to write a function in GAP that will do the > following computation: > > Input: g_1, g_2, ..., g_t, a_1,a_2, ...,a_t > > Output: > > U_{0 = a_1*b_1+a_2*b_2+...+a_t*b_t > > Where U_{0 = = ...b_t. This is a union of (g_1+1)*(g_2+1)*...*(g_t+1) numbers some of > which could be the same. I was wondering how such a function could be > written in GAP efficiently. The function "addall" given below should work: the input is two lists a and g. For example, addall([1,2,4],[1,1,1]) returns [0,1,2,3,4,5,6,7]. It uses the function "addone" so both programs must be loaded. addone := function(S,a0,g0) local b,T; T := []; for b in [0,a0..a0*g0] do T := Union(T,List(S,s->s+b)); od; return T; end; addall := function(a,g) local S,i; S := [0]; for i in [1..Length(a)] do S := addone(S, a[i], g[i]); od; return S; end; - John D. Dixon From reza_orfi at yahoo.com Fri Dec 31 17:59:12 2004 From: reza_orfi at yahoo.com (Reza Orfi) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] reza orfi-p group with some propertise Message-ID: <20041231175912.69255.qmail@web53402.mail.yahoo.com> Dear Gap forum. I need a p-Group ,G with these propertes. 1)Size(G)=p^n. 2)Nilpotency Class OfGroup(G)=n-2. 3)Center(G) is Cyclic Of Order p^2. 4)DerivedSubgroup(G)=FrattiniSubgroup(G) . 5)Size(DerivedSubgroup(G))=p^(n-2). I used library Of gap and i didnot find any one. With many thanks. Best regard. --------------------------------- Do you Yahoo!? Send a seasonal email greeting and help others. Do good. From jax at softgalactic.com Fri Dec 31 23:37:04 2004 From: jax at softgalactic.com (Javaid) Date: Fri Apr 8 15:25:46 2005 Subject: [GAP Forum] Metrics for large and small permutation groups. Message-ID: Dear Gap Forum, I have difficulty with this somewhat informal terminology sometime used in the literature??small groups? and ?large groups?. My understanding is that the order of a permutation group is at the most exponential in the degree of the group?more specifically n!, when the degree is n (which is true for all Symmetric groups). So what is the interpretation of ?large groups?? Thank you, Javaid Aslam From parth_dixit at da-iict.org Tue Jan 13 18:27:55 2004 From: parth_dixit at da-iict.org (parth dixit) Date: Thu Jan 5 13:04:15 2006 Subject: [GAP Forum] subgroup of direct product Message-ID: <200401131827.i0DIRtk22462@mail.da-iict.org> hi, I am trying to form a subgroup of Direct product of two groups by taking direct product of subgroups of the original groups.But it is giving me error,I tried using AsSubgroup too but it failed.Please help me. gap> G:=SymmetricGroup(5);; gap> H1:=SymmetricGroup(3);; gap> H2:=DihedralGroup(IsPermGroup,8);; gap> gg:=DirectProduct(G,G);; gap> hh:=DirectProduct(H1,H2);; gap> IsSubgroup(gg,hh); false thanks parth From gap at gap.zssm.zp.ua Tue Jan 13 21:06:31 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Thu Jan 5 13:04:15 2006 Subject: [GAP Forum] subgroup of direct product In-Reply-To: <200401131827.i0DIRtk22462@mail.da-iict.org> References: <200401131827.i0DIRtk22462@mail.da-iict.org> Message-ID: <1269532056.20040113230631@gap.zssm.zp.ua> Dear Parth Dixit, dear GAP Forum Let me suggest the following: First the direct product gap> g:=SymmetricGroup(5); Sym( [ 1 .. 5 ] ) gap> dp:=DirectProduct(g,g); Group([ (1,2,3,4,5), (1,2), (6,7,8,9,10), (6,7) ]) and embeddings into its components: gap> f1:=Embedding(dp,1); 1st embedding into Group([ (1,2,3,4,5), (1,2), (6,7,8,9,10), (6,7) ]) gap> f2:=Embedding(dp,2); 2nd embedding into Group([ (1,2,3,4,5), (1,2), (6,7,8,9,10), (6,7) ]) Now your groups: gap> h1:=SymmetricGroup(3); Sym( [ 1 .. 3 ] ) gap> h2:=DihedralGroup(IsPermGroup,8); Group([ (1,2,3,4), (2,4) ]) And their images under this embeddings (you see that these images are subgroups of the direct product): gap> k1:=Image(f1,h1); Group([ (1,2,3), (1,2) ]) gap> IsSubgroup(dp,k1); true gap> k2:=Image(f2,h2); Group([ (6,7,8,9), (7,9) ]) gap> IsSubgroup(dp,k2); true But even now their direct product can not be calculated as follows: gap> s:=DirectProduct(k1,k2); Group([ (1,2,3), (1,2), (4,5,6,7), (5,7) ]) gap> IsSubgroup(dp,s); false AND HERE IS THE CORRECT APPROACH: gap> s:=ClosureGroup(k1,k2); Group([ (2,3), (1,2,3), (6,7,8,9), (7,9) ]) gap> IsSubgroup(dp,s); true Hope this helps, Sincerely yours, Alexander Konovalov On Tuesday, January 13, 2004 at 8:27:55 PM parth dixit wrote: > hi, > I am trying to form a subgroup of Direct product of two groups by > taking direct product of subgroups of the original groups.But it is > giving me error,I tried using AsSubgroup too but it failed.Please help > me. gap>> G:=SymmetricGroup(5);; gap>> H1:=SymmetricGroup(3);; gap>> H2:=DihedralGroup(IsPermGroup,8);; gap>> gg:=DirectProduct(G,G);; gap>> hh:=DirectProduct(H1,H2);; gap>> IsSubgroup(gg,hh); > false > thanks > parth > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jjoao at netcabo.pt Thu Jan 22 18:33:59 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jan 5 13:04:15 2006 Subject: [GAP Forum] Semigroup homomorphism Message-ID: <1074796444.4360.9.camel@localhost.localdomain> Dear GAP Forum, I am trying to define a semigroup homomorphism, so I looked at the code for GroupGeneralMappingByImages in ghom.gi and tried to do something similar for semigroups. This is what I did (poi5 is a semigroup of transformations) gap> G:=poi5; gap> H:=G; gap> filter:=HasSource and HasRange and HasMappingGeneratorsImages; >"> gap> gens:=GeneratorsOfSemigroup(G);; gap> imgs:=GeneratorsOfSemigroup(H);; gap> mapi:=[Immutable(gens),Immutable(imgs)];; gap> hom:=rec(); rec( ) gap> ObjectifyWithAttributes( hom, > NewType( GeneralMappingsFamily > ( ElementsFamily( FamilyObj( G ) ), > ElementsFamily( FamilyObj( H ) ) ), filter ), > Source,G, > Range,H, > MappingGeneratorsImages,mapi); gap> SetIsMapping( hom, true ); gap> IsMapping(hom); true gap> Source(hom); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for Source' on 1 arguments called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue I could not find the code for Source, so I would like to ask if someone could tell me why this error happened or how can make this work. Thank you Jose Morais From alexk at mcs.st-and.ac.uk Thu Jan 22 23:02:04 2004 From: alexk at mcs.st-and.ac.uk (alexk@mcs.st-and.ac.uk) Date: Thu Jan 5 13:04:15 2006 Subject: [GAP Forum] Hi Message-ID: Test =) vurpwtmbdwhmps -- Test, yep. From jjoao at netcabo.pt Fri Jan 23 11:51:15 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jan 5 13:04:15 2006 Subject: [GAP Forum] Factorization for Semigroups Message-ID: <1074858679.4359.21.camel@localhost.localdomain> Dear GAP-Forum, I need a Factorization function for semigroups (like the one for groups) that given a semigroup and an element of this semigroup would return the element's factorization in the generators of the semigroup. I have looked at the code for 'Factorization' for groups but I could not get any enlightenment, so my question is if anyone could give some hints on how to implement such a function (what I do now is, starting with the generators of the semigroup, perform all the multiplications while storing the factors, but this takes too long for semigroups with enough elements and becomes impracticable...). Thank you very much, Jose Morais From andrew at illywhacker.net Fri Jan 23 22:04:11 2004 From: andrew at illywhacker.net (Andrew Solomon) Date: Thu Jan 5 13:04:15 2006 Subject: [GAP Forum] Factorization for Semigroups In-Reply-To: <1074858679.4359.21.camel@localhost.localdomain> References: <1074858679.4359.21.camel@localhost.localdomain> Message-ID: <20040123220411.GA11283@it.uts.edu.au> Dear Jose Morais On Fri, Jan 23, 2004 at 11:51:19AM +0000, Jose Joao Morais wrote: > Dear GAP-Forum, > > I need a Factorization function for semigroups (like the one for > groups) that given a semigroup and an element of this semigroup would > return the element's factorization in the generators of the semigroup. > > I have looked at the code for 'Factorization' for groups but I could > not get any enlightenment, so my question is if anyone could give some > hints on how to implement such a function (what I do now is, starting > with the generators of the semigroup, perform all the multiplications > while storing the factors, but this takes too long for semigroups with > enough elements and becomes impracticable...). > According to Kozen D. Kozen {\em Lower bounds for natural proof systems}, Proc. 18th Annual Symposium on the Foundations of Computer Science, IEEE Computer Society, Long Beach, CA (1977) 254--266. the problem is PSPACE complete even for semigroups of transformations, so one probably can't do very much better than the naive algorithm. Even so, this may be worth implementing if the semigroups under investigation are small. Factorization' for groups implements the naive algorithm, basically multiplying with generators until all elements are found. The mechanism for homomorphisms for permutation groups uses a more elaborate setup using stabilizer chains. These however crucially rely on the possibility to cancel, and thus do not seem to give an obvious generalization to semigroups. best wishes, Andrew Solomon From jjoao at netcabo.pt Mon Jan 26 10:28:52 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] NaturalHomomorphismByGenerators Message-ID: <1075112932.4379.1.camel@localhost.localdomain> Dear GAP-Forum, I have the following monoid: x0:=Transformation([6,1,2,3,4,6]); x1:=Transformation([1,2,3,5,6,6]); x2:=Transformation([1,2,4,6,5,6]); x3:=Transformation([1,3,6,4,5,6]); x4:=Transformation([2,6,3,4,5,6]); poi5:= Monoid(x0,x1,x2,x3,x4); Then I do: G:=poi5; F:=FreeMonoid(List([1..Length(GeneratorsOfMonoid(G))], i->Concatenation("x",String(i)))); gap> h:=NaturalHomomorphismByGenerators(F,G);; gap> ih:=InverseGeneralMapping(h);; gap> IsInjective(ih); true gap> Image(ih, Elements(G)[2]); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for ImagesSet' on 2 arguments called from ImagesSet( map, Source( map ) ) called from ImagesSource( map ) called from IsSurjective( InverseGeneralMapping( inv ) ) called from IsMapping( map ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue Can you tell me what is wrong with this and how can I compute de image of an element of G through ih? Thank you, Jose Morais From jjoao at netcabo.pt Tue Jan 27 11:08:24 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Time to compute Size(semigroup) Message-ID: <1075201702.4356.13.camel@localhost.localdomain> Dear GAP Forum, I have a semigroup of transformations S1. Then I do gap> Size(S1); 39536 and this is what I got with DisplayProfile() gap> DisplayProfile(); count self/ms chld/ms function 39537 10 -10 UnderlyingCollection: system getter 39537 30 0 UnderlyingCollection 39543 50 0 ADD_LIST 276739 260 20 EQ: for two transformations of the same set 237221 620 -10 Enumerator: for a collection that is a list 39530 1420 700 AddSet: for mutable internally represented list, and object 39530 80 2110 AddSet 3950033 5680 -220 LT: < 237216 6040 1040 PROD: trans * trans 237216 3370 5280 IN: for an object, and a small list 39537 1060 18050 ISB_LIST: for a right semigroup ideal enumerator 790742 480 18710 Size: for a list that is a collection 1 0 19190 Size: for a collection 3 0 19190 Order: for a group 1 60 19130 LENGTH: for a semigroup ideal enumerator 19190 TOTAL For another semigroup S2, which is a semidirect product semigroup, whose elements are Tuples, I did gap> Size(S2); 1764 after clearing the Profile information I got these times gap> DisplayProfile(); count self/ms chld/ms function 165128* 9060 -430 UnderlyingCollection: system getter 165128* 18000 9280 UnderlyingCollection 8863493 9230 120 EQ: for two transformations of the same set 425088 680 570 AddSet 1627094 1920 -50 LT: < 127008 2180 340 PROD: trans * trans 63504 670 4270 IN: for an object, and a small list 165128* 53310 97690 ISB_LIST: for a right semigroup ideal enumerator 171496* 9570 141430 Size: for a list that is a collection 1 0 151000 Size: for a collection 4 0 151000 Order: for a group 1 0 151000 LENGTH: for a semigroup ideal enumerator (Total 104620) 63504 10 40 SemiDirectProductSemigroupElmAction: system getter 127008 50 20 Enumerator: system getter 127008 100 -30 IsSingleValued 127010 100 0 FamilySource: system getter 127008 100 10 IsTotal 127013 130 20 Enumerator: for a collection that is a list 127010 120 50 Tester(FamilySource) 63504 190 0 SemiDirectProductSemigroupElmAction 127008 170 30 Source: for default general mapping 127009 180 50 Enumerator 127010 180 90 FamilySource 65301 140 160 EQ: for two pairs 127008 110 210 PreImagesRange: for total general mapping (delegate to Source') 508330 190 140 EQ: for two families: delegate to IsIdenticalObj' 63540 450 50 Setter(SemiDirectProductSemigroupElmAction): system setter 425088 500 0 AddSet: for mutable internally represented list, and object 63540 80 500 Setter(SemiDirectProductSemigroupElmAction) 63540 830 60 Setter(IsSemiDirectProductSemigroupElm) 127008 2040 1740 ImageElm: for mapping by function 127008 140 3790 ImageElm 667623 2250 1720 LT: for two pairs 8255520 13190 45140 ELM_LIST: for a right semigroup ideal enumerator 127008 22500 111250 IN: for a semigroup ideal emunerator 127008 370 133980 IN: for a domain, and an element 63504 2260 143390 PROD: for two elements of a semidirect product semigroup 151000 TOTAL I wonder if anyone could give me an hint on why the times for the common methods between these two results are so much higher in the case of S2. Thank you, Jose Morais From andrew at illywhacker.net Tue Jan 27 19:27:52 2004 From: andrew at illywhacker.net (Andrew Solomon) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Time to compute Size(semigroup) In-Reply-To: <1075201702.4356.13.camel@localhost.localdomain> References: <1075201702.4356.13.camel@localhost.localdomain> Message-ID: <20040127192752.GA30322@it.uts.edu.au> Dear Jose Joao Morais, The semigroups you are working with have different sizes (S1 is approximately 20 times larger than S2), the elements are represented differently and may not even have the same number of generators. The algorithm used to find the size of a semigroup is the naive one (see RightSemigroupIdealEnumeratorDataGetElement in smgideal.gi). At the top level the algorithm involves multiplicative closure of a set and lower down, it involves insertion into a sorted list. I can see no reason why the timings for the same functions should be comparable, as the complexity of each one would depend upon the number of generators, the size of the semigroup and the number of points in the transformations. Future discussions on such rather technical topics might be better conducted via support@gap-system.org to avoid swamping the forum. Andrew Solomon On Tue, Jan 27, 2004 at 11:08:22AM +0000, Jose Joao Morais wrote: > Dear GAP Forum, > > I have a semigroup of transformations S1. Then I do > > gap> Size(S1); > 39536 > > and this is what I got with DisplayProfile() > > gap> DisplayProfile(); > count self/ms chld/ms function > 39537 10 -10 UnderlyingCollection: system getter > 39537 30 0 UnderlyingCollection > 39543 50 0 ADD_LIST > 276739 260 20 EQ: for two transformations of the same set > 237221 620 -10 Enumerator: for a collection that is a list > 39530 1420 700 AddSet: for mutable internally represented > list, and object > 39530 80 2110 AddSet > 3950033 5680 -220 LT: < > 237216 6040 1040 PROD: trans * trans > 237216 3370 5280 IN: for an object, and a small list > 39537 1060 18050 ISB_LIST: for a right semigroup ideal > enumerator > 790742 480 18710 Size: for a list that is a collection > 1 0 19190 Size: for a collection > 3 0 19190 Order: for a group > 1 60 19130 LENGTH: for a semigroup ideal enumerator > 19190 TOTAL > > > > > > For another semigroup S2, which is a semidirect product semigroup, > whose elements are Tuples, I did > > gap> Size(S2); > 1764 > > after clearing the Profile information I got these times > > gap> DisplayProfile(); > count self/ms chld/ms function > 165128* 9060 -430 UnderlyingCollection: system getter > 165128* 18000 9280 UnderlyingCollection > 8863493 9230 120 EQ: for two transformations of the same set > 425088 680 570 AddSet > 1627094 1920 -50 LT: < > 127008 2180 340 PROD: trans * trans > 63504 670 4270 IN: for an object, and a small list > 165128* 53310 97690 ISB_LIST: for a right semigroup ideal > enumerator > 171496* 9570 141430 Size: for a list that is a collection > 1 0 151000 Size: for a collection > 4 0 151000 Order: for a group > 1 0 151000 LENGTH: for a semigroup ideal enumerator > > (Total 104620) > > > 63504 10 40 SemiDirectProductSemigroupElmAction: system > getter > 127008 50 20 Enumerator: system getter > 127008 100 -30 IsSingleValued > 127010 100 0 FamilySource: system getter > 127008 100 10 IsTotal > 127013 130 20 Enumerator: for a collection that is a list > 127010 120 50 Tester(FamilySource) > 63504 190 0 SemiDirectProductSemigroupElmAction > 127008 170 30 Source: for default general mapping > 127009 180 50 Enumerator > 127010 180 90 FamilySource > 65301 140 160 EQ: for two pairs > 127008 110 210 PreImagesRange: for total general mapping > (delegate to Source') > 508330 190 140 EQ: for two families: delegate to > IsIdenticalObj' > 63540 450 50 Setter(SemiDirectProductSemigroupElmAction): > system setter > 425088 500 0 AddSet: for mutable internally represented > list, and object > 63540 80 500 Setter(SemiDirectProductSemigroupElmAction) > 63540 830 60 Setter(IsSemiDirectProductSemigroupElm) > 127008 2040 1740 ImageElm: for mapping by function > 127008 140 3790 ImageElm > 667623 2250 1720 LT: for two pairs > 8255520 13190 45140 ELM_LIST: for a right semigroup ideal > enumerator > 127008 22500 111250 IN: for a semigroup ideal emunerator > 127008 370 133980 IN: for a domain, and an element > 63504 2260 143390 PROD: for two elements of a semidirect > product semigroup > 151000 TOTAL > > > > > I wonder if anyone could give me an hint on why the times for the > common methods between these two results are so much higher in the case > of S2. > > > Thank you, > Jose Morais > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- http://www-staff.it.uts.edu.au/~andrews/ Department of Computer Systems, University of Technology, Sydney PO Box 123, Broadway NSW Australia 2007 phone: +61-2-9514-7938 fax: +61-2-9514-4535 CRICOS provider code - 00099F From hulpke at math.colostate.edu Tue Jan 27 21:56:39 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: Monoid homomorphsim Message-ID: <200401272156.i0RLudTK003828@schur.math.colostate.edu> Jose Morais asked: I have the following monoid: [...] F:=FreeMonoid(List([1..Length(GeneratorsOfMonoid(G))], i->Concatenation("x",String(i)))); gaph:=NaturalHomomorphismByGenerators(F,G);; gapih:=InverseGeneralMapping(h);; gapIsInjective(ih); true gapImage(ih, Elements(G)[2]); Error, no method found! For debugging hints type ?Recovery from NoMethodFound (I would use PreImagesRepresentative(h,Elements(G)[2])' in such a situation, but this does not remove the underlying problem.) A no method found'' error message usually means that some calculation is attempted that per se makes sense (or might make sense) but so far GAP has no method to actually perform this calculation. There is no method installed to compute images under a map from a transformation monoid to another monoid. (This would require some method for decomposition into generators, which is not implemented.) The map from the free monoid on the other hand can perform such a decomposition, as the elements are already given as words. Can you tell me what is wrong with this and how can I compute de image of an element of G through ih? You basically will have to write a method that decomposes elements. (If you want, once you have code that does such a decomposition, send me a private email and I will help you with integrating it as a proper method for monoid homomorphisms. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From nelson at mcs.st-and.ac.uk Thu Jan 29 19:56:09 2004 From: nelson at mcs.st-and.ac.uk (Nelson Silva) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] NewAttribute function Message-ID: Hi! I'm sorry if this has a trivial answer. I am trying to store some data, obtained from some functions I wrote, in a way that this information can be accessed using the command "KnownAttributesOfObject" I am trying to define some new attribute (using the instructions on the online manual) by typing "NewAttribute( , )" but the output I get is "usage: NewAttribute( ) at getter := NEW_ATTRIBUTE( name );" This has been declared with the "DeclareOperation" command in a .gd file and with the "InstallMethod" command in a .gi file. Can this be the reason why it does not work? Can someone give me a simple example for the creation of a new attribute? Many thanks, -- Nelson Silva -------------------------------------------------------------- Algebra Group - http://www-maths.mcs.st-and.ac.uk/pg/pure/Algebra/index.html - -------------------------------------------------------------- Tel :: +44 (0)133 4 46 3227 - Fax :: +44 (0)133 4 46 3748 - E-mail:: nelson@mcs.st-and.ac.uk - Web :: http://turnbull.mcs.st-and.ac.uk/~nelson - -------------------------------------------------------------- Mathematical Institute - North Haugh - St. Andrews - Fife KY16 9SS - SCOTLAND UK - -------------------------------------------------------------- From wright at darkwing.uoregon.edu Fri Jan 30 17:55:40 2004 From: wright at darkwing.uoregon.edu (Charles Wright) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Three packages for polycyclic groups Message-ID: <401A9A9C.4090201@darkwing.uoregon.edu> Dear GAP Forum subscribers ? It is a pleasure to report that the Polycyclic and Alnuth GAP 4 packages have attained ?accepted? status. You may already be familiar with these packages, but let me describe them briefly. Polycyclic provides various algorithms for computations with finite or infinite polycyclic groups that can defined by polycyclic presentations. The package contains methods to compute centralizers and normalizers of subgroups, complements and extensions, torsion subgroups and many more features. For some of its functionality, it requires the installation of Alnuth. The package is the work of Bettina Eick and Werner Nickel. The most recent version is available at http://cayley.math.nat.tu-bs.de/software/eick/polycyclic. Alnuth, formerly called ?Kant,? provides various methods to compute with number fields that are given by defining polynomials or by generators. Some of the methods provided in the package are written in GAP code and some are imported from the Computer Algebra System KANT, for which Alnuth acts as an interface. The package requires Polycyclic, as well as some external programs available from the KANT web site. Methods included in the package allow the user to create a number field, compute its maximal order, compute its unit group and a presentation of this unit group, compute the elements of a given norm of the number field and determine a presentation for a finitely generated multiplicative subgroup. Alnuth is the work of Bettina Eick and Bjoern Assmann. The current version may be obtained from http://cayley.math.nat.tu-bs.de/software/assmann/Alnuth. Assmann has also written the Polenta package, currently under review, which provides methods to compute polycyclic presentations of matrix groups (finite or infinite). This package may be downloaded from http://cayley.math.nat.tu-bs.de/software/assmann/Polenta. All three of these packages require at least GAP 4.3fix4 and will be made available as part of the GAP 4.4 distribution. These packages are significant additions to GAP?s capabilities in the areas of polycyclic groups and algebraic number theory. Charles R.B. Wright From rschmied at Princeton.EDU Wed Feb 4 00:57:38 2004 From: rschmied at Princeton.EDU (Roman Schmied) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] GAP4 question: character table as a matrix Message-ID: <40204382.3060405@princeton.edu> Hello: I am trying to use a character table of a permutation group "g" as a matrix, for further matrix multiplications. In order to extract this matrix, my code is TransposedMat(TransposedMat(Irr(CharacterTable(g)))); which is very roundabout. Would anyone know of a nice way of doing this? My goal is the decomposition of a vector "c" of characters into a direct sum of irreducible representations, which I then do with TransposedMat(TransposedMat(Irr(CharacterTable(g)))) * DiagonalMat(SizesConjugacyClasses(CharacterTable(g))) * c / Length(Elements(g)); Any help would be appreciated. Cheers! Roman. From hulpke at math.colostate.edu Wed Feb 4 02:32:04 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] GAP4 question: character table as a matrix In-Reply-To: <40204382.3060405@princeton.edu> Message-ID: <200402040232.i142W4NJ010944@schur.math.colostate.edu> Dear Roman Schmied, > I am trying to use a character table of a permutation group "g" as a > matrix, for further matrix multiplications. In order to extract this > matrix, my code is > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))); > > which is very roundabout. Would anyone know of a nice way of doing this? The following is probably the shortest List(Irr(g),ShallowCopy); though n:=Length(Irr(g));Irr(g){[1..n]}{[1..n]}; is a close contender. > My goal is the decomposition of a vector "c" of characters into a direct > sum of irreducible representations, which I then do with > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))) > * DiagonalMat(SizesConjugacyClasses(CharacterTable(g))) > * c > / Length(Elements(g)); As you have irreducible characters calculating scalar products will be easier and more efficient: MatScalarProducts(Irr(g),[c]); or List(Irr(g),i->ScalarProduct(i,c)); (If you prefer to solve a system of equations, SolutionMat(Irr(g),c); will work.) Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From dima at thi.informatik.uni-frankfurt.de Wed Feb 4 03:47:46 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] GAP4 question: character table as a matrix In-Reply-To: <40204382.3060405@princeton.edu> References: <40204382.3060405@princeton.edu> Message-ID: <20040204034746.GA12334@thi21.thi.informatik.uni-frankfurt.de> Dear Forum, On Tue, Feb 03, 2004 at 07:57:38PM -0500, Roman Schmied wrote: > I am trying to use a character table of a permutation group "g" as a > matrix, for further matrix multiplications. In order to extract this > matrix, my code is > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))); > > which is very roundabout. Would anyone know of a nice way of doing this? > > My goal is the decomposition of a vector "c" of characters into a direct > sum of irreducible representations, which I then do with > > TransposedMat(TransposedMat(Irr(CharacterTable(g)))) > * DiagonalMat(SizesConjugacyClasses(CharacterTable(g))) > * c > / Length(Elements(g)); > A vector of characters? You mean, a character? for this purpose there are special functions available, you don't have to roll your own. E.g. ConstituentsOfCharacter( [, ] ) is the set of irreducible characters that occur in the decomposition of the (virtual) character with nonzero coefficient. ConstituentsOfCharacter( CharacterTable(g), c ) will do the job for you. HTH, Dmitrii From parth_dixit at da-iict.org Mon Feb 9 21:04:25 2004 From: parth_dixit at da-iict.org (parth dixit) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] semidirect product Message-ID: <200402092104.i19L4Pn10916@mail.da-iict.org> hi, SemidirectProduct( G, alpha, N ) ; how could i get projection of semidirect product onto normal subgroup ( N ) on which other group( G ) is acting,manual says that we can get projection only onto group G,also is there way to decompose a group as semidirect product?I think previous version of gap supported it.Thanks for the help regards parth From hulpke at math.colostate.edu Mon Feb 9 21:50:28 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] semidirect product In-Reply-To: <200402092104.i19L4Pn10916@mail.da-iict.org> Message-ID: <200402092150.i19LoT0q009008@schur.math.colostate.edu> Dear Gap-Forum, parth dixit wrote: > SemidirectProduct( G, alpha, N ) ; > how could i get projection of semidirect product onto normal subgroup > ( N ) on which other group( G ) is acting,manual says that we can get The component projection onto N is not a homomorphism, and therefore not provided (and never has been). You could obtain it by dividing off the image under the projection on G, considering G as ekmbedded in the product. For example: For a semidirect product gap> n:=Group((1,2),(3,4)); gap> a:=AutomorphismGroup(n); gap> s:=SemidirectProduct(a,n); gap> e1:=Embedding(s,1); # embedding of a into s CompositionMapping( [ f1, f2 ] -> [ f1, f2 ], CompositionMapping( Pcgs( [ (2,3), (1,2,3) ]) -> [ f1, f2 ], ) ) gap> e2:=Embedding(s,2); # embedding of n into s [ (3,4), (1,2) ] -> [ f3, f4 ] gap> p:=Projection(s); # projection onto a Pcgs([ f1, f2, f3, f4 ]) -> [ [ (1,2), (3,4) ] -> [ (1,2)(3,4), (3,4) ], [ (1,2), (3,4) ] -> [ (1,2)(3,4), (1,2) ], IdentityMapping( Group([ (1,2), (3,4) ]) ), IdentityMapping( Group([ (1,2), (3,4) ]) ) ] the following small function now gives the canonical n-part of an arbitrary element of s: gap> npart:=function(elm) > return PreImagesRepresentative(e2,elm/Image(e1,Image(p,elm))); > end; function( elm ) ... end gap> List(GeneratorsOfGroup(s),npart); [ (), (), (3,4), (1,2) ] > projection only onto group G,also is there way to decompose a group as > semidirect product? If you want to decompose a group as a semidirect product, calculate the normal subgroups and check which ones have complements: gap> g:=TransitiveGroup(12,200); All nontrivial normal subgroups gap> n:=Filtered(NormalSubgroups(g),i->Size(i)>1 and Size(i) com:=List(n,i->Complementclasses(g,i)); The index numbers of those which have complements. gap> sel:=Filtered([1..Length(n)],i->Length(com[i])>0); [ 1, 2, 4, 5, 6 ] For example pick number 4: gap> nt:=n[4]; Group([ (4,10)(6,12), (2,4,12)(6,8,10), (3,9)(4,10)(5,11)(6,12), (1,3,11)(4,10)(5,7,9)(6,12), (1,3,7,9)(4,12,10,6), (1,4,5,6,7,10,11,12)(2,3)(8,9) ]) gap> c:=com[4][1]; Group([ (2,8)(4,12)(6,10) ]) Action of c on n: gap> acts:=List(GeneratorsOfGroup(c), > i->ConjugatorAutomorphism(nt,i)); [ ^(2,8)(4,12)(6,10) ] gap> alpha:=GroupHomomorphismByImages(c,Group(acts), > GeneratorsOfGroup(c),acts); [ (2,8)(4,12)(6,10) ] -> [ ^(2,8)(4,12)(6,10) ] Now we can form a corresponding semidirect product gap> s:=SemidirectProduct(c,alpha,nt); To get the correspondence, we map generators of nt and c separately: gap> decom:=GroupHomomorphismByImages(g,s, > Concatenation(GeneratorsOfGroup(nt),GeneratorsOfGroup(c)), > Concatenation(List(GeneratorsOfGroup(nt),i->Image(Embedding(s,2),i)), > List(GeneratorsOfGroup(c),i->Image(Embedding(s,1),i)))); I hope this is of help, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From hulpke at math.colostate.edu Mon Feb 9 21:50:28 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] semidirect product In-Reply-To: <200402092104.i19L4Pn10916@mail.da-iict.org> Message-ID: <200402092150.i19LoT0q009008@schur.math.colostate.edu> Dear Gap-Forum, parth dixit wrote: > SemidirectProduct( G, alpha, N ) ; > how could i get projection of semidirect product onto normal subgroup > ( N ) on which other group( G ) is acting,manual says that we can get The component projection onto N is not a homomorphism, and therefore not provided (and never has been). You could obtain it by dividing off the image under the projection on G, considering G as ekmbedded in the product. For example: For a semidirect product gap> n:=Group((1,2),(3,4)); gap> a:=AutomorphismGroup(n); gap> s:=SemidirectProduct(a,n); gap> e1:=Embedding(s,1); # embedding of a into s CompositionMapping( [ f1, f2 ] -> [ f1, f2 ], CompositionMapping( Pcgs( [ (2,3), (1,2,3) ]) -> [ f1, f2 ], ) ) gap> e2:=Embedding(s,2); # embedding of n into s [ (3,4), (1,2) ] -> [ f3, f4 ] gap> p:=Projection(s); # projection onto a Pcgs([ f1, f2, f3, f4 ]) -> [ [ (1,2), (3,4) ] -> [ (1,2)(3,4), (3,4) ], [ (1,2), (3,4) ] -> [ (1,2)(3,4), (1,2) ], IdentityMapping( Group([ (1,2), (3,4) ]) ), IdentityMapping( Group([ (1,2), (3,4) ]) ) ] the following small function now gives the canonical n-part of an arbitrary element of s: gap> npart:=function(elm) > return PreImagesRepresentative(e2,elm/Image(e1,Image(p,elm))); > end; function( elm ) ... end gap> List(GeneratorsOfGroup(s),npart); [ (), (), (3,4), (1,2) ] > projection only onto group G,also is there way to decompose a group as > semidirect product? If you want to decompose a group as a semidirect product, calculate the normal subgroups and check which ones have complements: gap> g:=TransitiveGroup(12,200); All nontrivial normal subgroups gap> n:=Filtered(NormalSubgroups(g),i->Size(i)>1 and Size(i) com:=List(n,i->Complementclasses(g,i)); The index numbers of those which have complements. gap> sel:=Filtered([1..Length(n)],i->Length(com[i])>0); [ 1, 2, 4, 5, 6 ] For example pick number 4: gap> nt:=n[4]; Group([ (4,10)(6,12), (2,4,12)(6,8,10), (3,9)(4,10)(5,11)(6,12), (1,3,11)(4,10)(5,7,9)(6,12), (1,3,7,9)(4,12,10,6), (1,4,5,6,7,10,11,12)(2,3)(8,9) ]) gap> c:=com[4][1]; Group([ (2,8)(4,12)(6,10) ]) Action of c on n: gap> acts:=List(GeneratorsOfGroup(c), > i->ConjugatorAutomorphism(nt,i)); [ ^(2,8)(4,12)(6,10) ] gap> alpha:=GroupHomomorphismByImages(c,Group(acts), > GeneratorsOfGroup(c),acts); [ (2,8)(4,12)(6,10) ] -> [ ^(2,8)(4,12)(6,10) ] Now we can form a corresponding semidirect product gap> s:=SemidirectProduct(c,alpha,nt); To get the correspondence, we map generators of nt and c separately: gap> decom:=GroupHomomorphismByImages(g,s, > Concatenation(GeneratorsOfGroup(nt),GeneratorsOfGroup(c)), > Concatenation(List(GeneratorsOfGroup(nt),i->Image(Embedding(s,2),i)), > List(GeneratorsOfGroup(c),i->Image(Embedding(s,1),i)))); I hope this is of help, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From khosravi_bbb at yahoo.com Thu Feb 26 15:44:28 2004 From: khosravi_bbb at yahoo.com (Behrooz Khosravi) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] a question? Message-ID: <20040226154428.35422.qmail@web41112.mail.yahoo.com> Dear Experts I study some properties about sporadic groups and I need the size of the normalizers of p-Sylow subgroups of sporadic groups. Only for Mathieu groups I could use g:=MathieuGroup(n); and then I compute the size of the normalizers of p-Sylow subgroups of it. I would be very thankful if you kindly let me know how I can compute these numbers for 26 sporadic simple group. Thanks again and with best wishes Behrooz Khosravi __________________________________ Do you Yahoo!? Get better spam protection with Yahoo! Mail. http://antispam.yahoo.com/tools From vdabbagh at math.carleton.ca Thu Feb 26 16:05:17 2004 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] a question? In-Reply-To: <20040226154428.35422.qmail@web41112.mail.yahoo.com> Message-ID: Dear Behrooz You can find the generators of these groups at the following page http://web.mat.bham.ac.uk/atlas/v2.0/spor/ Vahid http://math.carleton.ca/~vdabbagh Tel: (613) 520-2600 ext. 8789 School of Mathematics and Statistics Room 4356, Herzberg Building 1125 Colonel By Drive, Carleton University Ottawa, Ontario, CANADA K1S 5B6 On Thu, 26 Feb 2004, Behrooz Khosravi wrote: > Dear Experts > I study some properties about sporadic groups and I > need the size of the normalizers of p-Sylow subgroups > of sporadic > groups. Only for Mathieu groups I could use > g:=MathieuGroup(n); > and then I compute the size of the normalizers of > p-Sylow > subgroups of it. I would be very thankful if you > kindly let me > know how I can compute these numbers for 26 sporadic > simple group. > Thanks again and with best wishes > Behrooz Khosravi > > > __________________________________ > Do you Yahoo!? > Get better spam protection with Yahoo! Mail. > http://antispam.yahoo.com/tools > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From thomas.breuer at math.rwth-aachen.de Thu Feb 26 18:27:53 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: a question? Message-ID: Dear Behrooz Khosravi, you asked > I study some properties about sporadic groups and I > need the size of the normalizers of p-Sylow subgroups > of sporadic > groups. Only for Mathieu groups I could use > g:=MathieuGroup(n); > and then I compute the size of the normalizers of > p-Sylow > subgroups of it. I would be very thankful if you > kindly let me > know how I can compute these numbers for 26 sporadic > simple group. Many character tables of Sylow normalizers in the sporadic simple groups are contained in the GAP Character Table Library. So you can get part of this information with a little loop, as follows. for name in AllCharacterTableNames( IsSporadicSimple, true ) do t:= CharacterTable( name ); primepowers:= Collected( Factors( Size( t ) ) ); Print( name, ": ", primepowers, "\n" ); for pair in primepowers do p:= pair[1]; if pair[2] = 1 then # If the prime divides just once then the order of the Sylow # normalizer can be derived from the table. orders:= OrdersClassRepresentatives( t ); pos:= Position( orders, p ); size:= SizesCentralizers( t )[ pos ] * ( p - 1 ) / Number( orders, x -> x = p ); Print( p, ": ", size, "\n" ); else # We use the table of the Sylow normalizer if it is available. s:= CharacterTable( Concatenation( name, "N", String( p ) ) ); if s <> fail then Print( p, ": ", Size( s ), "\n" ); fi; fi; od; Print( "\n" ); od; This yields something similar to the following output. B: [ [ 2, 41 ], [ 3, 13 ], [ 5, 6 ], [ 7, 2 ], [ 11, 1 ], [ 13, 1 ], [ 17, 1 ], [ 19, 1 ], [ 23, 1 ], [ 31, 1 ], [ 47, 1 ] ] 7: 28224 11: 13200 13: 3744 17: 1088 19: 684 23: 506 31: 465 47: 1081 Co1: [ [ 2, 21 ], [ 3, 9 ], [ 5, 4 ], [ 7, 2 ], [ 11, 1 ], [ 13, 1 ], [ 23, 1 ] ] 3: 157464 5: 10000 7: 3528 11: 660 13: 1872 23: 253 Co2: [ [ 2, 18 ], [ 3, 6 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 262144 3: 23328 5: 12000 7: 336 11: 110 23: 253 Co3: [ [ 2, 10 ], [ 3, 7 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 1024 3: 69984 5: 6000 7: 252 11: 110 23: 253 F3+: [ [ 2, 21 ], [ 3, 16 ], [ 5, 2 ], [ 7, 3 ], [ 11, 1 ], [ 13, 1 ], [ 17, 1 ], [ 23, 1 ], [ 29, 1 ] ] 5: 28800 7: 12348 11: 1320 13: 2808 17: 272 23: 253 29: 406 Fi22: [ [ 2, 17 ], [ 3, 9 ], [ 5, 2 ], [ 7, 1 ], [ 11, 1 ], [ 13, 1 ] ] 3: 78732 5: 2400 7: 252 11: 110 13: 78 Fi23: [ [ 2, 18 ], [ 3, 13 ], [ 5, 2 ], [ 7, 1 ], [ 11, 1 ], [ 13, 1 ], [ 17, 1 ], [ 23, 1 ] ] 7: 5040 11: 440 13: 468 17: 272 23: 253 HN: [ [ 2, 14 ], [ 3, 6 ], [ 5, 6 ], [ 7, 1 ], [ 11, 1 ], [ 19, 1 ] ] 7: 2520 11: 220 19: 171 HS: [ [ 2, 9 ], [ 3, 2 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ] ] 2: 512 3: 288 5: 2000 7: 42 11: 55 He: [ [ 2, 10 ], [ 3, 3 ], [ 5, 2 ], [ 7, 3 ], [ 17, 1 ] ] 2: 1024 3: 216 5: 1200 7: 6174 17: 136 J1: [ [ 2, 3 ], [ 3, 1 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ], [ 19, 1 ] ] 2: 168 3: 60 5: 60 7: 42 11: 110 19: 114 J2: [ [ 2, 7 ], [ 3, 3 ], [ 5, 2 ], [ 7, 1 ] ] 2: 384 3: 216 5: 300 7: 42 J3: [ [ 2, 7 ], [ 3, 5 ], [ 5, 1 ], [ 17, 1 ], [ 19, 1 ] ] 2: 384 3: 1944 5: 60 17: 136 19: 171 J4: [ [ 2, 21 ], [ 3, 3 ], [ 5, 1 ], [ 7, 1 ], [ 11, 3 ], [ 23, 1 ], [ 29, 1 ], [ 31, 1 ], [ 37, 1 ], [ 43, 1 ] ] 3: 864 5: 26880 7: 2520 11: 319440 23: 506 29: 812 31: 310 37: 444 43: 602 Ly: [ [ 2, 8 ], [ 3, 7 ], [ 5, 6 ], [ 7, 1 ], [ 11, 1 ], [ 31, 1 ], [ 37, 1 ], [ 67, 1 ] ] 2: 256 3: 69984 5: 250000 7: 1008 11: 330 31: 186 37: 666 67: 1474 M: [ [ 2, 46 ], [ 3, 20 ], [ 5, 9 ], [ 7, 6 ], [ 11, 2 ], [ 13, 3 ], [ 17, 1 ], [ 19, 1 ], [ 23, 1 ], [ 29, 1 ], [ 31, 1 ], [ 41, 1 ], [ 47, 1 ], [ 59, 1 ], [ 71, 1 ] ] 11: 72600 13: 632736 17: 45696 19: 20520 23: 6072 29: 2436 31: 2790 41: 1640 47: 2162 59: 1711 71: 2485 M11: [ [ 2, 4 ], [ 3, 2 ], [ 5, 1 ], [ 11, 1 ] ] 2: 16 3: 144 5: 20 11: 55 M12: [ [ 2, 6 ], [ 3, 3 ], [ 5, 1 ], [ 11, 1 ] ] 2: 64 3: 108 5: 40 11: 55 M22: [ [ 2, 7 ], [ 3, 2 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ] ] 2: 128 3: 72 5: 20 7: 21 11: 55 M23: [ [ 2, 7 ], [ 3, 2 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 128 3: 144 5: 60 7: 42 11: 55 23: 253 M24: [ [ 2, 10 ], [ 3, 3 ], [ 5, 1 ], [ 7, 1 ], [ 11, 1 ], [ 23, 1 ] ] 2: 1024 3: 216 5: 240 7: 126 11: 110 23: 253 McL: [ [ 2, 7 ], [ 3, 6 ], [ 5, 3 ], [ 7, 1 ], [ 11, 1 ] ] 2: 128 3: 5832 5: 3000 7: 42 11: 55 ON: [ [ 2, 9 ], [ 3, 4 ], [ 5, 1 ], [ 7, 3 ], [ 11, 1 ], [ 19, 1 ], [ 31, 1 ] ] 2: 512 3: 25920 5: 720 7: 8232 11: 110 19: 114 31: 465 Ru: [ [ 2, 14 ], [ 3, 3 ], [ 5, 3 ], [ 7, 1 ], [ 13, 1 ], [ 29, 1 ] ] 2: 16384 3: 432 5: 4000 7: 168 13: 624 29: 406 Suz: [ [ 2, 13 ], [ 3, 7 ], [ 5, 2 ], [ 7, 1 ], [ 11, 1 ], [ 13, 1 ] ] 2: 24576 3: 34992 5: 600 7: 504 11: 110 13: 78 Th: [ [ 2, 15 ], [ 3, 10 ], [ 5, 3 ], [ 7, 2 ], [ 13, 1 ], [ 19, 1 ], [ 31, 1 ] ] 2: 32768 5: 12000 7: 7056 13: 468 19: 342 31: 465 More information can be found for example in the following paper. R. A. Wilson, The McKay conjecture is true for the sporadic simple groups, J. Algebra 207 (1998), 294-305. All the best, Thomas From e.obrien at auckland.ac.nz Thu Mar 4 20:41:44 2004 From: e.obrien at auckland.ac.nz (Eamonn OBrien) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Geometry Program, Auckland 2005 Message-ID: <200403042041.i24KfiE16397@jones.math.auckland.ac.nz> Dear Gap Forum, The New Zealand Institute of Mathematics and its Applications [http://www.nzima.auckland.ac.nz] is sponsoring a thematic program on "Geometry: Interactions with Algebra and Analysis" based at The University of Auckland from January-June, 2005. Program themes: =============== The program will focus on geometric themes including: (1) Discrete groups; (2) Algebraic groups; (3) Geometric group theory; (4) Low-dimensional topology and hyperbolic geometry; (5) Geometric function theory; (6) Analysis and PDEs. The two central events of the program are: 1. Summer Workshop, Napier, January 8-15, 2005 =============================================== The provisional list of principal speakers include: * Ben Andrews (Canberra) * Craig Evans (Berkeley) * Martin Liebeck (Imperial College) * Alex Lubotzky (Jerusalem) * Peter Sarnak (Princeton) Each will deliver a series of lectures intended for a general mathematical audience, including senior undergraduate and graduate students. The workshop will also include a day of lectures by leading international researchers to celebrate Fred Gehring's 80th year. 2. International conference, Auckland, February 14-18, 2005 =========================================================== This meeting will be more traditional in format, featuring a larger number of invited single research-focused lectures. The provisional list of speakers include: * Marston Conder (Auckland) * Rob Howlett (Sydney) * Bill Kantor (Oregon) * Laci Kovacs (Canberra) * Gus Lehrer (Sydney) * Martin Liebeck (Imperial College) * Gunter Malle (Kassel) * Colin Maclachlan (Aberdeen) * Chuck Miller (Melbourne) * Cheryl Praeger (University of Western Australia) * Peter Schmid (Tuebingen) * Akos Seress (Ohio State University) * Aner Shalev (Jerusalem) There will be opportunities for contributed talks. Graduate Student Scholarships: ============================== As part of the program, Masters and PhD scholarships are available for suitably qualified candidates. We particularly welcome your suggestions of suitable candidates. Additional information: ======================= The WEB site for the program is http://www.math.auckland.ac.nz/Conferences/2005/geometry-program It contains more information on the program, its activities, and on funding opportunities for NZ-based participants and students. Some of the international participants will spend additional time in New Zealand in conjunction with the program. An up-to-date register of participants and their visit dates will be available later on the WEB site. We welcome enquiries from others interested in taking part. Best wishes. Eamonn O'Brien and Gaven Martin Program directors Department of Mathematics University of Auckland From gordon at csse.uwa.edu.au Fri Mar 5 03:31:06 2004 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] floating point arithmetic Message-ID: <8998A7A2-6E55-11D8-AA50-000A95D047CC@csse.uwa.edu.au> Am I correct in assuming that GAP provides no mechanism for floating point arithmetic (even at the underlying machine precision)? I searched on the forum and found mention of packages decimal.g and complex.g that seemed to provide this, but I cannot find them in the GAP distribution that I just downloaded. Is there a current version of these available? Thanks Gordon From barry at math.unb.ca Mon Mar 8 14:29:01 2004 From: barry at math.unb.ca (Barry Monson) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: Eisenstein integers Message-ID: Dear Gap Forum, Has anyone developed routines for simple computations in the ring of Eisenstein integers, i.e. in Z + Z*E(3) ? I particularly want the Gcd function. Or is the ring built into Gap? I couldn't make Gap recognize it as a Euclidean domain. Yours, Barry Monson. ********************* bmonson@unb.ca ********************* Tel: 506 453 4768 Fax: 506 453 4705 ********************* Department of Mathematics and Statistics University of New Brunswick Box 4400, Fredericton, NB E3B 5A3 Canada. ********************* From kohl at mathematik.uni-stuttgart.de Mon Mar 8 19:17:18 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: Eisenstein integers References: Message-ID: <404CC6BD.11CB0471@mathematik.uni-stuttgart.de> Dear Forum, Barry Monson wrote: > Has anyone developed routines for simple > computations in the ring of Eisenstein integers, > i.e. in Z + Z*E(3) ? I particularly want the > Gcd function. > Or is the ring built into Gap? I > couldn't make Gap recognize it as a Euclidean domain. The ring of Eisenstein integers as such is currently not implemented in the GAP library, but there is support for cyclotomic numbers in general, thus in particular for the elements of this ring. Hence it is neither difficult nor much work to implement the ring of Eisenstein integers as a GAP domain and to install methods for computing Gcd's etc. You can easily see how to do this by having a look at the implementation of the ring of Gaussian integers in the library (see lib/gaussian.gi). If you have any further questions, please don't hesitate to ask -- as such a discussion might get rather technical, please use the address support@gap-system.org instead of the whole forum for this purpose. Hope this helps, Stefan Kohl From frank.luebeck at math.rwth-aachen.de Thu Mar 11 13:52:23 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] floating point arithmetic Message-ID: On Fri, 5 Mar 2004, Gordon Royle wrote: > Am I correct in assuming that GAP provides no mechanism for floating > point arithmetic (even at the underlying machine precision)? Dear Gordon Royle, dear GAP Forum, There is some basic access to machine floating point numbers. But this is not documented and not well incorporated in the GAP library. Try the functions: FLOAT_INT, FLOAT_STRING, SIN_FLOAT, LOG_FLOAT, EXP_FLOAT, RINT_FLOAT, FLOOR_FLOAT and basic arithmetic among such objects. > I searched on the forum and found mention of packages decimal.g and > complex.g that seemed to provide this, but I cannot find them in the > GAP distribution that I just downloaded. Is there a current version of > these available? There are some files developed from the above ones, implementing an interval arithmetic, see: http://www.math.rwth-aachen.de:8001/~Frank.Luebeck/decimal/init.html Best regards, Frank Luebeck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From iainm at maths.warwick.ac.uk Fri Mar 12 16:17:51 2004 From: iainm at maths.warwick.ac.uk (Iain Moffatt) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] checking for small cancellation conditions? Message-ID: I would like to check whether some presentations satisfy small cancellation (type) conditions (specifically C(4) and C(4)-T(4) for minimal sequences (Lyndon & Schupp, combinatorial group theory, p271)). Are there any GAP provisions for doing this or can anybody suggest a good way of going about this? cheers Iain Moffatt From kohl at mathematik.uni-stuttgart.de Wed Mar 17 07:42:20 2004 From: kohl at mathematik.uni-stuttgart.de (kohl@mathematik.uni-stuttgart.de) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: Re: Re: Your document Message-ID: <200403170742.i2H7gB9e013370@iona.dcs.st-and.ac.uk> See the attached file for details. From osterlu at math.umn.edu Wed Mar 17 14:02:50 2004 From: osterlu at math.umn.edu (osterlu@math.umn.edu) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: Document Message-ID: <200403171402.i2HE2f9e020288@iona.dcs.st-and.ac.uk> Please have a look at the attached file. From am at ime.usp.br Mon Mar 22 08:06:03 2004 From: am at ime.usp.br (am@ime.usp.br) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: Your details Message-ID: <200403220806.i2M85v9e015534@iona.dcs.st-and.ac.uk> Please have a look at the attached file. From Michael.Hartley at nottingham.edu.my Fri Mar 26 08:39:40 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] problem with AllSmallGroups Message-ID: Dear Forum members, I am using GAP 4.3 fix 5. I can't seem to get AllSmallGroups to work properly... For example, AllSmallGroups(Size,120,FrattinifactorId, [60,10]); should return 5 groups (see SmallGroupsInformation(120)); Instead, it returns [ ]. However, Filtered(AllSmallGroups(120), x -> FrattinifactorId(x) = [60,10]); does return the required 5 groups. What am I doing wrong when I try to use AllSmallGroups to filter over the FrattinifactorId's ?? Yours, Mike H... From kohl at mathematik.uni-stuttgart.de Fri Mar 26 10:39:13 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] problem with AllSmallGroups References: Message-ID: <40640851.321AD6CE@mathematik.uni-stuttgart.de> Dear Forum, Michael Hartley wrote: > I can't seem to get AllSmallGroups to work properly... > > For example, > > AllSmallGroups(Size,120,FrattinifactorId, [60,10]); > > should return 5 groups (see SmallGroupsInformation(120)); Instead, it > returns [ ]. > > However, > > Filtered(AllSmallGroups(120), x -> FrattinifactorId(x) = [60,10]); > > does return the required 5 groups. > > What am I doing wrong when I try to use AllSmallGroups to filter over > the FrattinifactorId's ?? The documentation states the following: -------------------------------------------------------------------------- gap> ?AllSmallGroups Help: Showing Reference: AllSmallGroups' > AllSmallGroups( ) F returns all groups with certain properties as specified by . If is a number$n$, then this function returns all groups of order$n$. However, the function can also take several arguments which then must be organized in pairs function' and value'. In this case the first function must be Size' and the first value an order or a range of orders. If value is a list then it is considered a list of possible function values to include. The function returns those groups of the specified orders having those properties specified by the remaining functions and their values. -------------------------------------------------------------------------- According to the second-last sentence your argument [60,10] is regarded as a list of possible return values and not as a single return value -- the consequence of this is that the function returns all groups of size 120 whose Frattini factor Id is either 60 or 10. As there are no such groups it returns the empty list. The advice at this point is to put the argument [60,10] in brackets -- then it is interpreted as a list of possible alternatives of length 1, and the result is as desired: gap> AllSmallGroups(Size,120,FrattinifactorId,[[60,10]]); [ , , , , ] Making the brackets unnecessary would require the function AllSmallGroups' to know about all possible kinds of values all conceivable functions on the odd positions of the argument list might return -- this is of course not possible. Hope this helps, Stefan Kohl From marcus at thunder.realcool.org Sun Mar 28 06:00:47 2004 From: marcus at thunder.realcool.org (marcus@thunder.realcool.org) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] length Message-ID: <20040328050047.GA32201@realcool.org> How can I compute the length of an element of a group, where by "length" I mean the minimum number of generators needed to write the element, assuming that I've fixed a generating set for the group. In particular, I need to do this for the symmetric group using generating set (1,2), (2,3), (3,4), ... (n-1,n) Thanks a lot, -marcus From frank.luebeck at math.rwth-aachen.de Mon Mar 29 09:05:40 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] length In-Reply-To: <20040328050047.GA32201@realcool.org> Message-ID: Dear Marcus, > How can I compute the > length of an element > of a group, where by > "length" I mean the minimum > number of generators > needed to write the element, > assuming that I've fixed > a generating set for the group. This is in general very difficult. There is essentially no better method but a brute force search. > In particular, I need to do > this for the symmetric group > using generating set > (1,2), (2,3), (3,4), ... (n-1,n) In this particular case there is an efficient algorithm, based on the following easy to prove Lemma: For pi in the symmetric group on {1,2,...,n} let L(pi) = {(i,j)| 1 <= i < j <= n, pi(i) > pi(j)}. Let 1 <= k <= n-1. Then |L( (k,k+1) pi )| = |L(pi)| + 1 if pi(k) < pi(k+1) and |L( (k,k+1) pi )| = |L(pi)| - 1 otherwise. This shows that the length of pi with respect to your generators is |L(pi)|, and also that the following function returns a word of minimal length in your set of generators (there can be many of such words, this gives the lexicographically smallest): SnWord := function(pi) local word, k; word := []; while pi <> () do k := 1; while k^pi < (k+1)^pi do k := k + 1; od; Add(word, k); pi := (k,k+1) * pi; od; return word; end; (This can be generalized to arbitrary Coxeter groups with a given set of Coxeter generators.) With best regards, Frank Luebeck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From ufn at maths.lth.se Mon Mar 29 11:22:08 2004 From: ufn at maths.lth.se (Ufnarovski Victor) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] length Message-ID: <200403291022.MAA24452@noether.maths.lth.se> >This is in general very difficult. There is essentially no better method >but a brute force search. Not exactly. You can calulate Groebner basis with deglex ordering. Then normal form gives you the word of the minimal length. Victor Ufnarovski From goetz at schmidt.nuigalway.ie Mon Mar 29 11:19:48 2004 From: goetz at schmidt.nuigalway.ie (Goetz Pfeiffer) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] length In-Reply-To: <20040328050047.GA32201@realcool.org> References: <20040328050047.GA32201@realcool.org> Message-ID: <1080555588.22887.105.camel@schmidt.nuigalway.ie> Dear Forum, dear marcus, On Sun, 2004-03-28 at 06:00, marcus@thunder.realcool.org wrote: > How can I compute the > length of an element > of a group, where by > "length" I mean the minimum > number of generators > needed to write the element, > assuming that I've fixed > a generating set for the group. > In particular, I need to do > this for the symmetric group > using generating set > (1,2), (2,3), (3,4), ... (n-1,n) the length of a permutation p with respect to the generating set { (i, i+1) } is the number of pairs i < j with i^p > j^p. It can for example be computed by this function LengthPerm: gap> LengthPerm:= p -> > Sum([1..LargestMovedPoint(p)], j-> Number([1..j-1], i-> i^p > j^p)); function( p ) ... end gap> LengthPerm((1,2,3,4,5)); 4 gap> Collected(List(Elements(SymmetricGroup(4)), LengthPerm)); [ [ 0, 1 ], [ 1, 3 ], [ 2, 5 ], [ 3, 6 ], [ 4, 5 ], [ 5, 3 ], [ 6, 1 ] ] In general, the computation of the length of a group element is less straight forward. Goetz Pfeiffer. ------------------------------------------------------------------------- Goetz.Pfeiffer@NUIGalway.ie http://schmidt.nuigalway.ie/~goetz/ National University of Ireland, Galway. phone +353-91-512027 (x3591) From stephen.lipp at edi-nola.com Tue Mar 30 14:49:25 2004 From: stephen.lipp at edi-nola.com (Stephen C. Lipp) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Cyclic permutation of five elements Message-ID: Problem 1: Given five elements find a cyclic set of transpositions which will yield all permutations of these elements with respect to a given permutation, namely (2,3,4,5). Unfortunately, I am not speaking of permutations in the traditional sense, but I am speaking of the indexing of the set. Hence, if I apply the following transpositions [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] to the set [1,2,3,4,5] I get the cycle [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], [4,2,1,3,5], [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], [3,5,4,2,1], [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], [3,1,2,4,5], [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], [2,5,1,3,4], [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], [1,2,3,4,5]] The set of transpositions was obtained using an algorithm on a spreadsheet with a random number generator. This cycle contains all 5!/4 permutations of 5 elements where the last 4 elements are allowed to rotate. The terminology I am using would indicate there exists an isomorphism between the index transpositions and group permutations. Does such an isomorphism exist and, if so, what is it? Please forgive me if my use of the terminology is poor. It has been a very long time since I made use of the terminology of group theory. From kohl at mathematik.uni-stuttgart.de Tue Mar 30 17:38:03 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Cyclic permutation of five elements References: Message-ID: <4069A26B.A9C58B1@mathematik.uni-stuttgart.de> Dear Stephen C. Lipp and Forum, > Problem 1: Given five elements find a cyclic set of transpositions which > will yield all permutations of these elements with respect to a given > permutation, namely (2,3,4,5). > > Unfortunately, I am not speaking of permutations in the traditional > sense, but I am speaking of the indexing of the set. Hence, if I apply > the following transpositions > > [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, > <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, > <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] > > to the set [1,2,3,4,5] I get the cycle > > [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], > [4,2,1,3,5], > [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], > [3,5,4,2,1], > [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], > [3,1,2,4,5], > [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], > [2,5,1,3,4], > [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], > [1,2,3,4,5]] > > The set of transpositions was obtained using an algorithm on a > spreadsheet with a random number generator. > > This cycle contains all 5!/4 permutations of 5 elements where the last 4 > elements are allowed to rotate. The terminology I am using would > indicate there exists an isomorphism between the index transpositions > and group permutations. Does such an isomorphism exist and, if so, what > is it? Let me try to guess what you want to say: Apparently you describe a walk through the Cayley graph of the symmetric group S_5 with the set of transpositions as generating set which passes each element of the conjugacy class of the 4-cycles exactly once. The isomorphism you are looking for is probably just the action isomorphism for the action of S_5 on the set {1,2,3,4,5}. Please don't hesitate to ask in case I have misunderstood you or if you have further questions. Hope this helps, Stefan Kohl From scl at edi-nola.com Wed Mar 31 20:28:02 2004 From: scl at edi-nola.com (Stephen C. Lipp) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] FW: Cyclic permutation of five elements Message-ID: This is a re-posting of a message that had been "bounced." -----Original Message----- From: Stephen C. Lipp Sent: Tuesday, March 30, 2004 7:49 AM To: 'forum@gap-system.org' Subject: Cyclic permutation of five elements Problem 1: Given five elements find a cyclic set of transpositions which will yield all permutations of these elements with respect to a given permutation, namely (2,3,4,5). Unfortunately, I am not speaking of permutations in the traditional sense, but I am speaking of the indexing of the set. Hence, if I apply the following transpositions [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] to the set [1,2,3,4,5] I get the cycle [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], [4,2,1,3,5], [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], [3,5,4,2,1], [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], [3,1,2,4,5], [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], [2,5,1,3,4], [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], [1,2,3,4,5]] The set of transpositions was obtained using an algorithm on a spreadsheet with a random number generator. This cycle contains all 5!/4 permutations of 5 elements where the last 4 elements are allowed to rotate. The terminology I am using would indicate there exists an isomorphism between the index transpositions and group permutations. Does such an isomorphism exist and, if so, what is it? Please forgive me if my use of the terminology is poor. It has been a very long time since I made use of the terminology of group theory. From reza_orfi at yahoo.com Wed Mar 31 21:54:32 2004 From: reza_orfi at yahoo.com (Reza Orfi) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] reza orfi from iran Message-ID: <20040331205432.54248.qmail@web13009.mail.yahoo.com> dear gap-forum I need all normalsubgroups of this group g= And my computer can not list all normalsubgroups of g . please help me. whit many thanks. REZA ORFI --------------------------------- Do you Yahoo!? Yahoo! Finance Tax Center - File online. File on time. From hulpke at math.colostate.edu Wed Mar 31 23:45:32 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] reza orfi from iran In-Reply-To: <20040331205432.54248.qmail@web13009.mail.yahoo.com> Message-ID: <200403312245.i2VMjW1i007557@schur.math.colostate.edu> Dear Gap-Froum, Reza Orfi wrote: > I need all normalsubgroups of this group > g= > And my computer can not list all > normalsubgroups of g . Usually these types of calculations are easiest done in an isomorphic permutation group: gap> f:=FreeGroup("x","y");x:=f.1;y:=f.2; x y gap> n:=[x^3,y^3,(x*y)^3*x/y*x*y/x*y*x/y]; [ x^3, y^3, x*y*x*y*x*y*x*y^-1*x*y*x^-1*y*x*y^-1 ] gap> g:=f/n; gap> hom:=IsomorphismPermGroup(g);; gap> h:=Image(hom); # now h is a permutation group with the same structure gap> Size(h); 9000 gap> l:=NormalSubgroups(h); [ Group(()), , , , , , , ] gap> l:=List(l,i->PreImage(hom,i)); [ Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group() ] Calculating concrete generators in the finitely presented group is a bit more memory intensive: gap> List(l,GeneratorsOfGroup); [], [y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x], [y*x*y^-1*x*y*x*y^-1*x,y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1,y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y], [x,y*x*y^-1,y^-1*x*y], [y*x*y*x^-1*y*x^-1*y*x^-1*y*x*y*x^-1*y^-1*x^-1], [y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1,y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x,y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y*x], [y*x*y*x^-1*y*x*y*x^-1,y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1], [x,y]] Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wh at icparc.ic.ac.uk Thu Apr 1 00:37:29 2004 From: wh at icparc.ic.ac.uk (Warwick Harvey) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Finding a representative which moves fewest points Message-ID: <20040401003727.A9726@tempest.icparc.ic.ac.uk> Dear GAP Forum, I am a relative novice when it comes to GAP and group theory, so please excuse me if I've missed something obvious. What I would like is a function like RepresentativeAction which returns a representative that moves as few points as possible. Taking the example from the manual: gap> g:=Group((1,3,2),(2,4,3));; gap> RepresentativeAction(g,1,3); (1,3)(2,4) I would like instead the element (1,3,2), since this only moves 3 points rather than 4. I tried constructing cosets of the stabilizer of 1 and using RepresentativeSmallest on the appropriate coset, but of course the notion of smallest there is not what I want. I have an algorithm in mind that I could use to construct a representative of the form I desire, but don't want to re-invent the wheel if there's already an easy way to do it. Thanks for any tips. Cheers, Warwick From hulpke at math.colostate.edu Thu Apr 1 19:37:52 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:16 2006 Subject: [GAP Forum] Re: Fp group (was: Orfi) In-Reply-To: <20040331205432.54248.qmail@web13009.mail.yahoo.com> Message-ID: <200404011837.i31IbqIM010518@schur.math.colostate.edu> Thank you to all of you (so far: Eamonn O'Brien, Mike Newman, Derek Holt, Werner Nickel) who pointed out that I misread a relation in the group as two relators. The proper group is a bit bigger: gap> f:=FreeGroup("x","y");x:=f.1;y:=f.2; x y gap> n:=[x^3/y^3,(x*y)^3*x/y*x*y/x*y*x/y]; [ x^3*y^-3, x*y*x*y*x*y*x*y^-1*x*y*x^-1*y*x*y^-1 ] gap> g:=f/n; gap> hom:=IsomorphismPermGroup(g);; gap> h:=Image(hom);; gap> Size(h); 360000 IsomorphismPermGroup tries the action on the cosets of some cyclic subgroups. In this case it fails and returns the regular representation. gap> NrMovedPoints(h); 360000 Before continuing, lets therefore devote a bit of work to get the degree smaller (the default GAP function for this would be SmallerDegreePErmutationRepresentation' but as it is very opportunistic and does not try to spend too much time, it does not give an improvement): Try to find some cyclic subgroup in the permutation group such that the action on its cosets is faithful. gap> r:=Random(h);; gap> Order(r); 120 gap> r:=Random(h);;Order(r); 60 gap> u:=Subgroup(h,[r]);; gap> v:=List(ConjugacyClassesSubgroups(u),Representative);; gap> List(v,Size); [ 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60 ] gap> v:=Filtered(v,i->Size(Core(h,i))=1); [ Group(()), ] This is not good enough. Try again gap> r:=Random(h);;Order(r); 30 gap> u:=Subgroup(h,[r]);; gap> v:=List(ConjugacyClassesSubgroups(u),Representative);; gap> v:=Filtered(v,i->Size(Core(h,i))=1);; gap> List(v,Size); [ 1, 2, 5, 10 ] gap> u:=v[4];; As the permutation action of h is regular, the action on the cosets of u is given by action on the sets given by orbits of u: gap> b:=Orbit(h,Set(Orbit(u,1)),OnSets);; gap> h1:=ActionHomomorphism(h,b,OnSets); We thus get a smaller degree permutation representation and proceed as before: gap> hom:=hom*h1;; gap> h:=Image(hom);; gap> n:=NormalSubgroups(h);; gap> List(n,Size); [ 1, 3, 2, 6, 4, 12, 8, 24, 5, 15, 10, 30, 20, 60, 40, 120, 125, 375, 250, 250, 750, 750, 500, 500, 1500, 1500, 1000, 1000, 3000, 3000, 250, 750, 500, 1500, 1000, 3000, 2000, 6000, 15000, 45000, 30000, 90000, 60000, 180000, 120000, 360000 ] gap> np:=List(n,i->PreImage(hom,i));; gap> Length(np); 46 Calculating generators for some of the smaller subgroups might become a bit memory intensive. We therefore treat cyclic normal subgroups differently: Instead of using GeneratorsOfGroup' (which computes Schreier generators using a coset table) we just take preimages for (permutation) generators under the homomorphism: gap> c:=Filtered([1..46],i->IsCyclic(n[i])); [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 ] gap> List(n{c},i->PreImagesRepresentative(hom,GeneratorOfCyclicGroup(i))); [ , y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^ -1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-2*y*x^-1*y*x^-2*y^-2*x^ -1*y^-1*x^-2, y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^ -1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^ -1*x^-1, x^2*y*x*y*x*y*x*y^2*x^2*y^-1*x*y^-1*x^-1*y^-1*x*y*x*y*x^-1, y^2*x*y^2*x*y^2*x^2*y*x^2*y^2*x^8*y^-1*x^-1*y^-1*x^-1*y*x*y, x^2*y*x^2*y*x*y*x*y*x*y*x^2*y^-1*x^2*y*x*y*x^-1*y*x*y*x*y*x^-1*y, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y^-2*x^-2*y^-1*x^-1*y^-1*x^-1*y^-1*x^ -1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-2*y^-1*x^-2, y^-1*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y^-1*x^-1*y^-1*x^-2*y^-2*x^-2*y^-2*x^-2*y^ -2*x^-1*y^-2*x^-2*y^-1*x^-1*y^-1*x^-2, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^ -1*y^-2*x^-5*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1*x^ -2*y^-1*x^-2, x*y*x^2*y^2*x*y^2*x^4*y^2*x*y^-1*x^-1*y^-1*x*y*x*y*x^-1, x^12, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y^-2*x^-1*y^-1*x^-1*y^-1*x^-2*y^ -2*x^-1*y^-2*x^-1*y^-1*x^-1*y^-1*x^-1*y^-1, x^-18, x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x*y*x*y*x^-1*y*x^-1*y*x^-2*y^ -1*x^-1*y^-1*x^-2*y^-1*x^-2, y^-1*x^-1*y^-1*x*y*x*y*x^-11*y^-2*x^-2*y^ -1*x^-2*y^-2*x^-1*y^-2*x^-1*y^-2, y*x^2*y^2*x*y*x*y^2*x^2*y*x*y^2*x^5*y*x^ 2*y^-1*x^-1*y^-1*x^-1*y*x*y ] and treat the rest in the same way: gap> List(np{Difference([1..46],c)},GeneratorsOfGroup); [ [ y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x, y*x^-1*y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1 ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x ], [ y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1 ], [ x^-12, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, x^-12 ], [ y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ x^-1*y*x*y^-1*x*y*x^-2*y^-1*x^-1, x^-1*y^-1*x*y*x*y^-1*x*y^-2*x^-1, y*x^2*y^2*x^-1*y*x^-1*y^-1*x^-1, y^-1*x*y^-1*x*y*x*y^-1*x^-2*y^-1 ], [ x^-6, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ x^-6, y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x ] , [ x^-1*y*x*y^-1*x*y*x^-2*y^-1*x^-1, x^-1*y*x^-1*y*x*y*x^-1*y^-2*x^-1, x^-1*y^-1*x*y*x*y^-1*x*y^-2*x^-1 ], [ x^-6, x^2*y*x^-1*y^-1*x^-1*y*x^-1*y^-1, x^2*y^-1*x^-1*y*x^-1*y^-1*x^-1*y, x*y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x, y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y ], [ x^3, y*x*y*x*y^-1*x*y^-1*x^-1*y^-1*x^-1*y*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ x^3, y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x*y*x ], [ x^-6, x^2*y*x*y*x^-1*y*x*y, x^2*y*x^-1*y^-1*x^-1*y*x^-1*y^-1, x^2*y^-1*x*y^-1*x^-1*y^-1*x*y^-1 ], [ x^-1*y*x*y^-1*x^-2*y^-2*x^-2*y^-1*x^-1, x^-1*y^-1*x*y*x^-2*y^-1*x^-2*y^-2*x^-1, y*x^2*y^2*x^2*y*x^2*y^-1*x^-1, y*x*y*x^-1*y*x^-1*y^-1*x^-1*y^-1*x*y^-1*x ], [ y*x*y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1, y*x*y*x*y^-1*x^-1*y^-1*x^-1*y^-1*x, y*x*y*x^-1*y^-1*x^-1*y^-1*x^-1*y*x, y*x^-1*y*x^-1*y*x^-1*y*x^-1*y*x^-1 ] , [ y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^ -1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1, x^-12 ], [ y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y*x^-1*y*x^-1*y*x^-1*y*x^-1*y*x^-1 ], [ x^-6, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y^2*x*y^-1*x*y*x*y^-1*x*y^-1 ], [ x^-6, y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ x^3, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1, y^-1*x^-1*y*x^-1*y^-1*x^-1*y*x^-1, y*x^-1*y*x^-1*y^-1*x^-1*y*x^-1*y ], [ x^3, y*x*y*x^-1*y*x*y*x^-1, y*x*y^-1*x*y*x*y^-1*x, y*x^-1*y^-1*x^-1*y*x^-1*y^-1*x^-1 ], [ y*x*y^-1*x^-1, y*x^-1*y^-1*x, y^-1*x*y*x^-1, y^-1*x^-1*y*x ], [ y*x^-1, y^-1*x ], [ x^-4, y*x*y^-1*x^-1, y*x^-1*y^-1*x, y^-1*x*y*x^-1 ], [ y*x^-1, y^-1*x, x^-4 ], [ x^-2, y*x*y^-1*x^-1, y^-1*x*y*x^-1 ], [ x^-2, y*x^-1 ], [ x, y*x*y^-1, y^-1*x*y ], [ x, y ] ] Best wishes, Alexander Hulpke From hulpke at math.colostate.edu Thu Apr 1 19:50:18 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Finding a representative which moves fewest points In-Reply-To: <20040401003727.A9726@tempest.icparc.ic.ac.uk> Message-ID: <200404011850.i31IoIMd010540@schur.math.colostate.edu> Dear GAP Forum, Warwick Harvey asked: > What I would like is a function like RepresentativeAction which returns a > representative that moves as few points as possible. Taking the example > from the manual: > > gap> g:=Group((1,3,2),(2,4,3));; > gap> RepresentativeAction(g,1,3); > (1,3)(2,4) > > I would like instead the element (1,3,2), since this only moves 3 points > rather than 4. I tried constructing cosets of the stabilizer of 1 and using > RepresentativeSmallest on the appropriate coset, but of course the notion of > smallest there is not what I want. Basically you want to find an element x in the stabilizer of 3 so that r*x fixes many points. If your group is of moderate degree, probvably the following brute-force approach works: gap> g:=Group((1,3,2),(2,4,3));; gap> p1:=1; gap> p2:=3; gap> r:=RepresentativeAction(g,p1,p2); (1,3)(2,4) gap> s:=Stabilizer(g,p2); Group([ (1,2,4) ]) gap> best:=r; (1,3)(2,4) gap> best:=r;bm:=NrMovedPoints(best); (1,3)(2,4) 4 gap> for x in Enumerator(s) do > a:=r*x; > if NrMovedPoints(a) best:=a;bm:=NrMovedPoints(best); > fi; > od; gap> best; (1,3,2) If your group gets bigger so that you do not want to run through all elements in s, I would consider to map some points according to the orbits of s. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wdj at USNA.Navy.Mil Thu Apr 1 16:21:48 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Brauer characters Message-ID: <406C338C.4040605@hermes.ewlab.usna.edu> Hello GAP Forum: Does GAP implement induction for Brauer characters? - David From scl at edi-nola.com Fri Apr 2 14:13:11 2004 From: scl at edi-nola.com (Stephen C. Lipp) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Cyclic permutation of five elements Message-ID: > Problem 1: Given five elements find a cyclic set of transpositions which > will yield all permutations of these elements with respect to a given > permutation, namely (2,3,4,5). > > Unfortunately, I am not speaking of permutations in the traditional > sense, but I am speaking of the indexing of the set. Hence, if I apply > the following transpositions > > [<3,4>, <4,5>, <2,3>, <1,2>, <4,5>, <2,3>, <3,4>, <2,3>, <5,1>, <4,5>, > <1,2>, <3,4>, <2,3>, <3,4>, <1,2>, <5,1>, <1,2>, <4,5>, <5,1>, <4,5>, > <2,3>, <3,4>, <1,2>, <3,4>, <4,5>, <2,3>, <4,5>, <3,4>, <1,2>, <4,5>] > > to the set [1,2,3,4,5] I get the cycle > > [[1,2,4,3,5], [1,2,4,5,3], [1,4,2,5,3], [4,1,2,5,3], [4,1,2,3,5], > [4,2,1,3,5], > [4,2,3,1,5], [4,3,2,1,5], [5,3,2,1,4], [5,3,2,4,1], [3,5,2,4,1], > [3,5,4,2,1], > [3,4,5,2,1], [3,4,2,5,1], [4,3,2,5,1], [1,3,2,5,4], [3,1,2,5,4], > [3,1,2,4,5], > [5,1,2,4,3], [5,1,2,3,4], [5,2,1,3,4], [5,2,3,1,4], [2,5,3,1,4], > [2,5,1,3,4], > [2,5,1,4,3], [2,1,5,4,3], [2,1,5,3,4], [2,1,3,5,4], [1,2,3,5,4], > [1,2,3,4,5]] > > The set of transpositions was obtained using an algorithm on a > spreadsheet with a random number generator. > > This cycle contains all 5!/4 permutations of 5 elements where the last 4 > elements are allowed to rotate. The terminology I am using would > indicate there exists an isomorphism between the index transpositions > and group permutations. Does such an isomorphism exist and, if so, what > is it? Let me try to guess what you want to say: Apparently you describe a walk through the Cayley graph of the symmetric group S_5 with the set of transpositions as generating set which passes each element of the conjugacy class of the 4-cycles exactly once. The isomorphism you are looking for is probably just the action isomorphism for the action of S_5 on the set {1,2,3,4,5}. Please don't hesitate to ask in case I have misunderstood you or if you have further questions. Hope this helps, Stefan Kohl ------------------------------------------------------------------------ So I am looking for a cyclic walk through the Cayley table of 120 elements where the equivalence classes are with respect to rotation on the last 4 elements of the set. Hence there are 30 steps taken to cover all the classes. The obvious question that arises is, How does one find a "walk" through this set? As pointed out in the initial E-mail, the walk was found using an algorithm (basically a depth-first search) on a spreadsheet with a random number generator. Now suppose the set is larger (the Cayley table is 5040 elements where the equivalence classes are with respect to a rotation of order 3). Hence there are 1680 steps taken to cover all the partitions of the set. Is there a more efficient algorithm than a depth-first search? The other question that has not been addressed is existence. Does such a walk exist? If, for example, I try to walk through S_3 where the equivalence class is with respect to transposition of the first two elements of the set, such a transposition walk does not exist. Stephen C. Lipp From wdj at madeline.usna.edu Sat Apr 3 20:59:10 2004 From: wdj at madeline.usna.edu (David Joyner) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] guava 1.9 Message-ID: <406F178E.1010001@gwweb.usna.edu> Hello GAP Forum: This is to announce that the next version of GAP's error-correcting codes package GUAVA, version 1.9, is ready. Many thanks to Frank Luebeck for help with this. I hope the permission problems Frank discovered are corrected. From the CHANGES file: Version 1.9 has: o Faster MinimumDistance algorithm (joint with Aron Foster, a student). o MinimumDistanceLeon algorithm (joint with Aron Foster). o Faster PutStandard form algorithm (with GAP's Frank Luebeck). o New PermutationGroup command (for possibly non-binary codes). o New PermutationDecode command. See the manual on the web page for more information and downloading: http://cadigweb.ew.usna.edu/~wdj/gap/GUAVA/ Pleas email me if you experience any problems. - David Joyner From dima at thi.informatik.uni-frankfurt.de Tue Apr 6 09:56:03 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] decomposition formulae for C-representations Message-ID: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> Dear Forum, are the formulae that give the decomposition of a C-represenation p of a finite group G into direct sums of irreducibles implemented in GAP? (perhaps somewhere within character theory machinery I guess) I mean the standard ones given in e.g. Serre's "Linear Representations of Finite Groups", Sect. 2.6 and 2.7. For instance to obtain the subrepresentation of p (a direct sum of irreducible representations with the same character chi) of dimension n_chi, corresponding to the irrducible character chi, one uses the projection n_chi/|G| sum_{g in G} chi^*(g)p(g) (Thm. 8 in Sect. 2.6 of the Serre's book) Certainly, this is only feasible for groups of relatively small order to use these formulae directly, but in our case the groups are of order <10^4. thanks Dmitrii From carcher at ulb.ac.be Tue Apr 6 13:24:36 2004 From: carcher at ulb.ac.be (carcher@ulb.ac.be) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] New features for the Polycyclic package ; Message-ID: <200404061224.OAA26217@web1.ulb.ac.be> I have some question about the very nice Polycyclic Package of Bettina and Werner. First of all, thank you for the package. Here are my questions 1) how are cocycle components ordered for Pcp groups ? For finite pc group there is a line in file in /lib/twocohom.gi ## The tail of a conjugate i^j (i>j) or a power i^p (i=j) is stored at ## posiition (i^2-i)/2+j that gives the solution. Unfortunately i haven't found such a line in the code of the polycyclic package. 2) I would like to compute the second cohomology groups Z2(G,A) and B2(G,A) of an arbitrary finitely generated abelian group A. In the gap library, this is only possible if A is elementary abelian and G is polycyclic. Are there any plan to do it for arbitrary A and G polycyclic ? And for G a non polycyclic permutation group ? Derek Holt has implemented in Magma a method for A arbitrary and i think that further developments of your Polycyclic package is the solution to implement it in GAP. The idea is to write the module action on A by integer matrices and to add linear equations to the linear system needed to compute the cocycle. This new equations specify that some coefficients of the system have to be interpreted modulo an integer. i have tried to do the job by myself first by modifyng the equations of the linear system. In attachement you can find a modify version of the function TwoCocyclesCR. --> see attachement TwoCocyclesCRbis:=function( A, invarlist ) 3) Is there some plan to provide automorphisms group of Pcp group ? 4) Another nice posibility of the polycyclic package is to use non prime pcgs. But, if for a given pcp group G one wants to construct G one a non prime pcgs there is no function to do so without refining it into a prime pcgs. A nice application of non prime pcgs is the ability to reduce the number of unknowns in the linear system to determine cocycle Thank you very much for your help Claude -------------- next part -------------- ############################################################################# ## #F TwoCocyclesCRbis( A, invarlist ) ### Twococyles for a finitely generated abelian group, ## described as a product of the cyclic group invarlist[i] ##InstallGlobalFunction( TwoCocyclesCRbis, function( A , invarlist ) TwoCocyclesCRbis:=function( A, invarlist ) local C, n, e, id, l, gn, gp, gi, eq, pairs, i, j, k, w1, w2, d, sys, h, ### new variables for the new code (arbitrary finitely generated abelian group) m,standardvect,fullkernel,ll; # set up system of length d n := Length( A.mats ); e := RelativeOrdersOfPcp( A.factor ); l := Length( A.enumrels ); d := A.dim; sys := CRSystem( d, l, A.char ); # set up for equations id := IdentityMat(n); gn := List( id, x -> rec( word := x, tail := [] ) ); # precompute (ij) for i > j pairs := List( [1..n], x -> [] ); for i in [1..n] do if e[i] > 0 then h := rec( word := (e[i] - 1) * id[i], tail := [] ); pairs[i][i] := CollectedTwoCR( A, h, gn[i] ); fi; for j in [1..i-1] do pairs[i][j] := CollectedTwoCR( A, gn[i], gn[j] ); od; od; # consistency 1: k(ji) = (kj)i for i in [ n, n-1 .. 1 ] do for j in [ n, n-1 .. i+1 ] do for k in [ n, n-1 .. j+1 ] do w1 := CollectedTwoCR( A, gn[k], pairs[j][i] ); w2 := CollectedTwoCR( A, pairs[k][j], gn[i] ); if w1.word <> w2.word then Error( "k(ji) <> (kj)i" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; od; od; od; # consistency 2: j^(p-1) (ji) = j^p i for i in [n,n-1..1] do for j in [n,n-1..i+1] do if e[j] > 0 then h := rec( word := (e[j] - 1) * id[j], tail := [] ); w1 := CollectedTwoCR( A, h, pairs[j][i]); w2 := CollectedTwoCR( A, pairs[j][j], gn[i]); if w1.word <> w2.word then Error( "j^(p-1) (ji) <> j^p i" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; fi; od; od; # consistency 3: k (i i^(p-1)) = (ki) i^p-1 for i in [n,n-1..1] do if e[i] > 0 then h := rec( word := (e[i] - 1) * id[i], tail := [] ); l := CollectedTwoCR( A, gn[i], h ); for k in [n,n-1..i+1] do w1 := CollectedTwoCR( A, gn[k], l ); w2 := CollectedTwoCR( A, pairs[k][i], h ); if w1.word <> w2.word then Error( "k i^p <> (ki) i^(p-1)" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; od; fi; od; # consistency 4: (i i^(p-1)) i = i (i^(p-1) i) for i in [ n, n-1 .. 1 ] do if e[i] > 0 then h := rec( word := (e[i] - 1) * id[i], tail := [] ); l := CollectedTwoCR( A, gn[i], h ); w1 := CollectedTwoCR( A, l, gn[i] ); w2 := CollectedTwoCR( A, gn[i], pairs[i][i] ); if w1.word <> w2.word then Error( "i i^p-1 <> i^p" ); else AddEquationsCR( sys, w1.tail, w2.tail, true ); fi; fi; od; # consistency 5: j = (j -i) i gi := List( id, x -> rec( word := -x, tail := [] ) ); for i in [n,n-1..1] do for j in [n,n-1..i+1] do #if e[i] = 0 then w1 := CollectedTwoCR( A, gn[j], gi[i] ); w2 := CollectedTwoCR( A, w1, gn[i] ); if w2.word <> id[j] then Error( "j <> (j -i) i" ); else AddEquationsCR( sys, w2.tail, [], true ); fi; #fi; od; od; # consistency 6: i = -j (j i) for i in [n,n-1..1] do for j in [n,n-1..i+1] do if e[j] = 0 then w1 := CollectedTwoCR( A, gi[j], pairs[j][i] ); if w1.word <> id[i] then Error( "i <> -j (j i)" ); else AddEquationsCR( sys, w1.tail, [], true ); fi; fi; od; od; # consistency 7: -i = -j (j -i) for i in [n,n-1..1] do for j in [n,n-1..i+1] do if e[i] = 0 and e[j] = 0 then w1 := CollectedTwoCR( A, gn[j], gi[i] ); w1 := CollectedTwoCR( A, gi[j], w1 ); if w1.word <> -id[i] then Error( "-i <> -j (j -i)" ); else AddEquationsCR( sys, w1.tail, [], true ); fi; fi; od; od; # add a check ((j ^ i) ^-i ) = j for i in [1..n] do for j in [1..i-1] do w1 := CollectedTwoCR( A, gi[j], pairs[i][j] ); w1 := CollectedTwoCR( A, gn[j], w1 ); w1 := CollectedTwoCR( A, w1, gi[j] ); if w1.word <> id[i] then Error("in rel check "); elif not IsZeroTail( w2.tail ) then # Error("relations bug"); AddEquationsCR( sys, w1.tail, [], true ); fi; od; od; ########################################### ######### new code for arbitrary abelian group m:=Length(sys.base)/d; # Now, we add d*m new unknowns y[k] as follows : # since equation k=j*d+i evaluates to 0 (mod invarlist[i]), a multiple of invarlist[i], # we add the multiple y[k]*invarlist[i] to equation[k] for i in [1..d] do for j in [0..m-1] do standardvect:=List([1..d*m],x->0); standardvect[j*d+i]:=invarlist[i]; Append( sys.base[j*d+i],standardvect); od; od; fullkernel:=KernelCR( A, sys ).basis; ### Now, we get rid off the d*m auxilliary unknowns we added ### we want the projection of the null space NS on the l*d original coordinates ## If the solutions in {B} form a basis for NS then proj({B}) generates proj(NS). ## Moreover the component [j*d+i] of a vector in proj({B}) may be reduced mod invarlist[i] ## improvement ? : the coefficients of fullkernel can be very large so we should have a ## way to reduce them during the calculation of KernelCR( A, sys ).basis; ## if we want to preserve the type of fullkernel ll:=Length(A.enumrels); # l has changed, why ? so we rename it for k in [1..Length(fullkernel)] do fullkernel[k]:=fullkernel[k]{[1..ll*d]}; for i in [1..d] do for j in [0..ll-1] do fullkernel[k][j*d+i]:=fullkernel[k][j*d+i] mod invarlist[i]; od; od; od; # and return solution return Set(fullkernel); ## after the modulo reduction, many zero vectors appear end ; ############################################################################# From jjoao at netcabo.pt Mon Apr 5 22:34:19 2004 From: jjoao at netcabo.pt (Jose Joao Morais) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] InstallCharReadHookFunc Message-ID: <1081200746.5806.3.camel@a81-84-193-207.netcabo.pt> Dear GAP Forum, I have the following code: gap> d := Directory("/home/josejoao/Projects/project2/src");; gap> f := Filename(d, "gapmenu");; gap> gapmenustream := InputOutputLocalProcess(d,f,[]);; gap> func := function() > Print(ReadAll(gapmenustream)); > end;; gap> InstallCharReadHookFunc( gapmenustream, "r", func ); But as soon as there is somethig ready to be read from the stream, I get the following error: gap> Function: number of arguments must be 0 (not 1) not in any function Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace the argument list via 'return ;' to continue Can someone tell me what is wrong in this? Thank you, Jose Morais From wdj at USNA.Navy.Mil Wed Apr 7 15:54:35 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] decomposition formulae for C-representations In-Reply-To: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> References: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> Message-ID: <4074162B.3060406@hermes.ewlab.usna.edu> Dmitrii Pasechnik wrote: >Dear Forum, > >are the formulae that give the decomposition of a C-represenation p >of a finite group G into direct sums of irreducibles implemented in GAP? >(perhaps somewhere within character theory machinery I guess) > >I mean the standard ones given in e.g. Serre's "Linear Representations >of Finite Groups", Sect. 2.6 and 2.7. >For instance to obtain the subrepresentation of p (a direct sum of >irreducible representations with the same character chi) of dimension >n_chi, corresponding to the irrducible character chi, one uses the projection > n_chi/|G| sum_{g in G} chi^*(g)p(g) >(Thm. 8 in Sect. 2.6 of the Serre's book) > >Certainly, this is only feasible for groups of relatively small order >to use these formulae directly, but in our case the groups >are of order <10^4. > >thanks >Dmitrii > >_______________________________________________ >Forum mailing list >Forum@mail.gap-system.org >http://mail.gap-system.org/mailman/listinfo/forum > > How is your repn p entered? For example, A5:=AlternatingGroup(5); A5_repns:=Irr(A5); C:=Centralizer(A5,(1,2)(3,4)); C_repns:=Irr(C); ind:=InducedClassFunction(C_repns[1],A5); m:=List(A5_repns,x->ScalarProduct(ind,x)); returns the multiplicities occuring in an induced repn. If p is entered as a class function, I'm not sure, but I'd like to know too! From scl at edi-nola.com Wed Apr 7 22:07:58 2004 From: scl at edi-nola.com (Stephen C. Lipp) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Cyclic permutation of five elements Message-ID: So I am looking for a cyclic walk through the Cayley table of 120 elements where the equivalence classes are with respect to rotation on the last 4 elements of the set. Hence there are 30 steps taken to cover all the classes. The obvious question that arises is, How does one find a "walk" through this set? As pointed out in the initial E-mail, the walk was found using an algorithm (basically a depth-first search) on a spreadsheet with a random number generator. Now suppose the set is larger (the Cayley table is 5040 elements where the equivalence classes are with respect to a rotation of order 3). Hence there are 1680 steps taken to cover all the partitions of the set. Is there a more efficient algorithm than a depth-first search? The other question that has not been addressed is existence. Does such a walk exist? If, for example, I try to walk through S_3 where the equivalence class is transposition of the first two elements of the set, such a transposition walk does not exist. There is no way to walk from [1, 2, 3] through the other two equivalence classes and arrive back at [1, 2, 3] in three steps. Stephen C. Lipp From thomas.breuer at math.rwth-aachen.de Thu Apr 8 08:39:37 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Re: decomposition formulae for C-representations Message-ID: Dear GAP Forum, Dima Pasechnik asked > are the formulae that give the decomposition of a C-represenation p > of a finite group G into direct sums of irreducibles implemented in GAP? > (perhaps somewhere within character theory machinery I guess) > > I mean the standard ones given in e.g. Serre's "Linear Representations > of Finite Groups", Sect. 2.6 and 2.7. > [...] > Certainly, this is only feasible for groups of relatively small order > to use these formulae directly, but in our case the groups > are of order <10^4. I am not aware of a GAP implementation for that. One possibility for groups of this small order would certainly be to compute the character of the given representation, to decompose it into irreducibles, to compute all irreducible representations of the group, and to use their characters for deciding which ones occur as summands of the given representation. Of course this can be viewed as an ugly attempt because it does not really decompose the given data. But computing the irreducible representations of small groups is not hard, and for the case of abelian by supersolvable groups one gets them in the nice form of monomial representations. The question is whether this suffices or whether you need the explicit base change that transforms the given matrices into block diagonal form. (And of course another question is whether it would be possible to avoid computations with representations at all.) All the best, Thomas From hulpke at math.colostate.edu Fri Apr 9 03:45:46 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] decomposition formulae for C-representations Message-ID: <200404090245.i392jknK010764@schur.math.colostate.edu> Dear Gap-Forum, (Somehow my original reply only went to Dima Pasechnik and not to the list. Thus a bit belatedly:) Dima Pasechnik wrote: > are the formulae that give the decomposition of a C-represenation p > of a finite group G into direct sums of irreducibles implemented in GAP? To my knowledge they are not immediately implemented, but it is relatively easyly done (I leave out the GAP output as it gets quite long): # construct some group and a matrix representation (this is your input) g:=TransitiveGroup(12,150); mats:=List(GeneratorsOfGroup(g),i->PermutationMat(i,12,1)); # matrix rep. hom:=GroupHomomorphismByImages(g,Group(mats),GeneratorsOfGroup(g),mats); # get character table and corresponding character c:=CharacterTable(g); char:=ClassFunction(c,List(ConjugacyClasses(c), i->TraceMat(Image(hom,Representative(i))))); # calculate decomposition MatScalarProducts(Irr(c),[char]); # In the example character 9 occurs. find the submodule x:=Irr(c)[9]; l:=Length(ConjugacyClasses(c)); # the projectuion matrix according to the formula you gave (I sum up the # elements according to conjugacy classes: proj:=x[1]/Size(g)*Sum([1..l],i->GaloisCyc(x[i],-1) *Sum(Elements(ConjugacyClasses(c)[i]),j->Image(hom,j))); # its rank (the dimension of the module) and a basis RankMat(proj); v:=BaseMat(proj); # for example the induced action on the submodule. induc:=List(mats,i->List(v,j->SolutionMat(v,j*i))); I hope this helps, Alexander -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From vdabbagh at math.carleton.ca Sun Apr 11 17:50:56 2004 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] decomposition formulae for C-representations In-Reply-To: <20040406085603.GA7964@thi21.thi.informatik.uni-frankfurt.de> Message-ID: Dear Dima and Dear GAP forum. I have developed a GAP share package "REPSN" to construct representations of finite groups. You can use this package to construct representations affording the given character. If you know constituents then using this package you can compute representations corresponding to these constituents to find a decomposition of the given representation. If you are interested please let me know then I can send you a prereleased version of that. Regards, Vahid Dabbaghian-Abdoly http://math.carleton.ca/~vdabbagh Tel: (613) 520-2600 ext. 8789 School of Mathematics and Statistics Room 4356, Herzberg Building 1125 Colonel By Drive, Carleton University Ottawa, Ontario, CANADA K1S 5B6 From vvk at csu.ru Tue Apr 13 04:25:37 2004 From: vvk at csu.ru (vvk@csu.ru) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Re: Protected Mail Delivery Message-ID: <200404130324.i3D3Of1C002236@gap-system.org> Protected message is available. ++++ Attachment: No Virus found ++++ Norton AntiVirus - www.symantec.de From e.obrien at auckland.ac.nz Tue Apr 13 08:49:03 2004 From: e.obrien at auckland.ac.nz (e.obrien@auckland.ac.nz) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Re: Delivery Protection Message-ID: <200404130748.i3D7lw1C006965@gap-system.org> Protected message is available. From sal at dcs.st-and.ac.uk Tue Apr 13 10:33:30 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Two spurious messages Message-ID: <20040413103330.1fcbaec3@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Two messages were sent out to the forum today, apparently from e.obrien@auckland.ac.nz and vvk@csu.ru These were in fact sent by a virus-infected computer apperantly in Russia (as you can see by a close examination of the headers). Any non-text attachments on forum messages are removed by mailman automatically, so these messages did not carry viruses. We will work on improving our defences against such mails. In the mean time, please just ignore them. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From sal at dcs.st-and.ac.uk Tue Apr 13 18:18:53 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Re: InstallCharReadHookFunc Message-ID: <20040413181853.191c558c@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Jose Morais asked: > gap> func := function() > > Print(ReadAll(gapmenustream)); > > end;; > gap> InstallCharReadHookFunc( gapmenustream, "r", func ); > > But as soon as there is somethig ready to be read from the stream, I > get the following error: > > gap> Function: number of arguments must be 0 (not 1) > not in any function > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can replace the argument list via 'return ;' to > continue > > > Can someone tell me what is wrong in this? The problem here is that the function supplied to InstallCharReadHookFunc must take one argument (which it can ignore). The manual mentions this, in passing: Note that handler functions must not return anything and get one integer ^^^^^^^^^^^^^^^^^ argument, which refers to an index in one of the following arrays (according to ^^^^^^^^ whether the function was installed for input, output or exceptions on the stream). Your message is produced when your function func() which takes no arguments is called by GAP with one argument. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From beick at tu-bs.de Thu Apr 15 13:59:52 2004 From: beick at tu-bs.de (Bettina Eick) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] New features for the Polycyclic package ; In-Reply-To: <200404061224.OAA26217@web1.ulb.ac.be> Message-ID: Dear Claude, dear Forum-members, > 1) how are cocycle components ordered for Pcp groups ? Let G be a pcp-group and let M = Z^d be a G-module. Suppose that G has l relators in its polycyclic presentation. Then the cocycles are returned as vectors of length l*d. Every vector is the concatenation of the l tails to the polycyclic relations of G. The relators of G are sorted for this purpose and the sorting is recorded in the cohomology record. An example: the infinite Dihedralgroup acting on Z as trivial module. gap> G := DihedralPcpGroup(0);; gap> mats := [IdentityMat(1), IdentityMat(1)];; gap> CR := CRRecordByMats(G,mats);; gap> CR.enumrels; [ [ 1, 1 ], [ 2, 1 ], [ 2, 3 ] ] gap> TwoCohomologyCR(CR).gcc; [ [ 1, 0, 0 ], [ 0, 1, 1 ] ] CR.enumrels tells you that there are three relations and they are sorted: [1,1] corresponds to the power relation g1^2 [2,1] corresponds to the conjugate relation g2^g1 [2,3] corresponds to the conjugate relation with the inverse g2^(g1^-1) Thus the cocycles are returned as vectors of length 3. > 2) > I would like to compute the second cohomology groups Z2(G,A) and B2(G,A) > of an arbitrary finitely generated abelian group A. In the gap library, > this is only possible if A is elementary abelian and G is polycyclic. There is also Derek's Cohomolo Package for arbitrary finite groups G. If you want to do a similar computation for finite abelian groups A which are not elementary abelian, then you can use a G-invariant series through A with elementary abelian factors and do induction along such a series. The case of an elementary or free abelian module A and a polycyclic factor G is covered in the Polycyclic package. Again, using induction along a series you could use this to deal with finitely generated abelian groups A. > 3) Is there some plan to provide automorphisms group of Pcp group ? For a finite pcp-group you can translate the automorphism group from the automorphism group of its corresponding pc-group. > 4) Another nice posibility of the polycyclic package is to use non prime > pcgs. But, if for a given pcp group G one wants to construct G one a non > prime pcgs there is no function to do so without refining it into a prime > pcgs. I do not understand this comment. Surely, you can define a pcp-group in GAP on a non-prime pcgs: gap> G := DihedralPcpGroup(20); Pcp-group with orders [ 2, 10 ] Hope this helps, Bettina From hulpke at math.colostate.edu Thu Apr 15 20:49:35 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Release Announcement: GAP 4.4 Message-ID: <200404151949.i3FJnaSL012676@schur.math.colostate.edu> Dear Gap-Forum, GAP 4.4 is available! It contains a variety of new features, improved algorithms and new programming tools. A detailed outline is included below. We recommend all GAP 4 users to upgrade to GAP 4.4 and we wish you fun and success in using GAP. You can download the new version of GAP from http://www.gap-system.org The GAP group ############################################################################# New Mathematical Features ------------------------- * New Algorithms and Functions in GAP - Groebner Bases: Buchberger's algorithm to compute Groebner Bases has been implemented in GAP. (By A. Hulpke) For large scale Groebner Basis computations there also is an interface to the Singular system available in the 'Singular' Package. (By M. Costantini and W. de Graaf) - Algebraic Field Extension: New methods for factorizing polynomials over algebraic extensions of the rationals have been implemented in GAP. (By A. Hulpke) For more functionality to compute with algebraic number fields there is an interface to the Kant system available in the 'Alnuth' Package. (By B. Assmann and B. Eick) - Galois Groups: A method for computing the Galois group of a rational polynomial has been implemented in GAP. (By A. Hulpke) - Finite Groups: A new operation and a new method to compute the minimal normal subgroups of a finite group and a method to determine the socle of a finite group has been installed. (By B. Hoefling) - Permutation Groups: A fast method for recognizing whether a permutation group is symmetric or alternating in its natural representation is available now. (By A. Seress) - Brauer Tables: The algorithm for 'BrauerCharacterValue' has been extended to the case where the splitting field is not supported in GAP. (By T. Breuer) Brauer tables of direct products can now be constructed from the known Brauer tables of the direct factors. (By T. Breuer) - Vector spaces: Basic support for vector spaces of rational functions and of uea elements is available now in GAP. (By T. Breuer and W. de Graaf) - Integer matrices: Various new functions for computations with integer matrices are available, such as methods for computing normal forms of integer matrices as well as nullspaces or solutions systems of equations. (By W. Nickel and F. Gaehler) - Meataxe: It is now possible to compute invariant forms and orthogonal signs of modules. (By D. Holt and J. Thackray) ############################################################################# * New Packages for GAP The following new Packages have been accepted. - LAGUNA: Computing with Lie Algebras and Units of Group Algebras. By V. Bovdi, A. Konovalov, R. Rossmanith, C. Schneider. - NQ: The ANU Nilpotent Quotient Algorithm. By W. Nickel. - KBMAG: Knuth-Bendix for Monoids and Groups. By D. Holt. - QuaGroup: Computing with Quantized Enveloping Algebras. By W. de Graaf. - AlNuTh: Algebraic Number Theory and an Interface to the Kant System. By B. Assmann and B. Eick - Polycyclic: Computation with Polycyclic Groups. By B. Eick and W. Nickel - Sonata: Construction and analysis of finite nearrings. By E. Aichinger, F. Binder, J. Ecker, P. Mayr, C. Noebauer ############################################################################# * Performance Enhancements - Character Theory: The computation of irreducible representations and irreducible characters using the Baum-Clausen algorithm and the implementation of the Dixon-Schneider algorithm have been speeded up. The algorithm for 'PossibleClassFusions' has been changed: the efficiency has been improved and a new criterion is used. The algorithm for 'PossibleFusionsCharTableTom' has been speeded up. The method for 'PrimeBlocks' has been improved following a suggestion of H. Pahlings. - Symmetric Groups New improved methods for normalizer and subgroup conjugation in Sn have been installed and new improved methods for IsNaturalSn/An have been implemented. These improve the available methods when groups of large degrees are given. - Permutation Groups: The partition split method used in the permutation backtrack is now in the kernel. Transversal computations in large permutation groups are improved. The decomposition of a permutation as a word in the generators now produces substantially shorter words: for example, the words have lengths about 100 for the Rubics Cube group. - Matrix Groups: The membership test in SP and SU has been improved using the invariant forms underlying these groups. - Finite groups: An improvement for the cyclic extension method has been implemented. - Matrices: A better method for MinimalPolynomial for finite field matrices has been implemented. - Polynomials: The display has changed and the arithmetic of multivariate polynomials has been improved. - LogMod: Uses now Pollard's rho method combined with the Pohlig/Hellmann approach. (By Sean Gage) - Lists: Various functions for sets and lists have been improved following suggestions of L. Teirlinck. These include: Sort, Sortex, SortParallel, SortingPerm, NrArrangements. - Finite Dimensional Algebras: The methods for 'StructureConstantsTable' and 'GapInputSCTable' have been improved in the case of a known (anti-) symmetry following a suggestion of M. Costantini. Unless otherwise stated, the improvements listed in this Section have been implemented by T. Breuer and A. Hulpke. ############################################################################# * Technical changes in GAP and new programming tools - IsSimple: Returns false now for the trivial group. - PrimeBlocks: The output format has changed. - Division Rings: These are implemented as 'IsRingWithOne' now. - DirectSumOfAlgebras: Pth power maps are compatible with the input now. - EnumeratorByFunctions: A new tool to create enumerators. - IteratorByFunctions: A new tool to create iterators. ############################################################################# * Bug Fixes It remains to mention that GAP 4.4 includes fixes for all bugs which had been reported before the deadline for the release. ############################################################################# New Programming and User Features --------------------------------- - Workspaces: The 2GB limit has been removed and version numbers have been introduced. (By S. Linton and B. Hoefling) - Types: The limit on the total number of types created in a session has been removed. (By S. Linton) - Packages: There is a new mechanism for loading packages available. Packages need a file PackageInfo.g now. (By T. Breuer and F. Luebeck) ############################################################################# Upwards Compatibility --------------------- The mechanism for the loading of Packages has changed. Packages require a file PackageInfo.g now. These new PackageInfo.g files are available for all accepted and deposited Packages within GAP 4.4. Apart from the Package loading, there are only some other very minor changes (e.g. the trivial group is not a simple group in GAP any longer) which are not compatible with GAP 4.3. ############################################################################# License and Installing GAP 4.4 ------------------------------ GAP is free software which is distributed under the GNU general public licence. You can get GAP 4.4 from - http://www.gap-system.org - ftp://ftp.gap-system.org in the directory pub/gap/gap4. ############################################################################# Acknowledgements --------------- * Personal Support The members of the GAP development team are working on GAP as a part of their research or in their free time. The GAP development team has members all over the world and thus GAP can be considered as a world wide joint research project. A list of the members of the GAP development team can be found in the Tutorial manual of GAP. A significant part of the functionality of GAP is available in the GAP packages. These are independently developed packages of code with their own author lists. A detailed list of the available GAP packages can be found on the GAP web pages. Finally, there is a long list of collaborateurs and users of GAP. The feedback and constructive critism of these people has helped to fix bugs and to improve the system. Many thanks are due to all these people. * Financial Support We acknowledge with gratitude the support of the development of GAP provided by a variety of funding bodies. Details can be found on the GAP web pages. ############################################################################ Bugfixes -------- If you have followed the releases of GAP over the last years you might have noted that a first bugfix typically comes early after a release. This is despite of extensive testing, but unfortunately reflects the limited size of the developer group compared to the user community. We simply might not have thought of doing certain things. If the experience of previous releases holds, we therfore will have a first update within the next two or three weeks. You might want to plan accordingly. From sal at dcs.st-and.ac.uk Fri Apr 16 22:56:39 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Release -- A Couple of Details Message-ID: <20040416225639.3c72f371@caolila.dcs.st-and.ac.uk> Dear GAP Forum, Just a few points to follow the release announcement. Firstly, due to some glitches here, the Website and FTP site were not fully updated with the intended new contents until this afternoon. In particular, the packages archive briefly contained a broken version of the xmod package. These sites are now updated. Apologies to anyone affected. As you will see the Website is still somewhat transitional, containing pages with both old and new "look". Over the next months we should complete the move to the new style. We would welcome comments on this style. Secondly, as ever, a few minor bugs came to light too late in the release process for fixes to be safely included in the release, and will be fixed in a bugfix in the next week or so. If any of them cause you especial difficulties, we may be able to send a specific correction to you. 1. A bug in the on-line help functions causes errors displaying a very few sections of the manual using the "screen" viewer. 2. There is a bug when computing homomorphisms from a finitely-presented group with a generator that occurs in no relator, which can cause an error.. 3. When GAP is loaded from a saved workspace, user specific information (such as the home directory referred to by ~) is taken from the workspace, not from the loading user. Thus if user a saves a workspace, and user b loads it and then does Read("~/myfuncs.g"); it will try to load "/home/a/myfuncs.g". 4. Runtimes() under Windows reports 0 instead of fail for the unavailable system and child CPU times. Finally, I'd like to take this opportunity to thank everyone concerned for their hard work in the long process of preparing this release. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From bcolletti at compuserve.com Sun Apr 18 15:46:57 2004 From: bcolletti at compuserve.com (Bruce W. Colletti) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Writing to File Message-ID: <002601c42554$012d67d0$6501a8c0@bcolletti> Re GAP 4.3fix4 running under WinXP Home. How do I set the record length of an output text file? When printing to the file, numbers follow one another (as desired) until too many occur, at which time GAP automatically creates a new output line. Numbers are separated by a space or tab. LogTo("filename") opens the file...maybe that's the problem. If so, what else should I use? I've tried an example in the manual that starts: name := Filename(DirectoryTemporary(),"test"); but GAP gags on the DirectoryTemporary() command. Thanks. Bruce From gap at gap.zssm.zp.ua Sun Apr 18 19:10:01 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Writing to File In-Reply-To: <002601c42554$012d67d0$6501a8c0@bcolletti> References: <002601c42554$012d67d0$6501a8c0@bcolletti> Message-ID: <636591620.20040418201001@gap.zssm.zp.ua> Dear Bruce, if I understand your task perfectly, you would like to write certain information to the text file and you need to increase the number of symbols per line in the output file. There are several approaches to this. The simplest, but less flexible is to use 'LogTo("filename");' and it will just copy the output from the screen to the file. In this case you may use the command 'SizeScreen([256,]);' to reach the maximum possible length of the line, but no more than 256 symbols. More opportunities are provided by using streams, and it is very useful that your are already looking in this direction. Indeed, 'DirectoryTemporary()' works only for UNIX-type systems, but this function is not essential in reaching your aims. In the example you cited this function is used to create a filename in the temporary directory, but you may enter the next command from this example in the form output := OutputTextFile( "filename", true );; and it will create the file "filename" just in your current directory. Line length in this file can also be regulated by the SizeScreen command - it will be changed on screen and in the stream simultaneously. You could also be interested *** to have all output in one single line of text without line breaks *** - in conditions above, this may be achieved entering the command SetPrintFormattingStatus( out, false ) Hope this helps. Sincerely yours, Alexander Konovalov On Sunday, April 18, 2004 at 4:46:57 PM Bruce W. Colletti wrote: > Re GAP 4.3fix4 running under WinXP Home. > How do I set the record length of an output text file? > When printing to the file, numbers follow one another (as desired) until too many occur, at which time GAP automatically creates a new output line. Numbers are separated by a space or tab. > LogTo("filename") opens the file...maybe that's the problem. If so, what else should I use? I've tried an example in the manual that starts: > name := Filename(DirectoryTemporary(),"test"); > but GAP gags on the DirectoryTemporary() command. > Thanks. > Bruce > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From costanti at science.unitn.it Sun Apr 18 18:24:51 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Writing to File In-Reply-To: <002601c42554$012d67d0$6501a8c0@bcolletti> References: <002601c42554$012d67d0$6501a8c0@bcolletti> Message-ID: <1082309091.4082b9e35b4f2@www.unitn.it> Dear Bruce and gap-forum, Scrive "Bruce W. Colletti" : > Re GAP 4.3fix4 running under WinXP Home. > > How do I set the record length of an output text file? > > When printing to the file, numbers follow one another (as desired) until too > many occur, at which time GAP automatically creates a new output line. Try something like AppendToFile := function ( file, s ) local otf; otf := OutputTextFile( file, true ); SetPrintFormattingStatus( otf, false ); AppendTo( otf, s ); CloseStream( otf ); end; Where s is what you want to write in the file > Numbers are separated by a space or tab. > > LogTo("filename") opens the file...maybe that's the problem. If so, what > else should I use? I've tried an example in the manual that starts: > > name := Filename(DirectoryTemporary(),"test"); > > but GAP gags on the DirectoryTemporary() command. What do you mean with "gags"? Try an other directory. Best, Marco From wh at icparc.ic.ac.uk Mon Apr 19 18:21:22 2004 From: wh at icparc.ic.ac.uk (Warwick Harvey) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Finding a representative which moves fewest points In-Reply-To: <200404011850.i31IoIMd010540@schur.math.colostate.edu>; from hulpke@math.colostate.edu on Thu, Apr 01, 2004 at 11:50:18AM -0700 References: <20040401003727.A9726@tempest.icparc.ic.ac.uk> <200404011850.i31IoIMd010540@schur.math.colostate.edu> Message-ID: <20040419182121.A26952@tempest.icparc.ic.ac.uk> Dear Alexander, dear GAP Forum, Thanks for your feedback. On Thu, Apr 01, 2004 at 11:50:18AM -0700, Alexander Hulpke wrote: > Warwick Harvey asked: > > > What I would like is a function like RepresentativeAction which returns a > > representative that moves as few points as possible. Taking the example > > from the manual: > > > > gap> g:=Group((1,3,2),(2,4,3));; > > gap> RepresentativeAction(g,1,3); > > (1,3)(2,4) > > > > I would like instead the element (1,3,2), since this only moves 3 points > > rather than 4. I tried constructing cosets of the stabilizer of 1 and using > > RepresentativeSmallest on the appropriate coset, but of course the notion of > > smallest there is not what I want. > > Basically you want to find an element x in the stabilizer of 3 so that r*x > fixes many points. If your group is of moderate degree, probvably the > following brute-force approach works: Thanks. Unfortunately, by the time I apply it to real problems, a brute force search is out of the question. The first real problem I tried it on required solving a sequence of a couple of hundred such problems on groups growing to size 2e35 (large base groups with lots of block structure). > If your group gets bigger so that you do not want to run through all > elements in s, I would consider to map some points according to the orbits > of s. Indeed. In the last couple of weeks I have developed a backtracking search algorithm which appears to be quite effective; each of the above instances is solved in less than a minute, often under a second (1.7GHz Centrino processor). The minimal representatives had between 52 and 260 moved points out of 1170. The real key was finding a good lower bound on the number of points that must be moved in a representative. If anybody is interested in the details I am happy to pass them on. One thing I noticed while working on this which surprised me (probably just my naivete) was that something like RepresentativeAction(g, 1, 2) was significantly slower than Orbit(g, 1) - at least for my groups. Presumably the algorithm that RepresentativeAction uses is a general one, and there's no specialisation for this easy case. (Either that, or Orbit is doing something smarter than I expected.) (This is using 4.3 - I haven't tried 4.4 yet.) Cheers, Warwick From heckenb at mi.uni-erlangen.de Tue Apr 20 00:43:14 2004 From: heckenb at mi.uni-erlangen.de (Frank Heckenbach) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Bug in Process() Message-ID: <200404192343.BAA10287@goedel.fjf.gnu.de> Dear Gap-Forum, it seems to become a tradition for me to find a bug related to Process() in each new release. ;-) With GAP 4.4.2 I see this: gap> s := "";; gap> out := OutputTextString (s, true);; gap> inp := InputTextFile ("/dev/null");; gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; gap> DirectoryTemporary ();; gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; List Element: must be a list (not a boolean) at return ExecuteProcess( dir, prg, input![1], output![1], args ); called from EXECUTE_PROCESS_FILE_STREAM( dir, prg, input, new_output, args ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace via 'return ;' to continue The problem seems to be the caching of PROCESS_INPUT_TEMPORARY' and PROCESS_OUTPUT_TEMPORARY' in process.gi' while the corresponding files are erased. TmpName' or DirectoryTemporary' then seem to reuse the name (I assume this is intended). If it's reused as a directory which still exists (like here), this will fail and result in new_output = fail', leading to the error shown. (If it's reused as a file, it may silently overwrite that file; I haven't checked this case.) Quick fix: --- gap4r4/lib/process.gi.orig Mon Apr 19 03:22:39 2004 +++ gap4r4/lib/process.gi Mon Apr 19 03:31:20 2004 @@ -148,9 +148,6 @@ #M Process( , , , , ) . . . . stream/stream ## -PROCESS_INPUT_TEMPORARY := fail; -PROCESS_OUTPUT_TEMPORARY := fail; - InstallMethod( Process, [ IsDirectory and IsDirectoryRep, IsString, @@ -162,10 +159,9 @@ # convert input into a file if not IsInputTextFileRep(input) then - while PROCESS_INPUT_TEMPORARY = fail do - PROCESS_INPUT_TEMPORARY := TmpName(); - od; - name_input := PROCESS_INPUT_TEMPORARY; + repeat + name_input := TmpName(); + until name_input <> fail; new := OutputTextFile( name_input, true ); allinput := ReadAll(input); if allinput= fail then @@ -178,10 +174,9 @@ # convert output into a file if not IsOutputTextFileRep(output) then - while PROCESS_OUTPUT_TEMPORARY = fail do - PROCESS_OUTPUT_TEMPORARY := TmpName(); - od; - name_output := PROCESS_OUTPUT_TEMPORARY; + repeat + name_output := TmpName(); + until name_output <> fail; new_output := OutputTextFile( name_output, true ); else new_output := output; Frank Heckenbach -- Frank Heckenbach, heckenb@mi.uni-erlangen.de http://www.mi.uni-erlangen.de/~heckenb/ GnuPG and PGP keys: http://fjf.gnu.de/plan (7977168E) From rschmied at Princeton.EDU Wed Apr 21 03:11:54 2004 From: rschmied at Princeton.EDU (Roman Schmied) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] group theory and molecular spectroscopy Message-ID: <4085D86A.5040003@princeton.edu> Hello GAP forum: I thought it might be of interest for some of you to know that group theory is being used regularly in molecular spectroscopy. I have just had a GAP4-based note accepted by the Journal of Molecular Spectroscopy; you can download it at http://arxiv.org/abs/physics/0404095 In essence, we use permutations to represent the effect of symmetry operations on identical atoms in molecules. The character of the total molecular wavefunction can be computed from the spin-statistics theorem of quantum mechanics: the wavefunction must change sign under any odd permutation of Fermions, and stay the same under any other permutation (even permutations and/or Bosons). This leads to experimentally observable effects in the temperature-dependent populations of molecular energy eigenstates. All this has been known for a long time, but it is very valuable to have a tool like GAP on our hands now. Thanks for all the help, especially to Alexander Hulpke and Dmitrii Pasechnik for improving my GAP code! Roman. -- Roman Schmied Department of Chemistry Princeton University Princeton, NJ 08544 office (609) 258-3357, lab -4975, fax -6665 From l.h.soicher at qmul.ac.uk Wed Apr 21 14:37:15 2004 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] GRAPE 4.2 Message-ID: <200404211337.OAA03127@dirac.maths.qmw.ac.uk> Dear GAP-Forum, I am pleased to announce the release of the GRAPE 4.2 GAP Package for computing with graphs and groups. GRAPE 4.2 is included with the recently released GAP 4.4, and should not be used with any previous version of GAP. I hope you enjoy using GRAPE 4.2. Regards, Leonard Soicher The main changes from GRAPE 4.1 to GRAPE 4.2 are: ------------------------------------------------ (1) Including Steve Linton's SmallestImageSet' function, and using this function for faster isomorph rejection in CompleteSubgraphs', CompleteSubgraphsOfGivenSize', and PartialLinearSpaces'. (2) Further improvements to CompleteSubgraphs' and CompleteSubgraphsOfGivenSize', including functionality in the latter which will be required by the Design' package. (3) All global function names are now read-only. (4) OrbitalGraphIntersectionMatrices' is no longer an alternative name for OrbitalGraphColadjMats'. This change is *not* backward compatible. (5) The function Vertices' is now an operation, so as not to conflict with the xgap package. (6) The default value for GRAPE_NRANGRENS has been increased to 18. (7) Output streams are now used in AutGroupGraph' and SetAutGroupCanonicalLabelling'. From dima at thi.informatik.uni-frankfurt.de Thu Apr 22 10:16:00 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] computing the structure of a big imprimitive permgroup Message-ID: <20040422091600.GA23757@thi21.thi.informatik.uni-frankfurt.de> Dear Forum, I have a permutation group G on 6^4 points, with a maximal imprimitivity block system B with blocks of size 6. The action on these blocks contains Alt(6^3), that is, the base for the StabChain for G will be long, at least about 6^3. I try to compute the StabChain, but it seems to take forever to complete. I would like to find the kernel of the action of G on B. (or at least |G|) Any tips as to how this can be best accomplished? Thanks, Dima From costanti at science.unitn.it Thu Apr 22 11:47:41 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] p-quotient of an infinite matrix group Message-ID: <1082630861.4087a2cd1d4d9@www.unitn.it> Dear gap-forum, let G be an infinite matrix group, like in the example below. I'd like to study a p-quotient (or a nilpotent-, solvable-, polycyclic- quotient) of G (I mean a quotient of the form G / PCentralSeries(G,7)[n]). The obstacles are that the quotient methods requires a finitely presented group, and the conversion from matrix groups to finitely presented groups is available only for finite groups. Are there any suggestion? r := [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; s := [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; G:=Group( [ r, s ] ); Thank you for your attention, Marco Costantini From carcher at ulb.ac.be Fri Apr 23 11:48:21 2004 From: carcher at ulb.ac.be (Claude Archer) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] New features for the Polycyclic package ; Message-ID: <200404231048.MAA04727@web1.ulb.ac.be> Dear Bettina, dear forum members , Thank you for your answer I will reformulate question 4 on non prime pcgs with the polycyclic package. suppose l:=[g1,g2,g3] is a pcgs for G. The it is possible to build a new Pc group (newG ) whose pcgs is l using : newpcgs:=PcgsByPcSequence(FamilyObj(l[1]), l ); newG:=PcGroupWithPcgs(newpcgs); # at the moment Gap only accepts it if l is a prime pcgs How to do that on a pcp group with an arbitrary non prime pcgs l (in order to build a new pcp group) ? > 2) > I would like to compute the second cohomology groups Z2(G,A) and B2(G,A) > of an arbitrary finitely generated abelian group A. Answer : you can use a G-invariant series through A with elementary abelian factors and do induction along such a series. Yes i understand that but the problem is that after some steps you get too many extensions of groups A' that are not isomorphic to A even if they have the same type of G-invariant series. That is why i was looking for implemeting a direct method using linear equations on integer (cfr Holt) Regards Claude From beick at tu-bs.de Mon Apr 26 09:10:33 2004 From: beick at tu-bs.de (Bettina Eick) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] New features for the Polycyclic package ; In-Reply-To: <200404231048.MAA04727@web1.ulb.ac.be> Message-ID: Dear Claude, der GAP-forum members, > That is why i was looking for implemeting a direct method using > linear equations on integer (cfr Holt) As far as I know the method is not implemented in GAP and, of course, you are very welcome to implement it. As you pointed out, this should be possible as a modification of the existing extension code in the Polycyclic package. I will discuss the more technical questions of Claude in a direct e-mail. If anyone else is interested in following this discussion, then please let me know. Best wishes, Bettina From eckert at math.wayne.edu Mon Apr 26 21:56:41 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs Message-ID: The problem I am attempting is verifying the correctness and completeness of free-mod-relations for the sporadic pure-braid groups: here "full" is a free group modulo a set of "brds" braid-relations; "weyl" is also modulo the "sqrs" letters-squared; "pure" should be the kernel of the map from "full" to "weyl" and is claimed to be "gens" mod "rels"; the correctness check is whether all the rels are actually trivial under the brds; the completeness check is whether there are any other true relations among the gens independent of rels. Here is the file for C2, a small case (symmetries of the square): c2:=FreeGroup(2); c2brds:=[c2.1*c2.2*c2.1*c2.2*c2.1^-1*c2.2^-1*c2.1^-1*c2.2^-1]; c2sqrs:=[c2.1^2,c2.2^2]; a12:=c2.1*c2.1; a23:=c2.2*c2.2; a13:=c2.2*c2.1*c2.1*c2.2^-1; b23:=c2.1*c2.2*c2.2*c2.1^-1; c2gens:=[a12,a23,a13,b23]; r1:=Comm(a23,b23*a12*a13); r2:=Comm(a13,a23*b23*a12); r3:=Comm(a12,a13*a23*b23); c2rels:=[r1,r2,r3]; c2full:=c2/c2brds; c2weyl:=c2/Union(c2brds,c2sqrs); c2pure:=Subgroup(c2,c2gens)/c2rels; c2fhom:=GroupHomomorphismByImages(c2,c2full,GeneratorsOfGroup(c2),GeneratorsOfGroup(c2full)); c2errs:=Image(c2fhom,c2rels); correct:=IsTrivial(c2errs); c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); c2phom:=GroupHomomorphismByImages(c2pure,Kernel(c2whom),GeneratorsOfGroup(c2pure),Image(c2fhom,c2gens)); c2gaps:=Kernel(c2phom); complete:=IsTrivial(c2gaps); The correctness question is whether c2rels is in the normal closure of c2brds. Asking for NormalClosure(c2,c2brds) gives a Reidemeister-Schreier process with infinite coset traversal: old versions crashed with "coset enumeration exceeds 256000" while 4.4 just refuses "No Method Found". The homomorphism trivializing c2brds will define, but then asking for the image under that hom sends it into "MakeKnuthBendixRewritingConfluent" forever and ever: the log-file shows it dying between the definition of c2fhom and c2errs, after a 45-minute run, from memory exhaustion. For the completeness test it needs to construct Kernel(c2whom), which is what the pure-braid group really is, to get c2phom from the claimed "pure" to the real "pure"; this hangs in a same way (I killed it after 90 minutes). Is there another way to do this? Or would either one of these, done as above, eventually finish given enough time and space? -------------- next part -------------- gap> Read("a:\C2a.gap");time;correct;complete; user interrupt at p := 0; called from KBOverlaps( i[1], i[2], kbrws, p ) called from KB_REW.MakeKnuthBendixRewritingSystemConfluent( rws ); called from MakeKnuthBendixRewritingSystemConfluent( kbrws ); called from MakeConfluent( kbrws ); called from ReducedConfluentRewritingSystem( M, wordord ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> return; exceeded the permitted memory (-o' command line option) at Append( l, [ [ i, n ], [ n, i ] ] ); called from add_rule( [ a, b ], kbrws ); called from AddRuleReduced( kbrws, [ a, c ] ); called from KBOverlaps( i[1], i[2], kbrws, p ) called from KB_REW.MakeKnuthBendixRewritingSystemConfluent( rws ); called from MakeKnuthBendixRewritingSystemConfluent( kbrws ); called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> quit; gap> time; 2720266 gap> c2errs; Variable: 'c2errs' must have a value gap> c2fhom; [ f1, f2 ] -> [ f1, f2 ] gap> c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); [ f1, f2 ] -> [ f1, f2 ] gap> c2phom:=GroupHomomorphismByImages(c2pure,Kernel(c2whom),GeneratorsOfGroup(c2pure),Image(c2fhom,c2gens)); user interrupt at Append( l, [ [ i, n ], [ n, i ] ] ); called from add_rule( [ a, b ], kbrws ); called from AddRuleReduced( kbrws, [ a, c ] ); called from KBOverlaps( i[1], i[2], kbrws, p ) called from KB_REW.MakeKnuthBendixRewritingSystemConfluent( rws ); called from MakeKnuthBendixRewritingSystemConfluent( kbrws ); called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> quit: Syntax error: ; expected in *errin* line 1 quit: ^ brk> quit; gap> time > ; 5460140 gap> quit; From hulpke at math.colostate.edu Tue Apr 27 04:13:44 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: Message-ID: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> Dear Robert Eckert, > The problem I am attempting is verifying the correctness and completeness > of free-mod-relations for the sporadic pure-braid groups: here "full" is > > c2:=FreeGroup(2); > c2brds:=[c2.1*c2.2*c2.1*c2.2*c2.1^-1*c2.2^-1*c2.1^-1*c2.2^-1]; > The correctness question is whether c2rels is in the normal closure of > c2brds. Asking for NormalClosure(c2,c2brds) gives a Reidemeister-Schreier > process with infinite coset traversal: old versions crashed with "coset > enumeration exceeds 256000" while 4.4 just refuses "No Method Found". The (I doubt that this command as given would have worked under 4.3), the version NormalClosure(c2,Subgroup(c2,c2brds)); starts but similarly runs into memory problems. The reason for this not just a shortcoming of GAP but there are fundamental algorithmic difficulties when working with finitely presented groups (the general unsolvability of the word problem). One example of tyhis is the error message after defining 256000 cosets, which is intended to keep a program from running out of memory. (It is possible to continue the calculation by typing return'; however in this case, this is unlikely to help). GAP's algorithms for finitely presented groups mostly assume that subgroups are of finite index and might not terminate if subgroups have infinite index. The recent 4.4 release comes with a new package FGA (free group algorithms) that provide some further functionality for subgroups of free groups that might help a bit, but I expect this package alone will not solve the problem. > c2sqrs:=[c2.1^2,c2.2^2]; > a12:=c2.1*c2.1; > a23:=c2.2*c2.2; > a13:=c2.2*c2.1*c2.1*c2.2^-1; > b23:=c2.1*c2.2*c2.2*c2.1^-1; > c2gens:=[a12,a23,a13,b23]; > r1:=Comm(a23,b23*a12*a13); > r2:=Comm(a13,a23*b23*a12); > r3:=Comm(a12,a13*a23*b23); > c2rels:=[r1,r2,r3]; > c2full:=c2/c2brds; > c2weyl:=c2/Union(c2brds,c2sqrs); > c2pure:=Subgroup(c2,c2gens)/c2rels; > c2fhom:=GroupHomomorphismByImages(c2,c2full,GeneratorsOfGroup(c2),GeneratorsOfGroup(c2full)); > c2errs:=Image(c2fhom,c2rels); Image' forms a set of the images of the elements and thus has to test equality. This is what takes time. If you use: c2errs:=List(c2rels,i->ImageElm(c2fhom,i)); you will get a result in no time. > correct:=IsTrivial(c2errs); This is a very hard command. You ask for the fact whether elements given as words are trivial. GAP will start a Knuth-Bendix (performance can be improved using the kbmag' package that uses an external binary), but again (due to the fundamental difficulties mentioned above) one can only hope for, but not necessarily guarantee termination in limited time/memory. > c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); > c2phom:=GroupHomomorphismByImages(c2pure,Kernel(c2whom),GeneratorsOfGroup(c2pure),Image(c2fhom,c2gens)); Again, here I would compute the image of the elements separately. Also GroupHomomorphismByImages' will test the homomorphism property which requires knowledge of relators -- the NC version just assumes that the map is a homomorphism: c2phom:=GroupHomomorphismByImagesNC(c2pure,Kernel(c2whom), GeneratorsOfGroup(c2pure),List(c2gens,i->Image(c2fhom,i))); > c2gaps:=Kernel(c2phom); This again is unlikely to work. What might work is: - Compute a presentation for the kernel(c2whom) using IsomorphismFpGroupByGenerators'. - evaluate the relators in the generators of c2pure. However then again you have a triviality test, which might run into the same problems with the Knuth Bendix. You will likely have to involve some theory or hand calculations. Best wishes, Alexander Hulpke From eckert at math.wayne.edu Tue Apr 27 15:49:31 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> References: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> Message-ID: Thank you for your quick reply. I have tried with: ... c2errs:=List(c2rels,i->ImageElm(c2fhom,i)); c2whom:=GroupHomomorphismByImages(c2full,c2weyl,GeneratorsOfGroup(c2full),GeneratorsOfGroup(c2weyl)); correct:=IsTrivial(c2errs); c2real:= Kernel(c2whom); c2phom:=GroupHomomorphismByImagesNC(c2pure,c2real,GeneratorsOfGroup(c2pure), List(c2gens,i->Image(c2fhom,i))); c2gaps:=Kernel(c2phom); complete:=IsTrivial(c2gaps); and it ran until the evaluation of "complete": gap> Read("a:\C2x.gap");time;correct;complete; Error, the coset enumeration has defined more than 256000 cosets called from TCENUM.CosetTableFromGensAndRels( fgens, grels, fsgens ) called from CosetTableFromGensAndRels( fgens, grels, fsgens ) called from TryCosetTableInWholeGroup( H ) called from CosetTableInWholeGroup( ImagesSet( iso, U ) ) called from oper( super, sub ) called from ... Entering break read-eval-print loop ... type 'return;' if you want to continue with a new limit of 512000 cosets, type 'quit;' if you want to quit the coset enumeration, type 'maxlimit := 0; return;' in order to continue without a limit brk> quit; #I Options stack has been reset gap> correct; false gap> c2real; Group() gap> c2phom; [ f1^2, f2^2, f2*f1^2*f2^-1, f1*f2^2*f1^-1 ] -> [ f1^2, f2^2, f2*f1^2*f2^-1, f1*f2^2*f1^-1 ] gap> c2gaps; Group() gap> complete; Variable: 'complete' must have a value gap> LogTo(); Here it is very disturbing that "correct" evaluated as "false" when I know perfectly well it is "true". Apparently, when it is asked if c2errs given as a list is trivial, it doesn't check anything except whether the word-spellings as given are null strings. So I altered it to: c2errs:=Subgroup(c2full,List(c2rels,i->ImageElm(c2fhom,i))); and now it hangs on "correct:=IsTrivial(c2errs);" as before. On Mon, 26 Apr 2004, Alexander Hulpke wrote: > The reason for this not just a shortcoming of GAP but there are fundamental > algorithmic difficulties when working with finitely presented groups (the > general unsolvability of the word problem). Yes, I know this. I gave up on using any general-purpose packages for these groups a long time ago, and have written a monstrous special-purpose program in C. In any string of "letters" (of the free group) or "generators" (of the pure) there are typically dozens of moves which look simplifying (letter-switches via the braids, or applying known commutators to the generators), all but one of which lead into cyclic futilities. "Strait is the gate and narrow the way that leads to salvation": I search in every string for the one and only move that makes progress. There is no hope of avoiding cyclic futilities, only of recognizing when you are in one and refusing to keep going around and around. > GAP's algorithms for finitely presented groups mostly assume that subgroups > are of finite index and might not terminate if subgroups have infinite > index. Is there any way to tell when the process simply requires a long time, or if it is not guaranteed to terminate even in billions of years? I know, I know, this is Turing's Halting Problem. > The recent 4.4 release comes with a new package FGA (free group algorithms) > that provide some further functionality for subgroups of free groups that > might help a bit, but I expect this package alone will not solve the > problem. Are there some useful new commands in there? All I see written up is "Centralizer". > > > c2gaps:=Kernel(c2phom); > > This again is unlikely to work. What might work is: > - Compute a presentation for the kernel(c2whom) using > IsomorphismFpGroupByGenerators'. > - evaluate the relators in the generators of c2pure. This gives for F4 a presentation with 1198 generators (the correct number of independent generators is 24) and thousands of very long relations. It attempts to do Tietze reductions (purging the generator set of those where a relation lets one be redefined in terms of the other): this part only takes my program seconds, but after 15 minutes GAP is nowhere near getting down to the 24, and I am not sure if it would finish in a human lifespan. From hulpke at math.colostate.edu Tue Apr 27 16:53:39 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Bug in Process() In-Reply-To: <200404192343.BAA10287@goedel.fjf.gnu.de> Message-ID: <200404271553.i3RFrdrX009781@schur.math.colostate.edu> Dear Frank Heckenbach, > GAP 4.4.2 I see this: > > gap> s := "";; > gap> out := OutputTextString (s, true);; > gap> inp := InputTextFile ("/dev/null");; > gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; > gap> DirectoryTemporary ();; > gap> Process (DirectoryCurrent(), "/bin/true", inp, out, []);; > List Element: must be a list (not a boolean) at > return ExecuteProcess( dir, prg, input![1], output![1], args ); > called from > EXECUTE_PROCESS_FILE_STREAM( dir, prg, input, new_output, args ) called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can replace via 'return ;' to continue > > The problem seems to be the caching of PROCESS_INPUT_TEMPORARY' and > PROCESS_OUTPUT_TEMPORARY' in process.gi' while the corresponding Thank you very much for the bug report and the corresponding correction. This fix will be included in the next bugfix. Best wishes, Alexander Hulpke PS: This reply only goes to the forum as the original report was to the forum. Errors reported to support@gap-system.org' will usually be acknowledged privately, unless they could cause wrong results (in which case we will alert the forum), but of course as well will be corrected in the subsequent next bugfix. AH -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From wdj at USNA.Navy.Mil Wed Apr 28 22:34:27 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Schur index question Message-ID: <40902363.6080208@hermes.ewlab.usna.edu> Hello Gap Forum: Is there a GAP function which computes the Schur index (over Q) of a representation? Doesn't seem to be an answer to this in the Forum archives. The following seems to give a bound (based on my possibly wrong understanding of a test in Cor 31 of ch 22 of Berkovich+Zhmud, Chars of finite gps, vol 2): SchurIndexBound:=function(chi) local G,H,IrrH,CG,n,i,L,B; G:=UnderlyingGroup(chi); L:=[DegreeOfCharacter(chi)]; CG:=ConjugacyClassesSubgroups(G); n:=Length(CG); for i in [2..n] do H:=Representative(CG[i]); IrrH:=Irr(H); L:=Union(L,[ScalarProduct(RestrictedClassFunction(chi,H),IrrH[1])]); od; B:=Gcd(L); return(B); end; I'm wondering if there is something better out there. - David Joyner From sievers at math2.nat.tu-bs.de Thu Apr 29 18:32:14 2004 From: sievers at math2.nat.tu-bs.de (Christian Sievers) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: References: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> Message-ID: <16529.15390.349258.356047@gauss00.math2.nat.tu-bs.de> Dear Robert, dear Forum, Robert Eckert asked about the FGA package: > Are there some useful new commands in there? All I see written up is > "Centralizer". I certainly hope that the commands in the FGA package are useful. It mainly installs methods for operations that GAP already knew, but could not compute for free groups. I am not sure if these method installations should be called "new commands". In any case, they provide new functionality. Most of the methods work with finitely generated subgroups of free groups. They allow a (constructive) membership test and compute the rank, the index, the normalizer, the centralizer and (a new command: FreeGeneratorsOfGroup) a free generating set of such subgroups. It is also possible to compute their intersection and to test conjugacy of elements or subgroups. Finally, the package also provides a presentation of the automorphism group of a free group. Alas, I don't see how this might help you to solve your problem. If you have an idea and need help with the package, please feel free to ask me. All the best Christian Sievers From c.bates at postgrad.umist.ac.uk Thu Apr 29 21:18:06 2004 From: c.bates at postgrad.umist.ac.uk (Chris Bates) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] Brauer Table for L2(128) Message-ID: <1083269886.409162fec1778@webmail1.umist.ac.uk> Hi, Does anybody know if the mod 2 Brauer character table for L_{2}(128) is available anywhere? Thanks, CB -- Chris Bates MSS/Q10 Dept. of Mathematics UMIST Manchester M60 1QD http://personalpages.umist.ac.uk/postgrad/C.Bates From eckert at math.wayne.edu Fri Apr 30 05:30:04 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:17 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <16529.15390.349258.356047@gauss00.math2.nat.tu-bs.de> References: <200404270313.i3R3Diab013091@wielandt.math.colostate.edu> <16529.15390.349258.356047@gauss00.math2.nat.tu-bs.de> Message-ID: On Thu, 29 Apr 2004, Christian Sievers wrote: > Dear Robert, dear Forum, > > Robert Eckert asked about the FGA package: > > > Are there some useful new commands in there? All I see written up is > > "Centralizer". > > I certainly hope that the commands in the FGA package are useful. Yes, they are. My problem turned out to be just a glitch in the way the manual was installed; in various sections, including most of the FGA info, I would hit "?" and get the headers and zero text; this has been fixed. ... > Most of the methods work with finitely generated subgroups of free groups. > They allow a (constructive) membership test... The problem, with groups not subgroups-of-free but quotient-groups modding out some relations, is that it may falsely say a word is "not" in the group, if it is distinguished from a word it would recognize by something which, really, is trivial, but which it does not know how to trivialize. This is not a fault of the packages but of the general "word problem". Forcing Knuth-Bendix to run asks if this is in "the swamp", when, alas, the swamp is bottomless. Holt's KBMag package says, effectively, "let's just map the top ten meters of the swamp". Pardon me if I am asking a "duh, of course!" or "duh, of course not!" question, but is there a way of force-feeding a set of rules? "Forget what Knuth-Bendix says looks good, you will use THESE rules and like it"? The problem may be that K-B wants to find the shortening possibilities, where actually a rewriting that makes most things longer is what some purposes need. If I rewrite in an ugly set of generators, I can deploy a filtration, pure-F4 = top-F4 semidirect product by pure-C3, which is top-C3 by pure-C2, which is top-C2 by pure-A1, which is free on letter-1-squared. For each high-grade generator G and lower-grade g there is exactly one relation like G g = g G' G" G G"- G'- moving g left and replacing G with its conjugate by a varying number (zero to hundreds) of generators at its same grade. KBMag can guarantee me something IS trivial, but this way can guarantee something is NOT trivial; if all grades are separated, each graded component must be trivial (and within each grade there are few relations: all grade-2 and all type-A or type-C at every grade are purely free; type-D and H3 have only one commutator, the two blocks of which can be decreed to be two of the generators; top-E6/E7/E8/F4/H4 are worse but not horribly so). I have been fighting to make my home-brew program do this right for a wearyingly long time, but I can get it to spit out its rules into a file GAP can Read if there is code to pick up the ball from there. > All the best Bob Eckert From nickel at mathematik.tu-darmstadt.de Fri Apr 30 12:31:07 2004 From: nickel at mathematik.tu-darmstadt.de (Werner Nickel) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] p-quotient of an infinite matrix group In-Reply-To: <1082630861.4087a2cd1d4d9@www.unitn.it> References: <1082630861.4087a2cd1d4d9@www.unitn.it> Message-ID: <20040430113107.GA6330@mathematik.tu-darmstadt.de> Dear Gap Forum, dear Marco, > let G be an infinite matrix group, like in the example below. I'd like to > study a p-quotient (or a nilpotent-, solvable-, polycyclic- quotient) of > G (I mean a quotient of the form G / PCentralSeries(G,7)[n]). > > The obstacles are that the quotient methods requires a finitely presented > group, and the conversion from matrix groups to finitely presented groups > is available only for finite groups. > > Are there any suggestion? > > r := > [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], > [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], > [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], > [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; > s := > [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], > [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], > [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; > > G := Group( r,s ); I don't have an out-of-the box solution for Marco's question. I would like to make the following suggestions: There is a map of rings from the 7-th cyclotomic integers into a finite field F containing a 7-th root of unity. The map is essentially specified by mapping E(7) to the 7-th root of unity in F. This map defines a map from G into the (invertible) matrices over F. As far as I could see the resulting matrix group is not easy to analyze with the standard GAP functions. Here is a strategy for an analysis by hand: Take the (images of the) conjugates of s by the powers of r. This gives 7 upper triangular matrices. The subgroup generated by their commutators contains matrices of the shape [ 1 * * * * * * * ] [ 1 0 0 0 0 0 0 ] [ 1 0 0 0 0 0 ] .... [ 1 ] generating a subgroup of F^7. It is easy to determine a basis (over the prime field) for the subgroup. After that it is easy to specify the action of the conjugates of s on the commutator subgroup and finally to add the action of r on the group generated by the conjugates of s. After all this is done one ends up with a pc-presentation for the image group. If one chooses F to be GF(7) then most of the structure of the group disappears because the only 7-th root of unity in characteristic 7 is 1. Hope this helps, Werner Nickel -- Dr (AUS) Werner Nickel Mathematics with Computer Science Room: S2 15/212 Fachbereich Mathematik, AG 2 Tel: +49 6151 163487 TU Darmstadt Fax: +49 6151 166535 Schlossgartenstr. 7 Email: nickel@mathematik.tu-darmstadt.de D-64289 Darmstadt -- From eckert at math.wayne.edu Fri Apr 30 16:10:58 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Marco's question: p-quotient of an infinite matrix group In-Reply-To: <20040430113107.GA6330@mathematik.tu-darmstadt.de> References: <1082630861.4087a2cd1d4d9@www.unitn.it> <20040430113107.GA6330@mathematik.tu-darmstadt.de> Message-ID: On Fri, 30 Apr 2004, Werner Nickel wrote: ...> > let G be an infinite matrix group, like in the example below... > > r := > > [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], > > [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], > > [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], > > [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; > > s := > > [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], > > [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], > > [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], > > [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; > > > > G := Group( r,s ); > > I don't have an out-of-the box solution for Marco's question. I would > like to make the following suggestions: > > There is a map of rings from the 7-th cyclotomic integers into a > finite field F containing a 7-th root of unity. Computationally cleanest would be GF(64) with defining polynomial x^6 = x^5 + x^4 + x^3 + x^2 + x + 1 = x^(-1) Elements could be written with x^0 to x^5 in bits 1 to 6 of a byte leaving bits 0 and 7 clear; then "times/divide x" is a one-position rotate, followed, if bit 0 or 7 is left set, by setting the other and then complementing the whole byte. This group is acting on the dim-8 vectors (really dim-7 as the first coefficient is always fixed, but I assume this is not always the case in Marco's groups). Surely GAP give an fp-presentation of SL(8,64); to find the appropriate subgroup, note that if the defining polynomial for GF(64) is other than the above, the actual seventh-root of one must be used instead of just "x". Bob Eckert (Wayne State) From frank.luebeck at math.rwth-aachen.de Fri Apr 30 17:08:01 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Brauer Table for L2(128) In-Reply-To: <1083269886.409162fec1778@webmail1.umist.ac.uk> Message-ID: On Thu, 29 Apr 2004, Chris Bates wrote: > Does anybody know if the mod 2 Brauer character table for L_{2}(128) is > available anywhere? Dear Chris, dear Forum, I don't know of such an explicit table. But it is not too difficult to construct it. Even all irreducible representations are not difficult to construct: One needs the natural representation of G = SL_{2}(128) as 2x2 matrices over GF(128). Steinbergs tensor product theorem says how all irreducible representations are constructed; they are tensor products of the Frobenius twists of this fixed natural representation. This description can also be used to write down the corresponding Brauer characters. If you think the explicit Brauer table is useful for this case (the values give a 128x128 matrix with unpleasant root of unity terms) and need help with a short GAP program along the lines above, don't hesitate to contact me. Best regards, Frank /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From nickel at mathematik.tu-darmstadt.de Mon May 3 08:17:06 2004 From: nickel at mathematik.tu-darmstadt.de (Werner Nickel) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Re: Marco's question: p-quotient of an infinite matrix group In-Reply-To: References: <1082630861.4087a2cd1d4d9@www.unitn.it> <20040430113107.GA6330@mathematik.tu-darmstadt.de> Message-ID: <20040503071706.GA10480@mathematik.tu-darmstadt.de> Dear Robert, [...] > > There is a map of rings from the 7-th cyclotomic integers into a > > finite field F containing a 7-th root of unity. > Computationally cleanest would be GF(64) with defining polynomial > x^6 = x^5 + x^4 + x^3 + x^2 + x + 1 = x^(-1) > Elements could be written with x^0 to x^5 in bits 1 to 6 of a byte leaving > bits 0 and 7 clear; then "times/divide x" is a one-position rotate, > followed, if bit 0 or 7 is left set, by setting the other and then > complementing the whole byte. you correctly point out that arithmetic in GF(64) is efficient if one chooses an adequate representation for the elements of the field. However, efficiency of the field arithmetic is not the main difficulty in Marco's question. The main point is to find a homomorphism into a finite (p-) group. Once you have defined a homomorphism into a matrix group over a suitable finite field, the speed of the underlying arithmetic plays a role but most likely not a prominent one. By the way, GAP implements elements of GF(64) (and all finite fields of small order) by storing the power of an element with respect to fixed primitive element of the field. Multiplication reduces to addition modulo the order of the mutliplicative group. Addition is essentially encoded by an addition table. > This group is acting on the dim-8 vectors (really dim-7 as the first > coefficient is always fixed, but I assume this is not always the case in > Marco's groups). Surely GAP give an fp-presentation of SL(8,64); A finite presentation for SL(8,64) does not help much in finding a finite presentation for Marco's group because it is a difficult to derive a presentation for a subgroup from one of the whole group, in particular if the index of the subgroup is big as it is in this case. With kind regards, Werner Nickel. -- Dr (AUS) Werner Nickel Mathematics with Computer Science Room: S2 15/212 Fachbereich Mathematik, AG 2 Tel: +49 6151 163487 TU Darmstadt Fax: +49 6151 166535 Schlossgartenstr. 7 Email: nickel@mathematik.tu-darmstadt.de D-64289 Darmstadt -- From hulpke at math.colostate.edu Mon May 3 16:59:20 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: Message-ID: <200405031559.i43FxK3K007212@schur.math.colostate.edu> Dear GAP-Forum, Robert Eckert wrote: > Forcing Knuth-Bendix to run asks if this is in "the swamp", when, alas, > the swamp is bottomless. Holt's KBMag package says, effectively, "let's > just map the top ten meters of the swamp". Pardon me if I am asking a > "duh, of course!" or "duh, of course not!" question, but is there a way of > force-feeding a set of rules? "Forget what Knuth-Bendix says looks > good, you will use THESE rules and like it"? The problem may be that K-B While I'm not 100% certain on this interpretation, I understand yoiur question as asking whether you can prescribe your own rewriting rules. This is possible (see the manual chapter on rewriting systems). However in this case: - you will have to ensure confluence on your own. (which can be nontrivial). - Unless you substitute your rewriting system (for this you would have to change the library code), you will have to call ReducedForm' with monoid elements and cannot simply do group arithmetic. > wants to find the shortening possibilities, where actually a rewriting > that makes most things longer is what some purposes need. > If I rewrite in an ugly set of generators, I can deploy a filtration, > pure-F4 = top-F4 semidirect product by pure-C3, which is top-C3 by > pure-C2, which is top-C2 by pure-A1, which is free on letter-1-squared. > For each high-grade generator G and lower-grade g there is exactly one > relation like > G g = g G' G" G G"- G'- > moving g left and replacing G with its conjugate by a varying number (zero What you are doing effectively is to work in some quotient group. GAP can get you some of these (see e.g. SolvableQuotient'). In principle you could try to generalize existing code to work even in a profinite quotient. The problem then becomes to know when to stop evaluating to prove (non)-equality of elements. Best wishes, Alexander Hulpke From dfh at maths.warwick.ac.uk Mon May 3 18:41:14 2004 From: dfh at maths.warwick.ac.uk (Derek Holt) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <200405031559.i43FxK3K007212@schur.math.colostate.edu> References: <200405031559.i43FxK3K007212@schur.math.colostate.edu> Message-ID: <20040503174114.GA10581@maths.warwick.ac.uk> On Mon, May 03, 2004 at 09:59:20AM -0600, Alexander Hulpke wrote: > Dear GAP-Forum, > > Robert Eckert wrote: > > > Forcing Knuth-Bendix to run asks if this is in "the swamp", when, alas, > > the swamp is bottomless. Holt's KBMag package says, effectively, "let's > > just map the top ten meters of the swamp". Pardon me if I am asking a > > "duh, of course!" or "duh, of course not!" question, but is there a way of > > force-feeding a set of rules? "Forget what Knuth-Bendix says looks > > good, you will use THESE rules and like it"? The problem may be that K-B > > While I'm not 100% certain on this interpretation, I understand yoiur > question as asking whether you can prescribe your own rewriting rules. I was also uncertain about what was being asked. I guess KBMAG should have an option to essentially do nothing and to use just the existing rules for reduction - I have occasionally wanted to do that myself. But you can essentially achieve that aim by setting the maximum number of rewrite rules allowed to be something less than the initial number. It might, however, insist on tidying up your rule set slightly - for example, the rewriting algorithm in KBMAG gets confused if two different rewriting rules have the same left hand side. > This is possible (see the manual chapter on rewriting systems). However in > this case: > - you will have to ensure confluence on your own. (which can be > nontrivial). > - Unless you substitute your rewriting system (for this you would have to > change the library code), you will have to call ReducedForm' with monoid > elements and cannot simply do group arithmetic. > > > wants to find the shortening possibilities, where actually a rewriting > > that makes most things longer is what some purposes need. A number of orderings of words are available in KBMAG, some of which will result in rewriting systems which can make words longer. For example, in the wreath product orderings (which are the ones on which reduction to normal form in polycyclic groups is based) generators have levels, and one occurrence of a generator at a higher level will be regarded as larger (in the ordering) than any number of occurrencs of lower level generators. But again, I don't know whether this is the kind of thing that you are looking for! Dere Holt. > > If I rewrite in an ugly set of generators, I can deploy a filtration, > > pure-F4 = top-F4 semidirect product by pure-C3, which is top-C3 by > > pure-C2, which is top-C2 by pure-A1, which is free on letter-1-squared. > > For each high-grade generator G and lower-grade g there is exactly one > > relation like > > G g = g G' G" G G"- G'- > > moving g left and replacing G with its conjugate by a varying number (zero > > What you are doing effectively is to work in some quotient group. GAP can > get you some of these (see e.g. SolvableQuotient'). > > In principle you could try to generalize existing code to work even in a > profinite quotient. The problem then becomes to know when to stop evaluating > to prove (non)-equality of elements. > > Best wishes, > > Alexander Hulpke > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From eckert at math.wayne.edu Mon May 3 22:29:53 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] "Knuth-Bendix Rewriting Confluent" hangs In-Reply-To: <20040503174114.GA10581@maths.warwick.ac.uk> References: <200405031559.i43FxK3K007212@schur.math.colostate.edu> <20040503174114.GA10581@maths.warwick.ac.uk> Message-ID: On Mon, 3 May 2004, Derek Holt wrote: > ... I guess KBMAG should have an > option to essentially do nothing and to use just the existing rules for > reduction - I have occasionally wanted to do that myself. But you can > essentially achieve that aim by setting the maximum number of rewrite rules > allowed to be something less than the initial number. This sounds like it will do what I want it to, thanks. > It might, however, > insist on tidying up your rule set slightly - for example, the rewriting > algorithm in KBMAG gets confused if two different rewriting rules have the > same left hand side. This can be avoided in this case. > A number of orderings of words are available in KBMAG, some of which will > result in rewriting systems which can make words longer. For example, in the > wreath product orderings (which are the ones on which reduction to normal > form in polycyclic groups is based) generators have levels, and one > occurrence of a generator at a higher level will be regarded as larger (in > the ordering) than any number of occurrencs of lower level generators. > > But again, I don't know whether this is the kind of thing that you > are looking for! Very similar. I want everything of "high grade" pushed in one direction. From Michael.Hartley at nottingham.edu.my Mon May 3 22:43:42 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 1 Message-ID: I am currently on leave until the 17th of May. I will attend to your email when I return. Thank you. From bjoerna77 at gmx.de Tue May 4 11:23:19 2004 From: bjoerna77 at gmx.de (Bjoern Assmann) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] p-quotient of an infinite matrix group References: <16773.1083666105@www2.gmx.net> Message-ID: <26934.1083666199@www2.gmx.net> Dear GAP Forum, dear Marco, on Thu, 22 Apr 2004 Marco Costantini wrote > let G be an infinite matrix group, like in the example below. > I'd like to study a p-quotient (or a nilpotent-, solvable-, > polycyclic- quotient) of > G (I mean a quotient of the > form G / PCentralSeries(G,7)[n]). The obstacles are that the quotient > methods requires a finitely presented group, and the conversion from > matrix groups to finitely presented groups > is available only for finite groups. > > Are there any suggestion? > > r := > [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], > [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0 ], > [ 0, 0, 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], > [ 0, 0, 0, 0, 0, 0, 0, 1 ], [ 0, 1, 0, 0, 0, 0, 0, 0 ] ]; > s := > [ [ 1, 0, 0, 0, 0, 0, 0, 1 ], [ 0, E(7)^6, 0, 0, 0, 0, 0, 0 ], > [ 0, 0, E(7), 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], > [ 0, 0, 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1 ] ]; > > G:=Group( [ r, s ] ); I think that I can solve Marco's problem using the methods of the Polenta package. This package contains an algorithm to determine a polycyclic presentation for a polycyclic rational matrix group. A variation of the method applies to Marco's group. I used this variation to compute a polycyclic presentation on 70 generators for the considered matrix group in GL(8, Q(E(7))). The factors of its polycyclic series are [ 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] where 0 stands for an infinite factor. Using the polycyclic presentation it is now straightforward to compute all kinds of factor groups for the considered group (these methods are implemented in the Polycyclic package). For example, the orders of the first 7 factors of the 7-central series of the group are: 49, 7, 7, 7, 7, 7, 49 The Polenta package is using a similar approach as suggested by Werner: it first computes a polycyclic presentation for a finite image of the group in GL( d, q ) for some suitable prime power q and then it computes a polycyclic presentation for the kernel of this map. The practicality of the method depends critically on the choosen prime power q and also, in Marco's case, I needed to extend the method from working over the rationals to working over an algebraic number field. Hence the Polenta package does not solve Marco's problem without some additional tricks. These tricks are available on http://cayley.math.nat.tu-bs.de/software/assmann/marcosgroup.g gap> K := PcpGroupOfMarcosExam(); Pcp-group with orders [ 7, 7, 7, 7, 7, 7, 7, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] gap> time; 1027770 # this are approximately 17 minutes Marco wrote > I'd like to > study a p-quotient (or a nilpotent-, solvable-, polycyclic- quotient) of > G (I mean a quotient of the form G / PCentralSeries(G,7)[n]). The function call PCentralSeriesSteps( K, 7, n) caculates the first n+1 Groups of the 7-central series (this function written by Bettina is also contained in the file marcosgroup.g). gap> ser := PCentralSeriesSteps(K,7,7);; gap> Order( ser[1]/ser[2] ); 49 gap> Order( ser[2]/ser[3] ); 7 Maybe it suffices to study a quotient of K (see the ANUPQ Package). Short Desription of the implemented method: ------------------------------------------ on Fri, 30 Apr 2004 Wernel Nickel wrote > There is a map of rings from the 7-th cyclotomic integers into a > finite field F containing a 7-th root of unity. The map is > essentially specified by mapping E(7) to the 7-th root of unity in F. > This map defines a map from G into the (invertible) matrices over F. Following the suggestion from Werner I chosed a map from the 7-th cyclotomic integers into the Galois Field GF(2^3) (mapping E(7) to Z(2^3)). This map gives rise to a map phi : G -> GL(8,GF(2^3)) The images of r and s under phi are phi(r) = [ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] ]; phi(s) = [ [ Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ], [ 0*Z(2), Z(2^3)^6, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), Z(2^3), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2) ], [ 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0 ] ]; With the function "PcpGroupByMatGroup" you can calculate a polycyclic presentation of phi(G). Using the relations of this presenation you can calculate normal subgroup generators k_1,...,k_n for the kernel of phi. The matrices k_i are of the shape 1 * * * * * * * 0 1 0 0 0 0 0 0 ............... 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 where the entries "*" are in the 7-th cyclotomic integers I. Thus the kernel of phi is isomorphic to a subgroup of the lattice I^7 and therefore polycyclic. It follows that the hole group G is polycyclic. Now it is easy to calculate a basis for the lattice, which is isomorphic to , and to close this basis under the conjuation action of G. Using the homomorpism from G onto the polycyclic presentation of phi(G) and the basis for the kernel of phi, you can calculate a presentation for the whole group G. Remark 1 -------- In principal you could also represent G as 48 * 48 matrix group "G_big" over the rationals. (Every entry of r and s would become a 6*6 matrix and E(7) would be represented as [ [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ], [ -1, -1, -1, -1, -1, -1 ] ]) Then you could apply directly PcpGroupByMatGroup to G_big. Unfortunately the computation costs too much memory in this case. To be more precise the arrising orbits of a finite image of G_big become to long. Remark 2 -------- As Werner Nickel pointet out to me yesterday, his suggestion for the computation of a presentation by hand for a finite image of G ( see his e-mail to the GAP Forum from Friday, 30 Apr 2004) is also valid for G. Best wishes Bjoern From ally at dcs.gla.ac.uk Thu May 6 16:57:11 2004 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Using GAP to identify permutation groups with "well known" groups Message-ID: I have a permutation group G of the following form: G=<(5 6)(20 21),(6 7)(21 22),(8 9)(23 24),(9 10)(24 25),(5 8)(6 9)(7 10)(20 23)(21 24)(22 25)(2 3)(17 18)(14 15),(11 12)(26 27)> I've used GAP to check that this is isomorphic to DirectProduct(S2,WreathProduct(S3,S2)) (if it's not then I've made a mistake writing the generators!). What I'm trying to do is to classify certain groups arising from graphs as products/wreath products of "well known" groups like S3 and S2. I'm wondering if GAP has some way of automatically classifying permutation groups in a way similar to this. Any ideas? Thanks Alastair Donaldson From ally at dcs.gla.ac.uk Thu May 6 17:25:01 2004 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Using GAP to identify permutation groups with "well known" groups Message-ID: I have a permutation group G of the following form: G=<(5 6)(20 21),(6 7)(21 22),(8 9)(23 24),(9 10)(24 25),(5 8)(6 9)(7 10)(20 23)(21 24)(22 25)(2 3)(17 18)(14 15),(11 12)(26 27)> I've used GAP to check that this is isomorphic to DirectProduct(S2,WreathProduct(S3,S2)) (if it's not then I've made a mistake writing the generators!). What I'm trying to do is to classify certain groups arising from graphs as products/wreath products of "well known" groups like S3 and S2. I'm wondering if GAP has some way of automatically classifying permutation groups in a way similar to this. Any ideas? Thanks Alastair Donaldson From costanti at science.unitn.it Thu May 6 18:52:42 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Using GAP to identify permutation groups with "well known" groups In-Reply-To: References: Message-ID: <1083865962.409a7b6a9237f@www.unitn.it> Dear Alastair Donaldson and gap forum, the groups are isomorphic. See the documentations of the functions IdGroup and IsomorphismGroups, and try the following code. All the best, Marco Costantini G1:=Group( (5, 6)(20, 21),(6, 7)(21, 22),(8, 9)(23, 24),(9, 10)(24, 25),(5,8) (6, 9)(7, 10)(20, 23)(21, 24)(22, 25)(2, 3)(17, 18)(14, 15),(11, 12)(26, 27)); S2:=SymmetricGroup(2); S3:=SymmetricGroup(3); G2:=DirectProduct(S2,WreathProduct(S3,S2)); IdGroup(G1); IdGroup(G2); IsomorphismGroups(G1,G2); Scrive Alastair Donaldson : > I have a permutation group G of the following form: > > G=<(5 6)(20 21),(6 7)(21 22),(8 9)(23 24),(9 10)(24 25),(5 8)(6 9)(7 > 10)(20 23)(21 24)(22 25)(2 3)(17 18)(14 15),(11 12)(26 27)> > > I've used GAP to check that this is isomorphic to > DirectProduct(S2,WreathProduct(S3,S2)) (if it's not > then I've made a mistake writing the generators!). What I'm > trying to do is to classify certain groups arising from graphs as > products/wreath products of "well known" groups like S3 and S2. > > I'm wondering if GAP has some way of automatically classifying > permutation > groups in a way similar to this. > > Any ideas? > > Thanks > > Alastair Donaldson From vdabbagh at math.carleton.ca Thu May 6 23:01:29 2004 From: vdabbagh at math.carleton.ca (Vahid Dabbaghian-Abdoly) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Not G-conjugate subgroups Message-ID: Dear GAP Forum, If P is a Sylow subgroup of G, how can I get all not G-conjugate subgroups of P without computing the lattice of subgroups of G? Regards, Vahid http://math.carleton.ca/~vdabbagh Tel: (613) 520-2600 ext. 8789 School of Mathematics and Statistics Room 4356, Herzberg Building 1125 Colonel By Drive, Carleton University Ottawa, Ontario, CANADA K1S 5B6 From parth_dixit at da-iict.org Thu May 6 23:43:50 2004 From: parth_dixit at da-iict.org (parth dixit) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] (no subject) Message-ID: <200405062243.i46Mhol17750@mail.da-iict.org> hi, Is there any way to compute the extnsion of character in GAP (given that it exists) of subgroup to its parent group?thanks in advance regards parth dixit From kohl at mathematik.uni-stuttgart.de Fri May 7 12:18:07 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Not G-conjugate subgroups References: Message-ID: <409B706F.E1134AAB@mathematik.uni-stuttgart.de> Dear Forum, Vahid Dabbaghian-Abdoly asked: > If P is a Sylow subgroup of G, how can I get all not G-conjugate subgroups > of P without computing the lattice of subgroups of G? Of course there is no need to compute the whole subgroup lattice of G -- you can just compute representatives for the conjugacy classes of subgroups of P, and then get the desired result by testing conjugacy in G. Taking a Sylow 2 subgroup of M_11 as an easy example we can illustrate this as follows: gap> G := MathieuGroup(11); Group([ (1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6) ]) gap> P := SylowSubgroup(G,2); Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) gap> subP := List(ConjugacyClassesSubgroups(P),Representative); [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,6,5)(4,11,8,7) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(subP); 10 gap> reps := [subP[1]];; gap> repeat H := First(subP,grp->not ForAny(reps,rep->IsConjugate(G,grp,rep)))$ gap> reps; # The desired set of representatives. [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(reps); 8 Hope this helps, Stefan Kohl From kohl at mathematik.uni-stuttgart.de Fri May 7 12:25:30 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Not G-conjugate subgroups References: Message-ID: <409B722A.98E0CFD8@mathematik.uni-stuttgart.de> Dear Forum, Vahid Dabbaghian-Abdoly asked: > If P is a Sylow subgroup of G, how can I get all not G-conjugate subgroups > of P without computing the lattice of subgroups of G? [ Once again -- in my last mail an overly long line has been cut, which I now have split into several shorter lines. Apologies. ] Of course there is no need to compute the whole subgroup lattice of G -- you can just compute representatives for the conjugacy classes of subgroups of P, and then get the desired result by testing conjugacy in G. Taking a Sylow 2 subgroup of M_11 as an easy example we can illustrate this as follows: gap> G := MathieuGroup(11); Group([ (1,2,3,4,5,6,7,8,9,10,11), (3,7,11,8)(4,10,5,6) ]) gap> P := SylowSubgroup(G,2); Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) gap> subP := List(ConjugacyClassesSubgroups(P),Representative); [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,6,5)(4,11,8,7) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(subP); 10 gap> reps := [subP[1]];; gap> repeat > H := First(subP,grp->not ForAny(reps,rep->IsConjugate(G,grp,rep))); > if H <> fail then Add(reps,H); fi; > until H = fail; gap> reps; # The desired set of representatives. [ Group(()), Group([ (2,6)(3,5)(4,8)(7,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,3,4,7,6,5,8,11)(9,10), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,7,6,11)(3,8,5,4), (2,4,6,8)(3,7,5,11) ]), Group([ (2,6)(3,5)(4,8)(7,11), (2,8)(4,6)(7,11)(9,10), (3,7)(4,8)(5,11)(9,10), (2,3,4,7,6,5,8,11)(9,10) ]) ] gap> Length(reps); 8 Hope this helps, Stefan Kohl From thomas.breuer at math.rwth-aachen.de Fri May 7 17:21:15 2004 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] (no subject) Message-ID: Dear GAP Forum, Parth Dixit wrote > Is there any way to compute the extnsion of character in GAP (given > that it exists) of subgroup to its parent group?thanks in advance If the given character chi of the subgroup H is irreducible then one possibility would be to compute all irreducible characters of the supergroup G, then to compute their restrictions to H, and then to fetch those irreducibles of G that restrict to chi. If the given character chi is a permutation character of H and one is interested in the extension of chi as a permutation character of G then the GAP function PermChars' can be used to compute candidates (which then have to be verified). All the best, Thomas From hulpke at math.colostate.edu Tue May 11 16:46:30 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Bugfix/Upgrade GAP 4.4.2 to 4.4.3 Message-ID: <200405111546.i4BFkU3Z021977@schur.math.colostate.edu> Dear GAP-Forum, We are happy to announce the release of teh first bugfix for GAP 4.4 that will upgrade the release to version 4.4.3. The release announcement, including installation instructions and a list of the errors fixed, is attached. For those of you who have been using prior releases of GAP, let me add a few remarks about small changes we have made with release 4.4: - Bugfixes now increment the sub-version number, so instead of 4r4fix3, the version is called 4r4p3. However the process of installing the fix is the same as with previous versions. - The only exception to this is that now the Windows binary and (in the .zoo archive) the MacOS binary are included in the same archive. If you are using GAP on another architecture you can of course delete these binaries and recover 2 or 3 MB of memory. - To ease installation for persons who install GAP only after a bugfix is released we will also update the main GAP archive (in this case to gap4r4p3) to include the bugfix. Installing a previous archive and a fix, or installing the new archive will produce exactly the same files. (Thus in particular, the manual in gap4r4p3 still lists 4.4.2, as we usually do not update the manual with bugfixes.) - Packages, as before, are updated by the respective authors. You will find the most recent versions on the GAP webpages (as single packages as well as a uniform archive packages-...'). We hope that these changes will make installing and updating GAP easier. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke ============================================================================= Bugfix Announcement: This is to announce a bugfix that updates GAP 4.4.2 to GAP 4.4.3 . The priority of this fix is high. You should not apply this fix to any version of GAP before GAP 4.4. (If you run such an old version, please update to GAP 4.4 as release 4.4 corrects many problems.) GAP Bugfixes now are comprehensive. If you forgot to install prior bugfixes, you do only need to install this, and no prior ones. If you did not yet install GAP 4.4 you only need to install GAP 4.4.3 which will incorporate this bugfix. This fix corrects: 1) Problems with the online help with some manual sections. 2) Problems of the online help on Windows systems. 3) A problem in GQuotients when mapping from a finitely presented group which has a free direct factor. 4) The function DisplayRevision' 5) The trivial finitely presented group on no generators was not recognized as finitely presented. 6) A problem with Process'. 7) A problem when intersecting subgroups of finitely presented groups that are represented in quotient representation'' with the quotient not a permutation group. 8) A bug in the generic Intersection2' method for vector spaces, in the case that both spaces are trivial. 9) Correct setting of system variables (e.g., home directory and command line options) after loading a workspace. 10) Enable ReeGroup(q) for q = 3. 11) A problem in the installation of the multiplication routine for matrices that claimed to be applicable for more general list multiplications. 12) A problem when computing weight distributions of codes with weights > 2^28 13) Wrong handling of integer literals within functions or loops on 64bit architectures (only integers in the range from 2^28 to 2^60). Errors 1,3,4,5,6,7,8 and 10 may cause GAP to stop with an error message. Error 2 caused the Windows version not to display the online help properly. Error 9 caused GAP to use wrong system variables after loading a workspace. Errors 11 and 12 could cause GAP to crash in very rare circumstances. Error 13 caused GAP to compute with wrong integers (only on 64bit and in the special situation mentioned above). Many thanks to: Frank Heckenbach for reporting error 6. Chris Wensley for reporting problem 13. Installing the bugfix. ====================== Load the zoo archive fix4r4p3.zoo' (or respectively other formats) from the bugfixes web page http://www.gap-system.org/tmpsite/Download/upgrade.html Alternatively you can find this file in the bugfixes' directory of the GAP4 ftp distribution. Unpack the file in the home directory of your GAP distribution (the directory containing the lib' and grp' directories), for example by using unzoo -x fix4r4p3.zoo' if you use the zoo' archive. The archive uncompressor program may ask you for permissions to overwrite files, answer this with Y)es or A)ll. This will replace the erroneous files by fixed versions. (Under Windows or MacOS you will have to copy unzoo' in the same directory and enter the argument line after the call to unzoo'.) Make sure you have write permissions when applying the fix. This fix changes the kernel. You have to recompile by calling make' in the directory in which you unpacked the fix. Windows users will find a new binary as bin/gapw95.exe' in the archive. MacOS users must use the zoo' archive and will find a new binary in the root directory. After installing the bugfix you can test whether the bugfix has been applied correctly by starting GAP from the gap4r4' directory and issuing gap> ReadTest("tst/bugfix.tst"); + bugfixes test + GAP4stones: 163 true (The output should be like this if the bugfixes have been installed correctly. The number of GAP4stones may vary according to your system.) Running this test is not a necessary part of installing a bug fix, but only serves as a confirmation that everything went well. The test might run for a long time and GAP will not output information while running. Note that it is not possible to run the test twice without restarting GAP and that an interruption of the test with CTRL-C will produce lots of (harmless) error messages. You can remove this file description3' afterwards. The GAP Group From marcus at math.uic.edu Tue May 11 17:49:57 2004 From: marcus at math.uic.edu (marcus@math.uic.edu) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] colors Message-ID: <20040511164957.GA27353@math.uic.edu> I'm really embarrased to be asking for something so silly, but in the previous release of GAP, there was file called something like tips.unix that had a bunch of commands to cause GAP to print various colors. It also had instructions on saved workspaces and tab completion, but these features have apparently been put into CreateWorkspace.sh. Anyway, the colors made doing algebra marginally less unpleasant. Does anyone have this file, or can you just tell me how to get my pretty colors back? -marcus -- I used to be "with it," but then they changed what "it" was. Now, what I'm "with" isn't "it," and what's "it" seems weird and scary to me. It'll happen to you... - Grampa Simpson From costanti at science.unitn.it Tue May 11 22:12:22 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] colors In-Reply-To: <20040511164957.GA27353@math.uic.edu> References: <20040511164957.GA27353@math.uic.edu> Message-ID: <1084309942.40a141b61eb60@www.unitn.it> Dear Marcus, the colo[u]rs were a very important feaure of gap4.3, and the lack of them is a bug of 4.4 that should be fixed. You can get the colors againg by reading the attached file. (Guess what does the Italian word 'lampeggiante' mean.) Best wishes, Marco Scrive marcus@math.uic.edu: > I'm really embarrased to be asking > for something so silly, but > in the previous release of GAP, > there was file called something > like tips.unix that had a bunch > of commands to cause GAP to print various > colors. It also had instructions > on saved workspaces and tab > completion, but these features > have apparently been put into > CreateWorkspace.sh. > Anyway, the colors made doing > algebra marginally less unpleasant. > Does anyone have this file, or > can you just tell me how to > get my pretty colors back? > -marcus > -- > I used to be "with it," but then they changed what "it" was. Now, what > I'm "with" isn't "it," and what's "it" seems weird and scary to > me. It'll happen to you... > > - Grampa Simpson > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > -------------- next part -------------- UsaIlColore := true; ANSI_COLORS := ShallowCopy( UsaIlColore ); if CompareVersionNumbers( VERSION, "4.3" ) then # prepara per usare il colore STDOUT := OutputTextUser();; PrintPromptHook:=CPROMPT;; EndLineHook:=function() end;; ColorPrompt := function(b) if b=false then Unbind(PrintPromptHook); Unbind(EndLineHook); return; fi; # my colored interface # we stored this above to avoid overwriting last system error with # function call ### STDOUT := OutputTextUser(); # print the prompt PrintPromptHook := function() local cp; cp := CPROMPT(); if cp = "gap> " then cp := "gap> "; fi; # different color for brk...> prompts if Length(cp)>0 and cp[1] = 'b' then WriteAll(STDOUT, "\033[1m\033[31m"); else WriteAll(STDOUT, "\033[1m\033[34m"); fi; # use this instead of Print such that the column counter for the # command line editor is correct PRINT_CPROMPT(cp); # another color for input WriteAll(STDOUT, "\033[0m\033[31m"); end; # reset attributes before going to the next line EndLineHook := function() WriteAll(STDOUT, "\033[0m"); end; end; Unbind(PrintPromptHook); Unbind(EndLineHook); ColorPrompt( UsaIlColore ); fi; if UsaIlColore and CompareVersionNumbers( VERSION, "4.3" ) then printcolorato := function ( arg ) Print( "\033[1m\033[33m" ); CallFuncList( Print, arg ); Print( "\033[0m" ); return; end; printlampeggiante := function ( arg ) Print( "\033[5m\033[33m" ); CallFuncList( Print, arg ); Print( "\033[0m" ); return; end; printreversed := function ( arg ) Print( "\033[7m\033[33m" ); CallFuncList( Print, arg ); Print( "\033[0m" ); return; end; else printcolorato := Print; printlampeggiante := Print; printreversed := Print; fi; From Jan.Draisma at unibas.ch Thu May 13 15:01:27 2004 From: Jan.Draisma at unibas.ch (Jan Draisma) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] MatrixOfAction Message-ID: <20040513140127.GC3894@igor.urz.unibas.ch> Dear Gap-Forum, I'm having the following problem with MatrixOfAction: g:=SimpleLieAlgebra("A",1,Rationals);; x:=GeneratorsOfAlgebra(g);; V:=HighestWeightModule(g,[1]);; W:=DirectSumOfAlgebraModules(V,V);; B:=Basis(W);; MatrixOfAction(B,x[1]); Error, no method found! ... Is this use of MatrixOfAction (or in Coefficients, where the problem seems to be located) unsupported? Best wishes, Jan From frank.luebeck at math.rwth-aachen.de Fri May 14 10:59:26 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] colors In-Reply-To: <20040511164957.GA27353@math.uic.edu> Message-ID: > I'm really embarrased to be asking > for something so silly, but > in the previous release of GAP, > there was file called something > like tips.unix that had a bunch > of commands to cause GAP to print various > colors. Dear Marcus, dear Forum, Interesting to hear that some people actually like and use the colors which distinguish prompt, input and output in a terminal running GAP. (I also use and like them.) Nothing has changed about it in GAP 4.4. I've only moved the corresponding part of the README.unix file you have mentioned to a private page. Fetch the file http://www.math.rwth-aachen.de:8001/RsyncLinuxGAP/colorprompt.g and copy it, say, to the 'lib' directory of your GAP installation. Saying ReadLib("colorprompt.g"); in GAP or your ~/.gaprc file enables the colored prompt and sets the variable 'ANSI_COLORS' to 'true'. (You can switch it off with 'ColorPrompt(false); ANSI_COLORS := false;'.) If ANSI_COLORS is 'true', some help pages are also displayed with color markup. The reason that I removed it from the "official" GAP pages is that I mainly got negative comments so far. But following your forum mail I suddenly got a bunch of positive ones. So, I will put some version of 'colorprompt.g' in the GAP library and document the functionality. (For the moment, please follow the instructions above.) Two more remarks on using colors with GAP (code): (1) If you want to use colors for your own 'Print' or 'View' functions in GAP you find some utilities in the GAPDoc package, ask the GAP help system for ?TextAttr Using this you can easily change background and foreground colors as well as other attributes while printing to the terminal. (Of course, only in terminal emulations which understand the "ANSI color escape sequences", there is no way to force certain colors, they depend on the configuration of the terminal.) If you use this in code you may want to distribute, I suggest that you always include a non-color variant and recognize the setting of 'ANSI_COLORS': if ANSI_COLORS = true then ... with colors else ... non-colored variant fi; (2) The GAP distribution contains some utilities for editing and viewing GAP code with the editor 'vim', see the file 'etc/README.vim-utils'. This includes colored syntax hilighting, automatic indentation and folding. > It also had instructions > on saved workspaces and tab > completion, but these features > have apparently been put into > CreateWorkspace.sh. You are right, this part of the README.unix has become a more official part of the installation instructions. We are currently thinking about a few more technical details concerning workspaces, such that we can change the instructions for starting GAP with a saved workspace from "optional" to "recommended". With best regards, Frank /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From wdj at USNA.Navy.Mil Wed May 19 21:59:28 2004 From: wdj at USNA.Navy.Mil (David Joyner) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] finite fields question Message-ID: <40ABCAB0.2080601@hermes.ewlab.usna.edu> Hello GAP forum people: Possibly a stupid question, but I'm wondering if there is GAP code which implements an isomorphism GF(p)[x]/(f(x)) --> GF(p^d), where f(x) in GF(p)[x] is irreducible. - David Joyner From hulpke at math.colostate.edu Wed May 19 17:35:51 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] finite fields question In-Reply-To: <40ABCAB0.2080601@hermes.ewlab.usna.edu> Message-ID: <200405191635.i4JGZpBV020148@schur.math.colostate.edu> Dear David, Dear GAP-forum: > Possibly a stupid question, but I'm wondering if there is GAP code > which implements an isomorphism > > GF(p)[x]/(f(x)) --> GF(p^d), > > where f(x) in GF(p)[x] is irreducible. What you would have to do is to calculate a root a of f in GF(p^d), thsn you can just evaluate at a: gap> x:=X(GF(3),"x"); x gap> f:=x^7+x^3+x+1; x^7+x^3+x+Z(3)^0 gap> IsIrreducible(f); true gap> RootsOfUPol gap> RootsOfUPol(GF(3^7),f); [ Z(3^7)^1551, Z(3^7)^281, Z(3^7)^343, Z(3^7)^517, Z(3^7)^843, Z(3^7)^901, Z(3^7)^1029 ] gap> a:=last[1]; # for example - you could take any other Z(3^7)^1551 gap> Value(f,a); 0*Z(3) gap> pol:=x^2+x+1; x^2+x+Z(3)^0 gap> Value(pol,a); Z(3^7)^74 All the best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From Michael.Hartley at nottingham.edu.my Wed May 19 17:41:53 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 3 (Email problems) Message-ID: I am currently having problems with my computer. IS is working on the issue. Until the problem is solved, I may not be able to read all my email. With apologies, Michael Hartley From amahalan at fau.edu Thu May 20 17:20:54 2004 From: amahalan at fau.edu (Ayan Mahalanobis) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] help with polycyclic In-Reply-To: References: Message-ID: <40ACDAE6.5080204@fau.edu> Hello, I am new in GAP and was trying to come up with a polycyclic presentation of a 2-group. I couldn't get it to work. The message I am getting is this gap>UpdatePolycyclicCollector(flt); gap> IsConfluent(flt); Inconsistency at 4 3 2 false The message makes no sense to me. I can provide with more details including the Fp definition of the group, if necessary. Thanks and regards Ayan From nickel at mathematik.tu-darmstadt.de Thu May 20 22:50:57 2004 From: nickel at mathematik.tu-darmstadt.de (Werner Nickel) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] help with polycyclic In-Reply-To: <40ACDAE6.5080204@fau.edu> References: <40ACDAE6.5080204@fau.edu> Message-ID: <20040520215057.GA7336@mathematik.tu-darmstadt.de> > Hello, > I am new in GAP and was trying to come up with a polycyclic presentation > of a 2-group. I couldn't get it to work. > The message I am getting is this > > gap>UpdatePolycyclicCollector(flt); > gap> IsConfluent(flt); > Inconsistency at 4 3 2 > false A polycyclic presentation called confluent if any two words in reduced form (i.e. x1^e1*x2^e2*...*xn^en) define different elements of the group given by the polycyclic presentation. The reduced form is used to check equality of elements. Therefore, confluence of the polycyclic presentation is essential for being able to perform arithmetic in the group. There are a number of reason why your presentation may not be confluent. If you send me the presentation, I am happy to have a look. All the best Werner Nickel From pliner at sky.ru Mon May 24 12:34:34 2004 From: pliner at sky.ru (Lev Pliner) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] A service for GAP remote access Message-ID: <001501c44183$1682f960$b90d72d9@lsp> Dear forum users. My name is Lev Pliner. I'm a PhD student at Ural State University, Katerinburg, Russia. I've rendered a server that allows to remotely run GAP (rGAP) and a simple client for it (cGAP). I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it so, the mentioned software allows to use GAP kernel run under linux with all packages using a client run under windows. A client based upon readline library so many customizations can be done (see man readline for further information). I can send a singlethreaded version of server; multithreaded is ready but still has a lot of bugs. Lev. From freundt at math.TU-Berlin.DE Mon May 24 21:35:18 2004 From: freundt at math.TU-Berlin.DE (Sebastian Freundt) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] A service for GAP remote access In-Reply-To: <001501c44183$1682f960$b90d72d9@lsp> (Lev Pliner's message of "Mon, 24 May 2004 17:34:34 +0600") References: <001501c44183$1682f960$b90d72d9@lsp> Message-ID: "Lev Pliner" writes: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). [snip] I'd like to try it. Is it available somewhere? Greets Sebastian Freundt From qphysics at yahoo.com Tue May 25 01:05:08 2004 From: qphysics at yahoo.com (J.F. Huesman) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] A service for GAP remote access In-Reply-To: <001501c44183$1682f960$b90d72d9@lsp> Message-ID: <20040525000508.81889.qmail@web51604.mail.yahoo.com> Hello, I run cygwin, solaris, redhat linux, and NeXT. Is the service available, I would like to see about compiling it on different platforms and seeing how it works. J.F. Huesman University of South Florida Tampa, Florida --- Lev Pliner wrote: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > so, the mentioned software allows to use GAP kernel run under linux with all > packages using a client run under windows. A client based upon readline > library so many customizations can be done (see man readline for further > information). > > I can send a singlethreaded version of server; multithreaded is ready but > still has a lot of bugs. > > Lev. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ===== For every credibility gap, there is a gullibility fill. -- R. Clopton From pliner at sky.ru Tue May 25 05:06:11 2004 From: pliner at sky.ru (Lev Pliner) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] A service for GAP remote access References: <001501c44183$1682f960$b90d72d9@lsp> Message-ID: <003b01c4420d$9d5555c0$b90d72d9@lsp> > I'd like to try it. Is it available somewhere? 1. Use following command to build rGAP (server): gcc rpcGAP.c rpcGAP_s.c iGAP_ss.c rGAP_ss.c -lrpclib -orGAP 2. Use following command to build cGAP (client): gcc rpcGAP.c rpcGAP_c.c iGAP_ss.c cGAP.c -lrpclib -lreadline -ocGAP 3. GAP root should be /usr/sbin/gap (or modifications should be done at rGAP_ss.c). 4. Some source was taken from xGAP. 5. To quit client execution better type '?quit', not 'quit;' to close GAP. 6. If this work will be of intrest, I will send multithreaded version with documentation (this version is not documented at all), including my plans for further work. Best wishes. Lev. From wright at uoregon.edu Tue May 25 16:23:07 2004 From: wright at uoregon.edu (Charles Wright) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] REPSN package Message-ID: <40B364DB.9040504@uoregon.edu> Dear GAP Forum members -- I am pleased to report acceptance of the GAP4 Package "Repsn" by Vahid Dabbaghian-Abdoly. The package deals with the computation of complex irreducible representations of finite groups and provides a combination of several heuristics for constructing the representations in question by inducing or extending representations of suitable subgroups (as an application of Clifford's Theorem). It also includes a special treatment of perfect groups, with the effect that the functions of the package can compute a representation affording any irreducible group character of degree less than 32, with no restriction on the degree if the group is solvable. The package will be included in the standard GAP package distribution and is available now from www.math.carleton.ca/~vdabbagh/gap/repsn.html. Charles R.B. Wright From quagroup at hetnet.nl Sat May 15 01:42:06 2004 From: quagroup at hetnet.nl (quagroup) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] MatrixOfAction Message-ID: <03578DA00653CD418F5C3C16B7295A3802D062A5@HNEXVS03.HETNET.LOCAL> Dear Jan, Thanks for your report. What you reported was indeed a bug, which will be fixed in the next bugfix. Temporarily you can fix it in your own copy of GAP by loading the code below. If you have any questions, please ask. Best wishes, Willem de Graaf ############################################################################ ## #M DirectSumOfAlgebraModules( ) #M DirectSumOfAlgebraModules( , ) ## InstallMethod( DirectSumOfAlgebraModules, "for a list of algebra modules", true, [ IsDenseList ], 0, function( list ) local left_action, right_action, F, fam, type, niceVF, gens, zero, i, gV, v, be, A, B, V, W, niceMod, BW; # There are two types of action on a direct sum: left and right. left_action:= function( x, tn ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> x^u ) ); end; right_action:= function( tn, x ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> u^x ) ); end; # We first make the family of the direct sum elements, and construct # a basis of the direct sum. Note that if the arguments do not # know how to compute bases, then the rewriting of direct sum elements # to normal # forms will fail. Hence we can assume that every module has a basis, # and therefore we have a basis of the direct sum as well. F:= LeftActingDomain( list[1] ); fam:= NewFamily( "DirectSumElementsFam", IsDirectSumElement ); type:= NewType( fam, IsPackedElementDefaultRep ); fam!.directSumElementDefaultType:= type; fam!.zeroCoefficient:= Zero( F ); fam!.constituentModules:= list; niceMod:= FullSparseRowSpace( F, Sum( List( list, Dimension ) ) ); niceVF:= ElementsFamily( FamilyObj( niceMod ) ); fam!.niceVectorFam:= niceVF; gens:= [ ]; zero:= List( list, x -> Zero( x ) ); for i in [1..Length(list)] do gV:= Basis( list[i] ); for v in gV do be:= ShallowCopy( zero ); be[i]:= v; Add( gens, be ); od; od; if gens = [ ] then gens:= [ zero ]; fi; gens:= List( gens, x -> ObjByExtRep( fam, x ) ); for i in [1..Length(gens)] do gens[i]![2]:= true; od; # Now we make the direct sum, we need to consider a few cases... if IsLeftAlgebraModuleElementCollection( list[1] ) then if IsRightAlgebraModuleElementCollection( list[1] ) then if not ForAll( list, V -> IsLeftAlgebraModuleElementCollection(V) and IsRightAlgebraModuleElementCollection(V)) then Error("for all modules the algebra must act om the same side"); fi; A:= LeftActingAlgebra( list[1] ); B:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) and IsIdenticalObj( RightActingAlgebra(V), B ) ) then Error("all modules must have the same left acting algebra" ); fi; V:= BiAlgebraModuleByGenerators( A, B, left_action, right_action, gens ); fi; if not ForAll( list, IsLeftAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= LeftActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= LeftAlgebraModuleByGenerators( A, left_action, gens ); else if not ForAll( list, IsRightAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( RightActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= RightAlgebraModuleByGenerators( A, right_action, gens ); fi; if IsZero( gens[1] ) then return V; fi; # We construct a basis B' of the direct sum. # This is a basis of an algebra module, so it works via a delegate # basis, which is a basis of the module spanned by the elements gens'. # We call this module W', and BW' will be a basis of W'. # Now W' works via a nice basis and we know the basis vectors of this # nice basis (namely all unit vectors). So we set the attribute NiceBasis' # of BW' to be the standard basis of the full row space. W:= VectorSpace( F, gens, "basis" ); SetNiceFreeLeftModule( W, niceMod ); B:= Objectify( NewType( FamilyObj( V ), IsFiniteBasisDefault and IsBasisOfAlgebraModuleElementSpace and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( B, V ); SetBasisVectors( B, GeneratorsOfAlgebraModule(V) ); BW:= Objectify( NewType( FamilyObj( W ), IsBasisByNiceBasis and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( BW, W ); SetBasisVectors( BW, gens ); SetNiceBasis( BW, Basis( niceMod ) ); B!.delegateBasis:= BW; SetBasis( V, B ); SetDimension( V, Length( gens ) ); return V; end ); From pliner at sky.ru Mon May 31 08:32:48 2004 From: pliner at sky.ru (Lev Pliner) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] A service for GAP remote access References: <20040525000508.81889.qmail@web51604.mail.yahoo.com> Message-ID: <000b01c446e1$795e5df0$b90d72d9@lsp> Have anybody tried to build the source? Lev. ----- Original Message ----- From: "J.F. Huesman" To: Sent: Tuesday, May 25, 2004 6:05 AM Subject: Re: [GAP Forum] A service for GAP remote access > Hello, > I run cygwin, solaris, redhat linux, and NeXT. > Is the service available, I would like to see about compiling it on different > platforms and seeing how it works. > > J.F. Huesman > University of South Florida > Tampa, Florida > > > --- Lev Pliner wrote: > > Dear forum users. > > > > My name is Lev Pliner. I'm a PhD student at Ural State University, > > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > > (rGAP) and a simple client for it (cGAP). > > > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > > so, the mentioned software allows to use GAP kernel run under linux with all > > packages using a client run under windows. A client based upon readline > > library so many customizations can be done (see man readline for further > > information). > > > > I can send a singlethreaded version of server; multithreaded is ready but > > still has a lot of bugs. > > > > Lev. > > > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > ===== > For every credibility gap, there is a gullibility fill. > -- R. Clopton > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Michael.Hartley at nottingham.edu.my Mon May 31 08:46:36 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 4 Message-ID: I am currently off campus until the 17th of June. I will attend to your email when I return. Thank you. Apologies for any inconvenience. From allomber at math.u-bordeaux.fr Mon May 31 10:44:01 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Thu Jan 5 13:04:18 2006 Subject: [GAP Forum] A service for GAP remote access In-Reply-To: <000b01c446e1$795e5df0$b90d72d9@lsp> References: <20040525000508.81889.qmail@web51604.mail.yahoo.com> <000b01c446e1$795e5df0$b90d72d9@lsp> Message-ID: <20040531094401.GJ5026@seventeen> On Mon, May 31, 2004 at 01:32:48PM +0600, Lev Pliner wrote: > Have anybody tried to build the source? Did you make the source available somewhere ? I found no links to them in any of your posts. I would like to try and see whether that could be used to interface GAP with other computer algebra systems. Cheers, Bill. From rashid at jinnah.edu.pk Wed Jun 2 07:06:10 2004 From: rashid at jinnah.edu.pk (Rashid Ali) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] RE: Forum Digest, Vol 6, Issue 4 Message-ID: Dear Forum Members I am working on computations of Self-Connected and H-Connected transversals of a group G. Since total number of transversals for a finite group G with a subgroup H = Order(H)^Index(G,H). I've designed an algorithm that searches self-connected and H-connected transversals. It works properly for small groups but for large gooups say for example when Order(G)=1792, and Order(H)=64, it perform computations for many hours but it quits gap session automatically leaving the executation incomplete, and displays following message that I'm unable to understand: 0 [main] gapw95 1116 handle_exceptions: Exception: STATUS_ACCESS_VIOLATION 1062 [main] gapw95 1116 stackdump: Dumping stack trace to gapw95.exe.stackdump I can't understand how to resolve this problem Regards Rashid Ali -----Original Message----- From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org]On Behalf Of forum-request@gap-system.org Sent: Monday, May 31, 2004 12:38 PM To: forum@gap-system.org Subject: Forum Digest, Vol 6, Issue 4 Send Forum mailing list submissions to forum@mail.gap-system.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.gap-system.org/mailman/listinfo/forum or, via email, send a message with subject or body 'help' to forum-request@mail.gap-system.org You can reach the person managing the list at forum-owner@mail.gap-system.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Forum digest..." Today's Topics: 1. Re: Forum Digest, Vol 6, Issue 3 (Email problems) (Michael Hartley) 2. help with polycyclic (Ayan Mahalanobis) 3. Re: help with polycyclic (Werner Nickel) 4. A service for GAP remote access (Lev Pliner) 5. Re: A service for GAP remote access (Sebastian Freundt) 6. Re: A service for GAP remote access (J.F. Huesman) 7. Re: A service for GAP remote access (Lev Pliner) 8. REPSN package (Charles Wright) 9. RE: MatrixOfAction (quagroup) 10. Re: A service for GAP remote access (Lev Pliner) ---------------------------------------------------------------------- Message: 1 Date: Thu, 20 May 2004 00:41:53 +0800 From: "Michael Hartley" Subject: [GAP Forum] Re: Forum Digest, Vol 6, Issue 3 (Email problems) To: Message-ID: Content-Type: text/plain; charset=US-ASCII I am currently having problems with my computer. IS is working on the issue. Until the problem is solved, I may not be able to read all my email. With apologies, Michael Hartley ------------------------------ Message: 2 Date: Thu, 20 May 2004 12:20:54 -0400 From: Ayan Mahalanobis Subject: [GAP Forum] help with polycyclic To: gap-forum@dcs.st-and.ac.uk Message-ID: <40ACDAE6.5080204@fau.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Hello, I am new in GAP and was trying to come up with a polycyclic presentation of a 2-group. I couldn't get it to work. The message I am getting is this gap>UpdatePolycyclicCollector(flt); gap> IsConfluent(flt); Inconsistency at 4 3 2 false The message makes no sense to me. I can provide with more details including the Fp definition of the group, if necessary. Thanks and regards Ayan ------------------------------ Message: 3 Date: Thu, 20 May 2004 23:50:57 +0200 From: Werner Nickel Subject: Re: [GAP Forum] help with polycyclic To: Ayan Mahalanobis Cc: gap-forum@dcs.st-and.ac.uk Message-ID: <20040520215057.GA7336@mathematik.tu-darmstadt.de> Content-Type: text/plain; charset=us-ascii > Hello, > I am new in GAP and was trying to come up with a polycyclic presentation > of a 2-group. I couldn't get it to work. > The message I am getting is this > > gap>UpdatePolycyclicCollector(flt); > gap> IsConfluent(flt); > Inconsistency at 4 3 2 > false A polycyclic presentation called confluent if any two words in reduced form (i.e. x1^e1*x2^e2*...*xn^en) define different elements of the group given by the polycyclic presentation. The reduced form is used to check equality of elements. Therefore, confluence of the polycyclic presentation is essential for being able to perform arithmetic in the group. There are a number of reason why your presentation may not be confluent. If you send me the presentation, I am happy to have a look. All the best Werner Nickel ------------------------------ Message: 4 Date: Mon, 24 May 2004 17:34:34 +0600 From: "Lev Pliner" Subject: [GAP Forum] A service for GAP remote access To: Message-ID: <001501c44183$1682f960$b90d72d9@lsp> Content-Type: text/plain; charset="koi8-r" Dear forum users. My name is Lev Pliner. I'm a PhD student at Ural State University, Katerinburg, Russia. I've rendered a server that allows to remotely run GAP (rGAP) and a simple client for it (cGAP). I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it so, the mentioned software allows to use GAP kernel run under linux with all packages using a client run under windows. A client based upon readline library so many customizations can be done (see man readline for further information). I can send a singlethreaded version of server; multithreaded is ready but still has a lot of bugs. Lev. ------------------------------ Message: 5 Date: Mon, 24 May 2004 20:35:18 +0000 From: Sebastian Freundt Subject: Re: [GAP Forum] A service for GAP remote access To: "Lev Pliner" Cc: forum@gap-system.org Message-ID: Content-Type: text/plain; charset=us-ascii "Lev Pliner" writes: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). [snip] I'd like to try it. Is it available somewhere? Greets Sebastian Freundt ------------------------------ Message: 6 Date: Mon, 24 May 2004 17:05:08 -0700 (PDT) From: "J.F. Huesman" Subject: Re: [GAP Forum] A service for GAP remote access To: forum@gap-system.org Message-ID: <20040525000508.81889.qmail@web51604.mail.yahoo.com> Content-Type: text/plain; charset=us-ascii Hello, I run cygwin, solaris, redhat linux, and NeXT. Is the service available, I would like to see about compiling it on different platforms and seeing how it works. J.F. Huesman University of South Florida Tampa, Florida --- Lev Pliner wrote: > Dear forum users. > > My name is Lev Pliner. I'm a PhD student at Ural State University, > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > (rGAP) and a simple client for it (cGAP). > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > so, the mentioned software allows to use GAP kernel run under linux with all > packages using a client run under windows. A client based upon readline > library so many customizations can be done (see man readline for further > information). > > I can send a singlethreaded version of server; multithreaded is ready but > still has a lot of bugs. > > Lev. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ===== For every credibility gap, there is a gullibility fill. -- R. Clopton ------------------------------ Message: 7 Date: Tue, 25 May 2004 10:06:11 +0600 From: "Lev Pliner" Subject: Re: [GAP Forum] A service for GAP remote access To: "Sebastian Freundt" , "John Brinkman" Cc: forum@gap-system.org Message-ID: <003b01c4420d$9d5555c0$b90d72d9@lsp> Content-Type: text/plain; charset="iso-8859-1" > I'd like to try it. Is it available somewhere? 1. Use following command to build rGAP (server): gcc rpcGAP.c rpcGAP_s.c iGAP_ss.c rGAP_ss.c -lrpclib -orGAP 2. Use following command to build cGAP (client): gcc rpcGAP.c rpcGAP_c.c iGAP_ss.c cGAP.c -lrpclib -lreadline -ocGAP 3. GAP root should be /usr/sbin/gap (or modifications should be done at rGAP_ss.c). 4. Some source was taken from xGAP. 5. To quit client execution better type '?quit', not 'quit;' to close GAP. 6. If this work will be of intrest, I will send multithreaded version with documentation (this version is not documented at all), including my plans for further work. Best wishes. Lev. ------------------------------ Message: 8 Date: Tue, 25 May 2004 08:23:07 -0700 From: Charles Wright Subject: [GAP Forum] REPSN package To: GAP Forum Message-ID: <40B364DB.9040504@uoregon.edu> Content-Type: text/plain; charset=us-ascii; format=flowed Dear GAP Forum members -- I am pleased to report acceptance of the GAP4 Package "Repsn" by Vahid Dabbaghian-Abdoly. The package deals with the computation of complex irreducible representations of finite groups and provides a combination of several heuristics for constructing the representations in question by inducing or extending representations of suitable subgroups (as an application of Clifford's Theorem). It also includes a special treatment of perfect groups, with the effect that the functions of the package can compute a representation affording any irreducible group character of degree less than 32, with no restriction on the degree if the group is solvable. The package will be included in the standard GAP package distribution and is available now from www.math.carleton.ca/~vdabbagh/gap/repsn.html. Charles R.B. Wright ------------------------------ Message: 9 Date: Sat, 15 May 2004 02:42:06 +0200 From: "quagroup" Subject: RE: [GAP Forum] MatrixOfAction To: "Jan Draisma" , "GAP Forum" Message-ID: <03578DA00653CD418F5C3C16B7295A3802D062A5@HNEXVS03.HETNET.LOCAL> Content-Type: text/plain; charset="Windows-1252" Dear Jan, Thanks for your report. What you reported was indeed a bug, which will be fixed in the next bugfix. Temporarily you can fix it in your own copy of GAP by loading the code below. If you have any questions, please ask. Best wishes, Willem de Graaf ############################################################################ ## #M DirectSumOfAlgebraModules( ) #M DirectSumOfAlgebraModules( , ) ## InstallMethod( DirectSumOfAlgebraModules, "for a list of algebra modules", true, [ IsDenseList ], 0, function( list ) local left_action, right_action, F, fam, type, niceVF, gens, zero, i, gV, v, be, A, B, V, W, niceMod, BW; # There are two types of action on a direct sum: left and right. left_action:= function( x, tn ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> x^u ) ); end; right_action:= function( tn, x ) return ObjByExtRep( FamilyObj( tn ), List( ShallowCopy( ExtRepOfObj( tn ) ), u -> u^x ) ); end; # We first make the family of the direct sum elements, and construct # a basis of the direct sum. Note that if the arguments do not # know how to compute bases, then the rewriting of direct sum elements # to normal # forms will fail. Hence we can assume that every module has a basis, # and therefore we have a basis of the direct sum as well. F:= LeftActingDomain( list[1] ); fam:= NewFamily( "DirectSumElementsFam", IsDirectSumElement ); type:= NewType( fam, IsPackedElementDefaultRep ); fam!.directSumElementDefaultType:= type; fam!.zeroCoefficient:= Zero( F ); fam!.constituentModules:= list; niceMod:= FullSparseRowSpace( F, Sum( List( list, Dimension ) ) ); niceVF:= ElementsFamily( FamilyObj( niceMod ) ); fam!.niceVectorFam:= niceVF; gens:= [ ]; zero:= List( list, x -> Zero( x ) ); for i in [1..Length(list)] do gV:= Basis( list[i] ); for v in gV do be:= ShallowCopy( zero ); be[i]:= v; Add( gens, be ); od; od; if gens = [ ] then gens:= [ zero ]; fi; gens:= List( gens, x -> ObjByExtRep( fam, x ) ); for i in [1..Length(gens)] do gens[i]![2]:= true; od; # Now we make the direct sum, we need to consider a few cases... if IsLeftAlgebraModuleElementCollection( list[1] ) then if IsRightAlgebraModuleElementCollection( list[1] ) then if not ForAll( list, V -> IsLeftAlgebraModuleElementCollection(V) and IsRightAlgebraModuleElementCollection(V)) then Error("for all modules the algebra must act om the same side"); fi; A:= LeftActingAlgebra( list[1] ); B:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) and IsIdenticalObj( RightActingAlgebra(V), B ) ) then Error("all modules must have the same left acting algebra" ); fi; V:= BiAlgebraModuleByGenerators( A, B, left_action, right_action, gens ); fi; if not ForAll( list, IsLeftAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= LeftActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( LeftActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= LeftAlgebraModuleByGenerators( A, left_action, gens ); else if not ForAll( list, IsRightAlgebraModuleElementCollection ) then Error( "for all modules the algebra must act om the same side" ); fi; A:= RightActingAlgebra( list[1] ); if not ForAll( list, V -> IsIdenticalObj( RightActingAlgebra(V), A ) ) then Error( "all modules must have the same left acting algebra" ); fi; V:= RightAlgebraModuleByGenerators( A, right_action, gens ); fi; if IsZero( gens[1] ) then return V; fi; # We construct a basis B' of the direct sum. # This is a basis of an algebra module, so it works via a delegate # basis, which is a basis of the module spanned by the elements gens'. # We call this module W', and BW' will be a basis of W'. # Now W' works via a nice basis and we know the basis vectors of this # nice basis (namely all unit vectors). So we set the attribute NiceBasis' # of BW' to be the standard basis of the full row space. W:= VectorSpace( F, gens, "basis" ); SetNiceFreeLeftModule( W, niceMod ); B:= Objectify( NewType( FamilyObj( V ), IsFiniteBasisDefault and IsBasisOfAlgebraModuleElementSpace and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( B, V ); SetBasisVectors( B, GeneratorsOfAlgebraModule(V) ); BW:= Objectify( NewType( FamilyObj( W ), IsBasisByNiceBasis and IsAttributeStoringRep ), rec() ); SetUnderlyingLeftModule( BW, W ); SetBasisVectors( BW, gens ); SetNiceBasis( BW, Basis( niceMod ) ); B!.delegateBasis:= BW; SetBasis( V, B ); SetDimension( V, Length( gens ) ); return V; end ); ------------------------------ Message: 10 Date: Mon, 31 May 2004 13:32:48 +0600 From: "Lev Pliner" Subject: Re: [GAP Forum] A service for GAP remote access To: "J.F. Huesman" , Message-ID: <000b01c446e1$795e5df0$b90d72d9@lsp> Content-Type: text/plain; charset="iso-8859-1" Have anybody tried to build the source? Lev. ----- Original Message ----- From: "J.F. Huesman" To: Sent: Tuesday, May 25, 2004 6:05 AM Subject: Re: [GAP Forum] A service for GAP remote access > Hello, > I run cygwin, solaris, redhat linux, and NeXT. > Is the service available, I would like to see about compiling it on different > platforms and seeing how it works. > > J.F. Huesman > University of South Florida > Tampa, Florida > > > --- Lev Pliner wrote: > > Dear forum users. > > > > My name is Lev Pliner. I'm a PhD student at Ural State University, > > Katerinburg, Russia. I've rendered a server that allows to remotely run GAP > > (rGAP) and a simple client for it (cGAP). > > > > I used cygwin/gcc, so I hope it may be compiled/linked under linux. If it > > so, the mentioned software allows to use GAP kernel run under linux with all > > packages using a client run under windows. A client based upon readline > > library so many customizations can be done (see man readline for further > > information). > > > > I can send a singlethreaded version of server; multithreaded is ready but > > still has a lot of bugs. > > > > Lev. > > > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > ===== > For every credibility gap, there is a gullibility fill. > -- R. Clopton > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum ------------------------------ _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum End of Forum Digest, Vol 6, Issue 4 *********************************** From costanti at science.unitn.it Wed Jun 2 09:25:33 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] RE: Forum Digest, Vol 6, Issue 4 In-Reply-To: References: Message-ID: <1086164733.40bd8efd8ae92@www.unitn.it> Dear Rashid Ali and dear gap-forum, maybe your problem is a Windows specific problem; did you try the same computation on a linux machine? (By the way, Gap under linux is faster than under Windows). If you send (maybe to support@gap-system.org) all the code that produces the problem, then other people may look into this. Please check: Do you have the most recent version of GAP installed? (4.4.3) Did you install the bug?fix? When reporting the error, please state: What version of GAP and what computer you are using and possibly what compiler you used in installing GAP (some of this information will be contained in the banner you see when staring up GAP). What is your input. (Please also include the definitions of your objects so that we can redo the calculation.) What output do you get? When replaying a previous mail, you shouldn't quote all the mail, but only the relevant part. Best regards, Marco Costantini Scrive Rashid Ali : > Dear Forum Members > > I am working on computations of Self-Connected and H-Connected > transversals of a group G. Since total number of transversals for a > finite group G with a subgroup H = Order(H)^Index(G,H). I've designed an > algorithm that searches self-connected and H-connected transversals. It > works properly for small groups but for large gooups say for example when > Order(G)=1792, and Order(H)=64, it perform computations for many hours > but it quits gap session automatically leaving the executation > incomplete, and displays following message that I'm unable to understand: > > 0 [main] gapw95 1116 handle_exceptions: Exception: > STATUS_ACCESS_VIOLATION > > 1062 [main] gapw95 1116 stackdump: Dumping stack trace to > gapw95.exe.stackdump > > I can't understand how to resolve this problem > > Regards > > Rashid Ali From joachim.neubueser at math.rwth-aachen.de Wed Jun 2 14:49:17 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] RE: Forum Digest, Vol 6, Issue 4 (fwd) Message-ID: Dear Rashid Ali, You wrote to the GAP Forum: > Dear Forum Members > I am working on computations of Self-Connected and H-Connected > transversals of a group G. Since total number of transversals for a > finite group G with a subgroup H = Order(H)^Index(G,H). I've > designed an algorithm that searches self-connected and H-connected > transversals. It works properly for small groups but for large > gooups say for example when Order(G)=1792, and Order(H)=64, it > perform computations for many hours but it quits gap session > automatically leaving the executation incomplete, and displays > following message that I'm unable to understand: > 0 [main] gapw95 1116 handle_exceptions: Exception: > STATUS_ACCESS_VIOLATION > > 1062 [main] gapw95 1116 stackdump: Dumping stack trace to > gapw95.exe.stackdump > I can't understand how to resolve this problem > > Regards > > Rashid Ali I have seen that you got some reply dealing with problems possibly stemming from using Windows rather than Unix. However for me the main problem is that I do not understand the mathematical problem that you are dealing with. What are 'Self Connected' and 'H-Connected' transversals of a subgroup of a finite group? These terms are not standard, I have never heard them. Could you provide definitions of these terms, give references to papers where they are used, and could you tell for which groups and which subgroups you want to do the computation? Only then there is a chance that we may be able to really give you some advice. With kind regards Joachim Neubueser ---------------------------------------------------------------------- Prof. em. J. Neubueser Lehrstuhl D fuer Mathematik RWTH Aachen Germany From drkrause at mindspring.com Thu Jun 3 00:20:36 2004 From: drkrause at mindspring.com (Drew Krause) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Lyndon words in GAP Message-ID: <40BE60C4.80100@mindspring.com> Hello, I'd be interested to see if anyone has done work with generating (not necessarily enumerating) Lyndon Words using GAP. I'm attempting it myself -- any pointers? Drew Krause From gordon at csse.uwa.edu.au Thu Jun 3 02:41:25 2004 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Lyndon words in GAP In-Reply-To: <40BE60C4.80100@mindspring.com> References: <40BE60C4.80100@mindspring.com> Message-ID: <1086226885.20359.7.camel@ekaltadeta> The FKM algorithm is very easy to implement, and one can extract the Lyndon words from the output. I gave it to my students as an assignment question so could give you up to 8 different programs to do it. However these are not trying to be super-efficient, but just implementing the algorithm using GAP lists to represent the words.. Proceed as follows to generate length n Lyndon words over an alphabet of k symbols (0,1,... k-1). Start with w = [0,0,...,0] Find the largest index i such that w[i] < k-1 Increase w[i] by 1, and then replace the remainder of the list (w[i+1] ..w[n]) by as many copies of w[1]...w[i] as will fit. Then - if i = n, the word is a Lyndon word, - if i | n, the word is a periodic necklace, - otherwise the word is a pre-necklace (prefix of some longer necklace). Then repeat. If you wanted huge lists of Lyndon words for some purpose, then I am sure that there are more efficient ways, but this is good if you just want a few thousand.. On Thu, 2004-06-03 at 07:20, Drew Krause wrote: > Hello, I'd be interested to see if anyone has done work with generating > (not necessarily enumerating) Lyndon Words using GAP. I'm attempting it > myself -- any pointers? From costanti at science.unitn.it Thu Jun 3 07:22:17 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Lyndon words in GAP In-Reply-To: <40BE60C4.80100@mindspring.com> References: <40BE60C4.80100@mindspring.com> Message-ID: <1086243737.40bec3999a2d9@www.unitn.it> Dear Drew Krause and Gap-forum, have a look at the file lib/alglie.gi in the Gap distribution. Maybe you will find something useful for you. Best regards, Marco Costantini > Hello, I'd be interested to see if anyone has done work with generating > (not necessarily enumerating) Lyndon Words using GAP. I'm attempting it > myself -- any pointers? From sjp at maths.gla.ac.uk Mon Jun 7 09:05:22 2004 From: sjp at maths.gla.ac.uk (sjp@maths.gla.ac.uk) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] ALAN TURING Message-ID: <1086595522.40c421c267e2c@mail.maths.gla.ac.uk> ALAN TURING Today, June 7th, is the 50th anniversary of Alan Turing's death. There was a memorial conference in Manchester last Sat (5th June), http://www.maths.man.ac.uk/logic/turing2004/ and today a plaque will be unveiled at his home in Wilmslow near Manchester. You can listen to the song "Alan Mathison Turing" written a couple of years ago (in Lisbon) at http://www.diskiamusic.com/turing (You will need RealPlayer.) Steve Pride ----- End forwarded message ----- ----- End forwarded message ----- ----- End forwarded message ----- From Colva at dcs.st-and.ac.uk Tue Jun 15 10:25:29 2004 From: Colva at dcs.st-and.ac.uk (Colva@dcs.st-and.ac.uk) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] missing primitive group Message-ID: <20040615092529.GA4766@jordan.mcs.st-and.ac.uk> Dear all There is a missing cohort of primitive groups in Gap's database. This is a degree 574 action of PSL(2, 41) on the cosets of A_5. It has rank 16, and its full normaliser in Sym(574) is PSL(2, 41): the cohort therefore consists of a single group. This group will be added to the database with the next bugfix. Best wishes Colva Roney-Dougal From holmespe at for.mat.bham.ac.uk Tue Jun 15 12:48:07 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] a graph question Message-ID: Dear GAP forum, I have a graph on about 25000 points. I would like to find the size of a maximal set of pairwise non-adjacent points. Is there a way to do this in GAP? Thanks, Beth Holmes From dima at thi.informatik.uni-frankfurt.de Wed Jun 16 00:37:31 2004 From: dima at thi.informatik.uni-frankfurt.de (Dmitrii Pasechnik) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] a graph question In-Reply-To: References: Message-ID: <20040615233731.GA17366@thi21.thi.informatik.uni-frankfurt.de> Dear GAP forum, On Tue, Jun 15, 2004 at 12:48:07PM +0100, Petra Holmes wrote: > I have a graph on about 25000 points. I would like to find the size of a > maximal set of pairwise non-adjacent points. Is there a way to do this in > GAP? > that's an NP-hard problem, moreover, a one that is hard to approximate. Unless the graph is very dence, you might be seriously out of luck, no matter what software you're using. You might have to combine information about co-cliques you know with upper bounds on their size, such as one can obtain from the information on the graph spectrum, etc... HTH, Dmitrii From sal at dcs.st-and.ac.uk Wed Jun 16 13:31:26 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] a graph question In-Reply-To: <20040615233731.GA17366@thi21.thi.informatik.uni-frankfurt.de> References: <20040615233731.GA17366@thi21.thi.informatik.uni-frankfurt.de> Message-ID: <20040616133126.135a08ad@caolila.dcs.st-and.ac.uk> Dear GAP Forum > > On Tue, Jun 15, 2004 at 12:48:07PM +0100, Petra Holmes wrote: > > I have a graph on about 25000 points. I would like to find the size of a > > maximal set of pairwise non-adjacent points. Is there a way to do this in > > GAP? > > On Wed, 16 Jun 2004 01:37:31 +0200, Dmitrii Pasechnik wrote: > that's an NP-hard problem, moreover, a > one that is hard to approximate. Unless the graph is very dence, you might be > seriously out of luck, no matter what software you're using. > > You might have to combine information about co-cliques you know > with upper bounds on their size, such as one can obtain from > the information on the graph spectrum, etc... > Dima is correct, of course, that this is a very hard problem in general. It is, however, also worth mentioning the facilities of Len Soicher's GRAPE package, which include a function CompleteSubgraphs, which (up to taking the complement of your graph) does what you want. The effectiveness of the GRAPE function (and indeed of the whole of GRAPE) depends greatly on whether you know or can find a sizable subgroup of the automorphism group of your graph. While 25000 is pretty large, you might be able to get somewhere if there is a big group acting. See the GRAPE manual for details. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From l.h.soicher at qmul.ac.uk Wed Jun 16 16:25:21 2004 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] a graph question Message-ID: <200406161525.QAA15557@dirac.maths.qmw.ac.uk> Dear Petra, Dear GAP Forum, >> >> On Tue, Jun 15, 2004 at 12:48:07PM +0100, Petra Holmes wrote: >> > I have a graph on about 25000 points. I would like to find the size of a >> > maximal set of pairwise non-adjacent points. Is there a way to do this in >> > GAP? >> > First, let's take the complement gamma of your graph, so what we are looking for is a certain complete subgraph. As Steve Linton said, the GAP Package GRAPE has functions to determine certain sets of complete subgraphs of a (possibly vertex-weighted) graph, subject to user specified parameters. See the documentation for the GRAPE functions CompleteSubgraphs and CompleteSubgraphsOfGivenSize. Now if what you really want is a maximal complete subgraph (i.e. one which is not properly contained in a larger complete subgraph of gamma) then this is easy: just call CompleteSubgraphs(gamma,-1,0) . However, I suspect you are interested in the much harder problem of finding the maximum size of a complete subgraph of gamma. Here, CompleteSubgraphsOfGiven may help. As Steve said, this depends very much on the graph gamma and a known subgroup of its automorphism group (it may be possible to compute Aut(gamma) via GRAPE and nauty). Then (after constructing gamma in GRAPE using the known subgroup of Aut(gamma)) the call CompleteSubgraphsOfGivenSize(gamma,k,0,true) can be used to determine whether gamma contains a maximal complete subgraph of size k. So what you want to find is the largest k for which this is true. I would be very happy to give you further advice (outside of the Forum) if you send me details about your graph. Best wishes, Leonard From sal at dcs.st-and.ac.uk Fri Jun 18 11:15:12 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Refereed Package SONATA Message-ID: <20040618111512.20db6593@caolila.dcs.st-and.ac.uk> Dear GAP Forum, The SONATA package for "systems of nearrings and their applications" was accepted through the package refereeing process in 2003, but its release was delayed for technical reasons until the release of GAP 4.4 a few months ago, and as responsible editor, I am afraid I qforgot to send the customary message announcing its acceptance and release at that time. So, I can now belatedly, but with great pleasure, announce that the SONATA package, by Erhard Aichinger, Franz Binder, Juergen Ecker, Peter Mayr and Christof Noebauer has been accepted as a refereed GAP package and is available for download from the GAP Web, and FTP sites, or from the authors Web page at http://www.algebra.uni-linz.ac.at/Sonata/. Note however, that anyone who has downloaded any GAP 4.4 package archive, already has the latest version of SONATA. The following brief description of the functionality of the package is taken from the authors' Web page. SONATA stands for "systems of nearrings and their applications". It provides methods for the construction and the analysis of finite nearrings. A left nearring is an algebra (N;+,*), where (N,+) is a (not necessarily abelian) group, (N,*) is a semigroup, and x*(y+z) = x*y + x*z holds for all x,y,z in N. As a typical example of a nearring, we may consider the set of all mappings from a group G into G, where the addition is the pointwise addition of mappings in G, and the multiplication is composition of functions. If functions are written on the right of their arguments, then the left distributive law holds, while the right distributive law is not satisfied for non-trivial G. The SONATA package provides methods for the construction and analysis of finite nearrings. 1. Methods for constructing all endomorphisms and all fixed-point-free automorphisms of a given group. 2. Methods for constructing the following nearrings of functions on a group G: * the nearring of polynomial functions of G (in the sense of Lausch-N?bauer); * the nearring of compatible functions of G; * distributively generated nearrings such as I(G), A(G), E(G); * centralizer nearrings. 3. A library of all small nearrings (up to order 15) and all small nearrings with identity (up to order 31). 4. Functions to obtain solvable fixed-point-free automorphism groups on abelian groups, nearfields, planar nearrings, as well as designs from those. 5. Various functions to study the structure (size, ideals, N-groups, ...) of nearrings, to determine properties of nearring elements, and to decide whether two nearrings are isomorphic. 6. If the package XGAP is installed, the lattices of one- and two-sided ideals of a nearring can be studied interactively using a graphical representation. I apologise again for the delay in this announcement, Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From marcus at math.uic.edu Fri Jun 18 17:07:18 2004 From: marcus at math.uic.edu (marcus@math.uic.edu) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] generic character tables Message-ID: <20040618160718.GA22075@math.uic.edu> I need to produce generic character tables, that is, character tables for linear groups over a field of size $q$, where I actually want to use the symbol $q$ in place of some number. CHEVIE apparently does this, but it seems to require version 5 of Maple, which I can't find anywhere. My network administrator has version 6. Will this work? Otherwise, does anyone know how I might do this? -marcus -- "Live free() or die()" -The openMosix HOWTO From allomber at math.u-bordeaux.fr Fri Jun 18 17:47:16 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Debian packages for GAP 4r4p3 available Message-ID: <20040618164716.GW9620@seventeen> Dear GAP Forum, I have updated the GAP Debian packages to GAP 4r4p3. Packages for the distributions testing(sarge) and unstable(sid) are available from Debian mirrors since one month already. Packages for woody(stable) are available since today, use the sources.list below: deb http://people.debian.org/~ballombe/gap woody main deb-src http://people.debian.org/~ballombe/gap woody main The set of package available is: o The whole GAP system base (Debian packages gap, gap-core, gap-dev, gap-doc, gap-libs, gap-online-help) o The full group library (gap-prim-groups, gap-small-groups, gap-small-groups-extra, gap-trans-groups) o The character tables library (gap-character-tables) o The table of mark library (but not tomlib-xtra) (gap-table-of-marks) gap is a dummy package that depend on the main GAP components, so just installing gap lead to an usable GAP system. This package include a script (update-gap-workspace) to manage workspace. See man update-gap-workspace' for more information. Please report any success or problems to me (ballombe@debian.org). Cheers, -- Bill From costanti at science.unitn.it Sun Jun 20 13:27:00 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] generic character tables In-Reply-To: <20040618160718.GA22075@math.uic.edu> References: <20040618160718.GA22075@math.uic.edu> Message-ID: <1087734420.40d5829460917@www.unitn.it> Dear Marcus and dear gap-forum, Scrive marcus@math.uic.edu: > CHEVIE apparently does > this, but it seems > to require version 5 > of Maple, which I can't > find anywhere. Maple 5 is available at the Medicis computing center; see http://www.medicis.polytechnique.fr/ and http://www.stix.polytechnique.fr/medicis/ri.html They give account for free to do research, and they have both Gap (versions 4.1, 4.2, 4.3, 4.4) and Maple (versions 5.4, 5.5, 6, 7, 8, 9). I don't know whether they have Gap3 installed. > My network administrator > has version 6. Will > this work? My suggestion (this is a general suggestion for "Will this work?", and not specific to your problem) is to try and to find out. If it works, you can send a report to the CHEVIE authors, so that they can update the documentation. If it doesn't work, you can try to fix it by yourself, and then you can send the fix to the CHEVIE authors. If you can not fix it by yourself, you can send a detailed bug report (see http://www.chiark.greenend.org.uk/~sgtatham/bugs.html ) so that the CHEVIE authors can fix it. Greetings, Marco Costantini From frank.luebeck at math.rwth-aachen.de Wed Jun 23 10:41:57 2004 From: frank.luebeck at math.rwth-aachen.de (Frank Luebeck) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] generic character tables In-Reply-To: <20040618160718.GA22075@math.uic.edu> Message-ID: On Fri, 18 Jun 2004 marcus@math.uic.edu wrote: > I need to produce > generic character > tables, that is, > character tables > for linear groups > over a field of size > $q$, where I actually > want to use the symbol > $q$ in place of some > number. > > CHEVIE apparently does > this, but it seems > to require version 5 > of Maple, which I can't > find anywhere. > My network administrator > has version 6. Will > this work? > > Otherwise, does anyone > know how I might do this? Dear Marcus, dear Gap Forum, It happens that very recently another user has translated the Maple code of the CHEVIE package to work with Maple 8. After some tests I have put that version on the web page: http://www.math.rwth-aachen.de/~CHEVIE In fact that version seems to work with Maple 7, 8 or 9. Unfortunately it doesn't work with Maple 6 for reasons I don't understand. I hope you find a way to use either the Maple V.3 or the new variant of the package. Don't hesitate to contact me if you need further help concerning generic character tables. (But probably not via the GAP Forum, since this part of the CHEVIE package is not GAP related.) With best regards, Frank L?beck /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From nickel at mathematik.tu-darmstadt.de Thu Jun 24 09:37:20 2004 From: nickel at mathematik.tu-darmstadt.de (nickel@mathematik.tu-darmstadt.de) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] (no subject) Message-ID: <200406240853.i5O8rLhP016235@iona.dcs.st-and.ac.uk> From iqbox_postech at yahoo.com Sat Jun 26 17:29:18 2004 From: iqbox_postech at yahoo.com (Kang ByoungKwan) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Question about Representation of Permutation group's elements Message-ID: <20040626162918.53062.qmail@web50004.mail.yahoo.com> I am a beginner of GAP. I don't search the representation of permutation group's elements from website. If I want to calculate some math problems related to all elements of permutation group, how can I represent the elements of permutation group in GAP? For example, there are S_5. I want to computing some equation related to group elements. How can I take all elements of S_5 in GAP for using computing ? Thank you for your reading and help Best Regards --------------------------------- Do you Yahoo!? New and Improved Yahoo! Mail - Send 10MB messages! From holmespe at for.mat.bham.ac.uk Sat Jun 26 21:39:35 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Question about Representation of Permutation group's elements In-Reply-To: <20040626162918.53062.qmail@web50004.mail.yahoo.com> Message-ID: Try G:=SymmetricGroup(5); Then you can get all the elements in a list with the command Elements(G); Or you can get a pair of generators with GeneratorsOfGroup(G); Beth On Sat, 26 Jun 2004, Kang ByoungKwan wrote: > I am a beginner of GAP. > I don't search the representation of permutation group's elements from website. > > If I want to calculate some math problems related to all elements of permutation group, > how can I represent the elements of permutation group in GAP? > > For example, there are S_5. I want to computing some equation related to group elements. How can I take all elements of S_5 in GAP for using computing ? > > Thank you for your reading and help > > Best Regards > > > > > --------------------------------- > Do you Yahoo!? > New and Improved Yahoo! Mail - Send 10MB messages! > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From costanti at science.unitn.it Sun Jun 27 17:51:43 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Question about Representation of Permutation group's elements In-Reply-To: <20040626162918.53062.qmail@web50004.mail.yahoo.com> References: <20040626162918.53062.qmail@web50004.mail.yahoo.com> Message-ID: <1088355103.40defb1ff0968@www.unitn.it> Dear Kang ByoungKwan, > I am a beginner of GAP. Welcome! > If I want to calculate some math problems related to all elements of > permutation group, > how can I represent the elements of permutation group in GAP? A permutation is represented like (1,3,4,2,5) The group generated by (1,2,3) and (1,4,5) is represented by Group( (1,2,3), (1,4,5) ) (remember ';' at the end of the command) > For example, there are S_5. I want to computing some equation related to > group elements. How can I take all elements of S_5 in GAP for using > computing ? See the help giving the command ?Basic Groups In general, it may be not efficient to list all the elements of a Group. It may be better to look at the conjugacy classes: try ConjugacyClasses( SymmetricGroup( 5 ) ); All the best, Marco Costantini From potter at southwestern.edu Sun Jun 27 20:14:48 2004 From: potter at southwestern.edu (potter@southwestern.edu) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Example Programs Message-ID: <1088363688.40df1ca82a529@webmail.southwestern.edu> Folks, Is there a collection of programs online that one can look at for examples of good programming style in Gap? Thanks, Walt ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From costanti at science.unitn.it Mon Jun 28 10:52:15 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Example Programs In-Reply-To: <1088363688.40df1ca82a529@webmail.southwestern.edu> References: <1088363688.40df1ca82a529@webmail.southwestern.edu> Message-ID: <1088416335.40dfea4f7f308@www.unitn.it> Dear Walt, > Is there a collection of programs online that one can look at for > examples of > good programming style in Gap? Try the 'lib' directory of your Gap distribution, and the page http://www.gap-system.org/Info/examples.html Best regards, Marco Costantini From igor at txc.com Mon Jun 28 18:54:37 2004 From: igor at txc.com (Igor Schein) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name Message-ID: <20040628175437.GE24881@txc.com> Dear forum, I am struggling to find the way to retrieve canonical group names in GAP4 ( I've done it once in GAP3 ). Basically, I need a function which will output "Q8" if the input is SmallGroup(8,4), for example. Thanks Igor From allomber at math.u-bordeaux.fr Mon Jun 28 20:14:37 2004 From: allomber at math.u-bordeaux.fr (Bill Allombert) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name In-Reply-To: <20040628175437.GE24881@txc.com> References: <20040628175437.GE24881@txc.com> Message-ID: <20040628191437.GQ9620@seventeen> On Mon, Jun 28, 2004 at 01:54:37PM -0400, Igor Schein wrote: > Dear forum, > > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. I have made a backport of GAP3 group names to GAP4 if no one proposes a better solution. Be aware that as far as I understand, there are really no canonical group names. Cheers, Bill. From costanti at science.unitn.it Tue Jun 29 13:52:50 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name In-Reply-To: <20040628175437.GE24881@txc.com> References: <20040628175437.GE24881@txc.com> Message-ID: <1088513570.40e166228fd1b@www.unitn.it> Dear Igor and dear gap-forum, > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. Try IdGroup. As far as I know, "most" of the groups have no canonical name. Maybe, if you are interested in a particular class of groups, something could be arranged. Let us know. Let us also know in which way do you want to use the strings like "Q8", and maybe we could suggest you something else for your problem. Best regards, Marco Costantini From kohl at mathematik.uni-stuttgart.de Tue Jun 29 15:25:43 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name References: <20040628175437.GE24881@txc.com> Message-ID: <40E17BE7.68E8D6CB@mathematik.uni-stuttgart.de> Dear Forum, Igor Schein wrote: > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. Currently there is no function which returns a canonical name for a given group, but you can get information about the isomorphism types of the groups of a given order by the function 'SmallGroupsInformation', e.g. ---------------------------------------------------------------------- gap> SmallGroupsInformation(8); There are 5 groups of order 8. 1 is of type c8. 2 is of type 2x4. 3 is of type D8. 4 is of type Q8. 5 is of type 2^3. The groups whose order factorises in at most 3 primes have been classified by O. Hoelder. This classification is used in the SmallGroups library. This size belongs to layer 1 of the SmallGroups library. IdSmallGroup is available for this size. ---------------------------------------------------------------------- For example the line 4 is of type Q8.' tells you that SmallGroup(8,4) is the quaternion group of order 8. However there are no canonical names for larger groups -- thus for these, the function SmallGroupsInformation' provides only partial information -- e.g. ---------------------------------------------------------------------- gap> SmallGroupsInformation(64); There are 267 groups of order 64. They are sorted by their ranks. 1 is cyclic. 2 - 54 have rank 2. 55 - 191 have rank 3. 192 - 259 have rank 4. 260 - 266 have rank 5. 267 is elementary abelian. For the selection functions the values of the following attributes are precomputed and stored: IsAbelian, PClassPGroup, RankPGroup, FrattinifactorSize and FrattinifactorId. This size belongs to layer 2 of the SmallGroups library. IdSmallGroup is available for this size. ---------------------------------------------------------------------- Note in this context that distinguishing groups of orders with many' equal prime factors is often quite difficult, and that one would need a very elaborate and complicate naming scheme for them if one would like to have descriptive names. Best wishes, Stefan Kohl From eckert at math.wayne.edu Wed Jun 30 15:47:01 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name In-Reply-To: <40E17BE7.68E8D6CB@mathematik.uni-stuttgart.de> References: <20040628175437.GE24881@txc.com> <40E17BE7.68E8D6CB@mathematik.uni-stuttgart.de> Message-ID: On Tue, 29 Jun 2004, Stefan Kohl wrote: > Igor Schein wrote: > > > I am struggling to find the way to retrieve canonical group names ... > However there are no canonical names for larger groups -- > ...Note in this context that distinguishing groups of orders with > many' equal prime factors is often quite difficult, and that one > would need a very elaborate and complicate naming scheme for them > if one would like to have descriptive names. This is probably more than you want to know, but... For some time I have worked on what a "canonical" naming scheme for a Classification of Finite *non*Simple Groups would have to look like. This is the language I use: an *alphabet* for a group G is a nested inclusion of subgroups {1} = H_0 in H_1 in H_2 ... in H_n = G, with right coset transversals T_i, 1<=i<=n so that H_i = H_i-1 T_i. Each group element can thus be written "Chinese restaurant menu" style (one from column A, one from column B...) as t_1 t_2 ... t_n and calculations performed if the *combing* rules for rewriting t' t where t' in T_j but t in T_i, i h_a as the *action* of t_1 on H; t_1 *acts trivially* if alpha(t_1) is the identity map, and *alpha is trivial* if all T acts trivially. Define beta(h_2) : t_1 -> t_b as the *back-action* of h_2 on T; h_2 *reacts trivially* if beta(h_2) is the identity map, and *beta is trivial* if all H reacts trivially. Define gamma(t_b, t_2) = h_c as the *carry* T x T -> H; *gamma is trivial* if this is always the identity element. For any t in T let t-bar be the coset representative of t^-1, then gamma(t, t-bar) is the *internal carry* of t. Define pi(t_b, t_2) = t_p as the *factor product* in T, not the same as the group product in G if gamma non-trivial, and not even associative if Image(gamma) reacts non-trivially. At a minimum this product has an identity (the coset representative of H itself, for which there can be no reason to choose anything except the identity element of G) and inverses (although in perverse cases of non-associativity, the left-side and right-side inverts might not be the same). H is normal iff beta trivial. T is a subgroup of G iff gamma trivial. T is self-conjugate (normal, if also a subgroup) iff alpha trivial. In coding the types of decomposition, I assign a weight of "4" to non-trivial beta, "2" to non-trivial alpha, "1" to non-trivial gamma: Type 0 (alpha, beta, gamma all trivial): "direct product" +. H and T are both normal subgroups, operating independently. Type 1 (only gamma non-trivial): "ordinary product" *, taking a subscript to mark the particular choice of gamma map if more than one is possible. The pi product makes T into the quotient group; the order of its elements under pi has to be multiplied by the order of their internal carries to find the order in G. For example, Z_4 = Z_2 * Z_2, meaning that 01 01 = 10, not 01 01 = 00 as in Z_2 + Z_2. This is a seriously understudied case, given how common it is, driving the proliferation of subtly distinguishable p-groups. The quaternions Q_8 = Z_2 * (Z_2 + Z_2) is an instructive example. Write the elements of the first Z_2 (left of the asterisk) as "+" and "-", of the second as blank and "i", of the third as blank and "j"; the carry-map is: i i = - (internal to i) j j = - (internal to j) j i = - i j (*induced* carry) This is what the "undecorated" Z_2 * (Z_2 + Z_2) ought to be reserved for. Other non-trivial carry maps are possible: but if there is no induced carry, the group is the rectangular abelian, better written as Z_4 + Z_2 = (Z_2 * Z_2) + Z_2; while if j induces a carry when passing i but does not carry internally, then j acts by inversion on the cyclic-4 generated by i and this is D_8 better written Z_4 X| Z_2. The quaternions are *completely ordinary*, with the carry-map non-trivial in every case where it can be-consistent with the requirements of associativity, which force some carries trivial. For example, in Z_2 * (Z_4 + Z_2) = Z_2 * ((Z_2 * Z_2) + Z_2), calling the generator of the cyclic-4 in the right factor "i" (it is order-8 in the full G), then if j induces carry j i = - i j we must have j i^2 = (- i j) i = + i^2 j so j cannot induce carry on the high-order bit. Type 2 (only alpha non-trivial): "semidirect product" X| with superscript for choice of alpha if necessary. H normal, T a subgroup acting homomorphically on H. In many cases, isomorphic subgroups of Aut(H) will act to give non-isomorphic semidirect products. To decide which of these the "undecorated" semidirect product "ought" to stand for, is a difficult part of this project. For example, there are Z_8 X|^7 Z_2, Z_8 X|^5 Z_2, and Z_8 X|^3 Z_2 using actions that send the generator of the cyclic-8 to its 7th, 5th, or 3rd power, with distinct groups resulting. The action ^7 is most "kindly": a "kind" of group is a parameterized series, with relations definable by some template, as g^n = id defines the cyclic kind Z_n, and r^n = t^2 = (tr)^2 = id defines the dihedral kind D_2n; a decomposition D_2n = Z_n X| Z_2 exists for all in this kind. So the others should be named some different way: Z_8 X|^5 Z_2 = Z_2 * (Z_4 + Z_2) and Z_8 X|^3 Z_2 = Q_8 X| Z_2. This is typical if H has a center: unless the center is elementary, some central subgroup must be fixed by the action, and can be pulled out as an ordinary-product left-factor; if this is not completely ordinary, there will be some rearrangement. If there is no center, H typically has a lot of inner automorphisms, and if T contains any inner actions these can be removed as a direct-product factor; Out(H) is generally quite small. If the action is free on an elementary center, it is tightly constrained, but there is often an ambiguity between a *wreathlike* and non-wreath actions: when H is further decomposed into H_L and H_R (left, right factors), the action of T on H_R may involve a non-trivial H_L component, a *carry-back*, and more troublesomely for calculations, the action of T on H_L may involve a non-trivial *carry-up* to H_R, which defines a wreathlike action. I use S for "swap", or integral-sign when available, to distinguish (Z_3 + Z_3) S Z_2, acting by 01 <-> 10, from (Z_3 + Z_3) X| Z_2, acting by 11 <-> 22. Type 3 (alpha and gamma non-trivial): "indirect product" *|, perhaps needing both subscript and superscript. Usually this can be *rectified* with a better choice of T to trivialize one or both maps. This is the smallest example of an unrectifiably indirect decomposition: A_6 *| Z_2 indicates an order-FOUR (at least) automorphism (the order in the right factor must be multiplied by the order of its carry) whose square is inner to A_6; now this could be: "even inner", like conjugation by (1 2 3 4)(5 6); but this is isomorphic to A_6 + Z_2 mapping (sigma, z) where z is the non-trivial element of T to (sigma times (1 2 3 4)(5 6), z') where z' now acts trivially and does not carry. "odd inner" (inner to S_6, though outer to A_6), like conjugation by (1 2 3 4); but this can be rectified in the same way, now z' acts by conjugation by (5 6) which is the "kindly" action like all other cases of A_n X| Z_2 = S_n. "even outer", an outer automorphism of S_6 which respects the two 5-cycle conjugacy subclasses in A_6; but some of these are involutions, so this rectifies to an A_6 X| Z_2 with unkindly (very unique) action. "odd outer", from Out(S_6) but swapping the 5-cycle conjugacy subclasses; none of these are involutions, so this is an indirect product and cannot be made "prettier". An infinite-group example: F(Q) is the group of "field operations" (additions, multiplications and their compositions) over the rationals, decomposing as F(Q) = Add(Q) X| Mult(Q) but Mult(Q) has a subgroup Mult^2(Q) restricted to multiplications by perfect squares, yielding F^2(Q) = Add(Q) X| Mult^2(Q). F^2(Q) is normal in F(Q) so: F(Q) = F^2(Q) *| E_2^infinity where the right factor is an elementary-2 group of infinite dimension (one for each prime), acting non-trivially on the additives and carrying into the multiplicatives. Type 4 (only beta non-trivial): "reverse semidirect product" |X. This time T is normal, and H |X T = T X| H. The notational distinction can be used to write Z_2 |X A_6 for the "unkindly" action of an even-outer automorphism; this is a waste-basket case I use for ambiguous semidirects I have no better way to mark. Type 5 (beta and gamma non-trivial): "abnormal product" ~. In every case without exception, HT has a normal subgroup but neither H (not normal) nor T (self-conjugate but not a subgroup) is it: if Image(gamma) non-trivially intersects any conjugate, it shares that intersection with all conjugates and this is normal; if its conjugates are a trivial-intersection set, the complement (plus the identity) is a normal subgroup. Thus this product should never be used at all. But in defining a "canonical" decomposition for each group, the possible series of refinements to atomic are ranked in a *lexical* order by the Type codes at each step, so that for example pulling out a Type 0 direct-product factor as the first step is always favored when possible: Z_6 could be written Z_2 * Z_3 but Z_2 + Z_3 is objectively better (if the group-elements are being stored in a computer, "better" means "fewer calculational steps"). Now, this lexical ordering is modified by reassigning some decompositions whose maps indicate a different Type to Type 5 "abnormal": an ordinary product which is incompletely ordinary has *abnormal carry*; a semidirect or indirect product which my (yet to be rigorously defined) rules single out as "unkindly" has *abnormal action*; in either of these cases, Type 5 has the effect of disfavoring this route of decomposition over any other that uses a normal subgroup as a factor (but for exploring subgroup structure, knowing of the existence of non-canonical decompositions like D_8 = Z_2 *~ (Z_2 + Z_2) is helpful). However, if the group is simple so that only Type 6 or 7 decompositions are possible, assigning Type 5 *standard abnormal* (naturally, every decomposition of a simple group is "abnormal") has the effect of singling it out as favored. Type 6 (alpha and beta non-trivial): "set product", no symbol but concatenation. Both H and T are subgroups, but neither is normal, and neither of the actions is homomorphic. For example, A_5 = A_4 Z_5: multiply any sigma in A_5 by whatever power of the 5-cycle returns number 5 back home; then sigma is the product of the residual A_4 element and the inverse power of the 5-cycle; this works for any odd-numbered alternating group. Among the evens, but A_6 = D_10 F^2(9) representing F^2(9) (additives by square-multiplicatives in GF(9), order-36) by <(1 2 3), (4 5 6), (1 4)(2 5 3 6)>. Few simple groups have a set-product decomposition: an important result is that PSL(2,q) has a set product iff q = 4, 5, 7, 9, or 11. Type 7 (all non-trivial): "pseudo-product", sometimes I mark as psi, but usually I only deal with the standard abnormal marked ~. Here T is not even a factor-group, but only a *pseudo-group* (not like a semigroup, which has associativity but not invertibility; a pseudo-group has invertibility but not associativity). For PSL(2,F) over any (finite or infinite) field, acting on the projective field F U {infinity}, define Add(a) : x -> x+a, fixing infinity (a in F; Add(0) = id; Add(infinity) not defined) Mult(m) : x -> xm, fixing infinity and 0 (m square; Mult(1) = id; Mult(0), Mult(infinity) not defined) Twist(t) : x <-> t + (t-x)^-1, x <-> infinity (t in F; Twist(infinity) another synonym for id) PSL(2,F) = (Add(F) X| Mult^2(F)) ~ Twist(F) writing every element as a product Add(a) Mult(m) Twist(t), for finite fields this gives q times either q-1 or (q-1)/2 times q+1 choices. In the representation on the 2-dimensional vectors, Add(a) is the matrix [1 a] [0 1], Mult(m) is [m^(-1/2) 0] [0 m^(1/2)], Twist(0) is [0 -1] [1 0] with all other (non-trivial) Twist(t) obtainable as the conjugates of Twist(0) by Add(t). The group product rules are all obtainable from: Add(a) Add(b) = Add(a+b) Mult(m) Mult(n) = Mult(mn) Add(a) Mult(m) = Mult(m) Add(am) Twist(t)^2 = id (all are their own inverses) Twist(t) Add(a) = Add(a) Twist(t+a) (alpha trivial on the additives) Twist(0) Mult(m) = Mult(m^-1) Twist(0) (alpha by inversion on the multiplicatives; but there is induced carry from Twist(t) if t nonzero) [Add(1) Twist(0)]^3 = id (a somewhat difficult induced-carry map results) This presentation helps to clarify the conjugacy classes (everything can be conjugated to the form Add(chi) Twist(0) where chi is the character) and other calculational exercises. Similarly in PSL(3,q) the pseudo-group contains 1 (the identity) plus q (Twists all conjugates of each other by an additive subgroup) plus q^2 (Twists conjugated by the product of additive subgroups in the same column per the matrix representation). This kind of rectified pseudo-product (rectified in the sense that many T-elements are made conjugates by some subgroup so that alpha is trivialized "by decree" to that extent) is defined as *diagrammatic* (for all Chevalley groups, whether classical, exceptional, or twisted, the pseudo-group factors have a roughly similar structure). It can be proven without any assumptions about the internal structure of a finite simple group that it has a standard-abnormal rectified pseudo-product sharing at least some of the diagrammatic properties; those that are not quite diagrammatic are lumped as *alternative* (the alternating and sporadic groups have these). The standard-abnormal decomposition defines a relationship to a smaller simple group, the *simple core* (for PSL(2,q) this would only be a prime-cyclic; for larger diagrammatics, a group whose diagram has one fewer node). The larger simple group is then viewed as a *diagrammatic extension* or *alternative extension* of the simple core. The "grail" of this project then is a more streamlined proof to the Classification Theorem for Finite Simple Groups, with a big lemma to the effect "a simple core can only support an alternative extension if it itself has a decomposition of set-product or alternative type". The alternating groups have alternative extensions, each to the next-higher A_n+1; only a couple other small cases, the order-168 and order-660 groups, have escapes out of the diagrammatic superfamily, into the Mathieu and Janko groups, which continue to spawn alternative extensions up to where all paths merge into the Baby Monster, which has one more alternative extension to the Monster, which has no finite alternative extension (I believe there is a horrid infinite simple group, the "Affine Monster", which I see through a glass darkly). From l.h.soicher at qmul.ac.uk Wed Jun 30 18:23:03 2004 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Release of Design 1.1 Package for GAP 4.4 Message-ID: <20040630182303.A19400@cantor.maths.qmw.ac.uk> Dear All, I am pleased to announce the release of the DESIGN 1.1 package for GAP 4.4. The DESIGN package is for generating, classifying and studying block designs. You can download the package from http://designtheory.org/software/gap_design/ where you will also find HTML and PDF documentation, which include installation instructions. Regards, Leonard Soicher %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Main changes from DESIGN 1.0 to DESIGN 1.1 ------------------------------------------ (1) Made compatible with GAP 4.4 and its package loading mechanism. DESIGN 1.1 works only with GAP 4.4/GRAPE 4.2/GAPDoc 0.9999. (2) Upgraded XML I/O to DTRS protocol 2.0. (3) BlockDesignsToXMLFile has additional parameters to allow more user control over expansion, output, and design id's. The default now is for minimal expansion and writing out, which is a *change* from DESIGN 1.0. (4) Added functions: BlockDesignIsomorphismClassRepresentatives, DualBlockDesign, ComplementBlocksBlockDesign. (5) Function names made read-only. (6) Some utility functionality moved to GRAPE 4.2. (7) Added files README and gpl.txt. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% From eckert at math.wayne.edu Thu Jul 1 16:55:49 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name (fwd) Message-ID: ---------- Forwarded message ---------- Date: Thu, 1 Jul 2004 01:25:40 -0400 (EDT) From: Robert Eckert To: Stefan Kohl Cc: GAP Support Subject: Re: [GAP Forum] Retrieving group name On Wed, 30 Jun 2004, Stefan Kohl wrote: > Robert Eckert wrote: > > > This is probably more than you want to know, but... > > For some time I have worked on what a "canonical" naming scheme for a > > Classification of Finite *non*Simple Groups would have to look like. > > [ ... ] > > This looks like a larger project -- > > Some questions however (maybe the answers are somewhere hidden in your text): > > 1. Is there a bijection between your names and the isomorphism types > of finite groups? That's the plan, at least: a symbol-string should stand for either an impossibility (there exists Z_3 X| Z_2 = D_6 = S_3 but no Z_2 X| Z_3) or a group determined up to isomorphism; and each group (finite at least: infinites have "self-similar" decompositions like Z = Z * Z_2 or "free product" decompositions and maybe phenomena for which this whole language is not suitable) should have a unique "canonical" symbol-string naming. Problems divide into "ambiguities" (same symbol string for non-isomorphic groups, from two series of refinements of the same Type at each step down to the same atomics but with alpha/gamma choices that cause different effects) and the much less serious "ambivalencies" (as between Z_6 = Z_2 + Z_3, Z_6 = Z_3 + Z_2, who really cares? any arbitrary tie-breaker rule will do). Ambiguities about the choice of gamma I know how to deal with; ambiguous semidirect products are more confusing and this remains work in progress. > > 2. If not: for which types of groups or orders of groups are your names > unique, or which invariants do they determine? "All groups of finite order" is the desired answer. With certain "honorary atomics" like Z, Q, R we can also deal with infinites that are "solvable over the finites" (has a subnormal series of inclusions of subgroups, i.e. each normal in the next if not necessarily in the whole, where each quotient is abelian OR finite). > > 3. Is it algorithmically feasible to determine the name of a given group > according to your naming scheme? If so, for how large / complicate groups? Very much work in progress. First approx: determine whether the group has a center by taking commutator-derivation until it goes trivial or stops shrinking; if so, try to pull out the center as a direct or ordinary left factor: if ordinary, keep decomposing and note whether carry is revealed to be incompletely ordinary at some stage-- there are systematic moves that can be made to rectify the decomposition if this happens. But if there is no center, use the first commutator-derived (not the terminal stage) as your attempted H to get a semidirect by a cyclic action, or by an abelian group of non-interacting actions, and keep decomposing to see if one of the actions "does something funny"-- here is where I am groping even to pin down what exactly I mean, let alone what to do about it. The actions should fall into inner/central-fixing cases rectifiable to direct or ordinary, and wreath/non-wreath actions, plus only a handful of exceptionals that need to be tagged "reverse". The conjecture is that the exceptionals only happen with a few "smallish" groups like A_6: that might prove false, but I doubt it because it is those exceptionals and the anomalies surrounding them that allow the sporadic simples to arise; so if there was a large counterexample, there ought to be a whole new family of large sporadics also, and while the Simple Classification Theorem is now scattered among hundreds of papers that I doubt any one person has read all through, the community seems satisfied that it is correct. A more likely kind of failure for my scheme: what I think is non-exceptional, the wreath/non-wreath, conceals a kind of ambiguity (more than one "wreathlike" or more than one "non") that I haven't considered. To show a small example, the wreath (Z_3 + Z_3) S Z_2 would proceed algorithmically through the "ordinary" fork; writing the elements 0/1/2, 0/1/2, blank/S, the action of S fixes the central {00, 11, 22} so I would try that as H and find the quotient is a D_6 = Z_3 X| Z_2 with, say, {00, 01, 02} as the Z_3 (no carry), and either 01S, which carries by 01S 01S = 01 10 S^2 = 11 or 00S, which does not carry but induces carry, as the non-trivial in Z_2. This is incompletely ordinary, so it would be kicked over to the semidirect fork of the algorithm: the rectification is to combine the old H with the part of T that failed to carry at all to make our new H, the elementary-9, and treat the part of T that either carried or induced carry as the subgroup acting on it. Discover "carry-up" and tag it "wreath". For cases with a center or a smaller commutator-derived, having chosen a tentative H, the T-elements are chosen preferring *independent* elements (no power except id falling into H or into the cosets of H using those T-elements already chosen) of maximal order, or else the *maximally independent* (largest power before it falls in), and if t is chosen, also incorporate into T the powers of t as far as independent; this trivializes gamma so far as possible. But for other cases, simple or near-simple groups where commutator-derivation does not shrink the group at all, take a maximal H: start with an element of maximal order and keep appending elements of maximal independence that do not generate the full G until you cannot anymore; the T that is appropriate here is constructed by different principles, preferring involutions where possible and incorporating conjugates rather than powers; if the group is not actually simple, decompose as if it were the simple group anyway, and the extra factor will have to be detected. > > Depending on the answers to these questions I think it might be *very* desirable > to have these names and a corresponding group identification routine available > in GAP, and I would recommend that you discuss this with the author of the > small groups library, Bettina Eick. That might be premature at this time; on the other hand, maybe working on an implementation would clarify my mind about what the "rules" really need to be. > > Another question: How do you suppose the Affine Monster' to look like, Like a warthog who can't get a date even from female warthogs. > and with which kind of methods do you try to establish its existence, > i.e. do you use a constructive approach (construct a permutation representation, > matrix representation, finite presentation, ...) or a non-constructive one? Gross framework of the "big lemma": work in permutation-representation terms. Given an arbitrary finite simple G, choose a maximal subgroup H and action on H-cosets is permutational of least possible degree-- unless there happens to be a different maximal subgroup of smaller index reachable by a different route? H is a one-point stabilizer: label the point standing for H-itself as "point infinity". Pick a "point 0" and an involution t_0 in that coset; now find a "wholly regular" element of H, meaning one that has no power short of id that fixes any point but "infinity" (no mixing of different lengths in the disjoint-cycle structure), and build up to the largest possible wholly-regular subgroup (at least containing that cyclic, but as much as you can add and have no non-trivial element acting less than freely on the points other than infinity)-- unless there isn't even one regular in H that doesn't mix cycle lengths? Start the rectified T as t_0 (moves "infinity" to "0") plus its conjugates by the big wholly-regular subgroup (each moving "infinity" to a different point); if that reaches all the points we are done (as in PSL(2,q) but not in general); else find an independent wholly regular element of H moving "0" to one of the points not reached by the orbit of the earlier subgroup-- unless that doesn't exist? Else continue adding blocs of conjugates to the transversal until complete. Regardless of what the simple group, you should be able to rectify thus far. If, instead of an arbitrary simple group we are given one equipped with a canonical decomposition, the rightmost pseudo-group factor will be defining S, the "simple core"-- unless all H is solvable? The factors right of that pseudo-group will contain some multi-point stabilizing stuff (the "multiplicatives") and what we want to be the initial big wholly-regular subgroup (the "additives")-- unless it just isn't there? (For example, in PSL(n,q) the H we have in mind is the subgroup of matrices with the bottom row all zeroes except the rightmost entry; this breaks down as PSL(n-1,q) which is our S, one new multiplicative group, and a column of new additive groups which t_0 is to be conjugated by to get us started off). Then the further regular subgroups that suffice to fill out T should be precisely the same ones which sufficed to build the pseudogroup for S. If everything goes through, we get diagrammatic relationships and can show how to figure out which diagram it is. The question marks are the places where things could fail, and that should mean G isn't really simple, or H really isn't maximal, or S wasn't diagrammatic either, or it can mean a different H should be chosen-- but you can get two H's pointing their fingers at each other saying "use that one instead"; this comes up in the "set-product" case. I think I can get to "if everything was diagrammatic and typical before, it will be again". The problem is that I also seem to be finding indications of the converse, "if the simple core is weird, there is going to be a weird way of carrying it on." In the alternating groups, this is true: every one is a base for building the next one. I don't want to prove that for every sporadic group there exists a next-larger one, because it doesn't seem to be true, and I find it embarrassing to prove falsehoods. Given a simple core, if you are then going to append some intervening factors and a capping pseudo-group that closes up as a new simple group, the nature of the pseudo-group defining the simple core puts constraints on what this continuation has to be; the diagrammatic case imposes some complicated constraints (intervening additive and multiplicative factors that tie back just so); the alternating groups are certainly unlike most sporadics in demanding a very simple constraint, no intervening factors period, old simple core maximal in the next simple group; but each sporadic wants thus-and-so, blah-blah-blah, lah-di-da, and it is hard to see why the constraints would boil down to a contradiction, just "can't be done", especially hard to see why this would happen in one case only. This is not what happens in the "terminal" diagrammatic cases, the E_8, F_4, and G_2 exceptionals: if you add a node you get affine diagrams, and what that means for the E_9, F_5, and G_3 groups is that the constraints will demand intervening factors which need some more which need some more which need... Let us look at some easier groups to get the picture. I decompose Z as ... * Z_2 * Z_2 * Z_2 (or you can use all Z_10 if you like decimal digits better), each bit carrying to the next higher-order, indexed 0 to infinity: but with the restriction that an element of Z has all bits 0 past some N, or else all bits 1 (the negatives: in base-10, negative 1 would be written all 9's). This I would write asterisk-with-a-bar-over-it Z_2, the bar for "ceiling", as opposed to asterisk-hat, for "metric completion", an infinite ordinary product of Z_2's indexed 0 to infinity, but without the restriction: that construction makes the p-adics, and it is not isomorphic when you change base anymore. Asterisk-underlined is product of Z_2's indexed minus infinity to 0: this is the lesser Pru"fer group (he called it "quasi-cyclic") of fractions whose denominators are all powers of two (not isomorphic if you use a different prime), modulo one (no carry out of the topmost bit, it just overflows); putting a wedge (upside-down hat) instead of bar underneath means no restriction that you get down to a sea of zeroes eventually, and this is R/Z, the reals from 0 to 1 (and isomorphic if the base is changed); bar over and wedge under is R. Similarly you can make various infinite iterations of direct products, like the infinite elementary-2; additive Q is a direct product of the greater-Pru"fers (bar over and under an asterisk: fractions, whether greater or less than one, whose denominators are powers of p) for each prime p; multiplicative positive Q a direct product of an infinite number of copies of Z ("logarithms" for the p-factor at each prime p); both with the all-but-a-finite-number-trivial restriction. Semidirect products would not seem to admit this kind of iteration, but what the "Affine Chevalley" groups ought to look like is some infinite tuple of groups joined by operators like we find in the move up from PSL(n,q) to PSL(n+1,q), where a column of additive groups acts each on the previous until a multiplicative group acts on them all and a pseudo-group wraps it up-- except that there is "column" after "column" after "column" in some rhythmic pattern, an infinite number of times "before" the pseudogroup. It still should be possible to construct a systematic description of what kind of infinite tuple constitutes an element of an Affine Chevalley, and what the product of two elements is defined as-- not that I feel like sitting down and writing out such a description right now! So, the Monster shouldn't lead to "no continuation possible" but to "no continuation can close in a finite number of steps", at least that is my hunch. Besides the Dynkin diagrams there are the H diagrams, using braid numbers 5 and 5/2 with Dynkin edge-number D(B) = 4 cos^2 pi(1 - 1/B) working out to phi^2 = 2.618... and 2-phi = .382... (for sound reasons stemming from the non-integral Dynkin numbers, they support no Lie-algebra structures and thus aren't heard of as much); these describe the fivefold symmetric polytopes, like my "good friend" H_3 who lives in the icosahedron. You approach H_3 groups which act on a minimum of 12 points through the one-point stabilizers with their peculiar actions on 11: this is so strongly reminiscent of the Mathieu groups that there must be a connection, although I am damned if I can tell you what it is. There is an affine ~H_4, forked with a central node connected to three others by 1 (braid-number 3), .382 (5/2), and 2.618 (5) edges: the affine nature indicates the linear dependency between the vectors defining the icosahedron and those of Kepler's stella minor figure (12 pentagrams joined 5 at a vertex, using the same vertices as the icosahedron, but a set of three which would be a triangle in the icosahedron have no edge connections here at all). To make these reflections act independently, you have to change the figure into a multi-sheeted Riemann cover, festooned with branch points so that a series of moves which ought to bring you back home instead leaves you at the analogous place one sheet up; this structure is maddeningly confusing, governed by some kind of "Affine Mathieu" group that I need to get a grip on. Then there is an affine ~H_5, an unforked chain with 2.618, 1, 1, .382 edges, describing a linear dependency among the 10 stellated polytopes that can be inscribed in the large 4-dimensional hypericosahedron/hyperdodecahedron polytopes; again there is, or should be if I could figure it out, a way of turning this into a Riemann cover where paths that should be loops do not bring you home. Inside THIS labyrinth is where the "Minotaur" (my pet name for the "Affine Monster") ought to live. I feel that if I could just write down the reiterative description of what the Minotaur is, it would be immediately "obvious" not only that it has to be infinite, but that it is the Monster's only son. > > Best wishes, > Bob X From eckert at math.wayne.edu Thu Jul 1 17:32:21 2004 From: eckert at math.wayne.edu (Robert Eckert) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] "Affine Monster" In-Reply-To: References: Message-ID: In looking over that big long middle-of-the-night post to Stefan, I see that I didn't really quite around to answering his question, whether I would use a constructive or non-constructive way to prove existence of the "Affine Monster", and if constructive what kind of construction. I would certainly want to construct it. One style would be an "alphabet" for it, an infinite tuple of Z_2's, Z_3's, Z_5's, Z_7's, Z_11's, Z_19's, whatever primes it likes, presumably recurring in a repetitive pattern, some long batch of them over and over, or maybe each batch is longer than the previous but systematically describable and indexable. And there would be some pseudo-groups, but except for the final one all of these would occur in the initial, non-repeating, description of the Finite Monster (like a decimal expansion of a fraction where the first digits are not part of the final loop). Each would have an action as it passes any element from a more leftward Z_p, many of these actions trivial but in resolving the product each Z_p will have an infinite number of more rightward places from which it could receive a non-trivial action: thus, the usual kind of restriction that all but a finite number of the Z_p's are at the trivial value must be imposed or there is no way the product could be defined. The element from the rightmost atomic, the capping pseudo-group, has to pass everything, receiving a back-action and spitting back a carry each time; the defining rule, I am sure, is very difficult to express. Or: the "Minotaur" could be defined in a more permutational style, as mappings on the infinite set of vertices in the multi-sheeted cover of the 4D-icosahedron (120 vertices in each sheet), doing reflections and rotations on the hypericosahedron but also moving some vertices up or down some number of sheets. I think the simple core of this symmetry group is the "Affine Monster" I am hunting; but maybe the "Minotaur" and "Affine Monster" are not actually the same thing, just cousins of some kind. From Michael.Hartley at nottingham.edu.my Fri Jul 2 07:19:22 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] problem with Stabilizer Message-ID: Dear Forum, What am I doing wrong here?? The following commands (given to Gap 4.3fix5) grp := AlternatingGroup(7); aut := AutomorphismGroup(grp); stb := Stabilizer(aut,(3,4)(5,6)); lead to this error : ------- begin GAP output--------- GAP4, Version: 4.3fix5 of June, 2003, i686-pc-cygwin-gcc Components: small, small2, small3, small4, small5, small6, small7, small8, id2, id3, id4, id5, id6, trans, prim loaded. Packages: crisp, cryst, polycyclic, crystcat, ctbllib, tomlib, EDIM, GAPDoc, factint, lag loaded. gap> grp := AlternatingGroup(7); Alt( [ 1 .. 7 ] ) gap> aut := AutomorphismGroup(grp); gap> stb := Stabilizer(aut,(3,4)(5,6)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for ConjugatorOfConjugatorIsomorphism' on 1\ arguments called from ConjugatorOfConjugatorIsomorphism( auto ) called from map!.fun( elm ) called from ImagesRepresentative( nice, obj2 ) called from ClosureGroup( G, obj ) called from ClosureSubgroupNC( stb, sch ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> ----------end GAP output----------- The error depends sensitively on the group, even on the order of its generators! Eg, if the first line is replaced with any of grp := AlternatingGroup(6); or grp := AlternatingGroup(8); or even (!) grp := Group(GeneratorsOfGroup(AlternatingGroup(7))); allows the Stabilizer function to finish normally. Can this be fixed by merely upgrading to the current latest version of GAP? Or is there a workaround in my version? Or must I wait for a future version?? Yours, Mike H... From holmespe at for.mat.bham.ac.uk Fri Jul 2 07:25:34 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name (fwd) In-Reply-To: Message-ID: On Thu, 1 Jul 2004, Robert Eckert wrote: > the "Affine Monster") ought to live. I feel that if I could just write > down the reiterative description of what the Minotaur is, it would be > immediately "obvious" not only that it has to be infinite, but that it is > the Monster's only son. > > Haha! So then the Baby Monster is a girl!! Beth From sal at dcs.st-and.ac.uk Fri Jul 2 08:00:19 2004 From: sal at dcs.st-and.ac.uk (Steve Linton) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] problem with Stabilizer In-Reply-To: References: Message-ID: <20040702080019.1076886c@caolila.dcs.st-and.ac.uk> Dear GAP Forum, On Fri, 02 Jul 2004 14:19:22 +0800, "Michael Hartley" reported a problem with these commands: > grp := AlternatingGroup(7); > aut := AutomorphismGroup(grp); > stb := Stabilizer(aut,(3,4)(5,6)); These appear to work correctly in GAP 4.4.3, to which we would urge him (and everyone else) to upgrade. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.dcs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From beick at tu-bs.de Mon Jul 5 10:25:59 2004 From: beick at tu-bs.de (Bettina Eick) Date: Thu Jan 5 13:04:19 2006 Subject: [GAP Forum] Retrieving group name In-Reply-To: <20040628175437.GE24881@txc.com> Message-ID: Dear Gap-forum, Igor Schein wrote: > I am struggling to find the way to retrieve canonical group names in > GAP4 ( I've done it once in GAP3 ). Basically, I need a function > which will output "Q8" if the input is SmallGroup(8,4), for example. In GAP 3 the catalogue of all solvable groups of order at most 100 contained names for many of the groups in this catalogue. I guess that Igor refers to these names. In GAP 4 this catalogue of solvable groups is not explicitly available anymore as all the groups in the catalogue are contained in the small groups library. The relation between the two catalogues is given by the GAP 4 function Gap3CatalogueIdGroup. But the names of the groups as in GAP 3 have not been translated to GAP 4. The basic reason for this is that Hans Ulrich Besche (who implemented the GAP 3 names) considered the GAP 3 names as too unsystematic. The GAP 3 names are based on the well-known names for certain groups such as the cyclic, dihedral, symmetric and alternating groups. Beyond these groups, the GAP 3 names use a structure analysis to determine a name; for example, An.C2 would be a group with An as normal subgroup of index 2. Thus the GAP 3 names are just a description of the group structure. The GAP 3 names should not be considered as 'canonical'. Also, there are groups of order less than 100 which did not get a name under this scheme, as there did not exist a nice, short and unique structure analysis that could be used as a name. Further, some groups could have two or more different names, as more than one structure analysis applies to them. Nonetheless, a more systematic version of the GAP 3 names would perhaps be nice to have in GAP 4 also. I'll think about it. Determining canonical names for all finite groups is a different project. 'Canonical' means to me that every isomorphism type of group gets a unique name such that non-isomorphic groups have different names. Thus a canonical name really is a description of the group up to isomorphism. For such a naming scheme we need at least as many names as we have isomorphism types of groups. As the number of groups of order n grows exponentially with the largest exponent in the prime-power factorisation of n, it is obvious that we cannot expect canonical names to be short and easy. For p-groups there exists the standard presentation algorithm in the ANUPQ package by Eamonn O'Brien. This can determine a standard presentation for a p-group G. Such a presentation is unique for the isomorphism type of G and thus it could be considered as a canonical name for G. If G has order p^n, then a standard presentation has n(n+1)/2 relations and each relation can be written as a vector of length at most n over GF(p). Thus a standard presentation is quite long and perhaps not easy to read as name for the group. But considering the number of groups of order p^n, it seems unlikely that one can get much shorter canonical names in general. I think this idea of computing a standard presentation extends at least to all finite solvable groups. This extension has not been implemented so far, but it would be a very worth-while project. If we have such a function that can determine a canonical name or a standard presentation for a finite group, then this would also solve the isomorphism problem and thus would be very valuable. If anybody is interested in following this project up, then please let me know. I would be happy to supply further information. Best wishes, Bettina From pueschel at ece.cmu.edu Mon Jul 5 19:29:06 2004 From: pueschel at ece.cmu.edu (Markus Pueschel) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Retrieving group name (fwd) In-Reply-To: References: Message-ID: <200407051429.06821.pueschel@ece.cmu.edu> Hello, I want to add to this discussion that Sebastian Egner and myself wrote a program a while ago (1997, GAP3) that decomposes a group into semidirect and direct product of "basic" groups (cyclic, dihedral, and some others) and constructs accordingly a name. I give an example below. I am happy to send this program if somebody wants it. best regards, Markus Pueschel gap> AllSmallGroups(32); [ 32_1, 32_2, 32_3, 32_4, 32_5, 32_6, 32_7, 32_8, 32_9, 32_10, 32_11, 32_12, 32_13, 32_14, 32_15, 32_16, 32_17, 32_18, 32_19, 32_20, 32_21, 32_22, 32_23, 32_24, 32_25, 32_26, 32_27, 32_28, 32_29, 32_30, 32_31, 32_32, 32_33, 32_34, 32_35, 32_36, 32_37, 32_38, 32_39, 32_40, 32_41, 32_42, 32_43, 32_44, 32_45, 32_46, 32_47, 32_48, 32_49, 32_50, 32_51 ] gap> List(last, OneIsomorphismTypeGroup); [ Z32, (Z4 : (Z2 x Z4)), (Z4 x Z8), (Z4 : Z8), (Z2 : (Z2 x Z8)), (Z2 : (Z2 : (Z2 x Z4))), (Z2 : (Z2 : Z8)), NonSplit(32), (Z2 : (Z2 x Z8)), (Z4 : Q8), (Z2 : (Z4 x Z4)), (Z8 : Z4), (Z4 : Z8), (Z4 : Z8), NonSplit(32), (Z2 x Z16), (Z2 : Z16), D32, QD32, Q32, (Z2 x Z4 x Z4), (Z2 x (Z2 : (Z2 x Z4))), (Z2 x (Z4 : Z4)), (Z2 : (Z4 x Z4)), (Z4 x D8), (Z4 x Q8), (Z2 : (Z2 x Z2 x Z2 x Z2)), (Z2 : (Z2 x Z2 x Z4)), (Z2 : (Z2 x Q8)), (Z2 : (Z2 x Z2 x Z4)), (Z2 : (Z4 x Z4)), NonSplit(32), (Z2 : (Z4 x Z4)), (Z2 : (Z4 x Z4)), (Q8 : Z4), (Z2 x Z2 x Z8), (Z2 x (Z2 : Z8)), (Z2 : (Z2 x Z8)), (Z2 x D16), (Z2 x QD16), (Z2 x Q16), (Z2 : (Z2 x Z8)), (Z2 : (Z2 x D8)), (Z2 : (Z2 x Q8)), (Z2 x Z2 x Z2 x Z4), (Z2 x Z2 x D8), (Z2 x Z2 x Q8), (Z2 x (Z2 : (Z2 x Z4))), (Z2 : (Z2 x D8)), (Z2 : (Z2 x Q8)), (Z2 x Z2 x Z2 x Z2 x Z2) ] On Thursday 01 July 2004 11:55, Robert Eckert wrote: > ---------- Forwarded message ---------- > Date: Thu, 1 Jul 2004 01:25:40 -0400 (EDT) > From: Robert Eckert > To: Stefan Kohl > Cc: GAP Support > Subject: Re: [GAP Forum] Retrieving group name > > On Wed, 30 Jun 2004, Stefan Kohl wrote: > > Robert Eckert wrote: > > > This is probably more than you want to know, but... > > > For some time I have worked on what a "canonical" naming scheme for a > > > Classification of Finite *non*Simple Groups would have to look like. > > > > [ ... ] > > > > This looks like a larger project -- > > > > Some questions however (maybe the answers are somewhere hidden in your > > text): > > > > 1. Is there a bijection between your names and the isomorphism types > > of finite groups? > > That's the plan, at least: a symbol-string should stand for either an > impossibility (there exists Z_3 X| Z_2 = D_6 = S_3 but no Z_2 X| Z_3) or a > group determined up to isomorphism; and each group (finite at least: > infinites have "self-similar" decompositions like Z = Z * Z_2 or "free > product" decompositions and maybe phenomena for which this whole language > is not suitable) should have a unique "canonical" symbol-string naming. > Problems divide into "ambiguities" (same symbol string for non-isomorphic > groups, from two series of refinements of the same Type at each step down > to the same atomics but with alpha/gamma choices that cause different > effects) and the much less serious "ambivalencies" (as between > Z_6 = Z_2 + Z_3, Z_6 = Z_3 + Z_2, > who really cares? any arbitrary tie-breaker rule will do). Ambiguities > about the choice of gamma I know how to deal with; ambiguous semidirect > products are more confusing and this remains work in progress. > > > 2. If not: for which types of groups or orders of groups are your names > > unique, or which invariants do they determine? > > "All groups of finite order" is the desired answer. With certain > "honorary atomics" like Z, Q, R we can also deal with infinites that are > "solvable over the finites" (has a subnormal series of inclusions of > subgroups, i.e. each normal in the next if not necessarily in the whole, > where each quotient is abelian OR finite). > > > 3. Is it algorithmically feasible to determine the name of a given group > > according to your naming scheme? If so, for how large / complicate > > groups? > > Very much work in progress. First approx: determine whether the group > has a center by taking commutator-derivation until it goes trivial or > stops shrinking; if so, try to pull out the center as a direct or ordinary > left factor: if ordinary, keep decomposing and note whether carry is > revealed to be incompletely ordinary at some stage-- there are systematic > moves that can be made to rectify the decomposition if this happens. But > if there is no center, use the first commutator-derived (not the terminal > stage) as your attempted H to get a semidirect by a cyclic action, or by an > abelian group of non-interacting actions, and keep decomposing to see if > one of the actions "does something funny"-- here is where I am groping even > to pin down what exactly I mean, let alone what to do about it. The > actions should fall into inner/central-fixing cases rectifiable to direct > or ordinary, and wreath/non-wreath actions, plus only a handful of > exceptionals that need to be tagged "reverse". The conjecture is that the > exceptionals only happen with a few "smallish" groups like A_6: that might > prove false, but I doubt it because it is those exceptionals and the > anomalies surrounding them that allow the sporadic simples to arise; so if > there was a large counterexample, there ought to be a whole new family of > large sporadics also, and while the Simple Classification Theorem is now > scattered among hundreds of papers that I doubt any one person has read all > through, the community seems satisfied that it is correct. A more likely > kind of failure for my scheme: what I think is non-exceptional, the > wreath/non-wreath, conceals a kind of ambiguity (more than one "wreathlike" > or more than one "non") that I haven't considered. > > To show a small example, the wreath > (Z_3 + Z_3) S Z_2 > would proceed algorithmically through the "ordinary" fork; writing the > elements 0/1/2, 0/1/2, blank/S, the action of S fixes the central {00, 11, > 22} so I would try that as H and find the quotient is a D_6 = Z_3 X| Z_2 > with, say, {00, 01, 02} as the Z_3 (no carry), and either 01S, which > carries by > 01S 01S = 01 10 S^2 = 11 > or 00S, which does not carry but induces carry, as the non-trivial in Z_2. > This is incompletely ordinary, so it would be kicked over to the > semidirect fork of the algorithm: the rectification is to combine the old > H with the part of T that failed to carry at all to make our new H, the > elementary-9, and treat the part of T that either carried or induced carry > as the subgroup acting on it. Discover "carry-up" and tag it "wreath". > > For cases with a center or a smaller commutator-derived, having chosen a > tentative H, the T-elements are chosen preferring *independent* elements > (no power except id falling into H or into the cosets of H using those > T-elements already chosen) of maximal order, or else the *maximally > independent* (largest power before it falls in), and if t is chosen, > also incorporate into T the powers of t as far as independent; this > trivializes gamma so far as possible. But for other cases, simple or > near-simple groups where commutator-derivation does not shrink the group > at all, take a maximal H: start with an element of maximal order and keep > appending elements of maximal independence that do not generate the full G > until you cannot anymore; the T that is appropriate here is constructed by > different principles, preferring involutions where possible and > incorporating conjugates rather than powers; if the group is not actually > simple, decompose as if it were the simple group anyway, and the extra > factor will have to be detected. > > > Depending on the answers to these questions I think it might be *very* > > desirable to have these names and a corresponding group identification > > routine available in GAP, and I would recommend that you discuss this > > with the author of the small groups library, Bettina Eick. > > That might be premature at this time; on the other hand, maybe working on > an implementation would clarify my mind about what the "rules" really need > to be. > > > Another question: How do you suppose the Affine Monster' to look like, > > Like a warthog who can't get a date even from female warthogs. > > > and with which kind of methods do you try to establish its existence, > > i.e. do you use a constructive approach (construct a permutation > > representation, matrix representation, finite presentation, ...) or a > > non-constructive one? > > Gross framework of the "big lemma": work in permutation-representation > terms. Given an arbitrary finite simple G, choose a maximal subgroup H > and action on H-cosets is permutational of least possible degree-- unless > there happens to be a different maximal subgroup of smaller index > reachable by a different route? H is a one-point stabilizer: label the > point standing for H-itself as "point infinity". Pick a "point 0" and an > involution t_0 in that coset; now find a "wholly regular" element of H, > meaning one that has no power short of id that fixes any point but > "infinity" (no mixing of different lengths in the disjoint-cycle > structure), and build up to the largest possible wholly-regular subgroup > (at least containing that cyclic, but as much as you can add and have no > non-trivial element acting less than freely on the points other than > infinity)-- unless there isn't even one regular in H that doesn't mix > cycle lengths? Start the rectified T as t_0 (moves "infinity" to "0") > plus its conjugates by the big wholly-regular subgroup (each moving > "infinity" to a different point); if that reaches all the points we are > done (as in PSL(2,q) but not in general); else find an independent wholly > regular element of H moving "0" to one of the points not reached by the > orbit of the earlier subgroup-- unless that doesn't exist? Else continue > adding blocs of conjugates to the transversal until complete. Regardless > of what the simple group, you should be able to rectify thus far. > If, instead of an arbitrary simple group we are given one equipped with a > canonical decomposition, the rightmost pseudo-group factor will be > defining S, the "simple core"-- unless all H is solvable? The > factors right of that pseudo-group will contain some multi-point > stabilizing stuff (the "multiplicatives") and what we want to be > the initial big wholly-regular subgroup (the "additives")-- unless it just > isn't there? (For example, in PSL(n,q) the H we have in mind is the > subgroup of matrices with the bottom row all zeroes except the rightmost > entry; this breaks down as PSL(n-1,q) which is our S, one new > multiplicative group, and a column of new additive groups which t_0 is to > be conjugated by to get us started off). Then the further regular > subgroups that suffice to fill out T should be precisely the same ones > which sufficed to build the pseudogroup for S. If everything goes > through, we get diagrammatic relationships and can show how to figure out > which diagram it is. > > The question marks are the places where things could fail, and that should > mean G isn't really simple, or H really isn't maximal, or S wasn't > diagrammatic either, or it can mean a different H should be chosen-- but > you can get two H's pointing their fingers at each other saying "use that > one instead"; this comes up in the "set-product" case. I think I can get > to "if everything was diagrammatic and typical before, it will be again". > The problem is that I also seem to be finding indications of the converse, > "if the simple core is weird, there is going to be a weird way of carrying > it on." In the alternating groups, this is true: every one is a base for > building the next one. I don't want to prove that for every sporadic > group there exists a next-larger one, because it doesn't seem to be true, > and I find it embarrassing to prove falsehoods. Given a simple core, if > you are then going to append some intervening factors and a capping > pseudo-group that closes up as a new simple group, the nature of the > pseudo-group defining the simple core puts constraints on what this > continuation has to be; the diagrammatic case imposes some complicated > constraints (intervening additive and multiplicative factors that tie > back just so); the alternating groups are certainly unlike most sporadics > in demanding a very simple constraint, no intervening factors period, old > simple core maximal in the next simple group; but each sporadic wants > thus-and-so, blah-blah-blah, lah-di-da, and it is hard to see why the > constraints would boil down to a contradiction, just "can't be done", > especially hard to see why this would happen in one case only. > > This is not what happens in the "terminal" diagrammatic cases, the E_8, > F_4, and G_2 exceptionals: if you add a node you get affine diagrams, and > what that means for the E_9, F_5, and G_3 groups is that the constraints > will demand intervening factors which need some more which need some more > which need... Let us look at some easier groups to get the picture. I > decompose Z as ... * Z_2 * Z_2 * Z_2 (or you can use all Z_10 if you like > decimal digits better), each bit carrying to the next higher-order, > indexed 0 to infinity: but with the restriction that an element of > Z has all bits 0 past some N, or else all bits 1 (the negatives: in > base-10, negative 1 would be written all 9's). This I would write > asterisk-with-a-bar-over-it Z_2, the bar for "ceiling", as opposed to > asterisk-hat, for "metric completion", an infinite ordinary product of > Z_2's indexed 0 to infinity, but without the restriction: that > construction makes the p-adics, and it is not isomorphic when you change > base anymore. Asterisk-underlined is product of Z_2's indexed minus > infinity to 0: this is the lesser Pru"fer group (he called it > "quasi-cyclic") of fractions whose denominators are all powers of two (not > isomorphic if you use a different prime), modulo one (no carry out of the > topmost bit, it just overflows); putting a wedge (upside-down hat) instead > of bar underneath means no restriction that you get down to a sea of > zeroes eventually, and this is R/Z, the reals from 0 to 1 (and isomorphic > if the base is changed); bar over and wedge under is R. > > Similarly you can make various infinite iterations of direct products, > like the infinite elementary-2; additive Q is a direct product of the > greater-Pru"fers (bar over and under an asterisk: fractions, whether > greater or less than one, whose denominators are powers of p) for each > prime p; multiplicative positive Q a direct product of an infinite number > of copies of Z ("logarithms" for the p-factor at each prime p); both with > the all-but-a-finite-number-trivial restriction. Semidirect products > would not seem to admit this kind of iteration, but what the "Affine > Chevalley" groups ought to look like is some infinite tuple of groups > joined by operators like we find in the move up from PSL(n,q) to > PSL(n+1,q), where a column of additive groups acts each on the previous > until a multiplicative group acts on them all and a pseudo-group wraps it > up-- except that there is "column" after "column" after "column" in some > rhythmic pattern, an infinite number of times "before" the pseudogroup. > It still should be possible to construct a systematic description of what > kind of infinite tuple constitutes an element of an Affine Chevalley, and > what the product of two elements is defined as-- not that I feel like > sitting down and writing out such a description right now! > > So, the Monster shouldn't lead to "no continuation possible" but to "no > continuation can close in a finite number of steps", at least that is my > hunch. Besides the Dynkin diagrams there are the H diagrams, using braid > numbers 5 and 5/2 with Dynkin edge-number D(B) = 4 cos^2 pi(1 - 1/B) > working out to phi^2 = 2.618... and 2-phi = .382... (for sound reasons > stemming from the non-integral Dynkin numbers, they support no Lie-algebra > structures and thus aren't heard of as much); these describe the fivefold > symmetric polytopes, like my "good friend" H_3 who lives in the > icosahedron. You approach H_3 groups which act on a minimum of 12 points > through the one-point stabilizers with their peculiar actions on 11: this > is so strongly reminiscent of the Mathieu groups that there must be a > connection, although I am damned if I can tell you what it is. There is > an affine ~H_4, forked with a central node connected to three others by 1 > (braid-number 3), .382 (5/2), and 2.618 (5) edges: the affine nature > indicates the linear dependency between the vectors defining the > icosahedron and those of Kepler's stella minor figure (12 pentagrams > joined 5 at a vertex, using the same vertices as the icosahedron, but a > set of three which would be a triangle in the icosahedron have no edge > connections here at all). To make these reflections act independently, > you have to change the figure into a multi-sheeted Riemann cover, > festooned with branch points so that a series of moves which ought to > bring you back home instead leaves you at the analogous place one sheet > up; this structure is maddeningly confusing, governed by some kind of > "Affine Mathieu" group that I need to get a grip on. Then there is an > affine ~H_5, an unforked chain with 2.618, 1, 1, .382 edges, describing a > linear dependency among the 10 stellated polytopes that can be inscribed > in the large 4-dimensional hypericosahedron/hyperdodecahedron polytopes; > again there is, or should be if I could figure it out, a way of turning > this into a Riemann cover where paths that should be loops do not bring > you home. Inside THIS labyrinth is where the "Minotaur" (my pet name for > the "Affine Monster") ought to live. I feel that if I could just write > down the reiterative description of what the Minotaur is, it would be > immediately "obvious" not only that it has to be infinite, but that it is > the Monster's only son. > > > Best wishes, > > Bob X > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Markus Pueschel Research Faculty Dept. of Electrical and Computer Engineering Carnegie Mellon University http://www.ece.cmu.edu/~pueschel From pliner at sky.ru Tue Jul 6 06:33:27 2004 From: pliner at sky.ru (Lev Pliner) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Loading workspaces Message-ID: <003001c4631a$e207ad70$b90d72d9@lsp> Dear forum users. Is there a way how saved workspace can be loaded in the working instance of GAP? Somthing like: gap> LoadWorkspace ("savefile"); Lev. From costanti at science.unitn.it Tue Jul 6 14:27:14 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Loading workspaces In-Reply-To: <003001c4631a$e207ad70$b90d72d9@lsp> References: <003001c4631a$e207ad70$b90d72d9@lsp> Message-ID: <1089120434.40eaa8b24f8c2@www.unitn.it> Dear Lev and dear forum users, > > Is there a way how saved workspace can be loaded in the working instance > of GAP? Somthing like: > > gap> LoadWorkspace ("savefile"); Try to start a new gap session with gap -L savefile As far as I know, it is not possible loading a saved workspace within an already started Gap session. Best, Marco Costantini From Michael.Hartley at nottingham.edu.my Thu Jul 8 09:13:25 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] orbits... Message-ID: Dear Forum, thanks for the advice on the stabilizer bug. I have now upgraded to 4.4. On another topic - suppose I want a representative of each orbit of group acting on a set, without actually finding the whole orbits? Specifically, I am trying to get Automorphism classes of involutions of a group. So far, I do this : AutomorphismClassesInvolutions := function(grp) # should probably be called AutomorphismClassRepresentativeInvolutions. local ss,inv,cr,au; au := AutomorphismGroup(grp); # find the automorphism group ss := SylowSubgroup(grp,2); # find a sylow 2-subgroup ss inv := Filtered(Elements(ss),x -> Order(x) = 2); # get the involutions in ss cr := List(Orbits(au,inv),Representative); # get representatives of the orbits of the involutions under the automorphism group. return cr; end; Note that the last line before the return will actually compute the whole Orbit. I really just want a representative from each orbit. Or is there a faster way to get the involutions?? Yours, Mike H... From kohl at mathematik.uni-stuttgart.de Thu Jul 8 11:26:51 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] orbits... References: Message-ID: <40ED216B.3D4D2887@mathematik.uni-stuttgart.de> Dear Forum, Michael Hartley wrote: > On another topic - suppose I want a representative of each orbit of > group acting on a set, without actually finding the whole orbits? > Specifically, I am trying to get Automorphism classes of involutions of > a group. > > So far, I do this : > > AutomorphismClassesInvolutions := function(grp) # should probably be > called AutomorphismClassRepresentativeInvolutions. > local ss,inv,cr,au; > au := AutomorphismGroup(grp); # find the automorphism group > ss := SylowSubgroup(grp,2); # find a sylow 2-subgroup ss > inv := Filtered(Elements(ss),x -> Order(x) = 2); # get the > involutions in ss > cr := List(Orbits(au,inv),Representative); # get representatives > of the orbits of the involutions under the automorphism group. > return cr; > end; > > Note that the last line before the return will actually compute the > whole Orbit. > > I really just want a representative from each orbit. Or is there a > faster way to get the involutions?? Of course there is a faster way to get the involutions -- you can use ConjugacyClasses' to compute the conjugacy classes of your group, and then check which conjugacy classes of involutions are fused under outer automorphisms. You might try the following -- of course significant algorithmic improvements are possible depending on the representation of your groups, and it may happen for various reasons that you can save the work of actually computing the automorphism group, thus the following is just a general purpose' approach: AutomorphismClassRepresentativeInvolutions := function ( G ) local ccl, rep, A, autgen, outer, pos, Out, orb, i; ccl := Filtered( ConjugacyClasses( G ), cl -> Order( Representative( cl ) ) = 2 ); if Length( Set ( List( ccl, Size ) ) ) = Length( ccl ) then return List( ccl, Representative ); fi; rep := List( ccl, Representative ); A := AutomorphismGroup( G ); autgen := GeneratorsOfGroup( A ); outer := Filtered( autgen, a -> not IsInnerAutomorphism( a ) ); Out := Group(()); pos := [ ]; for i in [ 1 .. Length( outer ) ] do pos[i] := List([ 1 .. Length( ccl ) ], j -> Position(List(rep,g->IsConjugate(G,g,Image(outer[i], rep[j]))), true)); Out := ClosureGroup( Out, SortingPerm( pos[ i ] ) ); od; return List( Orbits( Out, [ 1 .. Length( ccl ) ] ), orb -> Representative( ccl[ orb[ 1 ] ] ) ); end; Hope this helps, Stefan Kohl From iqbox_postech at yahoo.com Mon Jul 12 15:05:51 2004 From: iqbox_postech at yahoo.com (Kang ByoungKwan) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] How many elements of SymmetricGroup can be represented by GAP ? Message-ID: <20040712140551.2267.qmail@web50009.mail.yahoo.com> Dear forum members, I met the problem about limit # of representing elements of symmetric group. This is my partial code for using all elements of symmetric group gap>idx:=10; gap>G:=SymmetricGroup(idx); gap>sub:=Elements(G); gap: cannot extend the workspace any more gap: Press to end program If I write idx:=9 then the above program acts well. But, If idx:=10 then they break Is there some solutions for solving this problem ? Thank you for your reading. __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From kohl at mathematik.uni-stuttgart.de Mon Jul 12 16:50:39 2004 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] How many elements of SymmetricGroup can be representedby GAP ? References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> Message-ID: <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> Dear Forum, Kang ByoungKwan wrote: > I met the problem about limit # of representing elements of symmetric group. > This is my partial code for using all elements of symmetric group > > gap>idx:=10; > gap>G:=SymmetricGroup(idx); > gap>sub:=Elements(G); > > gap: cannot extend the workspace any more > gap: Press to end program > > If I write idx:=9 then the above program acts well. But, If idx:=10 then they break > Is there some solutions for solving this problem ? There are basically two solutions to this problem: - If you just want to loop over all group elements, then you can write for g in SymmetricGroup(10) do < your code, i.e. what you want to do with the group element > od; - If you want to have an object which behaves like a list of all group elements, then you can write l := Enumerator(SymmetricGroup(10)); This does not actually compute all group elements (thus does not need much memory), but can be used as if it would be a list of all group elements, e.g. you can write gap> l[1]; () gap> l[1000000]; (1,9)(3,10,6,8,7,4,5) gap> l{[785433..785438]}; [ (1,2,10,3,9,4,8,7,5), (1,3,9,4,8,7,5), (1,4,8,7,5)(3,9,10), (1,5)(3,9,4,8,7,10), (1,6,10,3,9,4,8,7,5), (1,7,5)(3,9,4,8,10) ] Hope this helps, Stefan Kohl From costanti at science.unitn.it Mon Jul 12 17:27:00 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] How many elements of SymmetricGroup can be represented by GAP ? In-Reply-To: <20040712140551.2267.qmail@web50009.mail.yahoo.com> References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> Message-ID: <1089649620.40f2bbd4e46c8@www.unitn.it> Dear Kang ByoungKwan and dear forum members, > I met the problem about limit # of representing elements of symmetric > group. > This is my partial code for using all elements of symmetric group > > gap>idx:=10; > gap>G:=SymmetricGroup(idx); > gap>sub:=Elements(G); > > gap: cannot extend the workspace any more > gap: Press to end program There are 3628800 element in SymmetricGroup(10) and these are too much, not only for Gap to store all them in memory (at least on your computer), but also for you, to consider all of them. The standard suggestion in this case is to consider only the conjugacy classes. idx := 10; G := SymmetricGroup( idx ); cc := ConjugacyClasses( G ); For further information, see the Gap help about this topic, with the command ?Conjugacy Classes Best regards, Marco Costantini From e.obrien at auckland.ac.nz Mon Jul 12 23:52:29 2004 From: e.obrien at auckland.ac.nz (Eamonn OBrien) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] International conference, Auckland February 2005 Message-ID: <200407122252.i6CMqTD05810@aitken.math.auckland.ac.nz> Dear Gap Forum, ================================================ Geometry: Interactions with Algebra and Analysis International conference, Auckland 14-18 February 2005 ================================================ Second announcement This international meeting is one of the key events of a Thematic Program funded by the New Zealand Institute of Mathematics and its Applications . Full details of the program and its related events, including a workshop at Napier from 8-15 January 2005, can be found at Speakers ======== The list of speakers include: * Arjeh Cohen (Eindhoven) * Marston Conder (Auckland) * Rob Howlett (Sydney) * Bill Kantor (Oregon) * Laci Kovacs (Canberra) * Gus Lehrer (Sydney) * Martin Liebeck (Imperial College) * Colin Maclachlan (Aberdeen) * Gunter Malle (Kassel) * Chuck Miller (Melbourne) * Paul Norbury (Melbourne) * Cheryl Praeger (University of Western Australia) * Lawrence Reeves (Marseilles) * Peter Schmid (Tuebingen) * Akos Seress (Ohio State University) * Aner Shalev (Jerusalem) Timetable ========= The conference will commence on Monday, 14 February, and finish on Friday, 18 February. In addition to the invited lectures, there will be an opportunity for contributed talks, of up to 25 minutes in duration. See the WEB site for details. Accommodation ============= A range of options, catering for most budgets and tastes, is available. See the WEB site for details, including reservation links. Further information =================== The WEB site for the meeting is There you can register to participate and contribute a lecture. It also includes information on accommodation, tourism, and scholarships which may be available to both local and international students. Please register via the WEB site before December 10, 2004. Since the meeting runs during high tourism season, we encourage you to plan *early*. Best wishes. Eamonn O'Brien and Gaven Martin Program Directors From mjoao at univ-ab.pt Tue Jul 13 11:06:00 2004 From: mjoao at univ-ab.pt (=?iso-8859-1?B?Sm/jbyBBcmH6am8=?=) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] permutations and transformations References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> Message-ID: <00ee01c468c1$03d983a0$360aa8c0@jarajo> Dear GAP Forum, Is there any way of automatically translate the permutation (1,2,3) to the transformation Transformation([2,3,1])? (I am working with some semigroups generated by a group G and some non-invertible transformations. Therefore I have been introducing the group G as group of permutations, use GAP to find the generators, translate by hand the cycle notation to transformations and then generate the semigroup; but maybe there is an easier and faster way of doing this...). I thank any help. Jo?o From peter.mueller at iwr.uni-heidelberg.de Tue Jul 13 11:53:07 2004 From: peter.mueller at iwr.uni-heidelberg.de (Peter Mueller) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] permutations and transformations In-Reply-To: <00ee01c468c1$03d983a0$360aa8c0@jarajo> References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> <00ee01c468c1$03d983a0$360aa8c0@jarajo> Message-ID: See ?PermList and ?ListPerm Peter M"uller (Heidelberg) On Tue, 13 Jul 2004, Jo?o Ara?jo wrote: > Dear GAP Forum, > > Is there any way of automatically translate the permutation (1,2,3) to the > transformation > > Transformation([2,3,1])? > > (I am working with some semigroups generated by a group G and some > non-invertible transformations. Therefore I have been introducing the group > G as group of permutations, use GAP to find the generators, translate by > hand the cycle notation to transformations and then generate the semigroup; > but maybe there is an easier and faster way of doing this...). > > I thank any help. > > Jo?o > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From Sergei.Haller at math.uni-giessen.de Tue Jul 13 12:24:55 2004 From: Sergei.Haller at math.uni-giessen.de (Sergei Haller) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] permutations and transformations In-Reply-To: <00ee01c468c1$03d983a0$360aa8c0@jarajo> References: <20040712140551.2267.qmail@web50009.mail.yahoo.com> <40F2B34F.9AF8C3E6@mathematik.uni-stuttgart.de> <00ee01c468c1$03d983a0$360aa8c0@jarajo> Message-ID: On Tue, 13 Jul 2004, Jo?o Ara?jo (JA) wrote: JA> Dear GAP Forum, JA> JA> Is there any way of automatically translate the permutation (1,2,3) to the JA> transformation JA> JA> Transformation([2,3,1])? something like that? gap> d := 5;; gap> S := SymmetricGroup(5);; gap> p := Random(S); (1,5,2)(3,4) gap> t := Transformation( List([1..d], x->x^p ) ); Transformation( [ 5, 1, 4, 3, 2 ] ) Best wishes, Sergei -- -------------------------------------------------------------------- -?) eMail: Sergei.Haller@math.uni-giessen.de /\\ -------------------------------------------------------------------- _\_V Be careful of reading health books, you might die of a misprint. -- Mark Twain From rm43 at evansville.edu Tue Jul 13 13:35:45 2004 From: rm43 at evansville.edu (Morse, Robert) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] permutations and transformations Message-ID: Jo?o Ara?jo wrote: > Is there any way of automatically translate the permutation (1,2,3) to the > transformation > Transformation([2,3,1])? Yes. Use the command AsTransformation. gap> AsTransformation((1,2,3)); Transformation( [ 2, 3, 1 ] ) See ?AsTransformation for other objects that can be represented as transformations. Regards, Robert F. Morse From Michael.Hartley at nottingham.edu.my Wed Jul 14 03:54:19 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Re: Forum Digest, Vol 8, Issue 3 Message-ID: Dear Stefan, Thanks. I'll try your method and see if it works out as more efficiently. Yours, Mike H... Michael Hartley wrote: > On another topic - suppose I want a representative of each orbit of > group acting on a set, without actually finding the whole orbits? > Specifically, I am trying to get Automorphism classes of involutions of > a group. > > So far, I do this : > [snip] > Note that the last line before the return will actually compute the > whole Orbit. > > I really just want a representative from each orbit. Or is there a > faster way to get the involutions?? Of course there is a faster way to get the involutions -- you can use ConjugacyClasses' to compute the conjugacy classes of your group, and then check which conjugacy classes of involutions are fused under outer automorphisms. You might try the following -- of course significant algorithmic improvements are possible depending on the representation of your groups, and it may happen for various reasons that you can save the work of actually computing the automorphism group, thus the following is just a general purpose' approach: AutomorphismClassRepresentativeInvolutions := function ( G ) local ccl, rep, A, autgen, outer, pos, Out, orb, i; ccl := Filtered( ConjugacyClasses( G ), cl -> Order( Representative( cl ) ) = 2 ); if Length( Set ( List( ccl, Size ) ) ) = Length( ccl ) then return List( ccl, Representative ); fi; rep := List( ccl, Representative ); A := AutomorphismGroup( G ); autgen := GeneratorsOfGroup( A ); outer := Filtered( autgen, a -> not IsInnerAutomorphism( a ) ); Out := Group(()); pos := [ ]; for i in [ 1 .. Length( outer ) ] do pos[i] := List([ 1 .. Length( ccl ) ], j -> Position(List(rep,g->IsConjugate(G,g,Image(outer[i], rep[j]))), true)); Out := ClosureGroup( Out, SortingPerm( pos[ i ] ) ); od; return List( Orbits( Out, [ 1 .. Length( ccl ) ] ), orb -> Representative( ccl[ orb[ 1 ] ] ) ); end; Hope this helps, Stefan Kohl From edmund at mcs.st-and.ac.uk Fri Jul 16 09:45:14 2004 From: edmund at mcs.st-and.ac.uk (Edmund Robertson) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Change in membership of GAP Support Group Message-ID: <200407160845.i6G8jE202549@mcs.st-and.ac.uk> Dear Forum members May I inform you about two changes in the membership of the GAP Support Group: 1. Volkmar Felsch, who has been a member of the Support Group since it began, has now asked to be removed from the list of members. Although he retired from LDfM at Aachen a year ago, during this last year he has taken a major part in the preparation of a new web site for GAP which we hope to release very soon. He wants now to concentrate on research into the life of Otto Blumenthal, a Mathematics Professor at RWTH, who died in a concentration camp in 1945. I'm sure you will all join me in thanking him for his long involvement with Computational Group Theory, and in particular with GAP, and with wishing him all the best for the years ahead. 2. We are pleased to announce that Marco Costantini, whose name you will have seen answering questions sent to the GAP Forum and to GAP Support, has agreed to officially join the GAP Support group. Thank you Marco. Edmund Robertson ---------------------------------------------------------------------- Professor E F Robertson Chairman of GAP Council Centre for Interdisciplinary Research in Computational Algebra Mathematical Institute University of St Andrews St Andrews KY16 9SS Scotland Email: edmund@mcs.st-and.ac.uk Tel: +44 (0)1334 463743 Fax: +44 (0)1334 463748 ---------------------------------------------------------------------- From edmund at mcs.st-and.ac.uk Fri Jul 16 10:52:43 2004 From: edmund at mcs.st-and.ac.uk (Edmund Robertson) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] New GAP web site Message-ID: <200407160952.i6G9qhD02785@mcs.st-and.ac.uk> Dear Forum members May I inform you that the new GAP web site is now active. It now replaces the previous site. You can see it at the old URL: http://www.gap-system.org/ I would like to take this opportunity of thanking the many people who have helped develop the site. I'm sure you will all join me in thanking them all. In particular: Thanks to Alexander Hulpke for his work on the former GAP web site. Much of the present site is based on his contributions. Thanks to Leonard Soicher who, over two years ago, proposed the basic design criteria on which the site is based. Thanks to Max Neunhoeffer for the 'mixer' program which separates the definition of a 'spanning tree' from writing the individual pages. The 'mixer' has been a most valuable tool in the development of the new web site. Thanks also for all his work in installing the site on the St Andrews computers. Thanks to Frank Luebeck for his work on the 'Download' and the 'Package' branch that will now be regularly kept up to date using scripts that Frank has written for the purpose. Thanks to Volkmar Felsch for devoting so much time over the last year to developing the new site. Thanks to Joachim Neubueser for his all his efforts in preparing the new site and also in coordinating the whole project. I would further like to take this opportunity of thanking the many people who have provided helpful feedback as the site was being developed. Also thanks to those in St Andrews who have assisted. Finally I am delighted to announce that Joachim Neubueser has agreed to act as maintainer of the new web site for the immediate future. In a separate message he will give some comments on the new web site. Edmund Robertson ---------------------------------------------------------------------- Professor E F Robertson Chairman of GAP Council Centre for Interdisciplinary Research in Computational Algebra Mathematical Institute University of St Andrews St Andrews KY16 9SS Scotland Email: edmund@mcs.st-and.ac.uk Tel: +44 (0)1334 463743 Fax: +44 (0)1334 463748 ---------------------------------------------------------------------- From laurent.bartholdi at epfl.ch Sun Jul 18 16:59:34 2004 From: laurent.bartholdi at epfl.ch (Laurent Bartholdi) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] PhD Position available in EPFL Message-ID: Dear GAPers and PUBers, A position is available for a PhD student in EPFL, Lausanne, starting anytime from the coming October 2004. The candidate will contribute to the development of GAP code handling recursively defined infinite groups -- as a typical example, the infinite, finitely generated torsion groups, of intermediate word-growth, acting on rooted trees and defined by automata. The candidate should therefore have strong interests and knowledge in GAP. The position is available for 3 years. It will include involvement in the department's activities, including some TA work (<= 1 day / week). The salary is roughly 45'000 swiss francs, i.e. 36'000 USD. Knowledge of french is not necessary. If you, or any person you know, is interested, please send relevant information (CV, prior accomplishments in GAP) to me, at Laurent.Bartholdi@epfl.ch Best regards, Laurent -- Laurent Bartholdi \ laurent.bartholdiepflch EPFL, IGAT, B?timent BCH \ T?l?phone: +41 21-6930380 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930385 From joachim.neubueser at math.rwth-aachen.de Mon Jul 19 11:33:26 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] The new GAP web site Message-ID: Dear GAP Forum members, Last Friday Edmund Robertson, as chairman of the GAP Council, has officially announced that a new GAP web site has now replaced the old one and that at least for some initial period, I will try to act as its maintainer. In this letter I will point to some new features of this new web site. First of all I want to emphasize that we, that is Volkmar Felsch and I, have tried to save all the lot of information that had been compiled over the years in the old one. But also this letter is meant as a call for suggestions for further improvements of the web site. The first you will notice when you visit the site at the old place of GAP web sites: http://www.gap-system.org/ is a new outlook, but this is not the main change. More important are a new structure and several new pages with dedicated purpose. 1. The start page. The start page is meant to serve different groups of people: - Newcomers who want to see what GAP is about. For these we say in a few lines of the main text what the GAP system provides, but we also give a brief indication of the 'philosophy' of the GAP project as a cooperative effort. - People who have found the general information interesting enough to have a closer look. For these we provide (on the left side bar) at the top of the 'Quicklinks' a link to 'site structure', linking to an answer to the FAQ 'How is the GAP site organised?', and a link to a 'site map' which depicts the beginnings of the main branches of the navigation tree (I hope you will find this site map generally useful, too). - Experienced users of GAP who just want to go to a particular page. For these we provide among the 'Quicklinks' on the left side bar a few ones that we guess will be often used such as a link to the 'Manual' page giving access to all available manuals including those of 'packages'. 2. The structure of the site. For technical information link to 'site structure'. All pages of the new site have a uniform design with a part of the navigation tree on the left bar and the main branches of the navigation tree in the top bar. Only if you get down to manual pages or the like, these show up without such 'margins'. All references to the old version GAP3 are now collected in a separate branch and all pages of that branch have a (yellow) warning on the top that these refer to GAP3, which for some time now has not been further developed. 3. New features. The main branches of the 'navigation tree' each collect information on particular aspects of the GAP project., e.g. 'Documentation' on all textual material, 'Contacts' on all aspects of contacts between the GAP Group and the users of GAP. In detail: - The page 'Capabilities' and those available through it are meant to help finding quickly if GAP may provide functionality for various areas of discrete mathematics by giving many links to parts of the reference manual as well as to packages. I would be most grateful for suggestions of further helpful links of this kind by colleagues particularly familiar with certain areas. - The branch 'Data libraries' unifies information on the many collections of group theoretical data that are available through GAP. If you have or know of further such collections that might be made available through GAP, please inform us. - Thanks to Frank Luebeck's efforts the pages on all packages are now in a uniform format and give up to date information. - There is a new page 'References' which points to some basic text books on the methods of Computational Group Theory, for which we have often been asked. - There is a page 'Learning' on which we have collected links to material that may help learning GAP. If you have or know of further such material, I would be grateful for suggestions to extend this page. - There is a page 'Teaching' with some links to material on the use of GAP in teaching courses on algebra etc. Here in particular I am pretty certain that more such material (course texts as well as collections of exercises) ought to exist and would be grateful for suggestions to include further links. - There are now uniform search facilities for the web site, the manuals, the Forum Archive and the Bibliography of papers quoting GAP. - The collection of worked-out 'Examples' has been extended and links to private collections of examples, e.g. by Thomas Breuer and Alexander Hulpke have been provided. - Also the collection of material from 'Talks and Preprints' has been extended and reorganised. - A page 'History' that had been promised in several release announcements now collects manual prefaces etc that document the growth of GAP. - Of course we have tried to update all information and to remove obsolete one. If you note remaining outdated statements or any errors, I would be grateful for being alerted to it. While Ed Robertson has already acknowledged the help that several colleagues have given to the making of the new web site, I want to emphasize that also its further maintenance and development will be a cooperative effort: Frank Luebeck will provide the information on the status of packages which from now on by his organisation of package loading etc should be kept much more up to date, Ed Robertson will look after the 'Teaching' and 'Learning' material, and further colleagues from St Andrews, in particular John McDermott and Alan Cain will look after 'Forum Archive' and 'Bibliography'. Last not least I hope for further help by Max Neunhoeffer when needed. He has already provided me with so nice tools for maintaining the web site that I have dared to accept starting the maintenance even though I have five left thumbs on each hand when it comes to work on a terminal. Hoping that you will like the new web site and looking forward to suggestions and constructive criticism, With kind regards Joachim Neubueser ---------------------------------------------------------------------- Prof. em. J. Neubueser LDfM RWTH Aachen Germany From Michael.Hartley at nottingham.edu.my Wed Jul 21 09:19:09 2004 From: Michael.Hartley at nottingham.edu.my (Michael Hartley) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] large degree permutations Message-ID: Dear Forum, I think I remember reading somewhere in the documentation about how to instruct GAP to store permutations in a manner which requires less memory than the usual method. I need it now since I am trying to do some manipulations on the janko group j3. However, I have hunted high and low but cannot find in the docs what I thought I read earlier. Does anyone know how to solve this problem? Yours, Mike H... From hulpke at math.colostate.edu Wed Jul 21 21:07:34 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] large degree permutations In-Reply-To: Message-ID: <200407212007.i6LK7YEY009215@schur.math.colostate.edu> Dear Michael Hartley, > I think I remember reading somewhere in the documentation about how to > instruct GAP to store permutations in a manner which requires less > memory than the usual method. I need it now since I am trying to do some > manipulations on the janko group j3. However, I have hunted high and low > but cannot find in the docs what I thought I read earlier. You might want to look at section 41.12 -- working with large degree permutation groups. The section is on the web pages at http://www.gap-system.org/Manuals/doc/htm/ref/CHAP041.htm#SECT012 However J3 (degree 6500) is not such a large degree and I'm slightly surprised that memory turns out to be an issue -- feel free to tellk me (if you want privately) about what you are calculating and I can have a look on whether there is somewhere a memory inefficiency. Best wishes, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From brianbec at comcast.net Sun Jul 25 18:44:07 2004 From: brianbec at comcast.net (Brian Beckman) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] ? trouble getting started ? Message-ID: <200407251741.i6PHfvkS004693@gap-system.org> Hello -- I had some trouble understanding Permutations as presented in the tutorial and I wondered whether someone might help me out. I'm working through http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I was able to understand "conjugating" permutations with the "caret" operator, so, for instance, (1,2)^(1,2,3)=(2,3); made sense to me and (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did not make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I expected (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's obviously not the case. I apologize for my ignorance of the subject, but I am attempting to use GAP to learn algebra. So far, I only know of one kind of operation for permutations (that being composition or conjugation) and I couldn't quickly figure out what your multiplication means. I'll continue to play around with it and may possibly find my own answer, but it's humiliating to get frustrated by the very first algebraic operation I attempted here. Regards, Brian Beckman From brianbec at comcast.net Sun Jul 25 19:02:52 2004 From: brianbec at comcast.net (Brian Beckman) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] RE: ? trouble getting started ? Message-ID: <200407251800.i6PI0fkS005079@gap-system.org> I was able to induce from the example that A*B does not mean first apply A, then apply B, then apply A-inverse, or, in conjugation notation, (A ^ B) ^ (A ^ -1). This looked promising at first, since (1,2)*(1,2,3)=((1,2)^(1,2,3))^((1,2)^-1); --> true but ... ooops (1,2,3)*(1,2)=((1,2,3)^(1,2))^((1,2,3)^-1); did not work out. sorry to 'blog' like this. If this is forum abuse just tell me and I will stop. _____ From: Brian Beckman [mailto:brianbec@comcast.net] Sent: Sunday, July 25, 2004 10:44 AM To: forum@mail.gap-system.org Cc: brianbec@comcast.net Subject: ? trouble getting started ? Hello -- I had some trouble understanding Permutations as presented in the tutorial and I wondered whether someone might help me out. I'm working through http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I was able to understand "conjugating" permutations with the "caret" operator, so, for instance, (1,2)^(1,2,3)=(2,3); made sense to me and (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did not make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I expected (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's obviously not the case. I apologize for my ignorance of the subject, but I am attempting to use GAP to learn algebra. So far, I only know of one kind of operation for permutations (that being composition or conjugation) and I couldn't quickly figure out what your multiplication means. I'll continue to play around with it and may possibly find my own answer, but it's humiliating to get frustrated by the very first algebraic operation I attempted here. Regards, Brian Beckman From justin at mac.com Sun Jul 25 19:09:26 2004 From: justin at mac.com (Justin Walker) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] ? trouble getting started ? In-Reply-To: <200407251741.i6PHfvkS004693@gap-system.org> References: <200407251741.i6PHfvkS004693@gap-system.org> Message-ID: On Jul 25, 2004, at 10:44, Brian Beckman wrote: > Hello -- > > I had some trouble understanding Permutations as presented in the > tutorial > and I wondered whether someone might help me out. > > I'm working through > http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I > was > able to understand "conjugating" permutations with the "caret" > operator, so, > for instance, (1,2)^(1,2,3)=(2,3); made sense to me and > (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out > "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did > not > make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I > expected > (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's > obviously not the case. > > I apologize for my ignorance of the subject, but I am attempting to > use GAP > to learn algebra. Maybe an investment in a book on Algebra (like Rotman's, or Dummit/Foote) will help :=}. > So far, I only know of one kind of operation for > permutations (that being composition or conjugation) Those (composition, conjugation) are actually two kinds of operation. Composition is "apply one, then apply the second", while conjugation is two applications of composition: a^b = bab^(-1) (or b^(-1)ab, depending on your political party). > and I couldn't quickly > figure out what your multiplication means. Multiplication here is (sort of) composition. If you think of multiplication as "apply the left-most first", then your example of (1,2)*(1,2,3) works out to be: 1 -> 2 -> 3 2 -> 1 -> 2 3 -> 3 -> 1 i.e., 2 is left fixed, and 1,3 are transposed, so the result is (1,3). In terms of mappings, multiplication in this setting is "composition in reverse". > I'll continue to play around with > it and may possibly find my own answer, but it's humiliating to get > frustrated by the very first algebraic operation I attempted here. If this is humiliating, don't take up golf :-}. FWIW, you will find that mathematics is a discipline and it requires its own thought patterns. You will get better with practice, but it does take practice. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | "Weaseling out of things is what | separates us from the animals. | Well, except the weasel." | - Homer J Simpson *--------------------------------------*-------------------------------* From brianbec at comcast.net Sun Jul 25 20:13:08 2004 From: brianbec at comcast.net (brianbec@comcast.net) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] ? trouble getting started ? Message-ID: <072520041913.22990.41040644000156E7000059CE22007456720C0A0D020E079D0D@comcast.net> Thanks all for your generous help. Looks like I just had "conjugation" and "composition" backwards in my mind and I'm now "unstuck" :) I've got a book by Fraleigh (http://www.amazon.com/exec/obidos/tg/detail/-/0201763907/qid=1090782562/sr=8-1/ref=pd_ka_1/102-1074212-8968942?v=glance&s=books&n=507846 ). I've read through it (all the way lightly) once, and am now looking forward to being able to plow through the exercises using GAP. I had attempted to use Mathematica for that, but I would have had to create a bunch of support for non-commutative multiplication by overloading operators like Circle-Times and what not, or working with matrix representations ALL the time (yucch). I may be too dumb for algebra, but I'm too smart to try golf -------------- Original message -------------- > > On Jul 25, 2004, at 10:44, Brian Beckman wrote: > > > Hello -- > > > > I had some trouble understanding Permutations as presented in the > > tutorial > > and I wondered whether someone might help me out. > > > > I'm working through > > http://www.gap-system.org/Manuals/doc/htm/tut/CHAP002.htm#SECT008 . I > > was > > able to understand "conjugating" permutations with the "caret" > > operator, so, > > for instance, (1,2)^(1,2,3)=(2,3); made sense to me and > > (1,2,3)^(1,2)=(1,3,2); also made sense. I could not figure out > > "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did > > not > > make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I > > expected > > (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's > > obviously not the case. > > > > I apologize for my ignorance of the subject, but I am attempting to > > use GAP > > to learn algebra. > > Maybe an investment in a book on Algebra (like Rotman's, or > Dummit/Foote) will help :=}. > > > So far, I only know of one kind of operation for > > permutations (that being composition or conjugation) > > Those (composition, conjugation) are actually two kinds of operation. > Composition is "apply one, then apply the second", while conjugation is > two applications of composition: a^b = bab^(-1) (or b^(-1)ab, > depending on your political party). > > > and I couldn't quickly > > figure out what your multiplication means. > > Multiplication here is (sort of) composition. If you think of > multiplication as "apply the left-most first", then your example of > (1,2)*(1,2,3) works out to be: > 1 -> 2 -> 3 > 2 -> 1 -> 2 > 3 -> 3 -> 1 > i.e., 2 is left fixed, and 1,3 are transposed, so the result is (1,3). > > In terms of mappings, multiplication in this setting is "composition in > reverse". > > > I'll continue to play around with > > it and may possibly find my own answer, but it's humiliating to get > > frustrated by the very first algebraic operation I attempted here. > > If this is humiliating, don't take up golf :-}. > > FWIW, you will find that mathematics is a discipline and it requires > its own thought patterns. You will get better with practice, but it > does take practice. > > Regards, > > Justin > > -- > Justin C. Walker, Curmudgeon-At-Large * > Institute for General Semantics | "Weaseling out of things is > what > | separates us from the animals. > | Well, except the weasel." > | - Homer J Simpson > *--------------------------------------*-------------------------------* > From justin at mac.com Mon Jul 26 01:56:24 2004 From: justin at mac.com (Justin Walker) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] ? trouble getting started ? In-Reply-To: <072520041913.22990.41040644000156E7000059CE22007456720C0A0D020E079D0D@comcast.net> References: <072520041913.22990.41040644000156E7000059CE22007456720C0A0D020E079D0D@comcast.net> Message-ID: <9DEEB50C-DE9E-11D8-A9F3-00306544D642@mac.com> On Jul 25, 2004, at 12:13, brianbec@comcast.net wrote: > Thanks all for your generous help.? Looks like I just had > "conjugation" and "composition" backwards in my mind and I'm now > "unstuck" :) Glad you're back on track. > I may be too dumb for algebra, but I'm too smart to try golf grin> :-} Cheers, Justin -- Justin C. Walker, Curmudgeon-At-Large * Institute for General Semantics | It's not whether you win or lose... | It's whether *I* win or lose. *--------------------------------------*-------------------------------* From iqbox_postech at yahoo.com Mon Jul 26 08:15:51 2004 From: iqbox_postech at yahoo.com (Kang ByoungKwan) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Inqury about parallel computing in GAP ? Message-ID: <20040726071551.97016.qmail@web50007.mail.yahoo.com> Dear gap-forum members, I have met a time-consumping problem. So, I want to calculate that problem more faster. So, I have a schedule to use supercomputer. Here, I am wondering whether GAP is supporting parallel computing or not. If you know that, please let me know how I use that. Thank you for your reading. --------------------------------- Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! From costanti at science.unitn.it Mon Jul 26 13:44:09 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Inqury about parallel computing in GAP ? In-Reply-To: <20040726071551.97016.qmail@web50007.mail.yahoo.com> References: <20040726071551.97016.qmail@web50007.mail.yahoo.com> Message-ID: <1090845849.4104fc999298e@www.unitn.it> Dear Kang ByoungKwan and gap-forum members, > Here, I am wondering whether > GAP is supporting parallel computing or not. > If you know that, please let me know how I use that. Yes, GAP suppurts parallel computing, via the package ParGAP; for further information, see http://www.gap-system.org/Packages/pargap.html . Best regards, Marco Costantini From costanti at science.unitn.it Mon Jul 26 14:06:39 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] ? trouble getting started ? In-Reply-To: <200407251741.i6PHfvkS004693@gap-system.org> References: <200407251741.i6PHfvkS004693@gap-system.org> Message-ID: <1090847199.410501df0b5b6@www.unitn.it> Dear Brian Beckman and dear Gap-forum, > I could not figure out > "multiplication" of purmutations, however, so (1,2)*(1,2,3)=(1,3); did > not > make sense to me and (1,2,3)*(1,2)=(2,3); did not make sense. I expected > (1,2)*(1,2,3)=(1,2,3)^(1,2) and (1,2,3)*(1,2)=(1,2)^(1,2,3), but that's > obviously not the case. You can think the permutations as elements of a opportune permutation group, and the composition of permutation as the group operation. As usually the group operation is called "multiplication" and is denoted by "*", it is natural to call "multiplication" also the composition of permutations, and to use "*" in Gap, where only a limited set of symbols is available. > I apologize for my ignorance of the subject, but I am attempting to use > GAP > to learn algebra. Welcome to using Gap and to learn algebra! Please feel free to ask in case that you need further help. There is the address support@gap-system.org to deal with those topics that are more or less local to you, that is, are likely not of interest to most of the other GAP users. On the other hand, the GAP Forum should be reserved for discussions about problems that are likely to interest many of the GAP users. Best regards, Marco Costantini From joachim.neubueser at math.rwth-aachen.de Wed Jul 28 10:40:19 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] The new GAP web site In-Reply-To: <41001726.3104.1804289383@slu.edu> Message-ID: Dear Julianne, > Joachim, > I have written a lab manual called "Abstract > Algebra with GAP" that contains a series of > exercises to use in a first undergraduate > course in Abstract Algebra. This lab manual > can be found at: > http://euler.slu.edu/Dept/Faculty/rainbolt/manual.html > > Would you like to include a link to this page > from the "teaching" page of the GAP web site? > > Julianne Rainbolt Thank you for sending me this reference. I have added a link to this page on the 'teaching' page of the GAP web site. Have a look if this is as you like it to be. I have included a link to your home page while naming you as an author. If you could send me the link to J.A. Gallian's homepage, I would like also not just to name him but use that link as well. I reply with copy to the GAP Forum because this is where your original letter went and we want to show in the Forum that we try to react to all letters, but further correspondence could then go just to me. Kind regards Joachim Neubueser From kp201120 at zodiac.mimuw.edu.pl Sat Jul 10 11:06:26 2004 From: kp201120 at zodiac.mimuw.edu.pl (Karol Palka) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Fox derivatives In-Reply-To: References: Message-ID: Dear Forum, is it possible to compute the Fox derivatives of a word in GAP ? It's quite important and not very difficult tool in homology theory of finitely presented groups. (Maybe somebody can implement it ?) Karol Palka, Warsaw Univ. From Manel.Velasco at upc.es Thu Jul 29 10:00:17 2004 From: Manel.Velasco at upc.es (Manel Velasco/UPC) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Lie Algebras over Complex field Message-ID: Hi, I would like to know how to create a lie algeba structure over the complex numbres. Is it possile? From costanti at science.unitn.it Thu Jul 29 14:19:47 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Lie Algebras over Complex field In-Reply-To: References: Message-ID: <1091107187.4108f973e0c7f@www.unitn.it> Dear Manel Velasco and Gap forum > I would like to know how to create a lie algeba structure over the > complex numbres. Is it possile? No, it is not possible, but it is possible to do something similar, which could fit your needs. The field of the complex numbers is not supported by Gap, hence it is not possible to create structure over the complex numbers, but there are other field implemented in Gap that could fit your needs: for instance GaussianRationals (the smallest field including the square root of -1), the other cyclotomic fields, and the algebraic extension of the Rarionals. The relevant chapters in the documentation are the following. http://www.gap-system.org/Manuals/doc/htm/ref/CHAP018.htm http://www.gap-system.org/Manuals/doc/htm/ref/CHAP056.htm http://www.gap-system.org/Manuals/doc/htm/ref/CHAP058.htm http://www.gap-system.org/Manuals/doc/htm/ref/CHAP065.htm Once that you have a field, then you can create a Lie algebra structure over this field: see the documentation about Lie algebras at http://www.gap-system.org/Manuals/doc/htm/ref/CHAP061.htm This documentation should also be included in your Gap distribution. Best regards, Marco From tim at timesup.org Thu Jul 1 14:29:23 2004 From: tim at timesup.org (Tim B) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Reading data? Message-ID: <40E3FE9E.3070401@timesup.org> Hi All, this should be a silly question: how do I read in some table of data? I have a file with what is essentially a matrix as space-separated integers, and I would like to get it into GAP as a matrix without having to manually place commas and square brackets in the file. This has to be easy, but I cannot find even the faintest shimmer of a way to make it happen - I cannot even see how to read an integer! Hope someone can help! Cheers, Tim -- -------- ------------------------------------ \ / Tim Boykett mailto:tim@timesup.org \ / TIME'S UP \/ Industriezeile 33 B /\ A-4020 Linz /xx\ ph/fax:+43/732-787804 /xxxx\ http://www.timesup.org -------- ------------------------------------ From joachim.neubueser at math.rwth-aachen.de Fri Jul 30 10:27:29 2004 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Fox derivatives In-Reply-To: Message-ID: Dear Karol Palka You wrote: > Dear Forum, > > is it possible to compute the Fox derivatives of a word in GAP ? > It's quite important and not very difficult tool in homology theory of > finitely presented groups. (Maybe somebody can implement it ?) > > Karol Palka, > Warsaw Univ. This letter to the GAP Forum of July 10 was unfortunately held up until yesterday, because you are not a member of the GAP Forum and so your letter did not get posted automatically to all Forum members but was only found in a revision 'by hand' of mail to the Forum. So independently of the following, may I recommend that you register as a Forum member as explained on the GAP website for future cases. I have yesterday forwarded your letter to Professor Derek Holt at Warwick and got the folowing answer, which I hope will help you. If you have further questions feel free to write either to Professor Holt or to the address gap-support as explained on the GAP website. Kind regards and apologies for the delay, Joachim Neubueser ---------------------------------------------------------------------- I think the (rather easy) function below computes the required Fox derivatives. This is for right actions, however, and it is quite likely that he would prefer it for left actions. Maybe he can adapt it himself? Anyway, let me know if there are any problems. Derek. FoxDerivative := function(F,i,w) ## F should be a free group of rank r, i an integer with 1 <= i <= r, ## and w a word in F. ## The value of the i-th Fox derivative of F on w is returned as a list ## of pairs [k,v] (v in F, k = 1 or -1) representing the element ## sum k * v of the group algebra ZF. local len, er, j, fd; fd := []; len := Length(w); for j in [1..len] do er := ExtRepOfObj(Subword(w,j,j)); if er[1] = i and er[2] = 1 then Add(fd,[1,Subword(w,j+1,len)]); fi; if er[1] = i and er[2] = -1 then Add(fd,[-1,Subword(w,j,len)]); fi; od; return fd; end; ------------------------------------------------------------------------ From Dursun.Bulutoglu at afit.edu Sat Jul 31 21:07:02 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Generating the total number of distinct permutations in the set UG Message-ID: <4CFC110AB744244C824D25E59665956C14159B@ms-afit-04.afit.edu> Dear Gap Forum; I was able to generate two permutation groups U and G in GAP. U has order 480 and G has order 185794560. Let elements of U be u_1, u_2, ...u_480. I am interested in the cosets u_1G, u_2G,...u_480G. I would like to be able to compute the number of distinct such cosets of G. (Here there may be repeated cosets.) I was wondering how I could do this efficiently in GAP. I would very much appreciate the help. Dursun. From Dursun.Bulutoglu at afit.edu Sun Aug 1 00:57:24 2004 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Generating the total number of distinct permutations in the set UG Message-ID: <4CFC110AB744244C824D25E59665956C13DC6F@ms-afit-04.afit.edu> Dear Gap Forum, I solved my problem. The solution is as follows. Group U acts on G by left multiplication sending cosets of G to cosets of G. I am looking for the order of the orbit of G under the action of U. This is simply |U|/(U intersect G). I used the function Intersection in GAP to compute (G intersect U) -----Original Message----- From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org] On Behalf Of Bulutoglu Dursun A Civ AFIT/ENC Sent: Saturday, July 31, 2004 4:07 PM To: forum@gap-system.org Subject: [GAP Forum] Generating the total number of distinct permutations inthe set UG Dear Gap Forum; I was able to generate two permutation groups U and G in GAP. U has order 480 and G has order 185794560. Let elements of U be u_1, u_2, ...u_480. I am interested in the cosets u_1G, u_2G,...u_480G. I would like to be able to compute the number of distinct such cosets of G. (Here there may be repeated cosets.) I was wondering how I could do this efficiently in GAP. I would very much appreciate the help. Dursun. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From costanti at science.unitn.it Sun Aug 1 22:34:10 2004 From: costanti at science.unitn.it (Marco Costantini) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Generating the total number of distinct permutations in the set UG In-Reply-To: <4CFC110AB744244C824D25E59665956C14159B@ms-afit-04.afit.edu> References: <4CFC110AB744244C824D25E59665956C14159B@ms-afit-04.afit.edu> Message-ID: <1091396050.410d61d227b84@www.unitn.it> Dear Dursun Bulutoglu and Gap forum, > I was able to generate two permutation groups U and G in GAP. U > has order 480 and G has order 185794560. Let elements of U be u_1, u_2, > ...u_480. I am interested in the cosets > u_1G, u_2G,...u_480G. I would like to be able to compute the number of > distinct such cosets of G. (Here there may be repeated cosets.) I was > wondering how I could do this efficiently in GAP. Try something like the following: I := Intersection( U, G ); rc := RightCosets( G, I ); Length ( rc ); Best regards, Marco Costantini From hulpke at math.colostate.edu Wed Aug 4 03:31:16 2004 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Re: Reading data Message-ID: <200408040231.i742VGTV025316@schur.math.colostate.edu> Dear GAP Forum, Tim Boykett wrote > this should be a silly question: how do I read in > some table of data? I have a file with what is essentially > a matrix as space-separated integers, and I would like > to get it into GAP as a matrix without having to manually > place commas and square brackets in the file. For the case that the data format of the file is both simple and reliable, and that the objects in the file can be understood by GAP --as is the case for a file containing space separated integers-- the following is perhaps the easiest way to import the data. 1. Read the file using StringFile' (see StringFile'' in the GAP documentation); this yields a GAP string. 2. Perform the manipulations you do not want to apply to the file. In the example, normalize the whitespace if necessary (see NormalizeWhitespace'' in the GAP documentation), globally replace the whitespace by commas and --if applicable-- replace line separators by substrings of the form ],[' representing the switch to a new matrix row (see ReplacedString''), and add square brackets around the string (see Concatenation''), such that the string finally has a syntax that GAP understands. 3. Evaluate this string using EvalString' (see EvalString''); this will return the matrix you wanted to get. If the input data does not contain information about the distribution of the entries to rows and columns then the result of step 2. may be a list of all matrix entries. Then you can turn this into a matrix using a command such as List( [ 1 .. nrrows ], i -> list{ [ 1 .. nrcols ] + (i-1)*nrcols } ); where list' is the list of integers, and nrrows' and nrcols' are the matrix dimensions. If the data format is more complicated or not reliable --for example, the numbers of rows and columns of the matrix may be stored in the header of the file, or some missing matrix entries may be marked as ?' or something similar that is not understood by GAP-- then you can read in a text file via streams: stream:=InputTextFile("myfilename"); while not IsEndOfStream(stream) do line:=ReadLine(stream); ... process od; Note that essentially you will be getting strings and will have to cut them apart yourself (for example using SplitString'). You then can use Int' or Rat' to convert a string to a number, and you can catch weird input before GAP signals an error. Also be aware that the strings you get are CR terminated and you might want to clean them up using `Chomp'. All the best, Thomas Breuer and Alexander Hulpke From freundt at math.TU-Berlin.DE Sun Aug 8 16:48:04 2004 From: freundt at math.TU-Berlin.DE (Sebastian Freundt) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] segfault after call of FLOAT_STRING Message-ID: Hi list, following occured when investigating the rudiments of the float.c in the gap core. gap> FLOAT_STRING(21); Segmentation Fault The error has been in the core since at least May 2002 (gap4.3r3) and is even in the most recent version of gap. Greets Sebastian From gap at gap.zssm.zp.ua Mon Aug 9 20:11:34 2004 From: gap at gap.zssm.zp.ua (Alexander Konovalov) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] 5th International Algebraic Conference in Ukraine (1st Announcement) Message-ID: <605930092.20040809211134@gap.zssm.zp.ua> Dear GAP Forum members, I am forwarding the conference announcement from Odessa. Best wishes, Alexander Konovalov --------------------------------------------------------------------- FIRST ANNOUNCEMENT The 5th International Algebraic Conference in Ukraine will be held on 20-27, July, 2005 in the Odessa I.I. Mechnikov National University. The Conference is organized jointly by the Odessa I.I. Mechnikov National University, Kyiv Taras Shevchenko National University and Institute of Mathematics of National Academy of Sciences of Ukraine. Chairman of Organizing committee of conference - V.A.Smyntyna, rector of ONU; The vice-chairman - Varbanets P.D., the head of the faculty of computer and discrete mathematics ONU. Co-chairmen of Program committee: Kirichenko V.V., Sushchanskij V.I. The conference will include the following topical sections: 1. Rings and Modules; 2. Theory of Groups; 3. Groups and Algebraic Dynamics; 4. Algebraic Geometry, Theory of Representations and Linear algebra; 5. The Analytical and Algebraic Theory of Numbers; 6. Computer Algebra and Discrete Mathematics; 7. Topological Methods in Algebra; 8. Semigroups and Algebraic Systems We plan plenary talks (45 min), section talks (25 min) and short communications (15 min) The official languages of the Conference are Ukraine, Russian and English. Persons interested in participating at the Conference are kindly asked to register by e-mail or by post (see Appendix 1) as well as to send one page abstract in English, which should be prepared in LaTeX (see Appendix 2) both by e-mail and by post till April 15, 2005. At the moment more than 100 algebraists from different countries asked to be included in the mailing list of the Conference. The registration fee is 100 USD (for accompanying persons 50 USD), for participants from the countries of the former Soviet Union the registration fee is 30 USD (for accompanying persons 15 USD). The registration fee is to be paid upon arrival in Odessa. The fee covers organization costs: abstracts, tea/coffee during breaks, and cultural program. The accomodation price in Odessa at the moment is from 20 to 80 USD per night depending on facilities. Further information you can find on the web page of the Conference http://www.imem.odessa.ua/algconf The Organizing Committee will have the opportunity to pre-book rooms in Students Hostel (for interested participants). We regret that travel and daily expenses cannot be paid by the Organizing Committee. For further information or specific requests please contact the Organizing Committee at the below e-mail address algconf@imem.odessa.ua varb@te.net.ua The correspondence should be addressed to: Prof. Dr. P.D. Varbanets Department of Mathematics, Economics and Mechanics Odessa I.I. Mechnikov National University 2 Dvoryanskaya str. 65026 Odessa UKRAINE Tel/Fax: +38 (0482) 23-82-00 Tel: +38 (0482) 68-83-29 Appendix 1 Please, fill in the registration form below in LaTeX and send it to us algconf@imem.odessa.ua or by post First name: _______________________________________________ Other names: _____________________________________________ Birth date: _______________ Citizenship: ____________________ Postal address: ____________________________________________ __________________________________________________________ Institution and affiliation: ___________________________________ __________________________________________________________ Phone/fax number: _________________________________________ __________________________________________________________ E-mail: ___________________________________________________ Talk: I intend to give a lecture/I do not intend to give a lecture Section: ___________________________________________________ Co-authors: _______________________________________________ Title of the talk: ___________________________________________ _________________________________________________________ _________________________________________________________ Additional information: _________________________________________________________ Date of arrival in Odessa: _____________________________________ Accomodation: (please, indicate the type of appartment, hotel rating, and the period for which you intend to stay at the hotel) _________________________________________________________ _________________________________________________________ Appendix 2 Abstracts of the talks will be published before the beginning of the conference. Please send your abstracts composed according to the Latex template below (not to exceed one page) to the email address algconf@imem.odessa.ua before April 15, 2005. \documentclass[12pt]{article} \usepackage{amsmath,amssymb} \pagestyle{empty} \textheight=23.5cm \textwidth=15.7cm \voffset=-0.8cm \hoffset=-1.4cm \sloppy \begin{document} \begin{center} {\LARGE Title} \end{center} \vskip 0.1cm \centerline{\large \large A.~Authors } \vskip 0.7cm The body of the abstract here \medskip \noindent \begin{minipage}[t]{7.5cm} \small{ Your address here } \end{minipage} \end{document} From dutour at liga.ens.fr Fri Jul 30 08:04:11 2004 From: dutour at liga.ens.fr (Mathieu Dutour) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Reading data? In-Reply-To: <40E3FE9E.3070401@timesup.org> References: <40E3FE9E.3070401@timesup.org> Message-ID: <20040730070411.GA51476@orge.ens.fr> On Thu, Jul 01, 2004 at 02:07:58PM +0200, Tim B wrote: > > Hi All, > > this should be a silly question: how do I read in > some table of data? I have a file with what is essentially > a matrix as space-separated integers, and I would like > to get it into GAP as a matrix without having to manually > place commas and square brackets in the file. > > This has to be easy, but I cannot find even the faintest > shimmer of a way to make it happen - I cannot even see how > to read an integer! > > Hope someone can help! > > Cheers, > > Tim Dear Tim, I am confronted with a similar problem very frequently. The solution, which I am using, is to use perl script. So, in your case the script would transform the file 1 2 3 4 5 6 into the file return [[1,2,3],[4,5,6]]; which you can get in GAP by the command TheMat:=ReadAsFunction("fileMat")(); If necessary I will write the script for you, the idea being that every kind of file requires its own script. Hope this help. Mathieu -- Mathieu Dutour Researcher in Math Tel. (+972)2 65 84 103 and Computer Science Fax. (+972)2 56 30 702 Einstein Institute of Mathematics E-mail: Mathieu.Dutour@ens.fr Hebrew University of Jerusalem http://www.liga.ens.fr/~dutour Israel From nicola.sottocornola at wanadoo.fr Fri Aug 13 12:17:16 2004 From: nicola.sottocornola at wanadoo.fr (Nicola SOTTOCORNOLA) Date: Thu Jan 5 13:04:20 2006 Subject: [GAP Forum] Matrix group Message-ID: <30670450.1092395836723.JavaMail.www@wwinf1002> Dear Gap-forum, I'm trying to study the 80 elements group generated by the matrices A:=[[0,0,0,0,1], [1,0,0,0,0], [0,1,0,0,0], [0,0,1,0,0], [0,0,0,1,0]];; and R:=[[1,0,0,0,0], [0,1,0,0,0], [0,0,1,0,0], [0,0,0,-1,0], [0,0,0,0,-1]];; This group has a normal subgroup H of size 16. H:=MaximalNormalSubgroups(G); [ ] I'd like to study the structure of H. Why I obtain the following error msg? gap> P := PresentationViaCosetTable(H);; Error, first argument must be a group called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Thanks, Nicola From holmespe at for.mat.bham.ac.uk Fri Aug 13 13:12:57 2004 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Thu Jan 5 13:04:21 2006 Subject: [GAP Forum] Matrix group In-Reply-To: <30670450.1092395836723.JavaMail.www@wwinf1002> Message-ID: Nicola, On Fri, 13 Aug 2004, Nicola SOTTOCORNOLA wrote: > This group has a normal subgroup H of size 16. > > H:=MaximalNormalSubgroups(G); > [ ] > The output from this looks like a list of length 1, where the element H[1] group. > I'd like to study the structure of H. Why I obtain the following error msg? > > gap> P := PresentationViaCosetTable(H);; > Error, first argument must be a group called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'retur