Home > From hulpke at math.colostate.edu Fri Jan 4 19:35:13 2008

# From hulpke at math.colostate.edu Fri Jan 4 19:35:13 2008

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
References: <BAY116-F389196E09F49D16582DCFDD14C0@phx.gbl>
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");
<action epimorphism>
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
Date: Sat Jan 5 18:06:28 2008
Subject: [GAP Forum] Cartesian Group Direct Product
Message-ID: <BAY116-F3980C429D7625EC9D7C0C4D14D0@phx.gbl>

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 <hulpke@math.colostate.edu>
>CC: GAP Forum <forum@gap-system.org>
>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");
><action epimorphism>
>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
Date: Tue Jan 15 02:04:43 2008
Subject: FW: [GAP Forum] Cartesian Group Direct Product
Message-ID: <BAY116-W3973CD1F75D7977BA3CBB1D1470@phx.gbl>

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

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 <hulpke@math.colostate.edu>>To: PAUL HJELMSTAD <phjelmstad@msn.com>>CC: GAP Forum <forum@gap-system.org>>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');><action epimorphism>>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: <hiss-1080125173143.A0213916@sirius.math.rwth-aachen.de> 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: <fe34b49e0801270239k6b75751cla42f15ea77f1bab7@mail.gmail.com> 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:'. <screencopy> 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 <Enter> to end program C:\gap4r4\bin> </screencopy> <screencopy> 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> </screencopy> -- 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: <fe34b49e0801270239k6b75751cla42f15ea77f1bab7@mail.gmail.com> References: <fe34b49e0801270239k6b75751cla42f15ea77f1bab7@mail.gmail.com> 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 <resteban@mat.upv.es> 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 <ndroock1@gmail.com> [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:'. > > > <screencopy> > 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 <Enter> to end program > > C:\gap4r4\bin> > </screencopy> > > > <screencopy> > 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> > </screencopy> > > -- > 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: <fe34b49e0801270239k6b75751cla42f15ea77f1bab7@mail.gmail.com> <20080127141805.GA8823@upvnet.upv.es> Message-ID: <fe34b49e0801271208m5d016372l2e944ae4f2248354@mail.gmail.com> 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 <resteban@mat.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 <resteban@mat.upv.es> > > 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 <ndroock1@gmail.com> [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:'. > > > > > > <screencopy> > > 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 <Enter> to end program > > > > C:\gap4r4\bin> > > </screencopy> > > > > > > <screencopy> > > 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> > > </screencopy> > > > > -- > > 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 <rollandj@uwm.edu> -------------- 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
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
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
>> 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.]

<snip>

> 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
<rollandj@uwm.edu>

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
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
>> 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.

<snip>

> Best,
>
> Alexander Hulpke

Alexander,

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
<rollandj@uwm.edu>

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.

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
<rollandj@uwm.edu>

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

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
<rollandj@uwm.edu>

-------- 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 <rollandj@uwm.edu>
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
>> 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.

<snip>

> Best,
>
> Alexander Hulpke

Alexander,

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
<rollandj@uwm.edu>

_______________________________________________
Forum mailing list
Forum@mail.gap-system.org
http://mail.gap-system.org/mailman/listinfo/forum

--
--
Jeffrey Rolland
<rollandj@uwm.edu>

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: <z, s, t| s^3(st)^(-2), t^5(st^(-2),
zs(s^2ts^2t^3z)^(-1), zt(s^5ts^2tz)^(-1)>. (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
<rollandj@uwm.edu>

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?
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
<rollandj@uwm.edu>

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)?
References: <47ACD058.70703@uwm.edu>
Message-ID: <C708016C-A0CA-475E-9C5E-73D3F4015A36@math.colostate.edu>

Dear GAP Forum,

> 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: <z, s, t| s^3(st)^(-2), t^5(st^(-2),
> 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");
<free group on the generators [ 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;
<fp group on the generators [ z, s, t ]>

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]
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 > <rollandj@uwm.edu> > > -------- 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 <rollandj@uwm.edu> > 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. > > <snip> > >> 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 > <rollandj@uwm.edu> > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > -- > -- > Jeffrey Rolland > <rollandj@uwm.edu> > > _______________________________________________ > 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

<snip>

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
<rollandj@uwm.edu>

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)?
References: <47ACD058.70703@uwm.edu>
<C708016C-A0CA-475E-9C5E-73D3F4015A36@math.colostate.edu>

Alexander Hulpke wrote:
> Dear GAP Forum,
>
>
>> 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: <z, s, t| s^3(st)^(-2), t^5(st^(-2),
>> 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.)

<snip>

> 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.

<snip>

> Best,
>
> Alexander Hulpke

<snip>

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
<rollandj@uwm.edu>

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]
Message-ID: <C3D36A34.4AE4%dima@ntu.edu.sg>

Dear Jeffrey and Forum,

On 2/9/08 9:31 AM, "Jeffrey Rolland" <rollandj@uwm.edu> 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
> <rollandj@uwm.edu>

--
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

____________________________________________________________________________________
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

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]
References: <47ACCCDD.1010508@uwm.edu>
<82A1F8A3-B98F-4E5A-A750-F7534062B0B4@mac.com>
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 > > <snip> > > 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: <snip> 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 <snip> 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 <rollandj@uwm.edu> 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: <C3D4B811.4B00%dima@ntu.edu.sg> Dear Justin, On 2/10/08 6:35 AM, "Justin C. Walker" <justin@mac.com> 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: <C3D4B811.4B00%dima@ntu.edu.sg> References: <C3D4B811.4B00%dima@ntu.edu.sg> 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" <justin@mac.com> 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: <CF3D74BD-D5D9-45C1-8DCA-DFC99CE92C9C@csse.uwa.edu.au> 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...
References: <CF3D74BD-D5D9-45C1-8DCA-DFC99CE92C9C@csse.uwa.edu.au>
Message-ID: <8cf963450802110957m33350d19k4b06479cc6b67efb@mail.gmail.com>

On Feb 11, 2008 12:34 PM, Gordon Royle <gordon@csse.uwa.edu.au> 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: <CF3D74BD-D5D9-45C1-8DCA-DFC99CE92C9C@csse.uwa.edu.au> References: <CF3D74BD-D5D9-45C1-8DCA-DFC99CE92C9C@csse.uwa.edu.au> 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 <gordon@csse.uwa.edu.au> 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
References: <409319.59515.qm@web53306.mail.re2.yahoo.com>
Message-ID: <47B198FD.3060707@mathematik.uni-stuttgart.de>

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?

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)?

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.

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.

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.

?ngel

--
?ngel del R?o Mateos
Departamento de Matem?ticas
+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: <Pine.SOL.4.44.0802271635180.13855-100000@blackbird.math.ufl.edu>

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.
References: <Pine.SOL.4.44.0802271635180.13855-100000@blackbird.math.ufl.edu>
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
References: <409319.59515.qm@web53306.mail.re2.yahoo.com>
<47B198FD.3060707@mathematik.uni-stuttgart.de>
Message-ID: <alpine.LSU.1.00.0802271207350.21899@galois.math.ku.dk>

Dear Forum,

Some time ago Muniru Asiru asked the following question:

> 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?

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.
Message-ID: <Pine.SOL.4.44.0802281548510.22075-100000@blackbird.math.ufl.edu>

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.
References: <20080227234811.GA31235@beteigeuze>
<Pine.SOL.4.44.0802281548510.22075-100000@blackbird.math.ufl.edu>
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: <Pine.LNX.4.64.0802291010410.7980@pc000ffea6285d.math.ku.dk>

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.

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
...
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
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"]);
<free group on the generators [ 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];
<fp group on the generators [ a, b, 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: <QHLQMPEUQFVCOVJMQSNRNMDNHNQS.dongjc@njau.edu.cn>

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 ?

Vahid
__________________________
The IRMACS Centre (ASB 10905)
Simon Fraser University
8888 University Drive
Burnaby, BC V5A 1S6
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
References: <200803130618.m2D6IChH016446@rm-rstar.sfu.ca>
Message-ID: <B8E17BBE-118C-415B-B176-64E3C5406BBE@hoefling.name>

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: <Pine.LNX.4.64.0803131142170.19796@croever.nuigalway.ie>
<7BC4FCB2B695D64CBF525CEC6437532701BA3511@EVS1.ac.nuigalway.ie>
<Pine.LNX.4.64.0803131414350.19796@croever.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

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

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 <Enter> 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 <Enter> 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
Message-ID: <Q87635449-e782993136954f16cf1d0dc539048e51@pmq1.test.onet.pl>

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 <Enter> 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

---------------------------------
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)...

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?
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 <jbohanon2@gmail.com> 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,

> 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
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,

> 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
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,
>
>
>
>> 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
References: <6FE04480-9B05-45FF-86F7-AC6D4B5B85FD@uiuc.edu>
Message-ID: <B9DE467A-E36A-41B0-B86F-E4649837837D@math.colostate.edu>

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(<F>,<G>) . . . . . 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]);
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
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,

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" <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,

> 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: <a5c4cc260804030956i62fe0a13m93e3dbea52752d44@mail.gmail.com>

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
References: <200804081342.m38DgTaI001750@rkd.math.cornell.edu>
Message-ID: <20080408153822.48b7c9e9@cs.st-and.ac.uk>

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" <dennis@rkd.math.cornell.edu> 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
References: <200804081342.m38DgTaI001750@rkd.math.cornell.edu>
<20080408153822.48b7c9e9@cs.st-and.ac.uk>
Message-ID: <47FB8CCC.7050204@ms.uky.edu>

Steve Linton wrote:
>
> 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> 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
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:
>>
>> 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> 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
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 <function>( <arguments> ) 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.bartholdi<at>gmail<dot>com 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 > <function>( <arguments> ) 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 <jaijinenedra@yahoo.co.in> 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; <fp group on the generators [ f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16 ]> (this is my initial group) Gsimp:=SimplifiedFpGroup(G); <fp group on the generators [ f1, f2, f5, f6 ]> (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: <E141E42A-D854-4103-AE4F-33DFF02D103C@math.colostate.edu> 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 <dan_lanke@yahoo.com> 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,
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 <alis@ogu.edu.tr>
> 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
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

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
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
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.

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
References: <483BBE9E.5030800@cage.ugent.be>

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
<fvanhove@cage.ugent.be> 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.bartholdi<at>gmail<dot>com
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

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
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
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
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
Email: bob.heffernan@gmail.com
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: <d4db24520806070832g5cf0439di8a4b5c2048b2cae0@mail.gmail.com> On Sat, Jun 7, 2008 at 6:03 AM, Josef Lauri <josef.lauri@um.edu.mt> 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: <d4db24520806070832g5cf0439di8a4b5c2048b2cae0@mail.gmail.com> References: <6278987253416651402@unknownmsgid> <d4db24520806070832g5cf0439di8a4b5c2048b2cae0@mail.gmail.com> 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: <Q123605462-c82cb1cd97eadccc1a49635823d95312@pmq2.test.onet.pl> 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: <Q123605462-c82cb1cd97eadccc1a49635823d95312@pmq2.test.onet.pl> References: <Q123605462-c82cb1cd97eadccc1a49635823d95312@pmq2.test.onet.pl> Message-ID: <B0C5C117-982D-448C-B478-3458A3B8C2EC@math.colostate.edu> 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: <BE367AEE-79E6-4D47-8D19-0FA93247E312@math.colostate.edu> 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: <Q126651026-b1d27da692120ef172d9402f6e21b586@pmq3.test.onet.pl> 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: <BE367AEE-79E6-4D47-8D19-0FA93247E312@math.colostate.edu> References: <18533.28173.623608.712973@gargle.gargle.HOWL> <BE367AEE-79E6-4D47-8D19-0FA93247E312@math.colostate.edu> 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 <bob.heffernan@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. > > _______________________________________________ > 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
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 <josef.lauri@um.edu.mt> 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.bartholdi<at>gmail<dot>com
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

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: <Pine.LNX.4.64.0807140904240.6937@pc000ffea6285d.math.ku.dk>

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: <BAY132-W24443C5C153153B500104EFF8C0@phx.gbl>

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.)

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.
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
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
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
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
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
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
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 <am@ime.usp.br>:
> 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
> 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
> 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
> 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
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.

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.

[]
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
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
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));
<rcwa group over Z with 4 generators>

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);
<rcwa group over Z with 4 generators>
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
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.

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
References: <20080717221851.80cw6cpds0c4gk8g@webmail.auth.gr>

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?
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
> 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?
References: <50861.72.70.75.38.1216306524.squirrel@webmail.maths.qmul.ac.uk>
<4880631F.2040609@iem.uni-due.de>

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 <reiner@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 >> >> > > _______________________________________________ > 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: <Pine.SOC.4.64.0807182244001.1419@mangrove.itee.uq.edu.au> 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: <CDDE501C-8C66-4633-8C25-070A57247B3B@tamu.edu> 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: <CDDE501C-8C66-4633-8C25-070A57247B3B@tamu.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> <CDDE501C-8C66-4633-8C25-070A57247B3B@tamu.edu> 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> <CDDE501C-8C66-4633-8C25-070A57247B3B@tamu.edu> <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 <Ayan.Mahalanobis@stevens.edu> 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.bartholdi<at>gmail<dot>com 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> <CDDE501C-8C66-4633-8C25-070A57247B3B@tamu.edu> <4880BC25.1010309@stevens.edu> <1ff637850807181254m58f1c3aatb0a32917bdaafbd6@mail.gmail.com> Message-ID: <CF353C70-891A-4223-869F-64B2A012E3F7@tamu.edu> 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: <f1597cd80807181639u37e0df03hc72614f9440da85@mail.gmail.com> 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, <elm> lies not in group defined by <pcgs> 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)); ^ <permutation group with 16 generators> 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: <FC2BFF73-3278-411A-B732-25CB35C63767@math.uconn.edu> 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: <db123b0d0808060742w118399fcsb316cc1190d632a8@mail.gmail.com> 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: <db123b0d0808060742w118399fcsb316cc1190d632a8@mail.gmail.com> References: <db123b0d0808060742w118399fcsb316cc1190d632a8@mail.gmail.com> 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); <pc group of size 3 with 1 generators> 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); <pc group of size 2 with 1 generators> 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: <db123b0d0808060742w118399fcsb316cc1190d632a8@mail.gmail.com> <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: <db123b0d0808060742w118399fcsb316cc1190d632a8@mail.gmail.com> <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 <p.j.cameron@qmul.ac.uk> 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.bartholdi<at>gmail<dot>com 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: <CDCCBFAD-C111-46F2-9A6E-2F07C32169FC@gmail.com> 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); <field of size 78125> 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 <function>( <arguments> ) 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: <d4db24520808230703k461f4ff9s4d5440115c3fc9ac@mail.gmail.com> References: <6a52effd0808221925o30e71121r792750e50ffa73d7@mail.gmail.com> <d4db24520808230703k461f4ff9s4d5440115c3fc9ac@mail.gmail.com> Message-ID: <d4db24520808230729t3ebe6e29wcbb072867479482a@mail.gmail.com> On Fri, Aug 22, 2008 at 10:25 PM, Anvita <anvita21@gmail.com> 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); <vector space over GF(5), with 7 generators> gap> Dimension(G); 7 gap> Basis(G, b); Basis( <vector space of dimension 7 over GF(5)>, [ !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 (<anvita21@gmail.com>) 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); > <field of size 78125> > 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 <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: <A6A19818-9930-4975-94EC-68AF30F84BB2@mcs.st-and.ac.uk> 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: <CBBAE3DC-62D6-48B1-AFB6-852FA0185189@mcs.st-and.ac.uk> 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: <Pine.LNX.4.64.0809180046230.6119@lagrange.mit.edu> 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 <mailto: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: <FBDFE5F4-1716-4F39-AF13-06DAEDDEBF59@gmail.com> 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: <FBDFE5F4-1716-4F39-AF13-06DAEDDEBF59@gmail.com> References: <000d01c8a085$a702eb20$f508c160$@lauri@um.edu.mt>
<FBDFE5F4-1716-4F39-AF13-06DAEDDEBF59@gmail.com>
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
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 <p.j.cameron@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.
>
> _______________________________________________
> 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
References: <20080926150601.wc7gmia1kc0csocw@www.unitn.it>
Message-ID: <668720bc0809260813r1d99361bia7d97034c8ae87cc@mail.gmail.com>

Dear Willem, Peter, all,

2008/9/26 <degraaf@science.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).
What I wrote coincides with this, up to terminology.
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
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
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
References: <878wtfz3kg.wl%vkv@cs.utexas.edu>
Message-ID: <4D240D1A-26A9-48D8-8DF9-54251F3ECF7C@gmail.com>

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:

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(<L>,<filename>)

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
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],
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,
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
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 <ig@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 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
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
> 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

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

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
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" <A.Egri-Nagy@herts.ac.uk> 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
References: <91328.91964.qm@web45410.mail.sp1.yahoo.com>
Message-ID: <B1438775-D35C-4DA7-B252-E3FDBAF32B56@gmail.com>

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
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 <sal@cs.st-andrews.ac.uk>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" <A.Egri-Nagy@herts.ac.uk> 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 <http://www.cs.st-and.ac.uk/%7Esal>
> 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
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 <ault@fordham.edu> wrote:
From: Shaun V. Ault <ault@fordham.edu>
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
<dan_lanke@yahoo.
com> To
Sent by: forum@gap-system.org
forum-bounces@gap cc
-system.org
Subject
[GAP Forum] Symmetric bicharacters
10/08/2008 11:11
PM

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?
References: <48EE4001.8040501@gmail.com>
Message-ID: <EF2E2717-EC5E-4FAC-B0D9-028C0474F104@math.colostate.edu>

Dear Forum,

> 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);
<subgroup lattice of Sym( [ 1 .. 7 ] ), 37 classes,
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 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?
References: <48EE4001.8040501@gmail.com>
<EF2E2717-EC5E-4FAC-B0D9-028C0474F104@math.colostate.edu>
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,
>
>> 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);
> <subgroup lattice of Sym( [ 1 .. 7 ] ), 37 classes,
> 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?
References: <48EE4001.8040501@gmail.com>
<EF2E2717-EC5E-4FAC-B0D9-028C0474F104@math.colostate.edu>
<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,
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
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:

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");
<matrix group of size 51765179004000000 with 2 generators>

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,
> 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
References: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru>
<48F35142.4020801@ms.uky.edu>

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);
<permutation group of size 512 with 7 generators>

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:
>
> 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");
> <matrix group of size 51765179004000000 with 2 generators>
>
> 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,
>> 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
References: <403511172.1223889633.170478520.25165@mcgi53.rambler.ru>
Message-ID: <Pine.LNX.4.58.0810131311060.28307@respect.services.encs.concordia.ca>

There is a paper by K. Harada on SYlow 2-gps of
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: <bfe0024b0810131316v3ed4dfcbyc87f38b70bb6ace@mail.gmail.com>

Does GAP
--
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: <bfe0024b0810131352x7d39d336q2ac40422cf2e1007@mail.gmail.com>

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

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
Message-ID: <Pine.HPX.4.33.0810160832470.26050-100000@rzserv6i.rz.tu-bs.de>

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

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
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
<function>( <arguments> ) called from read-eval-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");
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: <Q161080315-c4804afc50a10a8a7e054c52d4d2de7e@pmq4.test.onet.pl>

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: <F24643C0-D514-4FB9-A35D-521A0C50185C@comlab.ox.ac.uk>

I have a group G on the points [1..n]. I know that for some m<n, G
maps the set of points [1..m] to itself. Is there an easy way I can
get G only on the points [1..m]?

Chris

From hulpke at math.colostate.edu Thu Oct 16 22:10:40 2008
From: hulpke at math.colostate.edu (Alexander Hulpke)
Date: Thu Oct 16 22:10:58 2008
Subject: [GAP Forum] Projection of Group onto subset of points
References: <F24643C0-D514-4FB9-A35D-521A0C50185C@comlab.ox.ac.uk>
Message-ID: <CD8804BD-518D-40F5-BF01-7EAF56CEAC09@math.colostate.edu>

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<n, G
> 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
References: <F24643C0-D514-4FB9-A35D-521A0C50185C@comlab.ox.ac.uk>
<CD8804BD-518D-40F5-BF01-7EAF56CEAC09@math.colostate.edu>
Message-ID: <E56E35AE-2F1C-4D67-A576-FF97DC72396A@comlab.ox.ac.uk>

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<n, G
>> 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
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.

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

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
<function>( <arguments> ) called from read-eval-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
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
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
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.
An easy but not very efficient solution is provided by the (currently
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 );
<group with 2 generators>
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
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( <M> )
##
## 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: <mat> 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
for v in [1..u] do
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);

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
> <function>( <arguments> ) 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: <bfe0024b0810281944m5e09442ajabf00f7126b701c4@mail.gmail.com>

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
--
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
References: <bfe0024b0810281944m5e09442ajabf00f7126b701c4@mail.gmail.com>
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
> --
> 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
References: <bfe0024b0810281944m5e09442ajabf00f7126b701c4@mail.gmail.com>
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)));
<fp group of size 8 on the generators [ F1, F2, F3 ]>
gap> SimplifiedFpGroup(G);
<fp group on the generators [ F1, F2 ]>
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 <jrobts@gmail.com> 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
> --
> 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
References: <668720bc0810160140n29df9c06qe5e5ed512e69f768@mail.gmail.com>
Message-ID: <BC2B2986-B654-413B-BA24-46961008C0E7@gmail.com>

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
> 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
> <function>( <arguments> ) 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

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

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)
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)
References: <491BBD21.80600@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 <jbohanon2@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 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)
References: <491BBD21.80600@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 <jbohanon2@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 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.
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=<P,Q,R> 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=<P,Q,R>, 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=<P,Q,R> 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=<P,Q,R>, 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=<P,Q,R> 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=<P,Q,R>, 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.

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
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,

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
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,
>
> _______________________________________________
> 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.

functionality
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

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
References: <493ECD88.6080603@gmail.com>
<200812111337.14970.h.dietrich@tu-bs.de>
Message-ID: <a5c4cc260812111151n3f79445cn47ea6b093b230348@mail.gmail.com>

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 <h.dietrich@tu-bs.de> 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,
> >
> > _______________________________________________
> > 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: <b97b3d8f0812111901m68a76d88w874a45aeb95cc4b4@mail.gmail.com>

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> 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> 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
References: <493ECD88.6080603@gmail.com>
<a5c4cc260812111151n3f79445cn47ea6b093b230348@mail.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,
>
> 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 <h.dietrich@tu-bs.de
> > <mailto:h.dietrich@tu-bs.de>> 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,
> > >
> > > _______________________________________________
> > > Forum mailing list
> > > Forum@mail.gap-system.org <mailto:Forum@mail.gap-system.org>
> > > http://mail.gap-system.org/mailman/listinfo/forum
> >
> > _______________________________________________
> > Forum mailing list
> > Forum@mail.gap-system.org <mailto: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
References: <493ECD88.6080603@gmail.com>
<a5c4cc260812111151n3f79445cn47ea6b093b230348@mail.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,
>>
>> 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 <h.dietrich@tu-bs.de
>>> <mailto:h.dietrich@tu-bs.de>> 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,
>>> >
>>> > _______________________________________________
>>> > Forum mailing list
>>> > Forum@mail.gap-system.org <mailto:Forum@mail.gap-system.org>
>>> > http://mail.gap-system.org/mailman/listinfo/forum
>>>
>>> _______________________________________________
>>> Forum mailing list
>>> Forum@mail.gap-system.org <mailto: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
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

Best wishes
Vahid Dabbaghian

_____________________________
The IRMACS Centre (ASB 10905)
Simon Fraser University
8888 University Drive
Burnaby, BC V5A 1S6
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: <b97b3d8f0812111901m68a76d88w874a45aeb95cc4b4@mail.gmail.com>

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> 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> 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> 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:

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?

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: <z> 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
<function>( <arguments> ) called from read-eval-loop
you can 'quit;' to quit to outer loop, or
you can replace <z> via 'return <z>;' 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
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

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
>
>
>
> _______________________________________________
> 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
References: <340284.77373.qm@web33406.mail.mud.yahoo.com>
<83218D33-DDD1-4F9E-921A-DBDC4560E5A6@gmail.com>
Message-ID: <a5c4cc260812160912q42b1a3d9wd7501a4e9f2737b9@mail.gmail.com>

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
>
>
> 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
References: <340284.77373.qm@web33406.mail.mud.yahoo.com>
<83218D33-DDD1-4F9E-921A-DBDC4560E5A6@gmail.com>
<a5c4cc260812160912q42b1a3d9wd7501a4e9f2737b9@mail.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
>>
>>
>> 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
Date: Fri Dec 19 11:11:03 2008
Subject: [GAP Forum] Obtaining Small Group information
References: <493ECD88.6080603@gmail.com>
<200812111337.14970.h.dietrich@tu-bs.de>
<a5c4cc260812111151n3f79445cn47ea6b093b230348@mail.gmail.com>
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,

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 <h.dietrich@tu-bs.de
> <mailto:h.dietrich@tu-bs.de>> 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,
> >
> > _______________________________________________
> > Forum mailing list
> > Forum@mail.gap-system.org <mailto:Forum@mail.gap-system.org>
> > http://mail.gap-system.org/mailman/listinfo/forum
>
>
> _______________________________________________
> Forum mailing list
> Forum@mail.gap-system.org <mailto: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.

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
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.

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
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.
>
>
> 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
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.
> >
> >
> > 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));
References: <6a52effd0812140219q1a0fdfdcq4025d7fa17be626c@mail.gmail.com>
Message-ID: <20081223153052.GC7996@gemma.math.rwth-aachen.de>

Dear GAP Forum,

Anvita <anvita21@gmail.com> 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: <z> 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
> <function>( <arguments> ) called from read-eval-loop
> Entering break read-eval-print loop ...
> you can 'quit;' to quit to outer loop, or
> you can replace <z> via 'return <z>;' 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".

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)
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 <vale02002@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".
>
>
>
> _______________________________________________
> 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
References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk>

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:

I got one "error":
+ Record Element: <rec> 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,
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,

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)
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:

tab := CharacterTable("L4(4)");
tabmod7 := tab mod 7;
Display(tab);
Display(tabmod7);
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
References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk>
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:
>
> I got one "error":
> + Record Element: <rec> 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
References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk>
<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:
[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.

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 <rec> 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 = {

};

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
References: <4959243C.2000901@math.uga.edu>
Message-ID: <D4DCDD7B-8E53-43B3-BB88-58B987D781D0@gmail.com>

> 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

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!):

cl:=[];
for i in save do
c:=ConjugacyClass(G,i[1]);
SetStabilizerOfExternalSet(c,SubgroupNC(G,i[2]));
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
References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk>
Message-ID: <Pine.LNX.4.64.0812300705110.6599@brambling.dpmms.cam.ac.uk>

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:
>
> I got one "error":
> + Record Element: <rec> 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: <rec> 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
References: <5E992698-AA16-411A-B8F3-628F34EE697B@mcs.st-andrews.ac.uk>
<Pine.LNX.4.64.0812300705110.6599@brambling.dpmms.cam.ac.uk>

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:
>>
>> I got one "error":
>> + Record Element: <rec> 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: <rec> 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.

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
--------