From hulpke at math.colostate.edu Fri Jan 4 19:35:13 2008 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Jan 4 19:36:00 2008 Subject: [GAP Forum] Cartesian Group Direct Product In-Reply-To: References: Message-ID: <45807BA7-83C3-4FCD-985D-B9A01256CDEA@math.colostate.edu> Dear Paul Hjelmsted, Dear GAP-Forum, > The problem with this is that it merely seems to shuffle between the > non-Cartesian > form of the permutations, that is, for example, sending (123) to > (567) (Second Embedding) or merely leaving at at (123) (First > Embedding) but I may be doing something wrong. > > I am not getting anything Cartesian-wise. Perhaps I must leave D4 > (actually called Dihedral(8)), > as a pc-group and not a perm group? > > After I get this right, I need to generate the CycleIndex, and then > expand it in a manner you indicated, to get the full Polya > Polynomial, whose coefficients will be useful to me (especially to > find how many octads there are under D8 X S3 (Dihedral(16) X > Symmetric(3)) and other issues > > I need these generators for D4 X S3: > > (0,3,6,9)(1,4,7,10)(2,5,8,11) > (0,4,8)(1,5,9)(2,6,10)(3,7,11) > (1,7)(3,9)(5,11) > (1,11)(2,10)(3,9)(4,8)(5,7) > > Or something with the same meaning OK. You want a different representation for the direct product. GAP gives you by default the intransitive action (which has smaller degree), you would prefer the transitive product action. The easiest way to construct this group is to let the intransitive direct product act on the cartesian product of the domains: gap> d4:=DihedralGroup(IsPermGroup,8); Group([ (1,2,3,4), (2,4) ]) gap> s3:=SymmetricGroup(3); Sym( [ 1 .. 3 ] ) gap> d:=DirectProduct(d4,s3); Group([ (1,2,3,4), (2,4), (5,6,7), (5,6) ]) gap> cart:=Cartesian([1..4],[5..7]); [ [ 1, 5 ], [ 1, 6 ], [ 1, 7 ], [ 2, 5 ], [ 2, 6 ], [ 2, 7 ], [ 3, 5 ], [ 3, 6 ], [ 3, 7 ], [ 4, 5 ], [ 4, 6 ], [ 4, 7 ] ] gap> hom:=ActionHomomorphism(d,cart,OnTuples,"surjective"); gap> prod:=Image(hom); Group([ (1,4,7,10)(2,5,8,11)(3,6,9,12), (4,10)(5,11)(6,12), (1,2,3)(4,5,6)(7,8,9)(10,11,12), (1,2)(4,5)(7,8)(10,11) ]) Up to labelling (which is due to the arrangement of the pairs in `cart') these are the generators you listed. You can use the map `hom' to go back to the intransitive direct product and use its decomposition functions. 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 phjelmstad at msn.com Sat Jan 5 18:05:33 2008 From: phjelmstad at msn.com (PAUL HJELMSTAD) Date: Sat Jan 5 18:06:28 2008 Subject: [GAP Forum] Cartesian Group Direct Product In-Reply-To: <45807BA7-83C3-4FCD-985D-B9A01256CDEA@math.colostate.edu> Message-ID: Dear Alexander Hulpke, Dear GAP-Forum, Thanks! I realized after I sent my last message, that I was not understanding the meaning of "Cartesian" correctly, but I see you understood what I meant. Someone else called what I am looking for the "cross-product" representation, or what you call the transitive product representation. Finding the CycleIndex should be relatively easy here, but expanding to the Polya Polynomial has proved difficult, merely because of a problem with variables. Thanks PGH >From: Alexander Hulpke >To: PAUL HJELMSTAD >CC: GAP Forum >Subject: Re: [GAP Forum] Cartesian Group Direct Product >Date: Fri, 4 Jan 2008 12:35:13 -0700 > >Dear Paul Hjelmsted, Dear GAP-Forum, > >>The problem with this is that it merely seems to shuffle between the >>non-Cartesian >>form of the permutations, that is, for example, sending (123) to (567) >>(Second Embedding) or merely leaving at at (123) (First Embedding) but I >>may be doing something wrong. >> >>I am not getting anything Cartesian-wise. Perhaps I must leave D4 >>(actually called Dihedral(8)), >>as a pc-group and not a perm group? >> >>After I get this right, I need to generate the CycleIndex, and then >>expand it in a manner you indicated, to get the full Polya Polynomial, >>whose coefficients will be useful to me (especially to find how many >>octads there are under D8 X S3 (Dihedral(16) X Symmetric(3)) and other >>issues >> >>I need these generators for D4 X S3: >> >>(0,3,6,9)(1,4,7,10)(2,5,8,11) >>(0,4,8)(1,5,9)(2,6,10)(3,7,11) >>(1,7)(3,9)(5,11) >>(1,11)(2,10)(3,9)(4,8)(5,7) >> >>Or something with the same meaning > >OK. You want a different representation for the direct product. GAP gives >you by default the intransitive action (which has smaller degree), you >would prefer the transitive product action. > >The easiest way to construct this group is to let the intransitive direct >product act on the cartesian product of the domains: > >gap> d4:=DihedralGroup(IsPermGroup,8); >Group([ (1,2,3,4), (2,4) ]) >gap> s3:=SymmetricGroup(3); >Sym( [ 1 .. 3 ] ) >gap> d:=DirectProduct(d4,s3); >Group([ (1,2,3,4), (2,4), (5,6,7), (5,6) ]) >gap> cart:=Cartesian([1..4],[5..7]); >[ [ 1, 5 ], [ 1, 6 ], [ 1, 7 ], [ 2, 5 ], [ 2, 6 ], [ 2, 7 ], [ 3, 5 ], > [ 3, 6 ], [ 3, 7 ], [ 4, 5 ], [ 4, 6 ], [ 4, 7 ] ] >gap> hom:=ActionHomomorphism(d,cart,OnTuples,"surjective"); > >gap> prod:=Image(hom); >Group([ (1,4,7,10)(2,5,8,11)(3,6,9,12), (4,10)(5,11)(6,12), > (1,2,3)(4,5,6)(7,8,9)(10,11,12), (1,2)(4,5)(7,8)(10,11) ]) > > >Up to labelling (which is due to the arrangement of the pairs in `cart') >these are the generators you listed. You can use the map `hom' to go back >to the intransitive direct product and use its decomposition functions. > > >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 phjelmstad at msn.com Tue Jan 15 02:04:05 2008 From: phjelmstad at msn.com (PAUL HJELMSTAD) Date: Tue Jan 15 02:04:43 2008 Subject: FW: [GAP Forum] Cartesian Group Direct Product Message-ID: Dear GAP-Forum: I also found the Cycle Index and Polya Polynomial of the Group generated by all the primes coprime to 24 (Totient). (1,5,7,11,13,17,19,23) Here are my results. My question is, what is the Group-theoretical name for this? (Something like D8.2 X S3, having order 192?) G:= Group( [ (1,2,3,4,5,6,7,8), (1,3)(2,6)(5,7), (1,5)(3,7), (1,7)(2,6)(3,5), ( 9,10), ( 9,10,11) ] ); (Convert to Cartesian...) Cycle Index: 1/192*x_1^24+1/96*x_1^12*x_2^6+1/64*x_1^8*x_2^8+1/24*x_1^6*x_2^9+1/32*x_1^4*x_\2^10+1/8*x_1^2*x_2^11+5/48*x_2^12+1/96*x_3^8+1/48*x_3^4*x_6^2+1/6*x_4^6+1/12*x\_3^2*x_6^3+5/96*x_6^4+1/6*x_8^3+1/12*x_12^2+1/12*x_24 Polya: x_1^24+x_1^23+7*x_1^22+23*x_1^21+97*x_1^20+294*x_1^19+870*x_1^18+2051*x_1^17+4\272*x_1^16+7352*x_1^15+10980*x_1^14+13790*x_1^13+15008*x_1^12+13790*x_1^11+109\80*x_1^10+7352*x_1^9+4272*x_1^8+2051*x_1^7+870*x_1^6+294*x_1^5+97*x_1^4+23*x_1\^3+7*x_1^2+x_1+1 Thanks PGH To: phjelmstad@msn.comCC: forum@gap-system.org; hulpke@math.colostate.eduSubject: Re: [GAP Forum] Cartesian Group Direct ProductFrom: Paul.Hjelmstad@allianzlife.comDate: Sun, 6 Jan 2008 16:06:22 -0600Dear Alexander Hulpke, Dear GAP-Forum, Works great. The relabelling was confusing, but that is because the permutation for S3 permutes the origin, so to speak, using (5,6), but it doesn't matter, I get the correct CycleIndex and expanding it out is easy, now that I know what to do. This is the Polya Polynomials I get for D8 X S3 and C8 X C3 respectively, I believe they are correct: x^24+x^23+9*x^22+31*x^21+151*x^20+496*x^19+1553*x^18+3777*x^17+8028*x^16+13981\ *x^15+21042*x^14+26516*x^13+28898*x^12+26516*x^11+21042*x^10+13981*x^9+8028*x^\ 8+3777*x^7+1553*x^6+496*x^5+151*x^4+31*x^3+9*x^2+x+1 x^24+x^23+12*x^22+85*x^21+446*x^20+1771*x^19+5620*x^18+14421*x^17+30667*x^16+5\ 4484*x^15+81752*x^14+104006*x^13+112720*x^12+104006*x^11+81752*x^10+54484*x^9+\ 30667*x^8+14421*x^7+5620*x^6+1771*x^5+446*x^4+85*x^3+12*x^2+x+1 Paul HjelmstadITS Enterprise Security763-582-6547 (x46547)Paul_Hjelmstad@allianzlife.com 'PAUL HJELMSTAD' 01/05/2008 12:05 PM To hulpke@math.colostate.edu cc forum@gap-system.org Subject Re: [GAP Forum] Cartesian Group Direct Product Dear Alexander Hulpke, Dear GAP-Forum,Thanks! I realized after I sent my last message, that I was not understanding the meaning of 'Cartesian' correctly, but I see you understood what I meant. Someone else called what I am looking for the 'cross-product' representation, or what you call the transitive product representation.Finding the CycleIndex should be relatively easy here, but expanding to the Polya Polynomialhas proved difficult, merely because of a problem with variables. ThanksPGH>From: Alexander Hulpke >To: PAUL HJELMSTAD >CC: GAP Forum >Subject: Re: [GAP Forum] Cartesian Group Direct Product>Date: Fri, 4 Jan 2008 12:35:13 -0700>>Dear Paul Hjelmsted, Dear GAP-Forum,>>>The problem with this is that it merely seems to shuffle between the >>non-Cartesian>>form of the permutations, that is, for example, sending (123) to (567) >>(Second Embedding) or merely leaving at at (123) (First Embedding) but I >>may be doing something wrong.>>>>I am not getting anything Cartesian-wise. Perhaps I must leave D4 >>(actually called Dihedral(8)),>>as a pc-group and not a perm group?>>>>After I get this right, I need to generate the CycleIndex, and then >>expand it in a manner you indicated, to get the full Polya Polynomial, >>whose coefficients will be useful to me (especially to find how many >>octads there are under D8 X S3 (Dihedral(16) X Symmetric(3)) and other >>issues>>>>I need these generators for D4 X S3:>>>>(0,3,6,9)(1,4,7,10)(2,5,8,11)>>(0,4,8)(1,5,9)(2,6,10)(3,7,11)>>(1,7)(3,9)(5,11)>>(1,11)(2,10)(3,9)(4,8)(5,7)>>>>Or something with the same meaning>>OK. You want a different representation for the direct product. GAP gives >you by default the intransitive action (which has smaller degree), you >would prefer the transitive product action.>>The easiest way to construct this group is to let the intransitive direct >product act on the cartesian product of the domains:>>gap> d4:=DihedralGroup(IsPermGroup,8);>Group([ (1,2,3,4), (2,4) ])>gap> s3:=SymmetricGroup(3);>Sym( [ 1 .. 3 ] )>gap> d:=DirectProduct(d4,s3);>Group([ (1,2,3,4), (2,4), (5,6,7), (5,6) ])>gap> cart:=Cartesian([1..4],[5..7]);>[ [ 1, 5 ], [ 1, 6 ], [ 1, 7 ], [ 2, 5 ], [ 2, 6 ], [ 2, 7 ], [ 3, 5 ],> [ 3, 6 ], [ 3, 7 ], [ 4, 5 ], [ 4, 6 ], [ 4, 7 ] ]>gap> hom:=ActionHomomorphism(d,cart,OnTuples,'surjective');>>gap> prod:=Image(hom);>Group([ (1,4,7,10)(2,5,8,11)(3,6,9,12), (4,10)(5,11)(6,12),> (1,2,3)(4,5,6)(7,8,9)(10,11,12), (1,2)(4,5)(7,8)(10,11) ])>>>Up to labelling (which is due to the arrangement of the pairs in `cart') >these are the generators you listed. You can use the map `hom' to go back >to the intransitive direct product and use its decomposition functions.>>>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>> CONFIDENTIALITY NOTICE: The information in this message, and any files transmitted with it, is confidential, may be legally privileged, and intended only for the use of the individual(s) named above. Be aware that the use of any confidential or personal information may be restricted by state and federal privacy laws. If you are not the intended recipient, do not further disseminate this message. If this message was received in error, please notify the sender and delete it. From megha.iitd at gmail.com Tue Jan 15 10:24:17 2008 From: megha.iitd at gmail.com (Megha Gupta) Date: Tue Jan 15 10:24:53 2008 Subject: [GAP Forum] related to matrices Message-ID: <1447f9270801150224v7e7eff4dy90ffdf49894d1777@mail.gmail.com> Dear Gap Forum, Given invertible matrices A, B, C having determinant 1 and entries from integers i.e. from SL(3,Z). Is it possible to check whether A can be written as a product of powers of matrices B, C and their inverses? Cheers Megha From alice at maths.uwa.edu.au Wed Jan 16 07:53:08 2008 From: alice at maths.uwa.edu.au (Alice Niemeyer) Date: Wed Jan 16 07:54:06 2008 Subject: [GAP Forum] GAP related Research Jobs at Perth Western Australia Message-ID: <478DB7E4.60003@maths.uwa.edu.au> Hi everyone, the following jobs are available at UWA in Perth. At the very least one of the appointments will be for algorithms for group theory and these algorithms are usually developed and implemented in GAP. Cheers, Alice Niemeyer. > > RESEARCH ASSOCIATE POSITIONS (REF: 2139) > > SCHOOL OF MATHEMATICS AND STATISTICS, UNIVERSITY OF WESTERN AUSTRALIA > > > > 2 x 3 year appointments > > 1 x 2 year appointment > > with further employment dependent on funding > > and demand for the research programs. > > Salary Range: Level A $48,905 - $66,367 p.a. - minimum starting salary > > for appointee with PhD will be $61,827 p.a. > > Closing date: Friday, 29 February 2008 > > > > Full details available at: > > > > https://www.his.admin.uwa.edu.au/jobvacs/external/academic/doc/doc1089925.RTF > > > > > > > > Three positions are available in the research group in Groups and > > Combinatorics led by Professor Cheryl E. Praeger and including Dr Alice > > Niemeyer, Associate Professors Cai Heng Li and Gordon Royle and Dr > > Michael Giudici. Appointees are expected to conduct research within the > > research programs of Praeger's ARC Federation Fellowship Grant ?Group > > actions: combinatorics, geometry and computation? and/or Niemeyer and > > Praeger's ARC Discovery Grant ?Groups: statistics, structure and > > algorithms?. At least one successful applicant will work in the area of > > computational group theory and at least one will work in the area of > > permutation groups and algebraic combinatorics. > > > > A PhD (or near-completion) in a relevant field is essential. Beyond > > technical strength, we seek persons who get excited about achieving an > > outcome to join our focussed research teams. For further information > > regarding any of these positions please email Cheryl Praeger or Alice > > Niemeyer at mathsjobs@maths.uwa.edu.au. > > > > Application Details: Applicants must address the selection criteria. > > Written applications quoting the reference number, personal contact > > details, qualifications and experience, along with contact details of > > three referees should be sent to Director, Human Resources, The > > University of Western Australia, M350, 35 Stirling Highway, Crawley WA > > 6009 or emailed to jobs@uwa.edu.au by the closing date. > > -- =*=*=*=*=*=*=*=*=*=*=*=M=*=*=*=*M*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* Alice C. Niemeyer =@\___) =@\ School of Mathematics & Statistics alice@maths.uwa.edu.au \_ ( ( \ University of Western Australia +61-8-6488 3890 .| .| .|_(\_) Nedlands, WA 6009, Australia. =*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* WWW: http://www.maths.uwa.edu.au/~alice/ From jaijinenedra at yahoo.co.in Mon Jan 21 08:49:46 2008 From: jaijinenedra at yahoo.co.in (Vivek Jain) Date: Mon Jan 21 08:50:23 2008 Subject: [GAP Forum] transversals Message-ID: <876717.63223.qm@web8708.mail.in.yahoo.com> How can we determine all the right transversals with identity of a subgroup in a finite group using GAP? Vivek Kumar Jain Dept. of Mathematics Univ. of Allahabad Allahabad-211002 India --------------------------------- Bollywood, fun, friendship, sports and more. You name it, we have it. From dkahrobaei at CityTech.Cuny.Edu Fri Jan 18 16:27:08 2008 From: dkahrobaei at CityTech.Cuny.Edu (Delaram Kahrobaei) Date: Mon Jan 21 10:31:57 2008 Subject: [GAP Forum] Group Theory and Theoretical Computer Science Conference Message-ID: <47908D0C0200009F000009F9@email1.citytech.cuny.edu> May 2nd 2008 Interdisciplinary Research in Logic, Group Theory, and Theoretical Computer Science Conference at CUNY The Second Conference for Women in Mathematics (New York) All interested members of the mathematical community are invited to attend. Speakers will include Moira Chas (Stony Brook University) Natasha Dobrinen (University of Denver) Olga Kharlampovich (McGill University) Gretchen Ostheimer (Hofstra University) Jennifer Taback (Bowdoin College) Carol Wood (Wesleyan University) Discussion Panel Jane Gilman (Rutgers University) Linda Keen (Lehman College and The Graduate Center (CUNY) (Tentative) Estela Rojas (NYC College of Technology (CUNY)) Gretchen Ostheimer (Hofstra University) Christina Sormani (Lehman College and The Graduate Center (CUNY)) This will be the second meeting of the New York Women in Mathematics Network supported by NSF. There will be a poster session for women PhD students. To apply please contact one of the organizers Victoria Gitman (vgitman@nylogic.org) or Delaram Kahrobaei(dkahrobaei@citytech.cuny.edu). Further details of the meeting are available at: http://www.nywimn.net Delaram Kahrobaei, Ph.D. Assistant Professor in Mathematics E-mail: DKahrobaei@CityTech.CUNY.edu Tel: +1.718.260.5384 Fax: +1.718.254.8537 Cel: +1.646.318.8520 Webpage: http://websupport1.citytech.cuny.edu/Faculty/dkahrobaei/ Address: Mathematics Department (Namm 707), New York City College of Technology (CUNY), 300 Jay Street, Brooklyn, NY 11201 From l.h.soicher at qmul.ac.uk Wed Jan 23 20:44:39 2008 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Wed Jan 23 20:45:52 2008 Subject: [GAP Forum] Announcing the Circle Package Message-ID: <20080123204439.GA15610@maths.qmul.ac.uk> Dear Forum Members, It is my pleasure to announce the newly accepted Circle package for GAP, by Alexander Konovalov and Panagiotis Soules. This package provides functionality to compute in the adjoint groups of associative rings. The Circle package homepage is http://www.cs.st-andrews.ac.uk/~alexk/circle.htm where you can download the package and also find HTML and PDF documentation. Sincerely, Leonard Soicher (on behalf of the GAP Council) From gerhard.hiss at math.rwth-aachen.de Fri Jan 25 16:31:43 2008 From: gerhard.hiss at math.rwth-aachen.de (Gerhard Hiss) Date: Fri Jan 25 16:32:14 2008 Subject: [GAP Forum] Wedderga Message-ID: Dear Members of the GAP forum, it is my pleasure to announce the new GAP package Wedderga by Osnel Broche Cristo, Alexander Konovalov, Aurora Olivieri, Gabriela Olteanu, and Angel del Rio. Wedderga contains routines to compute the Wedderburn decomposition of a group algebra of a finite group over abelian number fields and over finite fields. Wedderga also contains functions to compute the primitive central idempotents of group algebras, and to construct crossed products. Wedderga homepages are http://www.um.es/adelrio/wedderga.htm and http://www.cs.st-andrews.ac.uk/~alexk/wedderga.htm, where you can download the package and its documentation. Sincerely, Gerhard Hiss January 25, 200 -- Gerhard Hiss, Lehrstuhl D fuer Mathematik, RWTH Aachen, 52056 Aachen Tel.: (+49) (0) 241 / 80-94543 From armahg at gmail.com Fri Jan 25 21:56:58 2008 From: armahg at gmail.com (George Armah) Date: Fri Jan 25 21:57:36 2008 Subject: [GAP Forum] Cross Compiling GAP for Mac OS X Message-ID: <479A5B2A.8070009@gmail.com> Hello, I am trying to build a universal gap binary for Mac OS X. To get started I ran the following to try and test what the results of a cross compilation would be ./configure --build=i686-apple-darwin8 --with-arch=apple --host=powerpc-apple-darwin8 and got the following error: checking unaligned access... configure: error: cannot run test program while cross compiling See `config.log' for more details. make: *** [bin/powerpc-apple-darwin8-gcc/Makefile] Error 1 Is there a way to disable the above test? Am I doing this completely wrong? Any and all advice is welcome. Thanks in advance, George Armah. p.s. I am an undergraduate Math & C.S. major and am using GAP and the kbmag package to learn about the Automatic structures of Coxeter groups. From ndroock1 at gmail.com Sun Jan 27 10:39:58 2008 From: ndroock1 at gmail.com (Nilo de Roock) Date: Sun Jan 27 10:40:18 2008 Subject: [GAP Forum] gap and Windows Vista Message-ID: forum, I am aware this is not a math related gap question but I don't know where else to go. The command c:/gap4r4/bin/gapw95 -L c:/gap4r4/bin/ws.gap works fine on XP but generates the following error message on Vista: gap: sorry, options must not be grouped '-L:'. Vista: C:\gap4r4\bin>gapw95 -L: "c:/gap4r4/bin/ws.gap" gap: sorry, options must not be grouped '-L:'. usage: gap [OPTIONS] [FILES] run the Groups, Algorithms and Programming system, Version 4.4.10 use '-h' option to get help. gap: Press to end program C:\gap4r4\bin> XP: ( behaviour is as expected ). C:\gap4r4\bin>c:/gap4r4/bin/gapw95 -L c:/gap4r4/bin/ws.gap GAP4, Version: 4.4.10 of 02-Oct-2007, i686-pc-cygwin-gcc Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, id10 0.1, trans 1.0, prim 2.1 loaded. Packages: AClib 1.1, Polycyclic 2.2, Alnuth 2.2.5, CrystCat 1.1.2, Cryst 4.1.5, AutPGrp 1.2, CRISP 1.3.1, CTblLib 1.1.3, TomLib 1.1.2, FactInt 1.5.2, GAPDoc 1.1, FGA 1.1.0.1, IRREDSOL 1.1.2, LAGUNA 3.4, Sophus 1.23, Polenta 1.2.7, ResClasses 2.5.3 loaded. gap> -- kind regards / met vriendelijke groet, nilo de roock From resteban at mat.upv.es Sun Jan 27 14:18:05 2008 From: resteban at mat.upv.es (Ramon Esteban) Date: Sun Jan 27 14:18:38 2008 Subject: [GAP Forum] gap and Windows Vista In-Reply-To: References: Message-ID: <20080127141805.GA8823@upvnet.upv.es> Dear Nilo, dear forum, I see you are writing '-L:' in the Vista command line and '-L' in the XP command line. Have you tried to delete the ':' in the Vista version? I have not tried the Vista version, so I cannot tell you more. Best regards, -- Ramon Clau p?blica PGP/Llave p?blica PGP/Clef publique PGP/PGP public key: http://www.rediris.es/cert/servicios/keyserver/ http://ttt.upv.es/~resteban/resteban.pgp Nou tel?fon/Nuevo tel?fono/Nouveau t?l?phone/New phone: (+34)963877007 x76676 * Nilo de Roock [080127 12:48]: > forum, > > I am aware this is not a math related gap question but I don't know > where else to go. > > The command c:/gap4r4/bin/gapw95 -L c:/gap4r4/bin/ws.gap works fine on > XP but generates the following error message on Vista: gap: sorry, > options must not be grouped '-L:'. > > > > Vista: > C:\gap4r4\bin>gapw95 -L: "c:/gap4r4/bin/ws.gap" > gap: sorry, options must not be grouped '-L:'. > usage: gap [OPTIONS] [FILES] > run the Groups, Algorithms and Programming system, Version 4.4.10 > use '-h' option to get help. > > gap: Press to end program > > C:\gap4r4\bin> > > > > > XP: ( behaviour is as expected ). > C:\gap4r4\bin>c:/gap4r4/bin/gapw95 -L c:/gap4r4/bin/ws.gap > GAP4, Version: 4.4.10 of 02-Oct-2007, i686-pc-cygwin-gcc > Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, > small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, > id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, id10 0.1, > trans 1.0, prim 2.1 loaded. > Packages: AClib 1.1, Polycyclic 2.2, Alnuth 2.2.5, CrystCat 1.1.2, > Cryst 4.1.5, AutPGrp 1.2, CRISP 1.3.1, CTblLib 1.1.3, > TomLib 1.1.2, FactInt 1.5.2, GAPDoc 1.1, FGA 1.1.0.1, > IRREDSOL 1.1.2, LAGUNA 3.4, Sophus 1.23, Polenta 1.2.7, > ResClasses 2.5.3 loaded. > gap> > > > -- > kind regards / met vriendelijke groet, > nilo de roock > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ndroock1 at gmail.com Sun Jan 27 20:08:43 2008 From: ndroock1 at gmail.com (Nilo de Roock) Date: Sun Jan 27 20:10:04 2008 Subject: [GAP Forum] gap and Windows Vista In-Reply-To: <20080127141805.GA8823@upvnet.upv.es> References: <20080127141805.GA8823@upvnet.upv.es> Message-ID: Thank you very much, Ramon! It must have been the 'copy / paste'-ing from one vmware XP machine to another vmware Vista machine, that got it ( me ) mixed up. A non-problem but nevertheless solved. kind regards, nilo 2008/1/27, Ramon Esteban : > Dear Nilo, dear forum, > > I see you are writing '-L:' in the Vista command line and '-L' in the > XP command line. Have you tried to delete the ':' in the Vista > version? > > I have not tried the Vista version, so I cannot tell you more. > > Best regards, > -- > Ramon > > Clau p?blica PGP/Llave p?blica PGP/Clef publique PGP/PGP public key: > http://www.rediris.es/cert/servicios/keyserver/ > http://ttt.upv.es/~resteban/resteban.pgp > Nou tel?fon/Nuevo tel?fono/Nouveau t?l?phone/New phone: (+34)963877007 x76676 > > * Nilo de Roock [080127 12:48]: > > forum, > > > > I am aware this is not a math related gap question but I don't know > > where else to go. > > > > The command c:/gap4r4/bin/gapw95 -L c:/gap4r4/bin/ws.gap works fine on > > XP but generates the following error message on Vista: gap: sorry, > > options must not be grouped '-L:'. > > > > > > > > Vista: > > C:\gap4r4\bin>gapw95 -L: "c:/gap4r4/bin/ws.gap" > > gap: sorry, options must not be grouped '-L:'. > > usage: gap [OPTIONS] [FILES] > > run the Groups, Algorithms and Programming system, Version 4.4.10 > > use '-h' option to get help. > > > > gap: Press to end program > > > > C:\gap4r4\bin> > > > > > > > > > > XP: ( behaviour is as expected ). > > C:\gap4r4\bin>c:/gap4r4/bin/gapw95 -L c:/gap4r4/bin/ws.gap > > GAP4, Version: 4.4.10 of 02-Oct-2007, i686-pc-cygwin-gcc > > Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, > > small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, > > id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, id10 0.1, > > trans 1.0, prim 2.1 loaded. > > Packages: AClib 1.1, Polycyclic 2.2, Alnuth 2.2.5, CrystCat 1.1.2, > > Cryst 4.1.5, AutPGrp 1.2, CRISP 1.3.1, CTblLib 1.1.3, > > TomLib 1.1.2, FactInt 1.5.2, GAPDoc 1.1, FGA 1.1.0.1, > > IRREDSOL 1.1.2, LAGUNA 3.4, Sophus 1.23, Polenta 1.2.7, > > ResClasses 2.5.3 loaded. > > gap> > > > > > > -- > > kind regards / met vriendelijke groet, > > nilo de roock > > > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > From bob.heffernan at gmail.com Tue Jan 29 14:50:59 2008 From: bob.heffernan at gmail.com (Robert Heffernan) Date: Tue Jan 29 14:51:23 2008 Subject: [GAP Forum] question Message-ID: <6d9a83e90801290650leeb5326p2e44582f228827fc@mail.gmail.com> Hi, I've written a (very naive) function to test if two groups are isoclinic. However, it will sometimes return true and sometimes false for the same two groups & I'm not sure why this is happening. The code is below. I would be very grateful for any suggestions, thank you, Bob Heffernan # Code to test if two groups G and H are isoclinic. # we want: # i) an isomorphism phi1 from G/Z(G) -> H/Z(H) # ii) an isomorphism phi2 from G' -> H' # st. if # a) (g1Z(G))phi1=h1Z(H); and # b) (g2Z(G))phi1=h2Z(H) # then # c) ([g1,g2])phi2 = [h1,h2] # returns true if G~H IsIsoclinic := function(G,H) local DG,DH,ZG,ZH,GZG,HZH,phi1,phi2,elG,piG,piH,g1,g2,g1p,g2p,h1,h2; G:=Image(IsomorphismPcGroup(G)); H:=Image(IsomorphismPcGroup(H)); DG:=DerivedSubgroup(G); DH:=DerivedSubgroup(H); ZG:=Centre(G); ZH:=Centre(H); GZG:=FactorGroup(G,ZG); HZH:=FactorGroup(H,ZH); phi1:=IsomorphismGroups(GZG,HZH); if phi1=fail then return false; fi; phi2:=IsomorphismGroups(DG,DH); if phi2=fail then return false; fi; elG:=Elements(G); piG:=NaturalHomomorphismByNormalSubgroup(G,ZG); piH:=NaturalHomomorphismByNormalSubgroup(H,ZH); for g1 in elG do for g2 in elG do g1p:=Image(phi1, Image(piG, g1)); g2p:=Image(phi1, Image(piG, g2)); h1:=PreImagesRepresentative(piH, g1p); h2:=PreImagesRepresentative(piH, g2p); if not(Image(phi2, Comm(g1,g2))=Comm(h1,h2)) then return false; fi; od; od; return true; end; From reichard at maths.uwa.edu.au Wed Jan 30 00:25:47 2008 From: reichard at maths.uwa.edu.au (Sven Reichard) Date: Wed Jan 30 00:26:14 2008 Subject: [GAP Forum] question In-Reply-To: <6d9a83e90801290650leeb5326p2e44582f228827fc@mail.gmail.com> References: <6d9a83e90801290650leeb5326p2e44582f228827fc@mail.gmail.com> Message-ID: <479FC40B.4060308@maths.uwa.edu.au> Bob, according to your definition you need to find two group isomorphisms which satisfy certain properties in relation to each other. For both phi1 and phi2, there may be several candidates. GAP normally uses random methods for certain tasks, so IsomorphismGroups is not guaranteed to return the same isomorphism each time it is called. If for a certain choice of phi1 and phi2 your properties are fulfilled you can be sure the groups are isoclinic. However, if for one choice they are not fulfilled it does not mean they are not isoclinic; we might just have picked the wrong set of isomorphisms. You need to somehow show that for any choice of phi1 and phi2, a) and b) do not necessarily imply c). Hope this helps. Sven. Robert Heffernan wrote: > Hi, > > I've written a (very naive) function to test if two groups are > isoclinic. However, it will sometimes return true and sometimes false > for the same two groups & I'm not sure why this is happening. > > The code is below. I would be very grateful for any suggestions, > > thank you, > Bob Heffernan > > # Code to test if two groups G and H are isoclinic. > # we want: > # i) an isomorphism phi1 from G/Z(G) -> H/Z(H) > # ii) an isomorphism phi2 from G' -> H' > # st. if > # a) (g1Z(G))phi1=h1Z(H); and > # b) (g2Z(G))phi1=h2Z(H) > # then > # c) ([g1,g2])phi2 = [h1,h2] > > # returns true if G~H > IsIsoclinic := function(G,H) > local DG,DH,ZG,ZH,GZG,HZH,phi1,phi2,elG,piG,piH,g1,g2,g1p,g2p,h1,h2; > G:=Image(IsomorphismPcGroup(G)); > H:=Image(IsomorphismPcGroup(H)); > > DG:=DerivedSubgroup(G); > DH:=DerivedSubgroup(H); > ZG:=Centre(G); > ZH:=Centre(H); > > GZG:=FactorGroup(G,ZG); > HZH:=FactorGroup(H,ZH); > > phi1:=IsomorphismGroups(GZG,HZH); > if phi1=fail then return false; fi; > phi2:=IsomorphismGroups(DG,DH); > if phi2=fail then return false; fi; > > elG:=Elements(G); > > piG:=NaturalHomomorphismByNormalSubgroup(G,ZG); > piH:=NaturalHomomorphismByNormalSubgroup(H,ZH); > > for g1 in elG do > for g2 in elG do > g1p:=Image(phi1, Image(piG, g1)); > g2p:=Image(phi1, Image(piG, g2)); > h1:=PreImagesRepresentative(piH, g1p); > h2:=PreImagesRepresentative(piH, g2p); > if not(Image(phi2, Comm(g1,g2))=Comm(h1,h2)) then return false; fi; > od; > od; > return true; > end; -- Sven Reichard School of Mathematics and Statistics The University of Western Australia 35 Stirling Highway Crawley 6009 Western Australia > From rollandj at uwm.edu Sun Feb 3 00:29:51 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Sun Feb 3 00:29:55 2008 Subject: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz Message-ID: <47A50AFF.9030408@uwm.edu> Hello, all! I am trying to install GAP on an iBook 900 MHz running Mac OS 10.4.11 with 640 MB of RAM. I have a basic GAP install compiled. The problem is getting all the packages configured (or otherwise installed). The packages are installed in the directory /usr/local/lib/gap4r4/pkg/. Inside this directory, there is a shell script InstPackages.sh; I am attaching a copy of InstPackages.sh. When I cd to /usr/local/lib/gap4r4/pkg/ and run ./InstPackages.sh, I get the error message "tcsh: ./InstPackages.sh: Command not found." (I am running tcsh as my default shell.) Can someone help me trouble-shoot the package installation process? Sincerely, -- Jeffrey Rolland -------------- next part -------------- #!/usr/bin/sh # $Id: InstPackages.sh,v 1.7 2006/12/06 17:07:16 gap Exp $ # You need 'gzip', GNU 'tar', a C compiler, sed, pdftex to run this. # Copy the current merged package archive to the 'pkg' subdirectory of # your GAP installation. # Then start this script (or do it step by step with cut and paste) inside # this 'pkg' subdirectory. # Frank L?beck, Frank.Luebeck@Math.RWTH-Aachen.De for questions and complaints. # Note, that this isn't and is not intended to be a sophisticated script. # Even if it doesn't work completely automatically for you, you may get # an idea what to do for a complete installation of GAP. # first unpack the merged package archive inside the 'pkg' subdirectory: # tar xpzvf packages-*.tar.gz cd ace ./configure ../.. make cd .. cd anupq ./configure ../.. # on Linux with gmp in standard place and with GAP 4.3 gap.sh script # in standard path as: gap just do: make (otherwise check installation # instructions - configure output gives hints) make cd .. # You may not want a writable directory here! In this case substitute # the directories 'datagens' and 'dataword' by links to somewhere else. cd atlasrep chmod 1777 datagens dataword cd .. # Installation of Carat produces a lot of data, maybe you want to leave # this out until a user complains. # It is not possible to move around compiled binaries because these have the # path to some data files burned in. cd carat tar xzpf carat-2.0.tar.gz rm -f bin ln -s carat-2.0/bin bin cd carat-2.0/functions # Install the include Gmp first. # (If you have already Gmp on your system, you can delete the file # gmp-4.1.2.tar.gz and delete the target 'Gmp' from the target 'ALL' in # carat-2.0/Makefile.) tar xzpf gmp-4.1.2.tar.gz cd .. make TOPDIR=`pwd` Links # Note that Gmp may use processor specific code, so this step may not be ok # for a network installation if you want to use the package on older computers # as well. make TOPDIR=`pwd` Gmp # And now the actual Carat programs. make TOPDIR=`pwd` CFLAGS=`-O2` cd ../.. cd cohomolo ./configure cd standalone/progs.d cp makefile.orig makefile cd ../.. make cd .. # create dynamic library with EDIM kernel module cd edim make clean unsetenv LANG unsetenv LC_ALL ./configure make cd .. cd example ./configure ../.. make cd .. cd fplsa ./configure ../.. make CC="gcc -O2 " cd doc tex manual tex manual makeindex manual tex manual cd ../.. cd grape ./configure ../.. make cd .. cd guava* ./configure ../.. make cd .. cd kbmag make clean ./configure ../.. make COPTS="-O2 -g" cd .. # nq needs 'gmp' the GNU multi precision integer package, it is contained in # the 'carat' package installed above (you can use another installation # of 'gmp', adjust the argument -I... and -L... below accordingly) cd nq setenv COPTS "-I../../carat/carat/include -L../../carat/carat/lib" ./configure make unsetenv COPTS cd .. # openmath cd openmath cd OMCv1.3c/src ./configure make cd ../.. ./configure ../.. make cd .. # see the pargap documentation how to use this # (in particular, user needs procgroup file) # [more complicated to include EDIM kernel module ...] cd pargap ./configure ../.. make cp bin/pargap.sh ../../bin/ cd .. rm -f ALLPKG # For XGap the following shared libraries of the X window system must be # installed on your machine together with the development files (header # files and so on): # # libXaw.so, libXmu.so, libXt.so, libXext.so, libX11.so, libSM.so, libICE.so # # In addition you need on XFree Version >= 4: # # libXpm.so # # If you miss one of these under Linux you can usually just install some # more packages of your favorite distribution. The development files usually # come in some package with "dev" in its name. cd xgap ./configure make rm -f ../../bin/xgap.sh cp bin/xgap.sh ../../bin/ cd .. From justin at mac.com Sun Feb 3 01:13:43 2008 From: justin at mac.com (Justin C. Walker) Date: Sun Feb 3 01:14:35 2008 Subject: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz In-Reply-To: <47A50AFF.9030408@uwm.edu> References: <47A50AFF.9030408@uwm.edu> Message-ID: <1A6B71F0-9028-4F9B-90A7-5CFE2C6C217C@mac.com> Dear Jeffrey, Forum: On Feb 2, 2008, at 16:29 , Jeffrey Rolland wrote: > I am trying to install GAP on an iBook 900 MHz running Mac OS > 10.4.11 with 640 MB of RAM. > > I have a basic GAP install compiled. The problem is getting all the > packages configured (or otherwise installed). > > The packages are installed in the directory /usr/local/lib/gap4r4/ > pkg/. Inside this directory, there is a shell script > InstPackages.sh; I am attaching a copy of InstPackages.sh. > > When I cd to /usr/local/lib/gap4r4/pkg/ and run ./InstPackages.sh, > I get the error message "tcsh: ./InstPackages.sh: Command not > found." (I am running tcsh as my default shell.) > > Can someone help me trouble-shoot the package installation process? [[Added in proof :-} I just noticed that script begins with the string "#!/usr/bin/sh". This actually may be the problem (the shells on Mac OS X are usually in "/bin"). Try changing that to "#!/bin/ sh". If that doesn't fix it, read on.] From the error message you get ("not found"), it appears that the problem is not with the installation script. Typically, shells on Unix-like systems find executable commands with the help of a "shell variable" called PATH. This gives a list of directories in which the shell should look if you type a command that does not begin with a "/". In addition, files that are to be executed must be marked as executable. You can determine which of these might be the problem as follows. It may be that your PATH is not set up to let you execute commands in the current directory. Type the following % echo $PATH You should see a string of pathnames interspersed with ':'s. Look at this string and see if you see ":.:" (in the middle), ".:" (at the beginning), or ":." (at the end). If it's there, your problem is probably that the script is not marked to be executed. If it is not there, you can modify your path variable, but the easiest way to fix your problem may be to execute the command using the full path name: % /usr/local/lib/gap4r4/pkg/InstPackages.sh To see if the file is executable, type % ls -l InstPackages.sh The latter assumes you are in the directory containing that file. You might see something like the following: % ls -l /bin/sh -r-xr-xr-x 1 root wheel 1068844 Apr 24 2007 /bin/sh % ls -l /etc/motd -rw-r--r-- 1 root wheel 19 Jul 1 2006 /etc/motd The first case is an executable, and the row of letters at the beginning has 'x's; the second is not executable and does not have 'x's. Your file should have 'x's. If it does not, you can do one of two things. You can execute this as a shell script: % sh InstPackages.sh or you can mark this as executable: % chmod +x InstPackages.sh I hope this helps (not knowing how familiar you are with command-line and Unixy operations, I erred on the chatty side). Justin -- Justin C. Walker, Curmudgeon at Large Institute for the Absorption of Federal Funds ----------- If it weren't for carbon-14, I wouldn't date at all. ----------- From hulpke at mac.com Sun Feb 3 01:15:50 2008 From: hulpke at mac.com (Alexander Hulpke) Date: Sun Feb 3 01:16:55 2008 Subject: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz In-Reply-To: <47A50AFF.9030408@uwm.edu> References: <47A50AFF.9030408@uwm.edu> Message-ID: <9CF7DA53-B536-42DA-97E3-1D706B5A0500@mac.com> Dear Jeffrey Rolland, > The packages are installed in the directory /usr/local/lib/gap4r4/ > pkg/. Inside this directory, there is a shell script > InstPackages.sh; I am attaching a copy of InstPackages.sh. > > When I cd to /usr/local/lib/gap4r4/pkg/ and run ./InstPackages.sh, I > get the error message "tcsh: ./InstPackages.sh: Command not > found." (I am running tcsh as my default shell.) The error is prompted by the fact that the script wants to run using `sh' at `/usr/bin/sh', while under OSX sh sits under `/bin/sh'. You could edit this first line of InstallPackages.sh, tough you might get similar errors from other packages. Alternatively you could link sh under /usr/bin: cd /usr/bin sudo ln -s /bin/sh . Again the package installations themselves might hang on some similar path or library issues. (E.g. for installing XGAP you must install X11 and the X11SDK which might not be installed by default, you can find them on the installation disk for Tiger.) 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 rollandj at uwm.edu Sun Feb 3 02:18:59 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Sun Feb 3 02:19:16 2008 Subject: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz In-Reply-To: <1A6B71F0-9028-4F9B-90A7-5CFE2C6C217C@mac.com> References: <47A50AFF.9030408@uwm.edu> <1A6B71F0-9028-4F9B-90A7-5CFE2C6C217C@mac.com> Message-ID: <47A52493.1090809@uwm.edu> Justin C. Walker wrote: > Dear Jeffrey, Forum: > > On Feb 2, 2008, at 16:29 , Jeffrey Rolland wrote: > >> I am trying to install GAP on an iBook 900 MHz running Mac OS 10.4.11 >> with 640 MB of RAM. >> >> I have a basic GAP install compiled. The problem is getting all the >> packages configured (or otherwise installed). >> >> The packages are installed in the directory >> /usr/local/lib/gap4r4/pkg/. Inside this directory, there is a shell >> script InstPackages.sh; I am attaching a copy of InstPackages.sh. >> >> When I cd to /usr/local/lib/gap4r4/pkg/ and run ./InstPackages.sh, I >> get the error message "tcsh: ./InstPackages.sh: Command not found." (I >> am running tcsh as my default shell.) >> >> Can someone help me trouble-shoot the package installation process? > > [[Added in proof :-} I just noticed that script begins with the string > "#!/usr/bin/sh". This actually may be the problem (the shells on Mac OS > X are usually in "/bin"). Try changing that to "#!/bin/sh". If that > doesn't fix it, read on.] > Justin Justin, Thanks so much for the reply! It appears the /usr/bin/sh vs. /bin/sh thing was it. (Obviously, I do zero shell scriping :)) It's running now (and it appears it will be running for some time). If I have any more problems, I'll email again, but that was it for now. Thanks again. Sincerely, -- Jeffrey Rolland From rollandj at uwm.edu Sun Feb 3 02:21:12 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Sun Feb 3 02:21:16 2008 Subject: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz In-Reply-To: <9CF7DA53-B536-42DA-97E3-1D706B5A0500@mac.com> References: <47A50AFF.9030408@uwm.edu> <9CF7DA53-B536-42DA-97E3-1D706B5A0500@mac.com> Message-ID: <47A52518.9070802@uwm.edu> Alexander Hulpke wrote: > Dear Jeffrey Rolland, > >> The packages are installed in the directory >> /usr/local/lib/gap4r4/pkg/. Inside this directory, there is a shell >> script InstPackages.sh; I am attaching a copy of InstPackages.sh. >> >> When I cd to /usr/local/lib/gap4r4/pkg/ and run ./InstPackages.sh, I >> get the error message "tcsh: ./InstPackages.sh: Command not found." (I >> am running tcsh as my default shell.) > > The error is prompted by the fact that the script wants to run using > `sh' at `/usr/bin/sh', while under OSX sh sits under `/bin/sh'. > You could edit this first line of InstallPackages.sh, tough you might > get similar errors from other packages. > Best, > > Alexander Hulpke Alexander, Thanks so much for your reply! The /usr/bin/sh vs. /bin/sh thing appears to have been it. It's running now - yay! If I have any futher problems, I'll email again, but that was it for now. Thanks again. Sincerely, -- Jeffrey Rolland From graham.ellis at nuigalway.ie Sun Feb 3 20:08:37 2008 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Sun Feb 3 20:11:41 2008 Subject: [GAP Forum] De Brun Workshop On Computational Algebra References: <7BC4FCB2B695D64CBF525CEC6437532701BA33D1@EVS1.ac.nuigalway.ie> <7BC4FCB2B695D64CBF525CEC6437532701BA33D2@EVS1.ac.nuigalway.ie> <7BC4FCB2B695D64CBF525CEC6437532701BA33D3@EVS1.ac.nuigalway.ie> <7BC4FCB2B695D64CBF525CEC6437532701BA33D4@EVS1.ac.nuigalway.ie> <7BC4FCB2B695D64CBF525CEC6437532701BA33D5@EVS1.ac.nuigalway.ie> <7BC4FCB2B695D64CBF525CEC6437532701BA33D6@EVS1.ac.nuigalway.ie> <7BC4FCB2B695D64CBF525CEC6437532701BA33DA@EVS1.ac.nuigalway.ie> Message-ID: <7BC4FCB2B695D64CBF525CEC6437532701BA33E9@EVS1.ac.nuigalway.ie> First de Brun Workshop on Computational Algebra =================================== The De Brun Centre at NUI Galway (http://hamilton.nuigalway.ie/DeBrunCentre) will run a series of workshops on computational algebra over the next few years. The first of these (http://hamilton.nuigalway.ie/DeBrunCentre/FirstWorkshop/poster/FirstWorkshop.html) will be held at the National University of Ireland, Galway, from 21 July to August 1, 2008. The workshop, at which we expect to have approximately 40 participants, will consist of four morning lecture courses by Gerhard Hiss (Aachen) John McKay (Concordia) Mike Stillman (Cornell) Bernd Sturmfels (Berkeley). and a full programme of afternoon lectures on recent research in computational algebra. The organizers encourage workshop participants to submit abstracts for contributed talks. The workshop is supported by Science Foundation Ireland and there is some funding available to assist graduate students, postdocs (and possibly others). For registration details see http://hamilton.nuigalway.ie/DeBrunCentre/FirstWorkshop/poster/FirstWorkshopDetails.html . The organizers, Graham Ellis Goetz Pfeiffer From l.h.soicher at qmul.ac.uk Wed Feb 6 14:20:37 2008 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Wed Feb 6 14:21:11 2008 Subject: [GAP Forum] Announcing the RDS Package Message-ID: <20080206142037.GA6732@maths.qmul.ac.uk> Dear Forum Members, It is my pleasure to announce the newly accepted RDS package for GAP, by Marc Roeder. This package is for finding relative difference sets in (not necessarily abelian) groups. In addition, there is functionality for constructing resulting block designs and for analyzing projective planes. The RDS package can be downloaded from http://www.maths.nuigalway.ie/~roeder/rds.shtml where you can also find HTML and PDF documentation. Sincerely, Leonard Soicher (on behalf of the GAP Council) From rollandj at uwm.edu Fri Feb 8 17:39:48 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Fri Feb 8 17:39:34 2008 Subject: [GAP Forum] Compute Homotopy Groups with GAP? Message-ID: <47AC93E4.6060008@uwm.edu> Hello, all! I am a newbie to GAP. I have used the module HAP to compute group homologies for a certain group - the binary icosahedral group, P, aka SL(2,5) and the Poincare group - to great success. HAP correctly tells me H_n(P) is Z_120 for n congruent to 3 mod 4. I am interested, however, not in the space BP, but the space BP+, the result of applying Quillen's Plus Construction to BP with respect to P. Of course, this makes BP+ simply connected; moreover, it leaves the homology groups of BP+ unchanged from those of BP. But now, by Hurewitz Theorem, pi_3(BP+) = H_3(BP+) = H_3(BP) = Z_120. So, BP+ is no longer aspherical. What I would like is a way of computing pi_4(BP+) through pi_8(BP+) - without "building my own nails" (as one of the professors at my school accuses me of doing all to often), that is, by getting GAP or some other source to do it for me (I have bigger fish to fry). If this beyond GAP's present capabilities, knowing that would be a plus. If anyone knows of a reference for this in the literature, I would be eternally grateful. Thank you in advance for any assistance you can provide. Sincerely, -- Jeffrey Rolland From rollandj at uwm.edu Fri Feb 8 21:42:53 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Fri Feb 8 21:43:03 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] Message-ID: <47ACCCDD.1010508@uwm.edu> Hello, again, all! Thanks so much for your help with the package install script. It turns out that the install script crashed on the "nq" ("Nilpotent Quotient") package. The problem appears to be that one of the files attempts to include the "malloc.h" library, but this package has been replaced by the "stdlib.h" package on Mac Os X. I tried just changing the inclusion, but the script appears to run cvs to download the source files. Has anyone had any success getting this package to compile on Mac OS X? I am running Tiger (OS 10.4.11) on an iBook G3 900 MHz with 640 MB of RAM. Thanks in advance for any assistance you can provide. Sincerely, -- Jeffrey Rolland -------- Original Message -------- Subject: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz Date: Sat, 02 Feb 2008 20:21:12 -0600 From: Jeffrey Rolland To: forum@gap-system.org References: <47A50AFF.9030408@uwm.edu> <9CF7DA53-B536-42DA-97E3-1D706B5A0500@mac.com> Alexander Hulpke wrote: > Dear Jeffrey Rolland, > >> The packages are installed in the directory >> /usr/local/lib/gap4r4/pkg/. Inside this directory, there is a shell >> script InstPackages.sh; I am attaching a copy of InstPackages.sh. >> >> When I cd to /usr/local/lib/gap4r4/pkg/ and run ./InstPackages.sh, I >> get the error message "tcsh: ./InstPackages.sh: Command not found." (I >> am running tcsh as my default shell.) > > The error is prompted by the fact that the script wants to run using > `sh' at `/usr/bin/sh', while under OSX sh sits under `/bin/sh'. > You could edit this first line of InstallPackages.sh, tough you might > get similar errors from other packages. > Best, > > Alexander Hulpke Alexander, Thanks so much for your reply! The /usr/bin/sh vs. /bin/sh thing appears to have been it. It's running now - yay! If I have any futher problems, I'll email again, but that was it for now. Thanks again. Sincerely, -- Jeffrey Rolland _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum -- -- Jeffrey Rolland From rollandj at uwm.edu Fri Feb 8 21:57:44 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Fri Feb 8 21:57:24 2008 Subject: [GAP Forum] Use GAP to Compute Hom(G1, G2)? Message-ID: <47ACD058.70703@uwm.edu> Hello, all! I am a newbie to GAP. I am trying to compute the set of all homomorphisms from a group G1 [which is the semi-direct product of the integeres Z with the binary icosahedral group P (also known as SL(2,5) and the Poincare group)] to the group P (the Poincare group again) - Hom(G1, P). This sort of problem seems right up GAP's alley. I have a presentatiion for G1: . (The first two relators recreate the Poincare group; the second two relators give the consequences for sliding the "z" past the "s" and the "t", respectively.) The group G1 satisfies the short exact sequence 1 -> P -> G1 -> Z - 1; it is the only group (other than ZxP) to do so (up to congruence). If anyone can help me compute this set of homomorphisms from G1 to P, I would greatly appreciate it. Sincerely, -- Jeffrey Rolland From rollandj at uwm.edu Fri Feb 8 22:10:18 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Fri Feb 8 22:09:57 2008 Subject: [GAP Forum] Compute Homotopy Groups with GAP? In-Reply-To: <7BC4FCB2B695D64CBF525CEC6437532701BA3431@EVS1.ac.nuigalway.ie> References: <47AC93E4.6060008@uwm.edu> <7BC4FCB2B695D64CBF525CEC6437532701BA3431@EVS1.ac.nuigalway.ie> Message-ID: <47ACD34A.2010909@uwm.edu> Ellis, Grahamj wrote: > Jeffrey Roland wrote: >> I am interested, however, not in the space BP, but the space BP+, the >> result of applying Quillen's Plus Construction to BP with respect to P. >> Of course, this makes BP+ simply connected; moreover, it leaves the >> homology groups of BP+ unchanged from those of BP. > > Hi Jeffrey, > > There is no method in HAP for computing the homotopy groups of BP+. The main focus (as yet) in HAP is on homology of BP. > > One place to look for ideas is the KENZO package by Francis Ssergereart at Grenoble. It uses simplicial groups and sets to model homotopy types with main focus on simply connected spaces.I don't think it will answer you problem directly though. > > All the best, > > Graham Dear Graham, Thanks so much for your input. I have tried finding KENZO on the net, but all of the links to it that I have found appear to be broken. I will keep trying. Hopefully, once I find it, it will be able to answer my question. Sincerely, -- Jeffrey Rolland From hulpke at math.colostate.edu Fri Feb 8 22:37:27 2008 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Feb 8 22:38:40 2008 Subject: [GAP Forum] Use GAP to Compute Hom(G1, G2)? In-Reply-To: <47ACD058.70703@uwm.edu> References: <47ACD058.70703@uwm.edu> Message-ID: Dear GAP Forum, Jeffrey Rolland asked: > I am trying to compute the set of all homomorphisms from a group G1 > [which is the semi-direct product of the integeres Z with the binary > icosahedral group P (also known as SL(2,5) and the Poincare group)] > to the group P (the Poincare group again) - Hom(G1, P). This sort of > problem seems right up GAP's alley. > > I have a presentatiion for G1: zs(s^2ts^2t^3z)^(-1), zt(s^5ts^2tz)^(-1)>. The easiest seems to be to find all quotients of G1 that are isomorphic to a subgroup of SL(2,5). (There is some redundancy in this and for bigger cases other methods would be better. However in this case everything else is far more work for the user.) gap> f:=FreeGroup("z","s","t"); gap> AssignGeneratorVariables(f); #I Assigned the global variables [ z, s, t ] gap> rels:=[ s^3*t^-1*s^-1*t^-1*s^-1, t^4*s^-1*t^-1*s^-1, z*s*z^-1*t^-3*s^-2*t^-1*s^-2, z*t*z^-1*t^-1*s^-2*t^-1*s^-5 ]; [ s^3*t^-1*s^-1*t^-1*s^-1, t^4*s^-1*t^-1*s^-1, z*s*z^-1*t^-3*s^-2*t^-1*s^-2, z*t*z^-1*t^-1*s^-2*t^-1*s^-5 ] gap> G1:=f/rels; Careful: This group has no quotient isomorphic to A_5 and thus cannot have SL(2,5) as quotient. So its probably not the group you want. Now create SL(2,5) as permutation group (more efficient than matrix form): gap> P:=SL(2,5); SL(2,5) gap> P:=Image(IsomorphismPermGroup(P)); Group([ (1,2,4,8)(3,6,9,5)(7,12,13,17)(10,14,11,15)(16,20,21,24) (18,22,19,23), (1,3,7)(2,5,10)(4,9,13)(6,11,8)(12,16,20)(14,18,22)(15,19,23) (17,21,24) ]) All subgroups (careful: Only up to conjugacy. We will get homomorphisms only up to conjugacy as well!) s:=List(ConjugacyClassesSubgroups(P),Representative); gap> List(s,Size); [ 1, 2, 3, 4, 5, 6, 8, 10, 12, 20, 24, 120 ] Now for each subgroup find the epimorphisms, together they are all homomorphisms: gap> q:=List(s,i->GQuotients(G1,i)); [ [ [ z, s, t ] -> [ (), (), () ] ], [ [ z, s, t ] -> [ (1,4)(2,8)(3,9)(5,6)(7,13)(10,11)(12,17)(14,15) (16, 21)(18,19)(20,24)(22,23), (), () ] ], [ [ z, s, t ] -> [ (1,3,7)(2,5,10)(4,9,13)(6,11,8)(12,16,20) (14,18,22)(15, 19,23)(17,21,24), (), () ] ], [ [ z, s, t ] -> [ (1,2,4,8)(3,6,9,5)(7,12,13,17)(10,14,11,15) (16,20,21, 24)(18,22,19,23), (), () ] ], [ [ z, s, t ] -> [ (3,13,23,21,15)(5,11,20,19,12)(6,10,24,18,17) (7,22,16,14, 9), (), () ] ], [ [ z, s, t ] -> [ (1,9,7,4,3,13)(2,6,10,8,5,11)(12,21,20,17,16,24) (14,19, 22,15,18,23), (), () ] ], [ ], [ [ z, s, t ] -> [ (1,4)(2,8)(3,7,23,16,15,9,13,22,21,14) (5,10,20,18,12,6, 11,24,19,17), (), () ] ], [ ], [ ], [ ], [ ] ] gap> List(q,Length); [ 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0 ] Again, this is for the presentation you gave which I think is not the group you want. In any case these are the commands you need in GAP. 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 justin at mac.com Sat Feb 9 00:25:20 2008 From: justin at mac.com (Justin Walker) Date: Sat Feb 9 00:25:41 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <47ACCCDD.1010508@uwm.edu> References: <47ACCCDD.1010508@uwm.edu> Message-ID: <82A1F8A3-B98F-4E5A-A750-F7534062B0B4@mac.com> Dear Jeffrey and Forum, On Feb 8, 2008, at 1:42 PM, Jeffrey Rolland wrote: > Has anyone had any success getting this package to compile on Mac OS > X? I am running Tiger (OS 10.4.11) on an iBook G3 900 MHz with 640 > MB of RAM. I have in the past had luck with the following egregious hack: $ sudo touch /usr/include/malloc.h This creates an empty 'malloc.h' that the compiler will find. This should satisfy it, and since this file is unnecessary (at least on Mac OS X, and, I think, on many modern systems :-}), the fact that it provides no content should pass unnoticed. As I say, I have tried it in the past and it's worked, but that is no guarantee. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Absorption of Federal Funds -------- Men are from Earth. Women are from Earth. Deal with it. -------- From alexander.konovalov at gmail.com Sat Feb 9 01:29:47 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Sat Feb 9 01:30:04 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <47ACCCDD.1010508@uwm.edu> References: <47ACCCDD.1010508@uwm.edu> Message-ID: <0CE8C5E1-9101-485D-B13A-FAB7A4D0FFF5@gmail.com> Dear Jeffrey, I put some notes how to install some GAP packages on Mac OS X here: http://www.cs.st-andrews.ac.uk/~alexk/gap/pkgmacos.txt Hope that they may help in your situation. Best wishes, Alexander On 8 Feb 2008, at 21:42, Jeffrey Rolland wrote: > Hello, again, all! > > Thanks so much for your help with the package install script. > > It turns out that the install script crashed on the "nq" ("Nilpotent > Quotient") package. The problem appears to be that one of the files > attempts to include the "malloc.h" library, but this package has > been replaced by the "stdlib.h" package on Mac Os X. > > I tried just changing the inclusion, but the script appears to run > cvs to download the source files. > > Has anyone had any success getting this package to compile on Mac OS > X? I am running Tiger (OS 10.4.11) on an iBook G3 900 MHz with 640 > MB of RAM. > > Thanks in advance for any assistance you can provide. > > Sincerely, > -- > Jeffrey Rolland > > > -------- Original Message -------- > Subject: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 > MHz > Date: Sat, 02 Feb 2008 20:21:12 -0600 > From: Jeffrey Rolland > To: forum@gap-system.org > References: <47A50AFF.9030408@uwm.edu> <9CF7DA53-B536-42DA-97E3-1D706B5A0500@mac.com > > > > Alexander Hulpke wrote: >> Dear Jeffrey Rolland, >>> The packages are installed in the directory /usr/local/lib/gap4r4/ >>> pkg/. Inside this directory, there is a shell script >>> InstPackages.sh; I am attaching a copy of InstPackages.sh. >>> >>> When I cd to /usr/local/lib/gap4r4/pkg/ and run ./InstPackages.sh, >>> I get the error message "tcsh: ./InstPackages.sh: Command not >>> found." (I am running tcsh as my default shell.) >> The error is prompted by the fact that the script wants to run >> using `sh' at `/usr/bin/sh', while under OSX sh sits under `/bin/sh'. >> You could edit this first line of InstallPackages.sh, tough you >> might get similar errors from other packages. > > > >> Best, >> Alexander Hulpke > > Alexander, > > Thanks so much for your reply! > > The /usr/bin/sh vs. /bin/sh thing appears to have been it. It's > running > now - yay! > > If I have any futher problems, I'll email again, but that was it for > now. > > Thanks again. > > Sincerely, > -- > Jeffrey Rolland > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > -- > -- > Jeffrey Rolland > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From rollandj at uwm.edu Sat Feb 9 01:31:24 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Sat Feb 9 01:31:05 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <82A1F8A3-B98F-4E5A-A750-F7534062B0B4@mac.com> References: <47ACCCDD.1010508@uwm.edu> <82A1F8A3-B98F-4E5A-A750-F7534062B0B4@mac.com> Message-ID: <47AD026C.2040100@uwm.edu> Justin Walker wrote: > Dear Jeffrey and Forum, > > On Feb 8, 2008, at 1:42 PM, Jeffrey Rolland wrote: > >> Has anyone had any success getting this package to compile on Mac OS >> X? I am running Tiger (OS 10.4.11) on an iBook G3 900 MHz with 640 MB >> of RAM. > > I have in the past had luck with the following egregious hack: > $ sudo touch /usr/include/malloc.h > > This creates an empty 'malloc.h' that the compiler will find. This > should satisfy it, and since this file is unnecessary (at least on Mac > OS X, and, I think, on many modern systems :-}), the fact that it > provides no content should pass unnoticed. > > As I say, I have tried it in the past and it's worked, but that is no > guarantee. > > Regards, > > Justin Justin, Thanks, that took care of the the malloc.h problem. Now, I have a new problem. Make complains that it can't find a certain file in the carat directory: (cd src; make GNU_MP_LIB=. GNU_MP_INC=.) gcc -O3 -DLONGLONG -I../../carat/carat/include -L../../carat/carat/lib -DVERSION='"2.0 January 2003"' nq.o consistency.o pc.o relations.o word.o system.o time.o addgen.o tails.o eliminate.o engel.o glimt.o instances.o presentation.o mem.o pcarith.o collect.o combicol.o trmetab.o gap.o -L. -o nq -lgmp -static /usr/bin/ld: can't locate file for: -lcrt0.o collect2: ld returned 1 exit status make[1]: *** [nq] Error 1 make: *** [compile] Error 2 The file isn't in /usr/local/lib/gap4r4/pkg/carat/carat-2.0/lib. Any suggestions/ Sincerely, -- Jeffrey Rolland From rollandj at uwm.edu Sat Feb 9 01:37:07 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Sat Feb 9 01:37:04 2008 Subject: [GAP Forum] Use GAP to Compute Hom(G1, G2)? In-Reply-To: References: <47ACD058.70703@uwm.edu> Message-ID: <47AD03C3.9030606@uwm.edu> Alexander Hulpke wrote: > Dear GAP Forum, > > Jeffrey Rolland asked: > >> I am trying to compute the set of all homomorphisms from a group G1 >> [which is the semi-direct product of the integeres Z with the binary >> icosahedral group P (also known as SL(2,5) and the Poincare group)] to >> the group P (the Poincare group again) - Hom(G1, P). This sort of >> problem seems right up GAP's alley. >> >> I have a presentatiion for G1: > zs(s^2ts^2t^3z)^(-1), zt(s^5ts^2tz)^(-1)>. > > The easiest seems to be to find all quotients of G1 that are isomorphic > to a subgroup of SL(2,5). (There is some redundancy in this and for > bigger cases other methods would be better. However in this case > everything else is far more work for the user.) > Careful: This group has no quotient isomorphic to A_5 and thus cannot > have SL(2,5) as quotient. So its probably not the group you want. > Best, > > Alexander Hulpke Prof. Hulpke, Oops! You are right. I actually want all homomorhphisms to Out(P) = Z_2. I know you can just send z from the Z in G1 to 1 in Z_2 and the s and t from the P in G1 to 0 in Z_2, but I needed to know if there were any other homs. Sorry, it's been a long time since I looked at this, and I forgot what I needed. I put this on the back burner until I realized GAP may be able to do this. At any rate, your post should give me what I need. Thanks. Sincerely, -- Jeffrey Rolland From dima at ntu.edu.sg Sat Feb 9 06:33:24 2008 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Sat Feb 9 06:34:19 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <47AD026C.2040100@uwm.edu> Message-ID: Dear Jeffrey and Forum, On 2/9/08 9:31 AM, "Jeffrey Rolland" wrote: [...] > > Now, I have a new problem. Make complains that it can't find a certain > file in the carat directory: > > (cd src; make GNU_MP_LIB=. GNU_MP_INC=.) > gcc -O3 -DLONGLONG -I../../carat/carat/include -L../../carat/carat/lib > -DVERSION='"2.0 January 2003"' nq.o consistency.o pc.o relations.o > word.o system.o time.o addgen.o tails.o eliminate.o engel.o glimt.o > instances.o presentation.o mem.o pcarith.o collect.o combicol.o > trmetab.o gap.o -L. -o nq -lgmp -static > /usr/bin/ld: can't locate file for: -lcrt0.o > collect2: ld returned 1 exit status > make[1]: *** [nq] Error 1 > make: *** [compile] Error 2 > > The file isn't in /usr/local/lib/gap4r4/pkg/carat/carat-2.0/lib. this could be due to GMP built with wrong options. I have had problems using GPM supplied within carat, until I switched to GMP supplied by fink (do you use fink? www.finkproject.org). You'd comment out building Gmp in carat's top makefile, and add -I/sw/include to the CFLAGS there. Then everything builds fine. Anyhow, it's certainly better to have out-of-package-tree installation of GPM on your system, be it the fink's one or other, for GMP is used by lots of software around... HTH, Dmitrii > > Any suggestions/ > > Sincerely, > -- > Jeffrey Rolland > -- Dima Pasechnik http://www.ntu.edu.sg/home/dima/ From maasiru at yahoo.com Sat Feb 9 16:11:22 2008 From: maasiru at yahoo.com (muniru asiru) Date: Sat Feb 9 16:11:46 2008 Subject: [GAP Forum] cubic equations Message-ID: <409319.59515.qm@web53306.mail.re2.yahoo.com> Dear Forum, Please assist me in programming Gap to find x(rational number) and y(integer number) so that (y-1)x^3+yx^2+(y+1)x-y=0, y<>1. The only solutions I got is (x,y)=(1/2,3). Could anyone help find others? Thanks maasiru ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. http://www.yahoo.com/r/hs From nikos.ap at gmail.com Sat Feb 9 19:45:57 2008 From: nikos.ap at gmail.com (Nikos Apostolakis) Date: Sat Feb 9 19:47:03 2008 Subject: [GAP Forum] Re: cubic equations In-Reply-To: <409319.59515.qm@web53306.mail.re2.yahoo.com> Message-ID: <87y79thq16.fsf@knotter.earthlink.net> On Sat, Feb 09, 2008 at 08:11:22AM -0800, thus spake muniru asiru: > Dear Forum, > > Please assist me in programming Gap to find x(rational > number) and y(integer number) so that > (y-1)x^3+yx^2+(y+1)x-y=0, y<>1. > > The only solutions I got is (x,y)=(1/2,3). Could > anyone help find others? > Two more solutions are (1,0) and (56/103, - 418488) if there is an other solution with x > 0 the denominator of x is larger than 1000. I used maxima to symbolicaly solve the equation to get that the general solution is [y = (x^3-x)/(x^3 + x^2 + x -1)] then still using maxima we substitute x = m/n to get: y = (m*n^2 - m^3)/(n^3 - m*n^2 - m^2*n - m^3) Then using Gap (since this is Gap forum ;)) I did: Filtered(Cartesian([1..1000], [1..1000]), x -> IsInt((x[1]*x[2]^2-x[1]^3)/(x[2]^3-x[1]*x[2]^2-x[1]^2*x[2]-x[1]^3)));; List(last, x -> x[1]/x[2]);; Collected(last); #==> [ [ 1/2, 500 ], [ 56/103, 9 ], [ 1, 1000 ] ] Of course the above is a quick"brute force" approach. Perhaps there is a more elegant way. HTH, Nikos > Thanks > > maasiru > From justin at mac.com Sat Feb 9 22:35:36 2008 From: justin at mac.com (Justin C. Walker) Date: Sat Feb 9 22:36:36 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <47AD026C.2040100@uwm.edu> References: <47ACCCDD.1010508@uwm.edu> <82A1F8A3-B98F-4E5A-A750-F7534062B0B4@mac.com> <47AD026C.2040100@uwm.edu> Message-ID: <0B80D81F-3F80-4BFB-AB53-6B08B1771028@mac.com> On Feb 8, 2008, at 17:31 , Jeffrey Rolland wrote: > Justin Walker wrote: >> Dear Jeffrey and Forum, >> On Feb 8, 2008, at 1:42 PM, Jeffrey Rolland wrote: >>> Has anyone had any success getting this package to compile on Mac >>> OS X? I am running Tiger (OS 10.4.11) on an iBook G3 900 MHz with >>> 640 MB of RAM. >> I have in the past had luck with the following egregious hack: >> $ sudo touch /usr/include/malloc.h >> This creates an empty 'malloc.h' that the compiler will find. >> This should satisfy it, and since this file is unnecessary (at >> least on Mac OS X, and, I think, on many modern systems :-}), the >> fact that it provides no content should pass unnoticed. >> As I say, I have tried it in the past and it's worked, but that is >> no guarantee. >> Regards, >> Justin > > > > Justin, > > Thanks, that took care of the the malloc.h problem. > > Now, I have a new problem. Make complains that it can't find a > certain file in the carat directory: > > (cd src; make GNU_MP_LIB=. GNU_MP_INC=.) > gcc -O3 -DLONGLONG -I../../carat/carat/include -L../../carat/carat/ > lib -DVERSION='"2.0 January 2003"' nq.o consistency.o pc.o > relations.o word.o system.o time.o addgen.o tails.o eliminate.o > engel.o glimt.o instances.o presentation.o mem.o pcarith.o > collect.o combicol.o trmetab.o gap.o -L. -o nq -lgmp -static > /usr/bin/ld: can't locate file for: -lcrt0.o > collect2: ld returned 1 exit status > make[1]: *** [nq] Error 1 > make: *** [compile] Error 2 > > The file isn't in /usr/local/lib/gap4r4/pkg/carat/carat-2.0/lib. I've reproduced this on my system. I really don't think this is a 'gmp' issue, and I would not (yet) start fooling around with fink or MacPorts. The problem seems more basic: the fact that "-lcrt0.o" is the issue means (to me, at least) that the tool chain is really confused. In the future, please include this information, since it will help diagnose this kind of problem: - hardware platform (processor, if known) - OS - OS version - GAP version and (if it's about a package) package version I am running on a Mac Pro (Dual Quad Xeon, 3GHz), Mac OS X 10.4.11. I tried this with Gap 4.4.10, and nq 2.2. I find that my locally-built GMP is built as a 64-bit library, while nq is built 32-bit. I think that is the problem (GMP seems to insist on 64-bit builds if it's possible). Let us know what the above information is, and whether you built GMP yourself (and if not, where it came from). Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Enhancement of the Director's Income -------- When LuteFisk is outlawed, Only outlaws will have LuteFisk -------- From rollandj at uwm.edu Sun Feb 10 03:33:44 2008 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Sun Feb 10 03:33:28 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <0B80D81F-3F80-4BFB-AB53-6B08B1771028@mac.com> References: <47ACCCDD.1010508@uwm.edu> <82A1F8A3-B98F-4E5A-A750-F7534062B0B4@mac.com> <47AD026C.2040100@uwm.edu> <0B80D81F-3F80-4BFB-AB53-6B08B1771028@mac.com> Message-ID: <47AE7098.4000709@uwm.edu> Justin C. Walker wrote: > > On Feb 8, 2008, at 17:31 , Jeffrey Rolland wrote: Justin, >> >> Thanks, that took care of the the malloc.h problem. >> >> Now, I have a new problem. Make complains that it can't find a certain >> file in the carat directory: >> >> (cd src; make GNU_MP_LIB=. GNU_MP_INC=.) >> gcc -O3 -DLONGLONG -I../../carat/carat/include -L../../carat/carat/lib >> -DVERSION='"2.0 January 2003"' nq.o consistency.o pc.o relations.o >> word.o system.o time.o addgen.o tails.o eliminate.o engel.o glimt.o >> instances.o presentation.o mem.o pcarith.o collect.o combicol.o >> trmetab.o gap.o -L. -o nq -lgmp -static >> /usr/bin/ld: can't locate file for: -lcrt0.o >> collect2: ld returned 1 exit status >> make[1]: *** [nq] Error 1 >> make: *** [compile] Error 2 >> >> The file isn't in /usr/local/lib/gap4r4/pkg/carat/carat-2.0/lib. > > I've reproduced this on my system. I really don't think this is a 'gmp' > issue, and I would not (yet) start fooling around with fink or > MacPorts. The problem seems more basic: the fact that "-lcrt0.o" is the > issue means (to me, at least) that the tool chain is really confused. > > In the future, please include this information, since it will help > diagnose this kind of problem: > - hardware platform (processor, if known) > - OS > - OS version > - GAP version and (if it's about a package) package version > > I am running on a Mac Pro (Dual Quad Xeon, 3GHz), Mac OS X 10.4.11. > > I tried this with Gap 4.4.10, and nq 2.2. > > I find that my locally-built GMP is built as a 64-bit library, while nq > is built 32-bit. I think that is the problem (GMP seems to insist on > 64-bit builds if it's possible). > > Let us know what the above information is, and whether you built GMP > yourself (and if not, where it came from). > > Justin Justin (et. al), Thanks for the response. My info is Hardware: Apple iBook G3 900 MHz OS and Version: Mac OS X 10.4.11 GAP: 4.4.9 NQ Version: 2.2 GMP Version (Long Edition): OK, here's where it gets embarassing. I *had* tried to compile GMP myself a while ago, but it failed some checks, so I never install it (I forgot this until your post :( ). I just redownloaded it and compiled it, and I installed it before I did a "make check" :( - but when I did eventually do a "make check", it passed all tests this time :) So, to make a long story short, I am using version 4.2.2. GMP Version (Short Edition): 4.2.2 I have not tried recomiling NQ since installing GMP. Please let me know if there is any additional information you require. Thank you in advance for any assistance you can provide. Sincerely, -- Jeffrey Rolland From dima at ntu.edu.sg Sun Feb 10 06:17:53 2008 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Sun Feb 10 06:20:21 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <0B80D81F-3F80-4BFB-AB53-6B08B1771028@mac.com> Message-ID: Dear Justin, On 2/10/08 6:35 AM, "Justin C. Walker" wrote: [...] >> Now, I have a new problem. Make complains that it can't find a >> certain file in the carat directory: >> >> (cd src; make GNU_MP_LIB=. GNU_MP_INC=.) >> gcc -O3 -DLONGLONG -I../../carat/carat/include -L../../carat/carat/ >> lib -DVERSION='"2.0 January 2003"' nq.o consistency.o pc.o >> relations.o word.o system.o time.o addgen.o tails.o eliminate.o >> engel.o glimt.o instances.o presentation.o mem.o pcarith.o >> collect.o combicol.o trmetab.o gap.o -L. -o nq -lgmp -static >> /usr/bin/ld: can't locate file for: -lcrt0.o >> collect2: ld returned 1 exit status >> make[1]: *** [nq] Error 1 >> make: *** [compile] Error 2 >> >> The file isn't in /usr/local/lib/gap4r4/pkg/carat/carat-2.0/lib. > > I've reproduced this on my system. I really don't think this is a > 'gmp' issue, well, the problem evidently lies in the way carat builds gpm library. Hence it IS a gmp issue :) I don't see why we really should discuss buidling gmp in this forum, especially as there are well-known ways to avoid messing around with this on the particular platform we talk about, e.g. to use fink. Otherwise you are of course right that the tool chain gets confused here. But it's gmp's toolchain... > and I would not (yet) start fooling around with fink or > MacPorts. without one of them, developing "generic" unix soft, such as gap, on a Mac becomes a major pain, that's why it's not "fooling around", but rather a very reasonable thing to do. Cheers, Dmitrii From justin at mac.com Sun Feb 10 21:26:14 2008 From: justin at mac.com (Justin C. Walker) Date: Sun Feb 10 21:27:22 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: <47AE7098.4000709@uwm.edu> References: <47ACCCDD.1010508@uwm.edu> <82A1F8A3-B98F-4E5A-A750-F7534062B0B4@mac.com> <47AD026C.2040100@uwm.edu> <0B80D81F-3F80-4BFB-AB53-6B08B1771028@mac.com> <47AE7098.4000709@uwm.edu> Message-ID: <53BF5AC5-1CD6-4EBE-B980-E50CCE7691CC@mac.com> Dear Jeffrey and Forum, On Feb 9, 2008, at 19:33 , Jeffrey Rolland wrote: > Justin C. Walker wrote: >> On Feb 8, 2008, at 17:31 , Jeffrey Rolland wrote: >>> (cd src; make GNU_MP_LIB=. GNU_MP_INC=.) >>> gcc -O3 -DLONGLONG -I../../carat/carat/include -L../../carat/ >>> carat/lib -DVERSION='"2.0 January 2003"' nq.o consistency.o pc.o >>> relations.o word.o system.o time.o addgen.o tails.o eliminate.o >>> engel.o glimt.o instances.o presentation.o mem.o pcarith.o >>> collect.o combicol.o trmetab.o gap.o -L. -o nq -lgmp -static >>> /usr/bin/ld: can't locate file for: -lcrt0.o >>> collect2: ld returned 1 exit status >>> make[1]: *** [nq] Error 1 >>> make: *** [compile] Error 2 >>> >>> The file isn't in /usr/local/lib/gap4r4/pkg/carat/carat-2.0/lib. >> I've reproduced this on my system. I really don't think this is a >> 'gmp' issue, and I would not (yet) start fooling around with fink >> or MacPorts. The problem seems more basic: the fact that "- >> lcrt0.o" is the issue means (to me, at least) that the tool chain >> is really confused. >> In the future, please include this information, since it will help >> diagnose this kind of problem: >> - hardware platform (processor, if known) >> - OS >> - OS version >> - GAP version and (if it's about a package) package version >> I am running on a Mac Pro (Dual Quad Xeon, 3GHz), Mac OS X 10.4.11. >> I tried this with Gap 4.4.10, and nq 2.2. >> I find that my locally-built GMP is built as a 64-bit library, >> while nq is built 32-bit. I think that is the problem (GMP seems >> to insist on 64-bit builds if it's possible). >> Let us know what the above information is, and whether you built >> GMP yourself (and if not, where it came from). > > Hardware: Apple iBook G3 900 MHz This pretty much eliminates the "64-bit" answer :-} > OS and Version: Mac OS X 10.4.11 > GAP: 4.4.9 > NQ Version: 2.2 > > GMP Version (Long Edition): OK, here's where it gets embarassing. No need to be too embarrassed; many of us have been in the same boat at times :-} > GMP Version (Short Edition): 4.2.2 > > I have not tried recomiling NQ since installing GMP. I would do that (I rebuilt GMP on my system, forcing it to 32 bits, and the 'nq' build completed). If that doesn't work, post the results of file $XXX/libgmp* ar x $XXX/libgmp.a fscanf.o file fscanf.o rm fscanf.o (XXX = path to the libraries). Hope that helps. Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Enhancement of the Director's Income -------- Experience is what you get when you don't get what you want. -------- From justin at mac.com Sun Feb 10 22:04:59 2008 From: justin at mac.com (Justin C. Walker) Date: Sun Feb 10 22:05:52 2008 Subject: [Fwd: Re: [GAP Forum] Help Configuring GAP Packages on iBook 900 MHz] In-Reply-To: References: Message-ID: <92D1167C-F527-4108-87E2-417B8D48ED28@mac.com> Dear Dimitrii, On Feb 9, 2008, at 22:17 , Dmitrii Pasechnik wrote: > Dear Justin, > > On 2/10/08 6:35 AM, "Justin C. Walker" wrote: > [...] >>> Now, I have a new problem. Make complains that it can't find a >>> certain file in the carat directory: >>> >>> (cd src; make GNU_MP_LIB=. GNU_MP_INC=.) >>> gcc -O3 -DLONGLONG -I../../carat/carat/include -L../../carat/carat/ >>> lib -DVERSION='"2.0 January 2003"' nq.o consistency.o pc.o >>> relations.o word.o system.o time.o addgen.o tails.o eliminate.o >>> engel.o glimt.o instances.o presentation.o mem.o pcarith.o >>> collect.o combicol.o trmetab.o gap.o -L. -o nq -lgmp -static >>> /usr/bin/ld: can't locate file for: -lcrt0.o >>> collect2: ld returned 1 exit status >>> make[1]: *** [nq] Error 1 >>> make: *** [compile] Error 2 >>> >>> The file isn't in /usr/local/lib/gap4r4/pkg/carat/carat-2.0/lib. >> >> I've reproduced this on my system. I really don't think this is a >> 'gmp' issue, > well, the problem evidently lies in the way carat builds gpm > library. Hence > it IS a gmp issue :) > > I don't see why we really should discuss buidling gmp in this forum, > especially as there are well-known ways to avoid messing around > with this on > the particular platform we talk about, e.g. to use fink. > Otherwise you are of course right that the tool chain gets confused > here. > But it's gmp's toolchain... > >> and I would not (yet) start fooling around with fink or >> MacPorts. > without one of them, developing "generic" unix soft, such as gap, > on a Mac > becomes a major pain, that's why it's not "fooling around", but > rather a > very reasonable thing to do. I wasn't trying to provoke a discussion on the issue of fink/macports (and I'm not disagreeing that fink and macports are good ways to deal with Unix software on Mac OS X). I wanted to isolate what was going wrong for Jeffrey. For someone not familiar with software development, tackling the job of installing either of these schemes can be daunting. Throwing that into the mix at the start didn't seem like the right approach. It may be that it works out to be a GMP issue, but for now, my concern is getting to the bottom of a specific failure. In my case, the problem seems to be related to differences between 64- bit and 32-bit toolchains (and the fact that I had a 64-bit GMP and a 32-bit nq). I'm not sure yet what is wrong in Jeffrey's case. Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Enhancement of the Director's Income -------- When LuteFisk is outlawed, Only outlaws will have LuteFisk -------- From gordon at csse.uwa.edu.au Mon Feb 11 17:34:57 2008 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Mon Feb 11 17:36:07 2008 Subject: [GAP Forum] Two Guava Questions... Message-ID: Hi.. I have two Guava questions... I have never used it before, so I am working from scratch. (1) Leon's code.. I installed a new copy of GAP and compiled the C code for Leon's automorphism group stuff following the instructions. However if I start GAP and LoadPackage("guava") from any location OTHER than $GAPROOT then I get a message "C code not compiled" (2) Generator Matrices When I create a code with GeneratorMatCode, it seems to go away and precompute a whole pile of stuff taking perhaps minutes to enter a code.. what is it doing at this point? Is there a way of making it "lazy" so that it only computes things when and if they are asked for... Thanks Gordon -- Associate Professor Gordon Royle School of Computer Science & Software Engineering / School of Mathematics & Statistics University of Western Australia http://people.csse.uwa.edu.au/gordon From wdjoyner at gmail.com Mon Feb 11 17:57:59 2008 From: wdjoyner at gmail.com (David Joyner) Date: Mon Feb 11 17:58:23 2008 Subject: [GAP Forum] Two Guava Questions... In-Reply-To: References: Message-ID: <8cf963450802110957m33350d19k4b06479cc6b67efb@mail.gmail.com> On Feb 11, 2008 12:34 PM, Gordon Royle wrote: > Hi.. > > I have two Guava questions... I have never used it before, so I am > working from scratch. > > (1) Leon's code.. > > I installed a new copy of GAP and compiled the C code for Leon's > automorphism group stuff following the instructions. > > However if I start GAP and LoadPackage("guava") from any location > OTHER than $GAPROOT then I get a message "C code not compiled" I'm not sure if this should be viewed as a bug or not. It it a problem for you? It has never been a problem for me. > > (2) Generator Matrices > > When I create a code with GeneratorMatCode, it seems to go away and > precompute a whole pile of stuff taking perhaps minutes to enter a > code.. what is it doing at this point? Is there a way of making it > "lazy" so that it only computes things when and if they are asked for... Some commands have faster method implemented - such as RandomLinearCode. For most commands, though, it searches some tables and tries to get estimates for the parameters. I think that is the part that takes the most time. Removing that would, I think, require a significant amount of programming. > > Thanks Thanks for trying out GUAVA! Hope this helps. > > Gordon > > -- > Associate Professor Gordon Royle > School of Computer Science & Software Engineering / School of > Mathematics & Statistics > University of Western Australia > http://people.csse.uwa.edu.au/gordon > > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From wdjoyner at gmail.com Mon Feb 11 18:43:49 2008 From: wdjoyner at gmail.com (David Joyner) Date: Mon Feb 11 18:44:33 2008 Subject: [GAP Forum] Two Guava Questions... In-Reply-To: References: Message-ID: <8cf963450802111043u368923cfv1aceb08779dc7a1b@mail.gmail.com> A follow-up to my previous reply. Cen Tjhai (a GUAVA co-developer) reminded me off-list that GeneratorMatCodeNC does exactly what Gordon was asking for. It's undocumented though (and I'd forgotten about it). so I'll try to remember to fix that in the next release of GUAVA. Thanks CJ! On Feb 11, 2008 12:34 PM, Gordon Royle wrote: > Hi.. > > I have two Guava questions... I have never used it before, so I am > working from scratch. > > (1) Leon's code.. > > I installed a new copy of GAP and compiled the C code for Leon's > automorphism group stuff following the instructions. > > However if I start GAP and LoadPackage("guava") from any location > OTHER than $GAPROOT then I get a message "C code not compiled" > > (2) Generator Matrices > > When I create a code with GeneratorMatCode, it seems to go away and > precompute a whole pile of stuff taking perhaps minutes to enter a > code.. what is it doing at this point? Is there a way of making it > "lazy" so that it only computes things when and if they are asked for... > > Thanks > > Gordon > > -- > Associate Professor Gordon Royle > School of Computer Science & Software Engineering / School of > Mathematics & Statistics > University of Western Australia > http://people.csse.uwa.edu.au/gordon > > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From kohl at mathematik.uni-stuttgart.de Tue Feb 12 13:02:53 2008 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Tue Feb 12 13:04:33 2008 Subject: [GAP Forum] cubic equations In-Reply-To: <409319.59515.qm@web53306.mail.re2.yahoo.com> References: <409319.59515.qm@web53306.mail.re2.yahoo.com> Message-ID: <47B198FD.3060707@mathematik.uni-stuttgart.de> Dear Forum, Muniru Asiru asked: > Please assist me in programming Gap to find x(rational > number) and y(integer number) so that > (y-1)x^3+yx^2+(y+1)x-y=0, y<>1. > > The only solutions I got is (x,y)=(1/2,3). Could > anyone help find others? A general remark in advance: It is well-known that there is no general algorithm for computing the set of solutions of a diophantine equation, or even only for deciding whether there is a solution at all. However, now let's turn to Muniru Asiru's particular equation: He asks for rational zeros of a certain family of cubic polynomials with integer coefficients. For approximating zeros of polynomials with integer coefficients, GAP provides a function ContinuedFractionApproximationOfRoot( P, n ). As the name suggests, this function computes the n-th continued fraction approximation of some real zero of the polynomial P. As an example, let's compute the 20th continued fraction approximation of the third root of 2: gap> x := Indeterminate(Integers);; SetName(x,"x"); gap> ContinuedFractionApproximationOfRoot(x^3-2,20); 1348776323/1070524477 gap> last^3-2; 1671371601/1226845304290527628130119333 There is also another function ContinuedFractionExpansionOfRoot( P, n ), which computes the first n terms of the corresponding continued fraction expansions. As an example, let's compute the first 20 terms of the continued fraction expansion of the third root of 2: gap> ContinuedFractionExpansionOfRoot(x^3-2,20); [ 1, 3, 1, 5, 1, 1, 4, 1, 1, 8, 1, 14, 1, 10, 2, 1, 4, 12, 2, 3 ] Both of these functions require that the leading coefficient of P is positive, that P(0) is negative and that P has only one positive real zero. These conditions are satisfied for Muniru Asiru's polynomial if y > 1, and they are satisfied for its additive inverse if y < 0. Now note that the continued fraction expansion of a rational number stops after a finite number of terms. Given this, we can start to look for solutions. First we enter Muniru Asiru's family of polynomials: gap> x := Indeterminate(Integers);; SetName(x,"x"); gap> pol := y -> (y-1)*x^3+y*x^2+(y+1)*x-y;; Then we look for solutions with y > 1 ... gap> Filtered([1..500000], > y->Length(ContinuedFractionExpansionOfRoot(pol(y),10)) < 10); [ 3 ] gap> ContinuedFractionExpansionOfRoot(pol(3),10); [ 0, 2 ] gap> ContinuedFractionApproximationOfRoot(pol(3),10); 1/2 ... and obtain the solution (1/2,3). Next we look for solutions with y < 0 ... gap> Filtered([1..500000], > y->Length(ContinuedFractionExpansionOfRoot(-pol(-y),10)) < 10); [ 418488 ] gap> ContinuedFractionExpansionOfRoot(-pol(-418488),10); [ 0, 1, 1, 5, 4, 2 ] gap> ContinuedFractionApproximationOfRoot(-pol(-418488),10); 56/103 ... and obtain the solution (56/103,-418488). We can also look what happens slightly below and above -418488: gap> ContinuedFractionExpansionOfRoot(-pol(-418486),10); [ 0, 1, 1, 5, 4, 1, 1, 64099453, 1, 1 ] gap> ContinuedFractionExpansionOfRoot(-pol(-418487),10); [ 0, 1, 1, 5, 4, 1, 1, 128199214, 9, 2 ] gap> ContinuedFractionExpansionOfRoot(-pol(-418488),10); [ 0, 1, 1, 5, 4, 2 ] gap> ContinuedFractionExpansionOfRoot(-pol(-418489),10); [ 0, 1, 1, 5, 4, 2, 128199826, 1, 8, 2 ] gap> ContinuedFractionExpansionOfRoot(-pol(-418490),10); [ 0, 1, 1, 5, 4, 2, 64100066, 2, 1, 1 ] gap> ContinuedFractionExpansionOfRoot(-pol(-418491),10); [ 0, 1, 1, 5, 4, 2, 42733479, 1, 1, 3 ] ... and even still gap> ContinuedFractionExpansionOfRoot(-pol(-420000),10); [ 0, 1, 1, 5, 4, 2, 85093, 1, 14, 1 ] If one wishes, one could probably use this pattern to greatly reduce computation time when looking for further solutions. Best wishes, Stefan Kohl --------------------------------------------------------------------------- http://www.cip.mathematik.uni-stuttgart.de/~kohlsn/ --------------------------------------------------------------------------- From sal at cs.st-and.ac.uk Thu Feb 14 16:05:40 2008 From: sal at cs.st-and.ac.uk (Steve Linton) Date: Thu Feb 14 16:04:57 2008 Subject: [GAP Forum] Experimental Patch to Long-standing Itanium Problem Message-ID: <20080214160540.28f0ee0b@cs.st-and.ac.uk> Dear GAP Forum, As some of you will recall, there is a very long standing problem running GAP on processors from Intel's Itanium processor family, found mainly in large multi-processor servers and supercomputers. We believe that we have now fixed this problem, and the fix will be included in the next release of GAP, but, if you wish to try it out in the meantime, you can download it as a patch to apply to GAP 4r4p10. See http://www.gap-system.org/Faq/Hardware-OS/hardware-os8.html for a link to the patch. Please let us know how you get on. 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.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From mlederer at math.uni-bielefeld.de Thu Feb 14 22:23:44 2008 From: mlederer at math.uni-bielefeld.de (Mathias Lederer) Date: Thu Feb 14 22:25:11 2008 Subject: [GAP Forum] Wedderburn and representations Message-ID: <86201AFB-215C-405A-84CB-CE7BA0546E98@math.uni-bielefeld.de> Dear GAP forum, I am currently learning to use the Wedderburn package, which I find very appealing. I want to apply the Wedderburn also to the following situation, which deals with a special class of representations of G. Take a group G and a field F such that FG is semisimple. Let FG = A_1 \times \ldots \times A_s be the Weddderburn decomposition of FG. Next, let H be a subgroup of G. The vector space F(G/H) := \oplus_{g \in G} F gH (that is, a vector space with the coset classes as a basis) has a canonical action of G, hence, is an FG-module. Therefore, it is a direct sum V_1 \oplus \ldots \oplus V_s, where V_i is a module over A_i. The algebra A_i is a matrix algebra over a division algebra, say, A_i = M_{n_i}(D_i). Up to isomorphism, there exists a unique irreducible A_i-module, to wit, U_i = D_i^{n_i}. Hence the module V_i is a direct sum of a number of copies of U_i, say, V_i = U_i^{f_i}. Here are my questions. 1) The Wedderburn package enables one to compute decomposition FG = A_1 \times \ldots \times A_s. If I understand correctly, each A_i is not given in the form A_i = M_{n_i}(D_i) as above. Instead, a cyclotomic algebra, which is Brauer equivalent to A_i, is given. Can one also compute the form A_i = M_{n_i}(D_i)? So do we get the division algebra and the size of the matrices? 2) Can one compute the multiplicity f_i with which the irreducible A_i-module shows up in F(G/H)? Many thanks in advance, Mathias From adelrio at um.es Fri Feb 15 22:31:16 2008 From: adelrio at um.es (Angel del Rio) Date: Fri Feb 15 22:32:14 2008 Subject: [GAP Forum] Wedderburn and representation Message-ID: <47B612B4.6090402@um.es> Dear GAP Forum, This is a reply to a message by Mathias Lederer on Wedderburn Decomposition of semisimple group algebras and representations. Your first question: 1) The Wedderburn package enables one to compute decomposition FG = A_1 \times \ldots \times A_s. If I understand correctly, each A_i is not given in the form A_i = M_{n_i}(D_i) as above. Instead, a cyclotomic algebra, which is Brauer equivalent to A_i, is given. Can one also compute the form A_i = M_{n_i}(D_i)? So do we get the division algebra and the size of the matrices? To compute the form M_{n_i}(D_i) is usually a difficult task. In fact just to compute the size of the matrices is not obvious. Notice that the degree of A_i coincides with the degree of each irreducible character chi of G which does not vanishes on A_i and it is equal to n_im_i, where m_i is the Schur index of A_i, or equivalently the Schur degree of chi over F. In theory, if F is a global field then the calculation of the Schur index or even of the Hasse invariant of A_i (or D_i) should be doable by using local information (See Reiner, Maximal Orders). Unfortunately in many cases this is a difficult task and as far as I know there is not an "implementable" method to do this. This is the subject of many research papers. See for example: P. Schmid, Representation-groups for the Schur index, J. Algebra 97 (1985) 101-115. B. Banieqbal, On bounding the Schur index of induced modules, Bull. LMS 18 (1986) 17-23. A. Turull, On the Schur index of quasi primitive characters, Journal LMS 35 (1987) 421-432. A. Herman, Using character correspondence for Schur index computations, J. Algebra 159 (2003) 353-360. A. Herman, Using G-algebras for Schur index computations, J. Algebra 260 (2003) 463-475. Your second question: 2) Can one compute the multiplicity f_i with which the irreducible A_i-module shows up in F(G/H)? Unfortunately there is not anything else that can be said because the first question is included in the second one for H=1. Indeed, the multiplicity f_i equals n_i, the size of the matrices and computing this is already hard for this case. Resuming, wedderga, provides a description of the simple components of group algebras, but to have a full understanding of these components we still need fundamental research on the calculation of Schur indexes and local invariants. Some of the experts in the field are Herman, Turull and Schimd. They may give more information. ?ngel -- ?ngel del R?o Mateos Departamento de Matem?ticas Universidad de Murcia +34 968 363537 From savchuk at math.tamu.edu Mon Feb 18 05:12:09 2008 From: savchuk at math.tamu.edu (Dmytro Savchuk) Date: Mon Feb 18 05:13:34 2008 Subject: [GAP Forum] new release of AutomGrp package v 1.1.1 Message-ID: <1001996987185.20080217231209@math.tamu.edu> Dear Forum, We are glad to announce a new release of the package AutomGrp V 1.1.1. It provides methods for computations with groups and semigroups generated by finite automata or given by wreath recursion, as well as with their finitely generated subgroups and elements. Several new features were added and couple of bugs were fixed. For more details refer to file NEWS in the main folder of the package. The package and documentation is available at http://finautom.sourceforge.net/ If you have any problems with installation, please let us know. Note, that it depends on FGA package. Best Wishes! Dmytro From p_niroomand at yahoo.com Mon Feb 18 15:53:42 2008 From: p_niroomand at yahoo.com (peyman niroomand) Date: Mon Feb 18 15:59:24 2008 Subject: [GAP Forum] Request Message-ID: <940948.76528.qm@web50504.mail.re2.yahoo.com> Dear Gap Forum, I have a some questions about GAP. 1) Let G be a finite group and G\wedge G is a Non-abelian Exterior Square of G. Can we compute the following group with GAP ? H={g\in G |g\wedge x=1 \for all x\in G}. 2) Can we use GAP to decide when x\wedge y is equal to 1 for any pair (x,y) in G^2 ? Best Regards. --------------------------------- Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. From savchuk at math.tamu.edu Mon Feb 18 20:52:22 2008 From: savchuk at math.tamu.edu (Dmytro Savchuk) Date: Mon Feb 18 20:52:46 2008 Subject: [GAP Forum] new release of AutomGrp package v 1.1.1 Message-ID: <1572053400463.20080218145222@math.tamu.edu> Dear Forum, We are glad to announce a new release of the package AutomGrp V 1.1.1. It provides methods for computations with groups and semigroups generated by finite automata or given by wreath recursion, as well as with their finitely generated subgroups and elements. Several new features were added and couple of bugs were fixed. For more details refer to file NEWS in the main folder of the package. The package and documentation is available at http://finautom.sourceforge.net/ If you have any problems with installation, please let us know. Note, that it depends on FGA package. Best Wishes! Dmytro From hnguyen at math.ufl.edu Wed Feb 27 21:59:30 2008 From: hnguyen at math.ufl.edu (Hung Ngoc Nguyen) Date: Wed Feb 27 21:59:52 2008 Subject: [GAP Forum] Character Table of some groups. Message-ID: Dear GAP forum, I want to know the character tables (or atleast character degrees) of the universal covers of some (simple) orthogonal groups like: O8+(3), O8-(3), O9(3). It worked when I did with those orthogonal groups but unfortunately it failed for their universal covers. I just wonder whether the character tables of these universal covers are available on GAP ot not? By the way I am using version 4.4.9. Thank you very much for your help. Hung Ngoc Nguyen Mathematics Department University of Florida From frank.luebeck at math.rwth-aachen.de Wed Feb 27 23:48:11 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed Feb 27 23:48:32 2008 Subject: [GAP Forum] Character Table of some groups. In-Reply-To: References: Message-ID: <20080227234811.GA31235@beteigeuze> On Wed, Feb 27, 2008 at 04:59:30PM -0500, Hung Ngoc Nguyen wrote: > Dear GAP forum, > > I want to know the character tables (or atleast character degrees) of the > universal covers of some (simple) orthogonal groups like: O8+(3), O8-(3), > O9(3). It worked when I did with those > orthogonal groups but unfortunately it failed for > their universal covers. I just wonder whether the character tables of > these universal covers are available on GAP ot not? By the way I am using > version 4.4.9. > Thank you very much for your help. > > Hung Ngoc Nguyen > Mathematics Department > University of Florida Dear Hung Ngoc Nguyen, dear Forum, I think the complete character tables of the universal covers of the mentioned simple groups are not known (and so not in the GAP character table library). But you can find the lists of character degrees (and multiplicities) for these groups, and even covers of O8+(q), O8-(q), O9(q) for all prime powers q, on the web page: http://www.math.rwth-aachen.de/~Frank.Luebeck/chev/DegMult/ See under "D_4(q)_sc", "^2D_4(q)_sc", "B_4(q)_sc", respectively. 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 kksa at math.ku.dk Thu Feb 28 09:34:17 2008 From: kksa at math.ku.dk (Kasper Andersen) Date: Thu Feb 28 09:34:46 2008 Subject: [GAP Forum] cubic equations In-Reply-To: <47B198FD.3060707@mathematik.uni-stuttgart.de> References: <409319.59515.qm@web53306.mail.re2.yahoo.com> <47B198FD.3060707@mathematik.uni-stuttgart.de> Message-ID: Dear Forum, Some time ago Muniru Asiru asked the following question: > Dear Forum, > > Muniru Asiru asked: > >> Please assist me in programming Gap to find x(rational >> number) and y(integer number) so that >> (y-1)x^3+yx^2+(y+1)x-y=0, y<>1. >> >> The only solutions I got is (x,y)=(1/2,3). Could >> anyone help find others? Nikos Apostolakis noted two more solutions, namely (1,0) and (56/103,-418488). There are two other trivial solutions namely (0,0) and (-1,0). I claim that these 5 are the only solutions: As already noted by Nikos Apostolakis, the equation can be rewritten as y = (x^3-x)/(x^3+x^2+x-1) (note that 1 and -1 are not roots of x^3+x^2+x-1, so this polynomial does not have any rational roots). Following Nikos, we write x=m/n for coprime integers m and n and get y = m*(m^2-n^2)/(m^3+m^2 n+m n^2-n^3) Since y is an integer we must have \pm m^3+m^2 n+m n^2-n^3 = GCD(m^3+m^2 n+m n^2-n^3, m*(m^2-n^2)), where \pm denotes plus/minus. However m^3+m^2 n+m n^2-n^3 and m are coprime since GCD(m,n)=1, so GCD(m^3+m^2 n+m n^2-n^3, m*(m^2-n^2)) = GCD(m^3+m^2 n+m n^2-n^3, m^2-n^2) Since (m^3+m^2 n+m n^2-n^3) - (n-m)*(m^2-n^2) = 2 m^3 we get GCD(m^3+m^2 n+m n^2-n^3, m^2-n^2) = GCD(2 m^3, m^2-n^2) Now m^3 and m^2-n^2 are coprime so GCD(2 m^3, m^2-n^2) = GCD(2, m^2-n^2) = 1 or 2. Combining the equations we finally get (*) m^3+m^2 n+m n^2-n^3 = d where d= \pm 1 or \pm 2. This is a socalled Thue equation. These have a finite number of integer solutions which can be computed efficiently using Bakers theory of linear forms in logarithms. For details, see the recent book "Number Theory. Volume II: Analytic and Modern Tools" by Henri Cohen (GTM 240), section 12.10 and the references there. The procedure has been implemented in Magma, one finds that the solutions to (*) are d=1: (m,n) = (-1,-2), (0,-1), (1,0) or (56,103) d=2: (m,n) = (1,-1) or (1,1) The solutions for d=-1 and d=-2 are (-m,-n) so we do not get any new values of x in these cases. Hence x = 1/2, 0, 56/103, -1 or 1. Plugging these into the equation y=(x^3-x)/(x^3+x^2+x-1) now gives the 5 solutions above. best wishes, Kasper From hnguyen at math.ufl.edu Thu Feb 28 20:57:49 2008 From: hnguyen at math.ufl.edu (Hung Ngoc Nguyen) Date: Thu Feb 28 20:58:15 2008 Subject: [GAP Forum] Character Table of some groups. In-Reply-To: <20080227234811.GA31235@beteigeuze> Message-ID: Dear Joe, Frank and all, Thank you very much for your replies. The website Frank gave to me is more than what I need. I have one more question for Frank: In the lists of character degrees and their multiplicities, did you put the character degrees (as polinomials of q) in increasing order of the degrees of these polinomials. I believe so but I just want to make sure. Sincerely, Hung Nguyen. On Thu, 28 Feb 2008, Frank [iso-8859-1] Lübeck wrote: > On Wed, Feb 27, 2008 at 04:59:30PM -0500, Hung Ngoc Nguyen wrote: > > Dear GAP forum, > > > > I want to know the character tables (or atleast character degrees) of the > > universal covers of some (simple) orthogonal groups like: O8+(3), O8-(3), > > O9(3). It worked when I did with those > > orthogonal groups but unfortunately it failed for > > their universal covers. I just wonder whether the character tables of > > these universal covers are available on GAP ot not? By the way I am using > > version 4.4.9. > > Thank you very much for your help. > > > > Hung Ngoc Nguyen > > Mathematics Department > > University of Florida > > Dear Hung Ngoc Nguyen, dear Forum, > > I think the complete character tables of the universal covers of the > mentioned simple groups are not known (and so not in the GAP character table > library). > > But you can find the lists of character degrees (and multiplicities) for these > groups, and even covers of O8+(q), O8-(q), O9(q) for all prime powers q, > on the web page: > > http://www.math.rwth-aachen.de/~Frank.Luebeck/chev/DegMult/ > > See under "D_4(q)_sc", "^2D_4(q)_sc", "B_4(q)_sc", respectively. > > 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 frank.luebeck at math.rwth-aachen.de Fri Feb 29 08:45:44 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Fri Feb 29 08:46:12 2008 Subject: [GAP Forum] Character Table of some groups. In-Reply-To: References: <20080227234811.GA31235@beteigeuze> Message-ID: <20080229084544.GA18180@beteigeuze> On Thu, Feb 28, 2008 at 03:57:49PM -0500, Hung Ngoc Nguyen wrote: > Dear Joe, Frank and all, > > Thank you very much for your replies. The website Frank gave to me is more > than what I need. > > I have one more question for Frank: In the lists of character degrees > and their multiplicities, did you put the character degrees (as > polinomials of q) in increasing order of the degrees of these polinomials. > I believe so but I just want to make sure. Dear Hung Nguyen, The ordering is described on the mentioned webpage: ---- Further remarks The degrees are ordered by increasing size for sufficiently large q. But note that for small special values of q the ordering can be slightly different. Also for some small q some of the degrees may not occur (when the polynomial describing the multiplicity specializes to zero). ---- In particular, the answer to your question is yes (higher polynomial degree will give larger numbers when evaluated at sufficiently large q). 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 kksa at math.ku.dk Fri Feb 29 10:51:12 2008 From: kksa at math.ku.dk (Kasper Andersen) Date: Fri Feb 29 10:51:34 2008 Subject: [GAP Forum] Memory problem Message-ID: Hi! As part of a joint project with Bob Oliver and Joana Ventura, I'm using GAP to do a number of computations. I'm running a loop over several 2-groups for which I want to perform a certain test. For the first group (SmallGroup(128,313)) the program returns false fairly quickly. Then after a longer wait, it runs out of memory for the next group (SmallGroup(128,314)), see the log file attached below. When I try to do the computation in the reverse order (SmallGroup(128,314) first and then SmallGroup(128,313)) the same thing happens: The first answer appears quickly and then after a waiting for some time, GAP runs out of memory during the computation for the next group. So here are my questions: 1) How do I increase the permitted memory (the log file suggest the -o flag, but there also seems to be others -m, -K, -c and -a). Which one(s) should I use? Should I recompile GAP with some parameters changed? 2) As stated, starting with either of the two groups first produces an answer quickly. So neither of the two computations in themselves crash GAP. So in both cases, the computation for group number 2 should also be doable if a proper garbage collection is done or if there is sufficient memory, right? Is there a way to force GAP to do a garbage collection? Naively one should think that doubling the permitted memory should work. I also tried running the program with the flag -m 1g, but unfortunately the result is the same: The first answer appears fairly quickly and then after a long wait GAP crashes. Is there anything else I could do? best wishes and thanks in advance, Kasper Andersen PS If it helps I can send the GAP program used for the computation. gap> Read("cor33-gap"); 86 313 1 false exceeded the permitted memory (`-o' command line option) at img := One( Range( hom ) ); called from ImagesRepresentative( map, gen ) called from func( elm ) called from List( GeneratorsOfMagmaWithInverses( elms ), function ( gen ) return ImagesRepresentative( map, gen ); end ) called from ImagesSet( map, elm ) called from Image( f, Kold ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue From iano at compsoc.nuigalway.ie Fri Feb 29 11:56:22 2008 From: iano at compsoc.nuigalway.ie (Ian McLoughlin) Date: Fri Feb 29 11:56:39 2008 Subject: [GAP Forum] Small Group 8 of Order 24 Message-ID: <9d5eef600802290356n7f86d198oe277d8e97c73aba5@mail.gmail.com> Hi, would anyone know what small group 8 of order 24 is usually labelled? I think it is the following group... < a , b , c | a^3 , b^4 , c^2 , bcb=c , aba=b , ac=ca >. Thanks, Ian -- Ian McLoughlin emailme@ianmcloughlin.com From savchuk at math.tamu.edu Fri Feb 29 17:18:08 2008 From: savchuk at math.tamu.edu (Dmytro Savchuk) Date: Fri Feb 29 17:19:02 2008 Subject: [GAP Forum] Small Group 8 of Order 24 In-Reply-To: <9d5eef600802290356n7f86d198oe277d8e97c73aba5@mail.gmail.com> References: <9d5eef600802290356n7f86d198oe277d8e97c73aba5@mail.gmail.com> Message-ID: <59643473686.20080229111808@math.tamu.edu> Dear Ian, It looks that you are correct gap> F:=FreeGroup(["a","b","c"]); gap> a:=F.1;; b:=F.2;; c:=F.3;; gap> FF:=F/[a^3,b^4,c^2,b*c*b*c,a*b*a*b^-1,a*c*a^-1*c]; gap> IdSmallGroup(FF); [ 24, 8 ] Best Regards, Dmytro Friday, February 29, 2008, 5:56:22 AM, you wrote: IM> Hi, IM> would anyone know what small group 8 of order 24 is usually labelled? IM> I think it is the following group... IM> < a , b , c | a^3 , b^4 , c^2 , bcb=c , aba=b , ac=ca >. IM> Thanks, IM> Ian -- Best regards, Dmytro mailto:savchuk@math.tamu.edu From dongjc at njau.edu.cn Mon Mar 3 08:38:34 2008 From: dongjc at njau.edu.cn (=?gb2312?B?tq2+rrPJ?=) Date: Mon Mar 3 08:53:28 2008 Subject: [GAP Forum] Can GAP handle with infinite field with positive characteristic? Message-ID: Dear forum,Dear everyone: I want to know how to build infinite field with positive characteristic in GAP,such as algebraically closed field with characteristic 3. Thank you! Jing-cheng Dong From vdabbagh at sfu.ca Thu Mar 13 06:18:12 2008 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Thu Mar 13 06:20:29 2008 Subject: [GAP Forum] similar matrices Message-ID: <200803130618.m2D6IChH016446@rm-rstar.sfu.ca> Dear GAP forum, Suppose A and B are similar and invertible matrices on C. Does anybody know a function or a program in GAP to compute an invertible matrix P such that P^{-1}AP=B ? Thanks in advance Vahid __________________________ The IRMACS Centre (ASB 10905) Simon Fraser University 8888 University Drive Burnaby, BC V5A 1S6 Canada E-mail: vdabbagh@sfu.ca http://www.sfu.ca/~vdabbagh From burkhard at hoefling.name Thu Mar 13 11:26:56 2008 From: burkhard at hoefling.name (=?ISO-8859-1?Q?Burkhard_H=F6fling?=) Date: Thu Mar 13 11:27:29 2008 Subject: [GAP Forum] similar matrices In-Reply-To: <200803130618.m2D6IChH016446@rm-rstar.sfu.ca> References: <200803130618.m2D6IChH016446@rm-rstar.sfu.ca> Message-ID: On 13.03.2008, at 07:18, Vahid Dabbaghian wrote: > > Dear GAP forum, > > Suppose A and B are similar and invertible matrices on C. Does > anybody know > a function or a program in GAP to compute an invertible matrix P > such that > P^{-1}AP=B ? A straightforward way is to write AP = PB and to solve the system of linear equations in the entries of P. For reasonalby samll matrices, this works well. If your matrices are over the complex numbers, then you can also conjugate both into Jordan normal form and find a suitable permutation matrix to conjugate one Jordan normal form into the other. A similar approach might work for matrices over finite fields. In my package IRREDSOL, I have used such an approach for computing conjugating matrices of irreducible matrix groups. Cheers, Burkhard. From graham.ellis at nuigalway.ie Thu Mar 13 17:21:11 2008 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Thu Mar 13 17:22:42 2008 Subject: [GAP Forum] applied computational algebra course References: <7BC4FCB2B695D64CBF525CEC6437532701BA3511@EVS1.ac.nuigalway.ie> <7BC4FCB2B695D64CBF525CEC6437532701BA3514@EVS1.ac.nuigalway.ie> Message-ID: <7BC4FCB2B695D64CBF525CEC6437532701BA3516@EVS1.ac.nuigalway.ie> The Maths Department at NUI Galway are offering a new one-year master's programme in "Applied Computational Algebra", starting September 2008. If you happen to know of any students who might be interested, it would be much appreciated if you could direct them to the web link http://hamilton.nuigalway.ie/DeBrunCentre/masters.pdf which gives details of the programme. Thanks, Graham From mim_ at op.pl Fri Mar 14 09:02:04 2008 From: mim_ at op.pl (mim_@op.pl) Date: Fri Mar 14 09:07:35 2008 Subject: [GAP Forum] Another memory problem Message-ID: Hi, I am using Deriviations function to calculate Lie Algebra of derivations of some algebra created from octonions. I have noticed that Derivations works up to 36-dimension algebra. If the original algebra is bigger dimension there is memory problem and GAP quits. I have looked into the Derivations function in lib/alglie.gi file. The matrix A:= NullMat( n^2, n^3, R ); is created and this is the reason of the memory problem. I start GAP with option -m 300m. If I try bigger value I see following error: D:\gap4r4\bin>D:\GAP4R4\bin\gapw95.exe -m 400m -o 3000m -g -l D:\GAP4R4\ gap: cannot extend the workspace any more gap: Press to end program So it looks I can only use 300MB of memory for GAP. But I have 1.5GB memory in my laptop. I can also define paging file which should be used as memory. I am using Windows XP Professional, processor Intel 1.7Ghz, IBM laptop R52. Example of error in Derivations: A:=MatrixAlgebra(Rationals, 6); ba:=Basis(A); DA:=Derivations(ba); Error is shown: gap: cannot extend the workspace any more gap: Press to end program I have following questions 1. Why I can only start GAP with -m 300m option ? 2. How to test how much memory given matrix A is using in GAP ? 3. Has anybody tried to overwrite Derivations function to use smaller matrices ? E.g. we could declare smaller matrices NullMat( n^2, n^2, R ) in loop and solve partially equation via NullspaceMatDestructive(). Finally build intersection space for the result. Regards, Marek Mitros From mim_ at op.pl Mon Mar 17 11:32:17 2008 From: mim_ at op.pl (mim_@op.pl) Date: Mon Mar 17 11:32:37 2008 Subject: [GAP Forum] Re: Another memory problem In-Reply-To: Q86638938-3d3c6593e0f1adcfc4efbb1d028a6c11@pmq2.test.onet.pl Message-ID: Thank you for the answers I have received ! It helped. I can use GAP with more memory now. I believe there is a way to create function for Derivations, which consumes less memory. In the matrix A:= NullMat( n^2, n^3, R ); most of the entries are zeros. I have tested it for algebra M6:=MatrixAlgebra(Rationals, 6); There are 22476 non zero entries among 36^5=60466176. I will try to create such function when I have more time. Regards, Marek Mitros mim_@op.pl napisa?(a): (...) > > Example of error in Derivations: > A:=MatrixAlgebra(Rationals, 6); ba:=Basis(A); DA:=Derivations(ba); > Error is shown: > gap: cannot extend the workspace any more > gap: Press to end program > > I have following questions > 1. Why I can only start GAP with -m 300m option ? > 2. How to test how much memory given matrix A is using in GAP ? > 3. Has anybody tried to overwrite Derivations function to use smaller matrices ? E.g. we could declare smaller matrices NullMat( n^2, n^2, R ) in loop and solve partially equation via NullspaceMatDestructive(). Finally build intersection space for the result. > > Regards, > Marek Mitros > > > From matmackaizer at yahoo.ca Wed Mar 19 04:46:47 2008 From: matmackaizer at yahoo.ca (Minh Vaughn) Date: Wed Mar 19 04:47:18 2008 Subject: [GAP Forum] Proof of Existence of Unique Monic Polynomial of Minimal Degree Message-ID: <226494.21163.qm@web45115.mail.sp1.yahoo.com> I would be grateful for a proof of the following problem: Suppose R is a unique factorization domain, and suppose S is an integral domain which is integral over R. Then for every element s in S there is a UNIQUE monic polynomial P in R[x] of MINIMAL degree, such that P(s) = 0. Thanks. -Tim --------------------------------- Looking for the perfect gift? Give the gift of Flickr! From oova1980 at yahoo.de Tue Mar 25 09:49:49 2008 From: oova1980 at yahoo.de (Knut Kasimir) Date: Tue Mar 25 09:50:19 2008 Subject: [GAP Forum] Complex numbers (again) and Lie closure Message-ID: <781000.38164.qm@web25915.mail.ukl.yahoo.com> Hi, so I've read (hopefully) all forum threads concerning the absence of complex numbers in GAP. I know that there are alternatives, eg. cyclotomic fields and algebraic extensions of the Rationals. But since I am rather unexperienced in using GAP, I would like to know to what extent these "workarounds" can replace complex numbers, especially when I want to work with Lie algebras over a complex field. What I want to do with GAP is the following: Given a set of complex square matrices, find out if they form a vectorspace under repeated commutation, i.e. a Lie algebra. In other words, do these given matrices generate a Lie algebra under repeated commutation? Since these matrices can be large, I am looking for an efficient way to deal with this problem and I was hoping that GAP would be well suited. But then I discovered that there were no complex numbers in GAP, and "the workarounds" might prevent an efficient computation (or a computation at all)... Comments welcome! :-) Lesen Sie Ihre E-Mails jetzt einfach von unterwegs. www.yahoo.de/go From jbohanon2 at gmail.com Tue Mar 25 19:56:55 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue Mar 25 19:57:29 2008 Subject: [GAP Forum] GAP @ Home? Message-ID: <47E95907.8070405@gmail.com> At the CGT conference last week the concept of "GAP @ Home" was thrown out there sort of as a joke, but I'm wondering if that might actually be possible. I'm curious to know if anyone here has heard of BOINC. I forget what the acronym stands for, but it's a meta-client through Berkeley for SETI and other programs like it, including one that searches for big primes. I know at least for the prime programs, you don't even need GUI to set it up. It would be cool if people could make their processor available for some of these enormous group theoretic calculations that would be impossible on a single machine. Joe From mjcforsenate at yahoo.com Tue Mar 25 20:37:56 2008 From: mjcforsenate at yahoo.com (Michael McDonald) Date: Tue Mar 25 20:38:21 2008 Subject: [GAP Forum] GAP @ Home? In-Reply-To: <47E95907.8070405@gmail.com> Message-ID: <647771.73192.qm@web39509.mail.mud.yahoo.com> I've had dim, unformulated thoughts along these lines and am happy that someone has brought them out in the open. Might ParGAP be extensible along these lines? >From my quick trials after installing GAP and compiling the packages, I think I'm recalling correctly that you can specify a list of processors/computers via a url-like format on which parGAP can launch a thread. This might be managed by hand with small groups of trusted participants. To get an application of much complexity going, compiling GAP code to native machine language would be preferable than the normal GAP interpreter as codes can execute for months or years. An interpreted application is probably something like a factor of ten slower. I'm willing to contribute cycles and coding to such a boinced-up GAP project, although I still need to learn the GAP system a liitle more. Mike --- Joe Bohanon wrote: > At the CGT conference last week the concept of "GAP > @ Home" was thrown > out there sort of as a joke, but I'm wondering if > that might actually be > possible. > I'm curious to know if anyone here has heard of > BOINC. I forget what > the acronym stands for, but it's a meta-client > through Berkeley for SETI > and other programs like it, including one that > searches for big primes. > > I know at least for the prime programs, you don't > even need GUI to set > it up. It would be cool if people could make their > processor available > for some of these enormous group theoretic > calculations that would be > impossible on a single machine. > > Joe > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From degraaf at science.unitn.it Wed Mar 26 08:47:45 2008 From: degraaf at science.unitn.it (degraaf@science.unitn.it) Date: Wed Mar 26 09:17:20 2008 Subject: [GAP Forum] Re: Complex numbers (again) and Lie closure Message-ID: <20080326094745.0uyi026u8g0swo8w@www.unitn.it> Dear Knut, You asked the following: > What I want to do with GAP is the following: Given a set of complex > square matrices, find out if they form a vectorspace under repeated > commutation, i.e. a > Lie algebra. In other words, do these given > matrices generate a Lie algebra under repeated commutation? The problem here is that you need some exact representation of the complex numbers that you use. (Just a floating point representation does not work.) If the entries of your matrices are algebraic over Q, then you can represent them as entries in a number field. Otherwise I don't see how your problem could be solved. Best wishes, Willem de Graaf From max at quendi.de Fri Mar 28 16:30:11 2008 From: max at quendi.de (Max Horn) Date: Fri Mar 28 16:30:43 2008 Subject: [GAP Forum] Transitive subgrops of Sym(n) of order n Message-ID: <37043.XVdYXF9DRFA=.1206721811.squirrel@webmailer.hosteurope.de> Dear GAP forum, is there an "efficient" way to compute (the conjugacy classes of) all transitive subgroups of SymmetricGroup(n) or order n? I.e. something more efficient than Filtered(ConjugacyClassesSubgroups(SymmetricGroup(n)), x -> n=Size(Representative(x)) and IsTransitive(Representative(x))) which has to compute all conjugacy classes. Thanks! Max From nmd at uiuc.edu Sat Mar 29 03:40:28 2008 From: nmd at uiuc.edu (Nathan Dunfield) Date: Sat Mar 29 03:41:01 2008 Subject: [GAP Forum] Finding only one GQuotient Message-ID: <6FE04480-9B05-45FF-86F7-AC6D4B5B85FD@uiuc.edu> Dear GAP folks, The manual indicates [1] that GQuotients should return only the first quotient it finds if the "findall" option is set to false. However, when I try gap> GQuotients(FreeGroup(2), AlternatingGroup(5) : findall := false); I get all 19 epimorphisms. What am I doing wrong? Thanks, Nathan GAP info: 4.4.10 on OS X/Intel version 10.4. [1] http://www.gap-system.org/Manuals/doc/htm/ref/CHAP038.htm#SSEC009.2 From thomas.breuer at math.rwth-aachen.de Mon Mar 31 08:46:04 2008 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Mon Mar 31 08:46:31 2008 Subject: [GAP Forum] Transitive subgrops of Sym(n) of order n In-Reply-To: <37043.XVdYXF9DRFA=.1206721811.squirrel@webmailer.hosteurope.de> References: <37043.XVdYXF9DRFA=.1206721811.squirrel@webmailer.hosteurope.de> Message-ID: <20080331074604.GA26239@gemma.math.rwth-aachen.de> proposed answer to the GAP Forum ------------------------------------------------------------------------ Dear GAP Forum, Max Horn asked: > is there an "efficient" way to compute (the conjugacy classes of) all > transitive subgroups of SymmetricGroup(n) or order n? > > I.e. something more efficient than > > Filtered(ConjugacyClassesSubgroups(SymmetricGroup(n)), > x -> n=Size(Representative(x)) and IsTransitive(Representative(x))) > > which has to compute all conjugacy classes. Any group of order n has only one transitive permutation representation on n points, up to equivalence: its regular permutation representation. That is, the classes of transitive groups of degree and order n are given by the classes of regular permutation representations of the groups of order n. So if one knows the groups of order n, up to isomorphism, then one can write down the required subgroups of the symmetric group of degree n. (This condition is satisfied for not too large n, via the GAP library of small groups; see "Small Groups" in the GAP Reference Manual.) Here is one possibility to do this explicitly in GAP. List( AllSmallGroups( n ), G -> Action( G, Elements( G ), OnRight ) ); All the best, Thomas From jbohanon2 at gmail.com Mon Mar 31 16:56:28 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Mon Mar 31 16:56:52 2008 Subject: [GAP Forum] Transitive subgrops of Sym(n) of order n In-Reply-To: <20080331074604.GA26239@gemma.math.rwth-aachen.de> References: <37043.XVdYXF9DRFA=.1206721811.squirrel@webmailer.hosteurope.de> <20080331074604.GA26239@gemma.math.rwth-aachen.de> Message-ID: <47F109AC.3020907@gmail.com> I know this isn't exactly what was asked, but a few weeks ago at CGT, Derek Holt spoke about finding certain kinds of subgroups of S_n up to conjugacy. Up to 4095, the primitive ones are known. Up to 32 the transitive ones are known. And up to 18 ALL of the (conjugacy classes of) subgroups of S_n are known. There's a paper about finding the transitive ones on his website (which references a paper of Alexander Hulpke's on the same subject). Joe Thomas Breuer wrote: > proposed answer to the GAP Forum > ------------------------------------------------------------------------ > Dear GAP Forum, > > Max Horn asked: > > >> is there an "efficient" way to compute (the conjugacy classes of) all >> transitive subgroups of SymmetricGroup(n) or order n? >> >> I.e. something more efficient than >> >> Filtered(ConjugacyClassesSubgroups(SymmetricGroup(n)), >> x -> n=Size(Representative(x)) and IsTransitive(Representative(x))) >> >> which has to compute all conjugacy classes. >> > > Any group of order n has only one transitive permutation representation > on n points, up to equivalence: its regular permutation representation. > That is, the classes of transitive groups of degree and order n > are given by the classes of regular permutation representations of > the groups of order n. > So if one knows the groups of order n, up to isomorphism, > then one can write down the required subgroups of the symmetric group > of degree n. > (This condition is satisfied for not too large n, > via the GAP library of small groups; > see "Small Groups" in the GAP Reference Manual.) > > Here is one possibility to do this explicitly in GAP. > > List( AllSmallGroups( n ), G -> Action( G, Elements( G ), OnRight ) ); > > All the best, > Thomas > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From hulpke at math.colostate.edu Mon Mar 31 18:12:31 2008 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon Mar 31 18:13:23 2008 Subject: [GAP Forum] Finding only one GQuotient In-Reply-To: <6FE04480-9B05-45FF-86F7-AC6D4B5B85FD@uiuc.edu> References: <6FE04480-9B05-45FF-86F7-AC6D4B5B85FD@uiuc.edu> Message-ID: Dear Nathan, > The manual indicates [1] that GQuotients should return only the > first quotient it finds if the "findall" option is set to false. > However, when I try > > gap> GQuotients(FreeGroup(2), AlternatingGroup(5) : findall := false); > > I get all 19 epimorphisms. What am I doing wrong? You're doing nothing wrong, the ``findall'' option so far was implemented only in the code that searches from finite groups (the code searching from finitely presented groups is a bit different). This will be fixed in the next release, I append code for the method which you can read into GAP to get the ``findall''' option already now. Apologies for the problem, 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 ### snip ### ############################################################################# ## #F GQuotients(,) . . . . . epimorphisms from F onto G up to conjugacy ## InstallMethod(GQuotients,"whole fp group to finite group",true, [IsSubgroupFpGroup and IsWholeFamily,IsGroup and IsFinite],1, function (F,G) local Fgens, # generators of F rels, # power relations cl, # classes of G imgo,imgos,sel, e, # excluded orders (for which the presentation collapses u, # trial generating set's group pimgs, # possible images val, # its value i, # loop h; # epis Fgens:=GeneratorsOfGroup(F); if Length(Fgens)=0 then if Size(G)>1 then return []; else return [GroupHomomorphismByImagesNC(F,G,[],[])]; fi; fi; if Size(G)=1 then return [GroupHomomorphismByImagesNC(F,G,Fgens, List(Fgens,i->One(G)))]; elif Length(Fgens)=1 then Info(InfoMorph,1,"Cyclic group: only one quotient possible"); # a cyclic group has at most one quotient # force size (in abelian invariants) e:=AbelianInvariants(F); if not IsCyclic(G) or (IsFinite(F) and not IsInt(Size(F)/ Size(G))) then return []; else # get the cyclic gens h:=First(AsList(G),i->Order(i)=Size(G)); # just map them return [GroupHomomorphismByImagesNC(F,G,Fgens,[h])]; fi; fi; cl:=ConjugacyClasses(G); # search relators in only one generator rels:=ListWithIdenticalEntries(Length(Fgens),false); for i in RelatorsOfFpGroup(F) do if NrSyllables(i)=1 then # found relator in only one generator val:=Position(List(FreeGeneratorsOfFpGroup(F),j- >GeneratorSyllable(j,1)), GeneratorSyllable(i,1)); u:=AbsInt(ExponentSyllable(i,1)); if rels[val]=false then rels[val]:=u; else rels[val]:=Gcd(rels[val],u); fi; fi; od; # exclude orders e:=Set(List(cl,i->Order(Representative(i)))); e:=List(Fgens,i->ShallowCopy(e)); for i in [1..Length(Fgens)] do if rels[i]<>false then e[i]:=Filtered(e[i],j->rels[i]<>j and IsInt(rels[i]/j)); fi; od; e:=ExcludedOrders(F,e); # find potential images pimgs:=[]; for i in [1..Length(Fgens)] do if rels[i]<>false then Info(InfoMorph,2,"generator order must divide ",rels[i]); u:=Filtered(cl,j->IsInt(rels[i]/Order(Representative(j)))); else Info(InfoMorph,2,"no restriction on generator order"); u:=ShallowCopy(cl); fi; u:=Filtered(u,j->not Order(Representative(j)) in e[i]); Add(pimgs,u); od; val:=Product(pimgs,i->Sum(i,Size)); Info(InfoMorph,2,List(pimgs,Length)," possibilities, Value: ",val); if ValueOption("findall")=false then h:=MorClassLoop(G,pimgs, rec(gens:=Fgens,to:=G,from:=F, free:=FreeGeneratorsOfFpGroup(F), rels:=List(RelatorsOfFpGroup(F),i->[i,1])),5); if not IsList(h) then h:=[h];fi; else h:=MorClassLoop(G,pimgs, rec(gens:=Fgens,to:=G,from:=F, free:=FreeGeneratorsOfFpGroup(F), rels:=List(RelatorsOfFpGroup(F),i->[i,1])),13); fi; Info(InfoMorph,2,"Found ",Length(h)," maps, test kernels"); imgos:=[]; cl:=[]; u:=[]; for i in h do imgo:=List(Fgens,j->Image(i,j)); imgo:=Concatenation(imgo,MorFroWords(imgo)); imgo:=List(imgo,Order); sel:=Filtered([1..Length(imgos)],i->imgos[i]=imgo); if not KernelOfMultiplicativeGeneralMapping(i) in u{sel} then Add(u,KernelOfMultiplicativeGeneralMapping(i)); Add(imgos,imgo); Add(cl,i); fi; od; Info(InfoMorph,1,Length(h)," found -> ",Length(cl)," homs"); return cl; end); ## snip ### From oova1980 at yahoo.de Tue Apr 1 09:52:46 2008 From: oova1980 at yahoo.de (Knut Kasimir) Date: Tue Apr 1 09:53:21 2008 Subject: [GAP Forum] Re: Complex numbers (again) and Lie closure Message-ID: <641732.60461.qm@web25910.mail.ukl.yahoo.com> Dear Willem, thank you very much for your answer. I think I should be able to work with matrices whose entries are algebraic over Q. As I see it (being not a mathematician and a GAP newbie), the problem then reduces to create a number field and do my desired operations on it. Best wishes, Knut Von: "degraaf@science.unitn.it" An: forum@gap-system.org CC: oova1980@yahoo.de Gesendet: Mittwoch, den 26. M?rz 2008, 09:47:45 Uhr Betreff: Re: Complex numbers (again) and Lie closure Dear Knut, You asked the following: > What I want to do with GAP is the following: Given a set of complex > square matrices, find out if they form a vectorspace under repeated > commutation, i.e. a Lie algebra. In other words, do these given > matrices generate a Lie algebra under repeated commutation? The problem here is that you need some exact representation of the complex numbers that you use. (Just a floating point representation does not work.) If the entries of your matrices are algebraic over Q, then you can represent them as entries in a number field. Otherwise I don't see how your problem could be solved. Best wishes, Willem de Graaf Lesen Sie Ihre E-Mails auf dem Handy. www.yahoo.de/go From jbohanon2 at gmail.com Thu Apr 3 17:56:15 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Apr 3 17:56:34 2008 Subject: [GAP Forum] Computing Subgroups of L3(4):2 Message-ID: I'm having some trouble with ConjugacyClassesSubgroups on the maximal subgroup L3(4):2_1 of HS. I'm trying to use the ideas in a paper by Pfeiffer to find all classes of subgroups of HS, by examining the classes of subgroups of its maximal subgroups and fusing them in HS. It might have been done before, but I couldn't find it. With L3(4):2_1, I've hit a roadblock. I'm using the degree 100 permutation representation and the GAP inline program from the ATLAS to get the generators of this subgroup. I'd use the ATLAS to find the maximal subgroups of L3(4):2_1 and do the same sort of thing, but the online version doesn't have that information. GAP had no problem computing the classes of subgroups of the two U3(5):2 maximal classes, but when I set InfoLattice to 2, I can see that it stalls immediately after it computes the zuppos. It comes upon a "Recursion Depth Trap" error if I try it from scratch and when I set the recursion depth to 0, I ended up stopping it after an hour or so of nothing. What I find odd is that it only takes 5 seconds to find the subgroup of L3(4). If anyone can help me out with this, I'd be very grateful. I suppose I probably don't really need all of the conjugacy classes, but frankly I'm still curious to know why it stalls so bad on a group just twice as big as one that goes fast. My next step will be to go line through line in the source code to find the exact spot that's causing this to take so long. Thanks Joe From ivgelder at vub.ac.be Fri Apr 4 20:26:17 2008 From: ivgelder at vub.ac.be (Inneke Van Gelder) Date: Fri Apr 4 20:26:38 2008 Subject: [GAP Forum] Define function with domain and codomain Message-ID: <000001c89689$c13ee670$0301a8c0@acerfdba0cedfc> Dear GAP-forum, How can I define a function with explicit domain and codomain? I need it do find the size of the kernel of the mapping t: C_4^3 \times S_4 \rightarrow \{ \pm 1 \}: (h_1,h_2,h_3,h_4) \mapsto sgn(h_1)sgn(h_2)sgn(h_3)sgn(h_4) Best regards, Inneke Van Gelder From jack at ms.uky.edu Fri Apr 4 21:10:25 2008 From: jack at ms.uky.edu (Jack Schmidt) Date: Fri Apr 4 21:10:35 2008 Subject: [GAP Forum] Define function with domain and codomain In-Reply-To: <000001c89689$c13ee670$0301a8c0@acerfdba0cedfc> References: <000001c89689$c13ee670$0301a8c0@acerfdba0cedfc> Message-ID: <47F68B31.2070007@ms.uky.edu> GroupHomomorphismByImages or GroupHomomorphismByFunction are probably what you are looking for. The first argument is the domain, and the second argument is the codomain. Here is an example: C4 := CyclicGroup(IsPermGroup,4); S4 := SymmetricGroup(4); dom := DirectProduct( C4, C4, C4, S4 );; cod := GL(1,Integers);; fun := h -> Product( [1..4], i -> SignPerm( Image( Projection( dom, i), h ) ) );; homf := GroupHomomorphismByFunction( dom, cod, h -> [[ fun(h) ]] );; homi := GroupHomomorphismByImages( dom, cod, GeneratorsOfGroup(dom), List( GeneratorsOfGroup(dom), h -> [[ fun(h) ]] ) );; kerf := Kernel(homf); keri := Kernel(homi); gap> kerf=keri; true gap> StructureDescription(keri); "C4 x C4 x (A4 : C4)" gap> Elements(cod); [ [ [ -1 ] ], [ [ 1 ] ] ] Note that kerf has many more generators than keri, so it is less efficient to work with kerf than with keri. However, as you can see, the groups are equal. You cannot literally use [1,-1] as a group, since exponentiation is defined differently for group elements than for rational numbers, but you can use 1x1 matrices instead, which are equivalent in an easy to see way. Inneke Van Gelder wrote: > Dear GAP-forum, > > > > > > How can I define a function with explicit domain and codomain? > > I need it do find the size of the kernel of the mapping > > t: C_4^3 \times S_4 \rightarrow \{ \pm 1 \}: (h_1,h_2,h_3,h_4) \mapsto > sgn(h_1)sgn(h_2)sgn(h_3)sgn(h_4) > > > > > > > > Best regards, > > Inneke Van Gelder > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dennis at rkd.math.cornell.edu Tue Apr 8 14:42:30 2008 From: dennis at rkd.math.cornell.edu (R. Keith Dennis) Date: Tue Apr 8 13:43:44 2008 Subject: [GAP Forum] StructureDescription & memory Message-ID: <200804081342.m38DgTaI001750@rkd.math.cornell.edu> Over the past year I've been doing a large number of computations with GAP and as I require much of the same data to be computed over & over again, I've been storing it. One of the items I've been storing is the StructureDescription of a large number of groups. I realize that for groups, especially p-groups, the information obtained isn't always that useful, but sometimes it is. For more complicted groups (lots of factors in the order) this seems to be very expensive to compute, and very slow (hence the reason to store it). I've run into a problem, which may be intrinsic to the problem, may be a problem with gap, or might be a problem with our computer or operating system. Perhaps someone can tell me which. Ok, a perhaps stupid computation, but let's ignore that part: I've computed the structure descriptions of all the groups of order 256 (56092 total) except for the ones numbered 56083 through 56087. I believe all of these are of rank 7. I've now either run out of memory and had GAP quit, or I've brought the machine down 3 times when trying to compute the result for 56083 or 56087. With memory set at a max of 50G the computation runs out of memory and quits. I've tried 100G and 80G with the same result - a crash. The machine does have 128G of ram and several times that in swap space (as well as 16 CPUs). Any ideas what the problem may be? One further question and a remark: Are there any other implementations of a computation of structure description that gives more useful information that that in gap? I still believe that it makes sense to have a community accessible archive of many such "standard" computations as structure descricption, although when I raised that question at the recent computational group theory conference in Ohio, there was not a great deal of enthusiasm for the idea. With the current cheap price of storage (especially compared to that of memory and the time expended for comutation), it would seem to make sense, to me at least. Keith From sal at cs.st-and.ac.uk Tue Apr 8 15:38:22 2008 From: sal at cs.st-and.ac.uk (Steve Linton) Date: Tue Apr 8 15:39:55 2008 Subject: [GAP Forum] StructureDescription & memory In-Reply-To: <200804081342.m38DgTaI001750@rkd.math.cornell.edu> References: <200804081342.m38DgTaI001750@rkd.math.cornell.edu> Message-ID: <20080408153822.48b7c9e9@cs.st-and.ac.uk> A partial answer: As you observe, these groups are all of rank 7. I think they can be understood as D8 x C_2^5, Q8 x C_2^5, and 2^{1+4}_+ x C_2^3 and 2^{1+4}_- x C_2^3, although I haven't checked this fully. The first step in computing the structure description is to list the normal subgroups of the group, and the essential problem is that these groups have very many normal subgroups. I don't know exactly what computing the structure description involves in general, so I'm not sure if it the normal subgroup computation can be avoided in general, but most interesting questions about the groups (upper and lower central series, for instance) can be answered very quickly using standard GAP functionality. Steve On Tue, 8 Apr 2008 09:42:30 -0400 "R. Keith Dennis" wrote: > > Over the past year I've been doing a large number of computations > with GAP and as I require much of the same data to be computed > over & over again, I've been storing it. One of the items I've > been storing is the StructureDescription of a large number of > groups. I realize that for groups, especially p-groups, the > information obtained isn't always that useful, but sometimes it is. > For more complicted groups (lots of factors in the order) this > seems to be very expensive to compute, and very slow (hence the > reason to store it). > > I've run into a problem, which may be intrinsic to the problem, may > be a problem with gap, or might be a problem with our computer or > operating system. Perhaps someone can tell me which. > > Ok, a perhaps stupid computation, but let's ignore that part: > I've computed the structure descriptions of all the groups of order > 256 (56092 total) except for the ones numbered 56083 through 56087. I > believe all of these are of rank 7. I've now either run out of memory > and had GAP quit, or I've brought the machine down 3 times when trying > to compute the result for 56083 or 56087. With memory set at a max of > 50G the computation runs out of memory and quits. I've tried 100G and > 80G with the same result - a crash. The machine does have 128G of ram > and several times that in swap space (as well as 16 CPUs). > > Any ideas what the problem may be? > > > One further question and a remark: > > Are there any other implementations of a computation of structure > description that gives more useful information that that in gap? > > > I still believe that it makes sense to have a community accessible > archive of many such "standard" computations as structure > descricption, although when I raised that question at the recent > computational group theory conference in Ohio, there was not a great > deal of enthusiasm for the idea. With the current cheap price of > storage (especially compared to that of memory and the time expended > for comutation), it would seem to make sense, to me at least. > > > Keith > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 The University is a charity registered in Scotland : No SC013532 From jack at ms.uky.edu Tue Apr 8 16:18:36 2008 From: jack at ms.uky.edu (Jack Schmidt) Date: Tue Apr 8 16:18:45 2008 Subject: [GAP Forum] StructureDescription & memory In-Reply-To: <20080408153822.48b7c9e9@cs.st-and.ac.uk> References: <200804081342.m38DgTaI001750@rkd.math.cornell.edu> <20080408153822.48b7c9e9@cs.st-and.ac.uk> Message-ID: <47FB8CCC.7050204@ms.uky.edu> Steve Linton wrote: > A partial answer: > > As you observe, these groups are all of rank 7. I think they can be understood > as D8 x C_2^5, Q8 x C_2^5, and 2^{1+4}_+ x C_2^3 and 2^{1+4}_- x C_2^3, > although I haven't checked this fully. Just to indicate a method as well as a solution: to guess, one can use the simplified presentation printing from the "polycyclic" package: gap> LoadPackage("polycyclic");; gap> DisplayPcpGroup(Range(IsomorphismPcpGroup(SmallGroup(2^8,56083)))); ... which prints out the familiar presentation for D8 on g1,g2,g8 and then a presentation for an elementary abelian group of order 2^5 on g3 through g7 (commutative conjugation relations are suppressed). To verify the guess one uses a much more efficient method: construct the direct products and use IdGroup. IdGroup(DirectProduct(ExtraspecialGroup(2^5,"-"),ElementaryAbelianGroup(2^3))); When I created a browsing database of the groups of order n, for n <= 2000 and NrSmallGroups(n) < 10^5, I used this method to name direct products. It is similar to Eratosthenes sieve versus trial factoring. The idea here is that if you are looking for direct products, then factoring large groups is the wrong method. Rather one should form products of small ones. I should also mention that while the creation of the database was enormously helpful to me, I rarely found any use of it other than a casual reminder of "what do the groups of that order look like?" >> Are there any other implementations of a computation of structure >> description that gives more useful information that that in gap? I have yet to find a convincing description for p-groups. A sparse, algebraic presentation such as in the small groups library is about the most useful I have found. From jbohanon2 at gmail.com Tue Apr 8 16:44:35 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue Apr 8 16:46:17 2008 Subject: [GAP Forum] StructureDescription & memory In-Reply-To: <47FB8CCC.7050204@ms.uky.edu> References: <200804081342.m38DgTaI001750@rkd.math.cornell.edu> <20080408153822.48b7c9e9@cs.st-and.ac.uk> <47FB8CCC.7050204@ms.uky.edu> Message-ID: <47FB92E3.3000007@gmail.com> If you do SetInfoLevel(InfoLattice,,2) you can see exactly what's being computed. Plus when I throw GAP a hard computation, I like to have some output to give me a sense of how close it is to finishing. Along those same lines, it would be nice if there could be a separate dialog box for those computations so they don't end up pushing all of my input lines off the screen, kind of like how when you install something in Ubuntu you can open a "details" tab. I've mentioned this to Russ Woodroofe to try to put something like it in CocoaGap. This might be a good time to plug some computations I've done on my homepage that give some nice presentations for the groups of order 32 and 64. I know that the Pc presentations are very fast when it comes to algorithms, but it's hard to immediately look at the Pc presentation for D64 with six generators and immediately see what the group is. I also wrote a few of them as a central product. http://www.math.wustl.edu/~bohanon/math/math.html I can imagine it would be difficult to teach a computer what kind of "Structure Descriptions" are the prettiest to humans. Certainly direct products are the nicest, and then I think come central products, semi-direct products and split extensions. Perhaps some of the methods that James Wilson presented at CGT could eventually be used for central products. The only problem is that for many groups there are tons of ways to represent them as any of the last three. Joe Jack Schmidt wrote: > Steve Linton wrote: >> A partial answer: >> >> As you observe, these groups are all of rank 7. I think they can be >> understood >> as D8 x C_2^5, Q8 x C_2^5, and 2^{1+4}_+ x C_2^3 and 2^{1+4}_- x C_2^3, >> although I haven't checked this fully. > > Just to indicate a method as well as a solution: to guess, one can use > the simplified presentation printing from the "polycyclic" package: > > gap> LoadPackage("polycyclic");; > gap> DisplayPcpGroup(Range(IsomorphismPcpGroup(SmallGroup(2^8,56083)))); > ... > > which prints out the familiar presentation for D8 on g1,g2,g8 and then > a presentation for an elementary abelian group of order 2^5 on g3 > through g7 (commutative conjugation relations are suppressed). > > To verify the guess one uses a much more efficient method: construct > the direct products and use IdGroup. > > IdGroup(DirectProduct(ExtraspecialGroup(2^5,"-"),ElementaryAbelianGroup(2^3))); > > > > When I created a browsing database of the groups of order n, for n <= > 2000 and NrSmallGroups(n) < 10^5, I used this method to name direct > products. It is similar to Eratosthenes sieve versus trial factoring. > The idea here is that if you are looking for direct products, then > factoring large groups is the wrong method. Rather one should form > products of small ones. > > I should also mention that while the creation of the database was > enormously helpful to me, I rarely found any use of it other than a > casual reminder of "what do the groups of that order look like?" > >>> Are there any other implementations of a computation of structure >>> description that gives more useful information that that in gap? > > I have yet to find a convincing description for p-groups. A sparse, > algebraic presentation such as in the small groups library is about > the most useful I have found. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From vdabbagh at sfu.ca Thu Apr 10 07:38:08 2008 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Thu Apr 10 07:38:34 2008 Subject: [GAP Forum] groups homomorphism Message-ID: <200804100638.m3A6c8tC000550@rm-rstar.sfu.ca> Dear GAP Forum, Suppose G and H are groups and there are homomorphisms from G to H. If U is a set of generators of G, how can I find a set of generators V of H to use the function GroupHomomorphismByImages( G, H, U, V )? Clearly if I know the set V then I can use GroupHomomorphismByImagesNC. Is there any other function or method for creating a homomorphism from G to H? I am very thankful for any help. Regards Vahid Dabbaghian _____________________________ The IRMACS Centre (ASB 10905) Simon Fraser University 8888 University Drive Burnaby, BC V5A 1S6 Canada E-mail: vdabbagh@sfu.ca http://www.sfu.ca/~vdabbagh From dan_lanke at yahoo.com Wed Apr 16 19:42:56 2008 From: dan_lanke at yahoo.com (Dan Lanke) Date: Wed Apr 16 19:43:31 2008 Subject: [GAP Forum] G-invariant linear character Message-ID: <604575.40689.qm@web45102.mail.sp1.yahoo.com> Dear GAP Forum, Let H be a normal subgroup of a finite group G. Let \rho be a G-invariant linear character of H. Is it true that there exists a linear character of G whose restriction to H is equal to \rho? If the answer is no, how can I use GAP to find some examples? Many thanks, Dan --------------------------------- Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. From josef.lauri at um.edu.mt Thu Apr 17 13:22:06 2008 From: josef.lauri at um.edu.mt (Josef Lauri) Date: Thu Apr 17 13:23:44 2008 Subject: [GAP Forum] XGAP and cygwin Message-ID: <000d01c8a085$a702eb20$f508c160$@lauri@um.edu.mt> Hello, I have installed gap under cygwin (running windows vista). Installation and compilation ran well and functions which could not run under my previous windows installation of gap are now running fine. But I am having problems with xgap. When I call RequirePackage("xgap"); gap returns with the message "fail". I would appreciate any tips. Thank you. Josef Lauri University of Malta From anvita21 at gmail.com Fri Apr 18 10:24:28 2008 From: anvita21 at gmail.com (Anvita) Date: Fri Apr 18 10:24:58 2008 Subject: [GAP Forum] Input stream inside a function Message-ID: <6a52effd0804180224j5f345c34se691716156a3a847@mail.gmail.com> Dear Forum, Please, explain to me why the following function does not work: ------------------------------- F:=function(a) local b; Read(InputTextString("b:=a;")); return b; end; ------------------------------- I expected that, for example, F(1) would equal 1. However, GAP returns an error: ---------------------------------------------------- gap> F(1); Variable: 'a' must have a value Variable: 'b' must have an assigned value at return b; 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;' after assigning a value to continue ----------------------------------------------------- The code does work in the main read-eval-print loop, though: ------------------------------------ gap> a:=1; 1 gap> Read(InputTextString("b:=a;")); gap> b; 1 ------------------------------------ Thank you, Anvita From laurent.bartholdi at gmail.com Fri Apr 18 11:45:15 2008 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Fri Apr 18 11:45:51 2008 Subject: [GAP Forum] Input stream inside a function In-Reply-To: <6a52effd0804180224j5f345c34se691716156a3a847@mail.gmail.com> References: <6a52effd0804180224j5f345c34se691716156a3a847@mail.gmail.com> Message-ID: <1ff637850804180345j451a302fu7fff4b49a4169d0a@mail.gmail.com> Dear Anvita, This is because a is a local variable, and Read() only has access to global variables. If you need such a construct, try F := function(a) __A_GLOBAL_NAME_THAT_IS_NOT_USED := a; Read(InputTextString("b:=__A_GLOBAL_NAME_THAT_IS_NOT_USED;")); return b; end; note however that b will also be a global variable. Best, Laurent -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 Station 8 \ Secr?taire: +41 21-6935471 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 Home address: http://f34.com/68 From neunhoef at mcs.st-and.ac.uk Fri Apr 18 12:03:58 2008 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Fri Apr 18 12:04:16 2008 Subject: [GAP Forum] Input stream inside a function In-Reply-To: <6a52effd0804180224j5f345c34se691716156a3a847@mail.gmail.com> References: <6a52effd0804180224j5f345c34se691716156a3a847@mail.gmail.com> Message-ID: <20080418110358.GA13176@mcs.st-and.ac.uk> Dear Anvita, On Fri, Apr 18, 2008 at 04:24:28PM +0700, Anvita wrote: > Dear Forum, > > Please, explain to me why the following function does not work: > > ------------------------------- > F:=function(a) > local b; > Read(InputTextString("b:=a;")); > return b; > end; > ------------------------------- The Read statement in GAP always evaluates the things read in the global context (and not in the context of the function where it is called). This means, that your file will try to access the *global* variable called "a" and assign things to the *global* variable called "b". This is documented in the manual section about "Read" in the little sentence: "The reading and evaluations happens exactly as described for the main loop (see 6.1)." Maybe we should make this clearer in the manual. Best regards, Max. > > I expected that, for example, F(1) would equal 1. > However, GAP returns an error: > > ---------------------------------------------------- > gap> F(1); > Variable: 'a' must have a value > > Variable: 'b' must have an assigned value at > return b; > 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;' after assigning a value to continue > ----------------------------------------------------- > > The code does work in the main read-eval-print loop, though: > > ------------------------------------ > gap> a:=1; > 1 > gap> Read(InputTextString("b:=a;")); > gap> b; > 1 > ------------------------------------ > > Thank you, > Anvita > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From jaijinenedra at yahoo.co.in Mon Apr 21 13:29:54 2008 From: jaijinenedra at yahoo.co.in (Vivek Jain) Date: Mon Apr 21 13:30:22 2008 Subject: [GAP Forum] Error in Function RightTransversal( , ) In-Reply-To: <200804180927.m3I9RSL8030570@gap-system.org> Message-ID: <401844.22794.qm@web8711.mail.in.yahoo.com> gap> g:=Group((1,2,3,4),(1,2)(3,4)); Group([ (1,2,3,4), (1,2)(3,4) ]) gap> u:=Subgroup(g,[(1,2)(3,4)]); Group([ (1,2)(3,4) ]) gap> rt:=RightTransversal(g,u); RightTransversal(Group([ (1,2,3,4), (1,2)(3,4) ]),Group([ (1,2)(3,4) ])) gap> List(rt); [ (), (2,4), (1,2,3,4), (1,3)(2,4) ] In above program rt is not actualy a right transversal for (1,2,3,4) and (2,4) are in same right coset. Vivek Kumar Jain Dept. of Mathematics Univ. of Allahabad Allahabad-211002 India --------------------------------- Check out the all-new face of Yahoo! India. Click here. From marcus.bishop at gmail.com Mon Apr 21 14:03:53 2008 From: marcus.bishop at gmail.com (Marcus Bishop) Date: Mon Apr 21 14:04:10 2008 Subject: [GAP Forum] Error in Function RightTransversal( , ) In-Reply-To: <401844.22794.qm@web8711.mail.in.yahoo.com> References: <200804180927.m3I9RSL8030570@gap-system.org> <401844.22794.qm@web8711.mail.in.yahoo.com> Message-ID: <4e67a7d90804210603r604ba2b2xd96b51c164455866@mail.gmail.com> Hi Vivik. GAP multiplies from left to right, so the other element in the coset u(2,4) is (1,2)(3,4)(2,4)=(1,4,3,2) and not (1,2,3,4). -marKus On 4/21/08, Vivek Jain wrote: > > > gap> g:=Group((1,2,3,4),(1,2)(3,4)); > Group([ (1,2,3,4), (1,2)(3,4) ]) > gap> u:=Subgroup(g,[(1,2)(3,4)]); > Group([ (1,2)(3,4) ]) > gap> rt:=RightTransversal(g,u); > RightTransversal(Group([ (1,2,3,4), (1,2)(3,4) ]),Group([ (1,2)(3,4) ])) > gap> List(rt); > [ (), (2,4), (1,2,3,4), (1,3)(2,4) ] > > In above program rt is not actualy a right transversal > for (1,2,3,4) and (2,4) are in same right coset. > > > Vivek Kumar Jain > Dept. of Mathematics > Univ. of Allahabad > Allahabad-211002 > India > > > --------------------------------- > Check out the all-new face of Yahoo! India. Click here. > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From m.s.jones at newcastle.ac.uk Mon Apr 21 15:56:41 2008 From: m.s.jones at newcastle.ac.uk (Martin Jones) Date: Mon Apr 21 15:58:35 2008 Subject: [GAP Forum] Simplifying presentations of abelian groups In-Reply-To: <36ECBB6782128144A1FA70193750C4DA0406FBDE@largo.campus.ncl.ac.uk> References: <36ECBB6782128144A1FA70193750C4DA0406FBDE@largo.campus.ncl.ac.uk> Message-ID: <36ECBB6782128144A1FA70193750C4DA05CB463E@largo.campus.ncl.ac.uk> Hello This is my first question. I hope it's not a stupid one. I have an finitely presented abelian group and I want to obtain a simple presentation for the group. The command SimplifedFpGroup is not working satisfactorily (possibly because it doesn't introduce new generators). How can I make GAP use the fact that the group is abelian and use an appropriate method? I'll give an example: G; (this is my initial group) Gsimp:=SimplifiedFpGroup(G); (okay, a bit simpler) RelatorsOfFpGroup(Gsimp); [ f1*f2*f1^-1*f2^-1, f2^-1*f5^-1*f2*f5, f1^-1*f6^-1*f1*f6, f5^-1*f6*f5*f6^-1, f2^-1*f6^-1*f2*f6, f1^-1*f5^-1*f1*f5, f1*f2^3*f1*f2*f1^2 ] (6 commutators and a relation of length 8) IsAbelian(Gsimp); true (so it knows it's abelian) AbelianInvariants(Gsimp); [ 0, 0, 0, 4 ] In this case what I am looking for is a presentation with 4 generators, three torsion-free and one of order 4, in terms of the original generators of G. Thanks in advance, Martin From hulpke at math.colostate.edu Mon Apr 21 20:51:59 2008 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon Apr 21 20:53:01 2008 Subject: [GAP Forum] Simplifying presentations of abelian groups In-Reply-To: <36ECBB6782128144A1FA70193750C4DA05CB463E@largo.campus.ncl.ac.uk> References: <36ECBB6782128144A1FA70193750C4DA0406FBDE@largo.campus.ncl.ac.uk> <36ECBB6782128144A1FA70193750C4DA05CB463E@largo.campus.ncl.ac.uk> Message-ID: Dear GAP Forum, Martin Jones wrote: > I have an > finitely presented abelian group and I want to obtain a simple > presentation for the group. The command SimplifedFpGroup is not > working > satisfactorily (possibly because it doesn't introduce new generators). > How can I make GAP use the fact that the group is abelian and use an > appropriate method? I would write the presentation in matrix form and then use the transforming matrices for the smith normal form: The command is `SmithNormalFormIntegerMatTransforms'. Incidentally this is done by the existing command `MaximalAbelianQuotient' and (if the group is infinite -- otherwise the range is a pc group and the presentation a bit mixed up) you might find the range group of this command more to your liking. In your example, e.g. I get: gap> ma:=MaximalAbelianQuotient(Gsimp); [ f1, f2, f5, f6 ] -> [ f2, f1*f2^-1, f3, f4 ] gap> RelatorsOfFpGroup(Range(ma)); [ f1^-1*f2^-1*f1*f2, f1^-1*f3^-1*f1*f3, f1^-1*f4^-1*f1*f4, f2^-1*f3^-1*f2*f3, f2^-1*f4^-1*f2*f4, f3^-1*f4^-1*f3*f4, f1^4 ] (You could duplicate and modify the code to always return the result as a finitely presented group). Best, Alexander Hulpke From anvita21 at gmail.com Fri Apr 25 08:06:51 2008 From: anvita21 at gmail.com (Anvita) Date: Fri Apr 25 08:07:18 2008 Subject: [GAP Forum] G-invariant linear character In-Reply-To: <604575.40689.qm@web45102.mail.sp1.yahoo.com> References: <604575.40689.qm@web45102.mail.sp1.yahoo.com> Message-ID: <6a52effd0804250006q69aed871xaa4159d8c2be3bc9@mail.gmail.com> On Thu, Apr 17, 2008 at 1:42 AM, Dan Lanke wrote: > > Dear GAP Forum, > > Let H be a normal subgroup of a finite group G. > Let \rho be a G-invariant linear character of H. > Is it true that there exists a linear character > of G whose restriction to H is equal to \rho? > > If the answer is no, how can I use GAP to find > some examples? Dear Dan, I think that the answer is "no". If H is the center (of order 2) of the group G = SL(2,5) and \rho is the nontrivial character of H, then \rho is G-invariant but is not the restriction to H of any linear character of G, because G has only one linear character (the trivial one). I do not know how to use GAP to find such examples. Anvita From thomas.breuer at math.rwth-aachen.de Fri Apr 25 15:07:38 2008 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Apr 25 15:09:19 2008 Subject: [GAP Forum] G-invariant linear character Message-ID: <20080425140738.GA6772@gemma.math.rwth-aachen.de> Dear GAP Forum, Dan Lanke wrote > Let H be a normal subgroup of a finite group G. > Let \rho be a G-invariant linear character of H. > Is it true that there exists a linear character > of G whose restriction to H is equal to \rho? > > If the answer is no, how can I use GAP to find > some examples? Meanwhile Frank L"ubeck has answered the first question in a private e-mail to Dan: > No, just take any perfect group with a non-trivial center H and any > non-trivial irreducible character of H. E.g., G = SL(2,5). Concerning the second question, the GAP function `test_group' appended below can be used to collect, for a given group G, all invariant linear characters of normal subgroups of G that do not extend to G. (There are enough examples of very small groups G for which such characters exist, such as extraspecial p-groups. For groups of larger order, the `IdGroup' call in the function may not work.) Examples can be found as follows. gap> AllSmallGroups( Size, [ 1 .. 30 ], g -> test_group( g ) <> [], true ); #I example for G = [ 8, 3 ], N = [ 2, 1 ] #I example for G = [ 8, 4 ], N = [ 2, 1 ] #I example for G = [ 16, 3 ], N = [ 2, 1 ] ... Alternatively, the function `test_table' collects, for a given character table from the GAP character table library, all not extendible invariant linear characters of those normal subgroups of G whose character table is contained in the GAP character table library. gap> OneCharacterTableName( t -> test_table(t) <> [], true ); #I example for G = O8+(3).D8, N = O8+(3).2_1 "O8+(3).D8" In fact this shows again that the dihedral group of order eight provides an example. So the character table library is not very suitable for this question, but perhaps the code below gives an idea how one can proceed in similar situations. All the best, Thomas -------------------------------------------------------------------------- test_group:= function( G ) local expls, lin_G, N, map, inv, rest, found; expls:= []; lin_G:= LinearCharacters( G ); for N in NormalSubgroups( G ) do map:= InverseMap( FusionConjugacyClasses( N, G ) ); inv:= Filtered( LinearCharacters( N ), x -> not ForAny( CompositionMaps( x, map ), IsList ) ); rest:= RestrictedClassFunctions( lin_G, N ); found:= Difference( inv, rest ); if not IsEmpty( found ) then Add( expls, [ G, found ] ); Print( "#I example for G = ", IdGroup( G ), ", N = ", IdGroup( N ), "\n" ); fi; od; return expls; end; test_table:= function( tbl ) local expls, lin_tbl, name, subtbl, fus, map, inv, rest, found; expls:= []; lin_tbl:= LinearCharacters( tbl ); for name in NamesOfFusionSources( tbl ) do subtbl:= CharacterTable( name ); if subtbl <> fail then fus:= GetFusionMap( subtbl, tbl ); if Size( subtbl ) = Sum( SizesConjugacyClasses( tbl ){ Set( fus ) } ) then map:= InverseMap( fus ); inv:= Filtered( LinearCharacters( subtbl ), x -> not ForAny( CompositionMaps( x, map ), IsList ) ); rest:= RestrictedClassFunctions( lin_tbl, subtbl ); found:= Difference( inv, rest ); if not IsEmpty( found ) then Add( expls, [ tbl, found ] ); Print( "#I example for G = ", Identifier( tbl ), ", N = ", Identifier( subtbl ), "\n" ); fi; fi; fi; od; return expls; end; From max at quendi.de Tue Apr 29 14:36:45 2008 From: max at quendi.de (Max Horn) Date: Tue Apr 29 14:37:11 2008 Subject: [GAP Forum] Conjugacy classes of involutions in SU(n, q) and SO(n, q) Message-ID: <52098.XVdYXF9DRFA=.1209476205.squirrel@webmailer.hosteurope.de> Dear GAP forum, is there an efficient way in GAP to get a list of (representatives of) conjugacy classes of involutions in SU(n,q) and SO(n,q)? Specifically for n=4, 5,6, and at least up to q <= 9. Right now, I use this rather crude code: invs := Filtered(List(ConjugacyClasses(G),Representative), x->Order(x)=2);; Sadly, it works for me only up to q=4. And takes far too long, too ;). Alternatively, could somebody point out a good reference to me where I can find descriptions of the conjugacy classes of involutions in said groups, which I could use to implement relevant code myself? The atlas helps me only so far, since I would like to do this for bigger values of q, too. Thanks as always for you generous help, Max From max at quendi.de Tue Apr 29 17:36:51 2008 From: max at quendi.de (Max Horn) Date: Tue Apr 29 17:37:08 2008 Subject: [GAP Forum] Conjugacy classes of involutions in SU(n, q) and SO(n, q) In-Reply-To: <52098.XVdYXF9DRFA=.1209476205.squirrel@webmailer.hosteurope.de> References: <52098.XVdYXF9DRFA=.1209476205.squirrel@webmailer.hosteurope.de> Message-ID: <58956.XVdYXF9DRFA=.1209487011.squirrel@webmailer.hosteurope.de> P.S.: I should say am actually interested in involutions of PSU and SO, but I also need the action on the natural module, so it seems more convenient to look for involutions of SU and SO. Also, I just discovered the following papers, which cover the case for PSU(4,q) and PSU(5,q), it seems -- however I have only access to the second article, thus so far I only know the solution for PSU(5,q) (funnily, we have the journal in our library starting with volume 24 -- of course the volume I need is 23 ;-). http://www.mathnet.or.kr/mathnet/kms_content.php?no=311410 http://www.mathnet.or.kr/mathnet/kms_content.php?no=311495 Also, I was pointed at the paper "Involutions in Chevalley groups over fields of even order." by Aschbacher and Seitz, which sounds very helpful, too (assuming I can get hold of it). Thanks again for your help, Max From paul.smith at nuigalway.ie Tue Apr 29 17:52:15 2008 From: paul.smith at nuigalway.ie (Paul Smith) Date: Tue Apr 29 17:52:31 2008 Subject: [GAP Forum] New linear algebra package, 'linboxing' Message-ID: <4817523F.7020403@nuigalway.ie> Dear GAP forum, I'd like to announce a new GAP package called 'linboxing' (LinBox-in-GAP) that provides an interface between GAP and the LinBox exact linear algebra library. At present, the package provides alternative versions of Rank, Determinant and SolutionMat which are much faster than GAP's native versions when dealing with large matrices over the integers or large prime fields. The package needs the LinBox C++ library to be compiled and installed (see http://www.linalg.org/), and provides a compiled GAP kernel module that performs the actual interfacing at the kernel-level. It's been tested under various versions of Linux and on OS X, but won't work on Windows at the moment. For more information, see the GAP website at http://www.gap-system.org/Packages/linboxing.html or the linboxing website http://www.maths.nuigalway.ie/~pas/CHA/linboxing/ If you have any problems with installation, please let me know. I'd welcome any feedback, be it reports of observed gains from using the package, requests for additional functionality, or any other comments. Best wishes, Paul Smith -- Dr Paul Smith Department of Mathematics National University of Ireland, Galway paul.smith@nuigalway.ie From nicolas.francois at free.fr Thu May 8 17:21:43 2008 From: nicolas.francois at free.fr (Nicolas FRANCOIS) Date: Thu May 8 17:22:14 2008 Subject: [GAP Forum] [Newbie] Group action Message-ID: <20080508182143.1ee7043a@agecanonix.baronie.vez> Hi. I'm quite new to Gap. I'd like to study the action of S_3 (symmetric group of order 3) and A_4 (alternate (?) group of order 4, i.e. the subgroup of S_4 composed of the pair permutations) on the subsets. More precisely, I'd like to find, with elementary methods (no characters, no group representation) the ideals of the R[S_3] and R[A_4] algebras. Could someone be kind enough to show me how I could use Gap to find : - the tables of the two above groups, - the orbits of the action of these groups on their n-parts, with n between 1 and 6 for S_3, from 1 and 12 for A_4, - even better : the orbits of the action of these groups on their algebras ??? Any help would be very much appreciated. \bye PS : from what I've allready discovered, Gap seems very exciting ! -- Nicolas FRANCOIS | /\ http://nicolas.francois.free.fr | |__| X--/\\ We are the Micro$oft. _\_V Resistance is futile. You will be assimilated. darthvader penguin From trof1984 at rambler.ru Thu May 8 22:27:41 2008 From: trof1984 at rambler.ru (=?windows-1251?B?wOvl6vEg0vDu9Ojs8+o=?=) Date: Thu May 8 22:28:21 2008 Subject: [GAP Forum] question Message-ID: <741071961.1210282061.162425452.84938@mcgi35.rambler.ru> -- Dear Gap Forum, Alex Trofimuk asked: How to compute the semidirect product S =[G]H of 2 groups G and H where a normal subgroup G is elementary abelian group of order 3^2 and a complement H is SL(2,3). Action SL(2,3) on G don't known. From graham.ellis at nuigalway.ie Mon May 12 12:26:12 2008 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Mon May 12 12:28:26 2008 Subject: [GAP Forum] PhDs & Postdocs at Galway References: <47C2E007B3E98F4E8BBC7997F007CE13126854@EVS1.ac.nuigalway.ie> <47C2E007B3E98F4E8BBC7997F007CE1312685C@EVS1.ac.nuigalway.ie> <47C2E007B3E98F4E8BBC7997F007CE1312685D@EVS1.ac.nuigalway.ie> <47C2E007B3E98F4E8BBC7997F007CE13126861@EVS1.ac.nuigalway.ie> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE13126878@EVS1.ac.nuigalway.ie> Two PhD, two postdoc and two visiting positions at Galway ========================================================= The Department of Mathematics at Galway is pleased to offer the following positions, starting September/October 2008. 1. Two funded postdoc positions in (computational) algebra. (See http://hamilton.nuigalway.ie/CHA/vacancies/vacanciesIndex.html for details. Closing date: 30th June 2008) 2. Two funded PhD positions in algebra. (See http://hamilton.nuigalway.ie/DeBrunCentre/DeBrunPhds.html for details. Closing date: 30th June 2008) 3. Two 2-month visiting positions in (computational) algebra. (See http://hamilton.nuigalway.ie/CHA/vacancies/vacanciesIndex.html for details.) Graham From jjm at mcs.st-andrews.ac.uk Thu May 15 12:00:03 2008 From: jjm at mcs.st-andrews.ac.uk (John McDermott) Date: Thu May 15 12:04:39 2008 Subject: [GAP Forum] semi direct product References: <469a77520805150354v2883b2eev9530ab037491518a@mail.gmail.com> Message-ID: <108A6974-F44A-48EF-98F6-2184C9F73367@mcs.st-andrews.ac.uk> Apologies, this was accidentally caught up in our spam filters and so much delayed. Begin forwarded message: > From: Ali ?AH?N > To: forum@gap-system.org > Date: Tue, 22 Apr 2008 10:50:45 +0300 > Subject: semi direct product > Dear forum, > > I am looking for a function that determines the semi direct and > direct product of Group ring (algebra) in GAP. Is there any function > for this. If not how can I write such a function? > > Best wishes > > __________________________________________________________________________ > Mesaj gonderilirken OGU WebMail 1.0 kullanildi > Bu e-posta sadece yukarida isimleri belirtilen kisiler arasinda ozel > haberlesme amacini tasimaktadir. Size yanislikla ulasmissa lutfen > gonderen > kisiyi bilgilendiriniz ve mesaji sisteminizden siliniz. T.C. Osmangazi > Universitesi bu mesajin icerigi ile ilgili olarak hicbir sorumlulugu > kabul > etmez. > > This e-mail communication is intended for the private use of the > persons > named above. Osmangazi University does not accept legal > responsibility for > the contents of this message. -- John McDermott Scientific Officer Centre for Interdisciplinary Research in Computational Algebra School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX SCOTLAND (Room 330, Mathematical Institute) tel +44 1334 463813 mob +44 7941 507531 The University of St Andrews is a charity registered in Scotland : No SC01353 From Vincent.Caudrelier.1 at city.ac.uk Thu May 15 17:09:39 2008 From: Vincent.Caudrelier.1 at city.ac.uk (Caudrelier, Vincent) Date: Thu May 15 23:28:42 2008 Subject: [GAP Forum] Stabilizer of a vector for Coxeter Groups Message-ID: <40ED11F2A15B65419CE63D8A3CD04A760729ABF5@nsq041ex.enterprise.internal.city.ac.uk> All, I'm trying to compute the stabilizer of a given vector in the underlying essential vector space of a finite Coxeter group seen as a reflection group acting on this vector space. I've tried with F4 by defining it as a matrix group then typing something like "Stabilizer(F4,[[1],[0],[0],[0]]);" but I suspect this is not doing what I want but rather it gives the stability group of the group element corresponding to the reflection associated to e_1 and not the stability group of e_1 itself. I hope my question makes enough sense and that someone can help me. Many thanks ------------------------ Dr Vincent CAUDRELIER Lecturer in Mathematics ------------------------ City University Centre for Mathematical Science Northampton Square LONDON EC1V 0HB UK ------------------------ tel: +44 (0) 2070 408498 From Mathieu.Dutour at ens.fr Fri May 16 08:02:34 2008 From: Mathieu.Dutour at ens.fr (Mathieu Dutour) Date: Fri May 16 08:03:04 2008 Subject: [GAP Forum] Stabilizer of a vector for Coxeter Groups In-Reply-To: <40ED11F2A15B65419CE63D8A3CD04A760729ABF5@nsq041ex.enterprise.internal.city.ac.uk> References: <40ED11F2A15B65419CE63D8A3CD04A760729ABF5@nsq041ex.enterprise.internal.city.ac.uk> Message-ID: <20080516070234.GA8767@orge.ens.fr> Hi, there are many possible strategy that can be employed. Right now I can think of two: 1> represent your Coxeter group as a permutation group acting on the roots r1, ...., rN of your Coxeter group. Call CoxPermGrp this representation. Then given a vector v, associate to it the vector of scalar products ScalV=(r1.v, r2.v, ......, rN.v) Afterwards, you can use Stabilizer(CoxPermGrp, ScalV, Permuted); The problem is that the permuted action is too slow, because it does not use backtracking like the OnSets action. A way around this performance problem is to use PermutedStabilizer:=function(TheGRP, eVect) local TheStab, Hset, eVal, ListIdx; TheStab:=ShallowCopy(TheGRP); Hset:=Set(eVect); for eVal in Hset do ListIdx:=Filtered([1..Length(eVect)], x->eVect[x]=eVal); TheStab:=Stabilizer(TheStab, ListIdx, OnSets); od; return TheStab; end; And if you need equivalence as well, then use PermutedEquivalence:=function(TheGRP, eVect1, eVect2) local TheStab, eVect1img, n, eSet1, eSet2, g, eVal, ListIdx1, ListIdx2, gT; eVect1img:=ShallowCopy(eVect1); n:=Length(eVect1); eSet1:=Set(eVect1); eSet2:=Set(eVect2); if eSet1<>eSet2 then return fail; fi; g:=(); TheStab:=ShallowCopy(TheGRP); for eVal in eSet1 do ListIdx1:=Filtered([1..n], x->eVect1img[x]=eVal); ListIdx2:=Filtered([1..n], x->eVect2[x]=eVal); gT:=RepresentativeAction(TheStab, ListIdx1, ListIdx2, OnSets); if gT=fail then return fail; fi; eVect1img:=Permuted(eVect1img, gT); g:=g*gT; if eVect1img=eVect2 then return g; fi; TheStab:=Stabilizer(TheStab, ListIdx2, OnSets); od; end; 2> If you really need to treat very large Coxeter group, then the way to go is by the abstract theory of Coxeter groups. For that you need to map your element to the fundamental domain (a simplex if the Coxeter group is irreducible). Then, on the fundamental domain, enumerate the facets to which it is incident. Those facets give you the generators of the stabilizer. On Thu, May 15, 2008 at 05:09:39PM +0100, Caudrelier, Vincent wrote: >> All, >> >> >> >> I'm trying to compute the stabilizer of a given vector in the underlying >> essential vector space of a finite Coxeter group seen as a reflection >> group acting on this vector space. >> >> >> >> I've tried with F4 by defining it as a matrix group then typing >> something like "Stabilizer(F4,[[1],[0],[0],[0]]);" but I suspect this is >> not doing what I want but rather it gives the stability group of the >> >> group element corresponding to the reflection associated to e_1 and not >> the stability group of e_1 itself. >> >> >> >> I hope my question makes enough sense and that someone can help me. >> >> >> >> Many thanks >> >> >> >> ------------------------ >> Dr Vincent CAUDRELIER >> Lecturer in Mathematics >> ------------------------ >> City University >> Centre for Mathematical Science >> Northampton Square >> LONDON EC1V 0HB >> UK >> ------------------------ >> tel: +44 (0) 2070 408498 >> >> >> >> _______________________________________________ >> Forum mailing list >> Forum@mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From goetz.pfeiffer at nuigalway.ie Mon May 19 08:30:21 2008 From: goetz.pfeiffer at nuigalway.ie (=?ISO-8859-1?Q?G=F6tz?= Pfeiffer) Date: Mon May 19 08:30:49 2008 Subject: [GAP Forum] 2nd Announcement: First De Brun Workshop on Computational Algebra Message-ID: <1211182221.7782.2.camel@truffaut> Second Announcement: First De Brun Workshop on Computational Algebra ==================================================================== >From July 21 to August 1, 2008, the De Brun Centre for Computational Algebra at NUI Galway, Ireland, runs a workshop consisting of the following four 5-lecture courses. * Gerhard Hiss (Aachen): Computational Representation Theory * John McKay (Concordia): The sporadic groups - past, present and possible future * Mike Stillman (Cornell): Computing cohomology in algebraic geometry * Bernd Sturmfels (Berkeley): Tropical Algebra The lecture courses are aimed at mathematicians with a general interest in computational aspects of algebra, but who don't necessarily have expertise in the topics of the courses. Lecture courses will take place in the mornings, and participants will have the opportunity to contribute talks on their research in the afternoons. The first lecture will be at 10am on Tuesday 22 July, and the last lecture will end at 12.30 on Friday 1 August. There will be a Workshop trip to the Burren, Co. Clare in the first week, and to the Galway Races in the second week. There will be no lectures on the Saturday afternoon and Sunday. The workshop is supported by Science Foundation Ireland. Some funding towards the cost of accommodation is available for a limited number of graduate students and postdocs. There is no registration fee. For registration details and further information see: http://hamilton.nuigalway.ie/DeBrunCentre/First.html If you wish to attend the workshop you should e-mail the organisers as soon as possible. The organizers, Graham Ellis Goetz Pfeiffer ------------------------------------------------------------------------ Goetz.Pfeiffer@NUIGalway.ie http://schmidt.nuigalway.ie/~goetz/ National University of Ireland, Galway. phone +353-91-49-3591 From hulpke at mac.com Tue May 20 18:19:42 2008 From: hulpke at mac.com (Alexander Hulpke) Date: Tue May 20 18:20:27 2008 Subject: [GAP Forum] Stabilizer of a vector for Coxeter Groups In-Reply-To: <40ED11F2A15B65419CE63D8A3CD04A760729ABF5@nsq041ex.enterprise.internal.city.ac.uk> References: <40ED11F2A15B65419CE63D8A3CD04A760729ABF5@nsq041ex.enterprise.internal.city.ac.uk> Message-ID: <0E17B48B-10DC-45BE-AF8D-3C4FC7087D33@mac.com> Dear GAP-Forum, > Vincent Chaudrelier wrote: > I've tried with F4 by defining it as a matrix group then typing > something like "Stabilizer(F4,[[1],[0],[0],[0]]);" but I suspect > this is > not doing what I want but rather it gives the stability group of the > > group element corresponding to the reflection associated to e_1 and > not > the stability group of e_1 itself. GAP acts consistently from the right, i.e. matrix groups act on row vectors. What you give as object to be stabilized looks like a matrix with one column, this is not a well-defined action. Stabilizer(F4,[1,0,0,0]) should give the desired result. Best, Alexander Hulpke From alexander.konovalov at gmail.com Fri May 23 14:51:44 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Fri May 23 14:52:04 2008 Subject: [GAP Forum] Brief GAP guidebook in Russian, version 3 Message-ID: <015F246F-C4A2-44B0-856B-9A32D5F025A5@gmail.com> Dear GAP Forum, I would like to announce the new edition (version 3.0.0, May 16 2008) of the brief GAP guidebook in Russian. It is available now in PDF and HTML formats here: * http://ukrgap.exponenta.ru/gapbook/gapbook.pdf * http://ukrgap.exponenta.ru/gapbook/chap0.html Technical details that might be interesting to the wider GAP Forum audience: The guidebook is now converted into the GAPDoc format, and PDF and HTML versions are produced using the GAPDoc package by Frank L?beck and Max Neunh?ffer (http://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc/index.html ). Besides other benefits of using GAPDoc, I am happy that now all examples from the document can be automatically validated using documentation checking tools provided by GAPDoc. Best wishes, Alexander From vdabbagh at sfu.ca Fri May 23 22:32:57 2008 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Fri May 23 22:33:22 2008 Subject: [GAP Forum] testing representations Message-ID: <200805232132.m4NLWvnQ017773@rm-rstar.sfu.ca> Dear GAP Forum, Suppose a character chi and an ordinary representation R of G, both of degree d, are given. One way to test that R is a representation affording chi is to compute the trace of R(x) for representatives x of conjugacy classes. In the case that d and the entries of R(x) are large, finding R(x) and computing the trace is an expensive task. Do you have any suggestion for a faster way to do this test? Regards Vahid __________________________ The IRMACS Centre (ASB 10905) Simon Fraser University 8888 University Drive Burnaby, BC V5A 1S6 Canada E-mail: vdabbagh@sfu.ca http://www.sfu.ca/~vdabbagh From fvanhove at cage.ugent.be Tue May 27 08:56:14 2008 From: fvanhove at cage.ugent.be (=?ISO-8859-1?Q?Fr=E9d=E9ric_Vanhove?=) Date: Tue May 27 08:55:04 2008 Subject: [GAP Forum] how to compute all subgroups of order p up to conjugacy Message-ID: <483BBE9E.5030800@cage.ugent.be> Hello, many thanks for letting me on this list. This is my very first question. This is my problem : let G be a finite group, the order of which divisibly by a prime p. I would like to get a list of all subgroups of G of order p, up to conjugacy. Is there a command in GAP for that. Right now, I only know two alternatives: listofgroupssizep:=function(g,p) local hom,image,syl,ccs,ccs2,elem; hom := NiceMonomorphism(g);; image:=Image(hom);; syl := SylowSubgroup(image, p);; ccs:=ConjugacyClasses(syl);; ccs2 := Filtered(List(ccs,Representative),t->Order(t)=p);; elem := List(ccs2,t->PreImage(hom,t)); pgroups:=List(elem,x->Subgroup(g,[x]));; return pgroups; end; This function needs a group g and a prime p as arguments, and it returns a list of subgroups of order p. All possibilites up to conjugacy will appear at least once, but unfortunately many of them will appear more than once... The other alternative is : Filtered(ConjugacyClassesSubgroups(g),x->Size(Representative(x))=p); which works fine as long as g is pretty small, because it's absolutely not efficient and it just doesn't finish the job when g is a bit bigger. Does anyone know some advice? Thank you very much, Fr?d?ric Vanhove Ghent University Belgium From laurent.bartholdi at gmail.com Tue May 27 11:04:21 2008 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Tue May 27 11:08:00 2008 Subject: [GAP Forum] how to compute all subgroups of order p up to conjugacy In-Reply-To: <483BBE9E.5030800@cage.ugent.be> References: <483BBE9E.5030800@cage.ugent.be> Message-ID: <1ff637850805270304i2e6f8fads90db1cee6855fe9@mail.gmail.com> Hi Frederic! Subgroups of order p are generated by a single element -- so you might look for all such subgroups, and then eliminate all redundancies by keeping 1 subgroup for each conjugacy class and choice of generator. I won't be more specific since I see you're a student... Feel free to ask for more details if this isn't for an exam. Best, Laurent On Tue, May 27, 2008 at 9:56 AM, Fr?d?ric Vanhove wrote: > Hello, > > many thanks for letting me on this list. This is my very first question. > > This is my problem : let G be a finite group, the order of which divisibly > by a prime p. I would like to get a list of all subgroups of G of order p, > up to conjugacy. > > Is there a command in GAP for that. Right now, I only know two > alternatives: > > listofgroupssizep:=function(g,p) > local hom,image,syl,ccs,ccs2,elem; > hom := NiceMonomorphism(g);; > image:=Image(hom);; > syl := SylowSubgroup(image, p);; > ccs:=ConjugacyClasses(syl);; > ccs2 := Filtered(List(ccs,Representative),t->Order(t)=p);; > elem := List(ccs2,t->PreImage(hom,t)); > pgroups:=List(elem,x->Subgroup(g,[x]));; > return pgroups; > end; > > This function needs a group g and a prime p as arguments, and it returns a > list of subgroups of order p. All possibilites up to conjugacy will appear > at least once, but unfortunately many of them will appear more than once... > > The other alternative is : > > Filtered(ConjugacyClassesSubgroups(g),x->Size(Representative(x))=p); > > which works fine as long as g is pretty small, because it's absolutely not > efficient and it just doesn't finish the job when g is a bit bigger. > > > Does anyone know some advice? > > Thank you very much, > > Fr?d?ric Vanhove > Ghent University > Belgium > > > > > > > > > > > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 Station 8 \ Secr?taire: +41 21-6935471 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 Home address: http://microurl.org/10 From marc_roeder at web.de Tue May 27 11:40:53 2008 From: marc_roeder at web.de (Marc Roeder) Date: Tue May 27 11:41:13 2008 Subject: [GAP Forum] how to compute all subgroups of order p up to conjugacy In-Reply-To: <483BBE9E.5030800@cage.ugent.be> References: <483BBE9E.5030800@cage.ugent.be> Message-ID: <483BE535.5090704@web.de> Dear Forum, Fr?d?ric Vanhove wrote: > This is my problem : let G be a finite group, the order of which > divisibly by a prime p. I would like to get a list of all subgroups of > G of order p, up to conjugacy. > > Is there a command in GAP for that. Right now, I only know two > alternatives:[...] I am not aware of any command that does this in GAP. But a slight variation of your program might do the trick: listofgroupssizep:=function(g,p) local syl, ccs, ccs2, ccg; syl := SylowSubgroup(g, p);; ccs:=ConjugacyClasses(syl);; ccs2 := Filtered(List(ccs,Representative),t->Order(t)=p);; ccg:=List(ccs2,i->ConjugacyClass(g,i)); return Set(ccg,i->Subgroup(g,[Representative(i)])); end; This uses the fact that a Sylow subgroup is represented as a subgroup (and hence embedded in the original group). All the best, marc From frank.luebeck at math.rwth-aachen.de Thu May 29 10:55:48 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu May 29 10:56:09 2008 Subject: [GAP Forum] how to compute all subgroups of order p up to conjugacy In-Reply-To: <483BBE9E.5030800@cage.ugent.be> References: <483BBE9E.5030800@cage.ugent.be> Message-ID: <20080529095548.GE1819@beteigeuze> On Tue, May 27, 2008 at 09:56:14AM +0200, Fr?d?ric Vanhove wrote: > This is my problem : let G be a finite group, the order of which divisibly > by a prime p. I would like to get a list of all subgroups of G of order p, > up to conjugacy. Dear Fr?d?ric Vanhove, dear Forum, A subset of elements of a finite group which generate a conjugate of a fixed cyclic subgroup, is called a "rational class". With the GAP command RationalClasses you find representatives of all classes of cyclic subgroups of a finite group. (There is also the undocumented function RationalClassesPElements( group, prime).) These were used in former versions of GAP as a step to find the conjugacy classes. For some groups it may be faster to compute all ConjugacyClasses(group) and then check for repeated rational classes comparing RationalClass of representatives of the conjugacy classes. 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 frank.luebeck at math.rwth-aachen.de Thu May 29 10:59:06 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu May 29 11:00:48 2008 Subject: [GAP Forum] testing representations In-Reply-To: <200805232132.m4NLWvnQ017773@rm-rstar.sfu.ca> References: <200805232132.m4NLWvnQ017773@rm-rstar.sfu.ca> Message-ID: <20080529095906.GF1819@beteigeuze> Dear Vahid, dear Forum, On Fri, May 23, 2008 at 02:32:57PM -0700, Vahid Dabbaghian wrote: > Suppose a character chi and an ordinary representation R of G, both of > degree d, are given. One way to test that R is a representation affording > chi is to compute the trace of R(x) for representatives x of conjugacy > classes. In the case that d and the entries of R(x) are large, finding R(x) > and computing the trace is an expensive task. Do you have any suggestion for > a faster way to do this test? . . . it depends! If you have exactly the information as stated above, I think you cannot do much better. But in practice you probably have additional information. Here are a few thoughts what could make the task faster in certain cases. If you have an R(x) for which it is not to bad to compute the eigenvalues, and if you know the power map for x (i.e., the classes which contain the powers x^i), then you can quickly compute the eigenvalues (and traces) of all R(x^i). If it is likely that your chi is not the character of R or a algebraic conjugate of it, it may be sufficient to compute the traces of some random elements in the image of R to find a trace which doesn't occur as value of chi. If you know that chi is irreducible and you know all irreducible characters of degree d of your group (or, if you know all characters of degree d from the character table), it may be sufficient to compute just a few specific or random R(x) to identify the character of R. 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 paris14 at math.auth.gr Tue Jun 3 17:55:57 2008 From: paris14 at math.auth.gr (Paraskevas Alvanos) Date: Tue Jun 3 17:56:29 2008 Subject: [GAP Forum] free groups Message-ID: <20080603195557.gpx0z7mjn6s0kgog@webmail.auth.gr> Dear GAP-forum I am trying to calculate the kernel of a homomorphism A->B of free groups consists of algebraic elements. I know the generators of A and the mapping. I am asking if it is possible to create a free group by giving the generators and then to calculate the relations of the free group or the kernel directly. Thank you very much. paris alvanos paris14@math.auth.gr From bob.heffernan at gmail.com Thu Jun 5 16:23:50 2008 From: bob.heffernan at gmail.com (Robert Heffernan) Date: Thu Jun 5 16:24:14 2008 Subject: [GAP Forum] Associated Lie Ring of a finite p-group Message-ID: <6d9a83e90806050823o5423a54dj1ecdb35b806899dd@mail.gmail.com> Hello all, Is there a GAP function to construct the associated Lie ring of a finite p-group (or nilpotent group)? I've looked for one in the documentation but cannot find it if it exists. Thank you, Robert Heffernan -- Robert Heffernan Mathematics Postgraduate, UCC, Cork, Ireland. Email: bob.heffernan@gmail.com www: http://bob.nonado.net Blog: http://blogs.linux.ie/yarr From graham.ellis at nuigalway.ie Thu Jun 5 18:33:21 2008 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Thu Jun 5 18:36:07 2008 Subject: [GAP Forum] Associated Lie Ring of a finite p-group References: <6d9a83e90806050823o5423a54dj1ecdb35b806899dd@mail.gmail.com> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1312692D@EVS1.ac.nuigalway.ie> >Is there a GAP function to construct the associated Lie ring of a >finite p-group (or nilpotent group)? >I've looked for one in the documentation but cannot find it if it exists. >Thank you, >Robert Heffernan The function LowerCentralSeriesLieAlgebra in the HAP package might be what you are looking for. Details of the function can be found at http://hamilton.nuigalway.ie/Hap/doc/chap4.html#s0ss0 . Graham From josef.lauri at um.edu.mt Sat Jun 7 11:03:38 2008 From: josef.lauri at um.edu.mt (Josef Lauri) Date: Sat Jun 7 11:09:03 2008 Subject: [GAP Forum] Girth of coset graph Message-ID: <000101c8c885$c21a7ae0$464f70a0$@lauri@um.edu.mt> Hello, Is there a good way of computing this parameter? Let G be a finite group and H, K two subgroups whose intersection is trivial and whose union generates G. I need the length of the shortest sequence H=H_1, K=K_1, H_2, K_2, ... , K_t, H_{t+1}=H, where the H_i are cosets of H, K_j are cosets of K, all cosets in the sequence are distinct except for H_1 and H_{t+1} and (this is the crucial bit), the intersection of consecutive cosets in the sequence is non-empty. The way I solve this at the moment is using GRAPE. I construct the bipartite graph whose vertices are the cosets of H and K and in which two cosets are joined by an edge if their intersection is non-empty. Then I find the Girth of the bipartite graph. But this does not work for large groups because GAP runs out of memory. And it seems wasteful to construct the whole graph when we only want the girth and we can start with any two adjacent cosets since the graph is edge-transitive. Actually, what I am looking for is G, H and K for which the above girth is at least 14. I can go up to 12 with the above method. Also, I can relax the condition on H \cap K being trivial if necessary, as long as I can still get large girth. Thanks for any helpful comments. Josef Lauri Department of Mathematics University of Malta From hobbyd at newpaltz.edu Sat Jun 7 16:52:09 2008 From: hobbyd at newpaltz.edu (David Hobby) Date: Sat Jun 7 16:56:21 2008 Subject: [GAP Forum] Girth of coset graph In-Reply-To: <000101c8c885$c21a7ae0$464f70a0$@lauri@um.edu.mt> References: <000101c8c885$c21a7ae0$464f70a0$@lauri@um.edu.mt> Message-ID: <484AAEA9.9040302@newpaltz.edu> Josef Lauri wrote: > Hello, > > Is there a good way of computing this parameter? > > Let G be a finite group and H, K two subgroups whose intersection is trivial > and whose union generates G. I need the length of the shortest sequence > H=H_1, K=K_1, H_2, K_2, ... , K_t, H_{t+1}=H, where the H_i are cosets of H, > K_j are cosets of K, all cosets in the sequence are distinct except for H_1 > and H_{t+1} and (this is the crucial bit), the intersection of consecutive > cosets in the sequence is non-empty. Josef-- Hi. This wouldn't really use much of GAP, but how about trying the following? Restrict to the case where H and K are cyclic subgroups of S_n, and let G be whatever subgroup is generated by H \cup K. (This doesn't feel like you're losing too much.) Now let h and k be the generators of H and K respectively. You can now view your question as trying to find the shortest nontrivial word in h and k that's equal to the identity. (I believe that looking for the shortest one insures there won't be repeated cosets.) This is now a fairly standard computer science problem that you'd solve by breadth-first search. Just start producing all the words... Note that you can do this by labeling all of the permutations in G by single numbers, which signify the length (measured in number of blocks of h's and k's) of the shortest word giving you that permutation. If you don't have a word yet that gives a permutation, label it with -1, or something. Start with i labeled with 0, and the rest of G labeled with -1. Then take everything that's labeled 0, multiply it by all powers of h, and label all the new stuff you get with a 1. Next take everything labeled 1, multiply by all powers of k, and label the new things with 2s. Continue, watching out to see if you ever get back to i. When you do, you can recover the word that got you there by examining the labels, taking a path where they decrease by 1 at each step. (I was trying this for h = (12) and k = (123...n) a bit by hand.) ---David From e.j.postma at gmail.com Sat Jun 7 16:32:23 2008 From: e.j.postma at gmail.com (Erik Postma) Date: Mon Jun 9 10:25:58 2008 Subject: [GAP Forum] Girth of coset graph In-Reply-To: <6278987253416651402@unknownmsgid> References: <6278987253416651402@unknownmsgid> Message-ID: On Sat, Jun 7, 2008 at 6:03 AM, Josef Lauri wrote: > Hello, Hi Josef, > Is there a good way of computing this parameter? > > Let G be a finite group and H, K two subgroups whose intersection is trivial > and whose union generates G. I need the length of the shortest sequence > H=H_1, K=K_1, H_2, K_2, ... , K_t, H_{t+1}=H, where the H_i are cosets of H, > K_j are cosets of K, all cosets in the sequence are distinct except for H_1 > and H_{t+1} and (this is the crucial bit), the intersection of consecutive > cosets in the sequence is non-empty. I assume you also require t > 1 (otherwise the solution would always be H, K, H). > The way I solve this at the moment is using GRAPE. I construct the bipartite > graph whose vertices are the cosets of H and K and in which two cosets are > joined by an edge if their intersection is non-empty. Then I find the Girth > of the bipartite graph. But this does not work for large groups because GAP > runs out of memory. And it seems wasteful to construct the whole graph when > we only want the girth and we can start with any two adjacent cosets since > the graph is edge-transitive. > > Actually, what I am looking for is G, H and K for which the above girth is > at least 14. I can go up to 12 with the above method. Also, I can relax the > condition on H \cap K being trivial if necessary, as long as I can still get > large girth. > > Thanks for any helpful comments. I can't, off the top of my head, think of any "really clever" algorithm that uses the group structure to its fullest. But if you have a good algorithm for finding all H-cosets disjoint from K, the following idea should at least use less memory than what you proposed (although worst case it might not make much of a difference, but see possible optimizations below) and not be much slower. I propose to do what you propose, but only use the graph implicitly. Basic idea: * Compute the H-cosets disjoint from K (assign to a set Hcosets) and the K-cosets disjoint from H (assign to a set Kcosets). * Set furthest = [K]. This will be the set of cosets at the longest distance from H considered so far, along simple paths starting with H, K. * Set furthestminus1 to [H]. This will be the set of cosets at distance one less than furthest. * Set girth to 2. * Loop through the following 3 bullet points: * For all cosets K' in furthest, conjugate Hcosets into the set of H-cosets disjoint from K'; set furthest to the union of all these cosets, minus furthestminus1. If H is in this set, then the girth of your graph is given by girth. Otherwise, set furthestminus1 to the old value of furthest. * For all cosets H' in furthest, conjugate Kcosets into the set of K-cosets disjoint from H'; set furthest to the union of all these cosets, minus furthestminus1. Set furthestminus1 to the old value of furthest. * Add 2 to girth. You can extend this to also give you an actual cycle that has that girth by keeping track of the path leading to every element in furthest. If your graph would have degree d and girth g, you'd still need to consider d^g cosets: that should be the number of cosets in the last stage. I can imagine a scenario where that would essentially be all cosets in the group. I can think of two optimizations: * Start building from both H and K. The above algorithm start on the "right side" of the sequence H, K and extends it only from there; you could alternate adding a "layer" to the right and to the left. This way, you'd only have to consider 2*d^(g/2) cosets in the last round. * Use the group structure more cleverly: if you have the automorphism group of the graph (which you should be able to get from the automorphism group of the group itself I think), then you can take advantage of that: at every stage, compute the stabilizer of each current path, find the orbits of that stabilizer on what would be the next set "furthest", and then take only one representative of each orbit instead of all the elements. There will be some bookkeeping involved in keeping track of the stabilizers, but you can of course use the stabilizers from the previous stage to compute those for the current one. This approach will work best if you expect your graph to have a large automorhism group. All the best, Erik Postma www.maplesoft.com From hobbyd at newpaltz.edu Mon Jun 9 16:45:07 2008 From: hobbyd at newpaltz.edu (David Hobby) Date: Mon Jun 9 16:49:49 2008 Subject: [GAP Forum] Girth of coset graph In-Reply-To: References: <6278987253416651402@unknownmsgid> Message-ID: <484D5003.4040803@newpaltz.edu> Erik Postma wrote: ... >> Let G be a finite group and H, K two subgroups whose intersection is trivial >> and whose union generates G. I need the length of the shortest sequence >> H=H_1, K=K_1, H_2, K_2, ... , K_t, H_{t+1}=H, where the H_i are cosets of H, >> K_j are cosets of K, all cosets in the sequence are distinct except for H_1 >> and H_{t+1} and (this is the crucial bit), the intersection of consecutive >> cosets in the sequence is non-empty. ... > I can't, off the top of my head, think of any "really clever" > algorithm that uses the group structure to its fullest. But if you > have a good algorithm for finding all H-cosets disjoint from K, the > following idea should at least use less memory than what you proposed > (although worst case it might not make much of a difference, but see > possible optimizations below) and not be much slower. Erik-- Hi. That's the best I could do, pretty much a breadth-first search. In Josef's work, he has |G| much greater than |H|*|K|, since he's trying to get a large girth. So removing the cosets of H that intersect with the subgroup K is not much of a savings from just using all the cosets of H. ... > * Loop through the following 3 bullet points: > * For all cosets K' in furthest, conjugate Hcosets into the set of > H-cosets disjoint from K'; set furthest to the union of all these > cosets, minus furthestminus1. If H is in this set, then the girth of > your graph is given by girth. Otherwise, set furthestminus1 to the old > value of furthest. > * For all cosets H' in furthest, conjugate Kcosets into the set of > K-cosets disjoint from H'; set furthest to the union of all these > cosets, minus furthestminus1. Set furthestminus1 to the old value of > furthest. > * Add 2 to girth. > > You can extend this to also give you an actual cycle that has that > girth by keeping track of the path leading to every element in > furthest. > > If your graph would have degree d and girth g, you'd still need to > consider d^g cosets: that should be the number of cosets in the last > stage. I can imagine a scenario where that would essentially be all > cosets in the group. I bet it has to be, if you succeed in getting a large girth. > I can think of two optimizations: > * Start building from both H and K. The above algorithm start on the > "right side" of the sequence H, K and extends it only from there; you > could alternate adding a "layer" to the right and to the left. This > way, you'd only have to consider 2*d^(g/2) cosets in the last round. Clever. It would increase bookkeeping costs, though. > * Use the group structure more cleverly: if you have the automorphism > group of the graph (which you should be able to get from the > automorphism group of the group itself I think), then you can take > advantage of that: at every stage, compute the stabilizer of each > current path, find the orbits of that stabilizer on what would be the > next set "furthest", and then take only one representative of each > orbit instead of all the elements. ... I don't see this one as helping much. You're essentially trying to remove duplicate paths to get to a new coset. But if you ever DID have two different paths to get a coset, you've found a cycle in the graph, and you're done. One can extend the above observation to get a bound on the girth in terms of |G|, |K| and |H|. (Although there may well be another way to get this.) I'll outline it for a case that Josef was working on: > I have been trying > various groups including S_n but when the group gets large gap runs out of > memory (usually after several hours!). The best (computationally, that is, > in terms of gap being able to work things out without crashing) results I > got till now were, as you suggested, when H and K were cyclic generated by > two permutations. (Sometimes I tried groups which were, say, fp groups, but > turning them into permutation groups was often essential). But when I went > beyond S_8 gap could not cope. However I cannot use a small group generated > by the two permutations because I want girth 14. So I'll try your method > with (1,2,3,4,5,6,7,8,9) and (1,2), which gap cannot tackle if I let it > generate the whole sets of cosets. Here K and H would be the cyclic subgroups of G = S_n generated by the two permutations. I believe Josef found girth 12 using (12345678) and (12) in S_8. I've been looking at this in terms of elements rather than cosets. For |K| and |H| small, it doesn't make much difference. So I start at the identity, i, and look at the new elements produced. I get (12) by using an H-coset, and then get 2*7 new elements by using either of the two K-cosets. Then I'll look at what I get by using H-cosets on the last 14 elements, giving 14 more. Etc. I'm assuming that all the elements produced this way are new, because if there are any repeats then we have a cycle in the graph. But the pigeonhole principle will eventually force repeats. How far can we go before this happens? Combining H and K steps as Erik does, one usage of H and K gives 1 + 1 + 14 = 16 elements. I calculated the rest by hand, so there may by mistakes. But I got that the number of elements goes up by around a factor of 7 each time we do H and K cosets again, giving the sequence: 0, 16, 128, 912, 6400, 44816. The last one is more than 8! = 40320, meaning that there must be two products of length 10 that come out the same. This yields a cycle of length 20, which simplifies to one of length 18, giving an upper bound on the girth of 18. (By "simplifies", I mean removing obvious extra steps from the cycle. For instance, uses of H and K cosets must obviously alternate.) It's an interesting problem. ---David From alexander.konovalov at gmail.com Tue Jun 10 12:09:37 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Jun 10 12:10:01 2008 Subject: [GAP Forum] Associated Lie Ring of a finite p-group In-Reply-To: <47C2E007B3E98F4E8BBC7997F007CE1312692D@EVS1.ac.nuigalway.ie> References: <6d9a83e90806050823o5423a54dj1ecdb35b806899dd@mail.gmail.com> <47C2E007B3E98F4E8BBC7997F007CE1312692D@EVS1.ac.nuigalway.ie> Message-ID: <25DD83D7-79D8-4D65-9664-C3799F51B74B@gmail.com> Dear Robert, For a finite p-group G, GAP can construct two other similarly defined Lie algebras, namely JenningsLieAlgebra( G ) and PCentralLieAlgebra ( G ). Type ?JenningsLieAlgebra or ?PCentralLieAlgebra in GAP prompt to see the description. Maybe one of those is what you are looking for. Best wishes, Alexander On 5 Jun 2008, at 18:33, Ellis, Grahamj wrote: >> Is there a GAP function to construct the associated Lie ring of a >> finite p-group (or nilpotent group)? >> I've looked for one in the documentation but cannot find it if it >> exists. > >> Thank you, >> Robert Heffernan > > The function LowerCentralSeriesLieAlgebra in the HAP package might > be what you are looking for. Details of the function can be found at http://hamilton.nuigalway.ie/Hap/doc/chap4.html#s0ss0 > . > > Graham From mim_ at op.pl Fri Jun 20 15:35:44 2008 From: mim_ at op.pl (mim_@op.pl) Date: Fri Jun 20 15:36:02 2008 Subject: [GAP Forum] Exp for matrix Message-ID: Hello, Is there way to calculate exp(M) for matrix M in GAP ? It seems there is no real numbers in GAP and no way to present matrix exp([[0,-1],[1,0]])=[[cos(1), -sin(1)], [sin(1), cos(1)]] Regards, Marek Mitros From nmotahary at yahoo.com Sat Jun 21 07:26:06 2008 From: nmotahary at yahoo.com (narges motahary) Date: Mon Jun 23 10:13:57 2008 Subject: [GAP Forum] I have a request Message-ID: <723427.28702.qm@web45213.mail.sp1.yahoo.com> Hello I want to find all irreducible complex characters of a group G with GAP,could you help me and give me the structer of this? thanks for your help From hulpke at math.colostate.edu Wed Jun 25 21:40:25 2008 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed Jun 25 21:41:01 2008 Subject: [GAP Forum] Exp for matrix In-Reply-To: References: Message-ID: Dear Forum, dear Marek Mitros, > > Is there way to calculate exp(M) for matrix M in GAP ? That unfortunately is no such functionality, though it probably wouldn't be too hard to implement for nilpotent matrices or over finite fields. > It seems there is no real numbers in GAP and no way to present matrix > exp([[0,-1],[1,0]])=[[cos(1), -sin(1)], [sin(1), cos(1)]] indeed there are no real numbers (and only a very rudimentary version of floating point numbers with fixed accuracy) implemented. If your focus is working over the reals you will probably be better off with using system like Maple, Mathematica or MuPAD. Sorry, 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 am at ime.usp.br Fri Jun 27 23:47:41 2008 From: am at ime.usp.br (Arnaldo Mandel) Date: Fri Jun 27 23:47:56 2008 Subject: [GAP Forum] Lookup tables in gap Message-ID: <18533.28173.623608.712973@gargle.gargle.HOWL> I ran into a performance wall in GAP while handling lookup tables. By telling the story I hope to either get advice on how to handle the problem (although I found a way out and explain it later), or point the maintainers to a possible improvement in GAP's guts. The story begins with an intricate structure, whose nodes are records uniquely labelled by strings, with several string pointing to other records. Some of these pointers are labels of nonexistent nodes. These nodes are on a list N, ordered by their labels as strings. Sizes: just under 1,000,000 nodes, and about 2,500,000 labels. (BTW: the nodes are elements of a group I am investigating, so it is quite natural to work on it in GAP) I had to traverse the structure, following these pointers. So I needed a lookup table to convert labels into records. First, obvious solution: produced an ordered list L of all labels (that was fast!). Although L is longer than N, it is true that the label of N[i] is L[i], so, given a label s, the corresponding record is N[Position(L,s)]. Also, since L is ordered, lookup should be fast. That seems fine, so I tried a traversal, which I know takes linear time on the number of links. It took forever. I had the routine print a progress report, and it was clearly crawling. Then I tried an alternative: keep L, and replace in N each label by its corresponding index in L. Tried it in place and tried it generating a new list. In both cases it crawled. At this point, it is worth mentioning that the hardware I use is up to the task: fast 64bit processors, enough memory (I allowed GAP 18GB, but it never reached 8). Last chance: use a record as an associative array. That is, create a record R such that, for every label s, R.(s) = Position(L,s). Looking at the GAP source was encouraging, as records are implemented using hashing. Filling up R is easy: for every index i on L, R.(L[i]):=i. Fortunately, I had a progress meter. It started very fast, up to 300,000. Then it petered out to more that a second per index. So, that is the story. Could I have done any better or could the record implementation get some revamping? I solved my problem by going out of GAP. First I printed the structure to a file (2.5GB), and then processed it through a small perl program to do the transformation I tried before. The logic is the same as I tried with R, usig a perl hash. In less than 60 seconds it produced a GAP-readable file containing L and the transformed N. That really solved my problem. After adapting the traversal routines, now GAP processes N any which way I need very quickly. Still, I spent quite sometime trying a pure GAP solution; maybe GAP could borrow the hash implementation from perl. Cheers, Arnaldo Mandel Departamento de Ci?ncia da Computa??o - Computer Science Department Universidade de S?o Paulo, Bra[sz]il am@ime.usp.br Talvez voc? seja um Bright http://the-brights.net Maybe you are a Bright. From hulpke at math.colostate.edu Sat Jun 28 03:48:08 2008 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Sat Jun 28 03:48:37 2008 Subject: [GAP Forum] Lookup tables in gap In-Reply-To: <18533.28173.623608.712973@gargle.gargle.HOWL> References: <18533.28173.623608.712973@gargle.gargle.HOWL> Message-ID: Dear Arnaldo Mandel, Dear Forum, > First, obvious solution: produced an ordered list L of all labels > (that was fast!). Although L is longer than N, it is true that the > label of N[i] is L[i], so, given a label s, the corresponding record > is N[Position(L,s)]. Also, since L is ordered, lookup should be fast. > > That seems fine, so I tried a traversal, which I know takes linear > time on the number of links. It took forever. I had the routine > print a progress report, and it was clearly crawling. from the description given, I understand that you have a list of strings, in which you are searching. The performance problems indicate that the strings are not immutable. In this case GAP cannot store that the list is sorted, but checks it every time. (The reason for this slightly disturbing behaviour is that it would be possible to change one of the strings (and thus making the list not sorted) without the list noticing. Section "Sorted Lists and Sets" in the manual has more details. A workaround is easy. Simply do for i in L do MakeImmutable(i); od; This should give you a substantial speedup. 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 mim_ at op.pl Mon Jun 30 08:29:59 2008 From: mim_ at op.pl (mim_@op.pl) Date: Mon Jun 30 08:30:35 2008 Subject: [GAP Forum] Re: Complex numbers (again) and Lie closure Message-ID: Hello Knut, I am using following function for commuting the set of matrices - see below function commute3. It returns two lists: first is commuted set of matrices, second is list of indexes. List of indexes is useful for using next time to obtain basis of Lie algebra quicker. My function is quicker than GAP "Basis" function. Here is example of usage: ms:=[[[0,-1],[1,0]], [[0,1], [1,0]]]; # Loop execute 3 times, log is printed, if more that 20-dimensional then quit. aa:=commute3(ms, [], 2, 3, true, 20); # If you need to commute more then do following bb:=commute3(aa[1], aa[2], 3, 3, true, 20); In GAP we could do it like this. alg:=LieAlgebra(Rationals, ms); dim:=Dimension(alg); Print("Dimension of alg is ", dim, "\n"); But sometimes this Dimension function is very slow and sometimes return error. Then you have to do first Basis(alg) and then Dimension(). But Basis() function is also slow. This is my experience of working with Lie matrix algebras. Regards, Marek # Added more parameteres: a=set of matrices generators, # ind= set of indexes to show which commutators form basis # start=index starting from which second base element is commuted - to save time # times= how many times loop should be executed # print_log=prints log while commuting # max_no=quit when length of result basis is longer then max_no # For now it doesn't work for quaternions ! commute3:=function(a, ind, start, times, print_log, max_no) local i,j,b,bb,x,count, out_ind, k; if times=0 then return [a,ind]; fi; b:=a; out_ind := ind; count:=Length(b); bb:=MutableBasis(CF(4),b); for i in [1..count-1] do k:=Maximum(start, i+1); for j in [k..count] do x:=b[i]*b[j]-b[j]*b[i]; if not IsContainedInSpan(bb,x) then Add(b,x); Add(out_ind, [i,j]); CloseMutableBasis(bb,x); # This should work quicker than MutableBasis(b); if print_log then Print("[",i,",",j,"]"," added - dim=",Length(b),"\n"); fi; fi; if Length(b)>max_no then return [b,out_ind]; fi; od; od; if print_log then Print("Now length of basis b is ",Length(b),"\n"); fi; if times>1 then return commute3(b,out_ind, count+1, times-1, print_log, max_no); fi; return [b, out_ind]; end;; From am at ime.usp.br Mon Jun 30 19:46:21 2008 From: am at ime.usp.br (Arnaldo Mandel) Date: Mon Jun 30 19:46:40 2008 Subject: [GAP Forum] Lookup tables in gap In-Reply-To: References: <18533.28173.623608.712973@gargle.gargle.HOWL> Message-ID: <18537.10749.309171.102666@gargle.gargle.HOWL> Alexander Hulpke wrote (on Jun 27, 2008): > Dear Arnaldo Mandel, Dear Forum, > > > First, obvious solution: produced an ordered list L of all labels > > (that was fast!). Although L is longer than N, it is true that the > > label of N[i] is L[i], so, given a label s, the corresponding record > > is N[Position(L,s)]. Also, since L is ordered, lookup should be fast. > > > > That seems fine, so I tried a traversal, which I know takes linear > > time on the number of links. It took forever. I had the routine > > print a progress report, and it was clearly crawling. > > from the description given, I understand that you have a list of > strings, in which you are searching. The performance problems indicate > that the strings are not immutable. In this case GAP cannot store that > the list is sorted, but checks it every time. > (The reason for this slightly disturbing behaviour is that it would be > possible to change one of the strings (and thus making the list not > sorted) without the list noticing. Section "Sorted Lists and Sets" in > the manual has more details. > > A workaround is easy. Simply do > for i in L do > MakeImmutable(i); > od; > > This should give you a substantial speedup. Thanks for the tip! Although I had already worked around the problem, I decided to test your suggestion. After all, I have known GAP forever, but only recently I started to use it seriously. So, the least I can get from this exercise is a better understanding of GAP. I read about MakeImmutable, and it seemed to me that the simple statement MakeImmutable(L); would accomplish the same as your loop above. A little test confirmed it. So, I tried this in my old traversal routine. Instead of using the large list L, I used only the small one, N. Still, after a while it was clear that it had not helped: the traversal still crawled. Just to recall what I said before: on the same structure, with strings mapped already to indices, the whole traversal took less than a minute. (A back of the envelope calculation: Position is called once in the innermost loop of the traversal. Since Size(N) is just under a million, execution of Position entails about 20 string comparisons; this is probably 100 times longer than direct indexing, but this would be still faster than what I observed, and would not account for the gradual slowing down in tha algorithm) Then I tried to see how efficient would be a record as an associative array. In what follows I present an interaction so that it is made clear what I did. The list N is called names, below: gap> Size(names); 973438 gap> IsMutable(names); false gap> ForAny(names,IsMutable); false gap> ForAll(names,IsString); true gap> Maximum(List(names,Length)); 141 # Note: more than half have length between 12 and 16. gap> R:=rec(); rec( ) gap> for i in [1..Size(names)] do > R.(names[i]):=i; > if i mod 128 = 0 then > Print("\r",i); > fi;od; So, I could see the progress along i. In the beginning, it looked like a quick animation, one could barely read the numbers. At about i=300000, things started to slow down visibly. It was taking 1s for each block of 128 indices. Now it has reached 500000, and it takes about 3s for each such block. I will let it go to see whether it finishes or goes to exponential hell. Cheers, am -- Arnaldo Mandel Departamento de Ci?ncia da Computa??o - Computer Science Department Universidade de S?o Paulo, Bra[sz]il am@ime.usp.br Talvez voc? seja um Bright http://the-brights.net Maybe you are a Bright. From frank.luebeck at math.rwth-aachen.de Mon Jun 30 21:20:57 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Mon Jun 30 21:21:10 2008 Subject: [GAP Forum] Lookup tables in gap In-Reply-To: <18533.28173.623608.712973@gargle.gargle.HOWL> References: <18533.28173.623608.712973@gargle.gargle.HOWL> Message-ID: <20080630202057.GA25658@beteigeuze> Dear Arnaldo Mandel, Dear Forum, > First, obvious solution: produced an ordered list L of all labels > (that was fast!). Although L is longer than N, it is true that the > label of N[i] is L[i], so, given a label s, the corresponding record > is N[Position(L,s)]. Also, since L is ordered, lookup should be fast. Short answer: Use N[PositionSorted(L,s)]. More generally, always use 'PositionSorted' instead of 'Position', when you know that your list is sorted (but you are responsible to make sure that this is true). And below is a longer answer as well. I'll try to discuss some aspects of the mentioned problem in a commented GAP session. Maybe this is of more general interest, since even experienced GAP users are sometimes running into certain traps when dealing with long lists. > Last chance: use a record as an associative array. That is, create a > record R such that, for every label s, R.(s) = Position(L,s). Looking No, this doesn't help. In the moment record components are stored unsorted and so they are searched linearly. (We will probably change this with the next release of GAP.) With best regards, Frank gap> # As an example we produce a sorted list of strings without duplicates, gap> # containing almost 10^6 entries: gap> L := Set(List([1..1000000], i-> > ShallowCopy(String(Random(100000000,900000000)))));; gap> Length(L); 999379 gap> gap> # Now L is mutable and has mutable entries. gap> # Using 'Position' on L uses linear search: gap> for i in [1..100] do p := Position(L, L[i]); od; time; 0 gap> for i in [1..100] do p := Position(L, L[900000+i]); od; time; 9037 gap> gap> # Here GAP cannot remember that L is actually sorted, because the list L gap> # doesn't know about changes of its entries (and changing an entry could gap> # make the list unsorted). So, GAP cannot do better above. gap> gap> # Now, if we make the entries of L immutable, the above problem cannot gap> # occur, it will be no longer possible to change the entries of L (of gap> # course, this step may not be an option for you, if you do want to gap> # change the entries of L, maybe later). gap> for s in L do MakeImmutable(s); od; gap> gap> # ok, let's try again: gap> for i in [1..100] do p := Position(L, L[i]); od; time; 0 gap> for i in [1..100] do p := Position(L, L[900000+i]); od; time; 9016 gap> gap> # Hm, we get the same as before? The problem now is that GAP didn't run gap> # through the whole list to check if it is sorted. Let's look at the gap> # information GAP has stored about L: gap> TNUM_OBJ(L); [ 20, "list (plain,dense)" ] gap> gap> # Ok, we make GAP learning more about L: gap> IsSortedList(L); true gap> TNUM_OBJ(L); [ 40, "list (plain,table,ssort)" ] gap> gap> # Since the entries of L are now immutable, GAP can remember the gap> # sortedness. Another try for our loops: gap> for i in [1..100] do p := Position(L, L[i]); od; time; 0 gap> for i in [1..100] do p := Position(L, L[900000+i]); od; time; 0 gap> gap> # So, we are lucky that GAP has a builtin feature to remember that L is gap> # sorted in this case! It can now use a much faster binary search. We gap> # can run much longer loops: gap> for i in [1..Length(L)] do p := Position(L, L[i]); od; time; 700 gap> gap> # But, there can still be a problem in a very similar setting. Let us gap> # double the last entry of L: gap> Add(L,L[Length(L)]); gap> gap> # Now L is still sorted, but entries are not unique. Nevertheless, to gap> # find an entry in L we could still use a binary search. But see what gap> # happens: gap> IsSortedList(L); true gap> TNUM_OBJ(L); [ 38, "list (plain,table,nsort)" ] gap> for i in [1..100] do p := Position(L, L[i]); od; time; 0 gap> for i in [1..100] do p := Position(L, L[900000+i]); od; time; 9049 gap> gap> # Unfortunately, GAP has only a hook for remembering that a list is gap> # sorted without duplicates, but not just that it is sorted. So, now gap> # we are unlucky, even having immutable entries in L doesn't help. gap> gap> # But, remember my very first hint, if you know that a list is sorted gap> # use 'PositionSorted' instead of 'Position', then you don't need to gap> # care about all these internals: gap> for i in [1..Length(L)] do p := PositionSorted(L, L[i]); od; time; 1052 gap> gap> # Finally, let me mention an effect (a trap), which becomes worse if the gap> # entries of a long list are again lists or records, and their entries gap> # .... gap> # If the entries are mutable then GAP runs recursively through this gap> # structure whenever it is used as an argument of an operation. (This gap> # is to find the "type" of the object and to find the right method for gap> # the operation.) This is particularly annoying if the operation is gap> # doing something quite cheap and most information in the 'type' of gap> # the list is not needed. gap> N := List(L, s-> rec(label:=rec(string:=[s])));; gap> # 'Size' for a list returns its 'Length': gap> for i in [1..100] do l := Size(N); od; time; 3940 gap> # If you use 'Length' directly, GAP uses a kernel hook to avoid the gap> # problem in this particular case: gap> for i in [1..1000000] do l := Length(N); od; time; 64 gap> # Making entries immutable helps. But again, sometimes this may not gap> # be a solution because you do want to change your objects later. gap> for r in N do MakeImmutable(r); od; gap> for i in [1..1000000] do l := Size(N); od; time; 280 From am at ime.usp.br Tue Jul 1 14:22:22 2008 From: am at ime.usp.br (Arnaldo Mandel) Date: Tue Jul 1 14:22:56 2008 Subject: [GAP Forum] Lookup tables in gap In-Reply-To: <20080630202057.GA25658@beteigeuze> References: <18533.28173.623608.712973@gargle.gargle.HOWL> <20080630202057.GA25658@beteigeuze> Message-ID: <18538.12174.68798.336062@gargle.gargle.HOWL> Frank L?beck wrote (on Jun 30, 2008): > Dear Arnaldo Mandel, Dear Forum, Hello Frank and everybody, > > > > First, obvious solution: produced an ordered list L of all labels > > (that was fast!). Although L is longer than N, it is true that the > > label of N[i] is L[i], so, given a label s, the corresponding record > > is N[Position(L,s)]. Also, since L is ordered, lookup should be fast. > > Short answer: Use N[PositionSorted(L,s)]. More generally, always use > 'PositionSorted' instead of 'Position', when you know that your list > is sorted (but you are responsible to make sure that this is true). Tried this, and again it is a no go. The traversal ran for several hours until I killed it. Then, tried yet a little hack, based on your example: called IsSortedList(L) just after MakeImmutable(L). I would have thought it completely innocuous, just from the documentation. Alas... Up, up and away, SuperGAP! It really flew, and for my practical purposes was as fast as dealing with the modified structure, in which all strings were substituted by numerical indices. Amazing how much difference giving GAP a hint can make. Thanks, it was a very interesting learning experience. [] am -- Arnaldo Mandel Departamento de Ci?ncia da Computa??o - Computer Science Department Universidade de S?o Paulo, Bra[sz]il am@ime.usp.br Talvez voc? seja um Bright http://the-brights.net Maybe you are a Bright. From aeb at win.tue.nl Mon Jul 7 15:08:37 2008 From: aeb at win.tue.nl (A.E. Brouwer) Date: Mon Jul 7 15:12:21 2008 Subject: [GAP Forum] StructureDescription Message-ID: <20080707140837.GA4474@win.tue.nl> The GAP manual advertises: "The method for StructureDescription exhibits the structure of the given group to some extend using the strategy outlined below. The idea is to return a possibly short string which gives some insight in the structure of the considered group and can be computed reasonably quickly." (manual typo: s/extend/extent/) It seems to me that the idea fails. Maybe it is meant to be used only on baby groups, say with fewer than 100 elements, but used on rather small groups it usually crashes after many hours. Reactions are: recursion depth overflow (at recursion depth 5000), or memory overflow (needs more than the 3GB allowed on the command line), or missing info in Holt/Plesken library. This is on a 4GB machine, and Google shows me the complaint of R. Keith Dennis who tried groups of order 256 on a 128GB machine, and found that GAP crashed, so I need not be surprised that GAP fails for me on groups of order 1024. Other functions reveal the structure of the groups involved rather quickly. I wonder what StructureDescription tries to do that is so extremely expensive. Maybe the present behaviour should be regarded as buggy. It does not live up to what the manual promises. Andries From soicram at icmc.usp.br Mon Jul 7 18:53:50 2008 From: soicram at icmc.usp.br (=?iso-8859-1?Q?M=E1rcio_de_Jesus_Soares?=) Date: Mon Jul 7 18:54:15 2008 Subject: [GAP Forum] ring group with quaternion group Message-ID: <1317.143.107.183.74.1215453230.squirrel@mail2.icmc.usp.br> Hi list, I have a projective resolution for generalized quaternion group Q_{2^i}, and i have a Z-action on Q_{2^i}. I need to calculate the induced chain map by Z-action. Indeed, i have to obtain the elements A and B in ZQ_{2^i} such that (x-1)A=x^k(x^ly-1) and (y-1)B=-(x^ly-1). Does someone knows how i can ddo this in GAP? Thanks for attention, M?rcio J. Soares ---------------------------------------- Departamento de Matem?tica, ICMC/USP Av. do Trabalhador S?o-Carlense, 400 Cx. Postal 668 - CEP 13560-970 S?o Carlos/ SP Tels.(16) 3373-8164 (16) 3371-8045 ---------------------------------------- From dennis at rkd.math.cornell.edu Mon Jul 7 15:58:44 2008 From: dennis at rkd.math.cornell.edu (R. Keith Dennis) Date: Tue Jul 8 07:16:07 2008 Subject: [GAP Forum] StructureDescription Message-ID: <200807071458.m67EwiUL032503@rkd.math.cornell.edu> Dear Andries, Several points: 1. StructureDescription works quickly (see next point also) with groups called from the SmallGroups library. It tends to be much slower with groups described otherwise (e.g., some random presentation). 2. A slightly modified version of the program works substantially faster and with less memory; it's my understanding it will be in the next version of gap. (Thanks Burkhard!) 3. Crashing: This turned out to be a combination of things: First, some sort of memory problem in our machine. That's fixed now. I can highly recommend the programs that the gap group makes available for testing memory. Second: However, in computing large automorphism groups, gap continued to crash the machine. It appears that this was caused by some interaction with the operating system. We switch to Scientific Linux (~ RedHat Enterprise 5) last week & the problem seems to have vanished (at least I'm using up to 50+G and the machine hasn't crashed yet). 4. Which group(s) of order 1024? I'd be intersted in seeing if the new version of StructureDescription can handle them. So for the StructureDescription problem, for my uses,I'm quite happy at the moment. The help I received was fantastic. Thanks everyone! I still have a problem with computing automorphism groups for groups of order 256, but I'll send a note about that at lome point later. Keith > The GAP manual advertises: > "The method for StructureDescription exhibits the structure of > the given group to some extend using the strategy outlined below. > The idea is to return a possibly short string which gives some insight > in the structure of the considered group and can be computed > reasonably quickly." > > (manual typo: s/extend/extent/) > > It seems to me that the idea fails. Maybe it is meant to be used only > on baby groups, say with fewer than 100 elements, but used on > rather small groups it usually crashes after many hours. > Reactions are: recursion depth overflow (at recursion depth 5000), or > memory overflow (needs more than the 3GB allowed on the command line), or > missing info in Holt/Plesken library. > This is on a 4GB machine, and Google shows me the complaint of > R. Keith Dennis who tried groups of order 256 on a 128GB machine, > and found that GAP crashed, so I need not be surprised that GAP > fails for me on groups of order 1024. > > Other functions reveal the structure of the groups involved rather quickly. > I wonder what StructureDescription tries to do that is so extremely expensive. > > Maybe the present behaviour should be regarded as buggy. > It does not live up to what the manual promises. > From aeb at win.tue.nl Tue Jul 8 08:49:43 2008 From: aeb at win.tue.nl (A.E. Brouwer) Date: Tue Jul 8 08:50:07 2008 Subject: [GAP Forum] StructureDescription In-Reply-To: <200807071458.m67EwiUL032503@rkd.math.cornell.edu> References: <200807071458.m67EwiUL032503@rkd.math.cornell.edu> Message-ID: <20080708074943.GA11205@win.tue.nl> Hi Keith, > 2. A slightly modified version of the program works substantially > faster and with less memory; it's my understanding it will be in > the next version of gap. (Thanks Burkhard!) Where is it? > 3. Crashing: ... (I described not the "Segmentation fault" type of crash, but the "recursion depth exceeded" / "memory exceeded" / "Holt/Plesken incomplete" types of failure.) > 4. Which group(s) of order 1024? I'd be intersted in seeing if the > new version of StructureDescription can handle them. Easier if you provide that new version. This happens in real life, not a group from some library. Andries >> The GAP manual advertises: >> "The method for StructureDescription exhibits the structure of >> the given group to some extend using the strategy outlined below. >> The idea is to return a possibly short string which gives some insight >> in the structure of the considered group and can be computed >> reasonably quickly." >> >> (manual typo: s/extend/extent/) >> >> It seems to me that the idea fails. Maybe it is meant to be used only >> on baby groups, say with fewer than 100 elements, but used on >> rather small groups it usually crashes after many hours. >> Reactions are: recursion depth overflow (at recursion depth 5000), or >> memory overflow (needs more than the 3GB allowed on the command line), >> or missing info in Holt/Plesken library. >> >> Other functions reveal the structure of the groups involved >> rather quickly. I wonder what StructureDescription tries to do >> that is so extremely expensive. From Bartosz.Putrycz at math.univ.gda.pl Tue Jul 8 09:47:06 2008 From: Bartosz.Putrycz at math.univ.gda.pl (Bartosz Putrycz) Date: Tue Jul 8 09:48:03 2008 Subject: [GAP Forum] StructureDescription In-Reply-To: <200807071458.m67EwiUL032503@rkd.math.cornell.edu> References: <200807071458.m67EwiUL032503@rkd.math.cornell.edu> Message-ID: <4873298A.6010302@math.univ.gda.pl> > Dear Andries, > > Several points: > > 1. StructureDescription works quickly (see next point also) with > groups called from the SmallGroups library. It tends to be > much slower with groups described otherwise (e.g., some random > presentation). > > 2. A slightly modified version of the program works substantially > faster and with less memory; it's my understanding it will be in > the next version of gap. (Thanks Burkhard!) > > 3. Crashing: This turned out to be a combination of things: First, > some sort of memory problem in our machine. That's fixed now. > I can highly recommend the programs that the gap group makes > available for testing memory. > Second: However, in computing large automorphism groups, gap > continued to crash the machine. It appears that this was caused > by some interaction with the operating system. We switch to > Scientific Linux (~ RedHat Enterprise 5) last week & the problem > seems to have vanished (at least I'm using up to 50+G and the > machine hasn't crashed yet). > Dear Keith, I also noticed problems with StructureDescription, with groups of high rank. For example extraspecial 2-group of order 128: " gap> StructureDescription(SmallGroup([128, 2327])); exceeded the permitted memory (`-o' command line option) at ... " With change of memory settings it is possible to handle it, but it takes a lot of time on my machine. And maybe more challenging: StructureDescription(SmallGroup([512, 10494212])); Bartek. > 4. Which group(s) of order 1024? I'd be intersted in seeing if the > new version of StructureDescription can handle them. > > So for the StructureDescription problem, for my uses,I'm quite happy > at the moment. The help I received was fantastic. Thanks everyone! > > I still have a problem with computing automorphism groups for groups > of order 256, but I'll send a note about that at lome point later. > > Keith > > > >> The GAP manual advertises: >> "The method for StructureDescription exhibits the structure of >> the given group to some extend using the strategy outlined below. >> The idea is to return a possibly short string which gives some insight >> in the structure of the considered group and can be computed >> reasonably quickly." >> >> (manual typo: s/extend/extent/) >> >> It seems to me that the idea fails. Maybe it is meant to be used only >> on baby groups, say with fewer than 100 elements, but used on >> rather small groups it usually crashes after many hours. >> Reactions are: recursion depth overflow (at recursion depth 5000), or >> memory overflow (needs more than the 3GB allowed on the command line), or >> missing info in Holt/Plesken library. >> This is on a 4GB machine, and Google shows me the complaint of >> R. Keith Dennis who tried groups of order 256 on a 128GB machine, >> and found that GAP crashed, so I need not be surprised that GAP >> fails for me on groups of order 1024. >> >> Other functions reveal the structure of the groups involved rather quickly. >> I wonder what StructureDescription tries to do that is so extremely expensive. >> >> Maybe the present behaviour should be regarded as buggy. >> It does not live up to what the manual promises. >> >> > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From bob.heffernan at gmail.com Tue Jul 8 14:39:21 2008 From: bob.heffernan at gmail.com (Robert Heffernan) Date: Tue Jul 8 14:39:37 2008 Subject: [GAP Forum] finding all isomorphisms Message-ID: <6d9a83e90807080639i34ce583byd095b392cb514387@mail.gmail.com> Hi, The function IsomorphismGroups(G,H) (and others like it) will return a "random" isomorphism between the groups G and H (if one exists) but is there a way to find all such isomorphisms? Pushing findall:=true onto the options stack doesn't seem the change the behaviour of IsomorphismGroups. Thank you. Bob -- Robert Heffernan Mathematics Postgraduate, UCC, Cork, Ireland. From marc_roeder at web.de Tue Jul 8 16:34:14 2008 From: marc_roeder at web.de (Marc Roeder) Date: Tue Jul 8 16:35:01 2008 Subject: [GAP Forum] finding all isomorphisms In-Reply-To: <6d9a83e90807080639i34ce583byd095b392cb514387@mail.gmail.com> References: <6d9a83e90807080639i34ce583byd095b392cb514387@mail.gmail.com> Message-ID: <487388F6.3030803@web.de> Hi Bob, here's one way of getting all isomorphisms: Get one isomorphism and the group of automorphisms and then take all compositions. Example: gap> G:=Group([(1,2),(3,4)]); Group([ (1,2), (3,4) ]) gap> iso:=IsomorphismGroups(G,SmallGroup(4,2)); [ (1,2), (3,4) ] -> [ f1, f2 ] gap> allisos:=List(AutomorphismGroup(G),alpha->alpha*iso); [ [ (1,2), (3,4) ] -> [ f1, f2 ], [ (1,2), (3,4) ] -> [ f1*f2, f2 ], [ (1,2), (3,4) ] -> [ f2, f1 ], [ (1,2), (3,4) ] -> [ f1*f2, f1 ], [ (1,2), (3,4) ] -> [ f2, f1*f2 ], [ (1,2), (3,4) ] -> [ f1, f1*f2 ] ] Hope that helps, marc From dima at ntu.edu.sg Tue Jul 8 16:38:57 2008 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Tue Jul 8 16:39:09 2008 Subject: [GAP Forum] finding all isomorphisms In-Reply-To: <6d9a83e90807080639i34ce583byd095b392cb514387@mail.gmail.com> References: <6d9a83e90807080639i34ce583byd095b392cb514387@mail.gmail.com> Message-ID: <668720bc0807080838i123a7b7apc65b7ac8fb41d63a@mail.gmail.com> Dear Robert, dear Forum, you can compute the automorphism group Aut(G) of G. Then just compose each element of Aut(G) with the isomorphism. HTH, Dmitrii 2008/7/8 Robert Heffernan : > Hi, > > The function IsomorphismGroups(G,H) (and others like it) will return a > "random" isomorphism between the groups G and H (if one exists) but is > there a way to find all such isomorphisms? > > Pushing findall:=true onto the options stack doesn't seem the change > the behaviour of IsomorphismGroups. > > Thank you. > > > Bob > > -- > Robert Heffernan > Mathematics Postgraduate, UCC, Cork, Ireland. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From bob.heffernan at gmail.com Wed Jul 9 15:03:18 2008 From: bob.heffernan at gmail.com (Robert Heffernan) Date: Wed Jul 9 15:05:33 2008 Subject: [GAP Forum] finding all isomorphisms In-Reply-To: <668720bc0807080838i123a7b7apc65b7ac8fb41d63a@mail.gmail.com> References: <6d9a83e90807080639i34ce583byd095b392cb514387@mail.gmail.com> <668720bc0807080838i123a7b7apc65b7ac8fb41d63a@mail.gmail.com> Message-ID: <6d9a83e90807090703k68b57211q2338e0b26021944c@mail.gmail.com> Alexander, Mark and Dima, Thank you for your quick & halpeful responses. I'm a little miffed that I didn't think of this myself. :) Yours, Bob From switzel at mathematik.tu-darmstadt.de Thu Jul 10 17:45:53 2008 From: switzel at mathematik.tu-darmstadt.de (Stefan Witzel) Date: Thu Jul 10 17:54:09 2008 Subject: [GAP Forum] computations of characters Message-ID: <20080710164553.GB27203@mathematik.tu-darmstadt.de> Hello, I'm new to this list and in fact I'm also new to GAP. But I've been told that if there is anyone knowing how I could accelerate my computation, he will probably read this list. What I try to do is 1) compute irreducible characters of SU(n,q) and 2) compute induced characters of trivial characters of stabilizers in SU(n,q). I started of by just taking G := SU(n,q); and computing Irr(G); (Id did not quite use the built-in version but that probably doesn't matter here). A colleague found out, that it is faster to get a permutation description by letting V := GF(q^2)^n; v := Basis(V)[1]; orb:=SortedList(Orbit(Gsu,v,OnPoints)); hom := ActionHomomorphism(G,orb,OnPoints); Gperm := Image(hom); and then taking Gperm instead of G. For the induced characters it is pretty much the same: If H is the stabilizer (a group of block-diagonal matrices), I used to compute InducedClassFunction(TrivialCharacter(H),G) and know I compute Hperm := Image(hom,H); InducedClassFunction(TrivialCharacter(Hperm),Gperm); and it is also faster. Of course it is still too slow (as it is always) and my question is, if anybody has an idea how to accelerate one of these computations? Thanks in advance for suggestions! Regards, Stefan Witzel From josef.lauri at um.edu.mt Fri Jul 11 10:53:32 2008 From: josef.lauri at um.edu.mt (Josef Lauri) Date: Fri Jul 11 10:54:07 2008 Subject: [GAP Forum] Subgroups of a given order Message-ID: <008501c8e33b$faea3dd0$f0beb970$@lauri@um.edu.mt> I know this must be a silly question, but here goes: Given a group G how can I out find if G has subgroups of given order k and how can I list them if there are any? Thanks. Josef Lauri From laurent.bartholdi at gmail.com Fri Jul 11 12:26:58 2008 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Fri Jul 11 12:27:11 2008 Subject: [GAP Forum] Subgroups of a given order In-Reply-To: <1967599053931895584@unknownmsgid> References: <1967599053931895584@unknownmsgid> Message-ID: <1ff637850807110426s2d85e122m1519db24ca6b1790@mail.gmail.com> Hi Josef, If your group is small enough, you can list all subgroups by constructing all conjugacy classes. This is usually impractical for large groups, so you need another method. You may for instance compute orders of elements to see if there is a cyclic subgroup of desired size; or start by a cyclic subgroup, compute its normalizer, and try adding elements of the normalizer to create by successive extensions a subgroup of desired size. For the first, most naive appoach, here's an example session: gap> ConjugacyClassesSubgroups(SymmetricGroup(5)); [ Group( () )^G, Group( [ (4,5) ] )^G, Group( [ (2,3)(4,5) ] )^G, Group( [ (3,4,5) ] )^G, Group( [ (2,3)(4,5), (2,4)(3,5) ] )^G, Group( [ (2,3)(4,5), (2,4,3,5) ] )^G, Group( [ (4,5), (2,3) ] )^G, Group( [ (1,2,3,4,5) ] )^G, Group( [ (3,4,5), (4,5) ] )^G, # < leaving out 4 lines ... > , Group( [ (1,2,3,4,5), (3,4,5) ] )^G, SymmetricGroup( [ 1 .. 5 ] )^G ] gap> Concatenation(List(last,Elements)); [ Group(()), Group([ (4,5) ]), Group([ (3,4) ]), Group([ (3,5) ]), Group([ (2,3) ]), Group([ (2,4) ]), Group([ (2,5) ]), Group([ (1,2) ]), Group([ (1,3) ]), Group([ (1,4) ]), Group([ (1,5) ]), Group([ (2,3)(4,5) ]), Group([ (2,4)(3,5) ]), Group([ (2,5)(3,4) ]), Group([ (1,2)(4,5) ]), # < leaving out 49 lines ... > Group([ (1,2,3,4,5), (3,4,5) ]), Group([ (1,2,3,4,5), (1,2) ]) ] gap> Filtered(last,x->Size(x)=6); [ Group([ (3,4,5), (4,5) ]), Group([ (2,4,5), (2,5) ]), Group([ (1,4,5), (1,5) ]), Group([ (2,3,4), (3,4) ]), Group([ (1,3,4), (3,4) ]), Group([ (2,3,5), (2,3) ]), Group([ (1,3,5), (1,3) ]), Group([ (1,2,3), (2,3) ]), Group([ (1,2,4), (2,4) ]), # < leaving out 6 lines ... > Group([ (2,4), (1,3,5) ]), Group([ (1,3), (2,4,5) ]), Group([ (2,5), (1,3,4) ]) ] gap> Filtered(last,x->Size(x)=7); [ ] On Fri, Jul 11, 2008 at 11:53 AM, Josef Lauri wrote: > I know this must be a silly question, but here goes: Given a group G how can > I out find if G has subgroups of given order k and how can I list them if > there are any? > > Thanks. > > Josef Lauri > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 Station 8 \ Secr?taire: +41 21-6935471 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 Home address: http://microurl.org/10, http://microurl.org/16 From kksa at math.ku.dk Mon Jul 14 08:11:19 2008 From: kksa at math.ku.dk (Kasper Andersen) Date: Mon Jul 14 08:12:10 2008 Subject: [GAP Forum] Indecomposable modules Message-ID: Dear all, Let k be a finite field and G a finite group. Does anyone know of an efficient algorithm for computing all indecomposable kG-modules up to a given rank? (Note that since k is finite there are only finitely many of these). Even better, does anyone know of an implementation of such an algorithm? best wishes, Kasper Andersen From w_becker at hotmail.com Tue Jul 15 18:13:10 2008 From: w_becker at hotmail.com (Walter Becker) Date: Tue Jul 15 18:13:38 2008 Subject: [GAP Forum] "generalized centralizer question Message-ID: I am interested in calculating the set of elements (group) which commute with a given non-abelian subgroup of a group. The problem can be illustrated by a simple example. Consider the group [C_(9} @ C_3] @ D_4 = G The group D_4 acts on the 3-group by an operator of order 2 (say here the C_2 element in D_4). What I want to do is to calculate the "normal subgroup" [C_9 @ C_3 X C_4] and then form the quotient group Q = G/[C_9@C_3 X C_4] Here the quotient is obviously C_2. But the interest is in more general cases with a non-abelian normal p-subgroup. (The case when the p-group is abelian can be done with the centralizer command.) Comments Thank you Walter Becker _________________________________________________________________ Making the world a better place one message at a time. http://www.imtalkathon.com/?source=EML_WLH_Talkathon_BetterPlace From trof1984 at rambler.ru Tue Jul 15 23:25:42 2008 From: trof1984 at rambler.ru (Alex Trofimuk) Date: Tue Jul 15 23:26:04 2008 Subject: [GAP Forum] Theory of groups (derived length) Message-ID: <324889108.1216160742.86945496.7223@mcgi73.rambler.ru> -- Dear Gap Forum. Alex Trofimuk asked: I am trying to construct the example of groups G. It is solvable with derived length =6 and all Sylow p-subgroups are bicyclic or order p^3. (A p-groups is called bicyclic if it is product of two cyclic subgroups). How to do it? Thanks. Alex Trofimuk. From am at ime.usp.br Wed Jul 16 15:12:19 2008 From: am at ime.usp.br (Arnaldo Mandel) Date: Wed Jul 16 15:14:04 2008 Subject: [GAP Forum] Mystry call to Order Message-ID: <18558.451.593780.7734@gargle.gargle.HOWL> Hi everybody, After struggling with a very slow running function, I was met with a mystery. Here is profiling data: gap> ProfileOperationsAndMethods(true); gap> ProfileGlobalFunctions( true ); gap> DisplayProfile(); count self/ms chld/ms function 16902 0 0 ADD_LIST 10 TOTAL gap> x4:=Complete(BFST[4]);; gap> time; 2250 gap> DisplayProfile(); count self/ms chld/ms function 13694 0 0 Size: for a list that is a collection 23967 0 0 ADD_LIST 4229 2220 0 Order: for a group 2260 TOTAL gap> x5:=Complete(BFST[5]);; gap> time; 1323640 gap> DisplayProfile(); count self/ms chld/ms function 13737 10 0 WriteAll: output text file 18332 30 10 WriteAll 12942 20 20 Concatenation 43325 40 10 Enumerator: for a collection that is a list 6471 30 50 String: for an object, and a positive integer 12942 0 90 String 162543 90 10 APPEND_LIST 316529 80 30 Size: for a list that is a collection 167708 130 0 Remove: two arguments, fast 209192 240 10 SHALLOW_COPY_OBJ: for a presentation in default * 2 50 200 Perform 43325 260 0 SSortedList: for a plist 167708 270 130 Remove 226094 490 -10 ADD_LIST 43325 240 300 AsSSortedList: for a plist 43325 180 550 Enumerator: for a collection with known `AsSSort* 94236 1322830 80 Order: for a group 1325010 TOTAL As you can see, Order takes up all the time. However, Complete does not involve any group. Its argument is a list of small matrices, and the return value is of the same type. In between, several new matrices are created; each new matrix is a StructuralCopy of an existing one, followed by some simple modifications. Functions that are explicitly called are: Size(list), StructuralCopy, Append, Add, Remove, AsSet(small list of integers), Print, RemInt, String(integer,integer). So, who is calling Order? am -- Arnaldo Mandel Departamento de Ci?ncia da Computa??o - Computer Science Department Universidade de S?o Paulo, Bra[sz]il am@ime.usp.br Talvez voc? seja um Bright http://the-brights.net Maybe you are a Bright. From ahulpke at gmail.com Wed Jul 16 16:13:05 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed Jul 16 16:13:28 2008 Subject: [GAP Forum] Mystry call to Order In-Reply-To: <18558.451.593780.7734@gargle.gargle.HOWL> References: <18558.451.593780.7734@gargle.gargle.HOWL> Message-ID: <17F29722-9291-4C8E-832E-33A6E5548935@math.colostate.edu> Dear Armando Mandel, Dear Forum, > fter struggling with a very slow running function, I was met with a > mystery. Here is profiling data: > > 94236 1322830 80 Order: for a group > 1325010 TOTAL > > As you can see, Order takes up all the time. However, Complete does > not involve any group. This is a known problem in the profiling code. The call in question is `Size'. what is happening, however, is that there is a method installation for `Order' for groups (in lib/grp.gi) for which the method is simply the operation `Size'. This means, that the function `Size' internally gets labeled as a *method* for the operation `Order' for groups. unfortunately this is not easily fixed: doing so would require an extra indirection when calling methods, which are operations themselves. This would slow things down a little bit. In view of this, I would argue that the mislabeling of the profile is the lesser evil. While this was not asked, I would like to make another remark about profiling, which might have an impact on your analysis, as you seem to be doing just basic list operations for which all function calls should be quick: Turning on profiling slows the system down. This is happening, because there is a (constant!) extra cost with every function call. This extra cost is accounted as part of the runtime for this function when displaying the profile. For functions, which are called very often, but themselves are very fast (such as many list operations) this is skewing the result to the point of making it unusable. (This is the price one has to pay for using an interpreted language with profiling being built into the interpreter.) Seeing the list of functions which are called, I fear that your code might be in this situation. To find out cold bottlenecks in similar situations, I have resort to using the function `Runtime()' (which returns the milliseconds since the start of GAP) to basically do profiling by hand. (I.e. I set at the start and end of each function (or functionality block within a function) total_time_this_function:=Runtime()-total_time_this_function; as a result, time for this function is summed up in the variable `total_time_this_function'. Doing so lets me decide on the granularity of profiling and avoids function calls skewing the results. Admittedly it will never win a prize for elegance. 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 dima at ntu.edu.sg Wed Jul 16 17:30:42 2008 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Wed Jul 16 17:30:56 2008 Subject: [GAP Forum] Mystry call to Order In-Reply-To: <18558.451.593780.7734@gargle.gargle.HOWL> References: <18558.451.593780.7734@gargle.gargle.HOWL> Message-ID: <668720bc0807160930g407b7baag1232d0486b1cbd20@mail.gmail.com> Dear Arnaldo, IMHO you should post the code (or a link where one can get your code) that demonstrates this problem. Otherwise it's very hard to tell. Best, Dmitrii 2008/7/16 Arnaldo Mandel : > Hi everybody, > > After struggling with a very slow running function, I was met with a > mystery. Here is profiling data: > > gap> ProfileOperationsAndMethods(true); > gap> ProfileGlobalFunctions( true ); > gap> DisplayProfile(); > count self/ms chld/ms function > 16902 0 0 ADD_LIST > 10 TOTAL > gap> x4:=Complete(BFST[4]);; > gap> time; > 2250 > gap> DisplayProfile(); > count self/ms chld/ms function > 13694 0 0 Size: for a list that is a collection > 23967 0 0 ADD_LIST > 4229 2220 0 Order: for a group > 2260 TOTAL > gap> x5:=Complete(BFST[5]);; > gap> time; > 1323640 > gap> DisplayProfile(); > count self/ms chld/ms function > 13737 10 0 WriteAll: output text file > 18332 30 10 WriteAll > 12942 20 20 Concatenation > 43325 40 10 Enumerator: for a collection that is a list > 6471 30 50 String: for an object, and a positive integer > 12942 0 90 String > 162543 90 10 APPEND_LIST > 316529 80 30 Size: for a list that is a collection > 167708 130 0 Remove: two arguments, fast > 209192 240 10 SHALLOW_COPY_OBJ: for a presentation in default * > 2 50 200 Perform > 43325 260 0 SSortedList: for a plist > 167708 270 130 Remove > 226094 490 -10 ADD_LIST > 43325 240 300 AsSSortedList: for a plist > 43325 180 550 Enumerator: for a collection with known `AsSSort* > 94236 1322830 80 Order: for a group > 1325010 TOTAL > > As you can see, Order takes up all the time. However, Complete does > not involve any group. Its argument is a list of small matrices, and > the return value is of the same type. In between, several new > matrices are created; each new matrix is a StructuralCopy of an > existing one, followed by some simple modifications. Functions that are > explicitly called are: Size(list), StructuralCopy, Append, Add, Remove, > AsSet(small list of integers), Print, RemInt, String(integer,integer). > > So, who is calling Order? > > am > > -- > Arnaldo Mandel > Departamento de Ci?ncia da Computa??o - Computer Science Department > Universidade de S?o Paulo, Bra[sz]il > am@ime.usp.br > Talvez voc? seja um Bright http://the-brights.net Maybe you are a Bright. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From am at ime.usp.br Wed Jul 16 19:01:32 2008 From: am at ime.usp.br (Arnaldo Mandel) Date: Wed Jul 16 19:02:46 2008 Subject: [GAP Forum] Mystry call to Order In-Reply-To: <17F29722-9291-4C8E-832E-33A6E5548935@math.colostate.edu> References: <18558.451.593780.7734@gargle.gargle.HOWL> <17F29722-9291-4C8E-832E-33A6E5548935@math.colostate.edu> Message-ID: <18558.14204.195916.420889@gargle.gargle.HOWL> Alexander Hulpke wrote (on Jul 16, 2008): > Dear Armando Mandel, Dear Forum, Hello Aexander, hello Forum and hello Armando, whoever you are :-) > > > As you can see, Order takes up all the time. However, Complete does > > not involve any group. > > This is a known problem in the profiling code. Maybe it should be documented. > The call in question is > `Size'. Of course... Well, this little tip was enough (see below)! > what is happening, however, is that there is a method installation > for `Order' for groups (in lib/grp.gi) for which the method is simply > the operation `Size'. This means, that the function `Size' internally > gets labeled as a *method* for the operation `Order' for groups. > unfortunately this is not easily fixed: doing so would require an > extra indirection when calling methods, which are operations > themselves. This would slow things down a little bit. In view of this, > I would argue that the mislabeling of the profile is the lesser evil. No problem, so long I am aware of it. Your remarks about how profiling may be self-deceiving occasionally notwithstanding, profiling was smack in the head this time. There were definitely many calls to Size in the inner loops. I change that by keeping tab myself of the sizes of the relevant lists in variables. The effect was dramatic. Here is the timing of the two runs I reported before: argument before after very small 2250 20 small 1323640 1310 large forever 96710 I am not kidding - BTW, the timings in this case were little affected by the profiling. Thanks again for your help, [] am From am at ime.usp.br Wed Jul 16 19:04:46 2008 From: am at ime.usp.br (Arnaldo Mandel) Date: Wed Jul 16 19:05:41 2008 Subject: [GAP Forum] Mystry call to Order In-Reply-To: <668720bc0807160928m8587616j44ef9fe8fa7ba2fd@mail.gmail.com> References: <18558.451.593780.7734@gargle.gargle.HOWL> <668720bc0807160928m8587616j44ef9fe8fa7ba2fd@mail.gmail.com> Message-ID: <18558.14398.929492.571255@gargle.gargle.HOWL> Dima Pasechnik wrote (on Jul 16, 2008): > Dear Arnaldo, > IMHO you should post the code (or a link where one can get your code) > that demonstrates this problem. > Otherwise it's very hard to tell. Thanks Dima. As I wrote in another post, the problem was solved as soon as I understood the profiling information. However, if you or anybody else is curious about the code, I will wake it available. [] am -- Arnaldo Mandel Departamento de Ci?ncia da Computa??o - Computer Science Department Universidade de S?o Paulo, Bra[sz]il am@ime.usp.br Talvez voc? seja um Bright http://the-brights.net Maybe you are a Bright. From kohl at mathematik.uni-stuttgart.de Thu Jul 17 15:45:46 2008 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Thu Jul 17 15:46:22 2008 Subject: [GAP Forum] The Higman-Thompson group Message-ID: <487F5B1A.9030705@mathematik.uni-stuttgart.de> Dear Forum, Two weeks ago, I have posted the following example of a finitely-generated infinite simple group to the group-pub-forum: Def.: Given disjoint residue classes r_1(m_1) and r_2(m_2) of the integers, let the class transposition (r_1(m_1),r_2(m_2)) be the permutation which interchanges r_1 + k * m_1 and r_2 + k * m_2 for each integer k and which fixes all other points. Then our group is G := < (0(2),1(4)), (0(4),1(4)), (1(4),2(4)), (2(4),3(4)) >. Having loaded the RCWA package, this group can be entered into GAP by gap> G := Group(List([[0,2,1,4],[0,4,1,4],[1,4,2,4],[2,4,3,4]], > ClassTransposition)); Last week, in an answer to my posting John P. McDermott reported that he has found out that this group is isomorphic to the (first) Higman-Thompson group, which is defined and investigated in [Higman74] Graham Higman. Finitely Presented Infinite Simple Groups. Notes on Pure Mathematics, 1974, Department of Pure Mathematics, Australian National University, Canberra, ISBN 0 7081 0300 6. The 'standard generators' kappa, lambda, mu and nu given there correspond to (0(2),1(2)), (1(2),2(4)), (0(2),1(4)) and (1(4),2(4)), respectively. As the Higman-Thompson group is simple, verifying the isomorphism requires now only a (very quick and easy) computational check whether the generators satisfy the 16 relations given on page 50 of Higman's book: -------------------------------------------------------------------------- gap> k := ClassTransposition(0,2,1,2);; # kappa in Higman74 gap> l := ClassTransposition(1,2,2,4);; # lambda " gap> m := ClassTransposition(0,2,1,4);; # mu " gap> n := ClassTransposition(1,4,2,4);; # nu " gap> H := Group(k,l,m,n); gap> G = H; true gap> HigmanThompsonRels := > [ k^2, l^2, m^2, n^2, # (1) in Higman74, p.50. > l*k*m*k*l*n*k*n*m*k*l*k*m, # (2) " > k*n*l*k*m*n*k*l*n*m*n*l*n*m, # (3) " > (l*k*m*k*l*n)^3, (m*k*l*k*m*n)^3, # (4) " > (l*n*m)^2*k*(m*n*l)^2*k, # (5) " > (l*n*m*n)^5, # (6) " > (l*k*n*k*l*n)^3*k*n*k*(m*k*n*k*m*n)^3*k*n*k*n,# (7) " > ((l*k*m*n)^2*(m*k*l*n)^2)^3, # (8) " > (l*n*l*k*m*k*m*n*l*n*m*k*m*k)^4, # (9) " > (m*n*m*k*l*k*l*n*m*n*l*k*l*k)^4, #(10) " > (l*m*k*l*k*m*l*k*n*k)^2, #(11) " > (m*l*k*m*k*l*m*k*n*k)^2 ];; #(12) " gap> Set(HigmanThompsonRels); [ IdentityMapping( Integers ) ] -------------------------------------------------------------------------- In fact, G = H is the group which is generated by the set of all class transpositions which interchange residue classes modulo powers of 2. Def.: Given a set P of odd primes, let CT_P(Z) be the group which is generated by all class transpositions (r_1(m_1),r_2(m_2)) for which all odd prime factors of m_1 and m_2 lie in P. In this notation, G is the group CT_P(Z), where P = {} (i.e. the empty set). By Corollary 3.7 in http://www.cip.mathematik.uni-stuttgart.de/~kohlsn/preprints/simplegp.pdf, the groups CT_P(Z) are all simple. The intersection of these uncountably many infinite simple groups is our group G, hence is isomorphic to the Higman-Thompson group. All groups CT_P(Z) are subgroups of the group CT(Z), which is generated by the set of all class transpositions. Thus, very roughly we can depict the situation as follows: CT(Z) / | \ / | \ / | \ / | \ CT_{3}(Z) ... CT_{5,7,23}(Z) ... CT_{p = 1 mod 4}(Z) ... \ | / \ | / \ | / \ | / G (Higman-Thompson group) Our group G preserves a certain tree structure. The groups CT_P(Z) for nonempty sets P of odd primes do not do so, which apparently makes investigating them essentially more difficult -- even if P is finite, or just {3}, say. Any ideas, comments, hints, questions, suggestions, ... are greatly appreciated. Best wishes, Stefan Kohl From m.fayers at qmul.ac.uk Thu Jul 17 15:55:24 2008 From: m.fayers at qmul.ac.uk (m.fayers@qmul.ac.uk) Date: Thu Jul 17 15:55:49 2008 Subject: [GAP Forum] Intersection bug? Message-ID: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> Can anyone explain why GAP behaves as follows? gap> Intersection([1..3],[1..3]); [ 1 .. 3 ] gap> Intersection([-3..-1],[-3..-1]); [ -3 .. -1 ] gap> Intersection([-1..1],[-1..1]); [ ] ____________________________________________________ Matthew Fayers Queen Mary, University of London Mile End Road London E1 4NS U.K. From paris14 at math.auth.gr Thu Jul 17 20:18:51 2008 From: paris14 at math.auth.gr (Paraskevas Alvanos) Date: Thu Jul 17 20:19:16 2008 Subject: [GAP Forum] real value approximation Message-ID: <20080717221851.80cw6cpds0c4gk8g@webmail.auth.gr> Dear GAP forum, I would like to know if there is a way to have evaluate the primitive element of a numberfield i.e. x := Indeterminate(Rationals); g := x ^2 - 2; F := FieldByPolynomial(g); a := PrimitiveElement(F); Is it a way to determine which conjugate a. Can I have an approximate real value of a; Of course a can simple ask a>0; and wait for true or false, but when I have 10-20 real and complex conjugates should I find a constructive way to understand which is my primitive element or there is something much easier that I am missing. Thanks everybody in advance paraskevas alvanos From ahulpke at gmail.com Thu Jul 17 21:43:16 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Thu Jul 17 21:43:37 2008 Subject: [GAP Forum] real value approximation In-Reply-To: <20080717221851.80cw6cpds0c4gk8g@webmail.auth.gr> References: <20080717221851.80cw6cpds0c4gk8g@webmail.auth.gr> Message-ID: <9EB6A035-33CD-4EC1-9A0E-662D37DAD539@math.colostate.edu> Dear GAP Forum, On Jul 17, 2008, at 1:18 PM, Paraskevas Alvanos wrote: > > x := Indeterminate(Rationals); > g := x ^2 - 2; > F := FieldByPolynomial(g); > > a := PrimitiveElement(F); > > Is it a way to determine which conjugate a. No -- in fact in this construction it is no particular conjugate, but both embeddings are valid. Algebraically it does not matter which conjugate you pick, that is the beauty of Galois theory. > Can I have an approximate real value of a; I don't think GAP has a general routine for numerical root approximation, though there are of course known algorithms in numerical analysis which do so. > > Of course a can simple ask > > a>0; Careful: This ordering is an arbitrary ordering (because 0 and a are in different domains) and does not imply any particular embedding. In fact it could be possible that both a and -a are both larger than 0. Best, Alexander Hulpke From reiner at iem.uni-due.de Fri Jul 18 10:32:15 2008 From: reiner at iem.uni-due.de (Reiner Staszewski) Date: Fri Jul 18 11:24:15 2008 Subject: [GAP Forum] Intersection bug? In-Reply-To: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> Message-ID: <4880631F.2040609@iem.uni-due.de> Hi Matthew, I have quite an old version running under windows XP (32 bit), namely GAP4P4R4 which behaves as you describe, and another version under 64-bit Linux, namly GAP4P4R10, which behaves correctly. Best wishes, Reiner Staszewski m.fayers@qmul.ac.uk wrote: > Can anyone explain why GAP behaves as follows? > > gap> Intersection([1..3],[1..3]); > [ 1 .. 3 ] > gap> Intersection([-3..-1],[-3..-1]); > [ -3 .. -1 ] > gap> Intersection([-1..1],[-1..1]); > [ ] > > > ____________________________________________________ > Matthew Fayers > > Queen Mary, University of London > Mile End Road > London E1 4NS > U.K. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From dima at ntu.edu.sg Fri Jul 18 12:58:38 2008 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Fri Jul 18 12:58:56 2008 Subject: [GAP Forum] Intersection bug? In-Reply-To: <4880631F.2040609@iem.uni-due.de> References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> <4880631F.2040609@iem.uni-due.de> Message-ID: <668720bc0807180458m5bffd86elad5a6fc3aee42bc1@mail.gmail.com> Dear Forum, I get the same strange behavour on 4.4.10, too: GAP4, Version: 4.4.10 of 02-Oct-2007, i686-pc-linux-gnu-gcc gap> Intersection([1..3],[1..3]); [ 1 .. 3 ] gap> Intersection([-3..-1],[-3..-1]); [ -3 .. -1 ] gap> Intersection([-1..1],[-1..1]); [ ] And that's what I am running on. $ uname -a Linux *** 2.6.25.10-custom #3 SMP Mon Jul 14 22:54:07 BST 2008 i686 GNU/Linux So that's a hardware-dependent behavour, apparently. HTH, Dmitrii 2008/7/18 Reiner Staszewski : > Hi Matthew, > > I have quite an old version running under windows XP (32 bit), namely > GAP4P4R4 which behaves as you describe, and another version under 64-bit > Linux, namly GAP4P4R10, which behaves correctly. > > Best wishes, Reiner Staszewski > > > m.fayers@qmul.ac.uk wrote: >> Can anyone explain why GAP behaves as follows? >> >> gap> Intersection([1..3],[1..3]); >> [ 1 .. 3 ] >> gap> Intersection([-3..-1],[-3..-1]); >> [ -3 .. -1 ] >> gap> Intersection([-1..1],[-1..1]); >> [ ] >> >> >> ____________________________________________________ >> Matthew Fayers >> >> Queen Mary, University of London >> Mile End Road >> London E1 4NS >> U.K. >> >> _______________________________________________ >> 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 > From steger at uniss.it Fri Jul 18 13:11:22 2008 From: steger at uniss.it (Tim Steger) Date: Fri Jul 18 13:11:41 2008 Subject: [GAP Forum] Abelianizations of Subgroups Message-ID: <20080718121122.D0D3715C2BB@xdf81.math.uni-bielefeld.de> Dear GAP people, In Section~45.14 of the manual it says: Using variations of coset enumeration it is possible to compute the abelian invariants of a subgroup of a finitely presented group without computing a complete presentation for the subgroup in the first place. This possibility is explained a little by Havas in [Hav74b]. Suppose we are interested only in the elementary-$p$-part of the abelianization: H / <[H,H] H^p> = (H / [H,H]) \otimes (Z/p) It should be possible to calculate this using even less time and space than the abelianization. Is such a variant available in GAP? In one of the packages? In some non-GAP program? Yours, Tim Steger From m.fayers at qmul.ac.uk Fri Jul 18 13:12:09 2008 From: m.fayers at qmul.ac.uk (m.fayers@qmul.ac.uk) Date: Fri Jul 18 13:12:40 2008 Subject: [GAP Forum] Intersection bug? In-Reply-To: <4880631F.2040609@iem.uni-due.de> References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> <4880631F.2040609@iem.uni-due.de> Message-ID: <50071.72.70.75.38.1216383129.squirrel@webmail.maths.qmul.ac.uk> > I have quite an old version running under windows XP (32 bit), namely > GAP4P4R4 which behaves as you describe, and another version under 64-bit > Linux, namly GAP4P4R10, which behaves correctly. The problem happens for me with the latest GAP (4.4.10) on Windows XP. So (as usual) it must be Windows that's the problem. >> gap> Intersection([1..3],[1..3]); >> [ 1 .. 3 ] >> gap> Intersection([-3..-1],[-3..-1]); >> [ -3 .. -1 ] >> gap> Intersection([-1..1],[-1..1]); >> [ ] Matt. ____________________________________________________ Matthew Fayers Queen Mary, University of London Mile End Road London E1 4NS U.K. From havas at itee.uq.edu.au Fri Jul 18 13:46:01 2008 From: havas at itee.uq.edu.au (GH UQ) Date: Fri Jul 18 13:46:28 2008 Subject: [GAP Forum] Abelianizations of Subgroups In-Reply-To: <20080718121122.D0D3715C2BB@xdf81.math.uni-bielefeld.de> References: <20080718121122.D0D3715C2BB@xdf81.math.uni-bielefeld.de> Message-ID: On Fri, 18 Jul 2008, Tim Steger wrote: > This possibility is explained a little by Havas in [Hav74b]. Suppose > we are interested only in the elementary-$p$-part of the > abelianization: > > H / <[H,H] H^p> = (H / [H,H]) \otimes (Z/p) > > It should be possible to calculate this using even less time and space > than the abelianization. Is such a variant available in GAP? In one > of the packages? In some non-GAP program? > The GAP 4 Package EDIM: http://www.gap-system.org/Manuals/pkg/edim/xmldoc/chap0.html enables you to do this. Best wishes... George Havas http://www.itee.uq.edu.au/~havas From muntyan at tamu.edu Fri Jul 18 16:12:25 2008 From: muntyan at tamu.edu (Yevgen Muntyan) Date: Fri Jul 18 16:12:41 2008 Subject: [GAP Forum] Intersection bug? In-Reply-To: <50071.72.70.75.38.1216383129.squirrel@webmail.maths.qmul.ac.uk> References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> <4880631F.2040609@iem.uni-due.de> <50071.72.70.75.38.1216383129.squirrel@webmail.maths.qmul.ac.uk> Message-ID: On Jul 18, 2008, at 7:12 , m.fayers@qmul.ac.uk wrote: > > >> I have quite an old version running under windows XP (32 bit), namely >> GAP4P4R4 which behaves as you describe, and another version under >> 64-bit >> Linux, namly GAP4P4R10, which behaves correctly. > > The problem happens for me with the latest GAP (4.4.10) on Windows > XP. So > (as usual) it must be Windows that's the problem. Same bug on Mac OS X 10.4.11 PowerPC. Regards, Yevgen From Ayan.Mahalanobis at stevens.edu Fri Jul 18 16:52:05 2008 From: Ayan.Mahalanobis at stevens.edu (Ayan Mahalanobis) Date: Fri Jul 18 16:52:17 2008 Subject: [GAP Forum] Intersection bug? In-Reply-To: References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> <4880631F.2040609@iem.uni-due.de> <50071.72.70.75.38.1216383129.squirrel@webmail.maths.qmul.ac.uk> Message-ID: <4880BC25.1010309@stevens.edu> Same problem with GAP 4.4.10 on ununtu Linux 2.6.24-19-generic. Ayan Yevgen Muntyan wrote: > On Jul 18, 2008, at 7:12 , m.fayers@qmul.ac.uk wrote: > >> >> >>> I have quite an old version running under windows XP (32 bit), namely >>> GAP4P4R4 which behaves as you describe, and another version under >>> 64-bit >>> Linux, namly GAP4P4R10, which behaves correctly. >> >> The problem happens for me with the latest GAP (4.4.10) on Windows >> XP. So >> (as usual) it must be Windows that's the problem. > > Same bug on Mac OS X 10.4.11 PowerPC. > > Regards, > Yevgen > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From erfanian at wali.um.ac.ir Fri Jul 18 17:48:54 2008 From: erfanian at wali.um.ac.ir (erfanian) Date: Fri Jul 18 18:28:33 2008 Subject: [GAP Forum] Counting subgroups Message-ID: <200807181545.m6IFjNHw028686@wali.um.ac.ir> Dear Gap Forum, I would like to know if there is a way to count all subgroups for given group G (finite and infinite) in Gap. Thanks in advance for any help and comments. Best regards, A. Erfanian. From laurent.bartholdi at gmail.com Fri Jul 18 20:54:35 2008 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Fri Jul 18 20:54:48 2008 Subject: [GAP Forum] Intersection bug? In-Reply-To: <4880BC25.1010309@stevens.edu> References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> <4880631F.2040609@iem.uni-due.de> <50071.72.70.75.38.1216383129.squirrel@webmail.maths.qmul.ac.uk> <4880BC25.1010309@stevens.edu> Message-ID: <1ff637850807181254m58f1c3aatb0a32917bdaafbd6@mail.gmail.com> For those of you with 64-bit machines and/or other compilers: could you please run the following C code: ---------------------------------- main () { printf("INTER_RANGE %sed on your computer\n", -1 > -1+1u ? "fail" : "succed"); } ---------------------------------- I searched for the gcc documentation to know if this is the expected behaviour or not; it seems at least that this is implementation-dependent. Cheers, Laurent On Fri, Jul 18, 2008 at 5:52 PM, Ayan Mahalanobis wrote: > Same problem with GAP 4.4.10 on ununtu Linux 2.6.24-19-generic. > > Ayan > > Yevgen Muntyan wrote: >> >> On Jul 18, 2008, at 7:12 , m.fayers@qmul.ac.uk wrote: >> >>> >>> >>>> I have quite an old version running under windows XP (32 bit), namely >>>> GAP4P4R4 which behaves as you describe, and another version under 64-bit >>>> Linux, namly GAP4P4R10, which behaves correctly. >>> >>> The problem happens for me with the latest GAP (4.4.10) on Windows XP. >>> So >>> (as usual) it must be Windows that's the problem. >> >> Same bug on Mac OS X 10.4.11 PowerPC. >> >> Regards, >> Yevgen >> >> _______________________________________________ >> 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 > -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 Station 8 \ Secr?taire: +41 21-6935471 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 Home address: http://microurl.org/10, http://microurl.org/16 From r_n_tsai at yahoo.com Fri Jul 18 21:54:06 2008 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Fri Jul 18 21:54:40 2008 Subject: [GAP Forum] unsupported functions in new release (4.4.10) Message-ID: <356383.63760.qm@web34402.mail.mud.yahoo.com> Dear gap forum, ? I just installed the latest version of gap4 (4.4.10) and tried it with some old code (which worked with previous versions). It looks like the following two functions are no longer supported : ? ?FromTheLeftCollector ?PcpGroupByCollector ? I get this error : ?" Syntax error: warning: unbound global variable ..." ? Are there equivalent functions in the new release or workarounds? Thanks, R.N. From muntyan at tamu.edu Fri Jul 18 23:19:11 2008 From: muntyan at tamu.edu (Yevgen Muntyan) Date: Fri Jul 18 23:19:31 2008 Subject: [GAP Forum] Intersection bug? In-Reply-To: <1ff637850807181254m58f1c3aatb0a32917bdaafbd6@mail.gmail.com> References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk> <4880631F.2040609@iem.uni-due.de> <50071.72.70.75.38.1216383129.squirrel@webmail.maths.qmul.ac.uk> <4880BC25.1010309@stevens.edu> <1ff637850807181254m58f1c3aatb0a32917bdaafbd6@mail.gmail.com> Message-ID: On Jul 18, 2008, at 14:54 , Laurent Bartholdi wrote: > For those of you with 64-bit machines and/or other compilers: could > you please run the following C code: > ---------------------------------- > main () { > printf("INTER_RANGE %sed on your computer\n", -1 > -1+1u ? > "fail" : "succed"); > } > ---------------------------------- It is what -Wsign-compare gcc flag is for, that code is broken. -1's are converted to unsigned int, and so the result is always true. Best regards, Yevgen From prof.khammash at gmail.com Sat Jul 19 00:39:37 2008 From: prof.khammash at gmail.com (Ahmed Khammash) Date: Sun Jul 20 00:41:46 2008 Subject: [GAP Forum] Restriction and Induction Functors For Cyclic Groups Modules Message-ID: Derar Forum Is there a way ( either theoretically or using Gap) of determining the restriction of an indecomposable module for cyclic group in positive characteristic to a subgroup. The induction process from subgroups seems to be easier using Green indecomposability theorem . I appreciate any help Ahmed Khammash From thomas.breuer at math.rwth-aachen.de Mon Jul 21 15:41:57 2008 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Mon Jul 21 15:42:14 2008 Subject: [GAP Forum] Intersection bug? Message-ID: <20080721144157.GB24096@gemma.math.rwth-aachen.de> Dear GAP Forum, Matthew Fayers had reported a bug in the `Intersection' routine for ranges, and several Forum members have meanwhile confirmed the erroneous behaviour. Thank you for these reports. Whereas it may depend on the operating system whether this bug shows up or not, we found meanwhile another error in the same routine, which occurs on any operating system. Both bugs can cause wrong results. They will be fixed in the next version of GAP. A preliminary fix can be obtained by reading the following GAP code into the GAP session, for example in your .gaprc file. (See the section ``The .gaprc file'' in the GAP Reference Manual for this.) Sorry for the inconveniences. All the best, Thomas ---------------------------------------------------------------------------- InstallMethod( IntersectSet, "for two ranges (preliminary library method)", [ IsRange and IsRangeRep and IsMutable, IsRange and IsRangeRep ], 1, function( r1, r2 ) local low1, low2, len1, len2, inc1, inc2, t, g, offset, inci, lowi, dist1, dist2, disti, leni; # Objects in `IsRangeRep' cannot be empty. low1:= r1[1]; low2:= r2[1]; len1:= Length( r1 ); len2:= Length( r2 ); inc1:= 1; if 1 < len1 then inc1:= r1[2] - r1[1]; fi; inc2:= 1; if 1 < len2 then inc2:= r2[2] - r2[1]; fi; # Force the two ranges to be ascending. (The result will be a set.) if inc1 < 0 then low1:= low1 + (len1-1)*inc1; inc1:= -inc1; fi; if inc2 < 0 then low2:= low2 + (len2-1)*inc2; inc2:= -inc2; fi; # Force the first range to start not later than the second. if low1 > low2 then t:= low1; low1:= low2; low2:= t; t:= inc1; inc1:= inc2; inc2:= t; t:= len1; len1:= len2; len2:= t; fi; if low2 > low1 + (len1-1)*inc1 then CLONE_OBJ( r1, [] ); return; fi; # Now low1 <= low2 <= low1 + (len1-1)*inc1 holds. # Compute the step width of the intersection, and the first point. g:= Gcdex( inc1, inc2 ); offset:= low2 - low1; if offset mod g.gcd <> 0 then CLONE_OBJ( r1, [] ); return; fi; inci:= inc1 * inc2 / g.gcd; lowi:= low2 + ( ( - g.coeff2 * offset ) mod inc1 ) * inc2 / g.gcd; # Compute the length of the intersection. dist1:= low1 + (len1-1)*inc1 - lowi; dist2:= low2 + (len2-1)*inc2 - lowi; if dist1 < dist2 then disti:= dist1; else disti:= dist2; fi; if disti < 0 then CLONE_OBJ( r1, [] ); return; fi; leni:= Int( disti / inci ); CLONE_OBJ( r1, [ lowi, lowi + inci .. lowi + leni * inci ] ); end ); From sal at cs.st-and.ac.uk Wed Jul 23 11:39:32 2008 From: sal at cs.st-and.ac.uk (Steve Linton) Date: Wed Jul 23 11:39:55 2008 Subject: [GAP Forum] Jenks Prize 2008 Message-ID: <20080723123932.2c2c8f2f@cs.st-and.ac.uk> Dear GAP Forum, You may be interested to know that during the current ISSAC 2008 conference in Linz "The GAP Group" was awarded the biannual "Richard Dimick Jenks Memorial Prize" for Excellence in Software Engineering Applied to Computer Algebra ( see http://www.sigsam.org/awards/jenks/ ). The prize was received by Steve Linton, Alexander Konovalov and Frank Luebeck on behalf of the whole GAP development and support community, a point that was emphasised in our brief responses. With the prize we got 4 plaques as shown here: http://www.math.rwth-aachen.de/~Frank.Luebeck/tmp/pl1.jpg We will keep these in the current four GAP centres in the name of *all* contributors to GAP. Steve, Alexander and Frank. -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 The University is a charity registered in Scotland : No SC013532 From Mathieu.Dutour at ens.fr Fri Jul 25 12:13:28 2008 From: Mathieu.Dutour at ens.fr (Mathieu Dutour) Date: Fri Jul 25 12:14:02 2008 Subject: [GAP Forum] Debugging advice needed Message-ID: <20080725111328.GA3421@orge.ens.fr> Dear all, I experienced a bug in a computation: ---------------------------------------------- Error, lies not in group defined by called from ExponentsOfPcElement( pcgs, pcgs[n] ^ p ) called from PermpcgsPcGroupPcgs( pcgs, IndicesEANormalSteps( pcgs ), false ) called from IsomorphismPcGroup( G ) called from MinimalGeneratingSet( G ) called from SmallGeneratingSet( GrpStab ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> GRP:=Group(GeneratorsOfGroup(GrpStab)); Syntax error: warning: unbound global variable in *errin* line 1 GRP:=Group(GeneratorsOfGroup(GrpStab)); ^ brk> SmallGeneratingSet(GRP); [ (1,2)(3,7)(4,8)(5,9)(6,10)(11,13)(12,15)(14,16)(19,20)(21,22)(23,25)(24,26), (1,2)(3,7)(4,8)(5,9)(6,10)(11,13)(12,15)(14,16)(17,18)(19,20)(21,22)(23, 25)(24,26)(27,28)(29,30), (1,2)(3,7)(4,8)(5,9)(6,10)(11,13)(12,15)(14, 16)(17,31)(18,32)(19,25)(20,23)(21,26)(22,24)(27,30)(28,29), (1,10)(2,6)(3,8)(4,7)(17,18)(19,26)(20,24)(21,23)(22,25)(27,28)(29,30)(31, 32), (1,11)(2,13)(4,8)(5,10)(6,9)(14,16)(17,24,18,26)(19,27)(20,28)(21, 31)(22,32)(23,29,25,30), (1,16)(2,14)(3,10)(4,13)(5,15)(6,7)(8,11)(9, 12)(17,32,18,31)(19,29,20,30)(21,24)(22,26)(23,27)(25,28) ] brk> GRP=GrpStab; true brk> ------------------------------------------------------- So, "GRP" and "GrpStab" have different behavior but are tested to be equal. What could be the cause of the problem? I never encountered this since so far in my years of use of GAP, when a program stops, the reason is clear. The problem is reproducible but with many subprograms to put before getting to the problem and so I can't put it here. If that is relevant the problem show up on gap4r4p10 with gcc compilers on x86 32 bits machine. Any advice or help welcomed. Thanks, Mathieu From mathpn59 at yahoo.com Tue Jul 29 10:00:21 2008 From: mathpn59 at yahoo.com (Takjk Taj) Date: Tue Jul 29 10:01:30 2008 Subject: [GAP Forum] (no subject) Message-ID: <798939.1500.qm@web44809.mail.sp1.yahoo.com> Dear Gap forum, Hi, Could any body?give me an example of?group G, such that derived subgroup G and factor group G/Z(G)?are finite and infinite respectively. Best Regards. From vince at math.uconn.edu Tue Jul 29 11:55:32 2008 From: vince at math.uconn.edu (Vince Giambalvo) Date: Tue Jul 29 11:55:56 2008 Subject: [GAP Forum] (no subject) In-Reply-To: <798939.1500.qm@web44809.mail.sp1.yahoo.com> References: <798939.1500.qm@web44809.mail.sp1.yahoo.com> Message-ID: Well I am sure this is not what you meant, but how about the integers? Vince On Jul 29, 2008, at 5:00 AM, Takjk Taj wrote: > Dear Gap forum, > Hi, > Could any body give me an example of group G, such that derived > subgroup G and factor group G/Z(G) are finite and infinite > respectively. > Best Regards. > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From nagyg at math.u-szeged.hu Tue Jul 29 13:12:15 2008 From: nagyg at math.u-szeged.hu (=?ISO-8859-2?Q?Nagy_G=E1bor?=) Date: Tue Jul 29 13:12:38 2008 Subject: [GAP Forum] (no subject) In-Reply-To: <798939.1500.qm@web44809.mail.sp1.yahoo.com> References: <798939.1500.qm@web44809.mail.sp1.yahoo.com> Message-ID: <488F091F.90906@math.u-szeged.hu> Hi, You can take an infinite central product of the dihedral group of order 8. Then |G'|=|Z(G)|=2. G Abelian is no good since G/Z(G) is then trivial. Bye, Gabor Takjk Taj wrote: > Dear Gap forum, > Hi, > Could any body give me an example of group G, such that derived subgroup G and factor group G/Z(G) are finite and infinite respectively. > Best Regards. > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From dennis at rkd.math.cornell.edu Fri Aug 1 22:20:02 2008 From: dennis at rkd.math.cornell.edu (R. Keith Dennis) Date: Sat Aug 2 22:20:59 2008 Subject: [GAP Forum] saved output & SizeScreen? Message-ID: <200808012120.m71LK24X027606@rkd.math.cornell.edu> I have two questions: How can I turn off "SizeScreen"? That is, I'd like output to be one long line containing no newline characters & no \ . If I try, for example, SizeScreen([10000,]), it gets set to 256. gap> SizeScreen([10000,]);; gap> SizeScreen(); [ 256, 28 ] I find it a bit strange that I can't find a direct way to simply turn of the "for the screen" formatting totally. I assume that there is one. Also is there a way to remove the spaces from the output? As far as I can tell, if results are read back into gap, omission of spaces causes no problems. At the moment I must write a result to a file & use a perl script to fix things. This is surely the wrong way to do it. Presumably I can do it directly in gap, but it seems a bit odd that I can't find a way to simply avoid the problems in the first place. Is there one? Thanks. Keith From switzel at mathematik.tu-darmstadt.de Wed Aug 6 13:41:09 2008 From: switzel at mathematik.tu-darmstadt.de (Stefan Witzel) Date: Wed Aug 6 13:41:24 2008 Subject: [GAP Forum] Sortex( list, func ) Message-ID: <20080806124109.GA16226@mathematik.tu-darmstadt.de> Hello, is there a reason why the versions Sort and SortParallel exist with an optional Argument func which permits to define an own comparison function while for Sortex and SortingPerm such a version does not exist? And if so, is there a simple way to obtain what SortingPerm(ConjugacyClasses, cmp) would do (for a given function cmp) if there were such a version? Thanks for any suggestions! Stefan Witzel From elahehkhamseh at gmail.com Wed Aug 6 15:42:02 2008 From: elahehkhamseh at gmail.com (Elaheh khamseh) Date: Wed Aug 6 15:42:14 2008 Subject: [GAP Forum] question Message-ID: Can i find the groups have only identity automorphism? From ahulpke at gmail.com Wed Aug 6 17:39:43 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed Aug 6 17:40:16 2008 Subject: [GAP Forum] Sortex( list, func ) In-Reply-To: <20080806124109.GA16226@mathematik.tu-darmstadt.de> References: <20080806124109.GA16226@mathematik.tu-darmstadt.de> Message-ID: <21E1FF19-6F8B-4B71-B2D6-0131879469F3@gmail.com> Dear Forum, > is there a reason why the versions Sort and SortParallel exist with > an optional Argument func which permits to define an own comparison > function while for Sortex and SortingPerm such a version does not > exist? There is no fundamental reason for this (and in the next release such functionality will be available), the most likely reason is that it can be easily emulated, see below. > > And if so, is there a simple way to obtain what > > SortingPerm(ConjugacyClasses, cmp) > > would do (for a given function cmp) if there were such a version? Yes. You can use `SortParallel' to build a permutation (in fact this is what `Sortex' does internally): gap> l:=[6,2,9,4,5]; gap> pos:=[1..Length(l)]; # list of positions gap> SortParallel(l,pos,function(a,b) return a>b;end); # reverse sorting function gap> l; [ 9, 6, 5, 4, 2 ] Now `PermList(pos)' is the inverse of permutation that will do the same sort: gap> l:=[6,2,9,4,5]; # old list again gap> Permuted(l,PermList(pos)^-1); [ 9, 6, 5, 4, 2 ] All the best, Alexander Hulpke > From frank.luebeck at math.rwth-aachen.de Thu Aug 7 00:13:02 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu Aug 7 00:13:21 2008 Subject: [GAP Forum] saved output & SizeScreen? In-Reply-To: <200808012120.m71LK24X027606@rkd.math.cornell.edu> References: <200808012120.m71LK24X027606@rkd.math.cornell.edu> Message-ID: <20080806231302.GC11698@beteigeuze> On Fri, Aug 01, 2008 at 05:20:02PM -0400, R. Keith Dennis wrote: > I have two questions: > > How can I turn off "SizeScreen"? That is, I'd like output to be one > long line containing no newline characters & no \ . If I try, for > example, SizeScreen([10000,]), it gets set to 256. > > gap> SizeScreen([10000,]);; > gap> SizeScreen(); > [ 256, 28 ] > > I find it a bit strange that I can't find a direct way to simply turn > of the "for the screen" formatting totally. I assume that there is one. Dear Keith, dear Forum, The values you give to SizeScreen should reflect the actual size of your terminal in which GAP is running. This info is used in various ways by GAP for input (if you type in long lines) and output formatting. The current behaviour of SizeScreen looks sensible to me. What you are actually asking here is how to print something to any stream (file, string stream, the screen, ...) without GAP's line formatting magic. For this you can use SetPrintFormattingStatus(stream, bool). For example, to get something printed to your screen without formatting: displ := OutputTextUser(); SetPrintFormattingStatus(displ, false); PrintTo(displ, 13^1313); But note that just Print(13^1313); will do the formatting, because currently there is no command in GAP to change the PrintFormattingStatus of the default output stream that is created during startup. (But I think we can provide such possibility in future versions of GAP.) > Also is there a way to remove the spaces from the output? As far as I > can tell, if results are read back into gap, omission of spaces causes > no problems. If you are using GAP's Print function for, say permutations or lists, these have their spaces after the commas hard coded. There is no way to change this behaviour in a running GAP. You can either write your own Print methods/functions for your objects which print less space characters. > At the moment I must write a result to a file & use a perl script to > fix things. This is surely the wrong way to do it. Presumably I can > do it directly in gap, but it seems a bit odd that I can't find a way > to simply avoid the problems in the first place. Is there one? Or you can do what you describe in a similar way in GAP, first do the printing to a string stream, and use some string manipulation before writing that string to a file or the screen: s := ""; str := OutputTextString(s, true); SetPrintFormattingStatus(str, false); # now print your stuff with PrintTo(str, ...), say PrintTo(str, Elements(SymmetricGroup(5))); CloseStream(str); # now you have everything in the string s, it is in one line, try PrintFormattedString(s); # deleting spaces can be done quite efficiently: RemoveCharacters(s, " "); # now you can write this to a file, using another quite efficient function: FileString("myfile", s); (StringFile and FileString read arbitrary (also binary) files into GAP strings and vice versa without any formatting or other processing.) Let me add two more hints in this context: If you want to print a huge number of short strings to a file or other stream, the many PrintTo's or AppendTo's can be a bit inefficient. Wrapping your printing code in a function and using PrintTo1 can improve performance considerably. Another trick in UNIX/Linux environment is to gzip files. If you want to Read("myfile.g"); and there is no myfile.g but a file myfile.g.gz instead, then GAP will silently read that file and unzip it on the fly. Files with data where you want to delete the spaces can probably be compressed by gzip by a huge factor. I hope that helps, 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 alexander.konovalov at gmail.com Fri Aug 8 11:15:39 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Fri Aug 8 11:16:11 2008 Subject: [GAP Forum] question In-Reply-To: References: Message-ID: <15197BA4-AC73-4D76-B4CF-51E17A930434@gmail.com> On 6 Aug 2008, at 15:42, Elaheh khamseh wrote: > Can i find the groups have only identity automorphism? Dear Elaneh Khamseh, In GAP, for a finite group you can construct its automorphism group and then you may see if it is trivial or not. For example, gap> G:=CyclicGroup(3); gap> Size(AutomorphismGroup(G)); 2 so here Aut(G) is not trivial. It is easy to see without GAP that the group of order two has trivial automorphism group. This can be demonstrated in GAP as below: gap> G:=CyclicGroup(2); gap> Size(AutomorphismGroup(G)); 1 It is an easy exercise to prove that there are no other non-trivial (finite and infinite) groups with this property. Hope this helps. Best wishes, Alexander From p.j.cameron at qmul.ac.uk Fri Aug 8 12:27:17 2008 From: p.j.cameron at qmul.ac.uk (Peter Cameron) Date: Fri Aug 8 12:27:44 2008 Subject: [GAP Forum] question In-Reply-To: <15197BA4-AC73-4D76-B4CF-51E17A930434@gmail.com> References: <15197BA4-AC73-4D76-B4CF-51E17A930434@gmail.com> Message-ID: <20080808112717.GA19899@mrcpc42.maths.qmul.ac.uk> On Fri, Aug 08, 2008 at 11:15:39AM +0100, Alexander Konovalov wrote: > It is an easy exercise to prove that there are no other non-trivial > (finite and infinite) groups with this property. > This assumes the Axiom of Choice (so maybe not such an easy exercise...) Peter Cameron. From laurent.bartholdi at gmail.com Fri Aug 8 14:35:05 2008 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Fri Aug 8 14:35:18 2008 Subject: [GAP Forum] question In-Reply-To: <20080808112717.GA19899@mrcpc42.maths.qmul.ac.uk> References: <15197BA4-AC73-4D76-B4CF-51E17A930434@gmail.com> <20080808112717.GA19899@mrcpc42.maths.qmul.ac.uk> Message-ID: <1ff637850808080635s50b59c73ocd7fbea069defdbf@mail.gmail.com> On Fri, Aug 8, 2008 at 1:27 PM, Peter Cameron wrote: > On Fri, Aug 08, 2008 at 11:15:39AM +0100, Alexander Konovalov wrote: >> It is an easy exercise to prove that there are no other non-trivial >> (finite and infinite) groups with this property. >> > This assumes the Axiom of Choice (so maybe not such an easy exercise...) ... and furthermore probably a homework exercise... -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 Station 8 \ Secr?taire: +41 21-6935471 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 Home address: http://microurl.org/10, http://microurl.org/16 From b-eide at juno.com Wed Aug 13 19:19:10 2008 From: b-eide at juno.com (b-eide@juno.com) Date: Wed Aug 13 19:21:09 2008 Subject: [GAP Forum] element in ideal Message-ID: <20080813.141910.3131.0@webmail18.dca.untd.com> Is there a command in GAP which will tell me if a particular element is in a given ideal? Thanks, in advance, for any help with this. -Becky ____________________________________________________________ Discount Online Trading - Click Now! http://thirdpartyoffers.juno.com/TGL2131/fc/Ioyw6iiejgTHjjBCGbuanYb1D6yuoonbGjGtA1ILQtrIVItFNtxwqJ/ From b-eide at juno.com Thu Aug 21 06:59:34 2008 From: b-eide at juno.com (b-eide@juno.com) Date: Thu Aug 21 07:01:31 2008 Subject: [GAP Forum] element in ideal (more specific) Message-ID: <20080821.015934.21400.0@webmail17.dca.untd.com> >I was asked to be more specific about my "element in ideal" question: >This is what I am trying to do: > I have a matrix group with 3 generators (3 by 3 matrices), G. > Then R is the Group Ring over the integers, > R:=GroupRing(Integers,G); > Then I have > emb:=Embedding(G,R); > so that I could create 4 elements in R such as, > R3:=A^emb+B^emb+C^emb; > b; > where A, B, and C are 3 by 3 matrices. > Next, I created a right ideal, I, by generators(R3,R13,R6,R10) in R, > I:=RightIdealByGenerators(R,R3,R13,R6,R10); > Finally I have 3 more elements in R which look similar to R3 and I'd like to determine if they are in the ideal I. > I tried "in": > R7 in I; > and I got the error > Error, no method found! For debuggin hints type ?Recovery from NoMethodFound. > Error, no 1st choice method found for 'Basis' on 1 arguments called from NiceBasis(B) called from BasisVectors(MB!.immutableBasis ) called from BasisVectors(MB) called from NrBasisVectors(MB) called from... If GAP cannot do this, does anyone know a software package that will? Thanks. ____________________________________________________________ Easy-to-use, advanced features, flexible phone systems. Click here for more info. http://thirdpartyoffers.juno.com/TGL2131/fc/Ioyw6iig7RVHJ7i0CJpRJOkJavN7q3YVpNp4mQfNazOc2ygXUO6NKZ/ From ahulpke at gmail.com Fri Aug 22 22:10:11 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Fri Aug 22 22:10:31 2008 Subject: [GAP Forum] element in ideal (more specific) In-Reply-To: <20080821.015934.21400.0@webmail17.dca.untd.com> References: <20080821.015934.21400.0@webmail17.dca.untd.com> Message-ID: Dear Forum, b-eide (no real name given) asked: >> I was asked to be more specific about my "element in ideal" >> question: >This is what I am trying to do: > >> I have a matrix group with 3 generators (3 by 3 matrices), G. >> Then R is the Group Ring over the integers, >> R:=GroupRing(Integers,G); >> Then I have >> emb:=Embedding(G,R); >> so that I could create 4 elements in R such as, >> R3:=A^emb+B^emb+C^emb; >> b; >> where A, B, and C are 3 by 3 matrices. >> Next, I created a right ideal, I, by generators(R3,R13,R6,R10) in R, >> I:=RightIdealByGenerators(R,R3,R13,R6,R10); Presumably RightIdealByGenerators(R,[R3,R13,R6,R10]); >> >> Finally I have 3 more elements in R which look similar to R3 and >> I'd like to > determine if they are in the ideal I. >> I tried "in": >> R7 in I; >> and I got the error >> Error, no method found! For debuggin hints type ?Recovery from >> NoMethodFound. >> Error, no 1st choice method found for 'Basis' on 1 arguments called >> from > NiceBasis(B) called from BasisVectors(MB!.immutableBasis ) called > from BasisVectors(MB) > called from NrBasisVectors(MB) called from... > > If GAP cannot do this, does anyone know a software package that will? Let me describe what GAP does, and where it fails. From this it should be clear how one can test "by hand" whether an element is an ideal (Or what is needed to add functionality to make the `in' command working). GAP translates the problem into a linear algebra problem. It chooses a basis (presumably just the images of the group elements) for the algebra R. With respect to this basis every subring is simply a subspace of row vectors. To find a linear spanning set for the ideal R3, it essentially uses what is called the spinning algorithm for submodules. We assume that we have a subspace T, which is initialized to be the space spanned by the ideal generators. We now iteratively expand T. We form the products of all (linear) generators of T with all (linear) generators of R. If the product does not lie in T, we extend T with this product as new linear generator. The process ends, once all products are found to lie in T. At this point T will be the ideal R3, and we have a basis for it. Testing from membership in the ideal now is simply testing for membership in the subspace T. The problem arises, because you form the group ring over the integers. (So de facto we do not have subspaces, but only submodules.) The membership test in such a submodule is not just Gaussian elimination, but requires an Hermite normal form. This is where GAP trips up. (Actually it even trips up a moment earlier when trying to find a basis, because methods for basis are only implemented over fields.) Adding all this functionality to the system is a little bit tricky, because it would involve extending most of the vector space functionality to Z- modules. Still all the underlying machinery is available in the system. So what you could do is to construct the Z- submodule T yourself, doing membership tests using mobile forms. What you also could do is to replace Integers by Rationals your definition of R. As long as your elements are simple sums of group elements, membership in the ideal should be the same regardless over which scalar ring you are working. There is of course one further difficulty. The vector space (module) over which we are working has dimension |G|. Once this goes beyond a few 10,000 you will likely run into memory problems. I do not have a good idea how to avoid this in general. You could however replace R with an image under any representation of G. The image would be a smaller dimensional vector space, and you could test membership in this image first. A single image will give you only a necessary condition. If you use all irreducible representations of G (assuming we are working characteristic zero), I would think that one can use Wedderburn's structure theorem to patch a result together. 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 anvita21 at gmail.com Sat Aug 23 03:25:52 2008 From: anvita21 at gmail.com (Anvita) Date: Sat Aug 23 03:26:02 2008 Subject: [GAP Forum] Finite field defined with an irreducible polynomial Message-ID: <6a52effd0808221925o30e71121r792750e50ffa73d7@mail.gmail.com> Dear Forum, When a finite field is defined using an irreducible polynomial, there seems to be a problem finding the coefficients of the field's elements in the natural power bases. For example: ---------------------------------------- gap> x:=Indeterminate(GF(5),"x"); x gap> pol:=x^7+x^4+x^2-x+Z(5); x^7+x^4+x^2-x+Z(5) gap> F:=GF(GF(5),pol); gap> a:=RootOfDefiningPolynomial(F); (a) gap> t:=a^32; (Z(5)^2+Z(5)*a^2+Z(5)*a^3+Z(5)^2*a^5+a^6) ----------------------------------------- Even though "t" is displayed as a polynomial in "a", I do not know how to get hold of the corresponding coefficients, because the field "F" as a vector space does not have a basis: -------------------------------------------------------------------------------- gap>IsVectorSpace(F); true gap> b:=List([0..6],i->a^i); [ !Z(5)^0, (a), (a^2), (a^3), (a^4), (a^5), (a^6) ] gap> Basis(F,b); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `PrimitiveRoot' on 1 arguments called from PrimitiveRoot( F ) called from Basis( V ) 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> -------------------------------------------------------------------------------- Is there any way around this problem? Thank you, Anvita From e.j.postma+gap at gmail.com Sat Aug 23 15:29:38 2008 From: e.j.postma+gap at gmail.com (Erik Postma) Date: Sat Aug 23 15:29:49 2008 Subject: Fwd: [GAP Forum] Finite field defined with an irreducible polynomial In-Reply-To: References: <6a52effd0808221925o30e71121r792750e50ffa73d7@mail.gmail.com> Message-ID: On Fri, Aug 22, 2008 at 10:25 PM, Anvita wrote: > Dear Forum, > > When a finite field is defined using an irreducible polynomial, there seems > to be a problem > finding the coefficients of the field's elements in the natural power bases. > (...) > Is there any way around this problem? Hmmm. One way around it is to define the subspace generated by what we know is a basis. That will work: gap> G := Subspace(F, b); gap> Dimension(G); 7 gap> Basis(G, b); Basis( , [ !Z(5)^0, (a), (a^2), (a^3), (a^4), (a^5), (a^6) ] ) All the best, Erik. From thomas.breuer at math.rwth-aachen.de Mon Aug 25 10:26:07 2008 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Mon Aug 25 10:26:43 2008 Subject: [GAP Forum] Finite field defined with an irreducible polynomial In-Reply-To: <6a52effd0808221925o30e71121r792750e50ffa73d7@mail.gmail.com> References: <6a52effd0808221925o30e71121r792750e50ffa73d7@mail.gmail.com> Message-ID: <20080825092607.GA21820@gemma.math.rwth-aachen.de> Dear GAP Forum, Anvita () wrote: > When a finite field is defined using an irreducible polynomial, there seems > to be a problem > finding the coefficients of the field's elements in the natural power bases. > For example: > > ---------------------------------------- > gap> x:=Indeterminate(GF(5),"x"); > x > gap> pol:=x^7+x^4+x^2-x+Z(5); > x^7+x^4+x^2-x+Z(5) > gap> F:=GF(GF(5),pol); > > gap> a:=RootOfDefiningPolynomial(F); > (a) > gap> t:=a^32; > (Z(5)^2+Z(5)*a^2+Z(5)*a^3+Z(5)^2*a^5+a^6) > ----------------------------------------- > > Even though "t" is displayed as a polynomial in "a", I do not know > how to get hold of the corresponding coefficients, because the field "F" > as a vector space does not have a basis: > > -------------------------------------------------------------------------------- > gap>IsVectorSpace(F); > true > gap> b:=List([0..6],i->a^i); > [ !Z(5)^0, (a), (a^2), (a^3), (a^4), (a^5), (a^6) ] > gap> Basis(F,b); > Error, no method found! For debugging hints type ?Recovery from > [...] > > Is there any way around this problem? This problem will be fixed in the next version of GAP. Erik Postma has already proposed a workaround, which works well, but clearly it should be possible to compute a basis for the finite field itself. For the moment, reading the following code into the GAP session will add the missing functionality. InstallMethod( CanonicalBasis, "for a finite field", [ IsField and IsFinite ], function( F ) local z, B; z:= RootOfDefiningPolynomial( F ); B:= BasisNC( F, List( [ 0 .. Dimension( F ) - 1 ], i -> z ^ i ) ); SetIsCanonicalBasis( B, true ); return B; end ); (To those who are interested: If one asks for a basis of a finite field then `CanonicalBasis' is used, and the currently available method for this operation wants to use the attribute `PrimitiveRoot'. This is fine if a primitive root of the field is known, and this is the case if the field was constructed using a primitive polynomial, for example by the ``standard'' call `GF(q)'. If no primitive root of the field is known then GAP runs into the reported error, and indeed it does not make sense to look for a primitive root. In order to generalize the current `CanonicalBasis' method to other defining polynomials, it is sufficient to use `RootOfDefiningPolynomial' instead of `PrimitiveRoot'. In fact there are only few situations where one really wants to use `PrimitiveRoot'.) Thanks for reporting this problem, and sorry for the inconveniences. All the best, Thomas Breuer From vdabbagh at sfu.ca Tue Aug 26 22:40:01 2008 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Tue Aug 26 22:40:26 2008 Subject: [GAP Forum] fp groups Message-ID: <200808262140.m7QLe1dX022558@rm-rstar.sfu.ca> Dear GAP Forum, In the following example I have computed an isomorphism from a finite group G to a finitely presented group and I would like to get the list of powers of generators of the elements in the finitely presented group. Does anybody know how can I do that? For example how can I get [ [F2, -1], [F1, -1], [F2, 1], [F1, -1], [F2, 1], [F3, -1] ] corresponding to F2^-1*F1^-1*F2*F1^-1*F2*F3^-1. gap> U:=[ (1,2), (1,2,3,4,5), (5,6) ];; gap> G:=Group(U);; gap> a:=IsomorphismFpGroupByGenerators(G,U); [ (1,2), (1,2,3,4,5), (5,6) ] -> [ F1, F2, F3 ] gap> z:=Random(G)^a; F2^-1*F1^-1*F2*F1^-1*F2*F3^-1 Regards Vahid __________________________ The IRMACS Centre (ASB 10905) Simon Fraser University 8888 University Drive Burnaby, BC V5A 1S6 Canada E-mail: vdabbagh@sfu.ca http://www.sfu.ca/~vdabbagh From alexander.konovalov at gmail.com Tue Aug 26 23:10:46 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Aug 26 23:11:02 2008 Subject: [GAP Forum] fp groups In-Reply-To: <200808262140.m7QLe1dX022558@rm-rstar.sfu.ca> References: <200808262140.m7QLe1dX022558@rm-rstar.sfu.ca> Message-ID: <14189F30-2EF8-4658-A3BA-07CEE6958CC7@gmail.com> Dear Vahid, On 26 Aug 2008, at 22:40, Vahid Dabbaghian wrote: > Dear GAP Forum, > > In the following example I have computed an isomorphism from a > finite group > G to a finitely presented group and I would like to get the list of > powers > of generators of the elements in the finitely presented group. Does > anybody > know how can I do that? For example how can I get > [ [F2, -1], [F1, -1], [F2, 1], [F1, -1], [F2, 1], [F3, -1] ] > corresponding to > F2^-1*F1^-1*F2*F1^-1*F2*F3^-1. > > gap> U:=[ (1,2), (1,2,3,4,5), (5,6) ];; > gap> G:=Group(U);; > gap> a:=IsomorphismFpGroupByGenerators(G,U); > [ (1,2), (1,2,3,4,5), (5,6) ] -> [ F1, F2, F3 ] > gap> z:=Random(G)^a; > F2^-1*F1^-1*F2*F1^-1*F2*F3^-1 You may use ExtRepOfObj. For example: gap> z:=Random(G)^a; F3*F2*F1^-1*F2^-2*F1*F2 gap> ExtRepOfObj(z); [ 3, 1, 2, 1, 1, -1, 2, -2, 1, 1, 2, 1 ] See section 35.7 "The External Representation for Associative Words" of the Reference Manual for the documentation. Best wishes, Alexander From trof1984 at rambler.ru Thu Aug 28 11:04:59 2008 From: trof1984 at rambler.ru (Alex Trofimuk) Date: Thu Aug 28 11:07:58 2008 Subject: [GAP Forum] Product groups Message-ID: <169559577.1219917899.211947768.17434@mcgi56.rambler.ru> -- Dear Gap Forum. Alex Trofimuk asked: Let A and B are some subgroups of group G, A is normal in G. How to find inner product AB in G. Thank you. Alex Trofimuk. -- ???????? ??????????? ???????? ?????????? ?? ????????????! http://autorambler.ru/sellyourcar/ From b-eide at juno.com Fri Aug 29 15:31:26 2008 From: b-eide at juno.com (b-eide@juno.com) Date: Fri Aug 29 15:33:11 2008 Subject: [GAP Forum] GAP console frozen Message-ID: <20080829.103126.6430.0@webmail18.dca.untd.com> My GAP console seems to be frozen. I received the following error: exceeded the permitted memory ('-o' command line option at B!.heads := gens.heads; called from BasisVectors(B) called from... Entering break read-eval-print loop... you can 'quit' to quit to outer loop, or you can 'return to continue brk> and I typed 'return' to see if perhaps with more time, I would get a result. I was checking if an element was in an ideal. For those who read my previous posting about "element in ideal (more specific)", I changed Integers to Rationals, and was trying "gap>R4 in I;" This is the command that led to the error above. After leaving the program running overnight, it seems to be frozen. I can't Cntl C to quit, or Cntrl D to exit to the SAGE console, I can't do anything!!!! I closed the program, restarted the computer, and reopened the program with no change. Can anyone help? -Becky ____________________________________________________________ Click to find information on your credit score and your credit report. http://thirdpartyoffers.juno.com/TGL2131/fc/Ioyw6iifRxYPCB3t2fuc3AfAOjqmgjQDkKVG6xW0OOA4hyC2qDba57/ From wdjoyner at gmail.com Sat Aug 30 00:45:31 2008 From: wdjoyner at gmail.com (David Joyner) Date: Sat Aug 30 00:45:44 2008 Subject: [GAP Forum] GAP console frozen In-Reply-To: <20080829.103126.6430.0@webmail18.dca.untd.com> References: <20080829.103126.6430.0@webmail18.dca.untd.com> Message-ID: <8cf963450808291645t3deb75c9k2256ca6ae77fca7b@mail.gmail.com> On Fri, Aug 29, 2008 at 10:31 AM, b-eide@juno.com wrote: > My GAP console seems to be frozen. > > I received the following error: > exceeded the permitted memory ('-o' command line option at > B!.heads := gens.heads; > called from > BasisVectors(B) called from... > Entering break read-eval-print loop... > you can 'quit' to quit to outer loop, or > you can 'return to continue > brk> > > and I typed 'return' to see if perhaps with more time, I would get a result. > I was checking if an element was in an ideal. For those who read my previous posting about "element in ideal (more specific)", I changed Integers to Rationals, and was trying "gap>R4 in I;" This is the command that led to the error above. > After leaving the program running overnight, it seems to be frozen. I can't Cntl C to quit, or Cntrl D to exit to the SAGE console, I can't do anything!!!! I closed the program, restarted the computer, and reopened the program with no change. Can anyone help? > -Becky (It is the policy for GAP Forum questions to be answered in the Forum for the benefit of other users. The problem has been resolved off-list, but I'll roughly summarize the suggestions made by Steve Linton, William Stein and later discovered by Becky herself.) In this case, GAP was being used within VMWare. Both GAP and VMWare allow one to adjust memory allocation. For GAP, one uses the -o option, for example starting GAP from the command line by gap -o 1G On the VMWare side, you can greatly increase the amount of RAM available to the virtual machine by editing (with notepad) the .vmx file in the virtual machine folder under windows. In any case, if the program does lock up due to lack of memory, you can press ctl-C twice and GAP will respond promptly. (If you hit ctl-C once, GAP will eventually respond, but not until garbage collection has finished, which can be very slow.) > > ____________________________________________________________ > Click to find information on your credit score and your credit report. > http://thirdpartyoffers.juno.com/TGL2131/fc/Ioyw6iifRxYPCB3t2fuc3AfAOjqmgjQDkKVG6xW0OOA4hyC2qDba57/ > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From trof1984 at rambler.ru Mon Sep 8 19:51:53 2008 From: trof1984 at rambler.ru (Alex Trofimuk) Date: Mon Sep 8 19:52:20 2008 Subject: [GAP Forum] semidirect product Message-ID: <1095259222.1220899913.168314036.33948@mcgi16.rambler.ru> -- Dear GAP Forum, Alex Trofimuk asked My aim is to construct group G of odd order and |G| not divisible by p^5 for every prime p dividing |G|. Therefore DerivedLength(G)=4. For example, I found group H:= SmallGroup(1029,11) , 1029=7*7*7*3 and DerivedLength(N)=3. Let Aut:= AutomorphismGroup(H). Then I computed group B:= SylowSubgroup(Aut,3) such that |B|=9. Then I constructs G:=SemidirectProduct( B, H ), but DerivedLength(G)=3. My question : why DerivedLength(G)<>4? Thanks. Alex Trofimuk. -- ???????? ??????????? ???????? ?????????? ?? ????????????! http://autorambler.ru/sellyourcar/ From colva at mcs.st-and.ac.uk Mon Sep 15 15:30:55 2008 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Mon Sep 15 15:31:18 2008 Subject: [GAP Forum] EMS/LMS meeting and Workshop Message-ID: There will be a joint meeting of the Edinburgh Mathematical Society and the London Mathematical Society on the afternoon of Friday 12th December and the morning of Saturday 13th December in Edinburgh. The speakers and titles are: Laurent Bartholdi (Goettingen): Automatically presented groups. Martin Bridson (Oxford): Dimension, rigidity and fixed point theorems. Alain Valette (Neuchatel): The Haagerup property and its stability properties. Efim Zelmanov (UC San Diego): Asymptotic properties of finite groups and finite dimensional algebras. Immediately preceding this, a workshop on Infinite Group Theory and related topics will be held in Edinburgh from the morning of Wednesday 10th December until lunchtime on Friday 12th December. Invited speakers include: L. Bartholdi (Goettingen), T. Burness (Southampton), P. Dehornoy (Caen), B. Eick (Braunschweig), M. Geck (Aberdeen), D. Macpherson (Leeds), J. Mitchell (St Andrews), G. Pfeiffer (Galway) and T. Riley (Bristol). The invited talks will be accessible to postgraduate students, postdoctoral fellows and researchers in all areas of group theory. For more information and to register for the meeting and workshop go to http://www-groups.mcs.st-and.ac.uk/~colva/edconf.html We invite postgraduate students to submit a 1-page outline for a poster paper by email to colva@mcs.st-and.ac.uk by Friday November 14th. The five best outlines will be invited to give a short talk at the workshop, and there will be a poster paper session for all postgraduates. Organising Committee: Kenny Brown (Glasgow), Iain Gordon (Edinburgh), Jim Howie (Heriot-Watt), Tom Lenagan (Edinburgh) and Colva Roney-Dougal (St Andrews). Best wishes Colva The University of St Andrews is a charity registered in Scotland : No SC013532 From colva at mcs.st-and.ac.uk Wed Sep 17 13:44:41 2008 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Wed Sep 17 14:47:41 2008 Subject: [GAP Forum] 22nd British Combinatorial Conference Message-ID: Dear all, Preliminary registration is now open for the 22nd British Combinatorial Conference, to be held at the University of St Andrews from the 5th to the 10th of July, 2009. The invited speakers are: Arrigo Bonisoli (Universita di Modena e Reggio Emilia, Italy) Peter J Cameron (Queen Mary, University of London, UK) Willem H Haemers (Tilburg University, The Netherlands) Gholamreza B Khosrovshahi (IPM, Iran) Alexandr V Kostochka (University of Illinois at Urbana-Champaign, USA) Daniela Kuhn (University of Birmingham, UK) Marc Noy (Universitat Politecnica de Catalunya, Spain) Oliver Riordan (University of Oxford, UK) Gordon Royle (University of Western Australia) Programme: The speakers above will each give a 1 hour talk. These talks are intended to be accessible to postgraduate students, postdoctoral fellows, and researchers in all areas of combinatorics. In addition, participants are invited to give a talk of 20 minutes on any combinatorial topic. A problem session will be held on the last day. The conference and accommodation will be at the University of St Andrews. Social Programme: There will be a wide-ranging social programme, including a conference banquet, an excursion and a musical evening. Organising Committee: Sophie Huczynska, James Mitchell and Colva Roney-Dougal. email: bcc2009@mcs.st-and.ac.uk Web site: http://bcc2009.mcs.st-and.ac.uk/ Best wishes Colva Roney-Dougal, on behalf of the organisers. The University of St Andrews is a charity registered in Scotland : No SC013532 From mathpn59 at yahoo.com Wed Sep 17 21:17:24 2008 From: mathpn59 at yahoo.com (Takjk Taj) Date: Wed Sep 17 21:17:55 2008 Subject: [GAP Forum] Request Message-ID: <147318.90155.qm@web44812.mail.sp1.yahoo.com> Dear Forum, I have question about GAP. If N, K are normal subgroup and subgroup of Group G respectively, how we can calculate semi direct product N and K. Thanks From andyp at math.mit.edu Thu Sep 18 05:54:17 2008 From: andyp at math.mit.edu (Andrew Putman) Date: Thu Sep 18 05:54:32 2008 Subject: [GAP Forum] First cohomology question Message-ID: Dear GAP Forum, For some work I've been doing recently, I need to know the following. Let p be a prime and let g>1. Denote by Sp(2g,Z/pZ) the symplectic group over Z/pZ and by V(2g,Z/pZ) the symplectic Lie algebra over Z/pZ with the adjoint action of Sp(2g,Z/pZ). I need to calculate H^1(Sp(2g,Z/pZ),V(2g,Z/pZ)) for some small p and g (it is known for large p and g). I am under the impression that GAP can do this, but I am having trouble figuring out how to do it. I can figure it out for simpler representations of Sp(2g,Z/pZ), like the standard one on (Z/pZ)^{2g}, but I can't figure out how to get the adjoint representation. Thank you very much for any help! best, Andy Putman From alice at maths.uwa.edu.au Mon Sep 22 13:08:25 2008 From: alice at maths.uwa.edu.au (alice) Date: Mon Sep 22 15:00:20 2008 Subject: [GAP Forum] GCC09 in Perth Message-ID: <48D78AB9.8000406@maths.uwa.edu.au> *2nd Announcement for the international conference:* *Group Theory, Combinatorics and Computation 2009* *in Perth, Western Australia, 5-16 January 2009.* ------------------------------------------------------------------------ This AMSI special theme programme will be held over two weeks. *Week 1*: An international conference in honour of Professor Praeger's 60th birthday. It will contain invited 1 hour talks and short contributed talks by participants. *Week 2:* An informal week of short courses, workshops and problem sessions, especially beneficial to early career researchers and postgraduate students. For more information please visit http://sponsored.uwa.edu.au/gcc09 (Please do not use Internet Explorer 6) ------------------------------------------------------------------------ * * *Re**gistration:* * *We now invite participants to register online at our web site. Early Bird registration closes on *31 October 2008.* The organisers. gcc09@maths.uwa.edu.au From alexander.konovalov at gmail.com Tue Sep 23 10:57:32 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Sep 23 10:58:09 2008 Subject: [GAP Forum] XGAP and cygwin In-Reply-To: <000d01c8a085$a702eb20$f508c160$@lauri@um.edu.mt> References: <000d01c8a085$a702eb20$f508c160$@lauri@um.edu.mt> Message-ID: Dear Josef, dear GAP Forum, The question below seems still unanswered in the Forum, and I think posting an answer here may be useful for the Forum community even if Josef (I hope!) already solved this problem. Before starting xgap, first you need to build its binaries. Start Cygwin shell, go to the gap4r4/pkg/xgap directory of your GAP installation, and enter the following commands: ./configure make Then you need to start XGAP in X Windows, what you should be able to do in a fairly complete Cygwin installation. Launch XTerm (it may require starting X-Server separately first, or X-Server may be started automatically when you call XTerm, dependently on the particular setup), and then run gap4r4/pkg/xgap/bin/xgap.sh to start XGAP. Best wishes, Alexander On 17 Apr 2008, at 13:22, Josef Lauri wrote: > Hello, > > > > I have installed gap under cygwin (running windows vista). > Installation and > compilation ran well and functions which could not run under my > previous > windows installation of gap are now running fine. But I am having > problems > with xgap. When I call RequirePackage("xgap"); gap returns with the > message > "fail". > > > > I would appreciate any tips. > > > > Thank you. > > > > Josef Lauri > > University of Malta From josef.lauri at um.edu.mt Tue Sep 23 12:30:25 2008 From: josef.lauri at um.edu.mt (Josef Lauri) Date: Tue Sep 23 12:31:14 2008 Subject: [GAP Forum] XGAP and cygwin In-Reply-To: References: <000d01c8a085$a702eb20$f508c160$@lauri@um.edu.mt> Message-ID: <48D8D351.9030705@um.edu.mt> Thanks Alexander. I tried it and it works. But now I have decided to install Linux (kubuntu) and only use windows if I really need it under a virtual machine. Everything is now working much better for me. But for anyone who needs to remain with windows and run GAP I can recommend cygwin. Even though you do get a message like "unix binaries not installed" or "some functions which need Unix will not run", like those parts of GRAPE which use nauty, they actually do run! josef Alexander Konovalov wrote: > Dear Josef, dear GAP Forum, > > The question below seems still unanswered in the Forum, and I think > posting an answer here may be useful for the Forum community even > if Josef (I hope!) already solved this problem. > > Before starting xgap, first you need to build its binaries. Start > Cygwin shell, go to the gap4r4/pkg/xgap directory of your GAP > installation, and enter the following commands: > > ./configure > make > > Then you need to start XGAP in X Windows, what you should be able > to do in a fairly complete Cygwin installation. Launch XTerm (it > may require starting X-Server separately first, or X-Server may > be started automatically when you call XTerm, dependently on the > particular setup), and then run gap4r4/pkg/xgap/bin/xgap.sh to > start XGAP. > > Best wishes, > Alexander > > > On 17 Apr 2008, at 13:22, Josef Lauri wrote: > >> Hello, >> >> >> >> I have installed gap under cygwin (running windows vista). >> Installation and >> compilation ran well and functions which could not run under my previous >> windows installation of gap are now running fine. But I am having >> problems >> with xgap. When I call RequirePackage("xgap"); gap returns with the >> message >> "fail". >> >> >> >> I would appreciate any tips. >> >> >> >> Thank you. >> >> >> >> Josef Lauri >> >> University of Malta > From vkv at cs.utexas.edu Fri Sep 26 09:58:23 2008 From: vkv at cs.utexas.edu (Vinod K. Valsalam) Date: Fri Sep 26 09:58:33 2008 Subject: [GAP Forum] Maximal subgroups of non-representatives in lattice Message-ID: <878wtfz3kg.wl%vkv@cs.utexas.edu> Dear GAP forum, In the subgroup lattice produced by LatticeSubgroups(), I can find the maximal subgroup relations among conjugacy class representatives using the function MaximalSubgroupsLattice(). However, I am also interested in the maximal subgroups of all the other elements of the class; not just those of the class representatives. In GAP 3, section 7.74 of the manual describes an easy way to display this information by setting the print level to 4 or 5: http://www.gap-system.org/Gap3/Manual3/C007S074.htm But I don't know how to get this information in GAP 4. I would greatly appreciate any help. Thank you! Best regards, Vinod Valsalam From p.j.cameron at qmul.ac.uk Fri Sep 26 10:03:31 2008 From: p.j.cameron at qmul.ac.uk (Peter Cameron) Date: Fri Sep 26 10:04:03 2008 Subject: [GAP Forum] Decomposing rational modules Message-ID: <20080926090331.GA15677@mrcpc42.maths.qmul.ac.uk> Dear Forum, Is there a simple way to decompose rational permutation modules? A quick browse of the manual suggests that one can decompose modules over finite fields (I suppose this uses the MeatAxe) but not over the rationals (which I naively thought would be easier). In particular cases one can spot a vector in each submodule and then take the sumbodule spanned by its images, but it would be nice to have something more general... Peter Cameron. From dima at ntu.edu.sg Fri Sep 26 11:26:02 2008 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Fri Sep 26 11:26:51 2008 Subject: [GAP Forum] Decomposing rational modules In-Reply-To: <20080926090331.GA15677@mrcpc42.maths.qmul.ac.uk> References: <20080926090331.GA15677@mrcpc42.maths.qmul.ac.uk> Message-ID: <668720bc0809260326s5c7b98a7vf184983f974a00cc@mail.gmail.com> Dear Peter, dear all, Is not so hard to implement the classical formulae for homogeneous components (i.e. the components that are direct sums of isomorphic copies of a particular irreducible), etc. The projectors are appropriate linear combinations of conjugacy class sums. In fact I am working at the moment on a GAP package that constructs the coherent configuration of a not necessarily transitive permutation group and computes its irreducible representations --- as a by-product one would get a decomposition of the permutation module into irreducibles... I have (re)invented an efficient way to compute the conjugacy class sums, along the way. HTH, Dima 2008/9/26 Peter Cameron : > Dear Forum, > > Is there a simple way to decompose rational permutation modules? A quick > browse of the manual suggests that one can decompose modules over finite > fields (I suppose this uses the MeatAxe) but not over the rationals > (which I naively thought would be easier). > > In particular cases one can spot a vector in each submodule and then take > the sumbodule spanned by its images, but it would be nice to have something > more general... > > Peter Cameron. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From degraaf at science.unitn.it Fri Sep 26 14:06:01 2008 From: degraaf at science.unitn.it (degraaf@science.unitn.it) Date: Fri Sep 26 14:06:26 2008 Subject: [GAP Forum] Decomposing rational modules Message-ID: <20080926150601.wc7gmia1kc0csocw@www.unitn.it> Dear Dima, Peter, All, In order to decompose a rational module, one can compute its endomorphism algebra (i.e., all linear maps that comute with the action of G). In this algebra one can find the central idempotents. (That particular step is also implemented in GAP). Those will give one the components that are direct sums of isotypical modules. However, if the endomorphism algebra contains subalgebras that are isomorphic to full matrix algebras, then one would have to find complete sets of idempotents also in those algebras. That is an extremely hard problem in general. I hope the above makes sense. All the best, Willem From dima at ntu.edu.sg Fri Sep 26 16:13:52 2008 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Fri Sep 26 16:13:59 2008 Subject: [GAP Forum] Decomposing rational modules In-Reply-To: <20080926150601.wc7gmia1kc0csocw@www.unitn.it> References: <20080926150601.wc7gmia1kc0csocw@www.unitn.it> Message-ID: <668720bc0809260813r1d99361bia7d97034c8ae87cc@mail.gmail.com> Dear Willem, Peter, all, 2008/9/26 : > Dear Dima, Peter, All, > > In order to decompose a rational module, one can > compute its endomorphism algebra (i.e., all linear maps that > comute with the action of G). In this algebra one can find the > central idempotents. (That particular step is also implemented in GAP). What I wrote coincides with this, up to terminology. As the question was about Q-modules of permutation groups, I adhered to the terminology used in this area. The endomorphism algebra in this case is known e.g. as "coherent configuration", name introduced by D.Higman (there are other names, too). It has the basis of 0-1 matrices (so-called 2-orbits) corresponding to the orbits of the group G on ordered 2-tuples, allowing for a very quick computation, not only of this basis, but of the multiplication table, too. > Those will give one the components that are direct sums of isotypical > modules. The centre of a coherent configuration of 2-orbits is generated by sums C_i=g_i^G of conjugacy classes of G. The isotypical component corresponding to an irreducible character x is given by the projection sum_i x(g_i)* C_i. Computing C_i is very quick, once 2-orbits are known, as one just has to expand C_i as a linear combination of 2-orbits (one views each 2-orbit as the adjacency matrix of a digraph, and cycles of g_i give rise to cycles in these digraphs - the rest is elementary counting) Computing a decomposition of each isotypical component into G-irreducibles can be easily done if the irreducible representation of G corresponding to this component is known. Formulae for this can be found in Serre's book "Linear representations of finite groups." Springer GTM, Vol. 42. > However, if the endomorphism algebra contains subalgebras > that are isomorphic to full matrix algebras, then one would have to > find complete sets of idempotents also in those algebras. That is an > extremely hard problem in general. Well, as I mentioned, in this case the knowledge of the complex irreducible representations of the group in question would suffice. Group theory can be very helpful sometimes ;-) Best, Dima > > I hope the above makes sense. > > All the best, > > Willem > > > > From ig at informatika.ilab.sztaki.hu Fri Sep 26 20:24:28 2008 From: ig at informatika.ilab.sztaki.hu (Gabor Ivanyos) Date: Fri Sep 26 20:24:37 2008 Subject: [GAP Forum] Decomposing rational modules In-Reply-To: <668720bc0809260813r1d99361bia7d97034c8ae87cc@mail.gmail.com> References: <20080926150601.wc7gmia1kc0csocw@www.unitn.it> <668720bc0809260813r1d99361bia7d97034c8ae87cc@mail.gmail.com> Message-ID: <20080926192428.GA14659@informatika.ilab.sztaki.hu> Dear Dima, Willem, Peter, all, > Formulae for this can be found in Serre's book "Linear representations > of finite groups." Springer GTM, Vol. 42. I think Peter was asking for decomposition over Q. Let us stress "over Q"`. I agree Willem in that it is hard in general. For finite groups it mght be ber somewhat easier than the general case, but I am not aware of any serious result supportimg this. Gabor From ahulpke at gmail.com Sat Sep 27 03:39:55 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Sat Sep 27 03:40:17 2008 Subject: [GAP Forum] Maximal subgroups of non-representatives in lattice In-Reply-To: <878wtfz3kg.wl%vkv@cs.utexas.edu> References: <878wtfz3kg.wl%vkv@cs.utexas.edu> Message-ID: <4D240D1A-26A9-48D8-8DF9-54251F3ECF7C@gmail.com> Dear GAP-Forum, Vinod Valsalam asked: > > In the subgroup lattice produced by LatticeSubgroups(), I can find the > maximal subgroup relations among conjugacy class representatives using > the function MaximalSubgroupsLattice(). However, I am also interested > in the maximal subgroups of all the other elements of the class; not > just those of the class representatives. In GAP 3, section 7.74 of > the manual describes an easy way to display this information by > setting the print level to 4 or 5: This information is not any longer available via the print level, it can however be obtained easily from the maximal subgroups information by conjugating representatives. As an example I append a function that takes a subgroup lattice and writes out the lattice structure as a graph in the .dot (graphviz) format. I'd expect that this function (which will be in the next major release) is easily adapted for other purposes. Hope this helps, 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 ############################################################################# ## #F DotFileLatticeSubgroups(,) DotFileLatticeSubgroups:=function(L,file) local cls, len, sz, max, rep, z, t, i, j, k; cls:=ConjugacyClassesSubgroups(L); len:=[]; sz:=[]; for i in cls do Add(len,Size(i)); AddSet(sz,Size(Representative(i))); od; PrintTo(file,"digraph lattice {\nsize = \"6,6\";\n"); # sizes and arrangement for i in sz do AppendTo(file,"\"s",i,"\" [label=\"",i,"\", color=white];\n"); od; sz:=Reversed(sz); for i in [2..Length(sz)] do AppendTo(file,"\"s",sz[i-1],"\"->\"s",sz[i], "\" [color=white,arrowhead=none];\n"); od; # subgroup nodes, also acccording to size for i in [1..Length(cls)] do for j in [1..len[i]] do if len[i]=1 then AppendTo(file,"\"",i,"x",j,"\" [label=\"",i,"\", shape=box];\n"); else AppendTo(file,"\"",i,"x",j,"\" [label=\"",i,"-",j,"\", shape=circle]; \n"); fi; od; AppendTo(file,"{ rank=same; \"s",Size(Representative(cls[i])),"\""); for j in [1..len[i]] do AppendTo(file," \"",i,"x",j,"\""); od; AppendTo(file,";}\n"); od; max:=MaximalSubgroupsLattice(L); for i in [1..Length(cls)] do for j in max[i] do rep:=ClassElementLattice(cls[i],1); for k in [1..len[i]] do if k=1 then z:=j[2]; else t:=cls[i]!.normalizerTransversal[k]; z:=ClassElementLattice(cls[j[1]],1); # force computation of transv. z:=cls[j[1]]!.normalizerTransversal[j[2]]*t; z:=PositionCanonical(cls[j[1]]!.normalizerTransversal,z); fi; AppendTo(file,"\"",i,"x",k,"\" -> \"",j[1],"x",z, "\" [arrowhead=none];\n"); od; od; od; AppendTo(file,"}\n"); end; From dima at ntu.edu.sg Sat Sep 27 09:53:36 2008 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sat Sep 27 09:53:45 2008 Subject: [GAP Forum] Decomposing rational modules In-Reply-To: <20080926192428.GA14659@informatika.ilab.sztaki.hu> References: <20080926150601.wc7gmia1kc0csocw@www.unitn.it> <668720bc0809260813r1d99361bia7d97034c8ae87cc@mail.gmail.com> <20080926192428.GA14659@informatika.ilab.sztaki.hu> Message-ID: <668720bc0809270153j17dcd097qde6d521d4b2e1ac9@mail.gmail.com> Dear Gabor, Willem, Peter, all, Indeed I took the Peter's question as if he didn't mind the field to be extended. But even if he did, there are tools available for dealing with Q-irreducible representations, e.g. the Artin's theorem that basically says that the character of a rational representation is a difference of permutation characters, each of the latter a direct sum of representations induced from a cyclic subgroup, and the related counting result that says that the number of irreducible Q-representations equals the number of conjugate cyclic subgroups. So it does not look completely hopeless to construct all the Q-irreducibles, if needed. Regards, Dima 2008/9/27 Gabor Ivanyos : > Dear Dima, Willem, Peter, all, >> Formulae for this can be found in Serre's book "Linear representations >> of finite groups." Springer GTM, Vol. 42. > I think Peter was asking for decomposition over Q. Let us stress "over Q"`. > I agree Willem in that it is hard in general. For finite groups it mght be ber > somewhat easier than the general case, but I am not aware of any serious > result supportimg this. > Gabor > From alexander.konovalov at gmail.com Wed Oct 1 14:55:02 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Wed Oct 1 14:55:17 2008 Subject: [GAP Forum] Counting subgroups In-Reply-To: <200807181545.m6IFjNHw028686@wali.um.ac.ir> References: <200807181545.m6IFjNHw028686@wali.um.ac.ir> Message-ID: <48743BEB-BBD9-483A-8565-6EF7BB406CD6@gmail.com> Dear Dr. Erfanian, dear GAP Forum, On 18 Jul 2008, at 17:48, erfanian wrote: > Dear Gap Forum, > I would like to know if there is a way to count all subgroups for > given group G (finite and infinite) in Gap. Thanks in advance for > any help > and comments. > Best regards, > A. Erfanian. First, the finite case. This is a hard problem in general. For example, the number of subgroups of the symmetric group of degree n is known only for very small values of n. In particular, the On-Line Encyclopedia of Integer Sequences contains the number of subgroups of S_n up to n=12 (see the sequence http://www.research.att.com/~njas/sequences/A005432). For groups of moderate size (the actual meaning of "moderate" depends a bit on the group structure; should work well for groups of orders at least of up to 10^4..10^5) the commands 'LatticeSubgroups' (if you are also interested in the relations of inclusion on the set of subgroups) or 'ConjugacyClassesSubgroups' (if the knowledge about inclusion is not required) will compute representatives of all subgroups up to conjugacy. If the group gets bigger, however, this will either run out of space or take too long to be feasible. Now, if by "count subgroups" you mean "determine the number of subgroups", you may compute the sum of orders of each conjugacy class. For example: gap> G := SymmetricGroup( 5 ); Sym( [ 1 .. 5 ] ) gap> Sum( List( ConjugacyClassesSubgroups( G ), Size ) ); 156 Also, GAP has the library of tables of marks. These tables give a compact description of subgroup lattices of groups. So *for groups in this library*, the numbers of (classes of) subgroups can be read off from the stored data. For example, the same information for S_5 can be retrieved using the following commands: gap> t := TableOfMarks( "S5" ); TableOfMarks( "S5" ) gap> Sum( LengthsTom( t ) ); 156 See the GAP reference manual for further details about tables of marks. Further, if "count" means "enumerate", you can run a loop and consider either a representative or the full list of subgroups from each class. Enumerating representatives is much faster than enumerating all subgroups in each conjugacy class (for non-abelian groups), so if you are looking for a a subgroup with certain combination of properties, first check for the class representative those properties which are conjugacy classes invariants, and then, if necessary, continue the search over the whole list of subgroups from the class. It is also advised to think whether do you really need to compute all conjugacy classes of subgroups. If you are interested only in normal or maximal subgroups, there is no need to compute all classes - use 'NormalSubgroups' or 'MaximalSubgroups' instead. Other functions to look are 'SylowSubgroup', 'HallSubgroup', 'MaximalSubgroupClassReps'. Try to use the restricting conditions to reduce the calculation (for example, p-subgroups can be found inside a Sylow subgroup). Now the infinite case. Of course, you can not really count all subgroups of an infinite group. It might be an easy theoretical fact, like for example, the description of all subgroups of (Z,+), but this is not a kind of questions to ask a computational algebra system. However, if your group is pc-presented, you may use the GAP package "polycyclic" to compute certain families of its subgroups, using its functions - MaximalSubgroupClassesByIndex( U, p ) - LowIndexSubgroupClasses( U, n ) - LowIndexNormals( U, n ) See the manual of the "polycyclic" package for details. Finally, let me refer to such resource as the GAP Frequently Asked Questions: http://www.gap-system.org/Faq/faq.html, including section 7 and, in particular, question 7.7 "How do I get the subgroups of my group?". I used some text from that page in my answer. Best wishes, Alexander From dan_lanke at yahoo.com Tue Oct 7 16:24:25 2008 From: dan_lanke at yahoo.com (Dan Lanke) Date: Tue Oct 7 16:24:53 2008 Subject: [GAP Forum] Z/nZ x Z/nZ Message-ID: <29140.21894.qm@web45401.mail.sp1.yahoo.com> Hello, I'd like to form the group G := Z/nZ x Z/nZ. Of course I can just do G := DirectProduct(CyclicGroup(n), CyclicGroup(n)). I would like Elements(G) to give me a list of ordered pairs of cosets of nZ in Z. How do I do this? Thanks, Dan From A.Egri-Nagy at herts.ac.uk Tue Oct 7 20:05:07 2008 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Tue Oct 7 20:05:24 2008 Subject: [GAP Forum] Allocating 8G memory Message-ID: <1e16edd80810071205r6177ca79r272fae58feafd2@mail.gmail.com> Hello, I wonder what is the current situation regarding the allocation of big amount of memory for GAP? We have 8GB and Xeon 64bit processors, but there seem to be a limit around 2GB. We run GAP on Ubuntu and the linux kernel is compiled to handle the 8GB. Any ideas? Thanks! Attila From sal at cs.st-andrews.ac.uk Tue Oct 7 20:25:29 2008 From: sal at cs.st-andrews.ac.uk (Steve Linton) Date: Tue Oct 7 20:25:38 2008 Subject: [GAP Forum] Allocating 8G memory In-Reply-To: <1e16edd80810071205r6177ca79r272fae58feafd2@mail.gmail.com> References: <1e16edd80810071205r6177ca79r272fae58feafd2@mail.gmail.com> Message-ID: <20081007202529.24ba8b9f@cs.st-andrews.ac.uk> If you compile GAP in 64 bit mode (check the value of GAPInfo.BytesPerVariable it should be 8) then there should be no problem allocated 8GB of memory. how to compile in 64 bit mode and whether it is the default, depend on your C compiler setup. Steve On Tue, 7 Oct 2008 20:05:07 +0100 "Attila Egri-Nagy" wrote: > Hello, > > I wonder what is the current situation regarding the allocation of big > amount of memory for GAP? We have 8GB and Xeon 64bit processors, but there > seem to be a limit around 2GB. We run GAP on Ubuntu and the linux kernel is > compiled to handle the 8GB. > > Any ideas? > > Thanks! > Attila > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 The University is a charity registered in Scotland : No SC013532 From dan_lanke at yahoo.com Tue Oct 7 23:50:06 2008 From: dan_lanke at yahoo.com (Dan Lanke) Date: Tue Oct 7 23:50:21 2008 Subject: [GAP Forum] Subgroup stable under transposition Message-ID: <91328.91964.qm@web45410.mail.sp1.yahoo.com> Dear Gap Forum, Let A be a finite (abelian) group. How do I list all subgroups of A x A that are stable under the transposition (a,b) --> (b,a)? I know how to list all subgroup, but I don't know how to take care of the transposition condition. Many thanks, Dan From ahulpke at gmail.com Wed Oct 8 05:02:09 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed Oct 8 05:02:32 2008 Subject: [GAP Forum] Subgroup stable under transposition In-Reply-To: <91328.91964.qm@web45410.mail.sp1.yahoo.com> References: <91328.91964.qm@web45410.mail.sp1.yahoo.com> Message-ID: Dear Dan Lanke, Dear Forum, > > Let A be a finite (abelian) group. How do I list all subgroups of A > x A that are stable under the transposition (a,b) --> (b,a)? > > I know how to list all subgroup, but I don't know how to take care > of the transposition condition. You can use the routine to calculate invariant subgroups, constructing the flip as automorphism of AxA. For example: gap> A:=TransitiveGroup(8,2); # some abelian group 4[x]2 gap> D:=DirectProduct(A,A); Group([ (1,2,3,8)(4,5,6,7), (1,5)(2,6)(3,7)(4,8), (9,10,11,16) (12,13,14,15), (9,13)(10,14)(11,15)(12,16) ]) Now construct the flipper automorphism of D: gap> hom:=GroupHomomorphismByImages(D,D,Concatenation(A1gens,A2gens), > Concatenation(A2gens,A1gens)); [ (1,2,3,8)(4,5,6,7), (1,5)(2,6)(3,7)(4,8), (9,10,11,16)(12,13,14,15), (9,13)(10,14)(11,15)(12,16) ] -> [ (9,10,11,16)(12,13,14,15), (9,13)(10,14)(11,15)(12,16), (1,2,3,8) (4,5,6,7), (1,5)(2,6)(3,7)(4,8) ] gap> IsBijective(hom); true Now construct subgroups invariant under hom: s:=SubgroupsSolvableGroup(D,rec(actions:=[hom])); 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 A.Egri-Nagy at herts.ac.uk Wed Oct 8 18:45:46 2008 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Wed Oct 8 18:46:01 2008 Subject: [GAP Forum] Allocating 8G memory In-Reply-To: <20081007202529.24ba8b9f@cs.st-andrews.ac.uk> References: <1e16edd80810071205r6177ca79r272fae58feafd2@mail.gmail.com> <20081007202529.24ba8b9f@cs.st-andrews.ac.uk> Message-ID: <1e16edd80810081045w22c477a7v95bfecfd183ac621@mail.gmail.com> Yes, I actually made a stupid mistake. I installed Ubuntu Linux routinely, which means using the i386 distribution, then started to tweak the kernel and the compiler. Whereas after installing the 64bit Ubuntu (the amd64 tag is slightly misleading when you have an Intel processor) standard GAP install/compile gives the required 64bit capability. Attila On Tue, Oct 7, 2008 at 8:25 PM, Steve Linton wrote: > If you compile GAP in 64 bit mode (check the value of > GAPInfo.BytesPerVariable it should be 8) > > then there should be no problem allocated 8GB of memory. > > how to compile in 64 bit mode and whether it is the default, depend on your > C > compiler setup. > > Steve > > On Tue, 7 Oct 2008 20:05:07 +0100 > "Attila Egri-Nagy" wrote: > > > Hello, > > > > I wonder what is the current situation regarding the allocation of big > > amount of memory for GAP? We have 8GB and Xeon 64bit processors, but > there > > seem to be a limit around 2GB. We run GAP on Ubuntu and the linux kernel > is > > compiled to handle the 8GB. > > > > Any ideas? > > > > Thanks! > > Attila > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > -- > Steve Linton School of Computer Science & > Centre for Interdisciplinary Research in Computational Algebra > University of St Andrews Tel +44 (1334) 463269 > http://www.cs.st-and.ac.uk/~sal > Fax +44 (1334) 463278 > The University is a charity registered in Scotland : No SC013532 > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dan_lanke at yahoo.com Thu Oct 9 04:11:53 2008 From: dan_lanke at yahoo.com (Dan Lanke) Date: Thu Oct 9 04:12:17 2008 Subject: [GAP Forum] Symmetric bicharacters Message-ID: <924056.1451.qm@web45405.mail.sp1.yahoo.com> Dear GAP Forum, Let A be a finite abelian group. Let C^* denote the multiplicative group of non-zero complex numbers. Let Hom(A, C^*) denote the group of all homomorphisms from A to C^*. I would like to create the group of all isomorphisms f : A --> Hom(A,? C^*) that satisfy (f(a))(b) = (f(b))(a), for all? a,b \in A. Could you please point me in the right direction? Many thanks, Dan From dan_lanke at yahoo.com Thu Oct 9 16:31:51 2008 From: dan_lanke at yahoo.com (Dan Lanke) Date: Thu Oct 9 16:32:16 2008 Subject: [GAP Forum] Symmetric bicharacters In-Reply-To: Message-ID: <421068.76758.qm@web45416.mail.sp1.yahoo.com> Dear Shaun, Thanks for your? message. I think there is no isomorphism between Hom( A, Hom(A, C^*)) and Hom( A \otimes A, C^* ). There is an isomorphism between Hom(A, Hom(A,C^*)) and the group of all functions T: A x A --> C^* that are multiplicative in both components, i.e., T(ab, c) = T(a, c)T(b, c) and T(a, bc) = T(a, b)T(a,c). Am I right? My previous question is equivalent to the question: How to create the group of all non-degenerate functions T : A x A --> C^* that are multiplicative in both components such that T(a, b) = T(b, a), for all a,b \in A. Non-degenerate here means that: If T(a, b) = 1 for all b \in A, then a=identity. Thanks, Dan --- On Thu, 10/9/08, Shaun V. Ault wrote: From: Shaun V. Ault Subject: Re: [GAP Forum] Symmetric bicharacters To: dan_lanke@yahoo.com Date: Thursday, October 9, 2008, 7:36 AM Dear Dan, Perhaps you meant "homomorphisms"? Surely there are no isomorphisms f : A --> Hom(A, C^*), since there is an isomorphism on homomorphism sets: adj : Hom( A, Hom(A, C^*) ) \cong Hom( A \otimes A, C^* ), and the condition that (f(a))(b) = (f(b))(a) for all a, b in A implies that adj(f) is a homomorphism f' with the property that f'(a \otimes b) = f'(b \otimes a) for all a in A. Such an f' will not be injective unless A is trivial, and in that case, f' will not be surjective. On the other hand, the homomorphisms A --> Hom(A, C^*) with the above property can be identified with the representations A \otimes A --> GL(C) such that a \otimes b induces the same transformation on C as b \otimes a for any pair a, b in A. Unfortunately, I don't know enough representation theory to say much more about the latter. Hope this helps, Shaun V. Ault Department of Mathematics Fordham University 441 E. Fordham Rd. Bronx, NY 10458 Dan Lanke To Sent by: forum@gap-system.org forum-bounces@gap cc -system.org Subject [GAP Forum] Symmetric bicharacters 10/08/2008 11:11 PM Please respond to dan_lanke@yahoo.c om Dear GAP Forum, Let A be a finite abelian group. Let C^* denote the multiplicative group of non-zero complex numbers. Let Hom(A, C^*) denote the group of all homomorphisms from A to C^*. I would like to create the group of all isomorphisms f : A --> Hom(A,? C^*) that satisfy (f(a))(b) = (f(b))(a), for all? a,b \in A. Could you please point me in the right direction? Many thanks, Dan _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From jbohanon2 at gmail.com Thu Oct 9 18:31:45 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Oct 9 18:32:04 2008 Subject: [GAP Forum] Modified ConjugacyClassesSubgroups? Message-ID: <48EE4001.8040501@gmail.com> I am curious to know if there is either a built-in function or a way to modify the existing code to do the following: I have a group G and a subgroup H. I want to compute the conjugacy classes of subgroups H where conjugacy is taken in G, instead of H. The way I've been doing it is the following: List(ConjugacyClassesSubgroups(H),Representative); Then I manually check to see how which classes are fused in G and remove redundacies. Is there a way to get the same results without doing that? In other words, could I use the cyclic extension method, except compute the zuppos of H as conjugacy classes of G and do all the required calculations in G instead of H? Thanks Joe From hulpke at math.colostate.edu Thu Oct 9 19:08:32 2008 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Oct 9 19:08:48 2008 Subject: [GAP Forum] Modified ConjugacyClassesSubgroups? In-Reply-To: <48EE4001.8040501@gmail.com> References: <48EE4001.8040501@gmail.com> Message-ID: Dear Forum, Joe Bohanon asked: > I have a group G and a subgroup H. I want to compute the conjugacy > classes of subgroups H where conjugacy is taken in G, instead of H. > The way I've been doing it is the following: > > List(ConjugacyClassesSubgroups(H),Representative); > > Then I manually check to see how which classes are fused in G and > remove redundacies. > > Is there a way to get the same results without doing that? In other > words, could I use the cyclic extension method, except compute the > zuppos of H as conjugacy classes of G and do all the required > calculations in G instead of H? You can do so by explicitly calling the cyclic extension method, this lets you apply a further filter function. For example: gap> g:=SymmetricGroup(7); Sym( [ 1 .. 7 ] ) gap> h:=DerivedSubgroup(g); Group([ (1,3,2), (2,4,3), (3,4,5), (1,5,6,4,3), (1,3,6,7,5) ]) selector function: gap> func:=i->IsSubset(h,i); function( i ) ... end gap> l:=LatticeByCyclicExtension(g,func); gap> c:=ConjugacyClassesSubgroups(l);; gap> Length(c); 37 # check in a naive way gap> Length(ConjugacyClassesSubgroups(h)); 40 gap> Number(ConjugacyClassesSubgroups(g),i- >IsSubset(h,Representative(i))); 37 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 jbohanon2 at gmail.com Thu Oct 9 21:14:48 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Oct 9 21:15:07 2008 Subject: [GAP Forum] Modified ConjugacyClassesSubgroups? In-Reply-To: References: <48EE4001.8040501@gmail.com> Message-ID: <48EE6638.70401@gmail.com> This seems like it will get the job done, however it appears to be dependent on being able to at least find zuppos of G. For instance, say G is the Suzuki sporadic group and H is its smallest maximal subgroup (an A7). The filter doesn't apply to the zuppos, and for that group, I can imagine it would take a very long time to get all of them. Is there anything that would get lost by computing zuppos of A7 then collapsing under conjugacy in Suz? I'm specifically asking because sometimes the maximal subgroups of some simple groups have enormous rank elementary abelian subgroups with tons of subgroups that aren't conjugate in H but end up being conjugate in G. I'm just trying to save some time by testing for conjugacy in G on the front end. I had one group that was extending class 5,000 to get class 10,000, and would probably have gobbled up all memory if I'd let it. Thanks Joe Alexander Hulpke wrote: > Dear Forum, > > Joe Bohanon asked: >> I have a group G and a subgroup H. I want to compute the conjugacy >> classes of subgroups H where conjugacy is taken in G, instead of H. >> The way I've been doing it is the following: >> >> List(ConjugacyClassesSubgroups(H),Representative); >> >> Then I manually check to see how which classes are fused in G and >> remove redundacies. >> >> Is there a way to get the same results without doing that? In other >> words, could I use the cyclic extension method, except compute the >> zuppos of H as conjugacy classes of G and do all the required >> calculations in G instead of H? > > You can do so by explicitly calling the cyclic extension method, this > lets you apply a further filter function. For example: > > gap> g:=SymmetricGroup(7); > Sym( [ 1 .. 7 ] ) > gap> h:=DerivedSubgroup(g); > Group([ (1,3,2), (2,4,3), (3,4,5), (1,5,6,4,3), (1,3,6,7,5) ]) > > selector function: > > gap> func:=i->IsSubset(h,i); > function( i ) ... end > gap> l:=LatticeByCyclicExtension(g,func); > 3786 subgroups, restricted under further condition l!.func> > gap> c:=ConjugacyClassesSubgroups(l);; > gap> Length(c); > 37 > > # check in a naive way > gap> Length(ConjugacyClassesSubgroups(h)); > 40 > gap> > Number(ConjugacyClassesSubgroups(g),i->IsSubset(h,Representative(i))); > 37 > > 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 ahulpke at gmail.com Sun Oct 12 17:17:18 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Sun Oct 12 17:17:36 2008 Subject: [GAP Forum] Modified ConjugacyClassesSubgroups? In-Reply-To: <48EE6638.70401@gmail.com> References: <48EE4001.8040501@gmail.com> <48EE6638.70401@gmail.com> Message-ID: <435C7A2D-DA41-4425-8C9E-B3EA669FCBED@gmail.com> Dear Forum, Dear Joe, I first have to amend the explanation of what the routines I mentioned do: If H is not normal in G, it is not guaranteed that this approach (or any other approach that computes subgroups inductively) will find all classes of H, when working up to G-conjugacy. The reason is that two subgroups U,V of H might be conjugate in G, but not in H, and one has subgroups or supergroups in H and the other not (it has these subgroups in G, but they don't lie in H). For example take G=S6 and H=<(1,2,3,4),(1,3)(56)> (isomorphic to D8) and U=<(1,3)(2,4)>, V=<(1,3)(5,6)>. Then U is conjugate to V in G, but there is a subgroup of H, namely <(1,2,3,4)> which contains U, but V is not contained in any such subgroup of H. One can build similar examples for subgroups. I cannot see how to avoid this problem for any kind of algorithm -- this means one cannot discard G-conjugate subgroups early, but might need to extend/process them later, even if they themselves are G- conjugate. Best, Alexander On Oct 9, 2008, at 2:14 PM, Joe Bohanon wrote: > This seems like it will get the job done, however it appears to be > dependent on being able to at least find zuppos of G. For instance, > say G is the Suzuki sporadic group and H is its smallest maximal > subgroup (an A7). The filter doesn't apply to the zuppos, and for > that group, I can imagine it would take a very long time to get all > of them. Is there anything that would get lost by computing zuppos > of A7 then collapsing under conjugacy in Suz? > > I'm specifically asking because sometimes the maximal subgroups of > some simple groups have enormous rank elementary abelian subgroups > with tons of subgroups that aren't conjugate in H but end up being > conjugate in G. I'm just trying to save some time by testing for > conjugacy in G on the front end. I had one group that was extending > class 5,000 to get class 10,000, and would probably have gobbled up > all memory if I'd let it. > > Thanks > Joe From trof1984 at rambler.ru Mon Oct 13 10:20:33 2008 From: trof1984 at rambler.ru (Alex Trofimuk) Date: Mon Oct 13 10:20:56 2008 Subject: [GAP Forum] simple groups Message-ID: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru> -- Dear Gap Forum, Alex Trofimuk asked: Using function PerfectGroup(), I defined simple groups Janko J1, J2. But I can not find rank of their Sylow 2-subgroups. I used function RankPGroup(). Probably, my computer has weak power. Help me, please, to find it. How to define groups Janko J3, J4 and sporadic simple groups Mc, Ly in system Gap. Is it possible to calculate rank of their Sylow 2-subgroups? From jack at ms.uky.edu Mon Oct 13 14:46:42 2008 From: jack at ms.uky.edu (Jack Schmidt) Date: Mon Oct 13 14:46:57 2008 Subject: [GAP Forum] simple groups In-Reply-To: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru> References: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru> Message-ID: <48F35142.4020801@ms.uky.edu> PerfectGroup by default creates a finitely presented group, and the methods for calculating in finitely presented groups are slow. You can ask for a permutation group, and the calculation is very fast: gap> RankPGroup(SylowSubgroup(PerfectGroup(IsPermGroup,175560,1),2)); 3 The library of perfect groups only goes up to 10^6, but the GAP package AtlasRep makes it easy to get the other groups: gap> LoadPackage("atlasrep"); true gap> RankPGroup(SylowSubgroup(AtlasGroup("J1"),2)); 3 gap> RankPGroup(SylowSubgroup(AtlasGroup("J2"),2)); 3 gap> RankPGroup(SylowSubgroup(AtlasGroup("McL"),2)); 3 gap> Ly:=AtlasGroup("Ly"); The Lyons group does not have a small permutation representation (I believe the smallest is nearly 10 million points, but I don't have my copy of the atlas at hand). For this reason, it may be more difficult to find the Sylow subgroup. GAP will default try to find a permutation representation first, which will probably fail since many of its permutation representations are much larger than 10 million points. However, you can also consider maximal subgroups of the Lyons group that contain the Sylow 2-subgroup. One of these is 2.A11, which I believe is the double cover of A11. I think it should be clear that the rank of the Sylow 2-subgroup of A11 and 2.A11 are equal, and the rank of A11 is found from: gap> RankPGroup(SylowSubgroup(AlternatingGroup(11),2)); 3 Alternatively one can ask atlasrep again: gap> RankPGroup(SylowSubgroup(AtlasGroup("2.A11"),2)); 3 I think the notation with the lower . is supposed to be ambiguous, so one could entertain the possibility that 2 x A11 is a maximal subgroup of the Lyons group, and then the rank would be 4. I don't think this is right, but I feel safer saying the rank is either 3 or 4. Alex Trofimuk wrote: > > -- Dear Gap Forum, > Alex Trofimuk asked: > Using function PerfectGroup(), I defined simple groups Janko J1, J2. But > I can not find rank of their Sylow 2-subgroups. I used function > RankPGroup(). Probably, my computer has weak power. Help me, please, > to find it. How to define groups Janko J3, J4 and sporadic simple groups > Mc, Ly in system Gap. Is it possible to calculate rank of their Sylow > 2-subgroups? > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jbohanon2 at gmail.com Mon Oct 13 17:44:04 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Mon Oct 13 17:44:24 2008 Subject: [GAP Forum] simple groups In-Reply-To: <48F35142.4020801@ms.uky.edu> References: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru> <48F35142.4020801@ms.uky.edu> Message-ID: <48F37AD4.7060006@gmail.com> The smallest maximal subgroup of Ly has index ~ 8.8 million. Even asking GAP for the Sylow 2-subgroup of Ly is taking a long time on my faster processor. With that group you have the distinct advantage of the maximal subgroup containing your Sylow 2-subgroup being one of the groups in the Atlas with a very small permutation representation. A somewhat smaller, but still difficult, example is the O'Nan simple group. Its smallest permutation rep has degree 122760 and GAP is also struggling to pick out a Sylow 2-subgroup. As it turns out J1 is the largest maximal subgroup containing the Sylow 2-subgroup. While GAP can pick out a Sylow 2-subgroup and get its rank in about 5 seconds, I get an almost instantaneous answer if I run: gap> G:=Group(AtlasGenerators("ON",1,4).generators);; gap> small:=SmallerDegreePermutationRepresentation(G);; gap> NrMovedPoints(Image(small)); 448 gap> SylowSubgroup(Image(small),2); gap> RankPGroup(last); 3 I would say that any time you are trying to run a computation on a permutation group of largish degree, you should run SmallerDegreePermutationRepresentation and then use PreImage to get back to where you started if that's even necessary. The maximal subgroups of almost all of the sporadic groups are in the Atlas, but when you call the function I did above to get J1 as a maximal subgroup of ON, it constructs it as a subgroup under the "1st" representation that the Atlas has. Some groups don't have any permutation representation in the Atlas and many don't even have their maximal subgroups, so this doesn't work universally. Joe Jack Schmidt wrote: > > PerfectGroup by default creates a finitely presented group, and the > methods for calculating in finitely presented groups are slow. You > can ask for a permutation group, and the calculation is very fast: > > gap> RankPGroup(SylowSubgroup(PerfectGroup(IsPermGroup,175560,1),2)); > 3 > > The library of perfect groups only goes up to 10^6, but the GAP > package AtlasRep makes it easy to get the other groups: > > gap> LoadPackage("atlasrep"); > true > gap> RankPGroup(SylowSubgroup(AtlasGroup("J1"),2)); > 3 > gap> RankPGroup(SylowSubgroup(AtlasGroup("J2"),2)); > 3 > gap> RankPGroup(SylowSubgroup(AtlasGroup("McL"),2)); > 3 > gap> Ly:=AtlasGroup("Ly"); > > > The Lyons group does not have a small permutation representation (I > believe the smallest is nearly 10 million points, but I don't have my > copy of the atlas at hand). For this reason, it may be more difficult > to find the Sylow subgroup. GAP will default try to find a > permutation representation first, which will probably fail since many > of its permutation representations are much larger than 10 million > points. > > However, you can also consider maximal subgroups of the Lyons group > that contain the Sylow 2-subgroup. One of these is 2.A11, which I > believe is the double cover of A11. I think it should be clear that > the rank of the Sylow 2-subgroup of A11 and 2.A11 are equal, and the > rank of A11 is found from: > gap> RankPGroup(SylowSubgroup(AlternatingGroup(11),2)); > 3 > > Alternatively one can ask atlasrep again: > gap> RankPGroup(SylowSubgroup(AtlasGroup("2.A11"),2)); > 3 > > > I think the notation with the lower . is supposed to be ambiguous, so > one could entertain the possibility that 2 x A11 is a maximal subgroup > of the Lyons group, and then the rank would be 4. I don't think this > is right, but I feel safer saying the rank is either 3 or 4. > > > Alex Trofimuk wrote: >> >> -- Dear Gap Forum, >> Alex Trofimuk asked: >> Using function PerfectGroup(), I defined simple groups Janko J1, J2. >> But I can not find rank of their Sylow 2-subgroups. I used function >> RankPGroup(). Probably, my computer has weak power. Help me, >> please, to find it. How to define groups Janko J3, J4 and sporadic >> simple groups Mc, Ly in system Gap. Is it possible to calculate rank >> of their Sylow 2-subgroups? >> >> _______________________________________________ >> 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 > From mckay at encs.concordia.ca Mon Oct 13 18:12:11 2008 From: mckay at encs.concordia.ca (MCKAY john) Date: Mon Oct 13 18:12:20 2008 Subject: [GAP Forum] simple groups In-Reply-To: <48F37AD4.7060006@gmail.com> References: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru> <48F35142.4020801@ms.uky.edu> <48F37AD4.7060006@gmail.com> Message-ID: There is a paper by K. Harada on SYlow 2-gps of sporadics (may be mre). It is in Proc CRM/AMS ed. by McKAy & Sebbar vol 30. Jm From jroberts at ms.uky.edu Mon Oct 13 21:16:17 2008 From: jroberts at ms.uky.edu (Josh Roberts) Date: Mon Oct 13 21:16:24 2008 Subject: [GAP Forum] p-subgroups of infinite groups Message-ID: Does GAP -- Josh Roberts, Graduate Student University of Kentucky - Mathematics http://www.ms.uky.edu/~jroberts From jroberts at ms.uky.edu Mon Oct 13 21:52:18 2008 From: jroberts at ms.uky.edu (Josh Roberts) Date: Mon Oct 13 21:52:27 2008 Subject: [GAP Forum] p-subgroups of infinite groups Message-ID: Does GAP have a way to find "sylow" p subgroups of infinite groups? Basically, if I have the abelian invariants of my group, is there a way to read off the powers of a prime p? I want to get the "p-rank" of a group. Thanks, JR From bsambale at gmx.de Wed Oct 15 17:16:49 2008 From: bsambale at gmx.de (Benjamin Sambale) Date: Wed Oct 15 17:17:57 2008 Subject: [GAP Forum] groups of order 5^7 Message-ID: <48F61771.30706@gmx.de> dear forum, is it possible to construct all groups of order 5^7 in GAP? As far as I know, E.A. O'Brien and M.R. Vaughan-Lee have classified them and there is also a MAGMA code on O'Brien's Homepage. Unfortunately, I've no access to a MAGMA system. Thanks for your help. best wishes, Benjamin From beick at tu-bs.de Thu Oct 16 07:34:51 2008 From: beick at tu-bs.de (Bettina Eick) Date: Thu Oct 16 07:35:01 2008 Subject: [GAP Forum] groups of order 5^7 In-Reply-To: <48F61771.30706@gmx.de> Message-ID: Dear Benjamin, > is it possible to construct all groups of order 5^7 in GAP? As far as I > know, E.A. O'Brien and M.R. Vaughan-Lee have classified them and there > is also a MAGMA code on O'Brien's Homepage. Unfortunately, I've no > access to a MAGMA system. Thanks for your help. These groups have been implemented in the small groups library and they are available in the development version of GAP. They will be published with GAP with the next release. If you need them urgently, then please let me know and I'll send you the code as in the developement version of GAP directly. Best wishes, Bettina From dima at ntu.edu.sg Thu Oct 16 09:40:41 2008 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Thu Oct 16 09:40:50 2008 Subject: [GAP Forum] bug(s) in LogTo Message-ID: <668720bc0810160140n29df9c06qe5e5ed512e69f768@mail.gmail.com> Dear all, on Linux an attempt to LogTo to a place that is not accessable results in logging being deadlocked: LogTo(); results in LogTo: can not close the logfile at, and inability to start logging at all. Example: gap> LogTo("blah/blah"); # directory "blah" does not exist, no wonder... LogTo: cannot log to blah/blah at LOG_TO( name ); 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> # ^D pressed, then: gap> LogTo(); LogTo: can not close the logfile at CLOSE_LOG_TO( ); gap> LogTo("blah"); #I Already logging to blah/blah gap> (needless to say, the file "blah" isn't even created) Same applies to InputLogTo. Thanks for attention to this, Dima From mim_ at op.pl Thu Oct 16 12:29:06 2008 From: mim_ at op.pl (mim_@op.pl) Date: Thu Oct 16 12:29:20 2008 Subject: [GAP Forum] ComplexificationQuat Message-ID: Hi, I have found following problem with current ComplexificationQuat function for split-quaternions. Consider following code: ----------------------------------------------------- Qs:=QuaternionAlgebra(Rationals, -1, 1); bq:=Basis(Qs); imag:=bq{[2..4]}; M3Q:=MatrixAlgebra(Qs,3); bm3q:=Basis(M3Q); diag:=ListX([bm3q[1],bm3q[5],bm3q[9]], imag, \*); # 9 diagonal sym:=[bm3q[2]+bm3q[4] , bm3q[6]+bm3q[8], bm3q[3]+bm3q[7]]; asym:=[bm3q[2]-bm3q[4], bm3q[6]-bm3q[8], bm3q[3]-bm3q[7]]; V1:=Concatenation([asym[1]], List(imag, v->v*sym[1])); # 9+1..9+4 V2:=Concatenation([asym[2]], List(imag, v->v*sym[2])); V3:=Concatenation([asym[3]], List(imag, v->-v*sym[3])); bas:=Concatenation(diag, V1, V2, V3); cbas:=List(bas, x->ComplexificationQuat(x)); ------------------------------------ Now following condition LieBracket(bas[12], bas[16])=bas[18] return true. But the same condition for complexified matrices LieBracket(cbas[12], cbas[16])=cbas[18] return false !? If I create complex matrices using my function below nbas:=List(bas, x->complex_split_quat(x, bq));; then condition for complexified matrices also returns true: LieBracket(nbas[12], nbas[16])=nbas[18]. In my function I have just replaced each split quaternion with proper 2*2 real matrix. Function ComplexificationQuat use different approach, which for some reason doesn't work well. Will you consider attaching my function to GAP ? Regards, Marek # my version for split quaternions, works better than ComplexificationQuat # (c) Marek Mitros 2008-10-16 # Note: It works only for matrices with +/- base elements and zeros ! complex_split_quat:=function(m, bas) local mbas, dims, ix, mtempl, btempl, bl, res; if Length(bas)=4 then # split H matrix base 1,i,',i' mbas:=[[[1,0],[0,1]], [[0,-1],[1,0]], [[1,0],[0,-1]], [[0,1],[1,0]]]; elif Length(bas)=2 then # split C, matrix base 1,' mbas:=[[[1,0],[0,1]], [[1,0],[0,-1]]]; fi; btempl:=Concatenation(bas,[0*bas[1]], -bas); mtempl:=Concatenation(mbas,[0*mbas[1]], -mbas); dims:=DimensionsMat(m); ix:=Cartesian([1..dims[1]], [1..dims[2]]); # build template bl:=List(ix, s->[s[1],s[2], mtempl[Position(btempl, m[s[1]][s[2]])]]); res:=MatrixByBlockMatrix(BlockMatrix(bl, dims[1], dims[2])); return res; end; From chris.jefferson at comlab.ox.ac.uk Thu Oct 16 21:58:23 2008 From: chris.jefferson at comlab.ox.ac.uk (Christopher Jefferson) Date: Thu Oct 16 21:59:18 2008 Subject: [GAP Forum] Projection of Group onto subset of points Message-ID: I have a group G on the points [1..n]. I know that for some m References: Message-ID: Dear Forum, On Oct 16, 2008, at 10/16/08 2:58, Christopher Jefferson wrote: > I have a group G on the points [1..n]. I know that for some m maps the set of points [1..m] to itself. Is there an easy way I can > get G only on the points [1..m]? ActionHomomorphism(G,[1..m],OnPoints,"surjective") gives a homomorphism or simply Action(G,[1..m],OnPoints) gives the group acting on [1..m] Best, Alexander From chris.jefferson at comlab.ox.ac.uk Thu Oct 16 23:16:21 2008 From: chris.jefferson at comlab.ox.ac.uk (Christopher Jefferson) Date: Thu Oct 16 23:17:00 2008 Subject: [GAP Forum] Projection of Group onto subset of points In-Reply-To: References: Message-ID: On 16 Oct 2008, at 22:10, Alexander Hulpke wrote: > Dear Forum, > > On Oct 16, 2008, at 10/16/08 2:58, Christopher Jefferson wrote: > >> I have a group G on the points [1..n]. I know that for some m> maps the set of points [1..m] to itself. Is there an easy way I can >> get G only on the points [1..m]? > > ActionHomomorphism(G,[1..m],OnPoints,"surjective") gives a > homomorphism > or simply > Action(G,[1..m],OnPoints) > gives the group acting on [1..m] > Thanks Chris From thomas.breuer at math.rwth-aachen.de Fri Oct 17 09:27:08 2008 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Oct 17 09:27:20 2008 Subject: [GAP Forum] simple groups In-Reply-To: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru> References: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru> Message-ID: <20081017082708.GA7327@gemma.math.rwth-aachen.de> Dear GAP Forum, Alex Trofimuk had asked how one can compute the p-ranks of the Sylow p subgroups in some sporadic simple groups, and meanwhile Jack Schmidt, Joe Bohanon, and John McKay have answered this question and have given useful hints such as - reducing the problem to subgroups containing a Sylow p subgroup P for the interesting p, - factoring by normal subgroups contained in the Frattini subgroup of P, and - switching to more suitable representations when computing explicitly with groups. Let me add two remarks. 1. Jack sketched that in the case of the Sylow 2 subgroup of the Lyons group Ly, one can instead consider a maximal subgroup of odd index in Ly, and one possibility is a group called 2.A11 in the Atlas of Finite Groups (p. 174). In principle, Jack is right that this notation can be used for both the double cover of A11 and the direct product of A11 with a cyclic group of order two, according to the conventions on p. xx of the Atlas. However, most likely the Atlas would write a direct product as 2 x A11, and indeed Ly does not have a subgroup isomorphic with A11. An easy way to show this in GAP is to check whether the character tables admit a class fusion. gap> t:= CharacterTable( "Ly" );; gap> s:= CharacterTable( "A11" );; gap> PossibleClassFusions( s, t ); [ ] 2. One could alternatively use character tables instead of groups for the computations. Suppose that we are interested in the p-rank of a Sylow p subgroup P of a group G, and that we know the character table of a subgroup H of G such that P is normal in H. Then the p-rank of P can be computed from the character table of H (using the irreducible characters and the p-th power map of H), for example with the following GAP function. RankOfNormalSylowPSubgroupFromCharacterTable:= function( tbl, p ) local Psize, classes, Pclasses, Pprimeclasses, Frat; # Determine the classes that form the normal Sylow p subgroup P # of the whole group H. Psize:= First( Collected( Factors( Size( tbl ) ) ), x -> x[1] = p ); if Psize = fail then return 0; elif Psize[2] = 1 then return 1; fi; Psize:= Psize[1]^Psize[2]; classes:= SizesConjugacyClasses( tbl ); Pclasses:= First( ClassPositionsOfNormalSubgroups( tbl ), x -> Sum( classes{ x } ) = Psize ); if Pclasses = fail then # The Sylow p subgroup is not normal. return fail; fi; # Determine the H-classes that form the derived subgroup P' of P. # By Clifford's theorem, this set of classes is the intersection of # kernels of all those irreducible characters of H # whose degrees are coprime to p. Pprimeclasses:= Intersection( List( Filtered( Irr( tbl ), x -> x[1] mod p <> 0 ), ClassPositionsOfKernel ) ); # The Frattini subgroup Frat(P) of P is the normal closure (in P) # of P' and the p-th powers of elements in P. # Since Frat(P) is normal in H, # we can compute the H-classes that form the normal closure w.r.t. H. Frat:= ClassPositionsOfNormalClosure( tbl, Union( Pprimeclasses, PowerMap( tbl, p ){ Pclasses } ) ); # The p-rank is the dimension of P / Frat(P). return LogInt( Sum( classes{ Pclasses } ) / Sum( classes{ Frat } ), p ); end; The point is that several character tables of Sylow normalizers of sporadic simple groups are available in GAP's library of character tables. With the current GAP, one gets for example the following. gap> for name in AllCharacterTableNames( IsSporadicSimple, true ) do > t:= CharacterTable( name ); > n:= CharacterTable( Concatenation( name, "N2" ) ); > if n = fail then > Print( name, ": fail\n" ); > else > Print( name, ": ", > RankOfNormalSylowPSubgroupFromCharacterTable( n, 2 ), "\n" ); > fi; > od; B: fail Co1: fail Co2: 5 Co3: 4 F3+: fail Fi22: fail Fi23: fail HN: fail HS: 3 He: 4 J1: 3 J2: 3 J3: 3 J4: fail Ly: 3 M: fail M11: 2 M12: 3 M22: 3 M23: 3 M24: 4 McL: 3 ON: 3 Ru: 3 Suz: 4 Th: 4 All the best, Thomas From decamate at um.es Thu Oct 23 16:27:17 2008 From: decamate at um.es (=?ISO-8859-1?Q?=22Decanato_Fac=2E_Matem=E1ticas=22?=) Date: Thu Oct 23 22:42:35 2008 Subject: [GAP Forum] Bug in modular determinant Message-ID: <490097D5.6050106@um.es> Dear GAP Forum, I encountered the following problem when I tried to calculate the determinant of a matrix of integers modulo 27: gap> a := ZmodnZObj(1,27)*[[21,4,11,1],[0,25,11,1],[0,2,15,1],[13,19,4,1]]; [ [ ZmodnZObj( 21, 27 ), ZmodnZObj( 4, 27 ), ZmodnZObj( 11, 27 ), ZmodnZObj( 1, 27 ) ], [ ZmodnZObj( 0, 27 ), ZmodnZObj( 25, 27 ), ZmodnZObj( 11, 27 ), ZmodnZObj( 1, 27 ) ], [ ZmodnZObj( 0, 27 ), ZmodnZObj( 2, 27 ), ZmodnZObj( 15, 27 ), ZmodnZObj( 1, 27 ) ], [ ZmodnZObj( 13, 27 ), ZmodnZObj( 19, 27 ), ZmodnZObj( 4, 27 ), ZmodnZObj( 1, 27 ) ] ] gap> Determinant(a); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `MultRowVector' on 2 arguments called fr\ om MultRowVector( row2, Inverse( det ) ); called from DeterminantMatDestructive( MutableCopyMat( mat ) ) 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> ?ngel From chris.jefferson at comlab.ox.ac.uk Fri Oct 24 11:28:25 2008 From: chris.jefferson at comlab.ox.ac.uk (Christopher Jefferson) Date: Fri Oct 24 11:29:11 2008 Subject: [GAP Forum] Making a tiny GAP Message-ID: <41A490CC-590D-46A1-8AE0-E78BFE2A5625@comlab.ox.ac.uk> Hi, I've been trying to make a tiny GAP distribution to package with another program. So far my distribution contains the following: 1) The main gap executable. 2) A gzipped workspace. 3) the files 'system.g' and 'obsolete.g'. These seems sufficent to make a fully working copy of GAP, which do all the things i want to and fits in a tiny bit over 2MB. Does this seem like a reasonable thing to do, and is there anything I should watch out for? From neunhoef at mcs.st-and.ac.uk Fri Oct 24 14:29:40 2008 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Fri Oct 24 14:29:50 2008 Subject: [GAP Forum] Making a tiny GAP In-Reply-To: <41A490CC-590D-46A1-8AE0-E78BFE2A5625@comlab.ox.ac.uk> References: <41A490CC-590D-46A1-8AE0-E78BFE2A5625@comlab.ox.ac.uk> Message-ID: <20081024132940.GA7984@mcs.st-and.ac.uk> Hi Chris, On Fri, Oct 24, 2008 at 11:28:25AM +0100, Christopher Jefferson wrote: > Hi, > > I've been trying to make a tiny GAP distribution to package with another > program. > > So far my distribution contains the following: > > 1) The main gap executable. > 2) A gzipped workspace. > 3) the files 'system.g' and 'obsolete.g'. I did a similar thing some time ago. It seems that I did get away even without obsolete.g. However, I packaged bin/gap.sh and sysinfo.gap and all files "PackageInfo.g" in all the package directories. I believe that sysinfo.gap will be necessary but forgot why. Note that the online help will not work without the documentation text files. Best regards, Max. > > These seems sufficent to make a fully working copy of GAP, which do all > the things i want to and fits in a tiny bit over 2MB. > > Does this seem like a reasonable thing to do, and is there anything I > should watch out for? > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Max Neunhoeffer http://www-groups.mcs.st-and.ac.uk/~neunhoef/ > > > > > > > > > > > May the Source be with you! < < < < < < < < < < < < The University of St Andrews is a registered Scottish charity: No SC013532 From thomas.breuer at math.rwth-aachen.de Fri Oct 24 17:01:58 2008 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Oct 24 17:02:08 2008 Subject: [GAP Forum] Z/nZ x Z/nZ In-Reply-To: <29140.21894.qm@web45401.mail.sp1.yahoo.com> References: <29140.21894.qm@web45401.mail.sp1.yahoo.com> Message-ID: <20081024160158.GC12998@gemma.math.rwth-aachen.de> Dear GAP Forum, Dan Lanke wrote > I'd like to form the group G := Z/nZ x Z/nZ. Of course I can just do > G := DirectProduct(CyclicGroup(n), CyclicGroup(n)). > I would like Elements(G) to give me a list of ordered pairs of cosets of > nZ in Z. How do I do this? 1. If the main point is that the cosets of nZ in Z shall occur as group elements then the answer is that GAP does not admit this. The reason is that GAP's groups are always written *multiplicatively*, whereas the cosets of nZ in Z form an *additive* group. A way around this is to identify the cosets of nZ in Z with the elements of a (multiplicative) group of order n, to let GAP compute with this group, and to interpret the elements as the corresponding cosets where needed. (Dan had sketched this approach already.) An easy but not very efficient solution is provided by the (currently undocumented) function `AdditiveElementAsMultiplicativeElement', which wraps an additive element into a multiplicative element; the function `UnderlyingElement' then maps back to the additive element. 2. If the main point is that elements in direct products shall be represented by ordered pairs then the answer is that GAP can do this, but this approach is not very efficient. For example, a direct product of two permutation groups is better represented as a permutation group than as a group whose elements are pairs of permutations. One can force GAP to deal with pairs of group elements by constructing the pairs explicitly with the (currently undocumented) function `Tuple'. For example, the direct product of two groups of order 2 and 3, respectively, could be created as follows. gap> x:= Tuple( [ (1,2), () ] ); Tuple( [ (1,2), () ] ) gap> y:= Tuple( [ (), (1,2,3) ] ); Tuple( [ (), (1,2,3) ] ) gap> g:= Group( x, y ); Size( g ); 6 gap> x[1]; x[2]; (1,2) () I would not recommend this approach. In general, one can identify elements of direct products with pairs of the direct factors using the function `Projection', see the description of `DirectProduct' in the GAP Reference Manual. All the best, Thomas From alexander.konovalov at gmail.com Tue Oct 28 21:57:51 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Oct 28 21:58:06 2008 Subject: [GAP Forum] Bug in modular determinant In-Reply-To: <490097D5.6050106@um.es> References: <490097D5.6050106@um.es> Message-ID: <83E8656A-D0BD-41B4-B761-46332E0EC06B@gmail.com> Dear ?ngel, Thank you for reporting this. This is already fixed and will appear in the next release GAP 4.5. In the meantime you may use the following workaround, extracted from the GAP development version: InstallMethod( DeterminantMatDestructive,"nonprime residue rings", [ IsOrdinaryMatrix and CategoryCollections(CategoryCollections(IsZmodnZObjNonprime)) and IsMutable], DeterminantMatDivFree); ############################################################################# ## #M DeterminantMatDivFree( ) ## ## Division free method. This is an alternative to the fraction free method ## when division of matrix entries is expensive or not possible. ## ## This method implements a division free algorithm found in ## Mahajan and Vinay \cite{MV97}. ## ## The run time is $O(n^4)$ ## Auxillary storage size $n^2+n + C$ ## ## Our implementation has two runtime optimizations (both noted ## by Mahajan and Vinay) ## 1. Partial monomial sums, subtractions, and products are done at ## each level. ## 2. Prefix property is maintained allowing for a pruning of many ## vertices at each level ## ## and two auxillary storage size optimizations ## 1. only the upper triangular and diagonal portion of the ## auxillary storage is used. ## 2. Level information storage is reused (2 levels). ## ## This code was implemented by: ## Timothy DeBaillie ## Robert Morse ## Marcus Wassmer ## InstallMethod( DeterminantMatDivFree, "Division-free method", [ IsMatrix ], function ( M ) local u,v,w,i, ## indices a,b,c,x,y, ## temp indices temp, ## temp variable nlevel, ## next level clevel, ## current level pmone, ## plus or minus one zero, ## zero of the ring n, ## size of the matrix Vs, ## final sum V; ## graph # check that the argument is a square matrix and set the size n := Length(M); if not n = Length(M[1]) or not IsRectangularTable(M) then Error("DeterminantMatDivFree: must be a square matrix"); fi; ## initialze the final sum, the vertex set, initial parity ## and level indexes ## zero := Zero(M[1][1]); Vs := zero; V := []; pmone := (-One(M[1][1]))^((n mod 2)+1); clevel := 1; nlevel := 2; ## Vertices are indexed [u,v,i] holding the (partial) monomials ## whose sums will form the determinant ## where i = depth in the tree (current and next reusing ## level storage) ## u,v indices in the matrix ## ## Only the upper triangular portion of the storage space is ## needed. It is easier to create lower triangular data type ## which we do here and index via index arithmetic. ## for u in [1..n] do Add(V,[]); for v in [1..u] do Add(V[u],[zero,zero]); od; ## Initialize the level 0 nodes with +/- one, depending on ## the initial parity determined by the size of the matrix ## V[u][u][clevel] := pmone; od; ## Here are the $O(n^4)$ edges labeled by the elements of ## the matrix $M$. We build up products of the labels which form ## the monomials which make up the determinant. ## ## 1. Parity of monomials are maintained implicitly. ## 2. Partial sums for some vertices are not part of the final ## answer and can be pruned. ## for i in [0..n-2] do for u in [1..i+2] do ## <---- pruning of vertices for v in [u..n] do ## (maintains the prefix property) for w in [u+1..n] do ## translate indices to lower triangluar coordinates ## a := n-u+1; b := n-w+1; c := n-v+1; V[a][b][nlevel]:= V[a][b][nlevel]+ V[a][c][clevel]*M[v][w]; V[b][b][nlevel]:= V[b][b][nlevel]- V[a][c][clevel]*M[v][u]; od; od; od; ## set the new current and next level. The new next level ## is intialized to zero ## temp := nlevel; nlevel := clevel; clevel := temp; for x in [1..n] do for y in [1..x] do V[x][y][nlevel] := zero; od; od; od; ## with the final level, we form the last monomial product and then ## sum these monomials (parity has been accounted for) ## to find the determinant. ## for u in [1..n] do for v in [u..n] do Vs := Vs + V[n-u+1][n-v+1][clevel]*M[v][u]; od; od; ## Return the final sum ## return Vs; end); Then after reading this code into GAP your example works: gap> a := ZmodnZObj(1,27)*[[21,4,11,1],[0,25,11,1],[0,2,15,1], [13,19,4,1]]; [ [ ZmodnZObj( 21, 27 ), ZmodnZObj( 4, 27 ), ZmodnZObj( 11, 27 ), ZmodnZObj( 1, 27 ) ], [ ZmodnZObj( 0, 27 ), ZmodnZObj( 25, 27 ), ZmodnZObj( 11, 27 ), ZmodnZObj( 1, 27 ) ], [ ZmodnZObj( 0, 27 ), ZmodnZObj( 2, 27 ), ZmodnZObj( 15, 27 ), ZmodnZObj( 1, 27 ) ], [ ZmodnZObj( 13, 27 ), ZmodnZObj( 19, 27 ), ZmodnZObj( 4, 27 ), ZmodnZObj( 1, 27 ) ] ] gap> DeterminantMat(a); ZmodnZObj( 12, 27 ) Best wishes, Alexander On 23 Oct 2008, at 16:27, Decanato Fac. Matem?ticas wrote: > Dear GAP Forum, > > I encountered the following problem when I tried to calculate the > determinant of a matrix of integers modulo 27: > > gap> a := ZmodnZObj(1,27)*[[21,4,11,1],[0,25,11,1],[0,2,15,1], > [13,19,4,1]]; > [ [ ZmodnZObj( 21, 27 ), ZmodnZObj( 4, 27 ), ZmodnZObj( 11, 27 ), > ZmodnZObj( 1, 27 ) ], > [ ZmodnZObj( 0, 27 ), ZmodnZObj( 25, 27 ), ZmodnZObj( 11, 27 ), > ZmodnZObj( 1, 27 ) ], > [ ZmodnZObj( 0, 27 ), ZmodnZObj( 2, 27 ), ZmodnZObj( 15, 27 ), > ZmodnZObj( 1, 27 ) ], > [ ZmodnZObj( 13, 27 ), ZmodnZObj( 19, 27 ), ZmodnZObj( 4, 27 ), > ZmodnZObj( 1, 27 ) ] ] > gap> Determinant(a); > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 2nd choice method found for `MultRowVector' on 2 arguments > called fr\ > om > MultRowVector( row2, Inverse( det ) ); called from > DeterminantMatDestructive( MutableCopyMat( mat ) ) 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> > > ?ngel From jrobts at gmail.com Wed Oct 29 02:44:29 2008 From: jrobts at gmail.com (Josh Roberts) Date: Wed Oct 29 02:44:38 2008 Subject: [GAP Forum] Simplified Fp Group Message-ID: Suppose I give a finitely presented group F/R, where F:=FreeGroup("a","b",etc) and R is a list of words in "a", "b", etc. I then use TzGoGo to simplify the presentation. I can do G:=FpGroupPresentation to get the new presentation. But how can I obtain the generators and relators again? If I do f:=GeneratorsofGroup(G) for a list of the generators and r:=RelatorsOfFpGroup(G) for a list of the relators f/r gives an error. I understand that this is caused by f being a list and not actually a free group. But is there a way to build the group using the new, simplifed presentation? I want to be able to use f/r and get my group. Thanks, Josh -- Josh Roberts, Graduate Student University of Kentucky - Mathematics http://www.ms.uky.edu/~jroberts From jack at ms.uky.edu Wed Oct 29 02:59:04 2008 From: jack at ms.uky.edu (Jack Schmidt) Date: Wed Oct 29 02:59:25 2008 Subject: [GAP Forum] Simplified Fp Group In-Reply-To: References: Message-ID: <01E29C5B-E5E7-49B3-A719-0CCD159FF4FC@ms.uky.edu> You want f:=FreeGroupOfFpGroup(G); FreeGeneratorsOfFpGroup(G) gives the generators of f directly. It is equivalent to GeneratorsOfGroup(FreeGroupOfFpGroup(G)) or List(GeneratorsOfGroup(G),UnderlyingElement); On 2008-10-28, at 22:44, Josh Roberts wrote: > Suppose I give a finitely presented group F/R, where > F:=FreeGroup("a","b",etc) and R is a list of words in "a", "b", > etc. I then > use TzGoGo to simplify the presentation. I can do > G:=FpGroupPresentation to > get the new presentation. But how can I obtain the generators and > relators > again? If I do f:=GeneratorsofGroup(G) for a list of the generators > and > r:=RelatorsOfFpGroup(G) for a list of the relators f/r gives an error. > > I understand that this is caused by f being a list and not actually > a free > group. But is there a way to build the group using the new, simplifed > presentation? I want to be able to use f/r and get my group. > > Thanks, > Josh > -- > Josh Roberts, Graduate Student > University of Kentucky - Mathematics > http://www.ms.uky.edu/~jroberts > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From rm43 at evansville.edu Wed Oct 29 03:06:09 2008 From: rm43 at evansville.edu (Robert Morse) Date: Wed Oct 29 03:06:23 2008 Subject: [GAP Forum] Simplified Fp Group In-Reply-To: References: Message-ID: <1ff1501f0810282006s4cb24ffdv6ff72413c8477f15@mail.gmail.com> Dear Josh, The commands you are looking for are SimplifiedFpGroup SimplifiedFpGroup The first does the Tietze transformations and returns the simplified Fp group and the second gives an isomorphism from the original group to the simplified one. Example: gap> G := Image(IsomorphismFpGroup(DihedralGroup(8))); gap> SimplifiedFpGroup(G); gap> IsomorphismSimplifiedFpGroup(G); [ F1, F2, F3 ] -> [ F1, F2, F2^-2 ] Hope this helps. Regards, Robert F. Morse On Tue, Oct 28, 2008 at 9:44 PM, Josh Roberts wrote: > Suppose I give a finitely presented group F/R, where > F:=FreeGroup("a","b",etc) and R is a list of words in "a", "b", etc. I then > use TzGoGo to simplify the presentation. I can do G:=FpGroupPresentation to > get the new presentation. But how can I obtain the generators and relators > again? If I do f:=GeneratorsofGroup(G) for a list of the generators and > r:=RelatorsOfFpGroup(G) for a list of the relators f/r gives an error. > > I understand that this is caused by f being a list and not actually a free > group. But is there a way to build the group using the new, simplifed > presentation? I want to be able to use f/r and get my group. > > Thanks, > Josh > -- > Josh Roberts, Graduate Student > University of Kentucky - Mathematics > http://www.ms.uky.edu/~jroberts > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From alexander.konovalov at gmail.com Sat Nov 1 20:46:41 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Sat Nov 1 20:46:57 2008 Subject: [GAP Forum] bug(s) in LogTo In-Reply-To: <668720bc0810160140n29df9c06qe5e5ed512e69f768@mail.gmail.com> References: <668720bc0810160140n29df9c06qe5e5ed512e69f768@mail.gmail.com> Message-ID: Dear Dima, thank you for your message. In the next release of the GAP system both LogTo and InputLogTo must recover properly from the break loop in case of trying to create a log file in a non-accessible place. Best wishes, Alexander On 16 Oct 2008, at 09:40, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear all, > on Linux an attempt to LogTo to a place that is not accessable results > in logging being deadlocked: > LogTo(); results in > > LogTo: can not close the logfile at, and inability to start logging > at all. > > Example: > > gap> LogTo("blah/blah"); # directory "blah" does not exist, no > wonder... > LogTo: cannot log to blah/blah at > LOG_TO( name ); > 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> # ^D pressed, then: > gap> LogTo(); > LogTo: can not close the logfile at > CLOSE_LOG_TO( ); > gap> LogTo("blah"); > #I Already logging to blah/blah > gap> > > (needless to say, the file "blah" isn't even created) > > Same applies to InputLogTo. > > > Thanks for attention to this, > Dima > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From colva at mcs.st-and.ac.uk Mon Nov 10 22:45:57 2008 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Mon Nov 10 22:46:07 2008 Subject: [GAP Forum] Joint EMS/LMS meeting and Workshop Message-ID: <9FE0BFD4-911B-4F34-8A7D-5B839C56BF39@mcs.st-and.ac.uk> Dear All This is the second announcement of the Joint Edinburgh and London Mathematical Societies' Meeting on Group Theory and the pre-meeting Workshop on Infinite Group Theory and Related Topics, to be held in Edinburgh this December. I would particularly like to draw your attention to the postgraduate competition, which closes this Friday. All that is required at this time is a 1-page outline for their talk/ poster paper. Dates: The workshop will run from the morning of the 10th December to lunchtime of 12th December. The Joint Meeting is on the afternoon of the 12th December and the morning of 13th December. Location: University of Edinburgh Invited Speakers: Joint Meeting: Laurent Bartholdi; Martin Bridson; Alain Valette; Efim Zelmanov. Workshop: Laurent Bartholdi; Tim Burness; Patrick Dehornoy; Bettina Eick; Meinolf Geck; Dugald Macpherson; James Mitchell; G?tz Pfeiffer; Tim Riley. Cost: The workshop is 20 pounds (free for postgraduates). The Joint Meeting is free. We have some additional financial support for postgraduates. Postgraduate Poster Session: We invite postgraduate students to submit a 1-page outline for a poster paper by email to colva@mcs.st-and.ac.uk by Friday November 14th. The five best outlines will be invited to give a short talk at the workshop, and there will be a poster paper session for all postgraduates. For more information and to register see: http://www-groups.mcs.st- and.ac.uk/~colva/edconf.html Hope to see you in Edinburgh Colva Roney-Dougal The University of St Andrews is a charity registered in Scotland : No SC013532 From jbohanon2 at gmail.com Thu Nov 13 05:37:37 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Nov 13 05:36:01 2008 Subject: [GAP Forum] Maximal Subgroups for O(7,3) Message-ID: <491BBD21.80600@gmail.com> Sorry to those of you who get this twice. I accidentally sent it to the group pub forum first. I'm trying to get the maximal subgroups for O(7,3) and having some trouble. ATLAS 3.0 does not have them listed, but ATLAS 2.0 does have the shape and there are 7 permutation representations that can be called up by atlasrep. For each of those seven, I did the following with G set as the smallest permrep H:=Group(AtlasGenerators("O7(3)",i).generators); iso:=IsomorphismGroups(H,G); S:=Stabilizer(H,1); Then I simply ran Image(iso,S) to get the maximals corresponding to the primitive permreps. However for the two classes of G2(3), this yields conjugate maximal subgroups. In addition, I also tried to take random elements of order 2 and 3 and try to generate a G2(3), and while I was able to create many of them, none of them were out of this one conjugacy class. Am I missing something here? I don't think there is a mistake anywhere, as G2(3) is listed as having two classes in Kleidman's tables. Thanks Joe From jack at ms.uky.edu Thu Nov 13 07:08:48 2008 From: jack at ms.uky.edu (Jack Schmidt) Date: Thu Nov 13 07:09:22 2008 Subject: [GAP Forum] Maximal Subgroups for O(7,3) In-Reply-To: <491BBD21.80600@gmail.com> References: <491BBD21.80600@gmail.com> Message-ID: <221F8461-1BD0-4BE6-ABB6-BD0565F3540A@ms.uky.edu> You can use: gap> g:=AtlasGroup("O7(3)",NrMovedPoints,1080);; gap> a:=AutomorphismGroup(g);; Time of last command: 16073 ms gap> h:=Stabilizer(g,1);; gap> f:=First(GeneratorsOfGroup(a),f->NrMovedPoints(Image(f,h))=1080);; gap> k:=Image(f,h);; gap> chi1:=PermutationCharacter(g,h);; Time of last command: 3636 ms gap> chi2:=PermutationCharacter(g,k);; Time of last command: 12641 ms gap> chi1=chi2; false The paper atlas mentions that these two maximals fuse in the automorphism group, so you know something like this should work. The two conjugacy classes should occur equally often if you are sampling randomly, so your method should have worked, but this is a simple direct method. On 2008-11-13, at 00:37, Joe Bohanon wrote: > Sorry to those of you who get this twice. I accidentally sent it to > the group pub forum first. > > I'm trying to get the maximal subgroups for O(7,3) and having some > trouble. ATLAS 3.0 does not have them listed, but ATLAS 2.0 does > have the shape and there are 7 permutation representations that can > be called up by atlasrep. For each of those seven, I did the > following with G set as the smallest permrep > > H:=Group(AtlasGenerators("O7(3)",i).generators); > iso:=IsomorphismGroups(H,G); > S:=Stabilizer(H,1); > > Then I simply ran Image(iso,S) to get the maximals corresponding to > the primitive permreps. However for the two classes of G2(3), this > yields conjugate maximal subgroups. > > In addition, I also tried to take random elements of order 2 and 3 > and try to generate a G2(3), and while I was able to create many of > them, none of them were out of this one conjugacy class. > > Am I missing something here? I don't think there is a mistake > anywhere, as G2(3) is listed as having two classes in Kleidman's > tables. > > Thanks > Joe > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Thu Nov 13 07:57:27 2008 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Thu Nov 13 07:57:40 2008 Subject: [GAP Forum] Maximal Subgroups for O(7,3) In-Reply-To: <491BBD21.80600@gmail.com> References: <491BBD21.80600@gmail.com> Message-ID: <668720bc0811122357i728f7c67wdad88a7b368e2d32@mail.gmail.com> Dear Joe, I don't grok your GAP code, but the GAP generators from http://brauer.maths.qmul.ac.uk/Atlas/clas/O73/ are correct: enter them into GAP under the names given there: b11:=... #... #and then do G1:=Group(b11,b21);; G2:=Group(a11,a21);; H1:=Stabilizer(G1,1);; h:=GroupHomomorphismByImages(G1,G2,GeneratorsOfGroup(G1), GeneratorsOfGroup(G2));; gg:=List(GeneratorsOfGroup(H1),x->Image(h,x));; OrbitLengths(Group(gg),[1..1080]); [ 702, 378 ] you see that you get different classes (if they were the same, Group(gg) would fix a point) HTH, Dima if you know a representative H of G_2(3) in the original generators, a representative of the other class can be constructed by applying an outer automorphism to H. Regards, Dmitrii 2008/11/13 Joe Bohanon : > Sorry to those of you who get this twice. I accidentally sent it to the > group pub forum first. > > I'm trying to get the maximal subgroups for O(7,3) and having some trouble. > ATLAS 3.0 does not have them listed, but ATLAS 2.0 does have the shape and > there are 7 permutation representations that can be called up by atlasrep. > For each of those seven, I did the following with G set as the smallest > permrep > > H:=Group(AtlasGenerators("O7(3)",i).generators); > iso:=IsomorphismGroups(H,G); > S:=Stabilizer(H,1); > > Then I simply ran Image(iso,S) to get the maximals corresponding to the > primitive permreps. However for the two classes of G2(3), this yields > conjugate maximal subgroups. > > In addition, I also tried to take random elements of order 2 and 3 and try > to generate a G2(3), and while I was able to create many of them, none of > them were out of this one conjugacy class. > > Am I missing something here? I don't think there is a mistake anywhere, as > G2(3) is listed as having two classes in Kleidman's tables. > > Thanks > Joe From jbohanon2 at gmail.com Thu Nov 13 08:05:57 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Nov 13 08:04:17 2008 Subject: [GAP Forum] Maximal Subgroups for O(7,3) In-Reply-To: <668720bc0811122357i728f7c67wdad88a7b368e2d32@mail.gmail.com> References: <491BBD21.80600@gmail.com> <668720bc0811122357i728f7c67wdad88a7b368e2d32@mail.gmail.com> Message-ID: <491BDFE5.2000008@gmail.com> Thanks. I think I see what I was doing wrong. I'm still a bit perplexed as to why taking a random sample of 2- and 3-elements about 2000 times never produced a group in the other conjugacy class. Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear Joe, > I don't grok your GAP code, but the GAP generators from > http://brauer.maths.qmul.ac.uk/Atlas/clas/O73/ > are correct: > > enter them into GAP under the names given there: > b11:=... > #... > #and then do > G1:=Group(b11,b21);; > G2:=Group(a11,a21);; > H1:=Stabilizer(G1,1);; > h:=GroupHomomorphismByImages(G1,G2,GeneratorsOfGroup(G1), > GeneratorsOfGroup(G2));; > gg:=List(GeneratorsOfGroup(H1),x->Image(h,x));; > OrbitLengths(Group(gg),[1..1080]); > [ 702, 378 ] > > you see that you get different classes (if they were the same, Group(gg) would > fix a point) > > HTH, > Dima > > > if you know a representative H of G_2(3) in the original generators, a > representative of the other class can be constructed by applying an > outer automorphism to H. > > Regards, > Dmitrii > > 2008/11/13 Joe Bohanon : > >> Sorry to those of you who get this twice. I accidentally sent it to the >> group pub forum first. >> >> I'm trying to get the maximal subgroups for O(7,3) and having some trouble. >> ATLAS 3.0 does not have them listed, but ATLAS 2.0 does have the shape and >> there are 7 permutation representations that can be called up by atlasrep. >> For each of those seven, I did the following with G set as the smallest >> permrep >> >> H:=Group(AtlasGenerators("O7(3)",i).generators); >> iso:=IsomorphismGroups(H,G); >> S:=Stabilizer(H,1); >> >> Then I simply ran Image(iso,S) to get the maximals corresponding to the >> primitive permreps. However for the two classes of G2(3), this yields >> conjugate maximal subgroups. >> >> In addition, I also tried to take random elements of order 2 and 3 and try >> to generate a G2(3), and while I was able to create many of them, none of >> them were out of this one conjugacy class. >> >> Am I missing something here? I don't think there is a mistake anywhere, as >> G2(3) is listed as having two classes in Kleidman's tables. >> >> Thanks >> Joe >> > > From wilson at math.ohio-state.edu Tue Nov 18 18:26:05 2008 From: wilson at math.ohio-state.edu (James B. Wilson) Date: Tue Nov 18 18:26:16 2008 Subject: [GAP Forum] Extending fields of matrices. Message-ID: <492308BD.1040603@math.ohio-state.edu> V is a MeatAxe module over k=GF(p) and it is irreducible but not absolutely irreducible. How does one extend the field to the centralizing subfield of End V? I've found: MTX.IsAbsoluteIrreducible( V) and MTX.DegreeSplittingField( V) but how do I just reset the field? I would prefer to have, say, a matrix X in End V such that V is an absolutely irreducible k[X]-module, rather than an isomorphic copy of V over an isomorphic copy of k[X]. But if that is the only way it can be done, that is fine. Thanks for any help. From D.F.Holt at warwick.ac.uk Tue Nov 18 23:27:33 2008 From: D.F.Holt at warwick.ac.uk (Derek Holt) Date: Wed Nov 19 10:04:13 2008 Subject: [GAP Forum] Extending fields of matrices. In-Reply-To: <492308BD.1040603@math.ohio-state.edu> References: <492308BD.1040603@math.ohio-state.edu> Message-ID: <20081118232733.GA25660@warwick.ac.uk> Dear James, On Tue, Nov 18, 2008 at 01:26:05PM -0500, James B. Wilson wrote: > > > V is a MeatAxe module over k=GF(p) and it is irreducible but > not absolutely irreducible. > > How does one extend the field to the > centralizing subfield of End V? > > I've found: > > MTX.IsAbsoluteIrreducible( V) and > MTX.DegreeSplittingField( V) > > but how do I just reset the field? > > I would prefer to have, say, a matrix X in End V such > that V is an absolutely irreducible k[X]-module, rather > than an isomorphic copy of V over an isomorphic copy > of k[X]. But if that is the only way it can be done, that is fine. I think MTX.CentMat(V) returns the matrix X that you want. Regards, Derek Holt. From lee_bkua at yahoo.com Thu Nov 27 10:17:58 2008 From: lee_bkua at yahoo.com (Levie Bicua) Date: Thu Nov 27 10:18:29 2008 Subject: [GAP Forum] Index 4 subgroups up to conjugacy Message-ID: <83672.51980.qm@web33404.mail.mud.yahoo.com> Dear GAP forum members, ??? Thank you for accepting me in this forum. I am working on determining all the index 5 subgroups of the triangle group H=*pqr= where P,Q, and R are the sides of the triangle. To do this, I will construct all 4-colorings of the Tiling T of the plane (the triangle with sides P,Q,R is the fundamental region of T) where all elements of H effect permutations of the 4 colors {1,2,3,4}. For such colorings I defined a homomorphism pi:H->S4, D4 and V (the symmetric, dihedral, and Klein-4 group respectively) which are transitive subgroups of S4. Suppose pi:H->S4, since H=, pi is completely determined when pi(P), pi(Q) and pi(R) are specified. Since H is to permute the colors in the resulting coloring, each of P,Q,R either fixes or interchanges any two colors; i.e., each of P,Q,R can be mapped to any of the 2-cycle or products of 2-cycle element of s4. ??? If I want only the index 4 subgroups of H when pi(H)=S4, the first step would be to list all the generators of the symmetry group S4 with each generator consisting only of 3 elements from the 9 2-cyles and products of two cycles of S4 (e.g.{(12),(13),(24)},? {(13),(14)(23),(12)},?). I know that it's easier to do this using GAP but I just don't know how. Can you give me a working program or code for this? Thanks. ??? Now, suppose {pi(P),pi(Q),pi(R)} is a permutation assignment to P,Q,R that gives rise to an index 4 subgroup K in H. The entries corresponding to (1234){pi(P),pi(Q),pi(R)}(1234)^-1, (1432){pi(P),pi(Q),pi(R)}(1432)^-1, and (13)(24){pi(P),pi(Q),pi(R)}((12)(34))^-1 will respectively, yield h1Kh1^-1, h2Kh2^-1, h3Kh3^-1 (for some? h1,h2,h3 in H), conjugate subgroups of K in H. My next question is, how do I use GAP to obtain the distinct subgroups of index 4 in H up to conjugacy when pi(H)=S4?? Many thanks. Levi From lee_bkua at yahoo.com Thu Nov 27 10:27:39 2008 From: lee_bkua at yahoo.com (Levie Bicua) Date: Thu Nov 27 10:27:59 2008 Subject: [GAP Forum] subgroups of index 4 up to conjugacy Message-ID: <561814.93237.qm@web33401.mail.mud.yahoo.com> Dear GAP forum members, ??? Thank you for accepting me in this forum. I am working on determining all the index 5 subgroups of the triangle group H=*pqr= where P,Q, and R are the sides of the triangle. To do this, I will construct all 4-colorings of the Tiling T of the plane (the triangle with sides P,Q,R is the fundamental region of T) where all elements of H effect permutations of the 4 colors {1,2,3,4}. For such colorings I defined a homomorphism pi:H->S4, D4 and V (the symmetric, dihedral, and Klein-4 group respectively) which are transitive subgroups of S4. Suppose pi:H->S4, since H=, pi is completely determined when pi(P), pi(Q) and pi(R) are specified. Since H is to permute the colors in the resulting coloring, each of P,Q,R either fixes or interchanges any two colors; i.e., each of P,Q,R can be mapped to any of the 2-cycle or products of 2-cycle element of s4. ??? If I want only the index 4 subgroups of H when pi(H)=S4, the first step would be to list all the generators of the symmetry group S4 with each generator consisting only of 3 elements from the 9 2-cyles and products of two cycles of S4 (e.g.{(12),(13),(24)},? {(13),(14)(23),(12)},?). I know that it's easier to do this using GAP but I just don't know how. Can you give me a working program or code for this? Thanks. ??? Now, suppose {pi(P),pi(Q),pi(R)} is a permutation assignment to P,Q,R that gives rise to an index 4 subgroup K in H. The entries corresponding to (1234){pi(P),pi(Q),pi(R)}(1234)^-1, (1432){pi(P),pi(Q),pi(R)}(1432)^-1, and (13)(24){pi(P),pi(Q),pi(R)}((12)(34))^-1 will respectively, yield h1Kh1^-1, h2Kh2^-1, h3Kh3^-1 (for some? h1,h2,h3 in H), conjugate subgroups of K in H. My next question is, how do I use GAP to obtain the distinct subgroups of index 4 in H up to conjugacy when pi(H)=S4?? Many thanks. Levi From lee_bkua at yahoo.com Thu Nov 27 10:35:01 2008 From: lee_bkua at yahoo.com (Levie Bicua) Date: Thu Nov 27 10:35:17 2008 Subject: [GAP Forum] subgroups of index 4 up to conjugacy(corrected message) Message-ID: <395881.29273.qm@web33403.mail.mud.yahoo.com> Dear GAP forum members, ??? Thank you for accepting me in this forum. I am working on determining all the index?4 subgroups of the triangle group H=*pqr= where P,Q, and R are the sides of the triangle. To do this, I will construct all 4-colorings of the Tiling T of the plane (the triangle with sides P,Q,R is the fundamental region of T) where all elements of H effect permutations of the 4 colors {1,2,3,4}. For such colorings I defined a homomorphism pi:H->S4, D4 and V (the symmetric, dihedral, and Klein-4 group respectively) which are transitive subgroups of S4. Suppose pi:H->S4, since H=, pi is completely determined when pi(P), pi(Q) and pi(R) are specified. Since H is to permute the colors in the resulting coloring, each of P,Q,R either fixes or interchanges any two colors; i.e., each of P,Q,R can be mapped to any of the 2-cycle or products of 2-cycle element of s4. ??? If I want only the index 4 subgroups of H when pi(H)=S4, the first step would be to list all the generators of the symmetry group S4 with each generator consisting only of 3 elements from the 9 2-cyles and products of two cycles of S4 (e.g.{(12),(13),(24)},? {(13),(14)(23),(12)},?). I know that it's easier to do this using GAP but I just don't know how. Can you give me a working program or code for this? Thanks. ??? Now, suppose {pi(P),pi(Q),pi(R)} is a permutation assignment to P,Q,R that gives rise to an index 4 subgroup K in H. The entries corresponding to (1234){pi(P),pi(Q),pi(R)}(1234)^-1, (1432){pi(P),pi(Q),pi(R)}(1432)^-1, and (13)(24){pi(P),pi(Q),pi(R)}((12)(34))^-1 will respectively, yield h1Kh1^-1, h2Kh2^-1, h3Kh3^-1 (for some? h1,h2,h3 in H), conjugate subgroups of K in H. My next question is, how do I use GAP to obtain the distinct subgroups of index 4 in H up to conjugacy when pi(H)=S4?? Many thanks. Levi From e.obrien at auckland.ac.nz Sun Dec 7 00:21:32 2008 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Sun Dec 7 00:21:52 2008 Subject: [GAP Forum] Special Session on Computational Algebra, BMC/IMS Meeting April 2009 Message-ID: <493B170C.7000306@math.auckland.ac.nz> Dear Colleagues, A joint meeting of the British Mathematical Colloquium and the Irish Mathematical Society will take place at NUI Galway from 6-9 April, 2009. As part of the program, we will run a special session on Computational Algebra, featuring the following presentations: * Arjeh Cohen (Eindhoven University): Constructions of curves with given groups of automorphisms * Bettina Eick (Braunschweig): Isomorphism testing for algebras (Lie or associative) * Dane Flannery (NUI Galway): On deciding finiteness of matrix groups * Steven Galbraith (Royal Holloway, University of London): Elliptic curves and public key cryptography * Gunter Malle (Kaiserslautern): Computing in Hecke algebras * Gary McGuire (University College Dublin): Some computational algebra in cryptography Abstracts and other details on the Special Session are at http://www.maths.nuigalway.ie/bmc2009/casession.shtml which also provides a link to the main BMC/IMS site. We hope that you can join us for this event. Best wishes. Eamonn O'Brien, University of Auckland Goetz Pfeiffer, NUI Galway From a.abdollahi at math.ui.ac.ir Tue Dec 9 07:39:03 2008 From: a.abdollahi at math.ui.ac.ir (Alireza Abdollahi) Date: Tue Dec 9 07:39:22 2008 Subject: [GAP Forum] Two Days Group Theory Seminar in ISFAHAN, IRAN Message-ID: <165966.71898.qm@web35702.mail.mud.yahoo.com> Dear Group and GAP Pubbers, ? A two days seminar on Group Theory will be held at the Depratment of Mathematics, University of Isfahan, Iran, ?during 12-13 March 2009. ? Th goal of this seminar is to bring together many of the people in Iran who are working on Group Theory, to introduce their works to each other as well as to students and young researches.?We also hope? to? create an atmosphere?to exchange/share/know their ideas and current researchs.?This seminar hopefully??will? serve as a place in which Ph.D./M.Sc. students?get the benifit of ideas/guidance of the others. ? The tentative plan is to have some talks of 50 and 25 minutes. ? We sincerely invite?all?interested people in Group Theory???to help us by attending this seminar. ? The following? URL (in Persian)?can be used?for Iranian?to download the registration form and to get the necessary information. ? www.sci.ui.ac.ir/~cem/1tdgs.htm ? The others can? send an e-mail to me?and?ask of???Abstract Talk submission,?visa form, regisrtation?fee, accomodation, Hotel ?Reserving, ...?? ? Best Regards Alireza Abdollahi ? ? Department of Mathematics University of Isfahan, Isfahan 81746-73441,Iran abdollahi@member.ams.org URL: http://sci.ui.ac.ir/~a.abdollahi From pawel.laskos at gmail.com Tue Dec 9 19:56:56 2008 From: pawel.laskos at gmail.com (=?UTF-8?B?UGF3ZcWCIExhc2tvxZstR3JhYm93c2tp?=) Date: Thu Dec 11 10:41:47 2008 Subject: [GAP Forum] Obtaining Small Group information Message-ID: <493ECD88.6080603@gmail.com> Hello, I have noticed that GAP Small Groups library provides useful information on the structure of groups belonging to the layer 1 of the library, but does not do so for (some) bit more complicated groups. I am rather dissatisfied by the output gap> SmallGroupsInformation(1625); There are 5 groups of order 1625. They are sorted by normal Sylow subgroups. 1 - 5 are the nilpotent groups. How can I obtain such a pleasant info like the following? gap> SmallGroupsInformation(125); There are 5 groups of order 125. 1 is of type c125. 2 is of type 5x25. 3 is of type 5^2:5. 4 is of type 25:5. 5 is of type 5^3. And, by the way, what does the colon stand for in the 125,3 and 125,4 type descriptions? I failed to find the explanation in the help pages. Regards, Pawe? Lasko?-Grabowski From h.dietrich at tu-bs.de Thu Dec 11 12:37:14 2008 From: h.dietrich at tu-bs.de (Heiko Dietrich) Date: Thu Dec 11 12:38:37 2008 Subject: [GAP Forum] Obtaining Small Group information In-Reply-To: <493ECD88.6080603@gmail.com> References: <493ECD88.6080603@gmail.com> Message-ID: <200812111337.14970.h.dietrich@tu-bs.de> Dear Pawe?, you can use the command "StructureDescription": gap> for i in AllSmallGroups(1625) do Display(StructureDescription(i)); od; C1625 C325 x C5 C13 x ((C5 x C5) : C5) C13 x (C25 : C5) C65 x C5 x C5 The output is explained in the manual: http://www.gap-system.org/Manuals/doc/htm/ref/CHAP037.htm#SECT006 Best, Heiko On Tuesday 09 December 2008 20:56, Pawe? Lasko?-Grabowski wrote: > Hello, > > I have noticed that GAP Small Groups library provides useful information > on the structure of groups belonging to the layer 1 of the library, but > does not do so for (some) bit more complicated groups. I am rather > dissatisfied by the output > > gap> SmallGroupsInformation(1625); > > There are 5 groups of order 1625. > They are sorted by normal Sylow subgroups. > 1 - 5 are the nilpotent groups. > > How can I obtain such a pleasant info like the following? > > gap> SmallGroupsInformation(125); > > There are 5 groups of order 125. > 1 is of type c125. > 2 is of type 5x25. > 3 is of type 5^2:5. > 4 is of type 25:5. > 5 is of type 5^3. > > And, by the way, what does the colon stand for in the 125,3 and 125,4 > type descriptions? I failed to find the explanation in the help pages. > > Regards, > Pawe? Lasko?-Grabowski > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From lee_bkua at yahoo.com Thu Dec 11 14:45:38 2008 From: lee_bkua at yahoo.com (Levie Bicua) Date: Thu Dec 11 14:45:53 2008 Subject: [GAP Forum] Some GAP question Message-ID: <340284.77373.qm@web33406.mail.mud.yahoo.com> Dear GAP forum members, I?m new to this GAP thing and I think this question is trivial to most of you. Suppose I have a set of 3 elements coming from s4 (e.g. [(1,3),(2,4),(1,2)]) and I want to generate other sets using GAP by the method below: gap> ()^-1*[(1,3),(2,4),(1,2)]*(); [ (1,3), (2,4), (1,2) ] gap> (2,3)^-1*[(1,3),(2,4),(1,2)]*(2,3); [ (1,2), (3,4), (1,3) ] gap> (2,4)^-1*[(1,3),(2,4),(1,2)]*(2,4); [ (1,3), (2,4), (1,4) ] gap> (3,4)^-1*[(1,3),(2,4),(1,2)]*(3,4); [ (1,4), (2,3), (1,2) ] gap> (2,3,4)^-1*[(1,3),(2,4),(1,2)]*(2,3,4); [ (1,4), (2,3), (1,3) ] gap> (2,4,3)^-1*[(1,3),(2,4),(1,2)]*(2,4,3); [ (1,2), (3,4), (1,4) ] The method gave 6 different sets of 3 elements. If I will use another set of 3 elements and repeat the process with again using (),(2,3),(2,4),(3,4),(2,3,4), (2,4,3) as conjugating elements, I will obtain again 6 different sets. But using this process every time I want to obtain a list of different sets as above would be eating much of my time. Is there a more efficient command/method than what I had used? Thanks. From jjm at mcs.st-andrews.ac.uk Thu Dec 11 15:41:39 2008 From: jjm at mcs.st-andrews.ac.uk (John McDermott) Date: Thu Dec 11 15:41:45 2008 Subject: [GAP Forum] New update of GAP released Message-ID: <382E6091-3699-447B-BF18-E1999E711712@mcs.st-andrews.ac.uk> Dear GAP Forum, We are delighted to announce the release of GAP 4 release 4 update 11 (GAP 4.4.11 for short), which is available now from the GAP Web pages and FTP site. The priority of this upgrade is very high, since it contains fixes for bugs which can return wrong results without warnings. All users should update to this release as soon as possible. The upgrade also fixes many less dangerous bugs and adds new functionality including the facility for dynamic loading of modules on Cygwin using a dll based approach, methods for testing membership in general and special linear groups over the integers, better View methods for strings and some other objects, and more. Full details can be found on the web pages at http://www.gap-system.org/Download/Updates/gap4r4p11.html. John McDermott, for the GAP Group. -- John McDermott Scientific Officer Centre for Interdisciplinary Research in Computational Algebra School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX SCOTLAND (Room 330, Mathematical Institute) tel +44 1334 463813 mob +44 7941 507531 The University of St Andrews is a charity registered in Scotland : No SC01353 From jbohanon2 at gmail.com Thu Dec 11 19:51:21 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Dec 11 19:51:31 2008 Subject: [GAP Forum] Obtaining Small Group information In-Reply-To: <200812111337.14970.h.dietrich@tu-bs.de> References: <493ECD88.6080603@gmail.com> <200812111337.14970.h.dietrich@tu-bs.de> Message-ID: I would point out that StructureDescription might not always return a group the way you'd like it. The manual explains a little more about how it picks a particular form for the structure. That function also does not do anything with central products. Hence if I type: StructureDescription(SmallGroup(32,50)) I get: "(C2 x Q8) : C2" when it's also a central product of Q8 with D8. It returns some pretty awkward answers for other larger central products. It also will usually not let you know how the split or non-split extensions work, so you might get two non-isomorphic groups that return the same "StructureDescription". Also be forewarned that many times GAP will just compute the whole subgroup lattice to find a structure, so any group that would take a long time with LatticeByCyclicExtension or ConjugacyClassesSubgroups is likely to take a long time for StructureDescription. This would include, for instance, 2-groups of rank more than 5, groups with large permutation representations or large matrix representations and also finitely-presented groups. It does have a separate routine for any simple group that spits out the answer due to the classification in almost no time, however, while it could easily tell me a group is isomorphic to, say U4(3), it would take much longer (and probably use up all of your RAM) to say a group is isomorphic to U4(3):D8. On Thu, Dec 11, 2008 at 6:37 AM, Heiko Dietrich wrote: > Dear Pawe?, > > you can use the command "StructureDescription": > > gap> for i in AllSmallGroups(1625) do Display(StructureDescription(i)); od; > C1625 > C325 x C5 > C13 x ((C5 x C5) : C5) > C13 x (C25 : C5) > C65 x C5 x C5 > > The output is explained in the manual: > > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP037.htm#SECT006 > > Best, > Heiko > > > > On Tuesday 09 December 2008 20:56, Pawe? Lasko?-Grabowski wrote: > > Hello, > > > > I have noticed that GAP Small Groups library provides useful information > > on the structure of groups belonging to the layer 1 of the library, but > > does not do so for (some) bit more complicated groups. I am rather > > dissatisfied by the output > > > > gap> SmallGroupsInformation(1625); > > > > There are 5 groups of order 1625. > > They are sorted by normal Sylow subgroups. > > 1 - 5 are the nilpotent groups. > > > > How can I obtain such a pleasant info like the following? > > > > gap> SmallGroupsInformation(125); > > > > There are 5 groups of order 125. > > 1 is of type c125. > > 2 is of type 5x25. > > 3 is of type 5^2:5. > > 4 is of type 25:5. > > 5 is of type 5^3. > > > > And, by the way, what does the colon stand for in the 125,3 and 125,4 > > type descriptions? I failed to find the explanation in the help pages. > > > > Regards, > > Pawe? Lasko?-Grabowski > > > > _______________________________________________ > > 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 > From combariza at gmail.com Fri Dec 12 03:01:51 2008 From: combariza at gmail.com (German Combariza) Date: Fri Dec 12 03:02:00 2008 Subject: [GAP Forum] Crime Package. Memory Question. Message-ID: Dear Forum, I am trying to compute the cohomology ring of the SmallGroup=(256,26973); Using the crime package, but looks like I am having a memory error. When run in windows, I do: C:\GAP4R4\bin\gapw95.exe -m 256m -o 3g -l C:\GAP4R4\ %1 %2 %3 %4 %5 %6 %7 %8 gap> LoadPackage("crime");; gap> N:=SmallGroup(256,26973); gap> C:=CohomologyObject(N);; gap> CohomologyGenerators(5); and after a time, the program said that can not extend the memory and finish. I can compute CohomologyGenerators(3); but no more. Whe I do it in linux, I do: gap -m 256m -o 16g gap> LoadPackage("crime");; gap> N:=SmallGroup(256,26973); gap> C:=CohomologyObject(N);; gap> CohomologyGenerators(5); Here the answer is: "Segmentatio fault". I have checked the memory, and looks like GAP is not using the whole memory of the computer (16G), just a 2% or 3%. I really appreciate any help. Thank. From H.Dietrich at tu-bs.de Fri Dec 12 06:42:22 2008 From: H.Dietrich at tu-bs.de (Heiko Dietrich) Date: Fri Dec 12 06:42:42 2008 Subject: [GAP Forum] Obtaining Small Group information In-Reply-To: <494191E4.60208@gmail.com> References: <493ECD88.6080603@gmail.com> <494191E4.60208@gmail.com> Message-ID: <200812120742.22939.H.Dietrich@tu-bs.de> Hello, the groups of order 5^3 are the following (1) cyclic group C_{125} (2) abelian group C_{25} x C_5 (3) extraspecial 5-group of order 125 and exponent 5: C_5 \ltimes (C_5 x C_5) (4) extraspecial 5-group of order 125 and exponent 25: C_5 \ltimes C_{25} (5) elementary abelian group C_5 x C_5 x C_5. (Note that A \ltimes B is a split extensions with A acting on the normal subgroup B.) In general, the groups of order p^3 were classified by Otto Hoelder, "Die Gruppen der Ordnungen p^3 , pq^2, pqr, p^4.", Math. Ann., 43: 301 - 412, 1893. As 1625 = 13*5^3, a group G of order 1625 has a normal Sylow subgroup P of order 125. Now Schur-Zassenhaus show that P has a complement in G, that is, G is isomorphic to the split extension C_{13} \ltimes P. Due to order reasons, the cyclic group has to act trivially, that is, G is isomorphic to the direct product C_{13} x P. Hence, you obtain all groups of order 1625 by adding a direct factor C_{13} to every group (1)--(5) of order 125: gap>NumberSmallGroups(1625); 5 gap>List(AllSmallGroups(125),x->IdSmallGroup(DirectProduct(x,CyclicGroup(13)))); [ [ 1625, 1 ], [ 1625, 2 ], [ 1625, 3 ], [ 1625, 4 ], [ 1625, 5 ] ] Hope this helps, Heiko On Thursday 11 December 2008 23:19, Pawe? Lasko?-Grabowski wrote: > Hello, > > Much of this (highly useful otherwise, thanks a lot) information is > actually much more general than I need at the moment. I need to know the > structure of all (up to isomorphism, of course) groups of orders 125 and > 1625. I was glad to discover that there are only five of each, but now > it seems that the ones obtained by semidirect products may actually > represent many non-isomorphic groups. Is there a way to obtain such > level of details using GAP, or should I refer to textbooks and/or prove > few facts myself to get the information I need? > > Regards, > Pawel Laskos-Grabowski > > Joe Bohanon schrieb: > > I would point out that StructureDescription might not always return a > > group the way you'd like it. The manual explains a little more about > > how it picks a particular form for the structure. > > > > That function also does not do anything with central products. Hence if > > I type: > > StructureDescription(SmallGroup(32,50)) I get: > > "(C2 x Q8) : C2" when it's also a central product of Q8 with D8. It > > returns some pretty awkward answers for other larger central products. > > > > It also will usually not let you know how the split or non-split > > extensions work, so you might get two non-isomorphic groups that return > > the same "StructureDescription". > > > > Also be forewarned that many times GAP will just compute the whole > > subgroup lattice to find a structure, so any group that would take a > > long time with LatticeByCyclicExtension or ConjugacyClassesSubgroups is > > likely to take a long time for StructureDescription. This would > > include, for instance, 2-groups of rank more than 5, groups with large > > permutation representations or large matrix representations and also > > finitely-presented groups. It does have a separate routine for any > > simple group that spits out the answer due to the classification in > > almost no time, however, while it could easily tell me a group is > > isomorphic to, say U4(3), it would take much longer (and probably use up > > all of your RAM) to say a group is isomorphic to U4(3):D8. > > > > On Thu, Dec 11, 2008 at 6:37 AM, Heiko Dietrich > > wrote: > > > > Dear Pawe?, > > > > you can use the command "StructureDescription": > > > > gap> for i in AllSmallGroups(1625) do > > Display(StructureDescription(i)); od; > > C1625 > > C325 x C5 > > C13 x ((C5 x C5) : C5) > > C13 x (C25 : C5) > > C65 x C5 x C5 > > > > The output is explained in the manual: > > > > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP037.htm#SECT006 > > > > Best, > > Heiko > > > > On Tuesday 09 December 2008 20:56, Pawe? Lasko?-Grabowski wrote: > > > Hello, > > > > > > I have noticed that GAP Small Groups library provides useful > > > > information > > > > > on the structure of groups belonging to the layer 1 of the > > > > library, but > > > > > does not do so for (some) bit more complicated groups. I am rather > > > dissatisfied by the output > > > > > > gap> SmallGroupsInformation(1625); > > > > > > There are 5 groups of order 1625. > > > They are sorted by normal Sylow subgroups. > > > 1 - 5 are the nilpotent groups. > > > > > > How can I obtain such a pleasant info like the following? > > > > > > gap> SmallGroupsInformation(125); > > > > > > There are 5 groups of order 125. > > > 1 is of type c125. > > > 2 is of type 5x25. > > > 3 is of type 5^2:5. > > > 4 is of type 25:5. > > > 5 is of type 5^3. > > > > > > And, by the way, what does the colon stand for in the 125,3 and > > > 125,4 type descriptions? I failed to find the explanation in the > > > help > > > > pages. > > > > > Regards, > > > Pawe? Lasko?-Grabowski > > > > > > _______________________________________________ > > > 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 -- Dipl. Math. Heiko Dietrich Department of Mathematics University Braunschweig Pockelsstrasse 14 38106 Braunschweig GERMANY Room: F 613 Tel: ++49 (0)531 391 7526 Fax: ++49 (0)531 391 8206 Email: h.dietrich@tu-bs.de From jbohanon2 at gmail.com Fri Dec 12 07:01:38 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Fri Dec 12 07:01:58 2008 Subject: [GAP Forum] Obtaining Small Group information In-Reply-To: <200812120742.22939.H.Dietrich@tu-bs.de> References: <493ECD88.6080603@gmail.com> <494191E4.60208@gmail.com> <200812120742.22939.H.Dietrich@tu-bs.de> Message-ID: <49420C52.8010801@gmail.com> Also in general the groups of order p^3*q were classified by Western near the beginning of the 20th century (if you have Burnside's book, you can find the reference there where he does p^2 q). I think very few generic classifications were done beyond what Hoelder did (except for the work on p-groups by O'Brien and Eick) mainly because of the number of sub-cases you have to look at. Heiko Dietrich wrote: > Hello, > > the groups of order 5^3 are the following > > (1) cyclic group C_{125} > (2) abelian group C_{25} x C_5 > (3) extraspecial 5-group of order 125 and exponent 5: C_5 \ltimes (C_5 x C_5) > (4) extraspecial 5-group of order 125 and exponent 25: C_5 \ltimes C_{25} > (5) elementary abelian group C_5 x C_5 x C_5. > > (Note that A \ltimes B is a split extensions with A acting on the normal > subgroup B.) > > In general, the groups of order p^3 were classified by Otto Hoelder, "Die > Gruppen der Ordnungen p^3 , pq^2, pqr, p^4.", Math. Ann., 43: 301 - 412, > 1893. > > As 1625 = 13*5^3, a group G of order 1625 has a normal Sylow subgroup P of > order 125. Now Schur-Zassenhaus show that P has a complement in G, that is, G > is isomorphic to the split extension C_{13} \ltimes P. Due to order reasons, > the cyclic group has to act trivially, that is, G is isomorphic to the direct > product C_{13} x P. > > Hence, you obtain all groups of order 1625 by adding a direct factor C_{13} to > every group (1)--(5) of order 125: > > gap>NumberSmallGroups(1625); > 5 > gap>List(AllSmallGroups(125),x->IdSmallGroup(DirectProduct(x,CyclicGroup(13)))); > [ [ 1625, 1 ], [ 1625, 2 ], [ 1625, 3 ], [ 1625, 4 ], [ 1625, 5 ] ] > > Hope this helps, > Heiko > > > On Thursday 11 December 2008 23:19, Pawe? Lasko?-Grabowski wrote: > >> Hello, >> >> Much of this (highly useful otherwise, thanks a lot) information is >> actually much more general than I need at the moment. I need to know the >> structure of all (up to isomorphism, of course) groups of orders 125 and >> 1625. I was glad to discover that there are only five of each, but now >> it seems that the ones obtained by semidirect products may actually >> represent many non-isomorphic groups. Is there a way to obtain such >> level of details using GAP, or should I refer to textbooks and/or prove >> few facts myself to get the information I need? >> >> Regards, >> Pawel Laskos-Grabowski >> >> Joe Bohanon schrieb: >> >>> I would point out that StructureDescription might not always return a >>> group the way you'd like it. The manual explains a little more about >>> how it picks a particular form for the structure. >>> >>> That function also does not do anything with central products. Hence if >>> I type: >>> StructureDescription(SmallGroup(32,50)) I get: >>> "(C2 x Q8) : C2" when it's also a central product of Q8 with D8. It >>> returns some pretty awkward answers for other larger central products. >>> >>> It also will usually not let you know how the split or non-split >>> extensions work, so you might get two non-isomorphic groups that return >>> the same "StructureDescription". >>> >>> Also be forewarned that many times GAP will just compute the whole >>> subgroup lattice to find a structure, so any group that would take a >>> long time with LatticeByCyclicExtension or ConjugacyClassesSubgroups is >>> likely to take a long time for StructureDescription. This would >>> include, for instance, 2-groups of rank more than 5, groups with large >>> permutation representations or large matrix representations and also >>> finitely-presented groups. It does have a separate routine for any >>> simple group that spits out the answer due to the classification in >>> almost no time, however, while it could easily tell me a group is >>> isomorphic to, say U4(3), it would take much longer (and probably use up >>> all of your RAM) to say a group is isomorphic to U4(3):D8. >>> >>> On Thu, Dec 11, 2008 at 6:37 AM, Heiko Dietrich >> > wrote: >>> >>> Dear Pawe?, >>> >>> you can use the command "StructureDescription": >>> >>> gap> for i in AllSmallGroups(1625) do >>> Display(StructureDescription(i)); od; >>> C1625 >>> C325 x C5 >>> C13 x ((C5 x C5) : C5) >>> C13 x (C25 : C5) >>> C65 x C5 x C5 >>> >>> The output is explained in the manual: >>> >>> http://www.gap-system.org/Manuals/doc/htm/ref/CHAP037.htm#SECT006 >>> >>> Best, >>> Heiko >>> >>> On Tuesday 09 December 2008 20:56, Pawe? Lasko?-Grabowski wrote: >>> > Hello, >>> > >>> > I have noticed that GAP Small Groups library provides useful >>> >>> information >>> >>> > on the structure of groups belonging to the layer 1 of the >>> >>> library, but >>> >>> > does not do so for (some) bit more complicated groups. I am rather >>> > dissatisfied by the output >>> > >>> > gap> SmallGroupsInformation(1625); >>> > >>> > There are 5 groups of order 1625. >>> > They are sorted by normal Sylow subgroups. >>> > 1 - 5 are the nilpotent groups. >>> > >>> > How can I obtain such a pleasant info like the following? >>> > >>> > gap> SmallGroupsInformation(125); >>> > >>> > There are 5 groups of order 125. >>> > 1 is of type c125. >>> > 2 is of type 5x25. >>> > 3 is of type 5^2:5. >>> > 4 is of type 25:5. >>> > 5 is of type 5^3. >>> > >>> > And, by the way, what does the colon stand for in the 125,3 and >>> > 125,4 type descriptions? I failed to find the explanation in the >>> > help >>> >>> pages. >>> >>> > Regards, >>> > Pawe? Lasko?-Grabowski >>> > >>> > _______________________________________________ >>> > 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 >>> > > From vdabbagh at sfu.ca Fri Dec 12 09:37:06 2008 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Fri Dec 12 09:37:20 2008 Subject: [GAP Forum] Repsn 3.0.1 In-Reply-To: <438953374.3495381229074561118.JavaMail.root@jaguar7.sfu.ca> Message-ID: <1001237394.3495461229074626309.JavaMail.root@jaguar7.sfu.ca> Dear GAP Forum, This is to announce the release of Repsn 3.0.1. Earlier versions of Repsn were using some techniques for computing ordinary matrix representations of degrees less than 32 for any given finite group G. In this version, by implementing a new method, this has been extended to degrees up to 100. In particular Repsn 3.0.1 can be applied for the important case where G is perfect and the socle of G over its centre is abelian. The Repsn 3.0.1 is available at the following pages; http://www.gap-system.org/Packages/repsn.html http://www.sfu.ca/~vdabbagh/gap/repsn.html Please send bug reports, suggestions and other comments to vdabbagh@sfu.ca Best wishes Vahid Dabbaghian _____________________________ The IRMACS Centre (ASB 10905) Simon Fraser University 8888 University Drive Burnaby, BC V5A 1S6 Canada E-mail: vdabbagh@sfu.ca Tel: (778) 782 2108 http://www.sfu.ca/~vdabbagh From graham.ellis at nuigalway.ie Fri Dec 12 10:57:16 2008 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Fri Dec 12 11:10:28 2008 Subject: [GAP Forum] Crime Package. Memory Question. References: Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1303AD2720@EVS1.ac.nuigalway.ie> The HAP package can also be used for cohomology rings. The following requires about 512Mb of memory and shows that there are five generators in degree 1, three generators in degree 2, and no generators in degrees 3,4,5. gap> LoadPackage("hap");; Loading HAP 1.8.8 ... gap> N:=SmallGroup(256,26973);; gap> gens:=ModPCohomologyGenerators(N,5);; gap> t:=time;;StringTime(t); " 0:03:36.493" gap> List(gens[1],gens[2]); [ 0, 1, 1, 1, 1, 1, 2, 2, 2 ] Graham >I am trying to compute the cohomology ring of the >SmallGroup=(256,26973); >Using the crime package, but looks like I am having a memory error. >When run in windows, I do: >C:\GAP4R4\bin\gapw95.exe -m 256m -o 3g -l C:\GAP4R4\ %1 %2 %3 %4 %5 %6 %7 %8 >gap> LoadPackage("crime");; >gap> N:=SmallGroup(256,26973); >gap> C:=CohomologyObject(N);; >gap> CohomologyGenerators(5); >and after a time, the program said that can not extend the memory and >finish. I can compute CohomologyGenerators(3); but no more. >Whe I do it in linux, I do: >gap -m 256m -o 16g >gap> LoadPackage("crime");; >gap> N:=SmallGroup(256,26973); >gap> C:=CohomologyObject(N);; >gap> CohomologyGenerators(5); >Here the answer is: "Segmentatio fault". I have checked the memory, and >looks like GAP is not using the whole memory of the computer (16G), just a >2% or 3%. >I really appreciate any help. >Thank. From anvita21 at gmail.com Sat Dec 13 04:42:43 2008 From: anvita21 at gmail.com (Anvita) Date: Sat Dec 13 04:43:00 2008 Subject: [GAP Forum] TERMINFO Message-ID: <6a52effd0812122042j6b089c3em6f64aa8c66d047c0@mail.gmail.com> Dear Forum, I have noticed the new line set TERMINFO=C:\GAP4R4\terminfo in the newly distributed file gap.bat and have the following questions about it: 1. Where can I find more information about the purpose of the environment variable "TERMINFO"? 2. Should this line be changed if the GAP installation directory is other than "C:\GAP4R4"? 3. After GAP is started, I still cannot see TERMINFO in the list of variables shown by the "set" command. Is this OK? Thank you in advance, Anvita. P.S. I am running GAP on Windows XP SP2. From anvita21 at gmail.com Sun Dec 14 10:19:35 2008 From: anvita21 at gmail.com (Anvita) Date: Sun Dec 14 10:19:53 2008 Subject: [GAP Forum] 0*Z(5) in Group(Z(5)); Message-ID: <6a52effd0812140219q1a0fdfdcq4025d7fa17be626c@mail.gmail.com> Dear Forum, Why can't GAP check whether Zero of a finite field is in its multiplicative group? -------------------------------------------------------------------------- gap> z:=Z(5); Z(5) gap> 0*z in Group(z); LogFFE: must be a nonzero finite field element at return elm in F and LogFFE( elm, PrimitiveRoot( F ) ) mod ((Size( F ) - 1) / Size( G )) = 0; 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 ---------------------------------------------------------------------------- Anvita From alexander.konovalov at gmail.com Tue Dec 16 16:35:26 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Dec 16 16:35:56 2008 Subject: [GAP Forum] Some GAP question In-Reply-To: <340284.77373.qm@web33406.mail.mud.yahoo.com> References: <340284.77373.qm@web33406.mail.mud.yahoo.com> Message-ID: <83218D33-DDD1-4F9E-921A-DBDC4560E5A6@gmail.com> Dear Levie, Maybe the simplest solution to do it interactively for one triple is here: gap> elts:=[(1,3),(2,4),(1,2)]; [ (1,3), (2,4), (1,2) ] gap> conj:=[(),(2,3),(2,4),(3,4),(2,3,4), (2,4,3)]; [ (), (2,3), (2,4), (3,4), (2,3,4), (2,4,3) ] gap> List( conj, x -> x^-1*elts*x ); [ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4) ], [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ] ] You may write a function to do this: gap> myfun:=function(elts,conj) > return List( conj, x -> x^-1*elts*x ); > end; function( elts, conj ) ... end and then call this function as it is shown here: gap> myfun(elts,conj); [ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4) ], [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ] ] Now you may apply it for various values of arguments. Using list operations and GAP programming language constructions (see, e.g. 'for' loops) you may automate computations for various combinations of arguments. Hope this gives some hints in which direction to proceed. For the further ideas, you may find useful these chapters from the Tutorial: http://www.gap-system.org/Manuals/doc/htm/tut/CHAP003.htm http://www.gap-system.org/Manuals/doc/htm/tut/CHAP004.htm and the Reference manual chapter "The Programming Language": http://www.gap-system.org/Manuals/doc/htm/ref/CHAP004.htm for start with. Best wishes, Alexander On 11 Dec 2008, at 14:45, Levie Bicua wrote: > Dear GAP forum members, > I?m new to this GAP thing and I think this question is trivial to > most of you. > Suppose I have a set of 3 elements coming from s4 (e.g. [(1,3),(2,4), > (1,2)]) and I want to generate other sets using GAP by the method > below: > gap> ()^-1*[(1,3),(2,4),(1,2)]*(); > [ (1,3), (2,4), (1,2) ] > gap> (2,3)^-1*[(1,3),(2,4),(1,2)]*(2,3); > [ (1,2), (3,4), (1,3) ] > gap> (2,4)^-1*[(1,3),(2,4),(1,2)]*(2,4); > [ (1,3), (2,4), (1,4) ] > gap> (3,4)^-1*[(1,3),(2,4),(1,2)]*(3,4); > [ (1,4), (2,3), (1,2) ] > gap> (2,3,4)^-1*[(1,3),(2,4),(1,2)]*(2,3,4); > [ (1,4), (2,3), (1,3) ] > gap> (2,4,3)^-1*[(1,3),(2,4),(1,2)]*(2,4,3); > [ (1,2), (3,4), (1,4) ] > The method gave 6 different sets of 3 elements. If I will use > another set of 3 elements and repeat the process with again using (), > (2,3),(2,4),(3,4),(2,3,4), (2,4,3) as conjugating elements, I will > obtain again 6 different sets. But using this process every time I > want to obtain a list of different sets as above would be eating > much of my time. Is there a more efficient command/method than what > I had used? Thanks. > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jbohanon2 at gmail.com Tue Dec 16 17:12:23 2008 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue Dec 16 17:15:38 2008 Subject: [GAP Forum] Some GAP question In-Reply-To: <83218D33-DDD1-4F9E-921A-DBDC4560E5A6@gmail.com> References: <340284.77373.qm@web33406.mail.mud.yahoo.com> <83218D33-DDD1-4F9E-921A-DBDC4560E5A6@gmail.com> Message-ID: GAP also recognizes the command "x^y" meaning "x conjugated by y". I'm not sure if its y^-1 x y or y x y^-1 that comes out of that On Tue, Dec 16, 2008 at 10:35 AM, Alexander Konovalov < alexander.konovalov@gmail.com> wrote: > Dear Levie, > > Maybe the simplest solution to do it interactively for one triple is here: > > gap> elts:=[(1,3),(2,4),(1,2)]; > [ (1,3), (2,4), (1,2) ] > gap> conj:=[(),(2,3),(2,4),(3,4),(2,3,4), (2,4,3)]; > [ (), (2,3), (2,4), (3,4), (2,3,4), (2,4,3) ] > gap> List( conj, x -> x^-1*elts*x ); > [ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4) > ], > [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ] > ] > > You may write a function to do this: > > gap> myfun:=function(elts,conj) > > return List( conj, x -> x^-1*elts*x ); > > end; > function( elts, conj ) ... end > > and then call this function as it is shown here: > > gap> myfun(elts,conj); > [ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4) > ], > [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ] > ] > > Now you may apply it for various values of arguments. Using list operations > and GAP programming language constructions (see, e.g. 'for' loops) you may > automate computations for various combinations of arguments. > > Hope this gives some hints in which direction to proceed. > For the further ideas, you may find useful these chapters > from the Tutorial: > > http://www.gap-system.org/Manuals/doc/htm/tut/CHAP003.htm > http://www.gap-system.org/Manuals/doc/htm/tut/CHAP004.htm > > and the Reference manual chapter "The Programming Language": > > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP004.htm > > for start with. > > Best wishes, > Alexander > > > > On 11 Dec 2008, at 14:45, Levie Bicua wrote: > > Dear GAP forum members, >> I'm new to this GAP thing and I think this question is trivial to most of >> you. >> Suppose I have a set of 3 elements coming from s4 (e.g. >> [(1,3),(2,4),(1,2)]) and I want to generate other sets using GAP by the >> method below: >> gap> ()^-1*[(1,3),(2,4),(1,2)]*(); >> [ (1,3), (2,4), (1,2) ] >> gap> (2,3)^-1*[(1,3),(2,4),(1,2)]*(2,3); >> [ (1,2), (3,4), (1,3) ] >> gap> (2,4)^-1*[(1,3),(2,4),(1,2)]*(2,4); >> [ (1,3), (2,4), (1,4) ] >> gap> (3,4)^-1*[(1,3),(2,4),(1,2)]*(3,4); >> [ (1,4), (2,3), (1,2) ] >> gap> (2,3,4)^-1*[(1,3),(2,4),(1,2)]*(2,3,4); >> [ (1,4), (2,3), (1,3) ] >> gap> (2,4,3)^-1*[(1,3),(2,4),(1,2)]*(2,4,3); >> [ (1,2), (3,4), (1,4) ] >> The method gave 6 different sets of 3 elements. If I will use another set >> of 3 elements and repeat the process with again using >> (),(2,3),(2,4),(3,4),(2,3,4), (2,4,3) as conjugating elements, I will obtain >> again 6 different sets. But using this process every time I want to obtain a >> list of different sets as above would be eating much of my time. Is there a >> more efficient command/method than what I had used? Thanks. >> >> >> >> _______________________________________________ >> 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 > From alexander.konovalov at gmail.com Wed Dec 17 00:04:57 2008 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Wed Dec 17 00:05:19 2008 Subject: [GAP Forum] Some GAP question In-Reply-To: References: <340284.77373.qm@web33406.mail.mud.yahoo.com> <83218D33-DDD1-4F9E-921A-DBDC4560E5A6@gmail.com> Message-ID: <32D663DE-3AFB-482C-A125-3DB1C37EB9FF@gmail.com> To be precise, the manual says "^ denotes powering of a multiplicative element if the right operand is an integer, and is also used to denote the action of a group element on a point of a set if the right operand is a group element". In the example below, replacing List( conj, x -> x^-1*elts*x ) by List( conj, x -> elts^x ); will not work because such action is not defined, but the following will work, because by default the group act on its elements by conjugation: gap> List( conj, y -> List( elts, x -> x^y ) ); [ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), (1,4) ], [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), (1,4) ] ] Also, in this case x^y = y^-1 * x * y. Best, Alexander On 16 Dec 2008, at 17:12, Joe Bohanon wrote: > GAP also recognizes the command "x^y" meaning "x conjugated by y". > I'm not > sure if its y^-1 x y or y x y^-1 that comes out of that > > On Tue, Dec 16, 2008 at 10:35 AM, Alexander Konovalov < > alexander.konovalov@gmail.com> wrote: > >> Dear Levie, >> >> Maybe the simplest solution to do it interactively for one triple >> is here: >> >> gap> elts:=[(1,3),(2,4),(1,2)]; >> [ (1,3), (2,4), (1,2) ] >> gap> conj:=[(),(2,3),(2,4),(3,4),(2,3,4), (2,4,3)]; >> [ (), (2,3), (2,4), (3,4), (2,3,4), (2,4,3) ] >> gap> List( conj, x -> x^-1*elts*x ); >> [ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), >> (1,4) >> ], >> [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), >> (1,4) ] >> ] >> >> You may write a function to do this: >> >> gap> myfun:=function(elts,conj) >>> return List( conj, x -> x^-1*elts*x ); >>> end; >> function( elts, conj ) ... end >> >> and then call this function as it is shown here: >> >> gap> myfun(elts,conj); >> [ [ (1,3), (2,4), (1,2) ], [ (1,2), (3,4), (1,3) ], [ (1,3), (2,4), >> (1,4) >> ], >> [ (1,4), (2,3), (1,2) ], [ (1,4), (2,3), (1,3) ], [ (1,2), (3,4), >> (1,4) ] >> ] >> >> Now you may apply it for various values of arguments. Using list >> operations >> and GAP programming language constructions (see, e.g. 'for' loops) >> you may >> automate computations for various combinations of arguments. >> >> Hope this gives some hints in which direction to proceed. >> For the further ideas, you may find useful these chapters >> from the Tutorial: >> >> http://www.gap-system.org/Manuals/doc/htm/tut/CHAP003.htm >> http://www.gap-system.org/Manuals/doc/htm/tut/CHAP004.htm >> >> and the Reference manual chapter "The Programming Language": >> >> http://www.gap-system.org/Manuals/doc/htm/ref/CHAP004.htm >> >> for start with. >> >> Best wishes, >> Alexander >> >> >> >> On 11 Dec 2008, at 14:45, Levie Bicua wrote: >> >> Dear GAP forum members, >>> I'm new to this GAP thing and I think this question is trivial to >>> most of >>> you. >>> Suppose I have a set of 3 elements coming from s4 (e.g. >>> [(1,3),(2,4),(1,2)]) and I want to generate other sets using GAP >>> by the >>> method below: >>> gap> ()^-1*[(1,3),(2,4),(1,2)]*(); >>> [ (1,3), (2,4), (1,2) ] >>> gap> (2,3)^-1*[(1,3),(2,4),(1,2)]*(2,3); >>> [ (1,2), (3,4), (1,3) ] >>> gap> (2,4)^-1*[(1,3),(2,4),(1,2)]*(2,4); >>> [ (1,3), (2,4), (1,4) ] >>> gap> (3,4)^-1*[(1,3),(2,4),(1,2)]*(3,4); >>> [ (1,4), (2,3), (1,2) ] >>> gap> (2,3,4)^-1*[(1,3),(2,4),(1,2)]*(2,3,4); >>> [ (1,4), (2,3), (1,3) ] >>> gap> (2,4,3)^-1*[(1,3),(2,4),(1,2)]*(2,4,3); >>> [ (1,2), (3,4), (1,4) ] >>> The method gave 6 different sets of 3 elements. If I will use >>> another set >>> of 3 elements and repeat the process with again using >>> (),(2,3),(2,4),(3,4),(2,3,4), (2,4,3) as conjugating elements, I >>> will obtain >>> again 6 different sets. But using this process every time I want >>> to obtain a >>> list of different sets as above would be eating much of my time. >>> Is there a >>> more efficient command/method than what I had used? Thanks. >>> >>> >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum@mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum From pawel.laskos at gmail.com Thu Dec 11 22:19:16 2008 From: pawel.laskos at gmail.com (=?ISO-8859-2?Q?Pawe=B3_Lasko=B6-Grabowski?=) Date: Fri Dec 19 11:11:03 2008 Subject: [GAP Forum] Obtaining Small Group information In-Reply-To: References: <493ECD88.6080603@gmail.com> <200812111337.14970.h.dietrich@tu-bs.de> Message-ID: <494191E4.60208@gmail.com> Hello, Much of this (highly useful otherwise, thanks a lot) information is actually much more general than I need at the moment. I need to know the structure of all (up to isomorphism, of course) groups of orders 125 and 1625. I was glad to discover that there are only five of each, but now it seems that the ones obtained by semidirect products may actually represent many non-isomorphic groups. Is there a way to obtain such level of details using GAP, or should I refer to textbooks and/or prove few facts myself to get the information I need? Regards, Pawel Laskos-Grabowski Joe Bohanon schrieb: > I would point out that StructureDescription might not always return a > group the way you'd like it. The manual explains a little more about > how it picks a particular form for the structure. > > That function also does not do anything with central products. Hence if > I type: > StructureDescription(SmallGroup(32,50)) I get: > "(C2 x Q8) : C2" when it's also a central product of Q8 with D8. It > returns some pretty awkward answers for other larger central products. > > It also will usually not let you know how the split or non-split > extensions work, so you might get two non-isomorphic groups that return > the same "StructureDescription". > > Also be forewarned that many times GAP will just compute the whole > subgroup lattice to find a structure, so any group that would take a > long time with LatticeByCyclicExtension or ConjugacyClassesSubgroups is > likely to take a long time for StructureDescription. This would > include, for instance, 2-groups of rank more than 5, groups with large > permutation representations or large matrix representations and also > finitely-presented groups. It does have a separate routine for any > simple group that spits out the answer due to the classification in > almost no time, however, while it could easily tell me a group is > isomorphic to, say U4(3), it would take much longer (and probably use up > all of your RAM) to say a group is isomorphic to U4(3):D8. > > On Thu, Dec 11, 2008 at 6:37 AM, Heiko Dietrich > wrote: > > Dear Pawe?, > > you can use the command "StructureDescription": > > gap> for i in AllSmallGroups(1625) do > Display(StructureDescription(i)); od; > C1625 > C325 x C5 > C13 x ((C5 x C5) : C5) > C13 x (C25 : C5) > C65 x C5 x C5 > > The output is explained in the manual: > > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP037.htm#SECT006 > > Best, > Heiko > > > > On Tuesday 09 December 2008 20:56, Pawe? Lasko?-Grabowski wrote: > > Hello, > > > > I have noticed that GAP Small Groups library provides useful > information > > on the structure of groups belonging to the layer 1 of the > library, but > > does not do so for (some) bit more complicated groups. I am rather > > dissatisfied by the output > > > > gap> SmallGroupsInformation(1625); > > > > There are 5 groups of order 1625. > > They are sorted by normal Sylow subgroups. > > 1 - 5 are the nilpotent groups. > > > > How can I obtain such a pleasant info like the following? > > > > gap> SmallGroupsInformation(125); > > > > There are 5 groups of order 125. > > 1 is of type c125. > > 2 is of type 5x25. > > 3 is of type 5^2:5. > > 4 is of type 25:5. > > 5 is of type 5^3. > > > > And, by the way, what does the colon stand for in the 125,3 and 125,4 > > type descriptions? I failed to find the explanation in the help > pages. > > > > Regards, > > Pawe? Lasko?-Grabowski > > > > _______________________________________________ > > 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 > > From jjm at mcs.st-andrews.ac.uk Fri Dec 19 12:23:51 2008 From: jjm at mcs.st-andrews.ac.uk (John McDermott) Date: Fri Dec 19 12:24:16 2008 Subject: [GAP Forum] New update of GAP released Message-ID: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk> Dear GAP Forum, Following the recent announcement of GAP 4.4.11, we announce the release of GAP 4 release 4 update 12 (GAP 4.4.12 for short), which is available now from the GAP Web pages and FTP site. We have made this release quickly after the previous release due to the discovery of a bug introduced in GAP 4.4.11 which could cause GAP to crash whenever a GAP function was executed while certain loops or functions were parsed, for example via the hooks used for prompt colouring. This update also fixes a bug which made command-line editing unusable on 64 bit Mac platforms. See http://www.gap-system.org/Download/Updates/gap4r4p12.html. Please note that we have not been able to provide with this release a binary for versions of the Apple Mac operating system prior to Mac OS X. If you need to run GAP on such a platform please contact us by email to support@gap-system.org. John McDermott, for the GAP Group. -- John McDermott Centre for Interdisciplinary Research in Computational Algebra University of St Andrews SCOTLAND The University of St Andrews is a charity registered in Scotland : No SC01353 From nagyg at math.u-szeged.hu Sat Dec 20 15:01:37 2008 From: nagyg at math.u-szeged.hu (=?ISO-8859-2?Q?Nagy_G=E1bor?=) Date: Sat Dec 20 15:01:22 2008 Subject: [GAP Forum] Linear representation of G2(q), q even Message-ID: <494D08D1.9090607@math.u-szeged.hu> Dear Forum, It is "well known" that for even prime power q, the exceptional Lie group G2(q) has two linear representations of dimension 6, both are transitive on the set of non-zero vectors. Can you suggest me some literature about this construction? I am escpecially interested in the question if the induced transitive representations on the 5-dimensional projective spaces PG(5,q) are primitive? Thank you very much for your help. Bye, Gabor From frank.luebeck at math.rwth-aachen.de Mon Dec 22 12:53:42 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Mon Dec 22 12:54:11 2008 Subject: [GAP Forum] Linear representation of G2(q), q even In-Reply-To: <494D08D1.9090607@math.u-szeged.hu> References: <494D08D1.9090607@math.u-szeged.hu> Message-ID: <20081222125342.GA19155@beteigeuze> On Sat, Dec 20, 2008 at 04:01:37PM +0100, Nagy G?bor wrote: > It is "well known" that for even prime power q, the exceptional Lie group > G2(q) has two linear representations of dimension 6, both are transitive on > the set of non-zero vectors. > > Can you suggest me some literature about this construction? > > I am escpecially interested in the question if the induced transitive > representations on the 5-dimensional projective spaces PG(5,q) are > primitive? Dear Gabor, dear Forum, I don't have a reference, but maybe the following is of some help. G2(q), q=2^f, has f irreducible representations in characteristic 2, one of the fundamental representations and its Frobenius twists (i.e., combinations with the field automorphism of GF(q)/GF(2)). I print below "generic" generators of G2(2^f), substitute the variable T by Z(2^f) to get generators for some specific f. With this you can check for q = 2, 4, 8 in GAP that the action on non-zero vectors is transitive and the action on PG(5, q) is primitive. I'm not sure if one could somehow use these generators also to prove these properties in general. Best regards, Frank And here are the matrices, these are generators of root subgroups: G2char2gens := [ [ [ 1, T, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, T^2, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, T ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, -T, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, T, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ T, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], [ 0, 0, T^2, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, T, 1 ] ], [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, -T, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, T, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ] ]; -- /// 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 juergen.mueller at math.rwth-aachen.de Mon Dec 22 18:31:25 2008 From: juergen.mueller at math.rwth-aachen.de (Juergen Mueller) Date: Mon Dec 22 18:31:48 2008 Subject: [GAP Forum] Linear representation of G2(q), q even In-Reply-To: <20081222125342.GA19155@beteigeuze> References: <494D08D1.9090607@math.u-szeged.hu> <20081222125342.GA19155@beteigeuze> Message-ID: <20081222183125.GB8275@unuk> Dear GAP-Forum, dear Gabor, here, in addition to Frank's comment, is an idea how to show that G_2(q) acts transitively and primitively on PG(5,q) whenever q is even: It is known that in any characteristic the Lie type graphs associated to the maximal parabolic subgroups of G_2(q) are isomorphic and primitive distance-transitive; see e.g. the book by Brouwer-Cohen-Neumaier. In particular, the maximal parabolic subgroups of G_2(q) are maximal subgroups of index (q^6-1)/(q-1). Hence it remains to show that, in characteristic 2, one of the maximal parabolic subgroups fixes a one-dimensional subspace of the fundamental representation of degree 6; this should be fairly easy using the given matrices, as the generators are probably sufficiently generic to derive generators of the maximal parabolic subgroups therefrom. Best wishes, J?rgen M?ller On Mon, Dec 22, 2008 at 01:53:42PM +0100, Frank L?beck wrote: > On Sat, Dec 20, 2008 at 04:01:37PM +0100, Nagy G?bor wrote: > > It is "well known" that for even prime power q, the exceptional Lie group > > G2(q) has two linear representations of dimension 6, both are transitive on > > the set of non-zero vectors. > > > > Can you suggest me some literature about this construction? > > > > I am escpecially interested in the question if the induced transitive > > representations on the 5-dimensional projective spaces PG(5,q) are > > primitive? > > Dear Gabor, dear Forum, > > I don't have a reference, but maybe the following is of some help. > > G2(q), q=2^f, has f irreducible representations in characteristic 2, > one of the fundamental representations and its Frobenius twists > (i.e., combinations with the field automorphism of GF(q)/GF(2)). > > I print below "generic" generators of G2(2^f), substitute the variable T > by Z(2^f) to get generators for some specific f. > > With this you can check for q = 2, 4, 8 in GAP that the action on non-zero > vectors is transitive and the action on PG(5, q) is primitive. I'm not sure > if one could somehow use these generators also to prove these properties in > general. > > Best regards, > > Frank > > And here are the matrices, these are generators of root subgroups: > > G2char2gens := > [ [ [ 1, T, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, 0, 1, T^2, 0, 0 ], > [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, T ], [ 0, 0, 0, 0, 0, 1 ] ], > [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, -T, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], > [ 0, 0, 0, 1, T, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ], > [ [ 1, 0, 0, 0, 0, 0 ], [ T, 1, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0 ], > [ 0, 0, T^2, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, T, 1 ] ], > [ [ 1, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0 ], [ 0, -T, 1, 0, 0, 0 ], > [ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, T, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ] ]; > > -- > /// 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/ \\\ > > _______________________________________________ > 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 Dec 23 15:30:52 2008 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Tue Dec 23 15:31:06 2008 Subject: [GAP Forum] 0*Z(5) in Group(Z(5)); In-Reply-To: <6a52effd0812140219q1a0fdfdcq4025d7fa17be626c@mail.gmail.com> References: <6a52effd0812140219q1a0fdfdcq4025d7fa17be626c@mail.gmail.com> Message-ID: <20081223153052.GC7996@gemma.math.rwth-aachen.de> Dear GAP Forum, Anvita wrote > Why can't GAP check whether Zero of a finite field is in its multiplicative > group? > > -------------------------------------------------------------------------- > gap> z:=Z(5); > Z(5) > gap> 0*z in Group(z); > LogFFE: must be a nonzero finite field element at > return elm in F and LogFFE( elm, PrimitiveRoot( F ) ) mod ((Size( F ) - 1) / > Size( G )) > = 0; > 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 > ---------------------------------------------------------------------------- Thanks for this report. This is indeed a shortcoming of the current GAP version, and unfortunately we did not fix this in the recent upgrade to GAP 4.4.12. By reading the GAP code appended below into GAP, you can get rid of this particular problem. Note, however, that you might still run into errors of the same kind, for example in situations where a membership test for a group is internally delegated to a membership test for another group, via a homomorphism, and where this homomorphism cannot compute an image for the given element. (One such situation is the check whether a zero matrix is contained in a matrix group.) We will fix also these problems in the next version of GAP. All the best, Thomas --------------------------------------------------------------------------- InstallMethod( \in, "for groups of FFE", IsElmsColls, [ IsFFE, IsGroup and IsFFECollection ], function( elm, G ) local F; F:= Field( Concatenation( GeneratorsOfGroup( G ), [ One( G ) ] ) ); return elm in F and not IsZero( elm ) and LogFFE( elm, PrimitiveRoot( F ) ) mod ( ( Size( F ) - 1 ) / Size( G ) ) = 0; end ); From vale02002 at yahoo.com Tue Dec 23 19:00:53 2008 From: vale02002 at yahoo.com (hossein akhlaghi) Date: Tue Dec 23 19:01:07 2008 Subject: [GAP Forum] (no subject) Message-ID: <21298.37374.qm@web31301.mail.mud.yahoo.com> I want to know how i can get the Brauer Table of PSL(4,4) modulo 7. I try to obtain it by GAP, but it return this message " #I??? computing class matrix for class of size >10^-6". Thanks for your help.?? From dima at ntu.edu.sg Wed Dec 24 03:24:14 2008 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed Dec 24 03:24:28 2008 Subject: [GAP Forum] (no subject) In-Reply-To: <21298.37374.qm@web31301.mail.mud.yahoo.com> References: <21298.37374.qm@web31301.mail.mud.yahoo.com> Message-ID: <668720bc0812231924i3cf1e9ddxbe380a2902a0b9dd@mail.gmail.com> Dear all, this message just means that GAP is doing a (long) computation... (In general, the messages beginning with #I are "informational".) So perhaps you just have to wait long enough - as you didn't get the GAP prompt back, right? HTH, Dmitrii 2008/12/24 hossein akhlaghi : > I want to know how i can get the Brauer Table of PSL(4,4) modulo 7. > I try to obtain it by GAP, but it return this message " #I computing class matrix for class of size >10^-6". > Thanks for your help. > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From justin at mac.com Thu Dec 25 01:09:35 2008 From: justin at mac.com (Justin C. Walker) Date: Thu Dec 25 01:10:30 2008 Subject: [GAP Forum] New update of GAP released In-Reply-To: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk> References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk> Message-ID: <1498089F-F2F6-43AD-BC4D-D695E9EDBB79@mac.com> Dear Forum, On Dec 19, 2008, at 04:23 , John McDermott wrote: > Following the recent announcement of GAP 4.4.11, we announce the > release of > GAP 4 release 4 update 12 (GAP 4.4.12 for short), which is available > now from > the GAP Web pages and FTP site. We have made this release quickly > after the > previous release due to the discovery of a bug introduced in GAP > 4.4.11 which > could cause GAP to crash whenever a GAP function was executed while > certain > loops or functions were parsed, for example via the hooks used for > prompt > colouring. I upgraded from p11 to p12, and then applied the recommended tests: gap> ReadTest(Filename(DirectoriesLibrary("tst"), "bugfix.tst")); I got one "error": + Record Element: must be a record (not a boolean) which comes from this line in "bugfix.tst": # 2008/04/03 (JS) gap> if LoadPackage( "atlasrep" ) <> fail then > g:= Group( AtlasGenerators( "HS", 1, 4 ).generators ); <---- > ConjugacyClassesMaximalSubgroups( g ); > fi; The problem is that AtlasGenerators( "HS", 1, 4 ) fails (returns 'fail'). FWIW, here's what GAP prints on startup (I have a workspace set up): GAP4, Version: 4.4.12 of 17-Dec-2008, i686-apple-darwin9.5.0-gcc Components: small 2.1, small2 2.0, small3 2.0, small4 1.0, small5 1.0, small6 1.0, small7 1.0, small8 1.0, small9 1.0, small10 0.2, id2 3.0, id3 2.1, id4 1.0, id5 1.0, id6 1.0, id9 1.0, id10 0.1, trans 1.0, prim 2.1 loaded. Packages: ACE 5.0, Alnuth 2.2.5, Polycyclic 2.4, nq 2.2, GAPDoc 1.2, AClib 1.1, CrystCat 1.1.3, Cryst 4.1.6, AtlasRep 1.4.0, CTblLib 1.1.3, TomLib 1.1.4, Automata 1.12, AutomGrp 1.1.4.1, FGA 1.1.0.1, AutPGrp 1.2, CRISP 1.3.2, FactInt 1.5.2, IRREDSOL 1.1.2, LAGUNA 3.4, Sophus 1.23, Polenta 1.2.7, ResClasses 2.5.3 loaded. Regards, Justin -- Justin C. Walker, Curmudgeon at Large Institute for the Absorption of Federal Funds ----------- My wife 'n kids 'n dogs are gone, I can't get Jesus on the phone, But Ol' Milwaukee's Best is my best friend. ----------- From frank.luebeck at math.rwth-aachen.de Sun Dec 28 16:07:36 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Sun Dec 28 16:07:59 2008 Subject: [GAP Forum] (no subject) In-Reply-To: <21298.37374.qm@web31301.mail.mud.yahoo.com> References: <21298.37374.qm@web31301.mail.mud.yahoo.com> Message-ID: <20081228160736.GA6576@beteigeuze> On Tue, Dec 23, 2008 at 11:00:53AM -0800, hossein akhlaghi wrote: > I want to know how i can get the Brauer Table of PSL(4,4) modulo 7. > I try to obtain it by GAP, but it return this message " #I??? computing class matrix for class of size >10^-6". This message just indicates that the computation of the (complex) character table of PSL(4,4) is quite hard: It takes 6 or more hours, depending on your computer. I think you cannot compute the 7-modular table with a simple GAP command. Nevertheless, the complex character table and the 7-modular table are available in GAP's character table library, e.g., try the following commands: LoadPackage("ctbllib"); tab := CharacterTable("L4(4)"); tabmod7 := tab mod 7; Display(tab); Display(tabmod7); LoadPackage("Browse"); Browse(tab); Browse(tabmod7); Hope this helps, 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 frank.luebeck at math.rwth-aachen.de Sun Dec 28 16:22:36 2008 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Sun Dec 28 16:22:54 2008 Subject: [GAP Forum] New update of GAP released In-Reply-To: <1498089F-F2F6-43AD-BC4D-D695E9EDBB79@mac.com> References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk> <1498089F-F2F6-43AD-BC4D-D695E9EDBB79@mac.com> Message-ID: <20081228162236.GB6576@beteigeuze> On Wed, Dec 24, 2008 at 05:09:35PM -0800, Justin C. Walker wrote: > Dear Forum, [...] > I upgraded from p11 to p12, and then applied the recommended tests: > gap> ReadTest(Filename(DirectoriesLibrary("tst"), "bugfix.tst")); > > I got one "error": > + Record Element: must be a record (not a boolean) > > which comes from this line in "bugfix.tst": > > # 2008/04/03 (JS) > gap> if LoadPackage( "atlasrep" ) <> fail then > > g:= Group( AtlasGenerators( "HS", 1, 4 ).generators ); <---- > > ConjugacyClassesMaximalSubgroups( g ); > > fi; > > The problem is that > AtlasGenerators( "HS", 1, 4 ) > fails (returns 'fail'). Dear Justin, dear Forum, This is probably harmless. When the command 'AtlasGenerators( "HS", 1, 4 );' is called for the first time, it tries to download the corresponding group generators from a server in London. (When successful, the result is cached in local files, and you don't need the online access if you use the same command again.) I guess that when you made the test as described, your computer was not online, or the access to the server in London didn't work at that moment. 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 justin at mac.com Sun Dec 28 17:36:17 2008 From: justin at mac.com (Justin Walker) Date: Sun Dec 28 17:37:10 2008 Subject: [GAP Forum] New update of GAP released In-Reply-To: <20081228162236.GB6576@beteigeuze> References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk> <1498089F-F2F6-43AD-BC4D-D695E9EDBB79@mac.com> <20081228162236.GB6576@beteigeuze> Message-ID: <5C3572B3-A7C8-465C-810B-47E444AF4FDC@mac.com> Dear Frank and Forum, On Dec 28, 2008, at 11:22 AM, Frank L?beck wrote: > On Wed, Dec 24, 2008 at 05:09:35PM -0800, Justin C. Walker wrote: >> Dear Forum, > [...] >> I upgraded from p11 to p12, and then applied the recommended tests: >> gap> ReadTest(Filename(DirectoriesLibrary("tst"), "bugfix.tst")); [snip] >> The problem is that >> AtlasGenerators( "HS", 1, 4 ) >> fails (returns 'fail'). > This is probably harmless. When the command 'AtlasGenerators( "HS", > 1, 4 );' > is called for the first time, it tries to download the corresponding > group > generators from a server in London. (When successful, the result is > cached > in local files, and you don't need the online access if you use the > same > command again.) > > I guess that when you made the test as described, your computer was > not > online, or the access to the server in London didn't work at that > moment. Thanks for your reply and explanation. This does not seem to be the problem, though. I got the failure above on my home system, which is always connected to the internet, and the failures were repeatable. Just now, from my laptop (I'm away from home), I upgraded to p12 (from p10), and ran the test. I got no failure. I then logged into my home system, and ran the test again, several times. Each time I got this failure. I then ran the test on both systems at the "same" time. I got the error on my home system, but not on my laptop. Thanks for any suggestions. Justin -- Justin C. Walker, Curmudgeon-At-Large Director Institute for the Enhancement of the Director's Income -------- "Weaseling out of things is what separates us from the animals. Well, except the weasel." - Homer J Simpson -------- From math136464 at yahoo.com Sun Dec 28 19:58:08 2008 From: math136464 at yahoo.com (Maryam Khatami) Date: Sun Dec 28 19:58:23 2008 Subject: [GAP Forum] question Message-ID: <333330.73813.qm@web111204.mail.gq1.yahoo.com> if (typeof YAHOO == "undefined") { var YAHOO = {}; } YAHOO.Shortcuts = YAHOO.Shortcuts || {}; YAHOO.Shortcuts.hasSensitiveText = false; YAHOO.Shortcuts.sensitivityType = []; YAHOO.Shortcuts.doUlt = false; YAHOO.Shortcuts.location = "us"; YAHOO.Shortcuts.document_id = 0; YAHOO.Shortcuts.document_type = ""; YAHOO.Shortcuts.document_title = "question"; YAHOO.Shortcuts.document_publish_date = ""; YAHOO.Shortcuts.document_author = "math136464@yahoo.com"; YAHOO.Shortcuts.document_url = ""; YAHOO.Shortcuts.document_tags = ""; YAHOO.Shortcuts.document_language = "english"; YAHOO.Shortcuts.annotationSet = { }; YAHOO.Shortcuts.headerID = "c2c05863049e34a3b927d8cb775999ff"; when I want to compute the brauer character of PSL(4,4)? modulo 7 for conjugacy classes of order 5 by GAP, I see this message: "# computing class matrix for class of size >10^6." ?what should I do? ? Thanks a lot From lenny at math.uga.edu Mon Dec 29 19:25:48 2008 From: lenny at math.uga.edu (lenny) Date: Mon Dec 29 19:25:55 2008 Subject: [GAP Forum] conjugacy class arrangement Message-ID: <4959243C.2000901@math.uga.edu> Dear forum, In computing conjugacy classes for a group, I believe that I got different arrangements of the classes for the same group, on the same computer, running the same version of gap at different times. I was using the default method for computing conjugacy classes. The manual says that the arrangement of classes depends on the method chosen. Is it possible that I could get different arrangements with the default method? What would be the best way to ensure a consistent arrangement? Thanks, Lenny Chastkofsky From ahulpke at gmail.com Mon Dec 29 20:38:03 2008 From: ahulpke at gmail.com (Alexander Hulpke) Date: Mon Dec 29 20:38:19 2008 Subject: [GAP Forum] conjugacy class arrangement In-Reply-To: <4959243C.2000901@math.uga.edu> References: <4959243C.2000901@math.uga.edu> Message-ID: Dear Forum, Dear Lenny Chaskofsky, > In computing conjugacy classes for a group, I believe that I got > different arrangements > of the classes for the same group, on the same computer, running the > same version of gap at different times. > I was using the default method for computing conjugacy classes. > The manual says that the arrangement of classes depends on the > method chosen. > Is it possible that I could get different arrangements with the > default method? Some of the methods for computing conjugacy classes(implicitly) use random numbers. Unless the sequence of commands used since the start of GAP is exactly the same, this can cause classes to be obtained in a different arrangement. > > What would be the best way to ensure a consistent arrangement? When computing from scratch, I fear one cannot do anything. (One would have to determine a ``canonical'' ordering of classes, but some classes are extremely hard to distinguish. (E.g. once you start looking at modular character tables). If you need consistency amongst different calculations, your best bet is probably to once compute the classes, and then use this arrangement of classes. You can do this by defining the group, computing the conjugacy classes and then either - Save a workspace, and have all your other calculations start with loading this workspace. or (for example if you cannot load the workspace because you already stared another calculation - Save information about the classes in a file and then (instead of computing the classes from scratch) create the classes from this stored information. Typically, representative and centralizer generators are sufficient information, to recreate classes very quickly. The following commands do for example such a save/load sequence: Saving classes of group G: save:=List(ConjugacyClasses(G),i->[Representative(i), GeneratorsOfGroup(StabilizerOfExternalSet(i))]);; PrintTo("savefile","save:=",save,";\n"); Loading classes and storing them in G (assuming we did not yet compute classes for G!): Read("savefile"); cl:=[]; for i in save do c:=ConjugacyClass(G,i[1]); SetStabilizerOfExternalSet(c,SubgroupNC(G,i[2])); Add(cl,c); od; SetConjugacyClasses(G,cl); At this point (the new) G now has the same classes as before. I hope this helps. Best wishes and a good 2009, Alexander Hulpke From A.C.Aitchison at dpmms.cam.ac.uk Tue Dec 30 07:07:08 2008 From: A.C.Aitchison at dpmms.cam.ac.uk (Dr Andrew C Aitchison) Date: Tue Dec 30 07:07:27 2008 Subject: [GAP Forum] New update of GAP released In-Reply-To: <1498089F-F2F6-43AD-BC4D-D695E9EDBB79@mac.com> References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk> <1498089F-F2F6-43AD-BC4D-D695E9EDBB79@mac.com> Message-ID: On Wed, 24 Dec 2008, Justin C. Walker wrote: > Dear Forum, > > On Dec 19, 2008, at 04:23 , John McDermott wrote: > >> Following the recent announcement of GAP 4.4.11, we announce the release of >> GAP 4 release 4 update 12 (GAP 4.4.12 for short), which is available now >> from >> the GAP Web pages and FTP site. We have made this release quickly after the >> previous release due to the discovery of a bug introduced in GAP 4.4.11 >> which >> could cause GAP to crash whenever a GAP function was executed while certain >> loops or functions were parsed, for example via the hooks used for prompt >> colouring. > > I upgraded from p11 to p12, and then applied the recommended tests: > gap> ReadTest(Filename(DirectoriesLibrary("tst"), "bugfix.tst")); > > I got one "error": > + Record Element: must be a record (not a boolean) There is a line before that message iun my error: /usr/gap4r4/pkg/atlasrep/datagens/HSG1-p100B0.m1: Permission denied + Record Element: must be a record (not a boolean) Running the test once as a user with write permission on the /usr/gap4r4/pkg/atlasrep/datagens/ directory the problem goes away for all users. Is this your problem too ? -- Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge A.C.Aitchison@dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna From justin at mac.com Tue Dec 30 14:11:58 2008 From: justin at mac.com (Justin Walker) Date: Tue Dec 30 14:13:29 2008 Subject: [GAP Forum] New update of GAP released In-Reply-To: References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk> <1498089F-F2F6-43AD-BC4D-D695E9EDBB79@mac.com> Message-ID: Dear Andrew and Forum, On Dec 30, 2008, at 2:07 AM, Dr Andrew C Aitchison wrote: > On Wed, 24 Dec 2008, Justin C. Walker wrote: > >> Dear Forum, >> >> On Dec 19, 2008, at 04:23 , John McDermott wrote: >> >>> Following the recent announcement of GAP 4.4.11, we announce the >>> release of >>> GAP 4 release 4 update 12 (GAP 4.4.12 for short), which is >>> available now from >>> the GAP Web pages and FTP site. We have made this release quickly >>> after the >>> previous release due to the discovery of a bug introduced in GAP >>> 4.4.11 which >>> could cause GAP to crash whenever a GAP function was executed >>> while certain >>> loops or functions were parsed, for example via the hooks used for >>> prompt >>> colouring. >> >> I upgraded from p11 to p12, and then applied the recommended tests: >> gap> ReadTest(Filename(DirectoriesLibrary("tst"), "bugfix.tst")); >> >> I got one "error": >> + Record Element: must be a record (not a boolean) > > There is a line before that message iun my error: > /usr/gap4r4/pkg/atlasrep/datagens/HSG1-p100B0.m1: Permission denied > + Record Element: must be a record (not a boolean) No; this does not occur in my system. Both systems are "personal"; I am the only user, and permission problems do not seem to be involved. Thanks for your comments. Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Enhancement of the Director's Income -------- When LuteFisk is outlawed, Only outlaws will have LuteFisk --------