From phjelmstad at msn.com Fri Jan 2 20:49:42 2009 From: phjelmstad at msn.com (PAUL HJELMSTAD) Date: Fri Jan 2 20:50:10 2009 Subject: [GAP Forum] Is there a way Message-ID: GAP Forum, I am looking for a way to study groups based on complementation, for example, D4 X S3 X S2 where S2 is the complementation group of white and black beads in a two colored necklace (This is after the convention used in Gilbert and Riordan "Symmetry Types of Periodic Sequences, Ill. Journ. of Math. 1961) I would like to study these groups and construct character tables as well. An easy example is C4 X C3 X S2, here there are 44 necklaces with 6 white and 6 black beads and the others merely collapse (12/0, 11/1, 10/2, 9/3, 8/4 and 7/5) so the answer here has order 1+1+6+19+43+66+44=180 I am happy to say I finally completely understand the construction of character tables for the Symmetric Groups, small steps I guess. Thanks Paul From nicoletagramisteanu at yahoo.com Fri Jan 2 22:21:54 2009 From: nicoletagramisteanu at yahoo.com (Nicoleta Gramisteanu) Date: Fri Jan 2 22:22:13 2009 Subject: [GAP Forum] (no subject) Message-ID: <169168.18345.qm@web111006.mail.gq1.yahoo.com> Please give in your ideas and suggestions for best algorithm on the following problems : In a kiosk (a stand, sort of shop), they decided to make a discount ?if you buy two products, the cheaper is for free ?we have 2n products with prices p1, p2, ..., p2n ?order products in pair that the total cost? amount is minimized From hobbyd at newpaltz.edu Sat Jan 3 00:45:32 2009 From: hobbyd at newpaltz.edu (David Hobby) Date: Sat Jan 3 00:46:37 2009 Subject: [GAP Forum] (no subject) In-Reply-To: <169168.18345.qm@web111006.mail.gq1.yahoo.com> References: <169168.18345.qm@web111006.mail.gq1.yahoo.com> Message-ID: <495EB52C.3000901@newpaltz.edu> Nicoleta Gramisteanu wrote: > Please give in your ideas and suggestions for best algorithm on the following problems : > > In a kiosk (a stand, sort of shop), they decided to make a discount > if you buy two products, the cheaper is for free > we have 2n products with prices p1, p2, ..., p2n > order products in pair that the total cost amount is minimized Nicoleta-- Hi. Maybe I misunderstand the problem. It seems like the best algorithm is "put them in linear order by price, and then pair up adjacent ones". I believe there's an easy proof by induction on n that that gives an optimal set of pairs. Or please give a counter-example? ---David From nicoletagramisteanu at yahoo.com Sat Jan 3 19:10:01 2009 From: nicoletagramisteanu at yahoo.com (Nicoleta Gramisteanu) Date: Sat Jan 3 19:10:48 2009 Subject: [GAP Forum] shortest paths from s to every vertex of G Message-ID: <780620.80140.qm@web111004.mail.gq1.yahoo.com> Can you tell me how can i make more efficient this problems? We have a directed graph?and a function of weight w? we know that there is only one edge with a negative weight and that there is no cycle in the graph with negative weight ? we have s a vertex We have to find an algorithm that find the length of all the shortest paths? from s to every vertex of G From hobbyd at newpaltz.edu Sun Jan 4 02:08:27 2009 From: hobbyd at newpaltz.edu (David Hobby) Date: Sun Jan 4 02:09:38 2009 Subject: [GAP Forum] shortest paths from s to every vertex of G In-Reply-To: <18114.55883.qm@web111015.mail.gq1.yahoo.com> References: <780620.80140.qm@web111004.mail.gq1.yahoo.com> <496011A9.7000500@newpaltz.edu> <18114.55883.qm@web111015.mail.gq1.yahoo.com> Message-ID: <49601A1B.2080802@newpaltz.edu> Nicoleta Gramisteanu wrote: > No . I'm not student . Sorry. But consider trying references first? I'd never heard of the algorithm below either, but found it in a few minutes: http://en.wikipedia.org/wiki/Bellman-Ford_algorithm ---David ... > Nicoleta-- > > Hi. I don't mean to be insulting, but are > these homework problems? > > ---David > From cngap at yahoo.cn Sun Jan 11 14:47:10 2009 From: cngap at yahoo.cn (=?gb2312?B?vquzzw==?=) Date: Sun Jan 11 14:47:36 2009 Subject: [GAP Forum] How to construct complex field? Message-ID: <542865.89010.qm@web92108.mail.cnh.yahoo.com> Hi,everyone! I? am? a new man in this field. I want to know how to construct complex field?using GAP. I also want to know how to construct all irreducible modules of a?algebra $A$?over a field $k$.? Is there?a textbook on GAP,besides reference manual? Thank you! L Dai ___________________________________________________________ ????????????????? http://card.mail.cn.yahoo.com/ From alexander.konovalov at gmail.com Fri Jan 16 00:12:13 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Fri Jan 16 00:12:37 2009 Subject: [GAP Forum] TERMINFO In-Reply-To: <6a52effd0812122042j6b089c3em6f64aa8c66d047c0@mail.gmail.com> References: <6a52effd0812122042j6b089c3em6f64aa8c66d047c0@mail.gmail.com> Message-ID: <0E464304-0532-4EF9-9DCE-2992FD62C657@gmail.com> Dear Anvita, dear GAP Forum, On 13 Dec 2008, at 04:42, Anvita wrote: > Dear Forum, > > I have noticed the new line > > set TERMINFO=C:\GAP4R4\terminfo > > in the newly distributed file gap.bat and have the following > questions about > it: > > 1. Where can I find more information about the purpose of the > environment > variable "TERMINFO"? This is related with the support of the dynamically loaded modules in GAP 4.4.12 which allows Windows users now use IO, Browse and EDIM packages under Windows. In particular, TERMINFO is required to make the Browse package (http://www.math.rwth-aachen.de/~Browse/) working in Windows. > 2. Should this line be changed if the GAP installation directory is > other > than "C:\GAP4R4"? Yes, that's right. Though this will became critical only if you will use Browse package. > 3. After GAP is started, I still cannot see TERMINFO in the list of > variables shown by the "set" > command. Is this OK? I guess so - if you start GAP in one terminal window, it is set only for that session. Best wishes, Alexander From lee_bkua at yahoo.com Sat Jan 17 10:53:53 2009 From: lee_bkua at yahoo.com (Levie Bicua) Date: Sat Jan 17 10:54:17 2009 Subject: [GAP Forum] A simple question Message-ID: <360336.27437.qm@web33402.mail.mud.yahoo.com> Dear Gap forum, Let S be?the set as defined below:? ? S:=[ [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4), (1,5), (2,5), (1,6)(4,5) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4), (1,2)(3,6), (1,4)(2,3), (2,5)(3,6) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4), (1,2,5)(3,6), (1,4)(2,3) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (1,5)(2,3), (1,3), (1,5)(4,6) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (2,6)(3,4), (4,5), (2,4)(3,6) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (1,5)(2,6,3,4), (4,5) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4,5)(2,3), (1,3), (1,5)(4,6) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,5)(2,3), (2,6)(3,4), (1,5), (1,2)(3,6) ], [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,5)(2,3), (1,5,4,2,6,3), (1,5) ], [ (5,6), (2,3)(4,5), (3,5), (1,3)(2,6), (1,6)(3,5), (1,3), (1,5), (1,2)(4,6)] ]; ? Suppose from this set I will get only the element that does not have "1" in the cycle (i.e. in this particular example I want to get only this element: [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (2,6)(3,4), (4,5), (2,4)(3,6) ] ), how may I use GAP for this? Thanks. ? ?Levi From resteban at mat.upv.es Sat Jan 17 11:50:35 2009 From: resteban at mat.upv.es (Ramon Esteban-Romero) Date: Sat Jan 17 11:51:02 2009 Subject: [GAP Forum] A simple question In-Reply-To: <360336.27437.qm@web33402.mail.mud.yahoo.com> References: <360336.27437.qm@web33402.mail.mud.yahoo.com> Message-ID: <20090117115035.GC12406@upvnet.upv.es> Dear Levie, dear forum, I have used gap> Filtered(S, x -> ForAll(x, z -> 1^z=1)); [ [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (2,6)(3,4), (4,5), (2,4)(3,6) ] ] Is this what you need? If you want to obtain just the first element of this list, you can use First instead of Filtered. Best wishes, -- Ramon Clau p?blica PGP/Llave p?blica PGP/Clef publique PGP/PGP public key: http://www.rediris.es/cert/servicios/keyserver/ http://ttt.upv.es/~resteban/resteban.pgp Tel?fon/tel?fono/t?l?phone/phone: (+34)963877007 ext. 76676 * Levie Bicua [090117 12:39]: > > Dear Gap forum, > Let S be?the set as defined below:? > ? > S:=[ [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4), (1,5), (2,5), (1,6)(4,5) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4), (1,2)(3,6), (1,4)(2,3), (2,5)(3,6) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4), (1,2,5)(3,6), (1,4)(2,3) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (1,5)(2,3), (1,3), (1,5)(4,6) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (2,6)(3,4), (4,5), (2,4)(3,6) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (1,5)(2,6,3,4), (4,5) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,4,5)(2,3), (1,3), (1,5)(4,6) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,5)(2,3), (2,6)(3,4), (1,5), (1,2)(3,6) ], > [ (5,6), (2,3)(4,5), (3,5), (3,4), (1,5)(2,3), (1,5,4,2,6,3), (1,5) ], > [ (5,6), (2,3)(4,5), (3,5), (1,3)(2,6), (1,6)(3,5), (1,3), (1,5), (1,2)(4,6)] ]; > ? > Suppose from this set I will get only the element that does not have "1" in the cycle (i.e. in this particular example I want to get only this element: > [ (5,6), (2,3)(4,5), (3,5), (3,4), (2,3)(4,5), (2,6)(3,4), (4,5), (2,4)(3,6) ] ), > how may I use GAP for this? Thanks. > ? > ?Levi > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From mathpn59 at yahoo.com Sat Jan 17 14:51:54 2009 From: mathpn59 at yahoo.com (Takjk Taj) Date: Sat Jan 17 14:52:11 2009 Subject: [GAP Forum] Image homomorphism(Tensor sqaure) Message-ID: <714781.72454.qm@web44810.mail.sp1.yahoo.com> Dear GAP forum, Brown and Johnson Robertson proved in [*] for given a central extension 1 --> K ---> G ----> G/K ---->1 there is an exact sequence (A\otimesK)x(K\otimes A) \Stackrel {l} ------> K\otimesK ---> G\otimes G ---> 1 in which Im(I) is central. Can we calculate Im (l)? with GAP? every suggestion is welcome. Thanks *. Some Computations of Non-Abelian Tensor Products of Groups, JOURNAL OF ALGEBRA 111, 177-202 (1987). From graham.ellis at nuigalway.ie Sat Jan 17 21:09:08 2009 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Sat Jan 17 21:09:32 2009 Subject: [GAP Forum] Image homomorphism(Tensor sqaure) References: <714781.72454.qm@web44810.mail.sp1.yahoo.com> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1303AD279F@EVS1.ac.nuigalway.ie> The HAP function Trec:=NonabelianTensorSquare(G); returns a record with T:=Trec.group; the tensor square of G, and h:=Trec.pairing; the crossed pairing h(x,y):GxG --> T. This crossed pairing could be used to obtain the image of your homomorphism below. (Though I guess the exact sequence should be (K \otimes G) x (G\otimes K) ---> G \otimes G ---> (G/K)\otimes (G/K) ---> 1 if K is central in G. ) Graham School of Mathematics, Statistics and Applied Mathematics National University of Ireland, Galway http://hamilton.nuigalway.ie ________________________________ From: forum-bounces@gap-system.org on behalf of Takjk Taj Sent: Sat 17/01/2009 14:51 To: forum@gap-system.org Subject: [GAP Forum] Image homomorphism(Tensor sqaure) Dear GAP forum, Brown and Johnson Robertson proved in [*] for given a central extension 1 --> K ---> G ----> G/K ---->1 there is an exact sequence (A\otimesK)x(K\otimes A) \Stackrel {l} ------> K\otimesK ---> G\otimes G ---> 1 in which Im(I) is central. Can we calculate Im (l) with GAP? every suggestion is welcome. Thanks *. Some Computations of Non-Abelian Tensor Products of Groups, JOURNAL OF ALGEBRA 111, 177-202 (1987). _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From nagyg at math.u-szeged.hu Sun Jan 18 23:04:04 2009 From: nagyg at math.u-szeged.hu (=?ISO-8859-2?Q?Nagy_G=E1bor?=) Date: Sun Jan 18 23:03:37 2009 Subject: [GAP Forum] Transfinitely nilpotent groups Message-ID: <4973B564.8010009@math.u-szeged.hu> Dear Forum, Can somebody gime me a construction of a transfinitely upper nilpotent group of class bigger than omega? That is, I define the upper central series of G by Z_0(G)=1, Z_{k+1}(G)/Z_k(G)=Z(G/Z_k(G)) and Z_\kappa(G)=U_{k<\kappa} Z_k(G) for limit ordinals. I have Z_\kappa(G)=G for some ordinal \kappa. Are there examples where \kappa>\omega? In particular, what about \kappa=\omega+1? Thanks in advance, bye, Gabor From vdovin at math.nsc.ru Thu Jan 22 10:54:11 2009 From: vdovin at math.nsc.ru (Evgeny Vdovin) Date: Thu Jan 22 10:54:27 2009 Subject: [GAP Forum] bag with IsomorphismPermGroup Message-ID: <9451da800901220254n2cf64b75o5b423df31864c951@mail.gmail.com> Dear all, This program runs ok on my GAP F:=FreeGroup(1); G:=F/[F.1^5]; # Z_5 h:=NqEpimorphismNilpotentQuotient(G,1);; H:=Image(h); Size(H); # critical line IsomorphismPermGroup(H); but if I remove the "critical line" F:=FreeGroup(1); G:=F/[F.1^5]; # Z_5 h:=NqEpimorphismNilpotentQuotient(G,1);; H:=Image(h); IsomorphismPermGroup(H); it runs into error as follows: gap> F:=FreeGroup(1); gap> G:=F/[F.1^5]; # Z_5 gap> h:=NqEpimorphismNilpotentQuotient(G,1); [ f1 ] -> [ g1 ] gap> H:=Image(h); Pcp-group with orders [ 5 ] gap> IsomorphismPermGroup(H); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `IsomorphismPermGroup' on 1 arguments called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> I have no idea why choosing not to calculate Size(H) makes the program break. Can anyone help me out? -- Best Regards Prof. Vdovin Evgeny Institute of Mathematics pr-t Acad. Koptyug, 4 630090, Novosibirsk, Russia Office +7 383 3634540 Cellular +7 913 9475524 Fax +7 383 3332598 From graham.ellis at nuigalway.ie Fri Jan 23 17:26:36 2009 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Fri Jan 23 17:27:57 2009 Subject: [GAP Forum] Workshop on Applied Topology and Algebraic Statistics References: <1211470766.28395.4.camel@eastwood> <47C2E007B3E98F4E8BBC7997F007CE1303AD27D0@EVS1.ac.nuigalway.ie> <47C2E007B3E98F4E8BBC7997F007CE1303AD27D1@EVS1.ac.nuigalway.ie> <47C2E007B3E98F4E8BBC7997F007CE1303AD27D2@EVS1.ac.nuigalway.ie> <47C2E007B3E98F4E8BBC7997F007CE1303AD27D4@EVS1.ac.nuigalway.ie> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1303AD27DA@EVS1.ac.nuigalway.ie> DE BRUN WORKSHOP ON APPLIED TOPOLOGY AND ALGEBRAIC STATISTICS (FIRST ANNOUNCEMENT) >From June 29 to July 10, 2009, the de Brun Centre for Computational Algebra at NUI Galway, Ireland, is running a workshop consisting of the following four 5-lecture courses * Gunnar Carlsson (Stanford) Applied Topology * Marian Mrozek (Krakow) Computational Homology * Eva Riccomagno (Genoa) Algebraic Statistics *Henry Wynn (LSE) Algebraic Statistics plus talks contributed by participants. 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. The workshop is supported by Science Foundation Ireland. Some funding towards the cost of accommodation is available for a limited number of participants. For further information see: http://hamilton.nuigalway.ie/DeBrunCentre/SecondWorkshop.html The organizers, John Burns Graham Ellis Emil Skoldberg From symmetryholic at yahoo.ca Mon Jan 26 06:36:38 2009 From: symmetryholic at yahoo.ca (Don King) Date: Mon Jan 26 06:37:09 2009 Subject: [GAP Forum] Sampling elements in conjugacy classes of a symmetric group Message-ID: <681731.60975.qm@web111008.mail.gq1.yahoo.com> Hello, I`d like to sample some elements in a symmetric group of order n based on the ratio of conjugacy classes. For instance, if a symmetric group just has five conjugacy classes (this is just for illustration, not an actual symmetric group), Class 1: 10 memeber Class2: 20 members Class3: 30 memebers Class4: 20 members Class5: 10 memebers is it possible to pick random samples like 1,2,3,2,1 elements from each class based on the ratio of each conjugacy classes ?. Is there any way to pick random samples from each conjugacy class ?. Thank you. Sincerely, Don __________________________________________________________________ Looking for the perfect gift? Give the gift of Flickr! http://www.flickr.com/gift/ From symmetryholic at yahoo.ca Mon Jan 26 09:31:02 2009 From: symmetryholic at yahoo.ca (Don King) Date: Mon Jan 26 09:31:25 2009 Subject: [GAP Forum] Permutation Notation Message-ID: <828310.9109.qm@web111005.mail.gq1.yahoo.com> Hello, I am wondering if I can convert a cycle into a different notation. gap>? ConjugacyClasses(s10); ..... (1,2,5,10) ...... For instance, above one represents a mapping 1->2, 2->5, 5->10, 10->1. If I use a permutation notation for above one, ? 1 2 3 4 5?? 6 7 8 9 10 ??2?5 3 4 10 6 7 8 9? 1 is it possible to?print?a permutation?notation (or other similar?notation)?rather than?a cycle notation?? Thanks in advance. Don __________________________________________________________________ Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now at http://ca.toolbar.yahoo.com. From Bill.Allombert at math.u-bordeaux1.fr Mon Jan 26 12:20:17 2009 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Mon Jan 26 14:17:52 2009 Subject: [GAP Forum] Permutation Notation In-Reply-To: <828310.9109.qm@web111005.mail.gq1.yahoo.com> References: <828310.9109.qm@web111005.mail.gq1.yahoo.com> Message-ID: <20090126122017.GE25802@yellowpig> On Mon, Jan 26, 2009 at 01:31:02AM -0800, Don King wrote: > Hello, > I am wondering if I can convert a cycle into a different notation. > gap>? ConjugacyClasses(s10); > ..... > (1,2,5,10) > ...... > > For instance, above one represents a mapping 1->2, 2->5, 5->10, 10->1. > If I use a permutation notation for above one, > > ? 1 2 3 4 5?? 6 7 8 9 10 > ??2?5 3 4 10 6 7 8 9? 1 > > is it possible to?print?a permutation?notation (or other similar?notation)?rather than?a cycle notation?? You can use Permuted([1..10],(1,2,5,10)^-1); Cheers, Bill. From r.hartung at tu-braunschweig.de Mon Jan 26 12:26:25 2009 From: r.hartung at tu-braunschweig.de (Rene Hartung) Date: Mon Jan 26 14:17:54 2009 Subject: [GAP Forum] bag with IsomorphismPermGroup In-Reply-To: <9451da800901220254n2cf64b75o5b423df31864c951@mail.gmail.com> References: <9451da800901220254n2cf64b75o5b423df31864c951@mail.gmail.com> Message-ID: <200901261326.26459.r.hartung@tu-braunschweig.de> Dear Evgeny, sorry for the delay. The method NqEpimorphismNilpotentQuotient computes an epimorphism onto a PcpGroup. Since a PcpGroup might (in general) be infinite, the (current) method implemented for IsomorphismPermGroup asks for a group lying in the filter 'IsPcpGroup and IsFinite'. When computing the size of the group, the filter 'IsFinite' is set and the current method applies to your (finite) PcpGroup. If, on the other hand, the PcpGroup does not know whether it is finite or not, then there's no method implemented. This will be changed in an future update of polycyclic (it is already contained in the cvs-branch of gap). Cheers, ren\'e. On Thursday 22 January 2009 11:54, Evgeny Vdovin wrote: > Dear all, > This program runs ok on my GAP > > F:=FreeGroup(1); > G:=F/[F.1^5]; # Z_5 > h:=NqEpimorphismNilpotentQuotient(G,1);; > H:=Image(h); > Size(H); # critical line > IsomorphismPermGroup(H); > > but if I remove the "critical line" > > F:=FreeGroup(1); > G:=F/[F.1^5]; # Z_5 > h:=NqEpimorphismNilpotentQuotient(G,1);; > H:=Image(h); > IsomorphismPermGroup(H); > > it runs into error as follows: > > > gap> F:=FreeGroup(1); > > gap> G:=F/[F.1^5]; # Z_5 > > gap> h:=NqEpimorphismNilpotentQuotient(G,1); > [ f1 ] -> [ g1 ] > gap> H:=Image(h); > Pcp-group with orders [ 5 ] > gap> IsomorphismPermGroup(H); > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 2nd choice method found for `IsomorphismPermGroup' on 1 > arguments called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > > I have no idea why choosing not to calculate Size(H) makes the program > break. > Can anyone help me out? From alexander.konovalov at gmail.com Mon Jan 26 21:07:26 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon Jan 26 21:07:43 2009 Subject: [GAP Forum] Permutation Notation In-Reply-To: <20090126122017.GE25802@yellowpig> References: <828310.9109.qm@web111005.mail.gq1.yahoo.com> <20090126122017.GE25802@yellowpig> Message-ID: <0A46F8F6-752C-4965-A2AF-13D42A5CD87B@gmail.com> On 26 Jan 2009, at 12:20, Bill Allombert wrote: > On Mon, Jan 26, 2009 at 01:31:02AM -0800, Don King wrote: >> Hello, >> I am wondering if I can convert a cycle into a different notation. >> gap> ConjugacyClasses(s10); >> ..... >> (1,2,5,10) >> ...... >> >> For instance, above one represents a mapping 1->2, 2->5, 5->10, 10- >> >1. >> If I use a permutation notation for above one, >> >> 1 2 3 4 5 6 7 8 9 10 >> 2 5 3 4 10 6 7 8 9 1 >> >> is it possible to print a permutation notation (or other similar >> notation) rather than a cycle notation ? > > You can use > Permuted([1..10],(1,2,5,10)^-1); Hello, there is also a function ListPerm(perm) which returns a list that contains the images of the positive integers under the permutation perm. That means that list[i] = i^perm, where i lies between 1 and the largest point moved by perm (see LargestMovedPoint). For example, gap> ListPerm((1,2,5,10)); [ 2, 5, 3, 4, 10, 6, 7, 8, 9, 1 ] gap> ListPerm((1,2,5,9)); [ 2, 5, 3, 4, 9, 6, 7, 8, 1 ] Note that the length of the list is equal to the LargestMovedPoint(perm), so dependently on your problem you might be interested in adding the "tail" to the resulting list or might be not. Also, the bigger is input the more visible is that ListPerm is faster, e.g.: gap> s:=Random(SymmetricGroup(10000));; gap> LargestMovedPoint(s); 10000 gap> for i in [1..10000] do ListPerm(s);od;time; 2317 gap> for i in [1..10000] do Permuted([1..10000],s^-1);od;time; 5022 Best wishes, Alexander From elahehkhamseh at gmail.com Thu Jan 29 07:01:30 2009 From: elahehkhamseh at gmail.com (Elaheh khamseh) Date: Thu Jan 29 07:01:40 2009 Subject: [GAP Forum] Quastion Message-ID: Dears If possible to determin the automorphism of Z_{p^i} in GAP. I want to know the number of fixed elements under automorphisms. Yours; Khamseh. From symmetryholic at yahoo.ca Thu Jan 29 09:10:43 2009 From: symmetryholic at yahoo.ca (Don King) Date: Thu Jan 29 09:11:03 2009 Subject: [GAP Forum] Array of ListPerm Message-ID: <31971.97045.qm@web111012.mail.gq1.yahoo.com> Hello, I am having difficulty in converting cycles to the list of permutations. gap> s := SymmetricGroup(6); Sym( [ 1 .. 6 ] ) gap> ConjugacyClasses(s); [ ()^G, (1,2)^G, (1,2)(3,4)^G, (1,2)(3,4)(5,6)^G, (1,2,3)^G, (1,2,3)(4,5)^G, ? (1,2,3)(4,5,6)^G, (1,2,3,4)^G, (1,2,3,4)(5,6)^G, (1,2,3,4,5)^G, ? (1,2,3,4,5,6)^G ] gap> c := ConjugacyClass(s,(1,2,3)(4,5)); (1,2,3)(4,5)^G gap> Size(c); 120 gap> for i in [1.. 120] do ListPerm(c); >? (Syntax Error !) What I'd like to do is to get 120 list of permutations for above formatted like [1, 3, 4, 5, 2, 6], [ 2,3, 4, 5, 6, 1],etc. Any help will be highly appreciated. Don __________________________________________________________________ Instant Messaging, free SMS, sharing photos and more... Try the new Yahoo! Canada Messenger at http://ca.beta.messenger.yahoo.com/ From ONdiweni at ufh.ac.za Thu Jan 29 09:39:05 2009 From: ONdiweni at ufh.ac.za (Ndiweni, Odilo) Date: Thu Jan 29 09:41:21 2009 Subject: [GAP Forum] RE: Forum Digest, Vol 62, Issue 2 References: <200901290913.n0T9D6Nw005414@gap-system.org> Message-ID: <6ACF706B6B5FDD4885C57C0791B042E4013AE5A0@AL-TSC-CL01-EX.ufh-domain.local> Dear all will love to identify elements of subgroups of dihedral groups using GAP.I am still a novice in the use of the language and will be glad to get all sort of ways. sincerely Odilo Ndiweni Mathematics Dept (Pure and Applied) UFH Phone: 040-602-2370 Cell: 0762337318 Email: ondiweni@ufh.ac.za ________________________________ From: forum-bounces@gap-system.org on behalf of forum-request@gap-system.org Sent: Thu 2009/01/29 11:13 AM To: forum@gap-system.org Subject: Forum Digest, Vol 62, Issue 2 Send Forum mailing list submissions to forum@mail.gap-system.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.gap-system.org/mailman/listinfo/forum or, via email, send a message with subject or body 'help' to forum-request@mail.gap-system.org You can reach the person managing the list at forum-owner@mail.gap-system.org When replying, please edit your Subject line so it is more specific than "Re: Contents of Forum digest..." Today's Topics: 1. Transfinitely nilpotent groups (Nagy G?bor) 2. bag with IsomorphismPermGroup (Evgeny Vdovin) 3. Workshop on Applied Topology and Algebraic Statistics (Ellis, Grahamj) 4. Sampling elements in conjugacy classes of a symmetric group (Don King) 5. Permutation Notation (Don King) 6. Re: Permutation Notation (Bill Allombert) 7. Re: bag with IsomorphismPermGroup (Rene Hartung) 8. Re: Permutation Notation (Alexander Konovalov) 9. Quastion (Elaheh khamseh) 10. Array of ListPerm (Don King) ---------------------------------------------------------------------- Message: 1 Date: Mon, 19 Jan 2009 00:04:04 +0100 From: Nagy G?bor Subject: [GAP Forum] Transfinitely nilpotent groups To: forum@gap-system.org Message-ID: <4973B564.8010009@math.u-szeged.hu> Content-Type: text/plain; charset=ISO-8859-2; format=flowed Dear Forum, Can somebody gime me a construction of a transfinitely upper nilpotent group of class bigger than omega? That is, I define the upper central series of G by Z_0(G)=1, Z_{k+1}(G)/Z_k(G)=Z(G/Z_k(G)) and Z_\kappa(G)=U_{k<\kappa} Z_k(G) for limit ordinals. I have Z_\kappa(G)=G for some ordinal \kappa. Are there examples where \kappa>\omega? In particular, what about \kappa=\omega+1? Thanks in advance, bye, Gabor ------------------------------ Message: 2 Date: Thu, 22 Jan 2009 16:54:11 +0600 From: Evgeny Vdovin Subject: [GAP Forum] bag with IsomorphismPermGroup To: forum@gap-system.org Message-ID: <9451da800901220254n2cf64b75o5b423df31864c951@mail.gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Dear all, This program runs ok on my GAP F:=FreeGroup(1); G:=F/[F.1^5]; # Z_5 h:=NqEpimorphismNilpotentQuotient(G,1);; H:=Image(h); Size(H); # critical line IsomorphismPermGroup(H); but if I remove the "critical line" F:=FreeGroup(1); G:=F/[F.1^5]; # Z_5 h:=NqEpimorphismNilpotentQuotient(G,1);; H:=Image(h); IsomorphismPermGroup(H); it runs into error as follows: gap> F:=FreeGroup(1); gap> G:=F/[F.1^5]; # Z_5 gap> h:=NqEpimorphismNilpotentQuotient(G,1); [ f1 ] -> [ g1 ] gap> H:=Image(h); Pcp-group with orders [ 5 ] gap> IsomorphismPermGroup(H); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `IsomorphismPermGroup' on 1 arguments called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> I have no idea why choosing not to calculate Size(H) makes the program break. Can anyone help me out? -- Best Regards Prof. Vdovin Evgeny Institute of Mathematics pr-t Acad. Koptyug, 4 630090, Novosibirsk, Russia Office +7 383 3634540 Cellular +7 913 9475524 Fax +7 383 3332598 ------------------------------ Message: 3 Date: Fri, 23 Jan 2009 17:26:36 -0000 From: "Ellis, Grahamj" Subject: [GAP Forum] Workshop on Applied Topology and Algebraic Statistics To: Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1303AD27DA@EVS1.ac.nuigalway.ie> Content-Type: text/plain; charset="iso-8859-1" DE BRUN WORKSHOP ON APPLIED TOPOLOGY AND ALGEBRAIC STATISTICS (FIRST ANNOUNCEMENT) >From June 29 to July 10, 2009, the de Brun Centre for Computational Algebra at NUI Galway, Ireland, is running a workshop consisting of the following four 5-lecture courses * Gunnar Carlsson (Stanford) Applied Topology * Marian Mrozek (Krakow) Computational Homology * Eva Riccomagno (Genoa) Algebraic Statistics *Henry Wynn (LSE) Algebraic Statistics plus talks contributed by participants. 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. The workshop is supported by Science Foundation Ireland. Some funding towards the cost of accommodation is available for a limited number of participants. For further information see: http://hamilton.nuigalway.ie/DeBrunCentre/SecondWorkshop.html The organizers, John Burns Graham Ellis Emil Skoldberg ------------------------------ Message: 4 Date: Sun, 25 Jan 2009 22:36:38 -0800 (PST) From: Don King Subject: [GAP Forum] Sampling elements in conjugacy classes of a symmetric group To: forum@gap-system.org Message-ID: <681731.60975.qm@web111008.mail.gq1.yahoo.com> Content-Type: text/plain; charset=us-ascii Hello, I`d like to sample some elements in a symmetric group of order n based on the ratio of conjugacy classes. For instance, if a symmetric group just has five conjugacy classes (this is just for illustration, not an actual symmetric group), Class 1: 10 memeber Class2: 20 members Class3: 30 memebers Class4: 20 members Class5: 10 memebers is it possible to pick random samples like 1,2,3,2,1 elements from each class based on the ratio of each conjugacy classes ?. Is there any way to pick random samples from each conjugacy class ?. Thank you. Sincerely, Don __________________________________________________________________ Looking for the perfect gift? Give the gift of Flickr! http://www.flickr.com/gift/ ------------------------------ Message: 5 Date: Mon, 26 Jan 2009 01:31:02 -0800 (PST) From: Don King Subject: [GAP Forum] Permutation Notation To: forum@gap-system.org Message-ID: <828310.9109.qm@web111005.mail.gq1.yahoo.com> Content-Type: text/plain; charset=iso-8859-1 Hello, I am wondering if I can convert a cycle into a different notation. gap> ConjugacyClasses(s10); ..... (1,2,5,10) ...... For instance, above one represents a mapping 1->2, 2->5, 5->10, 10->1. If I use a permutation notation for above one, 1 2 3 4 5 6 7 8 9 10 2 5 3 4 10 6 7 8 9 1 is it possible to print a permutation notation (or other similar notation) rather than a cycle notation ? Thanks in advance. Don __________________________________________________________________ Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now at http://ca.toolbar.yahoo.com . ------------------------------ Message: 6 Date: Mon, 26 Jan 2009 13:20:17 +0100 From: Bill Allombert Subject: Re: [GAP Forum] Permutation Notation To: forum@gap-system.org Message-ID: <20090126122017.GE25802@yellowpig> Content-Type: text/plain; charset=iso-8859-1 On Mon, Jan 26, 2009 at 01:31:02AM -0800, Don King wrote: > Hello, > I am wondering if I can convert a cycle into a different notation. > gap> ConjugacyClasses(s10); > ..... > (1,2,5,10) > ...... > > For instance, above one represents a mapping 1->2, 2->5, 5->10, 10->1. > If I use a permutation notation for above one, > > 1 2 3 4 5 6 7 8 9 10 > 2 5 3 4 10 6 7 8 9 1 > > is it possible to print a permutation notation (or other similar notation) rather than a cycle notation ? You can use Permuted([1..10],(1,2,5,10)^-1); Cheers, Bill. ------------------------------ Message: 7 Date: Mon, 26 Jan 2009 13:26:25 +0100 From: Rene Hartung Subject: Re: [GAP Forum] bag with IsomorphismPermGroup To: forum@gap-system.org, Evgeny Vdovin Message-ID: <200901261326.26459.r.hartung@tu-braunschweig.de> Content-Type: text/plain; charset="iso-8859-1" Dear Evgeny, sorry for the delay. The method NqEpimorphismNilpotentQuotient computes an epimorphism onto a PcpGroup. Since a PcpGroup might (in general) be infinite, the (current) method implemented for IsomorphismPermGroup asks for a group lying in the filter 'IsPcpGroup and IsFinite'. When computing the size of the group, the filter 'IsFinite' is set and the current method applies to your (finite) PcpGroup. If, on the other hand, the PcpGroup does not know whether it is finite or not, then there's no method implemented. This will be changed in an future update of polycyclic (it is already contained in the cvs-branch of gap). Cheers, ren\'e. On Thursday 22 January 2009 11:54, Evgeny Vdovin wrote: > Dear all, > This program runs ok on my GAP > > F:=FreeGroup(1); > G:=F/[F.1^5]; # Z_5 > h:=NqEpimorphismNilpotentQuotient(G,1);; > H:=Image(h); > Size(H); # critical line > IsomorphismPermGroup(H); > > but if I remove the "critical line" > > F:=FreeGroup(1); > G:=F/[F.1^5]; # Z_5 > h:=NqEpimorphismNilpotentQuotient(G,1);; > H:=Image(h); > IsomorphismPermGroup(H); > > it runs into error as follows: > > > gap> F:=FreeGroup(1); > > gap> G:=F/[F.1^5]; # Z_5 > > gap> h:=NqEpimorphismNilpotentQuotient(G,1); > [ f1 ] -> [ g1 ] > gap> H:=Image(h); > Pcp-group with orders [ 5 ] > gap> IsomorphismPermGroup(H); > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 2nd choice method found for `IsomorphismPermGroup' on 1 > arguments called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > > I have no idea why choosing not to calculate Size(H) makes the program > break. > Can anyone help me out? ------------------------------ Message: 8 Date: Mon, 26 Jan 2009 21:07:26 +0000 From: Alexander Konovalov Subject: Re: [GAP Forum] Permutation Notation To: forum@gap-system.org Cc: Don King , Bill Allombert Message-ID: <0A46F8F6-752C-4965-A2AF-13D42A5CD87B@gmail.com> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes On 26 Jan 2009, at 12:20, Bill Allombert wrote: > On Mon, Jan 26, 2009 at 01:31:02AM -0800, Don King wrote: >> Hello, >> I am wondering if I can convert a cycle into a different notation. >> gap> ConjugacyClasses(s10); >> ..... >> (1,2,5,10) >> ...... >> >> For instance, above one represents a mapping 1->2, 2->5, 5->10, 10- >> >1. >> If I use a permutation notation for above one, >> >> 1 2 3 4 5 6 7 8 9 10 >> 2 5 3 4 10 6 7 8 9 1 >> >> is it possible to print a permutation notation (or other similar >> notation) rather than a cycle notation ? > > You can use > Permuted([1..10],(1,2,5,10)^-1); Hello, there is also a function ListPerm(perm) which returns a list that contains the images of the positive integers under the permutation perm. That means that list[i] = i^perm, where i lies between 1 and the largest point moved by perm (see LargestMovedPoint). For example, gap> ListPerm((1,2,5,10)); [ 2, 5, 3, 4, 10, 6, 7, 8, 9, 1 ] gap> ListPerm((1,2,5,9)); [ 2, 5, 3, 4, 9, 6, 7, 8, 1 ] Note that the length of the list is equal to the LargestMovedPoint(perm), so dependently on your problem you might be interested in adding the "tail" to the resulting list or might be not. Also, the bigger is input the more visible is that ListPerm is faster, e.g.: gap> s:=Random(SymmetricGroup(10000));; gap> LargestMovedPoint(s); 10000 gap> for i in [1..10000] do ListPerm(s);od;time; 2317 gap> for i in [1..10000] do Permuted([1..10000],s^-1);od;time; 5022 Best wishes, Alexander ------------------------------ Message: 9 Date: Thu, 29 Jan 2009 10:31:30 +0330 From: Elaheh khamseh Subject: [GAP Forum] Quastion To: forum@gap-system.org Message-ID: Content-Type: text/plain; charset=ISO-8859-1 Dears If possible to determin the automorphism of Z_{p^i} in GAP. I want to know the number of fixed elements under automorphisms. Yours; Khamseh. ------------------------------ Message: 10 Date: Thu, 29 Jan 2009 01:10:43 -0800 (PST) From: Don King Subject: [GAP Forum] Array of ListPerm To: forum@gap-system.org Message-ID: <31971.97045.qm@web111012.mail.gq1.yahoo.com> Content-Type: text/plain; charset=iso-8859-1 Hello, I am having difficulty in converting cycles to the list of permutations. gap> s := SymmetricGroup(6); Sym( [ 1 .. 6 ] ) gap> ConjugacyClasses(s); [ ()^G, (1,2)^G, (1,2)(3,4)^G, (1,2)(3,4)(5,6)^G, (1,2,3)^G, (1,2,3)(4,5)^G, (1,2,3)(4,5,6)^G, (1,2,3,4)^G, (1,2,3,4)(5,6)^G, (1,2,3,4,5)^G, (1,2,3,4,5,6)^G ] gap> c := ConjugacyClass(s,(1,2,3)(4,5)); (1,2,3)(4,5)^G gap> Size(c); 120 gap> for i in [1.. 120] do ListPerm(c); > (Syntax Error !) What I'd like to do is to get 120 list of permutations for above formatted like [1, 3, 4, 5, 2, 6], [ 2,3, 4, 5, 6, 1],etc. Any help will be highly appreciated. Don __________________________________________________________________ Instant Messaging, free SMS, sharing photos and more... Try the new Yahoo! Canada Messenger at http://ca.beta.messenger.yahoo.com/ ------------------------------ _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum End of Forum Digest, Vol 62, Issue 2 ************************************ The University of Fort Hare subscribes to an e-mail disclaimer. Please click on the following URL to read further: http://www.ufh.ac.za/disclaimer/ From chris.jefferson at comlab.ox.ac.uk Thu Jan 29 09:42:07 2009 From: chris.jefferson at comlab.ox.ac.uk (Christopher Jefferson) Date: Thu Jan 29 09:42:46 2009 Subject: [GAP Forum] Array of ListPerm In-Reply-To: <31971.97045.qm@web111012.mail.gq1.yahoo.com> References: <31971.97045.qm@web111012.mail.gq1.yahoo.com> Message-ID: There may well be better ways of doing this, but: On 29 Jan 2009, at 09:10, Don King wrote: > Hello, > > I am having difficulty in converting cycles to the list of > permutations. > > gap> s := SymmetricGroup(6); > Sym( [ 1 .. 6 ] ) > gap> ConjugacyClasses(s); > [ ()^G, (1,2)^G, (1,2)(3,4)^G, (1,2)(3,4)(5,6)^G, (1,2,3)^G, (1,2,3) > (4,5)^G, > (1,2,3)(4,5,6)^G, (1,2,3,4)^G, (1,2,3,4)(5,6)^G, (1,2,3,4,5)^G, > (1,2,3,4,5,6)^G ] > gap> c := ConjugacyClass(s,(1,2,3)(4,5)); > (1,2,3)(4,5)^G > gap> Size(c); > 120 c isn't a list, so do: l := List(c); then > > gap> for i in [1.. 120] do ListPerm(c); for i in [1..120] do ListPerm(l[i]); od; Note that won't print anything, do Print(ListPerm(l[i])) to see what's going on. Chris > >> (Syntax Error !) > > What I'd like to do is to get 120 list of permutations for above > formatted like [1, 3, 4, 5, 2, 6], [ 2,3, 4, 5, 6, 1],etc. > > Any help will be highly appreciated. > Don > > > > __________________________________________________________________ > Instant Messaging, free SMS, sharing photos and more... Try the new > Yahoo! Canada Messenger at http://ca.beta.messenger.yahoo.com/ > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jwk at stack.nl Thu Jan 29 10:44:31 2009 From: jwk at stack.nl (Jan Willem Knopper) Date: Thu Jan 29 10:44:39 2009 Subject: [GAP Forum] Array of ListPerm In-Reply-To: <31971.97045.qm@web111012.mail.gq1.yahoo.com> References: <31971.97045.qm@web111012.mail.gq1.yahoo.com> Message-ID: <20090129104431.GA30725@stack.nl> Don King wrote: > Hello, > > I am having difficulty in converting cycles to the list of permutations. > > gap> s := SymmetricGroup(6); > Sym( [ 1 .. 6 ] ) > gap> ConjugacyClasses(s); > [ ()^G, (1,2)^G, (1,2)(3,4)^G, (1,2)(3,4)(5,6)^G, (1,2,3)^G, (1,2,3)(4,5)^G, > ? (1,2,3)(4,5,6)^G, (1,2,3,4)^G, (1,2,3,4)(5,6)^G, (1,2,3,4,5)^G, > ? (1,2,3,4,5,6)^G ] > gap> c := ConjugacyClass(s,(1,2,3)(4,5)); > (1,2,3)(4,5)^G > gap> Size(c); > 120 > gap> for i in [1.. 120] do ListPerm(c); > >? (Syntax Error !) > The value of the variable c is not a permutation, but a conjugacy class. What you probably want is to use for perm in Iterator(c) do ...; od; or List(Elements(c), perm -> ListPerm(perm)); In a recent question on this list it has been asked how to convert a permutation to a list representation. Here it was noted that ListPerm(perm) returns a list, which is as long as the largest moved point : LargestMovedPoint(perm). A command to get a list which is always of length 6 it is: List(Elements(c), perm -> Permuted([1..6],perm^-1);od; Regards, Jan Willem Knopper From mathpn59 at yahoo.com Fri Jan 30 07:20:13 2009 From: mathpn59 at yahoo.com (Takjk Taj) Date: Fri Jan 30 07:20:32 2009 Subject: [GAP Forum] (no subject) Message-ID: <355838.57368.qm@web44802.mail.sp1.yahoo.com> Dear GAP Forum I install GAP on Win XP . Is there any way which I use Package nq on it because I have following error Loading the library. Please be patient, this may take a while. #I Package ``nq'': The executable program is not available #I Package ``nq'': The executable program is not available GAP4, Version: 4.4.9 of 6-Nov-2006, i686-pc-cygwin-gcc.... or when I use the following I put the package nq directly to C:\gap4r4\pkg With Best Regards. From r.hartung at tu-braunschweig.de Fri Jan 30 08:44:56 2009 From: r.hartung at tu-braunschweig.de (Rene Hartung) Date: Fri Jan 30 08:45:15 2009 Subject: [GAP Forum] (no subject) In-Reply-To: <355838.57368.qm@web44802.mail.sp1.yahoo.com> References: <355838.57368.qm@web44802.mail.sp1.yahoo.com> Message-ID: <200901300944.56948.r.hartung@tu-braunschweig.de> Dear Takjk Taj, using the Package nq needs to compile its c-binaries before loading. This seems to be a problem on a Windows machine. However, you can use the NQL-package which provides nearly the same features (NilpotentQuotient, NqEpimorphismNilpotentQuotient...) as nq does. Please let me know if you need some help. Cheers, ren\'e. On Friday 30 January 2009 08:20, Takjk Taj wrote: > Dear GAP Forum > I install GAP on Win XP . > Is there any way which I use Package nq on it because I have following > error > > Loading the library. Please be patient, this may take a while. > #I Package ``nq'': The executable program is not available > #I Package ``nq'': The executable program is not available > GAP4, Version: 4.4.9 of 6-Nov-2006, i686-pc-cygwin-gcc.... > or when I use the following > > I put the package nq directly to C:\gap4r4\pkg > > > With Best Regards. > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From symmetryholic at yahoo.ca Sat Jan 31 12:34:47 2009 From: symmetryholic at yahoo.ca (Don King) Date: Sat Jan 31 12:35:13 2009 Subject: [GAP Forum] Permutation List Message-ID: <762536.88774.qm@web111008.mail.gq1.yahoo.com> Hello, I figured out how to change cycles in a symmetric group into a permutation form. What I did is as follows: .............. gap> a1 := ConjugacyClass(b6, (1,2));gap> l := List([1.. 15], i->ListPerm(AsList(a1)[i])); ? Anyhow the output was ? [ 1, 2, 3, 4, 6, 5 ], [ 1, 2, 3, 5, 4 ], [ 1, 2, 3, 6, 5, 4 ], [ 1, 2, 4, 3 ], [ 1, 2, 5, 4, 3 ], [ 1, 2, 6, 4, 5, 3 ], [ 1, 3, 2 ], [ 1, 4, 3, 2 ], [ 1, 5, 3, 4, 2 ], [ 1, 6, 3, 4, 5, 2 ], [ 2, 1 ], [ 3, 2, 1 ], [ 4, 2, 3, 1 ], [ 5, 2, 3, 4, 1 ], [ 6, 2, 3, 4, 5, 1 ] ] ? I want all elements in a permutation form have same sizes. For instance, there are size 3,4 and 6 in the above outputs rather than all size 6 outputs. ? Any help will be highly appreciated. Don __________________________________________________________________ Ask a question on any topic and get answers from real people. Go to Yahoo! Answers and share what you know at http://ca.answers.yahoo.com From symmetryholic at yahoo.ca Tue Feb 3 03:09:16 2009 From: symmetryholic at yahoo.ca (Don King) Date: Tue Feb 3 03:44:00 2009 Subject: [GAP Forum] File input Message-ID: <231007.31750.qm@web111010.mail.gq1.yahoo.com> Hello, I am wondering if a file input is supported to convert a list of permutations into a list of cycles. For instance, I have an "a.txt" that includes [1,3,2,4] [2,4,1,3] ........... The output I'd like to get is??cycle formatted, such as (2,3) (1, 2, 4, 3) .... If the file input is not supported, what commands can be used to convert?multiple permutations into?cycles? Thanks in advance. Best regards, Don? __________________________________________________________________ Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites. Download it now at http://ca.toolbar.yahoo.com. From jbohanon2 at gmail.com Tue Feb 3 04:28:39 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue Feb 3 04:28:52 2009 Subject: [GAP Forum] File input In-Reply-To: <231007.31750.qm@web111010.mail.gq1.yahoo.com> References: <231007.31750.qm@web111010.mail.gq1.yahoo.com> Message-ID: Sortex() will convert the list into the elements of S_n you want. If you want to input a txt file, I would first open the file in a word processor and turn it into a big list. For instance, add "list:=[" to the beginning, do a find-and-replace finding ] and replacing with ],. Then go to the end of the file, remove the extraneous comma and add "]:" Then in GAP you do Read("file.txt"); (or put in the correct path if necessary). Then List(list,Sortex) will give you what you want. If you want a list without the commas, you can do, for instance: list2:=List(list,Sortex); for m in list2 do Print(m,"\n"); od; Joe On Mon, Feb 2, 2009 at 9:09 PM, Don King wrote: > Hello, > > I am wondering if a file input is supported to convert a list of > permutations into a list of cycles. > > For instance, > > I have an "a.txt" that includes > > [1,3,2,4] > [2,4,1,3] > ........... > > The output I'd like to get is cycle formatted, such as > (2,3) > (1, 2, 4, 3) > .... > > If the file input is not supported, what commands can be used to > convert multiple permutations into cycles? > > Thanks in advance. > > Best regards, > Don > > > __________________________________________________________________ > Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your > favourite sites. Download it now at > http://ca.toolbar.yahoo.com. > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From marc_roeder at web.de Tue Feb 3 09:24:49 2009 From: marc_roeder at web.de (Marc Roeder) Date: Tue Feb 3 09:25:05 2009 Subject: [GAP Forum] File input Message-ID: <914808736@web.de> Dear Don, I suppose you already have a programme which converts lists into cycles. So all you need is a piece of code which reads a file and outputs a list. Suppose the file contains lists of integers separated by line breaks as in your example. LoadPackage("io"); ## package for handling input-output streams input:=InputTextFile("a.txt"); ## open an input stream attached to the file list:=[]; repeat linestring:=ReadLine(input); ## read next line from "input" as a string if linestring<>fail then Add(list, EvalString(NormalizedWhitespace(linestring))); fi; until linestring=fail; CloseStream(input); ## don't forget to close all streams you opened! Now all you have to do is convert all lists in "list" to cycles. Hope that helps, marc __________________________________________________________________ Deutschlands gr??te Online-Videothek schenkt Ihnen 12.000 Videos!* http://entertainment.web.de/de/entertainment/maxdome/index.html From symmetryholic at yahoo.ca Tue Feb 3 12:58:20 2009 From: symmetryholic at yahoo.ca (Don King) Date: Tue Feb 3 16:54:03 2009 Subject: [GAP Forum] File input References: <231007.31750.qm@web111010.mail.gq1.yahoo.com> Message-ID: <982730.44896.qm@web111015.mail.gq1.yahoo.com> Thanks for all who helped me with?this issue. I used a "Sortex()" method, and?now it seems everything is working fine. I am wondering if only outputs with transposes are also possible with "Sortex" method.. For instance, <>? [1,3,2,4] [2,4,1,3] ........... The?output?of a "Sortex" method <> (2,3) (1, 2, 4, 3) ....... The (desired) output of? only transposes <> (2,3) (1,3)(1,4)(1,2) Many thanks Don ? ________________________________ From: Joe Bohanon To: Don King Cc: forum@gap-system.org Sent: Monday, February 2, 2009 11:28:39 PM Subject: Re: [GAP Forum] File input Sortex() will convert the list into the elements of S_n you want. If you want to input a txt file, I would first open the file in a word processor and turn it into a big list.? For instance, add "list:=[" to the beginning, do a find-and-replace finding ] and replacing with ],.? Then go to the end of the file, remove the extraneous comma and add "]:" Then in GAP you do Read("file.txt"); (or put in the correct path if necessary).? Then List(list,Sortex) will give you what you want.? If you want a list without the commas, you can do, for instance: list2:=List(list,Sortex); for m in list2 do Print(m,"\n"); od; Joe On Mon, Feb 2, 2009 at 9:09 PM, Don King wrote: Hello, I am wondering if a file input is supported to convert a list of permutations into a list of cycles. For instance, I have an "a.txt" that includes [1,3,2,4] [2,4,1,3] ............ The output I'd like to get is??cycle formatted, such as (2,3) (1, 2, 4, 3) .... If the file input is not supported, what commands can be used to convert?multiple permutations into?cycles? Thanks in advance. Best regards, Don? ? ? ?__________________________________________________________________ Yahoo! Canada Toolbar: Search from anywhere on the web, and bookmark your favourite sites.. Download it now at http://ca.toolbar.yahoo.com. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum __________________________________________________________________ Reclaim your name @ymail.com or @rocketmail.com. Get your new email address now! Go to http://ca.promos.yahoo.com/jacko/ From jbohanon2 at gmail.com Tue Feb 3 18:16:23 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue Feb 3 18:18:50 2009 Subject: [GAP Forum] File input In-Reply-To: <982730.44896.qm@web111015.mail.gq1.yahoo.com> References: <231007.31750.qm@web111010.mail.gq1.yahoo.com> <982730.44896.qm@web111015.mail.gq1.yahoo.com> Message-ID: <498889F7.5040308@gmail.com> Here's a previous post on the forum about this subject. http://www.gap-system.org/ForumArchive/Index/Subject/F.html#factors_of_a_permutation_cycle Don King wrote: > > Thanks for all who helped me with this issue. I used a > "Sortex()" method, and now it seems everything is working fine. > > I am wondering if only outputs with transposes are also possible with > "Sortex" method. > > For instance, > <> > [1,3,2,4] > [2,4,1,3] > ........... > > The output of a "Sortex" method > <> > (2,3) > (1, 2, 4, 3) > ....... > > The (desired) output of only transposes > <> > (2,3) > (1,3)(1,4)(1,2) > > Many thanks > Don > > > > ------------------------------------------------------------------------ > *From:* Joe Bohanon > *To:* Don King > *Cc:* forum@gap-system.org > *Sent:* Monday, February 2, 2009 11:28:39 PM > *Subject:* Re: [GAP Forum] File input > > Sortex() will convert the list into the elements of S_n you want. > > If you want to input a txt file, I would first open the file in a word > processor and turn it into a big list. For instance, add "list:=[" to > the beginning, do a find-and-replace finding ] and replacing with ],. > Then go to the end of the file, remove the extraneous comma and add "]:" > > Then in GAP you do Read("file.txt"); (or put in the correct path if > necessary). Then List(list,Sortex) will give you what you want. If > you want a list without the commas, you can do, for instance: > list2:=List(list,Sortex); > for m in list2 do Print(m,"\n"); od; > > Joe > > On Mon, Feb 2, 2009 at 9:09 PM, Don King > wrote: > > Hello, > > I am wondering if a file input is supported to convert a list of > permutations into a list of cycles. > > For instance, > > I have an "a.txt" that includes > > [1,3,2,4] > [2,4,1,3] > ........... > > The output I'd like to get is cycle formatted, such as > (2,3) > (1, 2, 4, 3) > .... > > If the file input is not supported, what commands can be used to > convert multiple permutations into cycles? > > Thanks in advance. > > Best regards, > Don > > > > __________________________________________________________________ > Yahoo! Canada Toolbar: Search from anywhere on the web, and > bookmark your favourite sites. Download it now at > http://ca.toolbar.yahoo.com . > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > > > ------------------------------------------------------------------------ > Now with a new friend-happy design! Try the new *Yahoo! Canada > Messenger* From symmetryholic at yahoo.ca Wed Feb 4 11:59:57 2009 From: symmetryholic at yahoo.ca (Don King) Date: Wed Feb 4 14:39:45 2009 Subject: [GAP Forum] Storing GAP codes Message-ID: <564092.76179.qm@web111010.mail.gq1.yahoo.com> Hello, I am a newbie of GAP and a lot of things are not still familiar to me. Currently, I am testing some external GAP sources that are available in this forum. The problem is I have to type every same codes for testing the same program. (I still could not figure out how to copy/paste to GAP console (gapw95.exe)). ? What I desire to do is to save a code like a batch file (or script file)?and execute it using that batch file. For instance,?I'd like to make the below code as a batch file so that?I can execute?the below routine?using a batch file. ? Any help will be highly appreciated. Best regards, Don? ? ? ? ? ? InvolutionFactors := function ( perm ) local x, y, c, n, i; if not IsPerm(perm) then Error(" must be a permutation"); fi; if OrderPerm(perm) <= 2 then return [ perm, () ]; fi; x := (); y := (); for c in Cycles(perm, [1..LargestMovedPointPerm(perm)]) do n := Length(c); for i in [1..QuoInt(n-1, 2)] do x := x * (c[i], c[n-i]); od; for i in [1..QuoInt(n, 2)] do y := y * (c[i], c[n+1-i]); od; od; return [x, y]; end; __________________________________________________________________ Instant Messaging, free SMS, sharing photos and more... Try the new Yahoo! Canada Messenger at http://ca.beta.messenger.yahoo.com/ From hulpke at math.colostate.edu Wed Feb 4 16:18:09 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed Feb 4 16:18:44 2009 Subject: [GAP Forum] Re: Sampling elements in conjugacy classes of a symmetric group References: <107F4E95-D6A8-405B-B21F-59BF93BF1461@math.colostate.edu> Message-ID: <5F886194-ABCB-490F-A92E-B033173B9F45@math.colostate.edu> Don King wrote: > I`d like to sample some elements in a symmetric group of order n > based on the ratio of conjugacy classes. > > For instance, if a symmetric group just has five conjugacy classes > (this is just for illustration, not an actual symmetric group), > > Class 1: 10 memeber > Class2: 20 members > Class3: 30 memebers > Class4: 20 members > Class5: 10 memebers > > is it possible to pick random samples like 1,2,3,2,1 elements from > each class based on the ratio of each conjugacy classes ?. > > Is there any way to pick random samples from each conjugacy class ?. If you take all classes of G, this of course is just random sampling over the whole of G, and Random(G) in GAP will do this. If you only have a subset of classes in the list class, the following commands will produce such weighted random sampling: Precompute: sz:=List(class,sz); gcd:=Gcd(sz); sz:=List(sz,x->x/gcd); sums:=List([1..Length(sz)],x->Sum(sz{[1..x-1]})); m:=Sum(sz); Add(sz,m); Sampling: r:=Random([1..m]); p:=First([1..Length(class)],x->sz[x]=r); randelm:=Random(class[p]); # random group element 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 jdixon at math.carleton.ca Wed Feb 4 21:37:33 2009 From: jdixon at math.carleton.ca (John Dixon) Date: Wed Feb 4 21:37:57 2009 Subject: [GAP Forum] Sampling elements in conjugacy classes of the symmetric group Message-ID: <498A0A9D.9040805@math.carleton.ca> Each conjugacy class of S_n is determined by the cycle structure of its elements. A quick way to find a random cycle structure with probability proportional to the size of the corresponding class is as follows. If it is only the cycle structure which you need this is faster than finding a random element of S_n. Set m := n and clist := [] While m > 0 do {Choose k (uniformly) at random from [1..m] Add k to the clist and set m := m-k} return clist The resulting clist should be read as a list of cycle lengths. [ See Dixon and Mortimer, "Permutation Groups", Springer 1996, Exercise 3.6.6.] - John Dixon Don King wrote: > I`d like to sample some elements in a symmetric group of order n based > on the ratio of conjugacy classes. > > For instance, if a symmetric group just has five conjugacy classes > (this is just for illustration, not an actual symmetric group), > > Class 1: 10 memeber > Class2: 20 members > Class3: 30 memebers > Class4: 20 members > Class5: 10 memebers > > is it possible to pick random samples like 1,2,3,2,1 elements from > each class based on the ratio of each conjugacy classes ?. > > Is there any way to pick random samples from each conjugacy class ?. From jjm at mcs.st-andrews.ac.uk Thu Feb 5 11:20:09 2009 From: jjm at mcs.st-andrews.ac.uk (John McDermott) Date: Thu Feb 5 11:20:27 2009 Subject: [GAP Forum] Groups St Andrews 2009 in Bath - Registration open! Message-ID: <3B17F696-C3BB-43E6-8B38-33C1F59FA889@mcs.st-andrews.ac.uk> GROUPS ST ANDREWS 2009 IN BATH ============================= (With apologies for multiple copies.) The organisers are pleased to announce that full registration is now open. Please visit the conference website at http://www.groupsstandrews.org/2009/ for further details and registration instructions. Please book early! Prices for both registration and accommodation are discounted for bookings made before April 30th. We look forward to seeing you in Bath in August. The organising committee. Colin Campbell (St Andrews), Edmund Robertson (St Andrews), Colva Roney-Dougal (St Andrews), Martyn Quick (St Andrews), Geoff Smith (Bath), Gunnar Traustason (Bath) -- The University of St Andrews is a charity registered in Scotland : No SC01353 From anvita21 at gmail.com Sun Feb 8 02:45:15 2009 From: anvita21 at gmail.com (Anvita) Date: Sun Feb 8 02:45:31 2009 Subject: [GAP Forum] Additive and multiplicative groups Message-ID: <6a52effd0902071845v596d5032nd0ab7cae925b23fb@mail.gmail.com> Dear Forum, Is there a way to define in GAP an isomorphism between an additive group and a multiplicative one? Anvita ------------------------------------------------------------------- gap> A:=GF(3)^2;; gap> a:=[[1,0],[0,1]]*Z(3)^0;; gap> IsAdditiveGroup(A); true gap> B:=Group((1,2,3),(4,5,6));; gap> b:=[(1,2,3),(4,5,6)];; gap> gap> GroupHomomorphismByImages(A,B,a,b); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `GroupGeneralMappingByImages' on 4 arguments called from GroupGeneralMappingByImages( G, H, Ggens, Hgens ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> ------------------------------------------------------------------- From alexander.konovalov at gmail.com Mon Feb 9 23:42:51 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon Feb 9 23:43:11 2009 Subject: [GAP Forum] Storing GAP codes In-Reply-To: <564092.76179.qm@web111010.mail.gq1.yahoo.com> References: <564092.76179.qm@web111010.mail.gq1.yahoo.com> Message-ID: Hello Don, On 4 Feb 2009, at 11:59, Don King wrote: > Hello, I am a newbie of GAP and a lot of things are not still > familiar to me. > Currently, I am testing some external GAP sources that are available > in this forum. > The problem is I have to type every same codes for testing the same > program. (I still could not figure out how to copy/paste to GAP > console (gapw95.exe)). See the GAP tutorial about this: 2.2 Loading Source Code from a File The most convenient way of creating larger pieces of GAP code is to write them to some text file -- for this purpose you can simply use your favorite text editor. You can load such a file into GAP using the Read function: gap> Read("../../GAPProgs/Example.g"); You can either give the full absolute path name of the source file or its relative path name from the GAP root directory (the directory containing bin/, doc/, lib/, etc.). Copy/paste also should work - click on the icon in the left top corner of the window to see the menu, and then go to "Edit" to see all related menu items, or try or Ctrl+Ins/Shift+Ins in the Rxvt shell. Please let me know if none of this works. Best wishes, Alexander > What I desire to do is to save a code like a batch file (or script > file) and execute it using that batch file. > For instance, I'd like to make the below code as a batch file so > that I can execute the below routine using a batch file. > > Any help will be highly appreciated. > Best regards, > Don > > > > > > InvolutionFactors := function ( perm ) > local x, y, c, n, i; > if not IsPerm(perm) then > Error(" must be a permutation"); > fi; > if OrderPerm(perm) <= 2 then > return [ perm, () ]; > fi; > > x := (); > y := (); > for c in Cycles(perm, [1..LargestMovedPointPerm(perm)]) do > n := Length(c); > for i in [1..QuoInt(n-1, 2)] do > x := x * (c[i], c[n-i]); > od; > for i in [1..QuoInt(n, 2)] do > y := y * (c[i], c[n+1-i]); > od; > od; > return [x, y]; > end; From alexk at mcs.st-andrews.ac.uk Tue Feb 10 00:01:57 2009 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue Feb 10 00:02:08 2009 Subject: [GAP Forum] RE: Forum Digest, Vol 62, Issue 2 In-Reply-To: <6ACF706B6B5FDD4885C57C0791B042E4013AE5A0@AL-TSC-CL01-EX.ufh-domain.local> References: <200901290913.n0T9D6Nw005414@gap-system.org> <6ACF706B6B5FDD4885C57C0791B042E4013AE5A0@AL-TSC-CL01-EX.ufh-domain.local> Message-ID: <01B46B0C-CE47-493A-BC4E-FA4CA61EAC02@mcs.st-andrews.ac.uk> Dear Odilo Ndiweni, It is not quite clear for me what namely would you like to compute, but of course GAP can give you answer on a number of questions regarding subgroups and their elements. Just for a short self-explaining example I create here the dihedral group of order 8 as a permutation group for simplicity: gap> D:=DihedralGroup(IsPermGroup,8); Group([ (1,2,3,4), (2,4) ]) gap> NormalSubgroups(D); [ Group(()), Group([ (1,3)(2,4) ]), Group([ (1,3)(2,4), (1,2)(3,4) ]), Group([ (1,3)(2,4), (2,4) ]), Group([ (1,2,3,4), (1,3)(2,4) ]), Group([ (1,2,3,4), (2,4) ]) ] gap> MaximalSubgroups(D); [ Group([ (2,4), (1,3)(2,4) ]), Group([ (1,2,3,4), (1,3)(2,4) ]), Group([ (1,2)(3,4), (1,3)(2,4) ]) ] gap> cc:=ConjugacyClassesSubgroups(D); [ Group( () )^G, Group( [ (1,3)(2,4) ] )^G, Group( [ (2,4) ] )^G, Group( [ (1,2)(3,4) ] )^G, Group( [ (1,3)(2,4), (2,4) ] )^G, Group( [ (1,3)(2,4), (1,2,3,4) ] )^G, Group( [ (1,3)(2,4), (1,2) (3,4) ] )^G, Group( [ (1,3)(2,4), (2,4), (1,2,3,4) ] )^G ] gap> AsList(Representative(cc[5])); [ (), (2,4), (1,3), (1,3)(2,4) ] To get started, let me recommend you the following resources: 1) GAP Tutorial (a part of your GAP installation in gap4r4/doc/tut, also online at http://www.gap-system.org/Manuals/doc/htm/tut/chapters.htm ). It has a separate chapter about Groups and Homomorphisms. 2) GAP FAQ: http://www.gap-system.org/Faq/faq.html 3) Additional materials under http://www.gap-system.org/Doc/doc.html, in particular, in "Learning GAP" and "Teaching Material" sections. Hope this helps! Best, Alexander On 29 Jan 2009, at 09:39, Ndiweni, Odilo wrote: > Dear all > will love to identify elements of subgroups of dihedral groups using > GAP.I am still a novice in the use of the language and will be glad > to get all sort of ways. > > sincerely > > Odilo Ndiweni > Mathematics Dept (Pure and Applied) > UFH > Phone: 040-602-2370 > Cell: 0762337318 > Email: ondiweni@ufh.ac.za From anvita21 at gmail.com Wed Feb 11 08:19:23 2009 From: anvita21 at gmail.com (Anvita) Date: Wed Feb 11 08:19:42 2009 Subject: [GAP Forum] an inconsistent syntax error Message-ID: <6a52effd0902110019r10237870g6e7033e1a2a04622@mail.gmail.com> Dear Forum, I am getting a syntax error when copy-and-paste this simple program in a newly opened GAP session. ---------------------------- q:=true; while q do m:=2; q:=First(Primes,s->s=m)<>2; od; ---------------------------- The error is as follows: --------------------------------------------- gap> q:=true; true gap> while q do > m:=2; > q:=First(Primes,s->s=m)<>2; Syntax error: warning: unbound global variable q:=First(Primes,s->s=m)<>2; ^ > od; ---------------------------------------------- Yet "m" appears to be a global variable afterwards: ------- gap> m; 2 gap> ------- On the other hand, a similar program (in which the variable "m" is also defined for the first time within the while loop) runs fine: --------------- gap> q:=true; true gap> while q do > m:=2; > q:=m<>2; > od; gap> --------------- Could this be another bug? Anvita From jbohanon2 at gmail.com Wed Feb 11 19:03:41 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Wed Feb 11 19:03:49 2009 Subject: [GAP Forum] Stabilizer in S_n of an equipartition Message-ID: How would I get the stabilizing subgroup in S_n of an equipartition of n (ie one where all parts have the same size)? For instance, in S_15, the stabilizer of [1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15] would be the wreath product of S_3 with S_5. The only thing I can think of right now is to take the standard wreath product and figure out what the conjugating element would be, but that's too much work once n is big. Thanks Joe From hulpke at math.colostate.edu Wed Feb 11 20:56:53 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed Feb 11 20:57:12 2009 Subject: [GAP Forum] Stabilizer in S_n of an equipartition In-Reply-To: References: Message-ID: Dear Forum, Dear Joe, On Feb 11, 2009, at 2/11/09 12:03, Joe Bohanon wrote: > How would I get the stabilizing subgroup in S_n of an equipartition > of n (ie > one where all parts have the same size)? For instance, in S_15, the > stabilizer of [1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15] would be > the > wreath product of S_3 with S_5. > > The only thing I can think of right now is to take the standard wreath > product and figure out what the conjugating element would be, but > that's too > much work once n is big. That's what I would do (it is in fact used inside the routine that calculates the normalizer within the symmetric group: `NormalizerParentSA' in lib/gpprmsya.gi). Finding such an conjugating element is rather cheap in the full symmetric group: E.g. suppose that p is the equipartition: [ [ 1, 5, 24, 27, 29 ], [ 2, 3, 4, 18, 30 ], [ 6, 13, 20, 26, 28 ], [ 7, 9, 14, 15, 21 ], [ 8, 12, 17, 19, 23 ], [ 10, 11, 16, 22, 25 ] ] Form the wreath product: w :=WreathProduct(SymmetricGroup(Length(p[1])),SymmetricGroup(Length(p))); ``Standard'' partition: sp:=Blocks(w,MovedPoints(w)); [ [ 1, 2, 3, 4, 5 ], [ 6, 7, 8, 9, 10 ], [ 11, 12, 13, 14, 15 ], [ 16, 17, 18, 19, 20 ], [ 21, 22, 23, 24, 25 ], [ 26, 27, 28, 29, 30 ] ] Mapping element: map:=MappingPermListList(Concatenation(sp),Concatenation(p)); (2,5,29,22,12,13,20,21,8,4,27,11,6)(3,24,19,15,28,16,7) (9,18,14,26,10,30,25, 23,17) Stabilizing group: stb:=w^map; Best, Alexander -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From srmurthy at brookes.ac.uk Mon Feb 16 06:45:20 2009 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Mon Feb 16 06:45:49 2009 Subject: [GAP Forum] Questions Message-ID: Hi. I have a couple of specific questions. 1. Is there a method that returns the inverse element of any given element of a group? 2. Given that the operation subsetTriplesG := Cartesian( Combinations( Elements( groupG ) ), Combinations( Elements( groupG ) ), Combinations( Elements( groupG ) ) ); constructs the set of all (ordered) triples of subsets of a given group groupG, is there a method or combination of methods by which I can obtain only those distinct triples of groupG which are not permutations of each other, i.e. a set of distinct representatives of an equivalence class of subset triples of groupG where equivalence of two triples means one is a permutation of the other? Sincerely, Sandeep. From times145 at hotmail.com Tue Feb 17 18:55:35 2009 From: times145 at hotmail.com (T 145) Date: Tue Feb 17 18:55:49 2009 Subject: [GAP Forum] [newbie] Direct product decomposition Message-ID: With apologies if this is a FAQ ... how do I get GAP to decompose (factorise) a group into the essentially-unique direct product of indecomposable groups? Thanks, Ed. _________________________________________________________________ Discover Bird's Eye View now with Multimap from Live Search http://clk.atdmt.com/UKM/go/111354026/direct/01/ From jbohanon2 at gmail.com Tue Feb 17 19:25:02 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue Feb 17 19:27:17 2009 Subject: [GAP Forum] [newbie] Direct product decomposition In-Reply-To: References: Message-ID: <499B0F0E.8090708@gmail.com> You can try DirectFactorsOfGroup(G); You can also try StructureDescription(G), but keep in mind that that sometimes works very slowly, and it doesn't give you the actual subgroups. For example: gap> G:=DirectProduct(SmallGroup(8,4),DihedralGroup(8)); gap> DirectFactorsOfGroup(G); #I Step 3, 4 invariant subgroups #I Step 4, 15 invariant subgroups #I Step 5, 66 invariant subgroups #I Step 6, 77 invariant subgroups #I Step 7, 90 invariant subgroups #I Step 3, 4 invariant subgroups #I Step 4, 5 invariant subgroups #I Step 3, 4 invariant subgroups #I Step 4, 5 invariant subgroups [ Group([ f1, f2, f3 ]), Group([ f3*f4, f5, f6 ]) ] gap> StructureDescription(G); "Q8 x D8" By the way, is it possible for some future version of GAP to have the functions QuaternionGroup, SemidihedralGroup and ModularGroup? Joe T 145 wrote: > With apologies if this is a FAQ ... how do I get GAP to decompose (factorise) a group into the essentially-unique direct product of indecomposable groups? > > Thanks, > Ed. > > _________________________________________________________________ > Discover Bird's Eye View now with Multimap from Live Search > http://clk.atdmt.com/UKM/go/111354026/direct/01/_______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From times145 at hotmail.com Tue Feb 17 19:56:24 2009 From: times145 at hotmail.com (T 145) Date: Tue Feb 17 19:56:38 2009 Subject: [GAP Forum] [newbie] Direct product decomposition In-Reply-To: <499B0F0E.8090708@gmail.com> References: <499B0F0E.8090708@gmail.com> Message-ID: Joe, thanks; top job! I'll use List(DirectFactorsOfGroup(G),StructureDescription) from now on. That does what I need for things like C6, too, i.e. splits it down to indecomposable factors, which StructureDescription doesn't bother to do. Ed. PS: "KRULL SCHMIDT"! There, now it's associated with the keywords that I failed with originally :) Joe> You can try DirectFactorsOfGroup(G); Joe> Joe> You can also try StructureDescription(G), but keep in mind that that Joe> sometimes works very slowly, and it doesn't give you the actual subgroups. _________________________________________________________________ Make a mini you and download it into Windows Live Messenger http://clk.atdmt.com/UKM/go/111354029/direct/01/ From alexander.konovalov at gmail.com Tue Feb 17 23:57:51 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Feb 17 23:58:17 2009 Subject: [GAP Forum] Questions In-Reply-To: References: Message-ID: <1EC1B4AF-078B-4F8E-8C17-DA5D462456F8@gmail.com> Dear Sandeep, On 16 Feb 2009, at 06:45, Sandeep Murthy wrote: > Hi. > > I have a couple of specific questions. > > 1. Is there a method that returns the inverse element of > any given element of a group? Yes, use x^-1 to find an inverse of x: gap> (1,2,3)^-1; (1,3,2) > 2. Given that the operation > > subsetTriplesG := Cartesian( Combinations( Elements( groupG ) ), > Combinations( Elements( groupG ) ), > Combinations( Elements( groupG ) ) ); > > constructs the set of all (ordered) triples of subsets of a given > group > groupG, is there a method or combination of methods by which > I can obtain only those distinct triples of groupG which are not > permutations of each other, i.e. a set of distinct representatives > of an equivalence class of subset triples of groupG where > equivalence of two triples means one is a permutation of the > other? It is a bit unclear what do you mean, but if understood you correctly, isn't it Combinations( Combinations( AsList( G ) ),3) what you need? Do you wish to consider empty subset and the whole group? Of course the orders of the resulting set will grow extremely fast, e.g. gap> Combinations( Combinations( AsList( SymmetricGroup( 2 ) ) ),3); [ [ [ ], [ () ], [ (), (1,2) ] ], [ [ ], [ () ], [ (1,2) ] ], [ [ ], [ (), (1,2) ], [ (1,2) ] ], [ [ () ], [ (), (1,2) ], [ (1,2) ] ] ] gap> NrCombinations( Combinations( AsList( SymmetricGroup( 3 ) ) ),3); 41664 and I run out of memory for S_4 with default GAP session. Maybe you can first check whether this is actually what you need, because maybe you need UnorderedTuples( Combinations( AsList( G ) ), 3 ), which will make the case even worse: gap> UnorderedTuples( Combinations( AsList( SymmetricGroup( 2 ) ) ), 3 ); [ [ [ ], [ ], [ ] ], [ [ ], [ ], [ () ] ], [ [ ], [ ], [ (), (1,2) ] ], [ [ ], [ ], [ (1,2) ] ], [ [ ], [ () ], [ () ] ], [ [ ], [ () ], [ (), (1,2) ] ], [ [ ], [ () ], [ (1,2) ] ], [ [ ], [ (), (1,2) ], [ (), (1,2) ] ], [ [ ], [ (), (1,2) ], [ (1,2) ] ], [ [ ], [ (1,2) ], [ (1,2) ] ], [ [ () ], [ () ], [ () ] ], [ [ () ], [ () ], [ (), (1,2) ] ], [ [ () ], [ () ], [ (1,2) ] ], [ [ () ], [ (), (1,2) ], [ (), (1,2) ] ], [ [ () ], [ (), (1,2) ], [ (1,2) ] ], [ [ () ], [ (1,2) ], [ (1,2) ] ], [ [ (), (1,2) ], [ (), (1,2) ], [ (), (1,2) ] ], [ [ (), (1,2) ], [ (), (1,2) ], [ (1,2) ] ], [ [ (), (1,2) ], [ (1,2) ], [ (1,2) ] ], [ [ (1,2) ], [ (1,2) ], [ (1,2) ] ] ] Then you may think about further restriction of the search space and enumerative procedures instead of generating the whole set in once. Hope this helps, Alexander From dan_lanke at yahoo.com Sun Feb 22 17:04:58 2009 From: dan_lanke at yahoo.com (Dan Lanke) Date: Sun Feb 22 17:05:29 2009 Subject: [GAP Forum] G-invariant bimultiplicative maps Message-ID: <489890.68856.qm@web45403.mail.sp1.yahoo.com> Dear GAP Forum, Let G be a finite group and let K, H be a pair of normal subgroups of G. Let C* denote the multiplicative group of nonzero complex numbers. Is there a way to determine all (or atleast some) G-invariant bimultiplicative maps f: K x H -> C* ? f is a G-invariant bimultiplicative map means: f(kk', h) = f(k, h) f(k', h), for all k,k' \in K, h \in H, f(k, hh') = f(k, h) f(k, h'), for all k \in K, h,h' \in H, and f(gkg^{-1}, ghg^{-1}) = f(k, h), for all g \in G, k \in K, h \in H. Many thanks, Dan From e.obrien at auckland.ac.nz Sun Feb 22 21:35:39 2009 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Sun Feb 22 21:36:10 2009 Subject: [GAP Forum] Special Session on Computational Algebra, BMC/IMS Meeting April 2009 Message-ID: <49A1C52B.8070203@math.auckland.ac.nz> Dear Colleagues, A joint meeting of the British Mathematical Colloquium and the Irish Mathematical Society will take place at NUI Galway from 6-9 April, 2009. As part of the program, we will run a special session on Computational Algebra, featuring the following presentations: * Arjeh Cohen (Eindhoven University): Constructions of curves with given groups of automorphisms * Bettina Eick (Braunschweig): Isomorphism testing for algebras (Lie or associative) * Dane Flannery (NUI Galway): On deciding finiteness of matrix groups * Steven Galbraith (Royal Holloway, University of London): Elliptic curves and public key cryptography * Gunter Malle (Kaiserslautern): Computing in Hecke algebras * Gary McGuire (University College Dublin): Some computational algebra in cryptography Abstracts and other details on the Special Session are at http://www.maths.nuigalway.ie/bmc2009/casession.shtml which also provides a link to the main BMC/IMS site. We hope that you can join us for this event. Best wishes. Eamonn O'Brien, University of Auckland Goetz Pfeiffer, NUI Galway From lee_bkua at yahoo.com Tue Feb 24 07:35:40 2009 From: lee_bkua at yahoo.com (Levie Bicua) Date: Tue Feb 24 07:36:08 2009 Subject: [GAP Forum] A plain set of objects Message-ID: <803603.25137.qm@web33406.mail.mud.yahoo.com> Dear forum, I'm wondering if there is a more efficient way of defining in GAP a simple set of objects without necessarily using the quotation marks for each element of the set. For example I want to define/write in GAP the set S1={ P, Q, RPR, RQPQPQR, RQPRPQR, RQRPRQR, RQRQRQR }. ? gap> S1:={P,Q,RPR,RQPQPQR,RQPRPQR,RQRPRQR,RQRQRQR}; Syntax error: literal expected S1:={P,Q,RPR,RQPQPQR,RQPRPQR,RQRPRQR,RQRQRQR}; ^ gap> S1:=["P","Q","RPR","RQPQPQR","RQPRPQR","RQRPRQR","RQRQRQR"]; [ "P", "Q", "RPR", "RQPQPQR", "RQPRPQR", "RQRPRQR", "RQRQRQR" ]. ? Enclosing each element by a quotation mark requires much time especially for a large set. any help? thanks. ? Levi ? From chinare4471 at yahoo.com.cn Sun Mar 1 10:52:37 2009 From: chinare4471 at yahoo.com.cn (zuohui wu) Date: Sun Mar 1 10:53:09 2009 Subject: [GAP Forum] how to calculate the automorphism group ?Thanks! Message-ID: <70463.88295.qm@web15601.mail.cnb.yahoo.com> Dear forum : ???? I am new to GAP .I need you help ! ??? Now I want to calculate the automorphism group ,but I do not know how to do it . G=??? Could you give me some examples? ? Best wishes!! ? ___________________________________________________________ ????????????????? http://card.mail.cn.yahoo.com/ From bsambale at gmx.de Sun Mar 1 16:03:05 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Sun Mar 1 16:03:32 2009 Subject: [GAP Forum] how to calculate the automorphism group ?Thanks! In-Reply-To: <70463.88295.qm@web15601.mail.cnb.yahoo.com> References: <70463.88295.qm@web15601.mail.cnb.yahoo.com> Message-ID: <49AAB1B9.4030508@gmx.de> First of all construct G via free groups: F:=FreeGroup("x","y"); AssignGeneratorVariables(F); N:=NormalClosure(F,Subgroup(F,[x^27,y^343,x^y*x^(-10)])); G:=FactorGroup(F,N); Then compute the automorphism group: AutomorphismGroup(G); zuohui wu schrieb: > Dear forum : > I am new to GAP .I need you help ! > Now I want to calculate the automorphism group ,but I do not know how to do it . > G= > Could you give me some examples? > > Best wishes!! > > > > ___________________________________________________________ > ????????????????? > http://card.mail.cn.yahoo.com/ > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From frank.luebeck at math.rwth-aachen.de Mon Mar 2 11:01:28 2009 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Mon Mar 2 11:02:20 2009 Subject: [GAP Forum] an inconsistent syntax error In-Reply-To: <6a52effd0902110019r10237870g6e7033e1a2a04622@mail.gmail.com> References: <6a52effd0902110019r10237870g6e7033e1a2a04622@mail.gmail.com> Message-ID: <20090302110128.GA7185@beteigeuze> On Wed, Feb 11, 2009 at 02:19:23PM +0600, Anvita wrote: > I am getting a syntax error when copy-and-paste > this simple program in a newly opened GAP session. > > ---------------------------- > q:=true; > while q do > m:=2; > q:=First(Primes,s->s=m)<>2; > od; > ---------------------------- > > The error is as follows: > > --------------------------------------------- > gap> q:=true; > true > gap> while q do > > m:=2; > > q:=First(Primes,s->s=m)<>2; > Syntax error: warning: unbound global variable > q:=First(Primes,s->s=m)<>2; > ^ > > od; > ---------------------------------------------- > > Yet "m" appears to be a global variable afterwards: > > ------- > gap> m; > 2 > gap> > ------- > > On the other hand, a similar program (in which the variable "m" > is also defined for the first time within the while loop) runs fine: > > --------------- > gap> q:=true; > true > gap> while q do > > m:=2; > > q:=m<>2; > > od; > gap> > --------------- > > Could this be another bug? > Dear Anvita, dear Forum, GAP issues the warning Syntax error: warning: unbound global variable when it parses a function and finds a reference to an unbound global variable. This is often a useful warning, namely when a user has forgotten to declare that variable as local to the function. The warning can be ignored when that global variable was meant and is actually bound when the parsed function is called. Of course, sometimes one wants to refer to a global variable; maybe the most common case is to use another function which will be defined later (programers can use separate declaration and implementation files to avoid warnings in this case). Now, what has this to do with the examples above? To understand this you must know what GAP does when it parses a for- or while-loop. It (almost) handles it as if there where a 'function()' and 'end' around that code, parses this function, and then calls it. Ok, but why do we *not* see in a new GAP session the following unpleasant behaviour: gap> for i in [1..10] do od; Syntax error: warning: unbound global variable for i in [1..10] do od; ^ gap> I said '(almost)' above because there is an exception: That is, as long as the parser is not inside a literal function definition the warning is suppressed. And this does now explain the difference between the two examples you have sent: You see the warning for the occurence of 'm' in the literal function definition 's->s=m'. Sorry, it is a bit complicated. Best regards, Frank PS.: In some future GAP version it will be possible for a user to switch off these warnings. -- /// 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 w_becker at hotmail.com Mon Mar 2 16:42:22 2009 From: w_becker at hotmail.com (Walter Becker) Date: Mon Mar 2 16:42:40 2009 Subject: [GAP Forum] the GrpConst package and its usage Message-ID: I am using the GrpConst package to determine the number of groups of certain orders, and it seems to take a long time for some orders, e.g., consider the following family of groups of order 8*p^3: gap> p:=3; 3 gap> ConstructAllGroups(8*p^3);;time; 8969 gap> p:=5; 5 gap> ConstructAllGroups(8*p^3);;time; 20203 gap> p:=7; 7 gap> ConstructAllGroups(8*p^3);;time; 21297 gap> p:=11; 11 gap> ConstructAllGroups(8*p^3);;time; 52688 gap> p:=13; 13 gap> ConstructAllGroups(8*p^3);;time; The one for p=13 do not complete in a half hour or so of running time. The corresponding one for p=17 did not complete in running for several hours? Any suggestions on getting these numbers. Note I realize the groups are not listed here, this run was made to just see what kind of running times one might expect for these orders and by extrapolation to the one of order 8*p^3 for p=17 which is the one realldesired. Thanks Walter Becker _________________________________________________________________ Hotmail? is up to 70% faster. Now good news travels really fast. http://windowslive.com/online/hotmail?ocid=TXT_TAGLM_WL_HM_70faster_032009 From e.obrien at auckland.ac.nz Tue Mar 3 20:49:36 2009 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Tue Mar 3 20:49:58 2009 Subject: [GAP Forum] Summer Workshop, January 2010, New Zealand Message-ID: <49AD97E0.6060703@math.auckland.ac.nz> NZIMA / NZMRI Summer Workshop Hanmer Springs, New Zealand January 3-10, 2010 First Announcement ================== The theme of the 2010 NZIMA / NZMRI Summer Workshop is "Groups, Representations and Number Theory". It is organised by Ben Martin and Eamonn O'Brien. Speakers ======== The principal speakers, each delivering a short series of lectures, are: Martin Bridson, Oxford Michel Broue, Universite Paris VII Persi Diaconis, Stanford Roger Howe, Yale Gus Lehrer, Sydney Marcus du Sautoy, Oxford The meeting will take place in Hanmer Springs, about 90 minutes north of Christchurch. Arrival is January 3; departure is afternoon of January 10. Further details =============== Further details on the location and format of the meeting are available via its WEB page http://www.math.auckland.ac.nz/wiki/2010_NZMRI_Summer_Workshop This workshop is funded by the New Zealand Institute of Mathematics and its Applications [http://www.nzima.auckland.ac.nz] From josef.lauri at um.edu.mt Wed Mar 4 14:29:21 2009 From: josef.lauri at um.edu.mt (Josef Lauri) Date: Wed Mar 4 14:30:56 2009 Subject: [GAP Forum] Problems with SetReducedMultiplication Message-ID: <49AE9041.9080206@um.edu.mt> I am defining a not too complicated finitely presented group as follows: f:=FreeGroup(3); rels:=[f.1^5,f.2^3,f.3^31, f.2*f.1*(f.1*f.2*f.3)^-1, f.3*f.1*(f.1*f.3^2)^-1, f.3*f.2*(f.2*f.3^25)^-1]; g:=f/rels; I then want to express some products of the generators in reduced form. But even if I try SetReducedMultiplication(g.1^5); g.1^5; which I hoped would give me the identity, gap just sits there for hours returning nothing. Same thing if I try SetReducedMultiplication(g); and then something like g.2*g.1; I'd be very grateful for some tips. Josef Lauri From alexander.konovalov at gmail.com Wed Mar 4 17:50:37 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Wed Mar 4 17:50:49 2009 Subject: [GAP Forum] A plain set of objects In-Reply-To: <803603.25137.qm@web33406.mail.mud.yahoo.com> References: <803603.25137.qm@web33406.mail.mud.yahoo.com> Message-ID: Dear Levi, On 24 Feb 2009, at 07:35, Levie Bicua wrote: > Dear forum, > I'm wondering if there is a more efficient way of defining in GAP a > simple set of objects without necessarily using the quotation marks > for each element of the set. For example I want to define/write in > GAP the set S1={ P, Q, RPR, RQPQPQR, RQPRPQR, RQRPRQR, RQRQRQR }. > > gap> S1:={P,Q,RPR,RQPQPQR,RQPRPQR,RQRPRQR,RQRQRQR}; > Syntax error: literal expected > S1:={P,Q,RPR,RQPQPQR,RQPRPQR,RQRPRQR,RQRQRQR}; > ^ First, this syntax fails not because of quotation marks missing, but because of the improper use of { ... } brackets. In GAP the sets are special kind of lists, and lists are created using [ ... ] brackets. So, first, using the right kind of brackets, you will get the following error: gap> S1:=[P,Q,RPR,RQPQPQR,RQPRPQR,RQRPRQR,RQRQRQR]; Error, Variable: 'Q' must have a value not in any function Now the reason is that there is no variable with the identifier 'Q', so you can not use it in expressions. The same will happen with the rest of the list after Q (GAP does not complain about P only because there is a function with the name 'P' in gap4r4/lib/obsolete.g, which came from one of earlier releases and will be eventually eliminated). > gap> S1:=["P","Q","RPR","RQPQPQR","RQPRPQR","RQRPRQR","RQRQRQR"]; > [ "P", "Q", "RPR", "RQPQPQR", "RQPRPQR", "RQRPRQR", "RQRQRQR" ]. > Enclosing each element by a quotation mark requires much time > especially for a large set. any help? thanks. > What you did here is that you created a list of *strings*. So you have an objects of a particular kind, which are just ordered sequences of symbols. Is this really what you would like to achieve? I have an impression that you would like to write words in group generators, does the reference manual chapter http://www.gap-system.org/Manuals/doc/htm/ref/CHAP034.htm and subsequent ones help? Best wishes, Alexander From hulpke at math.colostate.edu Wed Mar 4 21:40:28 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed Mar 4 21:40:44 2009 Subject: [GAP Forum] Problems with SetReducedMultiplication In-Reply-To: <49AE9041.9080206@um.edu.mt> References: <49AE9041.9080206@um.edu.mt> Message-ID: Dear Josef Lauri, > I am defining a not too complicated finitely presented group as > follows: > > f:=FreeGroup(3); > rels:=[f.1^5,f.2^3,f.3^31, > f.2*f.1*(f.1*f.2*f.3)^-1, > f.3*f.1*(f.1*f.3^2)^-1, > f.3*f.2*(f.2*f.3^25)^-1]; > g:=f/rels; > > I then want to express some products of the generators in reduced > form. What is happening is the following: The code for reduced multiplication calls a Knuth-Bendix rewriting process in the hope of finding a confluent rewriting system for reduction. In this particular example, this rewriting does not terminate in any reasonable time, I suspect the 25-th power is the cause. There are three possible remedies: 1) Under Unix, you could load the kbmag package and set KB_REW:=KBMAG_REW; to use that packages Knuth-Bendix algorithm, which is vastly superior to the naive version in GAP. 2) If you don't care about the particular representation as words in the given generators, you could convert f to a permutation group or (the group is solvable) a Pc group with IsomorphismPermGroup(f); or IsomorphismPcGroup(f); and work in the image. (This gives you the best performance. You also could use the homomorphism to translate results back in the presented group.) 3) I have changed the code for the next bugfix to have GAP check whether the group is small (and then use a permutation representation to find a normal form) before attempting a Knuth-Bendix enumeration. With this change the code behaves after SetReducedMultiplication(g); as you expected it to do. If you want I can send you the corresponding fix now. (It is slightly longish, as it affects a couple of functions.) Apologies for the problem, 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 Tue Mar 10 06:47:46 2009 From: anvita21 at gmail.com (Anvita) Date: Tue Mar 10 06:48:00 2009 Subject: [GAP Forum] Block matrices problem Message-ID: <6a52effd0903092347q399282cw8931a246203ad097@mail.gmail.com> Dear Forum, I am stuck again :( Program 1 : ---------------------------------------------- m:=[[1]]; M:=BlockMatrix([[1,2,m],[2,2,m]],2,2); Display(M); M*M; ---------------------------------------------- Result 1 : ------------------------------------------- gap> m:=[[1]]; [ [ 1 ] ] gap> M:=BlockMatrix([[2,2,m],[1,2,m]],2,2); gap> Display(M); [ [ 0, 1 ], [ 0, 1 ] ] gap> M*M; ------------------------------------------- Program 2 : -------------------------------------- m:=[[1]]; M:=BlockMatrix([[1,2,m],[2,1,m],[2,2,m]],2,2); Display(M); M*M; -------------------------------------- Result 2 : ---------------------------------------------------- gap> m:=[[1]]; [ [ 1 ] ] gap> M:=BlockMatrix([[2,1,m],[2,2,m],[1,2,m]],2,2); gap> Display(M); [ [ 0, 1 ], [ 1, 1 ] ] gap> M*M; Error, two blocks for position [2][2] called from BlockMatrix( blocks, bm1!.nrb, bm2!.ncb, bm1!.rpb, bm2!.cpb, bm1!.zero ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> ----------------------------------------------------- What is wrong with Program 2 as opposed to Program 1 ? Anvita From jbohanon2 at gmail.com Thu Mar 12 16:58:35 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Mar 12 16:59:00 2009 Subject: [GAP Forum] Printing Groups to a file Message-ID: I'm working on a project where I need to print groups to a file pretty regularly (using PrintTo). The issue is that I lose all of the underlying components when I do so, particularly the size of the groups. Is there any way to have GAP print some more details of the group to a file, like the size, for instance? Right now, if I really need the sizes, I print a size vector to the file and use SetSize when I read it fresh. Size is really the only thing I would currently need, so if printing the entire record to disk would double, triple, etc. the disk space involved, that would not be very helpful as the file is already 800MB with just the generators! Thanks Joe From tomtim20 at gmail.com Fri Mar 13 11:01:08 2009 From: tomtim20 at gmail.com (Tom Tim) Date: Fri Mar 13 11:43:02 2009 Subject: [GAP Forum] find |Hom(G1,G2)| Message-ID: <24d54bb50903130401q4e1509fmda395460c3359e53@mail.gmail.com> Is there a way to find the number of homomorphisms from a group G1 to G2 ? For example: G1 := SymmetricGroup(3); G2 := DihedralGroup(8); Thanks. From bsambale at gmx.de Fri Mar 13 15:49:43 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Fri Mar 13 15:50:12 2009 Subject: [GAP Forum] find |Hom(G1,G2)| In-Reply-To: <24d54bb50903130401q4e1509fmda395460c3359e53@mail.gmail.com> References: <24d54bb50903130401q4e1509fmda395460c3359e53@mail.gmail.com> Message-ID: <49BA8097.1070800@gmx.de> Try: LoadPackage("sonata"); Size(Homomorphisms(G1,G2)); Tom Tim schrieb: > Is there a way to find the number of homomorphisms from a group G1 to G2 ? > For example: > G1 := SymmetricGroup(3); > G2 := DihedralGroup(8); > > Thanks. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From imranmaths at yahoo.com Thu Mar 19 15:44:15 2009 From: imranmaths at yahoo.com (Imran) Date: Thu Mar 19 15:44:40 2009 Subject: [GAP Forum] Power of Polynomial Message-ID: <548152.28807.qm@web56005.mail.re3.yahoo.com> Actually I am wondering whether GAP has the power to raise an indeterminate to the power of a polynomial, eg, t^(a^2 + 2*a + 5) and multiply/add/divide/simplify them as GAP does for usual rational functions? If not then is it possible for somebody to produce such a code? Imran From philipp_s at gmx.de Mon Mar 23 18:30:19 2009 From: philipp_s at gmx.de (Philipp Schneider) Date: Mon Mar 23 18:30:43 2009 Subject: [GAP Forum] work with the additive group of a ring or field Message-ID: <20090323183019.263730@gmx.net> Dear GAP forum, how can I work with the additive group of a field or a ring? For example, how can I find out if the additive group of GF(4) is cyclic or not? Or, let Z be the additive group of the integers. How do I compute the index of the intersection of 2*Z and 3*Z in Z, with a command similar to Index(Integers,Intersection(2*Integers,3*Integers)); ? thanks, Philipp -- Psssst! Schon vom neuen GMX MultiMessenger geh?rt? Der kann`s mit allen: http://www.gmx.net/de/go/multimessenger01 From gletschereis at googlemail.com Tue Mar 24 14:52:15 2009 From: gletschereis at googlemail.com (Andreas Rabenstetter) Date: Tue Mar 24 14:52:27 2009 Subject: [GAP Forum] PSL(n,q) with matrix filter Message-ID: <24eb1ac50903240752p2e587061s250711382c857b8b@mail.gmail.com> Dear gap-forum team. I?m interested in the PSL(n,q) and wanted it to represent it by matrix. Is it possible to gererate this group in GAP with deal with matrices? I tied the out: ProjectiveSpecialLinearGroup( [IsMatrixGroup ], 2, 2 ); and ProjectiveSpecialLinearGroup( IsMatrixGroup , 2, 2 ); but it doesn?t work. The filter chosen when I let GAP fix it, is not such usable for me. Thank you very much . Regards Andreas Rabenstetter From dima at ntu.edu.sg Tue Mar 24 16:43:20 2009 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Tue Mar 24 16:43:41 2009 Subject: [GAP Forum] PSL(n,q) with matrix filter In-Reply-To: <24eb1ac50903240752p2e587061s250711382c857b8b@mail.gmail.com> References: <24eb1ac50903240752p2e587061s250711382c857b8b@mail.gmail.com> Message-ID: <668720bc0903240943p65f802d9p70e959f8e800c1ab@mail.gmail.com> Dear Andreas, PSL is not a matrix group, it is an action of SL on the projective space, i.e. on the 1-dimensional subspaces. It is the quotient of SL over the centre, which consists of scalar matrices. Then indeed, when q=2, it is isomorphic to SL, so you can work with e.g. SpecialLinearGroup( 2, 2 ) directly. (You can certainly do this for bigger q too, but you have to keep in mind that yoiu work with a preimage of the homomorphism) HTH, Dmitrii 2009/3/24 Andreas Rabenstetter : > Dear gap-forum team. > I?m interested in the PSL(n,q) and wanted it to represent it by matrix. Is > it possible to gererate this ?group in GAP with deal with matrices? I tied > the out: > > ProjectiveSpecialLinearGroup( [IsMatrixGroup ], 2, 2 ); > and ProjectiveSpecialLinearGroup( IsMatrixGroup , 2, 2 ); > > but it doesn?t work. The filter chosen when I let GAP fix it, is not such > usable for me. > Thank you very much . > > Regards > Andreas Rabenstetter > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From Bill.Allombert at math.u-bordeaux1.fr Tue Mar 24 20:41:34 2009 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Wed Mar 25 10:39:25 2009 Subject: [GAP Forum] PSL(n,q) with matrix filter In-Reply-To: <668720bc0903240943p65f802d9p70e959f8e800c1ab@mail.gmail.com> References: <24eb1ac50903240752p2e587061s250711382c857b8b@mail.gmail.com> <668720bc0903240943p65f802d9p70e959f8e800c1ab@mail.gmail.com> Message-ID: <20090324204134.GO21664@yellowpig> On Wed, Mar 25, 2009 at 12:43:20AM +0800, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear Andreas, > > PSL is not a matrix group, it is an action of SL on the projective > space, i.e. on the 1-dimensional subspaces. It is the quotient of SL > over the centre, which consists of scalar matrices. Then indeed, when > q=2, it is isomorphic to SL, so you can work with e.g. > SpecialLinearGroup( 2, 2 ) directly. > (You can certainly do this for bigger q too, but you have to keep in > mind that yoiu work with a preimage of the homomorphism) However it is certainly possible to represent PGL(K,n) and PSL(K,n) as a matrix group in GL(K,n^2) as the image of the action of GL(K,n) on End(K^n) by conjugacy and identifying End(K^n) with K^(n^2). This should be easily done in GAP. Cheers, Bill. From tr_murphy at hotmail.com Sat Mar 28 16:25:19 2009 From: tr_murphy at hotmail.com (Tom Murphy) Date: Sat Mar 28 16:25:42 2009 Subject: [GAP Forum] function help Message-ID: I'm trying to write a function which will print out values of the KnownProperties of my USER variables. I can list the Known Properties easily enough, BUT, when I attempt to construct a string for EvalString; I get into trouble.. Gap wants to resolve the function rather than use it.. If that makes sense. Anyway, I could probably make things work if I knew how to write a function that just returns it's name as a string. The code below is the last of many trials that almost but DID NOT work. Any help appreciated.. uu:="abc"; dkpp:=function(obj) local cr,lo,elo,nlo,kpl, i, kpv; cr:="\n"; kpl:=KnownPropertiesOfObject(obj); for i in [1 .. Size(kpl)] do; lo:=kpl[i]; #elo:=(Concatenation(lo,(obj))); elo:=lo; Print(obj); Print(elo); elo(obj); Print(EvalString(elo),cr); od; end; dkpp(uu); dkpp(1); Tom .... _________________________________________________________________ Express your personality in color! Preview and select themes for Hotmail?. http://www.windowslive-hotmail.com/LearnMore/personalize.aspx?ocid=TXT_MSGTX_WL_HM_express_032009#colortheme From neunhoef at mcs.st-and.ac.uk Sat Mar 28 18:50:11 2009 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Sat Mar 28 18:50:29 2009 Subject: [GAP Forum] function help In-Reply-To: References: Message-ID: <20090328185011.GA25989@mcs.st-and.ac.uk> Dear Tom, the value lo in your function is a GAP string since "KnownPropertiersOfObject" returns a list of strings. This string you cannot call, therefore the error message. However, this string is the name of a global variable in GAP, and this global variable is the operation corresponding to the property of your obj. To look up that value of the global variable, you can use "ValueGlobal": ValueGlobal(lo) is the the operation, thus doing Print(ValueGlobal(lo)(obj),cr); instead of elo(obj); is a possibility to achieve what you want. An additional problem with EvalString is that it is evaluated in the global context rather than the context of your local function, as this example demonstrates: gap> a := 12; 12 gap> f := function(a) return EvalString("2*a"); end; function( a ) ... end gap> f(13); 24 So the "a" in the string refers to the global variable a rather than the local variable in your function! I hope this helps, Max. On Sat, Mar 28, 2009 at 12:25:19PM -0400, Tom Murphy wrote: > > I'm trying to write a function which will print out values of the KnownProperties of my USER variables. I can list the Known Properties easily enough, BUT, when I attempt to construct a string for EvalString; I get into trouble.. Gap wants to resolve the function rather than use it.. If that makes sense. Anyway, I could probably make things work if I knew how to write a function that just returns it's name as a string. > > The code below is the last of many trials that almost but DID NOT work. Any help appreciated.. > > uu:="abc"; > > dkpp:=function(obj) > local cr,lo,elo,nlo,kpl, i, kpv; > cr:="\n"; > > kpl:=KnownPropertiesOfObject(obj); > > for i in [1 .. Size(kpl)] > do; > lo:=kpl[i]; > #elo:=(Concatenation(lo,(obj))); > elo:=lo; > Print(obj); > Print(elo); > elo(obj); > > Print(EvalString(elo),cr); > od; > > end; > > dkpp(uu); > dkpp(1); > > > Tom .... > > > > _________________________________________________________________ > Express your personality in color! Preview and select themes for Hotmail?. > http://www.windowslive-hotmail.com/LearnMore/personalize.aspx?ocid=TXT_MSGTX_WL_HM_express_032009#colortheme_______________________________________________ > 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 siddhartha18 at gmail.com Tue Mar 31 11:32:20 2009 From: siddhartha18 at gmail.com (Siddhartha Sarkar) Date: Tue Mar 31 11:32:46 2009 Subject: [GAP Forum] Re: Forum Digest, Vol 64, Issue 2 In-Reply-To: <200903231857.n2NIvqPT005537@gap-system.org> References: <200903231857.n2NIvqPT005537@gap-system.org> Message-ID: Dear GAP forum, I am trying to access the group of order 2^8 which has the descripton : (1) it is of co-class 2, (2) cited as G_20 and from family 8 (in the paper by Baginski, Konovalov "On 2-groups of Almost Maximal Class"); maybe these notations are standard. How to find this in the small group library? regards, Siddhartha, Hebrew University of Jerusalem, Israel From siddhartha18 at gmail.com Tue Mar 31 12:02:10 2009 From: siddhartha18 at gmail.com (Siddhartha Sarkar) Date: Tue Mar 31 12:02:33 2009 Subject: [GAP Forum] coclass 2-groups Message-ID: Dear GAP forum, > > I am trying to access the group of order 2^8 which has the descripton : > > (1) it is of co-class 2, > (2) cited as G_20 and from family 8 (in the paper by Baginski, Konovalov > "On 2-groups of Almost Maximal Class"); maybe these notations are standard. > > How to find this in the small group library? > The presentation is : Generators : x_1, x_2, y Relations : x_1^8 = x_2^8 = 1, y^4 = x_2^4, x_1^y = x_1 * x_2, x_2^y = x_1^{-2} * x_2^3, [x_2, x_1] = 1 > > regards, > Siddhartha, > Hebrew University of Jerusalem, Israel > From l.h.soicher at qmul.ac.uk Tue Mar 31 12:10:46 2009 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Tue Mar 31 12:10:55 2009 Subject: [GAP Forum] The GAP Council Message-ID: <20090331111046.GA26729@maths.qmul.ac.uk> Dear GAP Forum, Edmund Robertson has stepped down as Chair of the GAP Council after over five years of service, and I have been elected by the Council to succeed him. The main job of the Chair will continue to be as Editor in Chief for our package refereeing system, which continues to be one of GAP's major attractions to serious users. I hope to speed up the refereeing process where possible, and also to work to encourage more submissions from you, the GAP community. Please email me any new package submissions or queries about package submission. I also look forward to the Council continuing to support GAP in other ways, such as providing guidance, as well as general promotion of Computational Group Theory and the GAP system. I wish to take this opportunity to publicly thank Edmund Robertson, not only for his excellent work as Council Chair since October 2003, but also for his many important contributions over a long period both to Computational Group Theory and the development of the GAP project. He has provided invaluable support and advice to GAP developers as well as GAP councillors, he was closely involved in the original transfer of GAP HQ from Aachen in 1997 and the setting up of the current four centres, and he was instrumental in having the GAP Group awarded the 2008 Jenks Prize. The GAP community owes him a great deal. Leonard Soicher (Chair of the GAP Council) From alexander.konovalov at gmail.com Tue Mar 31 13:07:37 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Mar 31 13:08:01 2009 Subject: [GAP Forum] coclass 2-groups In-Reply-To: References: Message-ID: <9208E354-1899-418F-BA81-99897A3DCDF5@gmail.com> Dear Siddhartha, On 31 Mar 2009, at 12:02, Siddhartha Sarkar wrote: > Dear GAP forum, >> >> I am trying to access the group of order 2^8 which has the >> descripton : >> >> (1) it is of co-class 2, >> (2) cited as G_20 and from family 8 (in the paper by Baginski, >> Konovalov >> "On 2-groups of Almost Maximal Class"); maybe these notations are >> standard. No, we used the numeration for families following the paper by M. F. Newman and E. A. O?Brien, Classifying 2-groups by coclass. Trans. A.M.S., vol. 351, No.1, January 1999, 131-169, but the numbering of groups is only used within our paper. >> How to find this in the small group library? >> > The presentation is : > > Generators : x_1, x_2, y > > Relations : x_1^8 = x_2^8 = 1, y^4 = x_2^4, x_1^y = x_1 * x_2, x_2^y = > x_1^{-2} * x_2^3, [x_2, x_1] = 1 This is the group [ 256, 519 ]: gap> f:=FreeGroup("x_1","x_2","y"); gap> AssignGeneratorVariables(f); #I Assigned the global variables [ x_1, x_2, y ] gap> r:=[x_1^8,x_2^8,y^4*x_2^4,y^-1*x_1*y*x_2^-1*x_1^-1, > y^-1*x_2*y*x_2^-3*x_1^2,x_1^-1*x_2^-1*x_1*x_2]; [ x_1^8, x_2^8, y^4*x_2^4, y^-1*x_1*y*x_2^-1*x_1^-1, y^-1*x_2*y*x_2^-3*x_1^2, x_1^-1*x_2^-1*x_1*x_2 ] gap> G:=f/r; gap> IdGroup(G); [ 256, 519 ] Please let me know if you will have further questions. Best wishes, Alexander From beick at tu-bs.de Tue Mar 31 13:55:31 2009 From: beick at tu-bs.de (Bettina Eick) Date: Tue Mar 31 13:55:42 2009 Subject: [GAP Forum] coclass 2-groups In-Reply-To: Message-ID: Dear Sidhartha, starting from your presentation, you can do the following: # define your group as fp-group in GAP F := FreeGroup(3); x1 := F.1; x2 := F.2; y := F.3; r := [x1^8, x2^8, y^4/(x2^4), x1^y/(x1*x2), x2^y/(x1^-2*x2^3), Comm(x2,x1)]; G := F/r; # get a pc-presentation for your group H := Image(EpimorphismQuotientSystem(PQuotient(G,2,6))); # identify it in the SmallGroups Library l := IdGroup(H); This yields l = [256, 519] and it means that your group is isomorphic to SmallGroup(256, 519). Best wishes, Bettina From l.h.soicher at qmul.ac.uk Tue Mar 31 14:10:38 2009 From: l.h.soicher at qmul.ac.uk (Leonard Soicher) Date: Tue Mar 31 14:11:03 2009 Subject: [GAP Forum] Announcing the Forms package for GAP Message-ID: <20090331131038.GB28666@maths.qmul.ac.uk> Dear Forum Members, It is my pleasure to announce the newly accepted Forms package for GAP, by John Bamberg and Jan De Beule, and to thank them for this contribution to the GAP system. Forms can be used for work with sesquilinear and quadratic forms, objects that are used to describe polar spaces and classical groups. The package also deals with the recognition of certain matrix groups preserving a sesquilinear or quadratic form. The main features of Forms are its facility with creating sesquilinear and quadratic forms via matrices and polynomials, and in changing forms (creation of isometries). The Forms package can be downloaded from its GAP webpage: http://www.gap-system.org/Packages/forms.html where you can also find HTML and PDF documentation. Leonard Soicher (on behalf of the GAP Council) From siddhartha18 at gmail.com Tue Mar 31 14:49:30 2009 From: siddhartha18 at gmail.com (Siddhartha Sarkar) Date: Tue Mar 31 14:49:49 2009 Subject: [GAP Forum] coclass 2-groups In-Reply-To: References: Message-ID: Thanks for the reply. I was trying to check further the order of y^2 x_2 in GAP. It seems to take a very long time. regards, Siddhartha On Tue, Mar 31, 2009 at 3:55 PM, Bettina Eick wrote: > > Dear Sidhartha, > > starting from your presentation, you can do the following: > > # define your group as fp-group in GAP > F := FreeGroup(3); x1 := F.1; x2 := F.2; y := F.3; > r := [x1^8, x2^8, y^4/(x2^4), x1^y/(x1*x2), x2^y/(x1^-2*x2^3), > Comm(x2,x1)]; > G := F/r; > > # get a pc-presentation for your group > H := Image(EpimorphismQuotientSystem(PQuotient(G,2,6))); > > # identify it in the SmallGroups Library > l := IdGroup(H); > > This yields l = [256, 519] and it means that your group is > isomorphic to SmallGroup(256, 519). > > Best wishes, > Bettina > > > > From Bill.Allombert at math.u-bordeaux1.fr Mon Mar 30 16:59:16 2009 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Wed Apr 1 15:41:21 2009 Subject: [GAP Forum] generators of subgroups Message-ID: <20090330155915.GH2853@yellowpig> Dear GAP Forum, I have a matrix group G generated by a family of matrix, says (example from GAP documentation) and C its composition series: m1 := [ [ Z(3)^0, Z(3)^0, Z(3) ], [ Z(3), 0*Z(3), Z(3) ], [ 0*Z(3), Z(3), 0*Z(3) ] ];; m2 := [ [ Z(3), Z(3), Z(3)^0 ], [ Z(3), 0*Z(3), Z(3) ], [ Z(3)^0, 0*Z(3), Z(3) ] ];; G := Group( m1, m2 ); C := CompositionSeries(G); The elements of C are subgroups of G. I would like to get a set of generators for the elements of C expressed in term of the generators of G. Cheers, Bill. From hulpke at math.colostate.edu Wed Apr 1 16:35:39 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed Apr 1 16:36:07 2009 Subject: [GAP Forum] generators of subgroups In-Reply-To: <20090330155915.GH2853@yellowpig> References: <20090330155915.GH2853@yellowpig> Message-ID: <6BA72E99-A1FA-4789-852D-1CF12371B5A7@math.colostate.edu> Dear Bill, > I have a matrix group G generated by a family of matrix, says > (example from GAP documentation) and C its composition series: > > m1 := [ [ Z(3)^0, Z(3)^0, Z(3) ], [ Z(3), 0*Z(3), Z(3) ], > [ 0*Z(3), Z(3), 0*Z(3) ] ];; > m2 := [ [ Z(3), Z(3), Z(3)^0 ], [ Z(3), 0*Z(3), Z(3) ], > [ Z(3)^0, 0*Z(3), Z(3) ] ];; > G := Group( m1, m2 ); > C := CompositionSeries(G); > > The elements of C are subgroups of G. > I would like to get a set of generators for the elements of C > expressed in term of the generators of G. If your group is rather small (say up to 10^6), you can use `Factorization', which gives you a shortest word. (The code will be improved in future releases to permit groups of several magnitudes larger.) gap> List(C,i->List(GeneratorsOfGroup(i),x->Factorization(G,x))); The products are given in a free group given as the Source of gap> EpimorphismFromFreeGroup(G); [ x1, x2 ] -> [ [ [ Z(3)^0, Z(3)^0, Z(3) ], [ Z(3), 0*Z(3), Z(3) ], [ 0*Z(3), Z(3), 0*Z(3) ] ], [ [ Z(3), Z(3), Z(3)^0 ], [ Z(3), 0*Z(3), Z(3) ], [ Z(3)^0, 0*Z(3), Z(3) ] ] ] If your group is larger, see the manual section Expressing Group Elements as Words in Generators on how to replace `Factorization'. Best, Alexander From jrrbc at hotmail.com Fri Apr 3 18:23:38 2009 From: jrrbc at hotmail.com (=?Windows-1252?Q?Jo=E3o_Cruz?=) Date: Fri Apr 3 18:23:58 2009 Subject: [GAP Forum] congruences filter of semigroups Message-ID: 1. i want gap composer of semigroups with 5 elements 2. i want a gap congruences filter to identify the congruences in the semigroup thanks JR _________________________________________________________________ Mais do que mensagens ? conhe?a todo o Windows Live?. http://www.microsoft.com/windows/windowslive/ From gdr at integrable-solutions.net Fri Apr 3 21:31:37 2009 From: gdr at integrable-solutions.net (Gabriel Dos Reis) Date: Fri Apr 3 21:31:57 2009 Subject: [GAP Forum] PLMMS 2009: Call for Papers Message-ID: <206fcf960904031331v58face01r1efddecbaa1cb824@mail.gmail.com> The ACM SIGSAM 2009 International Workshop on Programming Languages for Mechanized Mathematics Systems PLMMS 2009 Munich, Germany; August 21, 2009 http://plmms09.cse.tamu.edu/ CALL FOR PAPERS The ACM SIGSAM 2009 International Workshop on Programming Languages for Mechanized Mathematics Systems will be co-located with TPHOLs 2009. General Information The scope of this workshop is at the intersection of programming languages (PL) and mechanized mathematics systems (MMS). The latter category subsumes present-day computer algebra systems (CAS), interactive proof assistants (PA), and automated theorem provers (ATP), all heading towards fully integrated mechanized mathematical assistants. Areas of interest include all aspects of PL and MMS that meet in the following topics, but not limited to: * Dedicated input languages for MMS: covers all aspects of languages intended for the user to deploy or extend the system, both algorithmic and declarative ones. Typical examples are tactic definition languages such as Ltac in Coq, mathematical proof languages as in Mizar or Isar, or specialized programming languages built into CA systems. * Mathematical modeling languages used for programming: covers the relation of logical descriptions vs. algorithmic content. For instance the logic of ACL2 extends a version of Lisp, that of Coq is close to Haskell, and some portions of HOL are similar to ML and Haskell, while Maple tries to do both simultaneously. Such mathematical languages offer rich specification capabilities, which are rarely available in regular programming languages. How can programming benefit from mathematical concepts, without limiting mathematics to the computational world view? * Programming languages with mathematical specifications: covers advanced mathematical concepts in programming languages that improve the expressive power of functional specifications, type systems, module systems etc. Programming languages with dependent types are of particular interest here, as is intentionality vs extensionality. * Language elements for program verification: covers specific means built into a language to facilitate correctness proofs using MMS. For example, logical annotations within programs may be turned into verification conditions to be solved in a proof assistant eventually. How need MMS and PL to be improved to make this work conveniently and in a mathematically appealing way? These issues have a very colorful history. Many PL innovations first appeared in either CA or proof systems first, before migrating into more mainstream programming languages. This workshop is an opportunity to present the latest innovations in MMS design that may be relevant to future programming languages, or conversely novel PL principles that improve upon implementation and deployment of MMS. Why are all the languages of mainstream CA systems untyped? Why are the (strongly typed) proof assistants so much harder to use than a typical CAS? What forms of polymorphism exist in mathematics? What forms of dependent types may be used in mathematical modeling? How can MMS regain the upper hand on issues of "genericity" and "modularity"? What are the biggest barriers to using a more mainstream language as a host language for a CAS or PA/ATP? PLMMS 2007 was held as a satellite event of, and PLMMS 2008 was a CICM 2008 workshop. Submission Details * Submission deadline: May 11, 2009 (Apia, Samoa time) * Author Notification: June 22, 2009 * Final Papers Due: July 10, 2009 * Workshop: August 21, 2009 Submitted papers should be in portable document format (PDF), formatted using the ACM SIGPLAN style guidelines (http://www.acm.org/sigs/sigplan/authorInformation.htm). The length is restricted to 10 pages, and the font size 9pt. Each submission must adhere to SIGPLAN's republication policy, as explained on the web. Violation risks summary rejection of the offending submission. Papers are exclusively submitted via EasyChair http://www.easychair.org/conferences?conf=plmms09 We expect that at least one author of each accepted paper attends PLMMS 2009 and presents her or his paper. Accepted papers will appear in the ACM Digital Library. Links * http://plmms09.cse.tamu.edu/, the PLMMS 2009 workshop web site * http://tphols.in.tum.de/, the THOPLs 2009 conference web site Program Committee * Clemens Ballarin, aicas GmbH * Gabriel Dos Reis, Texas A&M University (Co-Chair) * Jean-Christophe Filliatre, CNRS Universite Paris Sud * Predrag Janinic, University of Belgrade * Jaakko Jarvi, Texas A&M University * Florina Piroi, Johannes Kepler University * Laurent Th351ry, INRIA Sophia Antipolis (Co-Chair) * Makarius Wenzel, Technische Universitaet Muenchen From dphoenix21 at yahoo.com Sun Apr 5 05:47:22 2009 From: dphoenix21 at yahoo.com (milan huerto) Date: Sun Apr 5 05:47:43 2009 Subject: [GAP Forum] affine general linear group construction Message-ID: <700173.97463.qm@web36903.mail.mud.yahoo.com> Greetings! I?m just new to GAP and I?m using it in my special problem regarding association schemes. And I just ran into problems constructing The affine general linear group (AGL), specifically AGL(1,8). Does anybody know how to construct it. It would really help me out. Thanks! From dima at ntu.edu.sg Sun Apr 5 09:35:12 2009 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sun Apr 5 09:35:26 2009 Subject: [GAP Forum] affine general linear group construction In-Reply-To: <700173.97463.qm@web36903.mail.mud.yahoo.com> References: <700173.97463.qm@web36903.mail.mud.yahoo.com> Message-ID: <668720bc0904050135u42fc0fb6ld76db0bc2afb51a3@mail.gmail.com> Dear all, AffineActionByMatrixGroup(Group(Z(8)*[[1]])) albeit undocumented, appears to do the required. HTH, Dmitrii 2009/4/5 milan huerto : > Greetings! > > I?m just new to GAP and I?m using it in my special problem > regarding association schemes. And I just ran into problems constructing > The affine general linear group (AGL), specifically > AGL(1,8). Does anybody know how to construct it. It would really help me out. > Thanks! > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From combariza at gmail.com Sat Apr 11 06:47:23 2009 From: combariza at gmail.com (German Combariza) Date: Sat Apr 11 06:47:54 2009 Subject: [GAP Forum] Differential rings. Message-ID: Dear Forum: I really appreciate if someone can help with this question: 1. I want to define the differential d in the polynomial ring GF(2)[x_1,x_2] given by: - d(x_1)=0. - d(x_2)=x_1^2. - d(p,q) = pd(q) + d(p)q 2. and then compute it's cohomology: kernel, and image. Off course I need some examples more complicated, I just to know if this is possible in GAP, if there is a function, or If Should I program this by myself? Thank you so much for your time. From graham.ellis at nuigalway.ie Sat Apr 11 10:55:35 2009 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Sat Apr 11 10:57:37 2009 Subject: [GAP Forum] Differential rings. References: Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1303AD2AB9@EVS1.ac.nuigalway.ie> The HAPprime package (which uses Singular's groebner basis functions) can calculate the kernel and homology of derivations over the field of two elements. See http://www.maths.nuigalway.ie/~pas/CHA/HAPprime/Manual/DatatypesReference/chap8.html#X842250387FC8302C Graham School of Mathematics, Statistics and Applied Mathematics National University of Ireland, Galway http://hamilton.nuigalway.ie -----Original Message----- From: forum-bounces@gap-system.org on behalf of German Combariza Sent: Sat 11/04/2009 06:47 To: forum@gap-system.org Subject: [GAP Forum] Differential rings. Dear Forum: I really appreciate if someone can help with this question: 1. I want to define the differential d in the polynomial ring GF(2)[x_1,x_2] given by: - d(x_1)=0. - d(x_2)=x_1^2. - d(p,q) = pd(q) + d(p)q 2. and then compute it's cohomology: kernel, and image. Off course I need some examples more complicated, I just to know if this is possible in GAP, if there is a function, or If Should I program this by myself? Thank you so much for your time. _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From paris14 at math.auth.gr Sun Apr 12 14:12:43 2009 From: paris14 at math.auth.gr (Paraskevas Alvanos) Date: Sun Apr 12 14:13:15 2009 Subject: [GAP Forum] RelationLatticeOfUnits Complexity Message-ID: <20090412161243.qduehauhtwo8ookc@webmail.auth.gr> Dear GAP-Forum, I'd like to ask if anybody knows the complexity of the command RelationLatticeOfUnits from the alnuth package or any paper that correspondes to it. Thanks everybody in advance. Paraskevas Alvanos From jbohanon2 at gmail.com Mon Apr 13 17:39:22 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Mon Apr 13 17:40:12 2009 Subject: [GAP Forum] ConjugatorPermGroup returns infinity Message-ID: <49E36ABA.8020206@gmail.com> I have two subgroups of Co1 under the smallest permrep that GAP says are conjugate. However, "ConjugatorPermGroup" returns infinity. I checked the source and there's something in there about avoiding too much recursion. I was under the impression that "IsConjugate" actually just returns "ConjugatorPermGroup=fail" for groups. Yesterday, it was actually returning infinity for two subgroups that were equal. I skirted the issue in my code, but now the subgroups aren't equal. Is there some easy way to set the recursion depth limit higher or should I just copy-and-paste the code into a new function and up the limit? Thanks Joe From andreas at mcs.st-and.ac.uk Tue Apr 14 11:18:17 2009 From: andreas at mcs.st-and.ac.uk (Andreas Distler) Date: Tue Apr 14 11:18:30 2009 Subject: [GAP Forum] congruences filter of semigroups In-Reply-To: References: Message-ID: <49E462E9.8090101@mcs.st-andrews.ac.uk> Dear Jo?o, Jo?o Cruz wrote: > 1. i want gap composer of semigroups with 5 elements > > You can download the latest version of 'smallsemi' at http://www-history.mcs.st-and.ac.uk/~jamesm/smallsemi/ After loading the package call gap> AllSmallSemigroups(5); to get the semigroups with 5 elements up to equivalence. Be aware though that this is a development version and not everything will be documented or even functional. Moreover, the package does currently not work under Windows. If this is a problem for you I could as an alternative send you a file containing the multiplication tables of the semigroups. > 2. i want a gap congruences filter to identify the congruences in the semigroup > > As far as I know there is no GAP function that computes the congruences of a semigroup. For the semigroups of order 5 you might be successful using a brute force approach. Best wishes, Andreas > > > thanks > > > > JR > > _________________________________________________________________ > Mais do que mensagens ? conhe?a todo o Windows Live?. > http://www.microsoft.com/windows/windowslive/_______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From jrrbc at hotmail.com Wed Apr 15 22:32:13 2009 From: jrrbc at hotmail.com (=?iso-8859-1?Q?Jo=E3o_Cruz?=) Date: Wed Apr 15 22:32:28 2009 Subject: [GAP Forum] IsCongruence(Partition) routine Message-ID: Please i need the IsCongruence routine. i want see (for exemple) if [ [ Transformation( [ 1, 1 ] ) ], [ Transformation( [ 1, 2 ] ) ], [ Transformation( [ 2, 1 ] ) ], [ Transformation( [ 2, 2 ] ) ] ] is congruence or not Jo?o _________________________________________________________________ Descubra todas as formas novas de se manter em contacto com amigos e familiares. http://www.microsoft.com/windows/windowslive/default.aspx From gcs at maths.bath.ac.uk Fri Apr 17 13:56:28 2009 From: gcs at maths.bath.ac.uk (G C Smith) Date: Fri Apr 17 14:01:07 2009 Subject: [GAP Forum] Groups St Andrews (urgent reminder) In-Reply-To: References: Message-ID: (apologies if you receive this more than once) The deadline for discounted registration fees for Groups St Andrews is April 30th. Therefore people who wish to attend Groups St Andrews are urged to visit http://www.groupsstandrews.org/2009/ as a matter of some urgency, since there are only two weeks remaining. The conference will be at the University of Bath during August 1-15 2009. The series speakers in week 1 are Gerhard Hiss (RWTH, Aachen, Germany) "Finite groups of Lie type and their representations" Volodymyr Nekrashevych (Texas A&M, Texas, USA) "Iterated monodromy groups" Dan Segal (All Souls College, Oxford) "Words and groups" Eamonn O'Brien (Auckland, New Zealand) "Effective algorithmic approaches for linear groups" Mark Sapir (Vanderbilt, Nashville, USA) "Residually finite groups, random walks and dynamics of polynomial maps over p-adics" There are themed days in week two, and we hope to recreate the atmosphere of the 1997 meeting. An evening conference social area is once again available, and we ask musicians to bring their instruments. The Organizers From lee_bkua at yahoo.com Sat Apr 18 23:38:24 2009 From: lee_bkua at yahoo.com (Levie Bicua) Date: Sat Apr 18 23:38:52 2009 Subject: [GAP Forum] Combination of n objects taken r at a time Message-ID: <531195.13287.qm@web33401.mail.mud.yahoo.com> Dear forum, Suppose I have?a list of n objects and from this I want to get a new list whose elements are the?combinations of n objects taken r at a time. How will I be able to use gap for this? Specifically, let S:=[(1,2), (1,3),(2,3)]. If I want to get a list of combinations?of these?3 elements taken?2 at a time I must?obtain?the set?T:=[ [(1,2),(1,3)], [(1,3),(2,3)], [(1,2),(2,3)]]. Of course for a larger set it's not easy to do this. Any help? thanks. ? Levi From jbohanon2 at gmail.com Sat Apr 18 23:43:46 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sat Apr 18 23:44:24 2009 Subject: [GAP Forum] Combination of n objects taken r at a time In-Reply-To: <531195.13287.qm@web33401.mail.mud.yahoo.com> References: <531195.13287.qm@web33401.mail.mud.yahoo.com> Message-ID: <49EA57A2.1020602@gmail.com> Try: Combinations(list,n); Joe Levie Bicua wrote: > Dear forum, > Suppose I have a list of n objects and from this I want to get a new list whose elements are > the combinations of n objects taken r at a time. How will I be able to use gap for this? > Specifically, let S:=[(1,2), (1,3),(2,3)]. If I want to get a list of combinations of these 3 > elements taken 2 at a time I must obtain the set T:=[ [(1,2),(1,3)], [(1,3),(2,3)], [(1,2),(2,3)]]. > Of course for a larger set it's not easy to do this. Any help? thanks. > > Levi > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From lee_bkua at yahoo.com Tue Apr 21 08:05:02 2009 From: lee_bkua at yahoo.com (Levie Bicua) Date: Tue Apr 21 08:05:31 2009 Subject: [GAP Forum] Permutation of n objects taken r at a time Message-ID: <68465.31338.qm@web33407.mail.mud.yahoo.com> Dear GAP forum, Suppose I wish to get the list of all permutations of n objects taken r at a time where repetition of elements is allowed? For example from the set S:=[(1,2), (1,3),(2,3)] , If I will get the permutations of the 3 elements taken 2 at a time with repetition I obtain T:=[[(1,2),(1,2)], [(1,3),(1,3)], [(2,3),(2,3)], [(1,2),(1,3)], [(1,3),(1,2)], [(1,3),(2,3)], [(2,3),(1,3)],? [(1,2),(2,3)], [(2,3), (1,2)]]. I intend to do this for the set 2cyc:=[(),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5),(1,2)(3,4),(1,3)(2,4),(1,4)(2,3), (1,2)(3,5),(1,3)(2,5),(1,5)(2,3),(1,2)(4,5),(1,4)(2,5),(1,5)(2,4),(2,3)(4,5),(2,4)(3,5),(2,5)(3,4), (1,3)(4,5),(1,4)(3,5),(1,5)(3,4)] with r = 3. Is there any way GAP can do this especially for a larger set? thanks. ? Levi From e.j.postma+gap at gmail.com Tue Apr 21 13:54:57 2009 From: e.j.postma+gap at gmail.com (Erik Postma) Date: Tue Apr 21 13:55:22 2009 Subject: [GAP Forum] Permutation of n objects taken r at a time In-Reply-To: <68465.31338.qm@web33407.mail.mud.yahoo.com> References: <68465.31338.qm@web33407.mail.mud.yahoo.com> Message-ID: Hi Levi, What you're looking for is called an *ordered tuple* in GAP; it's described in chapter 17 of the reference manual, which you can find here: http://www.gap-system.org/Manuals/doc/htm/ref/CHAP017.htm. You could get the result you're looking for by asking for myTuples := Tuples(2cyc, 3);; This will compute all tuples at once, which is still easily feasible for these particular parameters; if you expect to have to deal with a *really* large number of tuples where memory size may be a constraint, I'd recommend generating the tuples yourself, on the fly, and processing them one by one. Erik. 2009/4/21 Levie Bicua : > Dear GAP forum, > Suppose I wish to get the list of all permutations of n objects taken r at a time > where repetition of elements is allowed? For example from the set > S:=[(1,2), (1,3),(2,3)] , If I will get the permutations of the 3 elements taken 2 at a time with repetition I obtain > T:=[[(1,2),(1,2)], [(1,3),(1,3)], [(2,3),(2,3)], [(1,2),(1,3)], [(1,3),(1,2)], [(1,3),(2,3)], [(2,3),(1,3)],? [(1,2),(2,3)], [(2,3), (1,2)]]. > I intend to do this for the set > 2cyc:=[(),(1,2),(1,3),(1,4),(1,5),(2,3),(2,4),(2,5),(3,4),(3,5),(4,5),(1,2)(3,4),(1,3)(2,4),(1,4)(2,3), > (1,2)(3,5),(1,3)(2,5),(1,5)(2,3),(1,2)(4,5),(1,4)(2,5),(1,5)(2,4),(2,3)(4,5),(2,4)(3,5),(2,5)(3,4), > (1,3)(4,5),(1,4)(3,5),(1,5)(3,4)] with r = 3. > Is there any way GAP can do this especially for a larger set? thanks. > > Levi > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From lee_bkua at yahoo.com Fri Apr 24 00:12:10 2009 From: lee_bkua at yahoo.com (Levie Bicua) Date: Fri Apr 24 00:12:37 2009 Subject: [GAP Forum] determining the groups isomorphic to another group Message-ID: <64156.31917.qm@web33406.mail.mud.yahoo.com> Dear Forum, ? Let M:=[Group([ (4,5), (2,3), (1,2)(4,5) ]), Group([ (4,5), (2,3), (1,3) ]), Group([ (4,5), (2,5), (1,3) ]), Group([ (4,5), (2,5), (1,3)(4,5) ]), Group([ (4,5), (2,5), (1,3)(2,4) ]),Group([ (4,5), (2,5), (1,3)(2,5) ]), Group((1,3,4,5),(1,6)(2,5))]; Suppose I want to know which of the elements of G are isomorphic to another group, say, g:=Group((1,2,3,4,5,6),(1,6)(2,5)(3,4)); I tried doing this but indirectly: isom:=Filtered(M, x -> ForAll(x, z -> IsomorphismGroups(x,g)=fail)); "isom" returns a list of elements of G which are not isomorphic to g..?which means that ?remaining elements?are the?groups isomorphic to g. Is there a more direct?way of getting a list of groups from G which are isomorphic to g? thanks. ? Levi From jbohanon2 at gmail.com Fri Apr 24 00:22:58 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Fri Apr 24 00:21:15 2009 Subject: [GAP Forum] determining the groups isomorphic to another group In-Reply-To: <64156.31917.qm@web33406.mail.mud.yahoo.com> References: <64156.31917.qm@web33406.mail.mud.yahoo.com> Message-ID: <49F0F852.1000804@gmail.com> If the groups are small enough (less than size 2001 and not orders 512, 1024 or 1536), you can run: Filtered(M, x-> IdGroup(x)=IdGroup(g)); Joe Levie Bicua wrote: > Dear Forum, > > Let > M:=[Group([ (4,5), (2,3), (1,2)(4,5) ]), Group([ (4,5), (2,3), (1,3) ]), > Group([ (4,5), (2,5), (1,3) ]), Group([ (4,5), (2,5), (1,3)(4,5) ]), > Group([ (4,5), (2,5), (1,3)(2,4) ]),Group([ (4,5), (2,5), (1,3)(2,5) ]), > Group((1,3,4,5),(1,6)(2,5))]; > Suppose I want to know which of the elements of G are isomorphic to another group, say, > g:=Group((1,2,3,4,5,6),(1,6)(2,5)(3,4)); > I tried doing this but indirectly: > isom:=Filtered(M, x -> ForAll(x, z -> IsomorphismGroups(x,g)=fail)); > "isom" returns a list of elements of G which are not isomorphic to g.. which means that > remaining elements are the groups isomorphic to g. Is there a more direct way of getting > a list of groups from G which are isomorphic to g? thanks. > > Levi > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From bsambale at gmx.de Fri Apr 24 06:50:16 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Fri Apr 24 06:50:40 2009 Subject: [GAP Forum] determining the groups isomorphic to another group In-Reply-To: <64156.31917.qm@web33406.mail.mud.yahoo.com> References: <64156.31917.qm@web33406.mail.mud.yahoo.com> Message-ID: <49F15318.3000008@gmx.de> Take a look at the command "IsIsomorphicGroup" provided by the package "Sonata". Levie Bicua schrieb: > Dear Forum, > > Let > M:=[Group([ (4,5), (2,3), (1,2)(4,5) ]), Group([ (4,5), (2,3), (1,3) ]), > Group([ (4,5), (2,5), (1,3) ]), Group([ (4,5), (2,5), (1,3)(4,5) ]), > Group([ (4,5), (2,5), (1,3)(2,4) ]),Group([ (4,5), (2,5), (1,3)(2,5) ]), > Group((1,3,4,5),(1,6)(2,5))]; > Suppose I want to know which of the elements of G are isomorphic to another group, say, > g:=Group((1,2,3,4,5,6),(1,6)(2,5)(3,4)); > I tried doing this but indirectly: > isom:=Filtered(M, x -> ForAll(x, z -> IsomorphismGroups(x,g)=fail)); > "isom" returns a list of elements of G which are not isomorphic to g.. which means that > remaining elements are the groups isomorphic to g. Is there a more direct way of getting > a list of groups from G which are isomorphic to g? thanks. > > Levi > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From burkhard at hoefling.name Fri Apr 24 07:33:25 2009 From: burkhard at hoefling.name (=?ISO-8859-1?Q?Burkhard_H=F6fling?=) Date: Fri Apr 24 07:33:46 2009 Subject: [GAP Forum] determining the groups isomorphic to another group In-Reply-To: <64156.31917.qm@web33406.mail.mud.yahoo.com> References: <64156.31917.qm@web33406.mail.mud.yahoo.com> Message-ID: Dear Levie, > Let > M:=[Group([ (4,5), (2,3), (1,2)(4,5) ]), Group([ (4,5), (2,3), > (1,3) ]), > Group([ (4,5), (2,5), (1,3) ]), Group([ (4,5), (2,5), (1,3)(4,5) ]), > Group([ (4,5), (2,5), (1,3)(2,4) ]),Group([ (4,5), (2,5), (1,3) > (2,5) ]), > Group((1,3,4,5),(1,6)(2,5))]; > Suppose I want to know which of the elements of G are isomorphic to > another group, say, > g:=Group((1,2,3,4,5,6),(1,6)(2,5)(3,4)); > I tried doing this but indirectly: > isom:=Filtered(M, x -> ForAll(x, z -> IsomorphismGroups(x,g)=fail)); Why don't you use isom:=Filtered(M, x -> ForAll(x, z -> IsomorphismGroups(x,g) <> fail)); Or maybe I have misunderstood your question? Cheers, Burkhard. From jbohanon2 at gmail.com Sat Apr 25 18:57:59 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sat Apr 25 18:56:17 2009 Subject: [GAP Forum] Question about Random Elements Message-ID: <49F34F27.7070008@gmail.com> I have a problem I'm working on that involves trying to find an element conjugating two subgroups of large matrix groups. As I will likely have to run through lots of elements (even after some reductions to smaller subgroups). I want to take advantage of a cluster with multiple processors, but the way I understand it, if I start gap off fresh and run Random or PseudoRandom, I will get the same sequence of elements. I'd like to be able to change the seed based on which instance of the program I am running. All of the nodes have a shared hard drive, so I can get an incrementor easily. I just don't know how to set the randomizer to start with a different seed. Thanks Joe From havas at itee.uq.edu.au Sat Apr 25 21:54:23 2009 From: havas at itee.uq.edu.au (GH UQ) Date: Sat Apr 25 21:54:52 2009 Subject: [GAP Forum] Question about Random Elements In-Reply-To: <49F34F27.7070008@gmail.com> References: <49F34F27.7070008@gmail.com> Message-ID: On Sat, 25 Apr 2009, Joe Bohanon wrote: > I'd like to be able to change the seed based on which instance of the program > I am running. > The way to do this kind of thing is discussed in Chapter 14 Sec 5 of the GAP manual. Chapter Heading: Random Sources Best wishes... George Havas http://www.itee.uq.edu.au/~havas From A.Egri-Nagy at herts.ac.uk Sat Apr 25 22:20:43 2009 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Sat Apr 25 22:21:03 2009 Subject: [GAP Forum] Question about Random Elements In-Reply-To: <49F34F27.7070008@gmail.com> References: <49F34F27.7070008@gmail.com> Message-ID: <1e16edd80904251420t4ea17632x2b8d896a1011bd28@mail.gmail.com> Hi, I usually do this: #getting the seed from the number of seconds from the Epoch SecondsSinceTheUNIXEpoch := function() local path, date,str,a; path := DirectoriesSystemPrograms();; date := Filename( path, "date" ); str := ""; a := OutputTextString(str,true); Process( DirectoryCurrent(), date, InputTextNone(), a, ["+%s"] ); CloseStream(a); NormalizeWhitespace(str); return Int(str); end; rnd := RandomSource(IsGAPRandomSource,SecondsSinceTheUNIXEpoch()); this may be quite ugly code, but it works on UNIX machines. However, MersenneTwister is 'immune' to setting the seed this way, I don't know why.. best, @ On Sat, Apr 25, 2009 at 6:57 PM, Joe Bohanon wrote: > I have a problem I'm working on that involves trying to find an element > conjugating two subgroups of large matrix groups. ?As I will likely have to > run through lots of elements (even after some reductions to smaller > subgroups). ?I want to take advantage of a cluster with multiple processors, > but the way I understand it, if I start gap off fresh and run Random or > PseudoRandom, I will get the same sequence of elements. > > I'd like to be able to change the seed based on which instance of the > program I am running. ?All of the nodes have a shared hard drive, so I can > get an incrementor easily. ?I just don't know how to set the randomizer to > start with a different seed. > > Thanks > Joe > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From alexander.konovalov at gmail.com Sat Apr 25 23:16:01 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Sat Apr 25 23:16:12 2009 Subject: [GAP Forum] Question about Random Elements In-Reply-To: <49F34F27.7070008@gmail.com> References: <49F34F27.7070008@gmail.com> Message-ID: <9ABD7144-980E-4DA0-9EF3-670BC0208750@gmail.com> Dear Joe, the IO package by Max Neunh?ffer has so called "real random sources". The IO manuals says: "It is an extension to the library mechanism of random source objects that uses the devices /dev/random and /dev/ urandom available on Linux systems (and maybe on other operating systems) providing random numbers that are impossible to predict." See them in the IO manual here: http://www.gap-system.org/Manuals/pkg/io/doc/chap6.html Best wishes, Alexander On 25 Apr 2009, at 18:57, Joe Bohanon wrote: > I have a problem I'm working on that involves trying to find an > element conjugating two subgroups of large matrix groups. As I will > likely have to run through lots of elements (even after some > reductions to smaller subgroups). I want to take advantage of a > cluster with multiple processors, but the way I understand it, if I > start gap off fresh and run Random or PseudoRandom, I will get the > same sequence of elements. > > I'd like to be able to change the seed based on which instance of > the program I am running. All of the nodes have a shared hard > drive, so I can get an incrementor easily. I just don't know how to > set the randomizer to start with a different seed. > > Thanks > Joe > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From srmurthy at brookes.ac.uk Sun Apr 26 22:52:24 2009 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Sun Apr 26 22:53:00 2009 Subject: [GAP Forum] Extending Memory for GAP tasks on Macs OS X Message-ID: <06A35235-B1B5-405B-B06F-EB61E7660EB0@brookes.ac.uk> Hi. I am running a GAP program (on a Mac Intel-dual core running OS X Leopard) which has to search in the space of all triples of subsets of a given group of size n, this space being 2^(3n) large. At present, it seems that if n > 6 then GAP fails due to lack of permitted memory. My questions are: 1. how much memory is permitted for GAP by default? 2. how can I extend the memory required for this program? (I have 2 GB of DDR2 RAM on my machine). Sincerely, Sandeep. Sandeep Murthy Ph. D. Student Computing & Mathematical Sciences School of Technology Oxford Brookes University Wheatley, Oxfordshire OX33 1HX United Kingdom From lee_bkua at yahoo.com Mon Apr 27 06:35:37 2009 From: lee_bkua at yahoo.com (Levie Bicua) Date: Mon Apr 27 06:36:06 2009 Subject: [GAP Forum] some question on sets Message-ID: <872688.66352.qm@web33401.mail.mud.yahoo.com> Dear forum, ? Is it possible to group the elements of a set into subsets of 6 elements each? Suppose I want the set T:=[elt1,elt2,elt3, ..., elt42] into S:=[[elt1 to elt6],[elt7 to elt 12], ..., [elt37 to elt42]].. For the set? T:=[[ (), (2,3), (1,2) ], [ (), (2,3), (1,3) ], [ (), (1,2), (2,3) ], [ (), (1,2), (1,3) ], [ (), (1,3), (2,3) ],[?(), (1,3), (1,2) ], [ (2,3), (), (1,2) ], [ (2,3), (), (1,3) ], [ (1,2), (), (2,3) ], [ (1,2), (), (1,3) ],[?(1,3), (), (2,3) ], [ (1,3), (), (1,2) ], [ (2,3), (2,3), (1,2) ], [ (2,3), (2,3), (1,3) ], [ (1,2), (1,2), (2,3) ], [ (1,2), (1,2), (1,3) ], [ (1,3), (1,3), (2,3) ], [ (1,3), (1,3), (1,2) ], [ (2,3), (1,2), () ], [ (2,3), (1,3), () ], [ (1,2), (2,3), () ], [ (1,2), (1,3), () ], [ (1,3), (2,3), () ], [ (1,3), (1,2), () ], [ (2,3), (1,2), (2,3) ], [ (2,3), (1,3), (2,3) ], [ (1,2), (2,3), (1,2) ], [ (1,2), (1,3), (1,2) ], [ (1,3), (2,3), (1,3) ], [ (1,3), (1,2), (1,3) ], [ (2,3), (1,2), (1,2) ], [ (2,3), (1,3), (1,3) ], [ (1,2), (2,3), (2,3) ], [ (1,2), (1,3), (1,3) ], [ (1,3), (2,3), (2,3) ], [ (1,3), (1,2), (1,2) ], [ (2,3), (1,2), (1,3) ], [ (2,3), (1,3), (1,2) ], [ (1,2), (2,3), (1,3) ], [ (1,2), (1,3), (2,3) ], [ (1,3), (2,3), (1,2) ], [ (1,3), (1,2), (2,3) ] ]; ? I used ? S:=[T{[1..6]},T{[7..12]},T{[13..18]},T{[19..24]},T{[25..30]},T{[31..36]},T{[37..42]}]; ? and it returned ? S:=[ [[ [ (), (2,3), (1,2) ], [ (), (2,3), (1,3) ], [ (), (1,2), (2,3) ], ?[ (), (1,2), (1,3) ], [ (), (1,3), (2,3) ], [ (), (1,3), (1,2) ]], [[ (2,3), (), (1,2) ], [ (2,3), (), (1,3) ], [ (1,2), (), (2,3) ], ?[ (1,2), (), (1,3) ], [ (1,3), (), (2,3) ], [ (1,3), (), (1,2) ]], [[ (2,3), (2,3), (1,2) ], [ (2,3), (2,3), (1,3) ], [ (1,2), (1,2), (2,3) ], ?[ (1,2), (1,2), (1,3) ], [ (1,3), (1,3), (2,3) ], [ (1,3), (1,3), (1,2) ]], [[ (2,3), (1,2), () ], [ (2,3), (1,3), () ], [ (1,2), (2,3), () ], ?[ (1,2), (1,3), () ], [ (1,3), (2,3), () ], [ (1,3), (1,2), () ]], [[ (2,3), (1,2), (2,3) ], [ (2,3), (1,3), (2,3) ], [ (1,2), (2,3), (1,2) ], ?[ (1,2), (1,3), (1,2) ], [ (1,3), (2,3), (1,3) ], [ (1,3), (1,2), (1,3) ]], [[ (2,3), (1,2), (1,2) ], [ (2,3), (1,3), (1,3) ], [ (1,2), (2,3), (2,3) ], ?[ (1,2), (1,3), (1,3) ], [ (1,3), (2,3), (2,3) ], [ (1,3), (1,2), (1,2) ]], [[ (2,3), (1,2), (1,3) ], [ (2,3), (1,3), (1,2) ], [ (1,2), (2,3), (1,3) ], ?[ (1,2), (1,3), (2,3) ], [ (1,3), (2,3), (1,2) ], [ (1,3), (1,2), (2,3) ]] ]; ? which is exactly what I want, but the method is not that efficient. I wonder if there is a more efficient way of doing this. ? Levi From sal at cs.st-andrews.ac.uk Mon Apr 27 16:53:56 2009 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Mon Apr 27 16:54:09 2009 Subject: [GAP Forum] GAP development vacancy Message-ID: Dear GAP Forum, While the GAP forum does not usually accept job advertisements, we make an exception in the rare event that we get an opportunity to recruit people specifically to work on developing GAP. We are lucky enough to be in that position at St Andrews this year, thanks to a recently awarded four year research grant in which we aim to develop GAP to take advantage of the parallel computing possibilities of modern hardware, from multi-core laptops through various kinds of clusters to national supercomputers. The official advertisement is found at http://www.st-andrews.ac.uk/employment/Code,32980,en.html , where you will also find links to further particulars and application forms. The text of the advert is is: Research Fellow in Computational Algebra (SK222/09) Closing date: 18 May 2009 ?36,532 pa The Centre for Interdisciplinary Research in Computational Algebra (CIRCA) has a vacancy for a Senior Research Fellow in connection with the EPSRC grant "HPC-GAP: High Performance Computational Algebra and Discrete Mathematics" (EP/G055181). You will lead a team of four software developers in an ambitious programme to adapt the GAP system to take advantage of modern high performance computers. You will conduct, lead and publish research into and using parallel algorithms and systems for computational algebra and take part in the general development of the project, of CIRCA and of GAP. You will have an appropriate PhD or equivalent and preferably relevant postdoctoral experience; a track record of success in complex mathematical or scientific software development; and good communication and leadership skills. You will start on 1 September 2009, or as soon as possible thereafter and continue until the end of the grant in August 2013. Informal enquiries to: For more information, or informal discussion, please feel free to contact Steve Linton, sal@cs.st-andrews.ac.uk, tel: +44 1334 463269, fax: +44 1334 463278. Steve 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 hulpke at me.com Tue Apr 28 04:19:38 2009 From: hulpke at me.com (Alexander Hulpke) Date: Tue Apr 28 10:06:28 2009 Subject: [GAP Forum] Extending Memory for GAP tasks on Macs OS X In-Reply-To: <06A35235-B1B5-405B-B06F-EB61E7660EB0@brookes.ac.uk> References: <06A35235-B1B5-405B-B06F-EB61E7660EB0@brookes.ac.uk> Message-ID: <985856F2-B964-4C71-A160-9DF657B1AB52@me.com> Dear Sandeep Murthy, > I am running a GAP program (on a Mac Intel-dual core > running OS X Leopard) which has to search > in the space of all triples of subsets of a > given group of size n, this space being 2^(3n) > large. At present, it seems that if n > 6 then > GAP fails due to lack of permitted memory. I suppose you get the GAP error message about running out of memory and GAP ends in the brk>-loop. This is triggered once GAP allocates more than 256MB of memory (the limit is a few years old, one probably could set it higher for modern machines), it is there to avoid a ``runaway'' GAP-process allocating memory to a point that severely distresses a system also used for other purposes at the same time. (If you call GAP with command line option `-g', it will display the amount of memory allocated at each garbage collection and give you an idea about its footprint.) In principle, you could type return; and continue with more memory allocated but this is clumsy and infeasible for batch jobs. A better solution however would be to call GAP with the -o command line option to set the warning level higher: gap -o 1024m would do 1GB for example. On a 2GB OSX machine I would probably keep this around 1GB if you want to do other things (email, web browsing) at the same time. 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 From gdr at integrable-solutions.net Tue Apr 28 11:16:55 2009 From: gdr at integrable-solutions.net (Gabriel Dos Reis) Date: Tue Apr 28 11:17:15 2009 Subject: [GAP Forum] PLMMS 2009: Last Call for Papers Message-ID: <206fcf960904280316j4494549exacd1f78552fb6f77@mail.gmail.com> The ACM SIGSAM 2009 International Workshop on Programming Languages for Mechanized Mathematics Systems PLMMS 2009 Munich, Germany; August 21, 2009 http://plmms09.cse.tamu.edu/ CALL FOR PAPERS The ACM SIGSAM 2009 International Workshop on Programming Languages for Mechanized Mathematics Systems will be co-located with TPHOLs 2009. Important Dates * Abstract submission : May 11, 2009 (Apia, Samoa time) * Submission deadline: May 18, 2009 (Apia, Samoa time) * Author notification: June 22, 2009 * Camera ready papers: July 10, 2009 * Workshop: August 21, 2009 General Information The scope of this workshop is at the intersection of programming languages (PL) and mechanized mathematics systems (MMS). The latter category subsumes present-day computer algebra systems (CAS), interactive proof assistants (PA), and automated theorem provers (ATP), all heading towards fully integrated mechanized mathematical assistants. Areas of interest include all aspects of PL and MMS that meet in the following topics, but not limited to: * Dedicated input languages for MMS: covers all aspects of languages intended for the user to deploy or extend the system, both algorithmic and declarative ones. Typical examples are tactic definition languages such as Ltac in Coq, mathematical proof languages as in Mizar or Isar, or specialized programming languages built into CA systems. * Mathematical modeling languages used for programming: covers the relation of logical descriptions vs. algorithmic content. For instance the logic of ACL2 extends a version of Lisp, that of Coq is close to Haskell, and some portions of HOL are similar to ML and Haskell, while Maple tries to do both simultaneously. Such mathematical languages offer rich specification capabilities, which are rarely available in regular programming languages. How can programming benefit from mathematical concepts, without limiting mathematics to the computational world view? * Programming languages with mathematical specifications: covers advanced mathematical concepts in programming languages that improve the expressive power of functional specifications, type systems, module systems etc. Programming languages with dependent types are of particular interest here, as is intentionality vs extensionality. * Language elements for program verification: covers specific means built into a language to facilitate correctness proofs using MMS. For example, logical annotations within programs may be turned into verification conditions to be solved in a proof assistant eventually. How need MMS and PL to be improved to make this work conveniently and in a mathematically appealing way? These issues have a very colorful history. Many PL innovations first appeared in either CA or proof systems first, before migrating into more mainstream programming languages. This workshop is an opportunity to present the latest innovations in MMS design that may be relevant to future programming languages, or conversely novel PL principles that improve upon implementation and deployment of MMS. Why are all the languages of mainstream CA systems untyped? Why are the (strongly typed) proof assistants so much harder to use than a typical CAS? What forms of polymorphism exist in mathematics? What forms of dependent types may be used in mathematical modeling? How can MMS regain the upper hand on issues of "genericity" and "modularity"? What are the biggest barriers to using a more mainstream language as a host language for a CAS or PA/ATP? PLMMS 2007 was held as a satellite event of, and PLMMS 2008 was a CICM 2008 workshop. Submission Details Submitted papers should be in portable document format (PDF), formatted using the ACM SIGPLAN style guidelines (http://www.acm.org/sigs/sigplan/authorInformation.htm). The length is restricted to 10 pages, and the font size 9pt. Each submission must adhere to SIGPLAN's republication policy, as explained on the web. Violation risks summary rejection of the offending submission. Papers are exclusively submitted via EasyChair http://www.easychair.org/conferences?conf=plmms09 We expect that at least one author of each accepted paper attends PLMMS 2009 and presents her or his paper. Accepted papers will appear in the ACM Digital Library. Links * http://plmms09.cse.tamu.edu/, the PLMMS 2009 workshop web site * http://tphols.in.tum.de/, the THOPLs 2009 conference web site Program Committee * Clemens Ballarin, aicas GmbH * Gabriel Dos Reis, Texas A&M University (Co-Chair) * Jean-Christophe Filliatre, CNRS Universite Paris Sud * Predrag Janicic, University of Belgrade * Jaakko Jarvi, Texas A&M University * Florina Piroi, Johannes Kepler University * Laurent Thery, INRIA Sophia Antipolis (Co-Chair) * Makarius Wenzel, Technische Universitaet Muenchen From saadhala10 at hotmail.com Tue Apr 28 18:45:35 2009 From: saadhala10 at hotmail.com (Saad Awaid) Date: Tue Apr 28 18:45:56 2009 Subject: [GAP Forum] magnitude in GAP Message-ID: Dear forum; I am trying to write some code to find Z(chi); where Z(\chi ) = \{ g \in G\left| {\left| {\chi (g)} \right| = \chi (1)\} } \right it seems that GAP doesn't contain function to find the magnitude for complex number? is there any way to calculate the above expression? thanks. saad _________________________________________________________________ News, entertainment and everything you care about at Live.com. Get it now! http://www.live.com/getstarted.aspxFrom hulpke at me.com Wed Apr 29 04:26:18 2009 From: hulpke at me.com (Alexander Hulpke) Date: Wed Apr 29 04:26:53 2009 Subject: [GAP Forum] magnitude in GAP In-Reply-To: References: Message-ID: <7DE3F20E-A6EB-43BC-B4D1-0DCAF69C3A65@me.com> Dear Forum, Dear Saad Awaid, > I am trying to write some code to find Z(chi); > > where Z(\chi ) = \{ g \in G\left| {\left| {\chi (g)} \right| = > \chi (1)\} } \right > > it seems that GAP doesn't contain function to find the magnitude > for complex number? |x|^2=x* conjugate(x), complex conjugate denoted by GaloisCyc(x,-1); Thus you could check whether chi[g]*GaloisCyc(chi[g],-1)=chi[1]^2 If chi is a proper class function, you also coud simply use CenterOfCharacter instead of writing your own function. 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 saadhala10 at hotmail.com Thu Apr 30 20:00:29 2009 From: saadhala10 at hotmail.com (Saad Awaid) Date: Thu Apr 30 20:00:46 2009 Subject: [GAP Forum] Faithful irreducible characters Message-ID: Dear Forum, I am trying to find the faithful irreducible characters of a p-group of order 7^2 but I didn't find it what is wrong? I did, Gps:=AllSmallGroups(Size,7^2,IsPGroup,true);; gap> Gps[1];; gap> Gps[2];; gap> Center(Gps[1]); gap> IsCyclic(last); true gap> Ir1:=Irr(Gps[1]);; gap> L1:=List(Ir1,x->KernelOfCharacter(x)=1); [ false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false ] thanks _________________________________________________________________ Show them the way! Add maps and directions to your party invites. http://www.microsoft.com/windows/windowslive/products/events.aspxFrom saadhala10 at hotmail.com Thu Apr 30 20:57:49 2009 From: saadhala10 at hotmail.com (Saad Awaid) Date: Thu Apr 30 20:58:04 2009 Subject: [GAP Forum] (no subject) Message-ID: Dear Forum, Dear Mr. Lewis; gap> IsElementaryAbelian(Gps[1]); false I am using the reference " Issacs, Characters of finite groups " theorem 2.32 (b) it state that If G is p-group and Z(G) is cyclic then G has a faithful irreducible character thanks. _________________________________________________________________ Show them the way! Add maps and directions to your party invites. http://www.microsoft.com/windows/windowslive/products/events.aspxFrom burkhard at hoefling.name Thu Apr 30 23:58:23 2009 From: burkhard at hoefling.name (=?ISO-8859-1?Q?Burkhard_H=F6fling?=) Date: Thu Apr 30 23:58:44 2009 Subject: [GAP Forum] Faithful irreducible characters In-Reply-To: References: Message-ID: Dear Saad Awaid, On 30.04.2009, at 21:00, Saad Awaid wrote: > L1:=List(Ir1,x->KernelOfCharacter(x)=1); "1" cannot be used for the trivial subgroup in GAP --- instead, please use `TrivialSubgroup' gap> L1:=List(Ir1,x->KernelOfCharacter(x)=TrivialSubgroup (Gps[1])); or check if the size is 1. gap> L1:=List(Ir1,x->Size(KernelOfCharacter(x))=1); [ false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true ] Cheers, Burkhard H?fling. From saadhala10 at hotmail.com Fri May 1 13:58:50 2009 From: saadhala10 at hotmail.com (Saad Awaid) Date: Fri May 1 13:59:08 2009 Subject: [GAP Forum] AllActions Message-ID: Dear Forum, Let G , H be a group and set rep. (or both are groups) is itt possible to calculate all the possible actions of G on H. even for a specific kind of groups?? thanks. _________________________________________________________________ Windows Live?: Keep your life in sync. Check it out! http://windowslive.com/explore?ocid=TXT_TAGLM_WL_t1_allup_explore_012009 From philipp_s at gmx.de Sat May 2 11:16:23 2009 From: philipp_s at gmx.de (Philipp Schneider) Date: Sat May 2 11:16:47 2009 Subject: [GAP Forum] EuclideanRemainder returns strange error Message-ID: <49FC1D77.7060207@gmx.de> Dear Forum, the following error is driving me crazy: let R:=PolynomialRing(Rationals,["x"]); x:=IndeterminatesOfPolynomialRing(R)[1]; and let the function test be defined as follows test := function(a,b) return EuclideanRemainder(a,b); end; then test(x^2,One(R)) returns 0; now let lt:=f->LeadingTermOfPolynomial(f,MonomialLexOrdering()); and test2 := function(a,b) return EuclideanRemainder(lt(a),lt(b)); end; then lt(x^2)=x^2 and lt(One(R)) = One(R); returns true; but test2(x^2,One(R)) raises the error: Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `QuotientRemainder' on 3 arguments called from called from called from QuotientRemainder( R, r, m ) called from EuclideanRemainder( DefaultRing( [ r, m ] ), r, m ) called from EuclideanRemainder( lt( a ), lt( b ) ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue Does anybody have an explanation for this? Greeting, Philipp Schneider From philipp_s at gmx.de Sat May 2 12:30:27 2009 From: philipp_s at gmx.de (Philipp Schneider) Date: Sat May 2 12:30:49 2009 Subject: [GAP Forum] EuclideanRemainder returns strange error In-Reply-To: <49FC1D77.7060207@gmx.de> References: <49FC1D77.7060207@gmx.de> Message-ID: <49FC2ED3.2010609@gmx.de> Well the problem seems to be that I define the ring twice. The following reproduces the error: gap> R:=PolynomialRing(Rationals,["x"]); PolynomialRing(..., [ x ]) gap> x:=IndeterminatesOfPolynomialRing(R)[1]; x gap> EuclideanRemainder(LeadingTermOfPolynomial(x^2,MonomialLexOrdering()),LeadingTermOfPolynomial(One(R),MonomialGrlexOrdering())); 0 gap> R:=PolynomialRing(Rationals,["x"]); PolynomialRing(..., [ x ]) gap> x:=IndeterminatesOfPolynomialRing(R)[1]; x gap> EuclideanRemainder(LeadingTermOfPolynomial(x^2,MonomialLexOrdering()),LeadingTermOfPolynomial(One(R),MonomialGrlexOrdering())); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `QuotientRemainder' on 3 arguments called from called from called from QuotientRemainder( R, r, m ) called from EuclideanRemainder( DefaultRing( [ r, m ] ), r, m ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> gap> LogTo(); Greetings, Philipp Schneider Philipp Schneider wrote: > Dear Forum, > the following error is driving me crazy: > > let > R:=PolynomialRing(Rationals,["x"]); > x:=IndeterminatesOfPolynomialRing(R)[1]; > > and let the function test be defined as follows > > test := function(a,b) > return EuclideanRemainder(a,b); > end; > > then test(x^2,One(R)) returns 0; > > now let > lt:=f->LeadingTermOfPolynomial(f,MonomialLexOrdering()); > > and > test2 := function(a,b) > return EuclideanRemainder(lt(a),lt(b)); > end; > > then > lt(x^2)=x^2 and lt(One(R)) = One(R); > returns true; > > but test2(x^2,One(R)) raises the error: > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 3rd choice method found for `QuotientRemainder' on 3 > arguments called from > called from > called from > QuotientRemainder( R, r, m ) called from > EuclideanRemainder( DefaultRing( [ r, m ] ), r, m ) called from > EuclideanRemainder( lt( a ), lt( b ) ) called from > ... > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > > > Does anybody have an explanation for this? > > Greeting, > Philipp Schneider > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From math136464 at yahoo.com Sun May 3 12:05:00 2009 From: math136464 at yahoo.com (Maryam Khatami) Date: Sun May 3 12:05:24 2009 Subject: [GAP Forum] C4(2) Message-ID: <607410.61032.qm@web111207.mail.gq1.yahoo.com> Dear forum, ? Does GAP recognize the simple group of Lie type C_4(2)? I need its character table? ? Thank you for your help. From dima at ntu.edu.sg Sun May 3 14:10:12 2009 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sun May 3 14:10:35 2009 Subject: [GAP Forum] C4(2) In-Reply-To: <607410.61032.qm@web111207.mail.gq1.yahoo.com> References: <607410.61032.qm@web111207.mail.gq1.yahoo.com> Message-ID: <668720bc0905030610m7c8d9beaybaa86e08f7a93853@mail.gmail.com> Dear Maryam, you can use CharacterTable(Sp(6,2)); Hope this helps, Dmitrii 2009/5/3 Maryam Khatami : > Dear forum, > > Does GAP recognize the simple group of Lie type C_4(2)? I need its character table? > > Thank you for your help. > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From gabar at mai.liu.se Tue May 5 08:57:51 2009 From: gabar at mai.liu.se (Gabriel Bartolini) Date: Tue May 5 08:58:24 2009 Subject: [GAP Forum] group epimorphisms Message-ID: <49FFF17F.70301@mai.liu.se> Hi, I've been searching around but haven't found if it is possible to list all groups of order N generated by elements of orders m1 to mr, for example; all groups of order 32 generated by two elements x1, x2 of order 8 such that order(x1*x2)=2. Any suggestions would be appreciated. Regards, Gabriel From e.j.postma+gap at gmail.com Tue May 5 13:55:55 2009 From: e.j.postma+gap at gmail.com (Erik Postma) Date: Tue May 5 13:56:18 2009 Subject: [GAP Forum] group epimorphisms In-Reply-To: <49FFF17F.70301@mai.liu.se> References: <49FFF17F.70301@mai.liu.se> Message-ID: 2009/5/5 Gabriel Bartolini : > Hi, > > I've been searching around but haven't found if it is possible to list all > groups of order N generated by elements of orders m1 to mr, for example; > all groups of order 32 generated by two elements x1, x2 of order 8 such that > order(x1*x2)=2. > > Any suggestions would be appreciated. > > Regards, > Gabriel Hi Gabriel, I can think of two approaches, one of which won't work for this example and one of which will. The first approach would be to form the group with presentation , and see if it's finite. In this case it isn't, so we'd continue with the next approach; if it is, say of size N, you can see if it's possible to find all its normal subgroups of order N/32. Then mod those out and see in which cases the images of x1 and x2 still have the properties that you are looking for (instead of having an order that divides 8, for example). For the second approach, first find all groups of order 32 with the command AllSmallGroups(32). Then for each group G, find the conjugacy classes C1, C2, ..., of elements of order 8. Now find all representative pairs of elements from those conjugacy classes: for each class, take one representative element g1 as the first item in the pair; compute the stabilizer S of g1 in the automorphism group of G; then form a pair [g1, g2] for representatives g2 from all S-orbits of C1, C2, ... . Finally, for each such pair [g1, g2], check the order of g1 * g2 and whether g1 and g2 generate all of G. Of course, once you've found a pair that works, you don't need to check any of the other pairs for that group. HTH, Erik Postma. From hulpke at math.colostate.edu Tue May 5 17:37:07 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue May 5 17:37:26 2009 Subject: [GAP Forum] EuclideanRemainder returns strange error In-Reply-To: <49FC2ED3.2010609@gmx.de> References: <49FC1D77.7060207@gmx.de> <49FC2ED3.2010609@gmx.de> Message-ID: <7C7A8B75-FF77-46F8-8810-44CC33B89A5D@math.colostate.edu> Dear Forum, Dear Philipp Schneider, On May 2, 2009, at 5/2/09 5:30, Philipp Schneider wrote: > the following error is driving me crazy: [...] > Well the problem seems to be that I define the ring twice. Thank you for this bug report. We will fix this in the next release. Let me know privately if you want to have a temporary patch already now. To preserve your sanity, let me explain what is happening -- it is the interplay of two issues: Internally, GAP describes indeterminates by an index number. The first variable is assigned number 1, the second number 2, and so on. As you define the polynomial ring a second time (even though the name of the variable is ``x'' both times), you are working with variable number 2. (This has been the source of confusion. Future releases will therefore trigger a warning when doing this, requiring an indication whether the same, or a new variable should be defined.) Univariate polynomials sim,ply store a coefficient list and the `IndeterminateNumberOfUnivariateRationalFunction' for which they are defined. The second issue is multivariate polynomial code (which you get into, as you call ``LeadingTermOfPolynomial'', which is inherently multivariate). For One(R) it therefore returns the constant one polynomial in multivariate storage format. ``EuclideanRemainder'' now needs to consider the polynomial as univariate. The conversion code defaults to indeterminate number 1, which causes the problem. Changing the variable number will not ultimately help, the fix has to consider constant polynomials as univariate in *any* variable. (A second (but not the only) problem is your calling of `EuclideanRemainder' without a polynomial ring, the code then takes the multivariate ring with variables 1 and 2 as default, which is not Euclidean any longer. This default behaviour also will be fixed.). 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 Tue May 5 17:42:10 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue May 5 17:42:35 2009 Subject: [GAP Forum] Permutation Representation of 3.McL.2 Message-ID: <4A006C62.8000002@gmail.com> Does anyone know a good way to get a permrep for 3.McL.2 (the second largest subgroup of the Lyons group)? The ATLAS has a rep for 3.McL with about 66k moved points, so I'm guessing 3.McL.2 is probably not much bigger than that. What I really need is a list of the classes of non-solvable subgroups of 3.McL.2. I could theoretically do this by creating a homomorphism to McL.2, then lifting non-solvable subgroups and testing if the "3" is complemented or not in the pre-images. I can easily create the homomorphism using GroupHomomorphismByImagesNC, but GAP stalls bad when trying to take pre-images. I've thought about using the ideas from the paper "Constructing Permutation Representations for Large Matrix Groups", but before I embark on trying to encode their algorithm, I figured I'd ask here to see if anyone might just happen to have generators you could send me. Thanks Joe From sal at cs.st-andrews.ac.uk Tue May 5 19:54:03 2009 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Tue May 5 19:54:20 2009 Subject: [GAP Forum] Permutation Representation of 3.McL.2 In-Reply-To: <4A006C62.8000002@gmail.com> References: <4A006C62.8000002@gmail.com> Message-ID: Dear Joe, dear GAP Forum, There is a standard trick for this situation, which comes in two parts, depending on whether the 66k point perm rep is taken to an equivalent or an inequivalent representation by the outer automorphism of 3.Mcl In the inequivalent case, it's very easy. Call the original representation rho and the image under the outer automorphism rho'. You take twice as many points, with 3McL acting as rho on one half and rho' on the other. Adjoin an involution exchanging the two halves and you're done. In the equivalent case you have to do a little more work. You find words for a transversal of the points in your standard generators w_1,....w_66k Now you make the same words in the images of the generators under the automorphism, call the resulting set of group elements x_1..x_66k. The permutation which maps 1 to 1.x_1, 2 to 1.x_2, 3 to 1.x_3 and so on extends the representation to 3 McL.2. Steve On 5 May 2009, at 17:42, Joe Bohanon wrote: > Does anyone know a good way to get a permrep for 3.McL.2 (the second > largest subgroup of the Lyons group)? The ATLAS has a rep for 3.McL > with about 66k moved points, so I'm guessing 3.McL.2 is probably not > much bigger than that. > > What I really need is a list of the classes of non-solvable > subgroups of 3.McL.2. I could theoretically do this by creating a > homomorphism to McL.2, then lifting non-solvable subgroups and > testing if the "3" is complemented or not in the pre-images. I can > easily create the homomorphism using GroupHomomorphismByImagesNC, > but GAP stalls bad when trying to take pre-images. > > I've thought about using the ideas from the paper "Constructing > Permutation Representations for Large Matrix Groups", but before I > embark on trying to encode their algorithm, I figured I'd ask here > to see if anyone might just happen to have generators you could send > me. > > Thanks > Joe > > _______________________________________________ > 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 thomas.breuer at math.rwth-aachen.de Wed May 6 08:48:51 2009 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed May 6 08:49:57 2009 Subject: [GAP Forum] Permutation Representation of 3.McL.2 In-Reply-To: <4A006C62.8000002@gmail.com> References: <4A006C62.8000002@gmail.com> Message-ID: <20090506074851.GA21269@gemma.math.rwth-aachen.de> Dear GAP Forum, Joe Bohanon asked > Does anyone know a good way to get a permrep for 3.McL.2 (the second > largest subgroup of the Lyons group)? The ATLAS has a rep for 3.McL > with about 66k moved points, so I'm guessing 3.McL.2 is probably not > much bigger than that. You can take the permutations stored in http://www.math.rwth-aachen.de/~mfer/datagens/3McLd2G1-p66825bB0.m1 http://www.math.rwth-aachen.de/~mfer/datagens/3McLd2G1-p66825bB0.m2 > What I really need is a list of the classes of non-solvable subgroups of > 3.McL.2. I could theoretically do this by creating a homomorphism to > McL.2, then lifting non-solvable subgroups and testing if the "3" is > complemented or not in the pre-images. I can easily create the > homomorphism using GroupHomomorphismByImagesNC, but GAP stalls bad when > trying to take pre-images. I would start from the struture of the maximal subgroups of McL.2 (see the Atlas) and of 3.McL (see `Maxes( CharacterTable( "3.McL" ) )'). This should help to find the structures of the nonsolvable maximal subgroups of 3.McL.2. All the best, Thomas Breuer From saadhala10 at hotmail.com Fri May 8 14:47:11 2009 From: saadhala10 at hotmail.com (Saad Awaid) Date: Fri May 8 14:47:31 2009 Subject: [GAP Forum] about xgap Message-ID: Dear Forum, Is xgap work under windows xp, if so how? thanks, Too naive questions sometimes give rise for new theories ! " I said that " _________________________________________________________________ More than messages?check out the rest of the Windows Live?. http://www.microsoft.com/windows/windowslive/ From jbohanon2 at gmail.com Fri May 8 16:09:38 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Fri May 8 16:10:09 2009 Subject: [GAP Forum] about xgap In-Reply-To: References: Message-ID: <4A044B32.3010004@gmail.com> Dear Saad and GAP Forum It took me a while to figure out how to install XGAP to run in XP, but yes, it is possible. If you have access to a mac, I'd also recommend CocoaGAP. I helped one of my colleagues install it on her laptop a few years ago. Here's the e-mail I sent with a few updates. If anyone has corrections or clarifications, I'd welcome them. Here's the long list of steps to get XGAP running. 1. Download Cygwin from http://www.cygwin.com/setup.exe. Run the program and use all the default install locations. Once you get to where you can choose a mirror, the one I've used is about half-way down, ftp://mirrors.rcn.net. It's very fast downloads, unlike some of the other foreign servers listed. 2. Once you hit next it brings up a list of things to install. Already checked should be everything critical to run Cygwin, but you need a few extra packages. First, go down to X11 and select everything. Then hit the "View" button, which will list all packages alphabetically. Get "gcc", "gdb" and "make". Hit next and it will start downloading, then installing. This will probably take a while. Once finished, run cygwin (it should've created a desktop icon or one in the start menu). The commands are exactly the same as UNIX. If you don't know UNIX, you really only need to know that CD changes directory, CD .., moves you one directory up, and ls lists the files and folders in the current directory. 3. Now, you need to get GAP downloaded and unpacked. Get the .zoo file from ftp://ftp.gap-system.org/pub/gap/gap4/zoo/gap4r4p6.zoo and the unzoo utility from ftp://ftp.gap-system.org/pub/gap/gap4/util/unzoo.c. Download both files into a convenient directory in the c:\cygwin folder and navigate to it. Type "cc -o unzoo -DSYS_IS_UNIX unzoo.c" to get the unzoo program compiled. Then once GAP finishes downloading, type unzoo -x gap4r4p6.zoo. This take a while as well. I'm pretty sure it will always unpack into the location /usr/local/lib/gap4r4. 4. Once GAP is finished installing, you can check to see if it will run by navigating to the folder above in the Cygwin shell, then going into /bin. You can try running ./gapw95.exe or ./gap.bat. On mine, I have to use the extra option "-l .." with the first command. 5. Next, download xgap from ftp://ftp.gap-system.org/pub/gap/gap4/zoo/packages/xgap4r21.zoo and unpack it in the same way. Move it to the pkg folder. 6. In the Cygwin shell, navigate to /pkg/xgap and type ./configure. Once it finishes type make. I forget exactly where, but at this point a file called "xgap.sh" has been created. Type ls and if you don't see it, go into the "bin" folder and try again. Anyway, you really want to edit this from the Windows interface anyway. Right-click and choose to open the file with wordpad (notepad apparently does not read some of the line break characters making it near impossible to edit). Now scroll down and input the following value: For GAP_DIR, /usr/local/lib/gap4r4 Don't change XGAP_DIR or GAP_MEM For XGAP_PRG, you need to look in the XGAP/bin folder. The exectuable is in a folder that is called something like i686-pc-cygwin-gcc, but it may vary. Then you input something like i686-pc-cygwin-gcc/xgap.exe. Save and close the file. 7. Go back to the cygwin shell and navigate to /usr/local/bin, then type ln -s /usr/local/lib/gap4r4/pkg/xgap/bin/xgap.sh xgap. This makes it so you don't have to navigate through a ton of folders. 8. Now you need to get X-windows running. Supposedly there are 3 commands to do so, but I've only gotten one to work. The two that don't (which you should try just in case) are xwin.exe and startxwin.bat. The second one does open a shell, but not the graphical thing that the first does. I have gotten xinit to work every time. 9. Type xgap, and it should start running GAP. In X-Windows, the enter key isn't bound right. To get commands to execute, you have to hit enter, then Ctrl-J (this is something I'd appreciate if someone found a work-around for). 10. I also use a program called fvwm. I forget exactly how I installed it, but the instructions were straightforward. When you get it installed go into X-Windows, and type fvwm (you might have to create a link to that program, I don't remember). Then left click in the blank space and click "XTERM". Now you have the shell you want. Incidentally, you'll also probably want select the option "All Paging Off" from the "Simple Config Ops" menu that shows up when you left-click. There are also examples here: http://www-gap.mcs.st-and.ac.uk/Manuals/pkg/xgap/htm/CHAP004.htm These are good in case you don't want to draw a full lattice. Let me know if you can get this working. If you have trouble I'd be happy to try to help. Joe Saad Awaid wrote: > > > > > Dear Forum, > > > > Is xgap work under windows xp, if so how? > > > > > > thanks, > > > > > > > > > > > > > > > > > > Too naive questions sometimes give rise for new theories ! " I said that " > > > > _________________________________________________________________ > More than messages?check out the rest of the Windows Live?. > http://www.microsoft.com/windows/windowslive/_______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From render787 at gmail.com Sat May 9 04:01:06 2009 From: render787 at gmail.com (chris beck) Date: Sat May 9 04:01:20 2009 Subject: [GAP Forum] Collections of Tuples Message-ID: <95162a110905082001u65ed8169kd1ae82e8cca69cc9@mail.gmail.com> Can somebody please explain to me why this returns false? gap> IsTuple(Tuples([1,2],2)[1]); false Is this a glitch or something? It took me a really long time to figure out that Tuples did not return a collection of tuples, and if there's no good reason that it doesn't, it would save a lot of people some headaches if the return type of this were changed. Thanks, Chris From sal at cs.st-andrews.ac.uk Tue May 12 10:13:49 2009 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Tue May 12 10:14:01 2009 Subject: [GAP Forum] Two more openings for GAP developers Message-ID: Dear GAP Forum, Further to my post of a few weeks ago advertising a job opening for a research fellow for our HPC-GAP project, we now have two further less senior vacancies. Full details are at: http://www.st-andrews.ac.uk/employment/Code,33287,en.html Closing date is 10 June, Here is the advertisement text: Two Scientific Officers (Parallel Software Development) (SK232/09) Closing date: 10 June 2009 ?29,704 pa The Centre for Interdisciplinary Research in Computational Algebra (CIRCA) has vacancies for two Scientific Officers in connection with the EPSRC grant "HPC-GAP: High Performance Computational Algebra and Discrete Mathematics" (EPSRC EP/G055181). You will start on 1 September 2009 or as soon as possible thereafter, and continue for two years, with the possibility of extension for up to two further years. You will join a team of four software developers in an ambitious programme to adapt the GAP system to take advantage of modern high performance computers. There may be opportunities to take part in, and publish research using the software you develop. You will have an excellent relevant programming skills, a degree in mathematics or computer science, several years of relevant experience and good communication and teamworking skills. Informal enquiries to Steve Linton, sal@cs.st-andrews.ac.uk, tel: +44 1334 463269, fax: +44 1334 463278. 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 jjm at mcs.st-and.ac.uk Tue May 12 16:01:24 2009 From: jjm at mcs.st-and.ac.uk (John McDermott) Date: Tue May 12 16:01:40 2009 Subject: [GAP Forum] Groups St Andrews (Improved accommodation, double beds) Message-ID: (With apologies for multiple copies.) Groups 2009 Important Announcement (Aug 1 arrive, Aug 15 depart) ---------------------------------------------------------------- Following negotiations with the University of Bath, we are able to announce improved accommodation provisions for the conference. A limited (but substantial) stock of premium level accommodation is available which contains double beds. These rooms are available at the same cost as ordinary premium level accommodation for one person, so effectively the second person will be able to stay rent free. Of course accompanying persons must pay the appropriate conference registration fee. In order that registered and potential conferees may change their arrangements in the light of this new information, we have decided to extend the `early registration' discount period until Friday June 12th. The start of the 10% surcharge on accommodation will also be delayed until June 12th. (People who have made payments since April 30th at the higher rate will receive a refund of an appropriate part of their payment.) People who have booked double accommodation off campus, and are able to cancel these bookings without significant charge, may wish to do so, and live on campus instead. However, we point out that these `double bedded' premium rooms (with en suite facilies) are normally occupied by one student, and space will therefore be limited. People who have paid for two rooms, but who now reserve a double room instead will receive an appropriate refund. Our finance officer is on leave, so an immediate refund is not possible. A refund may be possible through PAYPAL, but if it is convenient for you, we offer an appropriate cash refund (in sterling) during the conference. Existing conferees who wish to vary their booking should send an e-mail to the conference address, with the words `booking variation' and their surname in the subject line, and the details of the accommodation arrangements they wish to make. We will then enter into individual discussions about how to adjust payments. Best wishes The Organizers -- The University of St Andrews is a charity registered in Scotland : No SC01353 From chinare4471 at yahoo.com.cn Thu May 14 14:55:00 2009 From: chinare4471 at yahoo.com.cn (zuohui wu) Date: Thu May 14 14:55:27 2009 Subject: [GAP Forum] Need your help! Thank you ! Message-ID: <672893.41009.qm@web15605.mail.cnb.yahoo.com> Dear forum : ???? I am new to GAP4 . I need your help ! I want to study more about Gap4. Now I only know that http://people.math.jussieu.fr/~jmichel/htm/?, but it is not convenience for me to study . Could you give me?any other?references (books)? ? P.s.? ?I want to use Gap4 to do some calculation about geoups (such as :size ,automorphisms ,inner automorphisms, the structure of the automorphism groups?) ? Thank you very much ! ? Best wishes to you! ___________________________________________________________ ????????????????? http://card.mail.cn.yahoo.com/ From jack at ms.uky.edu Thu May 14 15:17:18 2009 From: jack at ms.uky.edu (Jack Schmidt) Date: Thu May 14 15:17:39 2009 Subject: [GAP Forum] Need your help! Thank you ! In-Reply-To: <672893.41009.qm@web15605.mail.cnb.yahoo.com> References: <672893.41009.qm@web15605.mail.cnb.yahoo.com> Message-ID: Probably you will find what you need at: http://www.gap-system.org/Doc/doc.html It links to many good documents, including: A "How to" guide: http://www.usna.edu/Users/math/wdj/gap/GAPconstructions.html The current reference manual: http://www.gap-system.org/Manuals/doc/htm/ref/chapters.htm If you type: grp := DihedralGroup(12); aut := AutomorphismGroup(grp); inn := grp/Center(grp); StructureDescription(aut); StructureDescription(inn); into GAP then you will see: gap> grp := DihedralGroup(12); gap> aut := AutomorphismGroup(grp); gap> inn := grp/Center(grp); Group([ f1, f2^2, f2 ]) gap> StructureDescription(aut); "D12" gap> StructureDescription(inn); "S3" On 2009-05-14, at 09:55, zuohui wu wrote: > Dear forum : > I am new to GAP4 . I need your help ! > I want to study more about Gap4. > Now I only know that http://people.math.jussieu.fr/~jmichel/htm/ , > but it is not convenience for me to study . > Could you give me any other references (books)? > > P.s. I want to use Gap4 to do some calculation about geoups (such > as :size ,automorphisms ,inner automorphisms, the structure of the > automorphism groups ) > > Thank you very much ! > > Best wishes to you! > > > ___________________________________________________________ > ????????????????? > http://card.mail.cn.yahoo.com/ > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jaijinenedra at yahoo.co.in Mon May 18 16:10:23 2009 From: jaijinenedra at yahoo.co.in (Vivek Jain) Date: Mon May 18 16:10:51 2009 Subject: [GAP Forum] Permutation Representation Message-ID: <799002.45697.qm@web94709.mail.in2.yahoo.com> I want to discuss the following problem with Gap Forum "Let $G$ be a group and $H$ be its proper subgroup. Then using GAP how can we get the Permutation Representation of $G$ on the set of right cosets of $H$ in $G$." ? Vivek Kumar Jain HRI, Allahabad India-211019 Explore and discover exciting holidays and getaways with Yahoo! India Travel http://in.travel.yahoo.com/ From jack at ms.uky.edu Mon May 18 18:07:33 2009 From: jack at ms.uky.edu (Jack Schmidt) Date: Mon May 18 18:07:51 2009 Subject: [GAP Forum] Permutation Representation In-Reply-To: <799002.45697.qm@web94709.mail.in2.yahoo.com> References: <799002.45697.qm@web94709.mail.in2.yahoo.com> Message-ID: <31CD79C9-7715-41B9-81C7-5EF2A2A9672C@ms.uky.edu> Yes, the command is: hom := FactorCosetAction(G,H); This gives the permutation representation as a homomorphism. The permutation group itself can be gotten by: prmgrp := Image( hom ); See http://www.gap-system.org/Manuals/doc/htm/ref/CHAP039.htm#SECT007 On 2009-05-18, at 11:10, Vivek Jain wrote: > > I want to discuss the following problem with Gap Forum > > "Let $G$ be a group and $H$ be its proper subgroup. Then using GAP > how can we get the Permutation Representation of $G$ on the set of > right cosets of $H$ in $G$." > > > > Vivek Kumar Jain > HRI, Allahabad > India-211019 > > > > Explore and discover exciting holidays and getaways with Yahoo! > India Travel http://in.travel.yahoo.com/ > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Mon May 18 18:16:50 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon May 18 18:17:09 2009 Subject: [GAP Forum] Permutation Representation In-Reply-To: <799002.45697.qm@web94709.mail.in2.yahoo.com> References: <799002.45697.qm@web94709.mail.in2.yahoo.com> Message-ID: <147D6190-B12C-4305-ADAB-B42329534128@math.colostate.edu> Dear Forum, On May 18, 2009, at 5/18/09 9:10, Vivek Jain wrote > I want to discuss the following problem with Gap Forum > > "Let $G$ be a group and $H$ be its proper subgroup. Then using GAP > how can we get the Permutation Representation of $G$ on the set of > right cosets of $H$ in $G$." http://www.gap-system.org/Manuals/doc/htm/ref/CHAP039.htm#SECT007 sais that FactorCosetAction(G,H); returns this homomorphism. 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 srmurthy at brookes.ac.uk Tue May 19 04:52:32 2009 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Tue May 19 04:53:02 2009 Subject: [GAP Forum] Choosing random elements from a group Message-ID: <4CBAC918-B581-45E5-AB8B-535AF3A18C8E@brookes.ac.uk> Hi, I'd like to know the best way to choose random elements of a group in GAP? Sincerely, Sandeep. Sandeep Murthy Ph. D. Student Computing & Mathematical Sciences Room C.202C School of Technology Oxford Brookes University Wheatley, Oxfordshire OX33 1HX United Kingdom Ph: (01865) 485605 From jbohanon2 at gmail.com Tue May 19 04:58:22 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue May 19 04:59:12 2009 Subject: [GAP Forum] Choosing random elements from a group In-Reply-To: <4CBAC918-B581-45E5-AB8B-535AF3A18C8E@brookes.ac.uk> References: <4CBAC918-B581-45E5-AB8B-535AF3A18C8E@brookes.ac.uk> Message-ID: <4A122E5E.20603@gmail.com> Random(G) or PseudoRandom(G) http://www.gap-system.org/Manuals/doc/htm/ref/CHAP028.htm#SECT006 PseudoRandom is much faster if you have a huge number of moved points in a permutation group or a big matrix group. I don't really know what the limits of the regular Random function are, but it takes a very long time to find a Random element of the Lyons group in its 111-dimensional representation over F5. Joe Sandeep Murthy wrote: > Hi, > > I'd like to know the best way to choose random elements > of a group in GAP? > > Sincerely, Sandeep. > > > Sandeep Murthy > Ph. D. Student > Computing & Mathematical Sciences > Room C.202C > School of Technology > Oxford Brookes University > Wheatley, Oxfordshire OX33 1HX > United Kingdom > > Ph: (01865) 485605 > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From srmurthy at brookes.ac.uk Tue May 19 05:41:40 2009 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Tue May 19 05:42:11 2009 Subject: [GAP Forum] Choosing random elements from a group In-Reply-To: <354DF44B-5B7A-4FC8-8FA5-1BB88BF90E80@me.com> References: <4CBAC918-B581-45E5-AB8B-535AF3A18C8E@brookes.ac.uk> <354DF44B-5B7A-4FC8-8FA5-1BB88BF90E80@me.com> Message-ID: Thank you, I'm working on a random search algorithm for basic finite non-Abelian groups initially of order <= 10^12. At what point does the randomness of PseudoRandom() degrade compared to Random() for this situation? Specifically, I need to find a triple of subsets S,T,U of sizes say m, p, q resp. in a non-Abelian finite group G of order say n such that the following size conditions are satisfied: 1. n <= mpq < = floor(n^(1.5)) - the triple product of the subset sizes is at least the group order and less than 1.5 times the group order. 2. floor(n^(1.5)) - mpq is a minimum over all subset triples satisfying a certain simple algebraic condition. Sincerely, Sandeep. P. S. I note that the GAP manual describes a RandomList() method that is said to be effective for dense lists up 2^28 long. On 19 May 2009, at 05:14, Alexander Hulpke wrote: > Dear Forum, Dear Sandeep Murthy, > >> >> I'd like to know the best way to choose random elements >> of a group in GAP? > > That depends on your choice of group (Is it finite? Permutations? > Presentation? Matrices?), your criteria for randomness, and > (definition of ``best'') your preferences for memory use and runtime. > > Two default functions are > Random > which tries to create an equal distribution (subject to the > randomness of the built-in random number generator, of course), but > requires the ability to enumerate all elements of the group (I.e. it > does not work for infinite groups and -- for example -- very badly > for large matrix groups or finitely presented groups) and > PseudoRandom > which uses only generators and limited memory/run time, but does not > guarantee true randomness. > > 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 srmurthy at brookes.ac.uk Tue May 19 05:46:03 2009 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Tue May 19 05:46:33 2009 Subject: Fwd: [GAP Forum] Choosing random elements from a group References: Message-ID: I forgot to mention that my starting point is a subset triple (S=G,T=1,U=1) - where 1 is the trivial subgroup of G - which we know satisfies the algebraic condition - and then randomly subtract elements from G, add elements to T and to U such that the resulting product size satisfies the size conditions. Sincerely, Sandeep. Begin forwarded message: > From: Sandeep Murthy > Date: 19 May 2009 05:41:40 BST > To: GAP forum > Cc: Alexander Hulpke > Subject: Re: [GAP Forum] Choosing random elements from a group > > Thank you, > > I'm working on a random search algorithm for > basic finite non-Abelian groups initially of > order <= 10^12. > > At what point does the randomness of PseudoRandom() > degrade compared to Random() for this situation? > > Specifically, I need to find a triple of subsets > S,T,U of sizes say m, p, q resp. in a non-Abelian finite > group G of order say n such that the following > size conditions are satisfied: > > 1. n <= mpq < = floor(n^(1.5)) - the triple product of > the subset sizes is at least the group order and > less than 1.5 times the group order. > > 2. floor(n^(1.5)) - mpq is a minimum over all > subset triples satisfying a certain simple algebraic > condition. > > Sincerely, Sandeep. > > P. S. I note that the GAP manual describes a RandomList() > method that is said to be effective for dense lists up > 2^28 long. > > > > On 19 May 2009, at 05:14, Alexander Hulpke wrote: > >> Dear Forum, Dear Sandeep Murthy, >> >>> >>> I'd like to know the best way to choose random elements >>> of a group in GAP? >> >> That depends on your choice of group (Is it finite? Permutations? >> Presentation? Matrices?), your criteria for randomness, and >> (definition of ``best'') your preferences for memory use and runtime. >> >> Two default functions are >> Random >> which tries to create an equal distribution (subject to the >> randomness of the built-in random number generator, of course), but >> requires the ability to enumerate all elements of the group (I.e. >> it does not work for infinite groups and -- for example -- very >> badly for large matrix groups or finitely presented groups) and >> PseudoRandom >> which uses only generators and limited memory/run time, but does >> not guarantee true randomness. >> >> 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 >> >> > > Sandeep Murthy Ph. D. Student Computing & Mathematical Sciences Room C.202C School of Technology Oxford Brookes University Wheatley, Oxfordshire OX33 1HX United Kingdom Ph: (01865) 485605 From gabar at mai.liu.se Tue May 19 10:30:23 2009 From: gabar at mai.liu.se (Gabriel Bartolini) Date: Tue May 19 10:30:53 2009 Subject: [GAP Forum] Group automorphisms Message-ID: <4A127C2F.7000901@mai.liu.se> Dear forum, I'm not sure how to work with automorphisms in GAP. For example I would like to know if two vectors of elements in a group G, (a,b,c) and (g,h,i) are equivalent under actions of automorphisms. Regards, Gabriel From hulpke at math.colostate.edu Tue May 19 17:57:10 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue May 19 17:57:37 2009 Subject: [GAP Forum] Choosing random elements from a group In-Reply-To: References: <4CBAC918-B581-45E5-AB8B-535AF3A18C8E@brookes.ac.uk> <354DF44B-5B7A-4FC8-8FA5-1BB88BF90E80@me.com> Message-ID: On May 18, 2009, at 5/18/09 10:41, Sandeep Murthy wrote: > Thank you, > > I'm working on a random search algorithm for > basic finite non-Abelian groups initially of > order <= 10^12. > > At what point does the randomness of PseudoRandom() > degrade compared to Random() for this situation? As I wrote, this depends on how you represent the groups. Permutation groups and pc groups will work fine with `Random', matrix groups might not. My suggestion is to try out both `Random' and `PseudoRandom' on your groups (measure the first call separately, as it sets up data structures) and see which one performs better in time and memory. > > > P. S. I note that the GAP manual describes a RandomList() > method that is said to be effective for dense lists up > 2^28 long. Yes, but then you would need to have already a list of elements of your group. 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 dickinsm at gmail.com Fri May 22 09:33:48 2009 From: dickinsm at gmail.com (Mark Dickinson) Date: Fri May 22 09:34:27 2009 Subject: [GAP Forum] Bugs in QuotientMod? Message-ID: <5c6f2a5d0905220133l13971467r2084bc89abc829bd@mail.gmail.com> Dear all, I'm not sure whether this is the right place to send bug reports. Please accept my apologies if not. There appear to be a couple of problems with the QuotientMod function. Here's some output from a GAP session (GAP version 4.4.12, compiled from source on a 64-bit Linux machine). gap> x := Indeterminate(Rationals); x_1 gap> DefaultRing(One(x), Zero(x), x*x+1); Rationals[x_1] gap> QuotientMod(One(x), Zero(x), x*x+1); 0 This appears to be telling me that 1/0 is 0 in the ring Q[x]/(x^2+1) of Gaussian numbers. I was expecting the QuotientMod call to return the fail object here, since the documentation for QuotientMod states: "If the modular quotient does not exist, `fail' is returned." I also find the behaviour of QuotientMod for the ring of rational integers to be rather surprising: gap> QuotientMod(Integers, 4, 2, 6); 2 gap> QuotientMod(Integers, 4, 8, 6); ModRat: for / mod , /gcd(,) and must be coprime at return r / s mod m; called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace the integer via 'return ;' to continue brk> The first call succeeds in finding a solution to the associated congruence 2x = 4 (mod 6), but the second call fails on what's essentially exactly the same congruence: 8x = 4 (mod 6). This second oddity in QuotientMod leads to inconsistencies in division in ZmodnZObj. For example, let a and b be the residue classes of 2 and 4 (respectively) modulo 6. Then GAP allows division of b by a, but not division of a by b, even though both the relevant congruences (2x = 4 (mod 6) and 4x = 2 (mod 6)) have exactly two solutions modulo 6. gap> a := ZmodnZObj(2, 6); ZmodnZObj( 2, 6 ) gap> b := ZmodnZObj(4, 6); ZmodnZObj( 4, 6 ) gap> a/b; ModRat: for / mod , /gcd(,) and must be coprime at return r / s mod m; called from QuotientMod( Integers, x![1], y![1], DataType( TypeObj( x ) ) ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace the integer via 'return ;' to continue brk> quit; gap> b/a; ZmodnZObj( 2, 6 ) I'm not sure what the correct behaviour should be here, but presumably the results should be consistent: if a congruence has multiple solutions then either a solution should always be returned, or fail should always be returned. I'd guess that the latter behaviour is more useful and less likely to lead to hard-to-find bugs, and that divisions by zerodivisors in a ring should always fail. I've fixed these bugs in my local copy of GAP. Is there some place that I can post or email a patch to, or is that not useful? Mark From zhaxiaolei at gmail.com Tue May 26 02:50:02 2009 From: zhaxiaolei at gmail.com (xiaolei zhang) Date: Tue May 26 02:50:25 2009 Subject: [GAP Forum] representation of Finite Field's element Message-ID: <2ec148ef0905251850i191a1114vbf7f57507108475c@mail.gmail.com> hello. GAP us a primitive element to generate a finite field, this is good for computation. But I want to use gap in teaching, so I need some other representation of element. say, F2={0,1}? F2[x]/(x^2+x+1) ={0, 1, 1+x, x} In GAP, can I use the root of x^2+x+1 to represent the element of GF(4)? thanks From mckay at encs.concordia.ca Tue May 26 07:37:20 2009 From: mckay at encs.concordia.ca (MCKAY john) Date: Tue May 26 07:37:38 2009 Subject: [GAP Forum] representation of Finite Field's element In-Reply-To: <2ec148ef0905251850i191a1114vbf7f57507108475c@mail.gmail.com> References: <2ec148ef0905251850i191a1114vbf7f57507108475c@mail.gmail.com> Message-ID: I find the Zech logarithm best for compying in finite fields. Clement Lam & I have an algorithm in Collected Algorithms of ACM "Arithmetic over a Finite Field"=Algorithm 469 [1973].. Conway & Guy have a paper in a Blaricum conf proc about the i same date (1970's edited by Herz). For primitive a we have a^Z(k) = 1+a^k (k in {-inf,0,1,...q-2}). Whence easy multiplication and addition of powers of a. (a^r+a^s (r <=s) = a^r(1+a^(s-r)). On Tue, 26 May 2009, xiaolei zhang wrote: > hello. > > GAP us a primitive element to generate a finite field, this is good for > computation. But I want to use gap in teaching, so I need some other > representation of element. > > say, F2={0,1}?? F2[x]/(x^2+x+1) ={0, 1, 1+x, x} > > In GAP, can I use the root of x^2+x+1 to represent the element of GF(4)? > > thanks > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From b.hoefling at tu-bs.de Tue May 26 15:04:34 2009 From: b.hoefling at tu-bs.de (=?ISO-8859-1?Q?Burkhard_H=F6fling?=) Date: Tue May 26 15:05:03 2009 Subject: [GAP Forum] representation of Finite Field's element In-Reply-To: <2ec148ef0905251850i191a1114vbf7f57507108475c@mail.gmail.com> References: <2ec148ef0905251850i191a1114vbf7f57507108475c@mail.gmail.com> Message-ID: <4112F983-6F06-42A7-8CB1-F30335A9F9DC@tu-bs.de> On 26.05.2009, at 03:50, xiaolei zhang wrote: > hello. > > GAP us a primitive element to generate a finite field, this is good > for > computation. But I want to use gap in teaching, so I need some other > representation of element. > > say, F2={0,1}? F2[x]/(x^2+x+1) ={0, 1, 1+x, x} > > In GAP, can I use the root of x^2+x+1 to represent the element of GF > (4)? I guess that 'AlgebraicExtension' might do what you want. gap> x := X(GF(2), "x"); x gap> f := x^2 + x + 1; x^2+x+Z(2)^0 gap> F := AlgebraicExtension (GF(2), f); gap> Elements (F); [ !0*Z(2), a, !Z(2)^0, a+Z(2)^0 ] Note that !0*Z(2) is the zero element, and !Z(2)^0 is one. Cheers, Burkhard. From zhaxiaolei at gmail.com Tue May 26 15:50:58 2009 From: zhaxiaolei at gmail.com (xiaolei zhang) Date: Tue May 26 15:51:18 2009 Subject: [GAP Forum] representation of Finite Field's element In-Reply-To: <4112F983-6F06-42A7-8CB1-F30335A9F9DC@tu-bs.de> References: <2ec148ef0905251850i191a1114vbf7f57507108475c@mail.gmail.com> <4112F983-6F06-42A7-8CB1-F30335A9F9DC@tu-bs.de> Message-ID: <2ec148ef0905260750pc68347o6c5261089fd0fe98@mail.gmail.com> Thanks, this is just what I want. But Elements(F) doesn't work for me. gap> Elements(F); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `PrimitiveRoot' on 1 arguments called fr\ om PrimitiveRoot( F ) called from Basis( V ) called from AsSSortedList( coll ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue PrimitiveRoot don't work for F. My GAP version is: GAP4, Version: 4.4.10 of 02-Oct-2007, x86_64-pc-linux-gnu-x86_64-linux-gnu-gcc 2009/5/26 Burkhard H?fling > I guess that 'AlgebraicExtension' might do what you want. > > gap> x := X(GF(2), "x"); > x > gap> f := x^2 + x + 1; > x^2+x+Z(2)^0 > gap> F := AlgebraicExtension (GF(2), f); > > gap> Elements (F); > [ !0*Z(2), a, !Z(2)^0, a+Z(2)^0 ] > > Note that !0*Z(2) is the zero element, and !Z(2)^0 is one. > > Cheers, > > Burkhard. > > > > From hulpke at math.colostate.edu Tue May 26 16:50:31 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue May 26 16:51:17 2009 Subject: [GAP Forum] Group automorphisms In-Reply-To: <4A127C2F.7000901@mai.liu.se> References: <4A127C2F.7000901@mai.liu.se> Message-ID: Dear Forum, Dear Gabriel Bartolini, > > I'm not sure how to work with automorphisms in GAP. The AutomorphismGroup of a (finite) group G is a group of homomorphisms. > For example I would like to know if two vectors of elements in a > group G, (a,b,c) and (g,h,i) > are equivalent under actions of automorphisms. I suppose you consider your group as a direct product? In any case, you could compute the Orbit of an element under the automorphism group. For example, taking for G the symmetries of a square: gap> G:=Group((1,2,3,4),(1,3)); Group([ (1,2,3,4), (1,3) ]) gap> A:=AutomorphismGroup(G); gap> Orbit(A,(1,3)); [ (1,3), (2,4), (1,4)(2,3), (1,2)(3,4) ] this shows that (1,4)(2,3) and (1,3) are equivalent under the Automorphism group. If you do not want to search the whole orbit, you can also use gap> RepresentativeAction(A,(1,3),(1,4)(2,3)); # example of equivalent elements [ (1,4,3,2), (1,2)(3,4) ] -> [ (1,2,3,4), (2,4) ] gap> RepresentativeAction(A,(1,3),(1,5)); # example of inequivalent elements fail 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 thomas.breuer at math.rwth-aachen.de Wed May 27 13:42:51 2009 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed May 27 13:43:06 2009 Subject: [GAP Forum] Collections of Tuples In-Reply-To: <95162a110905082001u65ed8169kd1ae82e8cca69cc9@mail.gmail.com> References: <95162a110905082001u65ed8169kd1ae82e8cca69cc9@mail.gmail.com> Message-ID: <20090527124251.GA30829@gemma.math.rwth-aachen.de> Dear GAP Forum, Chris Beck wrote > Can somebody please explain to me why this returns false? > > gap> IsTuple(Tuples([1,2],2)[1]); > false > > Is this a glitch or something? It took me a really long time to figure > out that Tuples did not return a collection of tuples, and if there's > no good reason that it doesn't, it would save a lot of people some > headaches if the return type of this were changed. I agree that the names `IsTuple' and `Tuples' are not consistent. In order to avoid the confusion Chris mentioned, we will rename `IsTuple' to `IsDirectProductElement' (and the related undocumented function `Tuple' to `DirectProductElement'), following a proposal of Burkhard H"ofling. The names `IsTuple' and `Tuple' will still be available in the next few versions of GAP, but they will not be documented. Thanks for pointing out the inconsistency. All the best, Thomas Breuer P.S.: (For those who are interested in the details) The name `Tuples' expresses the ``mathematical'' viewpoint of ordered tuples over a given set, whereas `IsTuple' is used as a ``technical'' filter that describes GAP objects wrapping lists of other objects, such that sum and product are defined componentwise --of course this is effective only if the objects in the lists admit an addition or a multiplication. The only examples of objects in the GAP library for which `IsTuple' is set to `true' are - elements in ``inhomogeneous'' direct products of groups, such as the direct product of a permutation group and a matrix group or a pc group, and - elements in the underlying relations of general mappings (the underlying relation of a general mapping is a subset of the direct product of the mapping's source and range). Currently `Tuples' returns a list whose elements are plain lists. So the sum and the product of these elements are usually not defined pointwise. It is not desirable to change this behaviour. The new name, `IsDirectProductElement', fits to the intended meaning, in particular it fits to the abovementioned two kinds of GAP objects. From bsambale at gmx.de Wed May 27 17:49:48 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Wed May 27 17:50:11 2009 Subject: [GAP Forum] Bug in SemidirectProduct? Message-ID: <4A1D6F2C.1030004@gmx.de> Dear forum, take a look at the following GAP code: G:=AlternatingGroup(4); N:=Subgroup(G,[(1,2)(3,4),(1,3)(2,4)]); H:=DirectProduct(CyclicGroup(2),CyclicGroup(2)); A:=AutomorphismGroup(H); P:=SylowSubgroup(A,3); epi:=NaturalHomomorphismByNormalSubgroup(G,N); iso:=IsomorphismGroups(FactorGroup(G,N),P); f:=CompositionMapping(IsomorphismGroups(FactorGroup(G,N),P),epi); SemidirectProduct(G,f,H); After the command "SemidirectProduct(G,f,H);" GAP returns: "Error, not ready yet, only finite polycyclic groups are allowed" But every group in my example is finite polycyclic, even the semidirect product would be. I can't imagine, what should be the problem in constructing semidirect products. Thanks for any help, Benjamin From ahulpke at gmail.com Wed May 27 22:25:49 2009 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed May 27 22:26:19 2009 Subject: [GAP Forum] Bug in SemidirectProduct? In-Reply-To: <4A1D6F2C.1030004@gmx.de> References: <4A1D6F2C.1030004@gmx.de> Message-ID: <37224291-22D8-42E4-B8B9-10B839978BBC@gmail.com> Dear Forum, Dear Benjamin Sambale, > > G:=AlternatingGroup(4); > N:=Subgroup(G,[(1,2)(3,4),(1,3)(2,4)]); > H:=DirectProduct(CyclicGroup(2),CyclicGroup(2)); > A:=AutomorphismGroup(H); > P:=SylowSubgroup(A,3); > epi:=NaturalHomomorphismByNormalSubgroup(G,N); > iso:=IsomorphismGroups(FactorGroup(G,N),P); > f:=CompositionMapping(IsomorphismGroups(FactorGroup(G,N),P),epi); > SemidirectProduct(G,f,H); > > After the command "SemidirectProduct(G,f,H);" GAP returns: > > "Error, not ready yet, only finite polycyclic groups are allowed" > > But every group in my example is finite polycyclic, even the > semidirect product would be. I can't imagine, what should be the > problem in constructing semidirect products. The problem is that G is not a PC group and the method for PC groups claims to apply (because G is solvable), but the presentation GAP finds for G (likely looked up, as the group is alternating) is not a pc presentation. This will be fixed in the next bugfix (the method should not apply, there is a fallback method that does conversion of the representation), in the meantime a workaround would be to convert both groups (G and H) into permutation groups (or -- if solvable -- pc groups). 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 imranmaths at yahoo.com Fri May 29 12:14:45 2009 From: imranmaths at yahoo.com (Imran) Date: Fri May 29 12:15:04 2009 Subject: [GAP Forum] Trace Form on Lie Algebras Message-ID: <572550.61144.qm@web56004.mail.re3.yahoo.com> Dear All In the GAP reference manual it is given that we can work out the Killing form on adjoint representation of Lie algebra G. I was wondering whether it will be possible to work out the this form (generally called trace form) on any representation corresponding to some highest weight or not? Regards Imran From degraaf at science.unitn.it Wed Jun 3 08:00:30 2009 From: degraaf at science.unitn.it (degraaf@science.unitn.it) Date: Wed Jun 3 08:00:57 2009 Subject: [GAP Forum] Re: Trace Form on Lie Algebras Message-ID: <20090603090030.gtiexej09s0sksw4@www.unitn.it> Dear Imran, You asked about the trace form on representations of semisimple Lie algebras. The following example computes the matrix of this form for an irreducible representation of the Lie algebra of type G2. I hope this helps you. gap> L:= SimpleLieAlgebra("G",2,Rationals);; gap> V:= HighestWeightModule( L, [0,2] ); <77-dimensional left-module over > gap> m:= List( Basis(L), x -> MatrixOfAction( Basis(V), x ) );; gap> tracemat:= List( m, x -> List( m, y -> TraceMat(x*y) ) ); [ [ 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 110, 0, 0 ], [ 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 110, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 660, -330 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -330, 220 ] ] Best wishes, Willem de Graaf From sjhu at mail.tku.edu.tw Wed Jun 3 14:31:39 2009 From: sjhu at mail.tku.edu.tw (Shou-Jen Hu) Date: Wed Jun 3 14:32:10 2009 Subject: [GAP Forum] Finite irreducible subgfroups of SL_4(C) Message-ID: <4A267B3B.8010008@mail.tku.edu.tw> Dear All: Is it possible to find all finite irreducible subgroups of SL_4(C) in GAP? Regards, S. J. Hu From nagyg at math.u-szeged.hu Wed Jun 3 17:27:20 2009 From: nagyg at math.u-szeged.hu (=?ISO-8859-1?Q?Nagy_G=E1bor?=) Date: Wed Jun 3 17:28:20 2009 Subject: [GAP Forum] List of transitive finite linear groups Message-ID: <4A26A468.8020607@math.u-szeged.hu> Dear Forum, It is well known that the Classification implies the list of finite transitive linear groups. The result is due to Huppert and Hering. Many books and papers contain a list, but concerning the sporadic cases, many of them is incomplete. For a paper, I need the complete list. I did my best to collect these groups and present them in a form which is accessible in GAP. All I found so far is now on the Wikipedia page: http://en.wikipedia.org/wiki/List_of_transitive_finite_linear_groups My questions are: 1) Did anybody worked with this class of groups in GAP before? 2) Did I missed any group from my list? 3) Any comments or remarks to the Wikipedia page? Thanks in advence, Gabor From burkhard at hoefling.name Mon Jun 8 11:17:39 2009 From: burkhard at hoefling.name (=?ISO-8859-1?Q?Burkhard_H=F6fling?=) Date: Mon Jun 8 11:18:17 2009 Subject: [GAP Forum] Finite irreducible subgfroups of SL_4(C) In-Reply-To: <4A267B3B.8010008@mail.tku.edu.tw> References: <4A267B3B.8010008@mail.tku.edu.tw> Message-ID: <09942F9C-6C12-447D-A573-A5719712BCE5@hoefling.name> On 03.06.2009, at 15:31, Shou-Jen Hu wrote: > Dear All: > > Is it possible to find all finite irreducible subgroups of SL_4(C) > in GAP? Dear Shou-Jen Hu, I suppose you mean the speclial linear group over the complex numbers. Then the answer is no - if only for the reason that there are infinitely many (imprimitive) ones, up to conjugacy in GL (or SL). There is a (hand) classification of the finite imprimitive irreducible subgroups of GL_4(C) by Dane Flannery and me (J. Algebra 218 (1999), 436?469 and J. Algebra 236, 419?470 (2001)), but unfortunately the data is not available in GAP. However, you could probably work out the subgroups of SL_4(C) from these lists together with the (classical) results on primitive subgroups of SL_4(C). Regards, Burkhard H?fling. From Mathieu.Dutour at ens.fr Thu Jun 11 15:25:35 2009 From: Mathieu.Dutour at ens.fr (Mathieu Dutour) Date: Thu Jun 11 15:25:57 2009 Subject: [GAP Forum] Table inconsistency Message-ID: <20090611142535.GA4149@orge.ens.fr> I think there is a problem in the tables of the irreducible finite groups of GLn(Z) in GAP. If you do gap> DisplayImfInvariants(23,3,0); #I Z-class 23.3.1: Size = 2^19*3^6*5^3*7*11*23 #I isomorphism type = C2 x Co2 #I elementary divisors = 1^23 #I orbit size = 4600, minimal norm = 3 #I Z-class 23.3.2: Size = 2^19*3^6*5^3*7*11*23 #I isomorphism type = C2 x Co2 #I elementary divisors = 1^22*4 #I orbit size = 93150, minimal norm = 4 #I Z-class 23.3.3: Size = 2^19*3^6*5^3*7*11*23 #I isomorphism type = C2 x Co2 #I elementary divisors = 1*4^22 #I orbit size = 4600, minimal norm = 12 then the representations of C2 x Co2 up to Z-equivalence correspond to the lattices O23, Lambda_{23} and Lamnda_{23}^* respectively, which is all ok. But if one does the same operation DisplayImfInvariants(22,x); with x varying between 1 and 12, then one gets only one Z-class for all of them! This is highly unlikely since some of the lattices are not self-dual. For example, I can produce at least 3 inequivalent representations of the group given by DisplayImfInvariants(22,7) when only one is listed. Mathieu From dinesh_um at yahoo.com Tue Jun 16 07:06:29 2009 From: dinesh_um at yahoo.com (Dinesh Krithivasan) Date: Tue Jun 16 07:06:47 2009 Subject: [GAP Forum] listing all semidirect products Message-ID: <821698.86054.qm@web53010.mail.re2.yahoo.com> Hi all, ? I am trying to use GAP for the following: List all semidirect products of S_3 by S_3 (the symmetric group on 3 elements). This boils down to the choice of the homomorphism from S_3 to Aut(S_3) = S_3. While I could find some code that works for specific choices of this homomorphism, I am unclear as to how to obtain the entire list (I worked out that there are 10 homomorphisms from S_3 to Aut(S_3). Is this right? It would mean that there are 10 semidirect products some of which might be isomorphic to one another.). Further, since we know the result is a group of size 36 and there are only 14 groups of that order, could we get GAP to identify exactly which of these 14 groups the semidirect products are isomorphic to? Thanks a lot in advance for any help/suggestions. Regards, Dinesh. From bsambale at gmx.de Tue Jun 16 08:14:40 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Tue Jun 16 08:14:59 2009 Subject: [GAP Forum] listing all semidirect products In-Reply-To: <821698.86054.qm@web53010.mail.re2.yahoo.com> References: <821698.86054.qm@web53010.mail.re2.yahoo.com> Message-ID: <4A374660.8080609@gmx.de> There is only one semidirect product of S_3 with S_3 (up to isomorphism) namely S_3\times S_3. This can easily be shown, since Out(S_3)=Z(S_3)=1 (where Out is the outer automorphism group and Z is the center). And there are indeed 10 homomorphisms from S_3 to S_3. This can be shown with the following GAP code (or by hand): LoadPackage("sonata"); Size(Homomorphisms(SymmetricGroup(3),SymmetricGroup(3))); But all these homomorphisms lead to the same semidirect product (up to isomorphism). Dinesh Krithivasan schrieb: > Hi all, > I am trying to use GAP for the following: List all semidirect products of S_3 by S_3 (the symmetric group on 3 elements). This boils down to the choice of the homomorphism from S_3 to Aut(S_3) = S_3. While I could find some code that works for specific choices of this homomorphism, I am unclear as to how to obtain the entire list (I worked out that there are 10 homomorphisms from S_3 to Aut(S_3). Is this right? It would mean that there are 10 semidirect products some of which might be isomorphic to one another.). Further, since we know the result is a group of size 36 and there are only 14 groups of that order, could we get GAP to identify exactly which of these 14 groups the semidirect products are isomorphic to? Thanks a lot in advance for any help/suggestions. > > Regards, > Dinesh. > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From dinesh_um at yahoo.com Wed Jun 17 08:03:02 2009 From: dinesh_um at yahoo.com (Dinesh Krithivasan) Date: Wed Jun 17 08:03:23 2009 Subject: [GAP Forum] listing all semidirect products contd. Message-ID: <887766.47781.qm@web53004.mail.re2.yahoo.com> Hi all, ? This is a follow up to my earlier question regarding listing all semidirect products of two groups. Thanks a lot for your response Benjamin. I apologize to all for the triviality of the question. My background is not group theory and I am trying to play with GAP to better understand some of the concepts. What I am really looking for is a way to find all possible semidirect products of G with H for some arbitrary (but specified) groups G and H? For illustrative purposes, I had chosen G and H to be S_3 in my previous mail which turned out to be trivial. Thanks for the help and apologies for the multiple mails. Regards, Dinesh. From jack at ms.uky.edu Wed Jun 17 14:01:18 2009 From: jack at ms.uky.edu (Jack Schmidt) Date: Wed Jun 17 14:01:40 2009 Subject: [GAP Forum] listing all semidirect products contd. In-Reply-To: <887766.47781.qm@web53004.mail.re2.yahoo.com> References: <887766.47781.qm@web53004.mail.re2.yahoo.com> Message-ID: <09164027-2C75-4584-825B-AC345FD26E86@ms.uky.edu> Using G=H=S3 as an example, here is the GAP code to do what you asked: gap> LoadPackage("sonata");; gap> g:=SymmetricGroup(3);; h:=SymmetricGroup(3);; gap> ghs := List( Homomorphisms( g, AutomorphismGroup(h) ), f -> SemidirectProduct( g, f, h ) ); [ Group([ (7,8,9), (7,8), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (7,8,9), (3,6)(4,5)(7,8), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (7,8,9), (2,6)(4,5)(7,8), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (7,8,9), (2,3)(4,5)(7,8), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (2,3,6), (3,6)(4,5), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (2,6,3), (3,6)(4,5), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (2,6,3), (2,3)(4,5), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (2,3,6), (2,3)(4,5), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (2,3,6), (2,6)(4,5), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), Group([ (2,6,3), (2,6)(4,5), (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]) ] gap> List( ghs, IdGroup ); [ [ 36, 10 ], [ 36, 10 ], [ 36, 10 ], [ 36, 10 ], [ 36, 10 ], [ 36, 10 ], [ 36, 10 ], [ 36, 10 ], [ 36, 10 ], [ 36, 10 ] ] The main functions used are SymmetricGroup, Homomorphisms, AutomorphismGroup, SemidirectProduct, IdGroup, and List. You can read the documentation for each within GAP using "?SymmetricGroup" etc. but most of them do just what you would guess. IdGroup(a_group) returns [ size, serial_number ] where size is the order of the group and serial_number is a fixed (for all time) but (mostly) arbitrary number identifying the isomorphism type. List( a_list, a_function ) returns the list you get by applying a_function to each element of a_list. I use this to get a list of all the semidirect products from a list of all homomorphisms form G to Aut(H), and then again to get a list of the small group isomorphism type identification numbers. On 2009-06-17, at 03:03, Dinesh Krithivasan wrote: > Hi all, > This is a follow up to my earlier question regarding listing all > semidirect products of two groups. Thanks a lot for your response > Benjamin. I apologize to all for the triviality of the question. My > background is not group theory and I am trying to play with GAP to > better understand some of the concepts. What I am really looking for > is a way to find all possible semidirect products of G with H for > some arbitrary (but specified) groups G and H? For illustrative > purposes, I had chosen G and H to be S_3 in my previous mail which > turned out to be trivial. Thanks for the help and apologies for the > multiple mails. > > Regards, > Dinesh. > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From neha.gupta2008 at googlemail.com Wed Jun 24 12:42:42 2009 From: neha.gupta2008 at googlemail.com (Neha Gupta) Date: Wed Jun 24 12:43:18 2009 Subject: [GAP Forum] n-cochains in GAP/HAP Message-ID: <2cd1e86c0906240442ybf507ccm225a654292c54ce8@mail.gmail.com> I have to calculate some condition for all the groups using normalized 3-cocycle( \sigma) and normalized 2-cochains( \theta ) where the cocycle is the boundary of the cochain. (-i.e. d(\theta) = \sigma ) I can use GAP/HAP to calculate cocycles for various groups but I have no clue how to obtain a 2 cochain using GAP/HAP From neha.gupta2008 at googlemail.com Wed Jul 1 12:25:26 2009 From: neha.gupta2008 at googlemail.com (Neha Gupta) Date: Wed Jul 1 12:25:53 2009 Subject: [GAP Forum] Lists in GAP Message-ID: <2cd1e86c0907010425j206c7f5bx504ae8e47ef2c608@mail.gmail.com> Dear Forum Member, I want to use arrays in GAP. But Im not able to find a way of declaring/defining one. The following is what I intend to do... I have defined elems1 as a List with 36 members. A tyical element of elems1 looks like this : Tuple([ C2[1],Random(M)]) Now I wish to define another List elems2 also with 36 members using elems1 : b:=Random([1..16]);; x:=elems1[b][2];; pik:=Random(M);; for j in [1..36] do if (j<> b) then elems2[j]:=elems1[j];; else elems2[j]:=Tuple([elems1[j][1],pik]);; fi; od; I get the following error : " Error, The list you are trying to assign to is immutable called from j <> b called from ( ) called from read-eval-loop " Please help me defining a List/Array. Neha From bsambale at gmx.de Wed Jul 1 12:59:54 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Wed Jul 1 13:00:17 2009 Subject: [GAP Forum] Lists in GAP In-Reply-To: <2cd1e86c0907010425j206c7f5bx504ae8e47ef2c608@mail.gmail.com> References: <2cd1e86c0907010425j206c7f5bx504ae8e47ef2c608@mail.gmail.com> Message-ID: <4A4B4FBA.6080400@gmx.de> Dear Neha, maybe you have to initialize your list first. Just put a elems2:=[]; in front of the loop and try. Best wishes, Benjamin Neha Gupta schrieb: > Dear Forum Member, > > I want to use arrays in GAP. But Im not able to find a way of > declaring/defining one. The following is what I intend to do... > > I have defined elems1 as a List with 36 members. A tyical element of elems1 > looks like this : > Tuple([ C2[1],Random(M)]) > > Now I wish to define another List elems2 also with 36 members using elems1 : > > b:=Random([1..16]);; > x:=elems1[b][2];; > pik:=Random(M);; > > for j in [1..36] do > if (j<> b) then > elems2[j]:=elems1[j];; > else > elems2[j]:=Tuple([elems1[j][1],pik]);; > fi; > od; > > I get the following error : > > " Error, The list you are trying to assign to is immutable called from > j <> b called from > ( ) called from read-eval-loop " > > Please help me defining a List/Array. > > Neha > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From neha.gupta2008 at googlemail.com Thu Jul 2 16:54:51 2009 From: neha.gupta2008 at googlemail.com (Neha Gupta) Date: Thu Jul 2 16:55:10 2009 Subject: [GAP Forum] if statement Message-ID: <2cd1e86c0907020854m7df583d7n197de6e592a48ab1@mail.gmail.com> Dear GAP Member, I have written the following code but there is some run time error. The code is as follows : if i1=1 then x:=count[1];; else y:=count[i1];; fi; if (i1>1) then if (y< x) then Print("\n",count[i1],"<",count[1],"\n"); return elems[i1]; fi; fi; if (ctr = 1) then Print ("\n We are done....\n\n\n"); return elems[i1]; fi; And the error it gives is as follows : Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `LT' on 2 arguments called from y < x called from ( ) called from read-eval-loop Please help. Best, Neha From jbohanon2 at gmail.com Thu Jul 2 17:31:17 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Jul 2 17:31:41 2009 Subject: [GAP Forum] if statement In-Reply-To: <2cd1e86c0907020854m7df583d7n197de6e592a48ab1@mail.gmail.com> References: <2cd1e86c0907020854m7df583d7n197de6e592a48ab1@mail.gmail.com> Message-ID: <90C32899-020D-4530-BA71-9C33D44B9F2B@gmail.com> What are x and y here? The first if statement only defines one of them so you might not have two comparable items stored. To see what GAP is using for x and y, remember that you can still run commands in a break loop so type x; or y; in there. As an aside, this is also a useful way to figure out what local variables are set to if you are running a native GAP function. This would be useful, for instance, if you have a computation running for a very long time and there is some kind of counter in the source code for the function. Joe On Jul 2, 2009, at 10:54 AM, Neha Gupta wrote: > Dear GAP Member, > > I have written the following code but there is some run time error. > The code is as follows : > > if i1=1 then x:=count[1];; else y:=count[i1];; fi; > > if (i1>1) then > if (y< x) then > Print("\n",count[i1],"<",count[1],"\n"); > return elems[i1]; fi; > fi; > > if (ctr = 1) then > Print ("\n We are done....\n\n\n"); > return elems[i1]; > fi; > > And the error it gives is as follows : > > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 1st choice method found for `LT' on 2 arguments called from > y < x called from > ( ) called from read-eval-loop > > Please help. > > Best, > Neha > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From w_becker at hotmail.com Sat Jul 4 16:10:17 2009 From: w_becker at hotmail.com (Walter Becker) Date: Sat Jul 4 16:10:37 2009 Subject: [GAP Forum] use of GrpConst package Message-ID: Dear forum readers: I am trying to get the Group Constructions package of Besche and Eick to determine the number of groups of certain orders, namely 8*17^3, and groups in the sequences p^4*q with the p-group the normal subgroup with p=1 mod(q) and q = plus or minus one mod(3). One gets results for cases with q=-1 mod(3) for 5, but for the cases with q=1 mod(3), e.g., q=7 and p=29 (the lowest order case) GrpConst seems to fail. Is this a result of a GAP error noted sometime ago or an inherent limitation of the GrpConst package itself? In the case of the groups of order 8*17^3: I ran the cases for the orders 8p^3 for p=3,5,7,11 and the time it took GrpConst get these groups was: 8969, 20203,21297, and 52688 (milliseconds ?) . The cases for 13 and 17 did not complete ---the number of groups in these cases is not much greater that in the ones already done----any idea what the problem is here. Comments Walter Becker _________________________________________________________________ Windows Live? SkyDrive?: Get 25 GB of free online storage. http://windowslive.com/online/skydrive?ocid=TXT_TAGLM_WL_SD_25GB_062009 From azhvan at hotmail.com Sat Jul 4 19:45:17 2009 From: azhvan at hotmail.com (azhvan sanna) Date: Sat Jul 4 19:45:33 2009 Subject: [GAP Forum] How to find the value of character over generators Message-ID: Dear friends, I have to use the character table of sporadic simple groups, and evaluate the value of characters on some specific generators, I appreciate if somebody tell me; is this possible? I have got the idea that as we do not know about the Conjugacy classes ordering and the nature of them used for making characters table, so characters table can be used when we do some calculation regardless of element involve in evaluating, so computing for example the value of one character in some element seems not possible. thanks Azhvan _________________________________________________________________ Attention all humans. We are your photos. Free us. http://go.microsoft.com/?linkid=9666046 From neha.gupta2008 at googlemail.com Tue Jul 7 13:28:18 2009 From: neha.gupta2008 at googlemail.com (Neha Gupta) Date: Tue Jul 7 13:28:35 2009 Subject: [GAP Forum] Lists in GAP Message-ID: <2cd1e86c0907070528p3d691c6oeac3817d6b3e6f47@mail.gmail.com> Dear GAP Members, I have written the following code using while loop : while loop_value[i]<>loop_value[i-1] do loop_elems:=optimal(181);; loop_value[i]:=value;; First_elems:=loop_elems;; First_value:=loop_value[i];; i:=i+1;; od; Here, 'loop_value' and 'loop_elems' are a list. The while loop is supposed to run until any two consecutive places in list have the same value. The function 'optimal' returns a list. We assign this list to the list 'loop_elems'. There is also a global variable 'value' which is used in the the function 'optimal'. We assign this variable to 'loop_value[i]'. But the program generates the following error at the run time : *List Element: [37] must have an assigned value at while loop_value[i] <> loop_value[i - 1] do loop_elems := optimal( 181 ); ; loop_value[i] := value; ; First_elems := loop_elems; ; First_value := loop_value[i]; ; i := i + 1; ; od; called from ( ) called from read-eval-loop *Does the error mean that the list 'loop_value[]' can not have more than 36 places as a list ??? Please help as I do not understand this run time error. Thanks Best Neha Gupta From jbohanon2 at gmail.com Tue Jul 7 15:22:08 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue Jul 7 15:22:40 2009 Subject: [GAP Forum] Lists in GAP In-Reply-To: <2cd1e86c0907070528p3d691c6oeac3817d6b3e6f47@mail.gmail.com> References: <2cd1e86c0907070528p3d691c6oeac3817d6b3e6f47@mail.gmail.com> Message-ID: <4A535A10.5000003@gmail.com> It means that there is nothing stored in loop_value[37], that's all. Test this out on your list by calling IsBound(loop_value[37]). If you want to see what is happening just before you get the error, just after the "while" add "i<>37 or" It should stop there and you can see what GAP is using for loop_value. Joe Neha Gupta wrote: > Dear GAP Members, > > I have written the following code using while loop : > > while loop_value[i]<>loop_value[i-1] do > loop_elems:=optimal(181);; > loop_value[i]:=value;; > First_elems:=loop_elems;; > First_value:=loop_value[i];; > i:=i+1;; > od; > > > Here, 'loop_value' and 'loop_elems' are a list. The while loop is supposed > to run until any two consecutive places in list have the same value. The > function 'optimal' returns a list. We assign this list to the list > 'loop_elems'. There is also a global variable 'value' which is used in the > the function 'optimal'. We assign this variable to 'loop_value[i]'. > > But the program generates the following error at the run time : > > *List Element: [37] must have an assigned value at > while loop_value[i] <> loop_value[i - 1] do > loop_elems := optimal( 181 ); > ; > loop_value[i] := value; > ; > First_elems := loop_elems; > ; > First_value := loop_value[i]; > ; > i := i + 1; > ; > od; > called from > ( ) called from read-eval-loop > > *Does the error mean that the list 'loop_value[]' can not have more than 36 > places as a list ??? > Please help as I do not understand this run time error. > > > Thanks > > Best > Neha Gupta > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From max at quendi.de Tue Jul 7 21:55:49 2009 From: max at quendi.de (Max Horn) Date: Tue Jul 7 21:56:09 2009 Subject: [GAP Forum] Generators of the additive group of a finite field Message-ID: Dear forum readers, today I wanted to naively obtain a list of generators for the additive group of a finite field. To may surprise, I got an error: gap> IsGroup(GF(9)); false gap> IsAdditiveGroup(GF(9)); true gap> GeneratorsOfAdditiveGroup(GF(9)); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `GeneratorsOfNearAdditiveGroup' on 1 arguments called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue So, GAP says GF(9) is an additive group, but refuses to give me a list of generators -- confusing to me :). Is there some other way to obtain a (ideally minimal) generating set ? Cheers, Max From siddhartha18 at gmail.com Wed Jul 8 00:03:14 2009 From: siddhartha18 at gmail.com (Siddhartha Sarkar) Date: Wed Jul 8 00:03:33 2009 Subject: [GAP Forum] Re: Forum Digest, Vol 68, Issue 1 In-Reply-To: <200907072120.n67LKKGd004666@gap-system.org> References: <200907072120.n67LKKGd004666@gap-system.org> Message-ID: Dear Azhvan, In principle this must be easy if you have enough information about which kind of generators and characters involved. The following calls give you the ordered table for PSL(2,7) say : gap>c:= CharacterTable("L2(7)"); gap>Display(c); These tables are already made and stored in gap for all the sporadic groups (even for the monster!!) The order of conjugacy classes are made of first according to the order and when orders are the same, then according to the cycle types of the elements (w.r.t. the permutation representation). Characters are easily understood since the first column give their degrees. Hope this helps, Siddhartha > > Message: 7 > Date: Sat, 4 Jul 2009 12:45:17 -0600 > From: azhvan sanna > Subject: [GAP Forum] How to find the value of character over > generators > To: > Message-ID: > Content-Type: text/plain; charset="iso-8859-1" > > > Dear friends, > > I have to use the character table of sporadic simple groups, and evaluate > the value of characters on some specific generators, I appreciate if > somebody tell me; is this possible? I have got the idea that as we do not > know about the Conjugacy classes ordering and the nature of them used for > making characters table, so characters table can be used when we do some > calculation regardless of element involve in evaluating, so computing for > example the value of one character in some element seems not possible. > thanks > > Azhvan > > From neha.gupta2008 at googlemail.com Wed Jul 8 01:35:20 2009 From: neha.gupta2008 at googlemail.com (Neha Gupta) Date: Wed Jul 8 01:36:43 2009 Subject: [GAP Forum] running a file on GAP Terminal Message-ID: <2cd1e86c0907071735u12843895r28cd84d64553a9ca@mail.gmail.com> Dear GAP FORUM Members, I have written a simple GAP file saved as saved at "Users/neha/Documents/gap4r4/bin/test1.g " as follows: local a; a:=1;; a:=a*10; return a*a-8; The GAP package precisely is saved at the same location. At the GAP terminal when I type the following command : gap>Read("./test1.g")(); OR gap> Read("/test1.g")(); OR gap> Read("test1.g")(); OR gap> ReadAsFunction("./test1.g")() ; the following error is produced for the first three commands : *Error, file "./test1.g" must exist and be readable called from ( ) called from read-eval-loop*. and the following error is produced for the last command : * must be a function (not a boolean)* Please suggest what is the appropriate command for running a file on GAP Terminal. Or is it that I am using the wrong extension of the file ? Please help. Thanks, Best Neha From justin at mac.com Wed Jul 8 02:14:12 2009 From: justin at mac.com (Justin C. Walker) Date: Wed Jul 8 02:14:31 2009 Subject: [GAP Forum] running a file on GAP Terminal In-Reply-To: <2cd1e86c0907071735u12843895r28cd84d64553a9ca@mail.gmail.com> References: <2cd1e86c0907071735u12843895r28cd84d64553a9ca@mail.gmail.com> Message-ID: <08BE0A5A-C9A7-45DA-BFE1-2A6B3786633A@mac.com> Dear Neha and Forum: First, it helps to know the following things: - what version of GAP you are using - what system you are using to run GAP - what version of that system are you using On Jul 7, 2009, at 17:35 , Neha Gupta wrote: > I have written a simple GAP file saved as saved at > "Users/neha/Documents/gap4r4/bin/test1.g " as follows: > > local a; > a:=1;; > a:=a*10; > return a*a-8; > > The GAP package precisely is saved at the same location. At the GAP > terminal > when I type the following command : > > gap>Read("./test1.g")(); OR > > gap> Read("/test1.g")(); OR > > gap> Read("test1.g")(); OR > > gap> ReadAsFunction("./test1.g")() ; > > the following error is produced for the first three commands : > > *Error, file "./test1.g" must exist and be readable called from > ( ) called from read-eval-loop*. I would guess from this error message that the file does not exist where you think it does. Each process (like the GAP program) has associated with it a directory, which is used when you give a name like "./foo" or "foo", to locate the file (i.e., GAP assumes that these file names reside in that associated directory). First, try using the full file name. > and the following error is produced for the last command : > > * must be a function (not a boolean)* I can't explain this one, but perhaps it is a quirk of the implementation, dealing with a non-existent file in an odd way (I can't duplicate this exact behavior on my system [GAP 4.4.12]) However, at least in the version of GAP I am using, ReadAsFunction() is a function, returning as its value a handle on the function created by executing the above. On my system, I get this: gap> a := 1; 1 gap> g:=ReadAsFunction("/tmp/x.g"); function( ) ... end gap> g(); 92 gap> a; 1 I hope this provides some help. Regards, Justin -- Justin C. Walker Curmudgeon-at-large Director Institute for the Absorption of Federal Funds ---- 186,000 Miles per Second Not just a good idea: it's the law! ---- From hulpke at me.com Wed Jul 8 03:49:17 2009 From: hulpke at me.com (Alexander Hulpke) Date: Wed Jul 8 03:49:51 2009 Subject: [GAP Forum] Generators of the additive group of a finite field In-Reply-To: References: Message-ID: Dear Max Horn, Tere is very little functionality for additive groups, you probably will be much happier to treat them as vector space, if possible. In this example e.g. BasisVectors(Basis(GF(9))) returns additive group generators. 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 siddhartha18 at gmail.com Wed Jul 8 04:44:59 2009 From: siddhartha18 at gmail.com (Siddhartha Sarkar) Date: Wed Jul 8 04:45:22 2009 Subject: [GAP Forum] Re : How to find the value of character over generators Message-ID: Dear John, Accessing rows (which evaluates the character values) is just by calling : gap> c := CharacterTable("L2(7)"); gap> Irr(c); I am not sure how to access columns. You can check what are the available options for the stored data "c" (= the character table) by calling gap> KnownAttributesOfObject(c); [ "Size", "NrConjugacyClasses", "Irr", "OrdersClassRepresentatives", "SizesCentralizers", "AutomorphismsOfTable", "UnderlyingCharacteristic", "ClassNames", "Identifier", "InfoText", "ComputedPowerMaps", "ComputedClassFusions", "NamesOfFusionSources", "CASInfo", "FusionToTom", "ProjectivesInfo", "ExtensionInfoCharacterTable" ] best, Siddhartha On Wed, Jul 8, 2009 at 5:53 AM, MCKAY john wrote: > > > > How to access a single row or column or entry of a character table > in GAP? There seems some anomalous behavior such that classes and > irreducible representations are not treated similarly. > Thanks, > Jm > > From thomas.breuer at math.rwth-aachen.de Wed Jul 8 09:20:02 2009 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed Jul 8 09:20:27 2009 Subject: [GAP Forum] How to find the value of character over generators In-Reply-To: References: Message-ID: <20090708082002.GA3439@gemma.math.rwth-aachen.de> Dear GAP Forum, azhvan sanna wrote > I have to use the character table of sporadic simple groups, and evaluate the > value of characters on some specific generators, I appreciate if somebody tell > me; is this possible? I have got the idea that as we do not know about the > Conjugacy classes ordering and the nature of them used for making characters > table, so characters table can be used when we do some calculation regardless > of element involve in evaluating, so computing for example the value of one > character in some element seems not possible. 1. If one has computed a character table from a group in GAP then the bijection between the columns of the table and the conjugacy classes of this group is explicitly stored. In this situation, a given character can be evaluated at a group element using ^, as in the following example. gap> G:= AlternatingGroup( 5 );; gap> g:= (1,2,3,4,5);; gap> tbl:= CharacterTable( G );; gap> Display( tbl ); CT1 2 2 2 . . . 3 1 . 1 . . 5 1 . . 1 1 1a 2a 3a 5a 5b 2P 1a 1a 3a 5b 5a 3P 1a 2a 1a 5b 5a 5P 1a 2a 3a 1a 1a X.1 1 1 1 1 1 X.2 3 -1 . A *A X.3 3 -1 . *A A X.4 4 . 1 -1 -1 X.5 5 1 -1 . . A = -E(5)-E(5)^4 = (1-ER(5))/2 = -b5 gap> chi:= Irr( tbl )[2]; Character( CharacterTable( Alt( [ 1 .. 5 ] ) ), [ 3, -1, 0, -E(5)-E(5)^4, -E(5)^2-E(5)^3 ] ) gap> g^chi; -E(5)-E(5)^4 Note that in this situation GAP has to find out in which conjugacy class of the group the given element lies. So if one wants to evaluate several characters of a given character table at the same group element, it is more efficient to compute once in which conjugacy class this element lies, and then to fetch the character value at the position of this class. gap> pos:= PositionProperty( ConjugacyClasses( tbl ), C -> g in C ); 4 gap> chi[ pos ]; -E(5)-E(5)^4 2. The situation is different if the bijection of table columns and conjugacy classes is not explicitly known. The question was about sporadic simple groups, the character tables of these groups are printed in the famous Atlas of Finite Groups, and these Atlas tables are available in GAP's Library of Character Tables. Let us assume we are interested in the Mathieu group M_{11}. Its Atlas character table can be fetched as follows. gap> tbl:= CharacterTable( "M11" ); CharacterTable( "M11" ) gap> Display( tbl ); M11 2 4 4 1 3 . 1 3 3 . . 3 2 1 2 . . 1 . . . . 5 1 . . . 1 . . . . . 11 1 . . . . . . . 1 1 1a 2a 3a 4a 5a 6a 8a 8b 11a 11b 2P 1a 1a 3a 2a 5a 3a 4a 4a 11b 11a 3P 1a 2a 1a 4a 5a 2a 8a 8b 11a 11b 5P 1a 2a 3a 4a 1a 6a 8b 8a 11a 11b 11P 1a 2a 3a 4a 5a 6a 8a 8b 1a 1a X.1 1 1 1 1 1 1 1 1 1 1 X.2 10 2 1 2 . -1 . . -1 -1 X.3 10 -2 1 . . 1 A -A -1 -1 X.4 10 -2 1 . . 1 -A A -1 -1 X.5 11 3 2 -1 1 . -1 -1 . . X.6 16 . -2 . 1 . . . B /B X.7 16 . -2 . 1 . . . /B B X.8 44 4 -1 . -1 1 . . . . X.9 45 -3 . 1 . . -1 -1 1 1 X.10 55 -1 1 -1 . -1 1 1 . . A = E(8)+E(8)^3 = ER(-2) = i2 B = E(11)+E(11)^3+E(11)^4+E(11)^5+E(11)^9 = (-1+ER(-11))/2 = b11 If we are now given a representation of the group M_{11} and want to use the Atlas character table together with this concrete group then the bijection between the conjugacy classes of the group and the columns of the Atlas table is not known. For the first six columns of the table, the element orders determine the corresponding conjugacy class uniquely, but for an element of order 8 or 11, it is not clear to which column of the table its conjugacy class corresponds. In this example, there is in fact no problem because of symmetries of the character table, which allow one to choose any column of the appropriate element order as the one that corresponds to a given element. (But after that choice, the correspondence is of course fixed.) In general, it may happen that the correspondence between the classes of a given group and the columns of the character table of this group cannot be determined uniquely (up to symmetries of the table) without additional information. In the worst case, one may be forced to recompute (parts of) the character table from the group. However, often this is not necessary, and one does in fact not need the complete information about the correspondence between classes and columns. 3. The question was about sporadic simple groups, and for most of these groups, the Atlas of Group Representations (see http://brauer.maths.qmul.ac.uk/Atlas/) provides a program for computing standard conjugacy class representatives, if one starts with standard generators of the group in question. In GAP, one can access this information via the package AtlasRep, as follows. We choose the degree 11 permutation representation of the Mathieu group M_{11}. gap> LoadPackage( "atlasrep" ); true gap> prg:= AtlasStraightLineProgram( "M11", "classes" );; gap> info:= OneAtlasGeneratingSetInfo( "M11" );; gap> gens:= AtlasGenerators( info );; gap> reps:= ResultOfStraightLineProgram( prg.program, gens.generators ); [ (), (2,10)(4,11)(5,7)(8,9), (2,6,10)(4,8,7)(5,9,11), (1,4,3,8)(2,5,6,9), (2,5,3,7,10)(4,6,11,8,9), (1,3)(2,10,6)(4,11,8,5,7,9), (1,8,6,11,3,7,10,9)(4,5), (1,7,6,9,3,8,10,11)(4,5), (1,4,11,3,8,2,10,5,7,6,9), (1,8,6,5,7,2,10,9,3,4,11) ] The class representatives obtained this way correspond to the columns of the Atlas character table of the group M_{11}. 4. More information about character tables in GAP can be found in the GAP Reference Manual, see for example http://www.gap-system.org/Manuals/doc/htm/ref/CHAP069.htm or try `?Character Tables' in GAP. All the best, Thomas From gabar at mai.liu.se Thu Jul 9 15:22:39 2009 From: gabar at mai.liu.se (Gabriel Bartolini) Date: Thu Jul 9 15:23:08 2009 Subject: [GAP Forum] Subgroups of given index of SmallGroups Message-ID: <4A55FD2F.9090704@mai.liu.se> Dear GAP Forum, Is there a way (similar to SubgroupsOfIndexTwo) to list all subgroups of a given index? I've tried the following which is not too useful. F:=Image(IsomorphismFpGroup( G )); LowIndexSubgroupsFpGroup(F, 4); [ Group(), Group() ... Any suggestions? Best, Gabriel From rollandj at uwm.edu Thu Jul 9 21:40:19 2009 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Thu Jul 9 21:40:37 2009 Subject: [GAP Forum] Superperfect Group with Infinite Outer Automorphism Group? Message-ID: <4A5655B3.3090508@uwm.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, all! [I realize this is off-topic. I posted it to sci.math.research, but the response rate there is sometimes poor, and I know you are all experts on group theory. Please excuse the off-topic post.] Recall that a group is perfect if and only if its abelianization is trivial. Equivalently, P is perfect if and only if its first homology group, H_1(P) = 0. A groups S is superperfect if and only if H_1(S) = H_2(S) = 0. A finitely presented group is superperfect if it admits a "balanced presentation", that is, a presentation with the same number of generators and relators. The fundamental group of a homology sphere (a manifold with the same integral homology of a sphere) is always superperfect. The automorphism group of a group is all of its automorphisms. The inner automorphisms are a normal subgroup of the automorphism group, and the outer automorphism group of a group is its automorphism group mod its inner automorphism group. Does anyone know of a finitely presented superperfect group (or, more preferably, and (explicitly defined) infinite family of f.p. superperfect groups) with infinite outer automorphism group? It would be helpful if you could explicitly present the outer automorphism group (or otherwise explicitly define it). I only really have experience with one superperfect group, namely SL(2,5), the special linear group in dimension two over the field with 5 elements. It's outer automorphism group is Z_2, about as far as you can get from infinite. Any assistance you can provide would be appreciated. Sincerely, - -- Jeffrey Rolland -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10-svn4923 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQEVAwUBSlZVig7x0haAVywNAQKBiwf5Ad0l7CITG3OrhfLu5+XrWkc+zo0widVF 0aD/B+XnFBkpvAUpb6HObyr5GVj1yW9wFPxN57Tg3bOsm+vWiFHvNHx3ZH4IsxwZ FsY8ETD/s8TEg3sFWMx4IQ4Mlq8rN7tlp6Mlv7aPhzbQZ2bAICmqrlzMEOp24uph Btstb2gMkgvJOWgDzFl5AXC13rRb8RaiV+xWidoRNjPyE63cfy3gbsCznL3xxtGF RdLMHe01TQaKH9ovmM1HG9qAtzcCram//B/WQuCPeAjNObSg3CqIfu4jIL1SG9Vc Wq+CnPT69Fh6O8q3WoRruefYEAkahh3OBmwpemYsQpswnLyV04njXg== =h4xx -----END PGP SIGNATURE----- From hulpke at math.colostate.edu Fri Jul 10 17:41:32 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri Jul 10 17:41:55 2009 Subject: [GAP Forum] Subgroups of given index of SmallGroups In-Reply-To: <4A55FD2F.9090704@mai.liu.se> References: <4A55FD2F.9090704@mai.liu.se> Message-ID: Dear Forum, Derar Gabriel Bartolini, According to your private e-mail, the groups you are interested in are from the small groups library. Because they are very small, you probably will be most happy with computing all subgroups, and then discarding those whose index is too large. The following example shows you how one can do this (Subgroups are obtained up to conjugacy): gap> g:=SmallGroup(192,500); gap> c:=ConjugacyClassesSubgroups(g);; gap> c:=List(c,Representative);; # get actual subgroups, not classes gap> c:=Filtered(c,x->Index(g,x)<=4); # or replace 4 with whatever index [ Group([ f7, f4, f5, f6, f2*f3 ]), Group([ f7, f1*f5, f2, f4, f6 ]), Group([ f7, f1*f6, f2, f4, f5*f6 ]), Group([ f7, f4, f5, f6, f1 ]), Group([ f7, f1, f3, f4, f5 ]), Group([ f7, f4, f5, f6, f1*f3 ]), Group([ f7, f1*f6, f3, f4, f5 ]), Group([ f7, f1, f2*f5, f4, f6 ]), Group([ f7, f1*f3, f2*f5, f4*f5, f6 ]), Group([ f7, f4, f5, f6, f2 ]), Group([ f7, f1*f3*f5, f2, f4*f5, f6 ]), Group([ f7, f2*f4, f3, f5, f6 ]), Group([ f7, f4, f5, f6, f1*f2 ]), Group([ f7, f2*f4, f3*f4, f5, f6 ]), Group([ f7, f4, f5, f6, f3 ]), Group([ f7, f1, f2, f4, f6 ]), Group([ f7, f4, f5, f6, f1*f2*f3 ]), Group([ f7, f1, f2*f3, f4, f5*f6 ]), Group([ f7, f2, f3*f4, f5, f6 ]), Group([ f7, f1*f6, f2*f3, f4, f5*f6 ]), Group([ f7, f2, f3, f5, f6 ]), Group([ f7, f1*f5, f2*f5, f4, f6 ]), Group([ f7, f1*f3*f5, f2*f5, f4*f5, f6 ]), Group([ f7, f1, f2, f4, f5 ]), Group([ f7, f1*f6, f2, f4, f5 ]), Group([ f7, f1, f2, f4, f5*f6 ]), Group([ f7, f1*f3, f2, f4*f5, f6 ]), Group([ f1, f2, f3, f4, f5, f6 ]), Group([ f7, f4, f5, f6, f1, f2 ]), Group([ f7, f4, f5, f6, f1, f2*f3 ]), Group([ f7, f4, f5, f6, f1*f2, f1*f3 ]), Group([ f7, f4, f5, f6, f2, f1*f3 ]), Group([ f7, f4, f5, f6, f2, f3 ]), Group([ f7, f4, f5, f6, f1, f3 ]), Group([ f7, f4, f5, f6, f1*f2, f3 ]), Group([ f7, f4, f5, f6, f1, f2, f3 ]) ] If your groups are larger, and your index smaller, the approach used via FP groups also can be used (for your case of small groups and index up to 200 it would be very inefficient). Do not worry about the apparently missing generators, GAP is able to compute generators when asked for (for example, by calling GeneratorsOfGroup), you also could take pre-images under the isomorphism and then automatically would get groups with generators. The following example illustrates this: gap> hom:=IsomorphismFpGroup(g); [ f1, f2, f3, f4, f5, f6, f7 ] -> [ F1, F2, F3, F4, F5, F6, F7 ] gap> F:=Image(hom); gap> c:=LowIndexSubgroupsFpGroup(F,4); [ Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group(), Group() ] gap> c[10]; Group() gap> GeneratorsOfGroup(c[10]); [ F1, F3*F2^-1, F7 ] gap> c:=List(c,x->PreImage(hom,x)); [ Group([ f1, f2, f3, f7 ]), Group([ f1, f2, f3 ]), Group([ f1, f2, f5, f6, f7 ]), Group([ f1, f2, f5, f7 ]), Group([ f1, f2, f6, f7 ]), Group([ f1, f2, f5*f6, f7 ]), Group([ f1, f3, f6, f7 ]), Group([ f1, f3, f7 ]), Group([ f1, f2*f3*f6, f2*f3*f5*f6, f7 ]), Group([ f1, f2*f3*f6, f7 ]), Group([ f1, f5, f6, f7 ]), Group([ f1, f2*f5, f6, f7 ]), Group([ f4, f2, f3, f7 ]), Group([ f2, f3, f7 ]), Group([ f4, f2, f1*f3*f4, f7 ]), Group([ f2, f1*f3*f4, f7 ]), Group([ f4, f2, f5, f6, f7 ]), Group([ f4, f2, f5, f1*f4*f6, f7 ]), Group([ f4, f2, f1*f4*f5, f6, f7 ]), Group([ f4, f2, f1*f4*f5, f1*f4*f6, f7 ]), Group([ f2, f5, f3*f4*f5, f7 ]), Group([ f2, f1*f3, f7 ]), Group([ f4, f1*f2*f4, f3, f7 ]), Group([ f4, f1*f2*f4, f1*f3*f4, f7 ]), Group([ f4, f1*f2*f4, f5, f6, f7 ]), Group([ f4, f1*f2*f4, f1*f4*f5, f6, f7 ]), Group([ f4, f3, f6, f7 ]), Group([ f4, f3, f1*f4*f6, f7 ]), Group([ f3, f2*f4, f7 ]), Group([ f4, f1*f3*f4, f6, f7 ]), Group([ f1*f3*f4, f2*f4, f7 ]), Group([ f4, f2*f3*f6, f2*f3*f5*f6, f7 ]), Group([ f4, f2*f3*f6, f1*f4*f5, f7 ]), Group([ f2*f3*f6, f2*f3*f5*f6, f2*f4, f7 ]), Group([ f4, f5, f6, f7, f1*f2*f3*f5 ]), Group([ f1*f3, f2*f4, f7 ]) ] In either of the examples, neither the arrangement of groups, nor the generators chosen are in any way particularly "nice", and can depend on algorithm and representation chosen: gap> c[10]; # different than in the fp representation. Group([ f1, f2*f3*f6, f7 ]) I would like to emphasize however, that the algorithms for FP groups in general are rather less efficient than working in the original representation, if you have a faithful permutation representation of small degree, or a PC group. Finally, it is worth mentioning that there are methods to find subgroups of low index for the general case of finite groups, however they are currently not implemented in GAP. I will look into adding something for future releases. 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 neha.gupta2008 at googlemail.com Fri Jul 10 18:20:36 2009 From: neha.gupta2008 at googlemail.com (Neha Gupta) Date: Fri Jul 10 18:20:54 2009 Subject: [GAP Forum] switch statement Message-ID: <2cd1e86c0907101020o5daf3ff7j5e06f0a836028cb3@mail.gmail.com> Hi Dear GAP FORUM Members, I was wandering if there is any equivalent form of 'switch' statement in GAP like there is in C/C++ ?? ( for reference on Switch statement : http://publib.boulder.ibm.com/infocenter/pdthelp/v1r1/index.jsp?topic=/com.ibm.debugtool.doc_8.1/eqa8rm02229.htm ) Please suggest a cooler way as I have to tackle many 'if' commands together. Thanks, Best Neha From azhvan at hotmail.com Fri Jul 10 21:18:46 2009 From: azhvan at hotmail.com (azhvan sanna) Date: Fri Jul 10 21:20:52 2009 Subject: [GAP Forum] How to find the value of a character over some element in a group In-Reply-To: <20090708082002.GA3439@gemma.math.rwth-aachen.de> References: <20090708082002.GA3439@gemma.math.rwth-aachen.de> Message-ID: Dear GAP Forum, Thanks for you answers, I can say I got disappointed for sporadic groups other than Mathieu groups, as there is no way I can find out about uniquely which columns correspond to the value of my specific character on the given elements. Basically I have to evaluate something like " Sigma_{g1, g2,..,gt} Xi(g1.g2.g3...gt) " for each Xi in Irr(G) and t from 1 to the degree of Xi. So I need to find a way to calculate the "Xi(g1.g2.g3...gt)" quickly. Is there any idea? Cheers, Azhvan > Date: Wed, 8 Jul 2009 10:20:02 +0200 > From: thomas.breuer@math.rwth-aachen.de > To: forum@gap-system.org > Subject: Re: [GAP Forum] How to find the value of character over generators > CC: > > Dear GAP Forum, > > azhvan sanna wrote > > > I have to use the character table of sporadic simple groups, and evaluate the > > value of characters on some specific generators, I appreciate if somebody tell > > me; is this possible? I have got the idea that as we do not know about the > > Conjugacy classes ordering and the nature of them used for making characters > > table, so characters table can be used when we do some calculation regardless > > of element involve in evaluating, so computing for example the value of one > > character in some element seems not possible. > > 1. If one has computed a character table from a group in GAP > then the bijection between the columns of the table > and the conjugacy classes of this group is explicitly stored. > In this situation, a given character can be evaluated at a > group element using ^, as in the following example. > > gap> G:= AlternatingGroup( 5 );; > gap> g:= (1,2,3,4,5);; > gap> tbl:= CharacterTable( G );; > gap> Display( tbl ); > CT1 > > 2 2 2 . . . > 3 1 . 1 . . > 5 1 . . 1 1 > > 1a 2a 3a 5a 5b > 2P 1a 1a 3a 5b 5a > 3P 1a 2a 1a 5b 5a > 5P 1a 2a 3a 1a 1a > > X.1 1 1 1 1 1 > X.2 3 -1 . A *A > X.3 3 -1 . *A A > X.4 4 . 1 -1 -1 > X.5 5 1 -1 . . > > A = -E(5)-E(5)^4 > = (1-ER(5))/2 = -b5 > gap> chi:= Irr( tbl )[2]; > Character( CharacterTable( Alt( [ 1 .. 5 ] ) ), > [ 3, -1, 0, -E(5)-E(5)^4, -E(5)^2-E(5)^3 ] ) > gap> g^chi; > -E(5)-E(5)^4 > > Note that in this situation GAP has to find out in which conjugacy class > of the group the given element lies. > So if one wants to evaluate several characters of a given character table > at the same group element, it is more efficient to compute once in which > conjugacy class this element lies, and then to fetch the character value > at the position of this class. > > gap> pos:= PositionProperty( ConjugacyClasses( tbl ), C -> g in C ); > 4 > gap> chi[ pos ]; > -E(5)-E(5)^4 > > 2. The situation is different if the bijection of table columns and > conjugacy classes is not explicitly known. > The question was about sporadic simple groups, the character tables > of these groups are printed in the famous Atlas of Finite Groups, > and these Atlas tables are available in GAP's Library of Character Tables. > Let us assume we are interested in the Mathieu group M_{11}. > Its Atlas character table can be fetched as follows. > > gap> tbl:= CharacterTable( "M11" ); > CharacterTable( "M11" ) > gap> Display( tbl ); > M11 > > 2 4 4 1 3 . 1 3 3 . . > 3 2 1 2 . . 1 . . . . > 5 1 . . . 1 . . . . . > 11 1 . . . . . . . 1 1 > > 1a 2a 3a 4a 5a 6a 8a 8b 11a 11b > 2P 1a 1a 3a 2a 5a 3a 4a 4a 11b 11a > 3P 1a 2a 1a 4a 5a 2a 8a 8b 11a 11b > 5P 1a 2a 3a 4a 1a 6a 8b 8a 11a 11b > 11P 1a 2a 3a 4a 5a 6a 8a 8b 1a 1a > > X.1 1 1 1 1 1 1 1 1 1 1 > X.2 10 2 1 2 . -1 . . -1 -1 > X.3 10 -2 1 . . 1 A -A -1 -1 > X.4 10 -2 1 . . 1 -A A -1 -1 > X.5 11 3 2 -1 1 . -1 -1 . . > X.6 16 . -2 . 1 . . . B /B > X.7 16 . -2 . 1 . . . /B B > X.8 44 4 -1 . -1 1 . . . . > X.9 45 -3 . 1 . . -1 -1 1 1 > X.10 55 -1 1 -1 . -1 1 1 . . > > A = E(8)+E(8)^3 > = ER(-2) = i2 > B = E(11)+E(11)^3+E(11)^4+E(11)^5+E(11)^9 > = (-1+ER(-11))/2 = b11 > > If we are now given a representation of the group M_{11} and want to > use the Atlas character table together with this concrete group > then the bijection between the conjugacy classes of the group and the > columns of the Atlas table is not known. > For the first six columns of the table, the element orders determine > the corresponding conjugacy class uniquely, > but for an element of order 8 or 11, it is not clear to which column > of the table its conjugacy class corresponds. > > In this example, there is in fact no problem because of symmetries > of the character table, which allow one to choose any column of the > appropriate element order as the one that corresponds to a given element. > (But after that choice, the correspondence is of course fixed.) > > In general, it may happen that the correspondence between the classes > of a given group and the columns of the character table of this group > cannot be determined uniquely (up to symmetries of the table) without > additional information. > In the worst case, one may be forced to recompute (parts of) the character > table from the group. > However, often this is not necessary, and one does in fact not need the > complete information about the correspondence between classes and columns. > > 3. The question was about sporadic simple groups, > and for most of these groups, the Atlas of Group Representations > (see http://brauer.maths.qmul.ac.uk/Atlas/) > provides a program for computing standard conjugacy class representatives, > if one starts with standard generators of the group in question. > In GAP, one can access this information via the package AtlasRep, > as follows. > We choose the degree 11 permutation representation of the Mathieu group > M_{11}. > > gap> LoadPackage( "atlasrep" ); > true > gap> prg:= AtlasStraightLineProgram( "M11", "classes" );; > gap> info:= OneAtlasGeneratingSetInfo( "M11" );; > gap> gens:= AtlasGenerators( info );; > gap> reps:= ResultOfStraightLineProgram( prg.program, gens.generators ); > [ (), (2,10)(4,11)(5,7)(8,9), (2,6,10)(4,8,7)(5,9,11), > (1,4,3,8)(2,5,6,9), (2,5,3,7,10)(4,6,11,8,9), > (1,3)(2,10,6)(4,11,8,5,7,9), (1,8,6,11,3,7,10,9)(4,5), > (1,7,6,9,3,8,10,11)(4,5), (1,4,11,3,8,2,10,5,7,6,9), > (1,8,6,5,7,2,10,9,3,4,11) ] > > The class representatives obtained this way correspond to the columns of > the Atlas character table of the group M_{11}. > > 4. More information about character tables in GAP can be found in the > GAP Reference Manual, see for example > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP069.htm > or try `?Character Tables' in GAP. > > All the best, > Thomas > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum _________________________________________________________________ Stay in the loop and chat with friends, right from your inbox! http://go.microsoft.com/?linkid=9671354 From mjoao at classic.univ-ab.pt Mon Jul 13 11:56:13 2009 From: mjoao at classic.univ-ab.pt (Joao Araujo) Date: Mon Jul 13 12:09:53 2009 Subject: [GAP Forum] free bands Message-ID: Dear all, I would be grateful if someone could tell me how I can use GAP to get all the elements of the free band on 3 (or 4) generators. I thank in advance, Joao From azhvan at hotmail.com Mon Jul 13 22:29:44 2009 From: azhvan at hotmail.com (azhvan sanna) Date: Mon Jul 13 22:30:04 2009 Subject: [GAP Forum] How to recognize the conjugacy class of groups through their character table Message-ID: Dear GAP Forum, I asked a question while ago about calculating the value of characters on group elements, and we ended up ( upon now) with this answer that it's not possible to compute through "g^Xi" the value of any group element "g" under any character "Xi", as character table is just based on conjugacy class, and also those conjugacy classes has no label and are not based on specific representation of group from a generator set. As I deeply need to know how can i proceed my calculations ( which is about sporadic simple groups) I want to know any idea you guys can offer me. I need to calculate some things like this: suppose I have a generator set X for group G ( among sporadic simple group esp. some of big ones) after that for each Y in Irr(G) and for each t running from 1 to degree Y. I want to calculate sum of Y(x_1.x_2. .. x_t) over all x_i's from X. thanks so much _________________________________________________________________ We are your photos. Share us now with Windows Live Photos. http://go.microsoft.com/?linkid=9666047 From kodra38 at gmail.com Thu Jul 16 15:01:51 2009 From: kodra38 at gmail.com (kodra) Date: Thu Jul 16 15:02:16 2009 Subject: [GAP Forum] (no subject) Message-ID: <66ff79450907160701m733d0era47b3acf8902a2e6@mail.gmail.com> Hello to everybody >From some days I am try to answer to an exercise to write a GAP code for this example but till at this moment I didn't have successes. Do any one get me same help to do that here is my exercise: Write a GAP function which performs a random walk on Z2 starting at origin (0,0) , until the walk leaves the circle with specified radius r around the origin. Your functin should determine how often the random walk returns to the origin before leaving the mentioned circle for the first time .The argument of your function should be the radius r , and your function should return a record containing the total length (number of steps) of the random walk and the number of returns to the origin. Thanks for colaboration Artan From azhvan at hotmail.com Mon Jul 20 19:32:35 2009 From: azhvan at hotmail.com (azhvan sanna) Date: Mon Jul 20 19:33:17 2009 Subject: [GAP Forum] functions work wih conjugacy class Message-ID: Dear GAP Forum, This was my unsolved question: I want to calculate all eigenvalues of cubic cayley graphs associate with sporadic simple group. So if G denote one of 26 sporadic simple group, and X a set of generators with 3 elements, one "a" of order 2, and the other "b" and "b^-1" of order greater than 2. then Cay(G,X) is a cubic Cayley graph. and by a well-know formula for computing eigenvalues of cayley graphs, we have: for each "Xi" in Irr(G) of degree n, we have n eigenvalues L_1, L_2,...,L_n each of them has multiplicity n ( so in total this character "Xi" of degree n gives us "n^2" eigenvalues of our graph). and we can compute them by Newton-Waring identities and following fact that for t from 1 to n we have (L_1)^t + (L_2)^t + ... +(L_n)^t = Sum {Xi (x_1.x_2....x_t)} where sum is over the value of "Xi" on the all product of t elemnts from our generator set X. Using this I will find a polynomial of degree n and roots give me the eigenvalues, instead of determaining the characterestic polynomial of a matrix of order |G| which for sporadic simple group this number is huge and also finding their roots! As you see, I need to calculate this for every character in Irr(G), and evalute them in all t-product of elements of generator set. I know this will involve lots of calculation as mentioned it to me by Thomas Breuer. Because of the special case here, I am just having a generator set of 3 elements, I would like to know is it any function to calculate for generator "a" and "b" and conjugacy class "C" the number "n_{t,C}(a,b)" which calculates the number of t-products( products of length t of a,a^-1, b, b^-1) of a and b which belongs to the Conjugacy class "C" for t runs from 1 to max{ deg(Xi) | "Xi" runs over Irr(G)}? Because after this point most of calculations above are pretty simple. Azhvan _________________________________________________________________ More storage. Better anti-spam and antivirus protection. Hotmail makes it simple. http://go.microsoft.com/?linkid=9671357 From r_n_tsai at yahoo.com Tue Jul 21 02:31:04 2009 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Tue Jul 21 02:31:25 2009 Subject: [GAP Forum] renaming generators of lie algebra Message-ID: <333551.41496.qm@web34401.mail.mud.yahoo.com> Dear gap-forum, I'd like to rename the generators of lie algebras and their universal enveloping algebras. I tried a few things including this that didn't seem to work. gap> L:=SimpleLieAlgebra("A",1,Rationals);; gap> U:=UniversalEnvelopingAlgebra(L);; gap> g:=GeneratorsOfAlgebraWithOne(U);; gap> g; [ [(1)*x.1], [(1)*x.2], [(1)*x.3] ] gap> SetName(g[1],"MyName"); (doesn't change the name) Thanks, R.N. From alireza_abdollahi at yahoo.com Tue Jul 21 10:43:27 2009 From: alireza_abdollahi at yahoo.com (Alireza Abdollahi) Date: Tue Jul 21 10:43:54 2009 Subject: [GAP Forum] functions work wih conjugacy class In-Reply-To: References: <645409.64176.qm@web35705.mail.mud.yahoo.com> Message-ID: <789338.66400.qm@web35703.mail.mud.yahoo.com> Dear Azhvan The generating set must be symmetrized. ? Also, remeber that root?function in GAP (as other computational package) cannot compute all the roots and present them as an output, so sometimes (or often!) you see an output which??seemingly incomplete (i.e., it does not contain all the eigenvalues). Anyway, the functions below can be considered as starting point to obtain and adhoc one for yourself. It may be possible to find eigenvalues corresponding to an irreducible character (you need change the followings for it), I think it is not possible to find in this?way all the eigenvalues. In fact, this is my feeling (not a mathematical thing) that it is better to calculate eigenvalues of a Cayley graph by constructing its adjacency matrix and then finding its?spectrum. It is very easy,?e.g., in GAP by using Soicher's GRAPE package to have the adjacency matrix. While using the approach of ``irreducible character'' (I think)it is often used?in theoretical proofs for some computations?and apart of?its nice form?suggesting that it is useful for compute for the ``whole of spectrum'', it is NOT. Of course, it is ideal to compute a part of spectrum. All the Best Alireza Alireza Abdollahi Department of Mathematics University of Isfahan Isfahan 81746-73441,Iran a.abdollahi@math.ui.ac.ir abdollahi@member.ams.org http://sci.ui.ac.ir/~a.abdollahi ________________________________ From: azhvan sanna To: alireza_abdollahi@yahoo.com Sent: Tuesday, July 21, 2009 12:11:06 AM Subject: RE: [GAP Forum] functions work wih conjugacy class Dear Alireza, Do you mean I need to use symmetric Cayley set ( so when I list the elements of S, I use both x and x^-1, x inverse,) or no If I just enter a set of generators it will be enough and it counts already all the inverse too. because I checked for some small groups it gives me some strange result.? Do you think this can be used for those big sporadic groups? thanks so much Azhvan > Date: Mon, 20 Jul 2009 14:05:12 -0700 > From: alireza_abdollahi@yahoo.com > Subject: Re: [GAP Forum] functions work wih conjugacy class > To: azhvan@hotmail.com > > Dear Azhvan, > Here is?the text file of? a?program for finding? the spectrum of? a cayley graph. > > The function?name EigenCayley > > it has?two parameters the first one is the group and the second one is the (symmetric)?generating set. > > for example > gap> S5:=SymmetricGroup(5);; > gap>S:=[(1,2),(1,3),(1,4),(1,5)];; > gap>EigenCayley(S5,S); > [[-4,1],[-3,12],[-2,28],[-1,4],[0,30],[1,4],[2,28],[3,12],[4,1]] > > The first argument of each list in the above list is an eigen value of the graph and the second is its multiplicity. > > You need to change it for your problem. Note that if the spectrum contains a root which cannot be found by GAP (see the correspoding function). > > In the meanwhile it should be quoted that some parts of this code can be find it the GAP forum and I do not remember the author (maybe Alex Hulpke) and the code (maybe "classfinder")!! > (Appologies for this!) > > All the Best > Alireza > > > Alireza Abdollahi > Department of Mathematics > University of Isfahan, > Isfahan 81746-73441,Iran > abdollahi@member.ams.org > URL: http://sci.ui.ac.ir/~a.abdollahi > > > > -----Inline Attachment Follows----- > > setproduct:=function(S,n) > local T,m; > T:=S; m:=1; > if n=1 then T:=S; fi; > while? n>m do > T:=List(Cartesian(T,S),i->i[1]*i[2]); > m:=m+1; > od; > return T; > end; > > classfinder:=function(G,g) > local c; > c:=ConjugacyClasses(G); > return First([1..Length(c)],i->g in c[i]); > end; > > sumeigen:=function(G,S,t) > local l,irr; > irr:=Irr(G); > l:=List(setproduct(S,t),i->classfinder(G,i)); > return List(irr,X->[Sum(l,i->X[i]), "deg=", X[1]]); > end; > > sumeigenn:=function(G,S,i) > local l,X; > X:=Irr(G)[i]; > l:=List(S,i->classfinder(G,i)); > return Sum(l,i->X[i]); > end; > > sumeigennn:=function(G,S,i) > local d,X,l; > X:=Irr(G)[i]; > d:=X[1]; > l:= List([1..d],j->sumeigenn(G,setproduct(S,j),i)); > return l; > end; > > > newtonformulae:=function(L) > local n,a,A,B,i; > n:=Size(L); a:=-L[1]; A:=[a]; > for i in [2..n] do > a:=-(1/i)*(Sum(List([1..i-1],j->L[j]*A[i-j]))+L[i]); > Add(A,a); > od; > return A; > end; > > root:=function(L) > local n,x,f; > x:=Indeterminate(Rationals,"x"); > n:=Size(L); > f:=Sum(List([1..n],j->L[j]*x^(n-j)))+x^n; > return RootsOfUPol(f); > end; > > eigenX:=function(G,S,i) > local d,X,l; > X:=Irr(G)[i]; > d:=X[1]; > l:=root(newtonformulae(sumeigennn(G,S,i))); > return [l, d]; > end; > > eigenCayley:=function(G,S) > return List([1..Size(ConjugacyClasses(G))],i->eigenX(G,S,i)); > end; > > listexpand:=function(L) > local a,i,j; > a:=[]; > for i in [1..Size(L[1])] do > for j in [1..L[2]] do > Add(a,L[1][i]); > od; > od; > return a; > end; > > > EigenCayley:=function(G,S) > local e1,E1,a,B,i; > E1:=[]; > e1:=eigenCayley(G,S); > a:=List(e1,i->listexpand(i)); > for i in [1..Size(a)] do > Append(E1,a[i]); > od; > B:=Set(E1); > return List(B,i-> [i, Size( Filtered(E1,j->j=i))] ); > end; > > > > > > > ?Alireza Abdollahi > Department of Mathematics > University of Isfahan > Isfahan 81746-73441,Iran > a.abdollahi@math.ui.ac.ir > abdollahi@member.ams.org > http://sci.ui.ac.ir/~a.abdollahi > > > > ----- Original Message ---- > From: azhvan sanna > To: GAP Forum > Sent: Monday, July 20, 2009 7:32:35 PM > Subject: [GAP Forum] functions work wih conjugacy class > > > Dear GAP Forum, > This was my unsolved question: > I want to calculate all eigenvalues of cubic cayley graphs associate > with sporadic simple group. So if G denote one of 26 sporadic simple > group, and X a set of generators with 3 elements, one "a" of order 2, > and the other "b" and "b^-1" of order greater than 2. then Cay(G,X) is > a cubic Cayley graph. and by a well-know formula for computing > eigenvalues of cayley graphs, we have: for each > > "Xi" in Irr(G) > of degree n, we have n eigenvalues L_1, L_2,...,L_n each of them has > multiplicity n ( so in total this character "Xi" of > > degree n gives us "n^2" eigenvalues of our graph). and we can compute them by Newton-Waring identities and following fact that > > for t from 1 to n we have (L_1)^t + (L_2)^t + ... +(L_n)^t =? Sum {Xi (x_1.x_2....x_t)} where sum is over the value of "Xi" on > > the all product of t elemnts from our generator set X. > > Using > this I will find a polynomial of degree n and roots give me the > eigenvalues, instead of determaining the characterestic polynomial of a > matrix of order |G| which for sporadic simple group this number is huge > and also finding their roots! > > As you see, I need to calculate > this for every character in Irr(G), and evalute them in all t-product > of? elements of generator set. > > I know this will involve lots of calculation as? mentioned it to me by Thomas Breuer. Because of the special case? here, I am just having a generator set of 3 elements, I would like to know is it any function to calculate for generator "a" and "b"? and conjugacy class "C" the number "n_{t,C}(a,b)" which calculates the number of t-products( products of length t of a,a^-1, b, b^-1) of a and b which belongs to the Conjugacy class "C" for t runs from 1 to max{ deg(Xi) | "Xi" runs over Irr(G)}? > Because after this point most of calculations above are pretty simple. > > Azhvan > > > > _________________________________________________________________ > More storage. Better anti-spam and antivirus protection. Hotmail makes it simple. > http://go.microsoft.com/?linkid=9671357_______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > > > ________________________________ Stay in the loop and chat with friends, right from your inbox! Learn how! From kksa at math.ku.dk Tue Jul 21 13:31:15 2009 From: kksa at math.ku.dk (Kasper Andersen) Date: Tue Jul 21 13:31:37 2009 Subject: [GAP Forum] Problem with ComplementClasses Message-ID: Hi! As a test for a more serious application I want to use GAP to find the conjugacy classes of complements of the normal subgroup A_4/V_4 in S_4/V_4. The following piece of code sets up the quotient S_4/V_4 and the normal subgroup A_4/V_4: S4:=SymmetricGroup(4); A4:=DerivedSubgroup(S4); V4:=DerivedSubgroup(A4); pi:=NaturalHomomorphismByNormalSubgroup(S4,V4); S4modV4:=Image(pi,S4); A4modV4:=Image(pi,A4); After this the result should be obtainable by ComplementClasses(S4modV4,A4modV4) but this gives the error Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `PcpsOfEfaSeries' on 1 arguments called \ from PcpsOfEfaSeries( N ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue on my system. Why does this happen? Is there an easy way to solve it? thanks in advance, Kasper Andersen From bsambale at gmx.de Tue Jul 21 15:55:12 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Tue Jul 21 15:55:31 2009 Subject: [GAP Forum] Problem with ComplementClasses In-Reply-To: References: Message-ID: <4A65D6D0.1070500@gmx.de> Just write "Complementclasses" instead of "ComplementClasses". Kasper Andersen schrieb: > Hi! > > As a test for a more serious application I want to use GAP to find the > conjugacy classes of complements of the normal subgroup A_4/V_4 in > S_4/V_4. The following piece of code sets up the quotient S_4/V_4 and > the normal subgroup A_4/V_4: > > S4:=SymmetricGroup(4); > A4:=DerivedSubgroup(S4); > V4:=DerivedSubgroup(A4); > pi:=NaturalHomomorphismByNormalSubgroup(S4,V4); > S4modV4:=Image(pi,S4); > A4modV4:=Image(pi,A4); > > After this the result should be obtainable by > > ComplementClasses(S4modV4,A4modV4) > > but this gives the error > > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 1st choice method found for `PcpsOfEfaSeries' on 1 arguments > called \ > from > PcpsOfEfaSeries( N ) called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > > on my system. Why does this happen? Is there an easy way to solve it? > > thanks in advance, > > Kasper Andersen > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From thomas.breuer at math.rwth-aachen.de Fri Jul 24 19:51:24 2009 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Jul 24 19:51:35 2009 Subject: [GAP Forum] functions work wih conjugacy class In-Reply-To: References: Message-ID: <20090724185124.GD475@gemma.math.rwth-aachen.de> Dear GAP Forum, Azhvan Sanna had recently sent several messages concerning computations with characters of sporadic simple groups in GAP. The latest of these messages (appended below) describes the background, which is roughly the following. - The *aim* is to compute, for any sporadic simple group G and a three-element generating set X for G, the eigenvalues of the associated Cayley graph. - The first *idea* is that we may split the regular representation of G into the direct sum of its \chi-homogeneous components, for the irreducible characters \chi of G, and thus it suffices to compute the eigenvalues of the smaller matrices. (Note that the adjacency matrix of the Cayley graph is the sum of the images of the generators in X under the regular representation of G.) - The *approach* is then to observe that the sum of the i-th powers of the eigenvalues of the submatrix for the character \chi equals the value of \chi at the group algebra element ( \sum_{x \in X} )^i. If one knows these values for i up to \chi(1) then one can compute the eigenvalues themselves. For computing the desired character value, one may expand the i-th power of the sum over X as the sum of all ordered i-tuples over X, compute the character values of all summands and them sum them up. This works for small groups, but runs forever if the character degree is not very small. For example, consider the sporadic simple Janko group J_1. Its smallest nontrivial character degree is 56. For |X| = 3 and i = 56, one gets 3^56 summands, which is more than 10^26. So this approach is not feasible, and Azhvan's question for a better way of computing the character value is reasonable. Concerning this question, one can say at least that with purely character-theoretic methods, in general one cannot compute the distribution of the summands to conjugacy classes of G. This follows from the fact that this distribution depends on the choice of the generators inside their conjugacy class; so it is impossible to avoid computations with group elements. (The situation would be different if the generating set X would be a conjugacy class of G. In this situation, the powers of the sum over X is a linear combination of class sums, which can be described in terms of character values. As a rule of thumb, if a problem is not invariant under conjugacy then it is not likely that purely character-theoretic methods can solve it.) Besides the problem to compute the character values in question, I think that also the computation of the eigenvalues from the \chi(1) polynomial equations is not ``pretty simple'', because one has to consider character degrees \chi(1) of magnitude at least the square root of |G|, divided by the number of conjugacy classes of G. So the sketched approach really works for simple groups only if they are small. All the best, Thomas P.S.: The computation of \chi( ( \sum_{x \in X} )^i ) can be performed easily if a *representation* affording \chi is known. Namely, one can evaluate the generators in this representation, add the resulting matrices, raise this matrix to the i-th power, and then take the trace. For the Janko group J_1 mentioned above, the rational irreducible representations are available in the Atlas of Group Representations, for example via the GAP package AtlasRep, so the first step of the sketched approach can be done for J_1. > This was my unsolved question: > I want to calculate all eigenvalues of cubic cayley graphs associate > with sporadic simple group. So if G denote one of 26 sporadic simple > group, and X a set of generators with 3 elements, one "a" of order 2, > and the other "b" and "b^-1" of order greater than 2. then Cay(G,X) is > a cubic Cayley graph. and by a well-know formula for computing > eigenvalues of cayley graphs, we have: for each > > "Xi" in Irr(G) > of degree n, we have n eigenvalues L_1, L_2,...,L_n each of them has > multiplicity n ( so in total this character "Xi" of > > degree n gives us "n^2" eigenvalues of our graph). and we can compute them by Newton-Waring identities and following fact that > > for t from 1 to n we have (L_1)^t + (L_2)^t + ... +(L_n)^t = Sum {Xi (x_1.x_2....x_t)} where sum is over the value of "Xi" on > > the all product of t elemnts from our generator set X. > > Using > this I will find a polynomial of degree n and roots give me the > eigenvalues, instead of determaining the characterestic polynomial of a > matrix of order |G| which for sporadic simple group this number is huge > and also finding their roots! > > As you see, I need to calculate > this for every character in Irr(G), and evalute them in all t-product > of elements of generator set. > > I know this will involve lots of calculation as mentioned it to me by Thomas Breuer. Because of the special case here, I am just having a generator set of 3 elements, I would like to know is it any function to calculate for generator "a" and "b" and conjugacy class "C" the number "n_{t,C}(a,b)" which calculates the number of t-products( products of length t of a,a^-1, b, b^-1) of a and b which belongs to the Conjugacy class "C" for t runs from 1 to max{ deg(Xi) | "Xi" runs over Irr(G)}? > Because after this point most of calculations above are pretty simple. From jbohanon2 at gmail.com Wed Jul 29 17:57:35 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Wed Jul 29 17:58:06 2009 Subject: [GAP Forum] Change line width when using PrintTo Message-ID: <4A707F7F.2070504@gmail.com> Is there any way to extend the length of a line when I print to a file using PrintTo (or AppendTo)? I'm using GAP to auto-generate some html pages (I know, it's a non-standard use) and the backslash characters that come up for line breaks mess with the output. It's not that hard to fix, but it would save time if there was a way to change it. Thanks Joe From jbohanon2 at gmail.com Wed Jul 29 19:54:32 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Wed Jul 29 19:55:02 2009 Subject: [GAP Forum] Change line width when using PrintTo In-Reply-To: <200907291800.n6TI0BQp029632@rkd.math.cornell.edu> References: <200907291800.n6TI0BQp029632@rkd.math.cornell.edu> Message-ID: <4A709AE8.3010003@gmail.com> Found it, Keith. I don't need all that much more space. What's the default so I can change it back if I want? Thanks Joe R. Keith Dennis wrote: > Joe, > > as I recall ScreenSize does this to some extent. ButI don't think you > can set it above 256. > > I sent in a question to the GAO forum a year or two ago, but I can't > remember if I ever got a satisfactory answer - I couldn't find it > anywhere in my e-mail when I just checked (only my question). > > Keith > > >> Is there any way to extend the length of a line when I print to a file >> using PrintTo (or AppendTo)? I'm using GAP to auto-generate some html >> pages (I know, it's a non-standard use) and the backslash characters >> that come up for line breaks mess with the output. It's not that hard >> to fix, but it would save time if there was a way to change it. >> >> Thanks >> Joe >> >> _______________________________________________ >> Forum mailing list >> Forum@mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> >> > > From savchuk at math.tamu.edu Wed Jul 29 20:37:01 2009 From: savchuk at math.tamu.edu (Dmytro Savchuk) Date: Wed Jul 29 20:37:16 2009 Subject: [GAP Forum] Change line width when using PrintTo In-Reply-To: <4A709AE8.3010003@gmail.com> References: <200907291800.n6TI0BQp029632@rkd.math.cornell.edu> <4A709AE8.3010003@gmail.com> Message-ID: Joe, If you type in SizeScreen(); it will return you the current size, which is usually [80,24]. Regards, Dmytro On Wed, Jul 29, 2009 at 1:54 PM, Joe Bohanon wrote: > Found it, Keith. > > I don't need all that much more space. What's the default so I can change > it back if I want? > > Thanks > Joe > > R. Keith Dennis wrote: > >> Joe, >> >> as I recall ScreenSize does this to some extent. ButI don't think you >> can set it above 256. >> >> I sent in a question to the GAO forum a year or two ago, but I can't >> remember if I ever got a satisfactory answer - I couldn't find it >> anywhere in my e-mail when I just checked (only my question). >> >> Keith >> >> >> >>> Is there any way to extend the length of a line when I print to a file >>> using PrintTo (or AppendTo)? I'm using GAP to auto-generate some html pages >>> (I know, it's a non-standard use) and the backslash characters that come up >>> for line breaks mess with the output. It's not that hard to fix, but it >>> would save time if there was a way to change it. >>> >>> Thanks >>> Joe >>> >>> _______________________________________________ >>> 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 azhvan at hotmail.com Thu Jul 30 01:04:05 2009 From: azhvan at hotmail.com (azhvan sanna) Date: Thu Jul 30 01:04:22 2009 Subject: [GAP Forum] Complex and real roots of polynomials!! Message-ID: Dear GAP Forum, Is it possible to work with real and complex fields? and how do you call them?Is function roots work to find polynomial roots of a polynomial over R or C( so I want to get real and complex roots)?This is easy to do in Matlab so I thought it works here but so far I couldn't get it! thanks _________________________________________________________________ Send and receive email from all of your webmail accounts. http://go.microsoft.com/?linkid=9671356 From frank.luebeck at math.rwth-aachen.de Thu Jul 30 12:57:16 2009 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu Jul 30 12:57:38 2009 Subject: [GAP Forum] Change line width when using PrintTo In-Reply-To: <4A707F7F.2070504@gmail.com> References: <4A707F7F.2070504@gmail.com> Message-ID: <20090730115716.GA10371@beteigeuze> On Wed, Jul 29, 2009 at 11:57:35AM -0500, Joe Bohanon wrote: > Is there any way to extend the length of a line when I print to a file > using PrintTo (or AppendTo)? I'm using GAP to auto-generate some html > pages (I know, it's a non-standard use) and the backslash characters > that come up for line breaks mess with the output. It's not that hard > to fix, but it would save time if there was a way to change it. Dear Joe, dear Forum, Check out the documentation of 'SetPrintFormattingStatus', it also contains an example. It is quite reasonable to use GAP for this sort of task, the string processing is reasonably fast and there is some text processing functionality in the GAPDoc package. Alternatively, you can first collect your output in a GAP string and write it in the end to a file using 'FileString'. If you have many Print statements writing small output it can be much more efficient to use 'PrintTo1'. This can also be combined, for example gap> f := function() local i; for i in [1..100000] do Print(i," "); od; end;; gap> out:=OutputTextFile("nonsense",false);; gap> SetPrintFormattingStatus(out,false); gap> PrintTo1(out, f); gap> CloseStream(out); produces a file without linebreak (and no backslashes). Hope this 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 m.fayers at qmul.ac.uk Thu Jul 30 17:05:22 2009 From: m.fayers at qmul.ac.uk (Matthew Fayers) Date: Thu Jul 30 17:05:44 2009 Subject: [GAP Forum] Indeterminates Message-ID: <2081072862.59511248969922733.JavaMail.root@planck.maths.qmul.ac.uk> Dear forum, I have a custom package containing lots of functions that I use frequently, that I usually read into GAP at the start of every session. Since I frequently use polynomials in one variable, one of the first lines of this package is q:=Indeterminate(Rationals,"q"); The trouble is, if I modify the package and then re-read it into the session, GAP reads the line above again and assigns two indeterminates, both called q. This causes problems for functions that refer to q. Is there a way around this, apart from closing a re-opening GAP every time I update my package? For example, is there a way to modify the above line so that it says something like "if q is not already assigned, let it be an indeterminate"? Matt. _____________________________________________________________________________________________ Matthew Fayers School of Mathematical Sciences Queen Mary, University of London Mile End Road London E1 4NS 020 7882 5479 From dima at ntu.edu.sg Thu Jul 30 18:41:03 2009 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Thu Jul 30 18:41:22 2009 Subject: [GAP Forum] Indeterminates In-Reply-To: <2081072862.59511248969922733.JavaMail.root@planck.maths.qmul.ac.uk> References: <2081072862.59511248969922733.JavaMail.root@planck.maths.qmul.ac.uk> Message-ID: <668720bc0907301041r866b7cbs5222d3017c7826b8@mail.gmail.com> Dear Mattew, IsBound(q) would do just what you need. Best, Dmitrii 2009/7/31 Matthew Fayers : > Dear forum, > > I have a custom package containing lots of functions that I use frequently, that I usually read into GAP at the start of every session. ?Since I frequently use polynomials in one variable, one of the first lines of this package is > > q:=Indeterminate(Rationals,"q"); > > The trouble is, if I modify the package and then re-read it into the session, GAP reads the line above again and assigns two indeterminates, both called q. ?This causes problems for functions that refer to q. > > Is there a way around this, apart from closing a re-opening GAP every time I update my package? ?For example, is there a way to modify the above line so that it says something like "if q is not already assigned, let it be an indeterminate"? > > Matt. > > _____________________________________________________________________________________________ > Matthew Fayers > School of Mathematical Sciences > Queen Mary, University of London > Mile End Road > London E1 4NS > 020 7882 5479 > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From ljj198123 at 126.com Fri Jul 31 07:09:00 2009 From: ljj198123 at 126.com (=?gbk?B?wfW9qL78?=) Date: Fri Jul 31 07:09:26 2009 Subject: [GAP Forum] About p-solvable Message-ID: <5348288.192691249020540921.JavaMail.coremail@bj126app59.126.com> Dear forum Let $G$ be a finite group. I would like to know whether $G$ is p-solvable, where p is a any prime of dividing the order of $G$. Is there a method to get it? Best wishes Jianjun Liu From hulpke at me.com Fri Jul 31 09:29:30 2009 From: hulpke at me.com (Alexander Hulpke) Date: Fri Jul 31 09:30:06 2009 Subject: [GAP Forum] Indeterminates In-Reply-To: <2081072862.59511248969922733.JavaMail.root@planck.maths.qmul.ac.uk> References: <2081072862.59511248969922733.JavaMail.root@planck.maths.qmul.ac.uk> Message-ID: <9243E3BA-0930-455E-8633-3F26D13C1E86@me.com> Dear Matthew Fayers, Dear Forum, > I have a custom package containing lots of functions that I use > frequently, that I usually read into GAP at the start of every > session. Since I frequently use polynomials in one variable, one of > the first lines of this package is > > q:=Indeterminate(Rationals,"q"); > > The trouble is, if I modify the package and then re-read it into the > session, GAP reads the line above again and assigns two > indeterminates, both called q. This causes problems for functions > that refer to q. What you can do is to use instead the internal number of the indeterminate (it just will be your taks to make sure that different variables have diferent numbers). This will ensure that you get every time the same object: q:=Indeterminate(Rationals,1); Then use `SetName' to assign the name. (This is safe for reloading, as long as the name being reassigned is the same.) SetName(q,"q"); The next major release of GAP will contain an option to specify in a call like your original one whether you want the same variable if possible. I 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 From burkhard at hoefling.name Fri Jul 31 12:52:53 2009 From: burkhard at hoefling.name (=?ISO-8859-1?Q?Burkhard_H=F6fling?=) Date: Fri Jul 31 12:53:12 2009 Subject: [GAP Forum] About p-solvable In-Reply-To: <5348288.192691249020540921.JavaMail.coremail@bj126app59.126.com> References: <5348288.192691249020540921.JavaMail.coremail@bj126app59.126.com> Message-ID: <3562C684-B3D6-4E85-8B46-274EA1D934E8@hoefling.name> On 31.07.2009, at 08:09, Áõ½¨¾ü wrote: > Dear forum > Let $G$ be a finite group. I would like to know whether $G$ is p- > solvable, where p is a any prime of dividing the order of $G$. > Is there a method to get it? > Best wishes > Jianjun Liu Just use `IsPSolvable(G,p)' - see Section 37.15 (Group Properties) in the GAP manual. Cheers, Burkhard. From gordon at maths.uwa.edu.au Thu Aug 6 01:31:18 2009 From: gordon at maths.uwa.edu.au (Gordon Royle) Date: Thu Aug 6 01:33:23 2009 Subject: [GAP Forum] Two questions: newline suppression and iterators.... Message-ID: <402DBCA2-F46D-4000-8ED7-EE79E6F0C55A@maths.uwa.edu.au> Dear Gapsters I have two questions: one is minor (Q1) When I am printing output with GAP (using "Print") for future processing with another program, GAP appears to insert "newline" characters without being asked; this screws up my subsequent program which wants to process one line at a time. How can I tell GAP to only print newlines when I ask it to! The second would appear to be a very common need, but my search of the archives has not revealed a solution... (Q2) I want to process every element in a large RightTransversal. It is too big to store as a list, but small enough to be processed "one element at a time" - is there a way of making an iterator for a RightTransversal WITHOUT constructing the actual transversal itself... just some way of saying "give me the next element of the transversal"? Cheers Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia gordon@maths.uwa.edu.au From neunhoef at mcs.st-and.ac.uk Thu Aug 6 09:42:34 2009 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Thu Aug 6 09:43:02 2009 Subject: [GAP Forum] Two questions: newline suppression and iterators.... In-Reply-To: <402DBCA2-F46D-4000-8ED7-EE79E6F0C55A@maths.uwa.edu.au> References: <402DBCA2-F46D-4000-8ED7-EE79E6F0C55A@maths.uwa.edu.au> Message-ID: <20090806084234.GA10431@mcs.st-and.ac.uk> Dear Gordon, On Thu, Aug 06, 2009 at 08:31:18AM +0800, Gordon Royle wrote: > Dear Gapsters > > I have two questions: one is minor > > (Q1) When I am printing output with GAP (using "Print") for future > processing with another program, GAP appears to insert "newline" > characters without being asked; this screws up my subsequent program > which wants to process one line at a time. How can I tell GAP to only > print newlines when I ask it to! > > The second would appear to be a very common need, but my search of the > archives has not revealed a solution... This one is easy: See ?SetPrintFormattingStatus You simply do gap> f := OutputTextFile("myoutput");; gap> SetPrintFormattingStatus(f,false); and then use PrintTo(f, STUFF ); as you would use Print. This gets rid of the "nice" formatting. In the end, do gap> CloseStream(f); to close the file. You can also say gap> f := OutputTextUser(); gap> SetPrintFormattingStatus(f,false); and then use PrintTo to write unformatted output to standard output (do not close the stream in this case when you are done!). > > (Q2) I want to process every element in a large RightTransversal. It is > too big to store as a list, but small enough to be processed "one > element at a time" - is there a way of making an iterator for a > RightTransversal WITHOUT constructing the actual transversal itself... > just some way of saying "give me the next element of the transversal"? As far as I see this is in general not easy to do and thus not implemented in general. However, with a bit of luck you can use the following technique using the "orb" package, if you can enumerate the orbit of G acting on the right cosets of your subgroup in some other way (for example, if your subgroup is a point stabilizer): gens := AtlasGenerators("M24",1).generators; m24 := Group(gens); gensi := List(gens,x->x^-1); o := Orb(m24,1,OnPoints,rec(schreier := true)); Enumerate(o); This enumerates the orbit and stores a Schreier tree relatively compactly. for i in [1..Length(o)] do w := TraceSchreierTreeForward(o,i); el := ORB_ApplyWord(One(m24),w,gens,gensi,OnRight); Print(el,"\n"); od; This produces a right transversal of the point stabiliser one by one. Note that in general there will be some multiplications of group elements necessary, so maybe you want to add a few random elements of the group to your generating set to make the Schreier tree shallower. If you have your subgroup given by generators, well, to use this method you need to find something which is fixed under the subgroup such that the orbit has the right size (this is where the luck comes in): gap> gens := AtlasGenerators("M24",11).generators; gap> s := AtlasStraightLineProgram("M24",5).program; gap> hgens := ResultOfStraightLineProgram(s,gens); gap> null := List(hgens,x->NullspaceMat(x-One(x))); gap> inter := SumIntersectionMat(null[1],null[2]); gap> v := inter[2][1]; gap> v*hgens[1]=v; true gap> v*hgens[2]=v; true gap> o := Orb(gens,v,OnRight,rec(schreier := true)); gap> Enumerate(o); And now the same works. Although this is not a general method, it has worked for me before (and will again, I am sure). Cheers, Max. > > Cheers > > Gordon > > > Professor Gordon Royle > School of Mathematics and Statistics > University of Western Australia > gordon@maths.uwa.edu.au > > > > > > > > _______________________________________________ > 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 alexander.konovalov at gmail.com Thu Aug 6 14:17:55 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Thu Aug 6 14:18:14 2009 Subject: [GAP Forum] HPC-GAP vacancy in Heriot-Watt University In-Reply-To: References: Message-ID: <0B41B8F1-1A16-46C2-926A-4F2D7EF3D132@gmail.com> Dear GAP Forum, further to two previous job announcements posted in the Forum earlier this year, there is now a vacancy in Heriot-Watt University, Edinburgh. The closing date is 28 August 2009. Full details are published at http://www.jobs.ac.uk/jobs/SP072/Research_Associate_-_Parallel_Symbolic_Computing/ The advertisement text is below. Best wishes, Alexander ========================================= Parallel Symbolic Computing Research Post The next generation of HPC platform will provide teraflop performance from 10^5 or more cores. A major challenge is to develop the programming models and software infrastructures to effectively exploit these architectures. In the HPC-GAP project (High Performance Computational Algebra and Discrete Mathematics EPSRC EP/G055181) we aim to address this challenge for the GAP Group Algebra package. You will join a team of four researchers in an ambitious programme to adapt the GAP computational algebra system to take advantage of modern high performance computers. You will collaborate with other HPC-GAP members at Aberdeen and St Andrews and Edinburgh Universities. You will take part in and publish research using the software you develop. You will have excellent parallel system engineering expertise, a degree in computer science, an appropriate PhD or equivalent, and good teamwork skills. Desirable criteria include functional language experience, a track record of academic publications, experience preparing research grant applications, and experience with a range of software technologies. You will start on 1 September 2009 and continue until the end of the grant in August 2013. Full details at http://www.jobs.ac.uk/jobs/SP072/Research_Associate_-_Parallel_Symbolic_Computing/ Informal enquiries may be made to Phil Trinder, School of Mathematical and Computer Sciences Heriot-Watt University, Edinburgh, EH14 4AS E: P.W.Trinder@hw.ac.uk T: +44 (0)131 451 3435 F: +44 (0)131 451 3327 W: www.macs.hw.ac.uk/~trinder From alexander.konovalov at gmail.com Fri Aug 7 15:22:45 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Fri Aug 7 15:23:01 2009 Subject: [GAP Forum] Acceptance of the NQL package Message-ID: Dear GAP Forum, It is my pleasure to announce the acceptance of the GAP package NQL by Ren? Hartung, and to thank its author for his contribution to the GAP system. The NQL Package defines new GAP objects to work with certain recursively presented groups: the so-called finitely L-presented groups. The main part of the package is a nilpotent quotient algorithm for L-presented groups, which takes as input an L-presented group L and a positive integer c, and computes a polycyclic presentation for the lower central series quotient L/gamma_c(L). The notion of an L-presentation was introduced by Laurent Bartholdi in 2003, who proved that various branch groups are finitely L-presentable but not finitely presentable. Famous examples of finitely L-presented groups are the Grigorchuk group, the Basilica group, the Lamplighter group, the Brunner-Sidki-Vieira group and Fabrykowski-Gupta groups. Further, every free group in a variety of groups satisfying finitely many identities is finitely L-presented, for example, free Burnside- and free n-Engel groups. The NQL package can be downloaded from its GAP webpage: http://www.gap-system.org/Packages/nql.html where you can also find HTML and PDF documentation. Best wishes, Alexander Konovalov From r_n_tsai at yahoo.com Fri Aug 7 21:48:14 2009 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Fri Aug 7 21:48:32 2009 Subject: [GAP Forum] semisimple type and chevalley basis Message-ID: <584509.4747.qm@web34407.mail.mud.yahoo.com> Dear gap-forum, I define a lie algebra which I know to be equivalent to type "A1". I was hoping to have gap calculate a chavalley basis for this, but this doesn't seem to be possible; even though gap recognizes the algebra as "A1" (using SemiSimpleType). Is there a way around this? Thanks, R.N. mats:= [ [ [ 0, -1, 0 ], [ 1, 0, 0 ], [ 0, 0, 0 ] ], [ [ 0, 0, -1 ], [ 0, 0, 0 ], [ 1, 0, 0 ] ], [ [ 0, 0, 0 ], [ 0, 0, -1 ], [ 0, 1, 0 ] ] ]; alg:=LieAlgebra(Rationals,mats); gap recognizes the algebra as "A1" gap> SemiSimpleType(alg); "A1" but it has trouble with its chevalley basis gap> ChevalleyBasis(alg); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `PositiveRoots' on 1 arguments called fr\ om PositiveRoots( R ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> quit; From ljj198123 at 126.com Mon Aug 10 03:27:06 2009 From: ljj198123 at 126.com (=?gbk?B?wfW9qL78?=) Date: Mon Aug 10 03:27:45 2009 Subject: [GAP Forum] About chief factor Message-ID: <5824947.278791249871226733.JavaMail.coremail@bj126app89.126.com> Dear GAP forum Let $G$ be a finite group. A chief factor $H/K$ of $G$ is called a Fratti= ni chief factor of $G$ if $H/K=A1=DC=A6=B5(G/K)$, the Frattini subgroup of = $G/K$. =20 How to find every Frattini chief factors $H/K$ of $G$ ? How to descrip $H$? (i.e.: What is StructureDescription(H)?) The attrribute "ChiefSeries(G)" returns one cheif series(of potentially man= y posibilities). Thus, we cannot get all the Frattini chief factors of ever= y chief series of $G$ by "ChiefSeries(G)". Is there a method to get them? Best wishes Jianjun Liu From ljshan at gmail.com Thu Aug 13 08:00:23 2009 From: ljshan at gmail.com (Jason) Date: Thu Aug 13 08:00:53 2009 Subject: [GAP Forum] How to compute a simplified Groebner basis Message-ID: <1250146823.7022.15.camel@jason-desktop> Hello, I am a first time user in GAP, if the following question is dummy, please execute me: I tried to use Buchberger's Algorithm to compute a Groebner basis for an ideal of a polynomial ring in rational field, here is my GAP script: F := Rationals; R := PolynomialRing( F, [ "x", "y", "z" ]); x := IndeterminatesOfPolynomialRing(R)[1]; y := IndeterminatesOfPolynomialRing(R)[2]; z := IndeterminatesOfPolynomialRing(R)[3]; I := Ideal (R, [x^2+2*x*y^2, x*y + 2*y^3 - 1]); ord := MonomialLexOrdering(x,y,z); GroebnerBasis( I, ord ); but the result is always this: [ 2*x*y^2+x^2, 2*y^3+x*y-1, -x, -4*y^4+2*y, 2*y^3-1 ] Obviously, the fourth can be completely divided by the last basis, the first and second can be completely divided by the third basis. The expected result should be like this: [ -x, 2*y^3-1 ] So my question is how to get the simplified Groebner basis in GAP ? Here is my GAP info: GAP4, Version: 4.4.10 of 02-Oct-2007, i486-pc-linux-gnu-i486-linux-gnu-gcc regards, jason From hulpke at me.com Thu Aug 13 08:57:29 2009 From: hulpke at me.com (Alexander Hulpke) Date: Thu Aug 13 08:57:50 2009 Subject: [GAP Forum] How to compute a simplified Groebner basis In-Reply-To: <1250146823.7022.15.camel@jason-desktop> References: <1250146823.7022.15.camel@jason-desktop> Message-ID: Dear Jason Shan, > So my question is how to get the simplified Groebner basis in GAP ? `ReducedGroebnerBasis' eliminates redundant terms and scales the leading coefficients to be 1, the result will be unique. gap> ReducedGroebnerBasis(I,ord); [ y^3-1/2, x ] 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 degraaf at science.unitn.it Thu Aug 13 09:10:12 2009 From: degraaf at science.unitn.it (degraaf@science.unitn.it) Date: Thu Aug 13 09:10:43 2009 Subject: [GAP Forum] semisimple type and chevalley basis Message-ID: <20090813101012.lc60gmbpwog48k80@www.unitn.it> Dear Tsai, The problem is that your Lie algebra does not have a split Cartan subalgebra (ie the eigenvalues of the adjoint map are not in the base field). For this reason GAP cannot construct the root system, and, since ChevalleyBasis uses this, it also runs into an error. The function SemiSimpleType recognizes the Lie algebra without computing the root system. I do agree that the error message could be more informative. Best wishes, Willem de Graaf Dear gap-forum, I define a lie algebra which I know to be equivalent to type "A1". I was hoping to have gap calculate a chavalley basis for this, but this doesn't seem to be possible; even though gap recognizes the algebra as "A1" (using SemiSimpleType). Is there a way around this? Thanks, R.N. mats:= [ [ [ 0, -1, 0 ], [ 1, 0, 0 ], [ 0, 0, 0 ] ], [ [ 0, 0, -1 ], [ 0, 0, 0 ], [ 1, 0, 0 ] ], [ [ 0, 0, 0 ], [ 0, 0, -1 ], [ 0, 1, 0 ] ] ]; alg:=LieAlgebra(Rationals,mats); gap recognizes the algebra as "A1" gap> SemiSimpleType(alg); "A1" but it has trouble with its chevalley basis gap> ChevalleyBasis(alg); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `PositiveRoots' on 1 arguments called fr\ om PositiveRoots( R ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> quit; _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Thu Aug 13 09:41:50 2009 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Thu Aug 13 09:43:29 2009 Subject: [GAP Forum] How to compute a simplified Groebner basis In-Reply-To: <1250146823.7022.15.camel@jason-desktop> References: <1250146823.7022.15.camel@jason-desktop> Message-ID: <20090813084148.GA21697@spms-dima.staff.main.ntu.edu.sg> Dear Jason, there is ReducedGroebnerBasis command, to compute the reduced GB. (at least it is in the current version on GAP, 4.4.12.) As expected, it computes the right thing: gap> ReducedGroebnerBasis( I, ord ); [ y^3-1/2, x ] HTH, Dmitrii On Thu, Aug 13, 2009 at 03:00:23PM +0800, Jason wrote: > Hello, > I am a first time user in GAP, if the following question is dummy, > please execute me: > > I tried to use Buchberger's Algorithm to compute a Groebner basis for an > ideal of a polynomial ring in rational field, here is my GAP script: > > F := Rationals; > R := PolynomialRing( F, [ "x", "y", "z" ]); > x := IndeterminatesOfPolynomialRing(R)[1]; > y := IndeterminatesOfPolynomialRing(R)[2]; > z := IndeterminatesOfPolynomialRing(R)[3]; > I := Ideal (R, [x^2+2*x*y^2, x*y + 2*y^3 - 1]); > ord := MonomialLexOrdering(x,y,z); > > GroebnerBasis( I, ord ); > > but the result is always this: > > [ 2*x*y^2+x^2, 2*y^3+x*y-1, -x, -4*y^4+2*y, 2*y^3-1 ] > > Obviously, the fourth can be completely divided by the last basis, the > first and second can be completely divided by the third basis. The > expected result should be like this: > > [ -x, 2*y^3-1 ] > > So my question is how to get the simplified Groebner basis in GAP ? > > Here is my GAP info: > GAP4, Version: 4.4.10 of 02-Oct-2007, > i486-pc-linux-gnu-i486-linux-gnu-gcc > > > regards, > jason > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Thu Aug 13 15:57:29 2009 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Thu Aug 13 15:58:18 2009 Subject: [GAP Forum] symmetric powers of a character In-Reply-To: <20090813084148.GA21697@spms-dima.staff.main.ntu.edu.sg> References: <1250146823.7022.15.camel@jason-desktop> <20090813084148.GA21697@spms-dima.staff.main.ntu.edu.sg> Message-ID: <20090813145729.GA7156@ntu.edu.sg> Dear Forum, is there a GAP function (or available GAP code) to compute symmetric powers of a complex character? (As far as I understand, such code would require manipulating symmetric functions...) Thanks, Dmitrii From alexander.konovalov at gmail.com Fri Aug 14 16:39:42 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Fri Aug 14 16:40:02 2009 Subject: [GAP Forum] renaming generators of lie algebra In-Reply-To: <333551.41496.qm@web34401.mail.mud.yahoo.com> References: <333551.41496.qm@web34401.mail.mud.yahoo.com> Message-ID: <3BDA3312-B361-4515-88E2-5F8D4D808696@gmail.com> Dear R.N.Tsai, It is not possible to rename generators in this case since they do not have an attribute storing representation (IsAttributeStoringRep), while Name is declared as an attribute: gap> L:=SimpleLieAlgebra("A",1,Rationals);; gap> U:=UniversalEnvelopingAlgebra(L);; gap> g:=GeneratorsOfAlgebraWithOne(U);; gap> IsAttributeStoringRep(g[1]); false To the contrary, L is in IsAttributeStoringRep, and you may assign a name to it: gap> IsAttributeStoringRep(L); true gap> SetName(L,"A"); gap> L; A gap> Name(L); "A" Best wishes, Alexander On 21 Jul 2009, at 02:31, R.N. Tsai wrote: > > Dear gap-forum, > > I'd like to rename the generators of lie algebras and > their universal enveloping algebras. I tried a few things > including this that didn't seem to work. > > gap> L:=SimpleLieAlgebra("A",1,Rationals);; > gap> U:=UniversalEnvelopingAlgebra(L);; > gap> g:=GeneratorsOfAlgebraWithOne(U);; > > gap> g; > [ [(1)*x.1], [(1)*x.2], [(1)*x.3] ] > > gap> SetName(g[1],"MyName"); > (doesn't change the name) > > Thanks, > > R.N. > > > > > > > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From thomas.breuer at math.rwth-aachen.de Fri Aug 14 18:00:14 2009 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Aug 14 18:00:32 2009 Subject: [GAP Forum] symmetric powers of a character In-Reply-To: <20090813145729.GA7156@ntu.edu.sg> References: <1250146823.7022.15.camel@jason-desktop> <20090813084148.GA21697@spms-dima.staff.main.ntu.edu.sg> <20090813145729.GA7156@ntu.edu.sg> Message-ID: <20090814170014.GA855@gemma.math.rwth-aachen.de> Dear GAP Forum, Dima Pasechnik asked > is there a GAP function (or available GAP code) to compute > symmetric powers of a complex character? > (As far as I understand, such code would require manipulating > symmetric functions...) If I understand the question correctly then we are given a positive integer $k$ and a complex character $\chi$ that is afforded by the module $V$, say, and we want to compute the character of the fixed subspace of the $k$-fold tensor power of $V$ w.r.t. the natural action of the symmetric group on $k$ letters (permuting the components of the tensors). The library function `SymmetricParts' can be used for that, see "Symmetrizations of Class Functions" http://www.gap-system.org/Manuals/doc/htm/ref/CHAP070.htm#SECT011 in the GAP Reference Manual. Here is an example. gap> t:= CharacterTable( "A5" ); CharacterTable( "A5" ) gap> chi:= Irr( t )[4]; Character( CharacterTable( "A5" ), [ 4, 0, 1, -1, -1 ] ) gap> List( [ 1 .. 10 ], k -> SymmetricParts( t, [ chi ], k )[1] ); [ Character( CharacterTable( "A5" ), [ 4, 0, 1, -1, -1 ] ), Character( CharacterTable( "A5" ), [ 10, 2, 1, 0, 0 ] ), Character( CharacterTable( "A5" ), [ 20, 0, 2, 0, 0 ] ), Character( CharacterTable( "A5" ), [ 35, 3, 2, 0, 0 ] ), Character( CharacterTable( "A5" ), [ 56, 0, 2, 1, 1 ] ), Character( CharacterTable( "A5" ), [ 84, 4, 3, -1, -1 ] ), Character( CharacterTable( "A5" ), [ 120, 0, 3, 0, 0 ] ), Character( CharacterTable( "A5" ), [ 165, 5, 3, 0, 0 ] ), Character( CharacterTable( "A5" ), [ 220, 0, 4, 0, 0 ] ), Character( CharacterTable( "A5" ), [ 286, 6, 4, 1, 1 ] ) ] For the next version of GAP, I will add a few remarks and index entries, such that it is easier to find what Dima had asked for. All the best, Thomas From ruberman at brandeis.edu Sat Aug 15 18:15:17 2009 From: ruberman at brandeis.edu (Daniel Ruberman) Date: Sat Aug 15 18:15:31 2009 Subject: [GAP Forum] trivializing a group In-Reply-To: <20090813145729.GA7156@ntu.edu.sg> References: <1250146823.7022.15.camel@jason-desktop> <20090813084148.GA21697@spms-dima.staff.main.ntu.edu.sg> <20090813145729.GA7156@ntu.edu.sg> Message-ID: <984C8DF0-31B5-4B8C-A658-3FE1CBD7E8E0@brandeis.edu> Does anyone have any practical advice on showing that a finite presentation that one suspects to be for the trivial group, in fact is the trivial group? The initial presentation of the group (G below) has 8 generators and 18 relations of total length 88. After applying the commands gap> P:=PresentationFpGroup(G); gap> TzGoGo(P); #I there are 4 generators and 14 relators of total length 183 #I there are 4 generators and 14 relators of total length 181 there doesn't seem to be much simplification! Obvious tests, such as AbelianInvariants(G) or running LowIndexSubgroupsFpGroup(G,8); don't distinguish G from the trivial group. Any suggestions would be gratefully accepted; this could of course include calculations doable in GAP or otherwise. Thanks, Daniel Ruberman Department of Mathematics Brandeis University Waltham, MA 02454 http://www.brandeis.edu/~ruberman/ From dima at ntu.edu.sg Sun Aug 16 06:01:08 2009 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Sun Aug 16 06:01:49 2009 Subject: [GAP Forum] trivializing a group In-Reply-To: <984C8DF0-31B5-4B8C-A658-3FE1CBD7E8E0@brandeis.edu> References: <1250146823.7022.15.camel@jason-desktop> <20090813084148.GA21697@spms-dima.staff.main.ntu.edu.sg> <20090813145729.GA7156@ntu.edu.sg> <984C8DF0-31B5-4B8C-A658-3FE1CBD7E8E0@brandeis.edu> Message-ID: <20090816050105.GC14588@ntu.edu.sg> Dear Daniel, did you try coset enumeration? It would eventually terminate if the index is finite, although one cannot give a bound on how long it will run... Usually it works fast, though... See Coset Tables and Coset Enumeration _____________ Finitely Presented Groups in the manual. Hope this helps, Dmitrii On Sun, Aug 16, 2009 at 01:15:17AM +0800, Daniel Ruberman wrote: > Does anyone have any practical advice on showing that a finite > presentation that one suspects to be for the trivial group, in fact is > the trivial group? The initial presentation of the group (G below) > has 8 generators and 18 relations of total length 88. After applying > the commands > gap> P:=PresentationFpGroup(G); > > gap> TzGoGo(P); > #I there are 4 generators and 14 relators of total length 183 > #I there are 4 generators and 14 relators of total length 181 > > there doesn't seem to be much simplification! > > Obvious tests, such as AbelianInvariants(G) or running > LowIndexSubgroupsFpGroup(G,8); > don't distinguish G from the trivial group. > > Any suggestions would be gratefully accepted; this could of course > include calculations doable in GAP or otherwise. > > Thanks, > Daniel Ruberman > > Department of Mathematics > Brandeis University > Waltham, MA 02454 > http://www.brandeis.edu/~ruberman/ > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From NoemieCr at gmx.de Mon Aug 24 12:41:21 2009 From: NoemieCr at gmx.de (NoemieCr@gmx.de) Date: Mon Aug 24 12:41:49 2009 Subject: [GAP Forum] nullvector? Message-ID: <20090824114121.283140@gmx.net> hi, how can i create an null-vector in GAP. is there any function in GAP? my solution: GetNullVector:=function(l) return( 0*[1..l]); end; salute, nasira -- Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 - sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser From alexander.konovalov at gmail.com Mon Aug 24 22:07:07 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon Aug 24 22:07:30 2009 Subject: [GAP Forum] nullvector? In-Reply-To: <20090824114121.283140@gmx.net> References: <20090824114121.283140@gmx.net> Message-ID: Hi Nasira, You may also use the function ListWithIdenticalEntries, for example: gap> ListWithIdenticalEntries(5,0); [ 0, 0, 0, 0, 0 ] best wishes, Alexander On 24 Aug 2009, at 12:41, NoemieCr@gmx.de wrote: > hi, > > how can i create an null-vector in GAP. is there any function in GAP? > > my solution: > > GetNullVector:=function(l) > > return( 0*[1..l]); > > end; > > salute, > nasira > -- > Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla > Firefox 3 - > sicherer, schneller und einfacher! http://portal.gmx.net/de/go/chbrowser > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From NoemieCr at gmx.de Tue Aug 25 10:13:48 2009 From: NoemieCr at gmx.de (Nasira Sindhu) Date: Tue Aug 25 10:14:02 2009 Subject: [GAP Forum] SolutionMat Message-ID: <20090825091348.82760@gmx.net> Hi, is the result of SolutionMat(m, vec) always a trivial solution, when the vector vec is a null vector? I tried to calculate the following form of matrix: m:= [[0,2,-3,0],[3,4,0,-3],[-2,0,-4,2],[0,-2,3,0]]; with the vector: v:= [0,0,0,0]; SolutionMat(m, v) gives me always a null-vector back. But TriangulizeMat(m) shows me that there are more then the trivial soluiton [0,0,0,0]. With TriangulizeMat I get the follwing solution: [1,0,2,-1,0], [0,1,-3/2,0,0],[0,0,0,0,0],[0,0,0,0,0] best regards, Nasira -- Jetzt kostenlos herunterladen: Internet Explorer 8 und Mozilla Firefox 3 - sicherer, schneller und einfacher! http://portal.gmx.net/de/go/atbrowser From rosebrock at ph-karlsruhe.de Sat Aug 15 19:30:21 2009 From: rosebrock at ph-karlsruhe.de (Stephan Rosebrock) Date: Tue Aug 25 11:24:25 2009 Subject: [GAP Forum] trivializing a group In-Reply-To: <984C8DF0-31B5-4B8C-A658-3FE1CBD7E8E0@brandeis.edu> References: <1250146823.7022.15.camel@jason-desktop> <20090813084148.GA21697@spms-dima.staff.main.ntu.edu.sg> <20090813145729.GA7156@ntu.edu.sg> <984C8DF0-31B5-4B8C-A658-3FE1CBD7E8E0@brandeis.edu> Message-ID: <69fb3f9b120aec1122ba056307e7ad49.squirrel@webmail.ph-bw.de> Did you try: Size(G); That should, if it is the trivial group, give you the answer "1". If it isn't, it will not stop running. Since it is not decidable whether a presentation presents the trivial group there is not more you can hope for. Best wishes Stephan Rosebrock Am Sa, 15.08.2009, 19:15, schrieb Daniel Ruberman: > Does anyone have any practical advice on showing that a finite > presentation that one suspects to be for the trivial group, in fact is > the trivial group? The initial presentation of the group (G below) > has 8 generators and 18 relations of total length 88. After applying > the commands > gap> P:=PresentationFpGroup(G); > > gap> TzGoGo(P); > #I there are 4 generators and 14 relators of total length 183 > #I there are 4 generators and 14 relators of total length 181 > > there doesn't seem to be much simplification! > > Obvious tests, such as AbelianInvariants(G) or running > LowIndexSubgroupsFpGroup(G,8); > don't distinguish G from the trivial group. > > Any suggestions would be gratefully accepted; this could of course > include calculations doable in GAP or otherwise. > > Thanks, > Daniel Ruberman > > Department of Mathematics > Brandeis University > Waltham, MA 02454 > http://www.brandeis.edu/~ruberman/ > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > ********************************************************* * Dr. Stephan Rosebrock * * * * Paedagogische Hochschule Karlsruhe * * Bismarckstr. 10 * * 76133 Karlsruhe * * Deutschland / Germany * * * * e-mail: rosebrock@PH-karlsruhe.de * * home page: http://www.rosebrock.ph-karlsruhe.de/ * * * * Tel: 0721-925-4275 * * Fax: 0721-925-4249 * ********************************************************* From hulpke at math.colostate.edu Tue Aug 25 21:09:34 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue Aug 25 21:09:49 2009 Subject: [GAP Forum] SolutionMat In-Reply-To: <20090825091348.82760@gmx.net> References: <20090825091348.82760@gmx.net> Message-ID: Dear Forum, SolutionMat finds only one particular solution. In the current implementation (this is not guaranteed to happen in perpetuity) for homogeneous systems this will be the null vector. To get all solutions, use NullspaceMat to get a basis of the nullspace of the homogeneous system. 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 NoemieCr at gmx.de Thu Aug 27 10:22:55 2009 From: NoemieCr at gmx.de (Nasira Sindhu) Date: Thu Aug 27 10:23:17 2009 Subject: [GAP Forum] representation of GF(x,y) Message-ID: <20090827092255.185470@gmx.net> Hi, I?am trying to understand the represenation of the elments of GF(x,y) in GAP. I need to work with the field F_p^l. F_p^l is isomorph to (Z_p)^l . Is there a way to translate the follwing output into a representation of (Z_p)^l in GAP: gap> Elements(GF(3,2)); [ 0*Z(3), Z(3)^0, Z(3), Z(3^2), Z(3^2)^2, Z(3^2)^3, Z(3^2)^5, Z(3^2)^6, Z(3^2)^7 ] I need tuples to handle with them. Which tuple representation is for example Z(3^2)^2 ? regards, Nasira -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From sal at cs.st-andrews.ac.uk Thu Aug 27 12:08:52 2009 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Thu Aug 27 12:09:09 2009 Subject: [GAP Forum] representation of GF(x,y) In-Reply-To: <20090827092255.185470@gmx.net> References: <20090827092255.185470@gmx.net> Message-ID: The best way to solve your problem is in two steps. First we use the fact that GF(p^r) is a vector space over GF(p) to express elements of GF(p^r) as vectors over GF(p) (losing the multiplicative structure in the process). We do this by taking basis and then using the Coefficients operation. gap> f := GF(3,2); GF(3^2) gap> cb := CanonicalBasis(f); CanonicalBasis( GF(3^2) ) gap> Coefficients(cb,Z(9)^2); [ Z(3)^0, Z(3)^0 ] Now we use the function IntFFE to see the equivalent elements of Z mod pZ. gap> List(last, IntFFE); [ 1, 1 ] gap> if you want to know which basis GAP is using here, you can do: gap> BasisVectors(cb); [ Z(3)^0, Z(3^2) ] You can convert back using the inner product of vectors: gap> [2,1]*last; Z(3^2)^7 I hope this is what you were looking for Steve Linton On 27 Aug 2009, at 10:22, Nasira Sindhu wrote: > Hi, > > I?am trying to understand the represenation of the elments of > GF(x,y) in GAP. > > I need to work with the field F_p^l. F_p^l is isomorph to (Z_p)^l . > Is there a way to translate the follwing output into a > representation of (Z_p)^l in GAP: > > gap> Elements(GF(3,2)); > [ 0*Z(3), Z(3)^0, Z(3), Z(3^2), Z(3^2)^2, Z(3^2)^3, Z(3^2)^5, > Z(3^2)^6, > Z(3^2)^7 ] > > I need tuples to handle with them. > Which tuple representation is for example Z(3^2)^2 ? > > regards, > Nasira > -- > GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! > Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From NoemieCr at gmx.de Wed Sep 9 10:57:34 2009 From: NoemieCr at gmx.de (Nasira Sindhu) Date: Wed Sep 9 10:57:57 2009 Subject: [GAP Forum] OrderMat(m) Message-ID: <20090909095734.113080@gmx.net> Dear Forum, i have a Problem with the function OrderMat. It doenst work on my PC (wind. vista). Should I install an extra Package for this function? I enter the following example (from the manual 34.11): gap> OrderMat( [ [ 0*Z(2), 0*Z(2), Z(2)^0 ], > [ Z(2)^0, Z(2)^0, 0*Z(2) ], > [ Z(2)^0, 0*Z(2), 0*Z(2) ] ] ); but I get : Variable: 'OrderMat' must have a value best regards nasira -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From frank.luebeck at math.rwth-aachen.de Wed Sep 9 12:09:25 2009 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed Sep 9 12:09:55 2009 Subject: [GAP Forum] OrderMat(m) In-Reply-To: <20090909095734.113080@gmx.net> References: <20090909095734.113080@gmx.net> Message-ID: <20090909110925.GC4051@beteigeuze> On Wed, Sep 09, 2009 at 11:57:34AM +0200, Nasira Sindhu wrote: > i have a Problem with the function OrderMat. > It doenst work on my PC (wind. vista). > Should I install an extra Package for this function? > > I enter the following example (from the manual 34.11): > gap> OrderMat( [ [ 0*Z(2), 0*Z(2), Z(2)^0 ], > > [ Z(2)^0, Z(2)^0, 0*Z(2) ], > > [ Z(2)^0, 0*Z(2), 0*Z(2) ] ] ); > > but I get : Variable: 'OrderMat' must have a value Dear Nasira Sindhu, This looks as if you are reading the manual of the older GAP-version 3, while you are trying the command with GAP-version 4. Please, use the documentation that belongs to your GAP installation: http://www.gap-system.org/Doc/manuals.html All of this is also available from your running GAP session, try gap> ?help to learn how to use it. Best regards, Frank Luebeck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From r_n_tsai at yahoo.com Thu Sep 17 06:21:08 2009 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Thu Sep 17 06:21:50 2009 Subject: [GAP Forum] polynomial invariants of weyl groups Message-ID: <600078.93479.qm@web34403.mail.mud.yahoo.com> Dear gap-forum, I'm trying to calculate the polynomial invariants of weyl groups (associated with simple lie algebras over the complex field, in the rep corresponding to the rank of the algebra...). Does anyone know of any existing packages that can help? (CHEVIE has some partial results, but it only runs under gap3). Thanks, R.N. From jmichel at math.jussieu.fr Thu Sep 17 08:27:57 2009 From: jmichel at math.jussieu.fr (Jean MICHEL) Date: Thu Sep 17 08:28:22 2009 Subject: [GAP Forum] polynomial invariants of weyl groups In-Reply-To: <600078.93479.qm@web34403.mail.mud.yahoo.com> References: <600078.93479.qm@web34403.mail.mud.yahoo.com> Message-ID: <20090917072756.GA3640@math.jussieu.fr> Dear R.N. On Wed, Sep 16, 2009 at 10:21:08PM -0700, R.N. Tsai wrote: > I'm trying to calculate the polynomial invariants of weyl groups > (associated with simple lie algebras over the complex field, > in the rep corresponding to the rank of the algebra...). > Does anyone know of any existing packages that can help? > (CHEVIE has some partial results, but it only runs under gap3). Chevie has all cases but E6. It would be probably easy for you to ask the results from Chevie and then transfer them to gap4. You should also get in contact with Gerhard Roerhle (gerhard.roehrle@rub.de) who has perhaps already done that. Best regards, ------------------------------------------------------------------------ Jean MICHEL, Equipe des groupes finis, Institut de Mathematiques UMR7586 Bureau 9D17 tel.(33)144278119, 175, rue du Chevaleret 75013 Paris From ravi.kulk at gmail.com Thu Sep 17 16:13:28 2009 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Thu Sep 17 16:13:50 2009 Subject: [GAP Forum] A test mail Message-ID: <870809660909170813m669dd989o32a621857dd85b7f@mail.gmail.com> Am having trouble subscribing to this mailing list - this is a test... Ravi From ravi.kulk at gmail.com Thu Sep 17 16:25:40 2009 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Thu Sep 17 16:25:53 2009 Subject: [GAP Forum] Accessing information in character tables Message-ID: <870809660909170825m103bb54u7c08268ec4d70e23@mail.gmail.com> I need to calculate det(1-tg) for g in a finite group (say C2 x S4). Is there some way to programatically access the information in the power maps that are displayed with each character table? Right now, I am doing it by hand - printing the table and then looking up the conjugacy class of powers of g manually - but I keep feeling there should be a better way to do it... Any suggestions would be most welcome please... Ravi From thomas.breuer at math.rwth-aachen.de Fri Sep 18 09:41:24 2009 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Fri Sep 18 09:41:39 2009 Subject: [GAP Forum] Accessing information in character tables In-Reply-To: <870809660909170825m103bb54u7c08268ec4d70e23@mail.gmail.com> References: <870809660909170825m103bb54u7c08268ec4d70e23@mail.gmail.com> Message-ID: <20090918084124.GA12289@gemma.math.rwth-aachen.de> Dear GAP Forum, Ravi Kulkarni wrote: > I need to calculate det(1-tg) for g in a finite group (say C2 x S4). > Is there some way to programatically access the information in the > power maps that are > displayed with each character table? > Right now, I am doing it by hand - printing the table and then looking > up the conjugacy class of > powers of g manually - but I keep feeling there should be a better way > to do it... > Any suggestions would be most welcome please... Power maps of a character table can be accessed with `PowerMap', see the GAP Reference Manual (type ?PowerMap in GAP). Concerning the specific question about computing determinants, let G be a group, rho be an ordinary matrix representation of G, chi be the character afforded by rho, t be an indeterminate, and g be an element in G. Then det( rho(1) - t * rho(g) ) can be computed from the values of chi plus the power map information, using that this determinant is the product of ( 1 - t x ) where x ranges over the eigenvalues of rho(g). In GAP, one can use the function `EigenvaluesChar' for computing the multiplicities of the roots of unity in question as eigenvalues; again, see the GAP Reference Manual. Here is an example: 1. Create a small group, take one of its representations, compute class representatives in the image group of the representation, and compute the character. gap> g:= DirectProduct( Group( (1,2) ), SymmetricGroup( 4 ) );; gap> rep:= IrreducibleRepresentations( g )[10];; gap> tbl:= CharacterTable( g );; gap> ccl:= List( ConjugacyClasses( tbl ), c -> Representative( c )^rep );; gap> chi:= List( ccl, Trace ); [ 3, -1, 0, -1, 1, -3, 1, 0, 1, -1 ] 2. Compute the multiplicities of eigenvalues from the character. gap> ev:= List( [ 1 .. Length( chi ) ], > i -> EigenvaluesChar( tbl, chi, i ) ); [ [ 3 ], [ 2, 1 ], [ 1, 1, 1 ], [ 2, 1 ], [ 1, 0, 1, 1 ], [ 3, 0 ], [ 1, 2 ], [ 1, 0, 1, 0, 1, 0 ], [ 1, 2 ], [ 1, 1, 1, 0 ] ] 3. Create an indeterminate. gap> t:= Indeterminate( Rationals, "t" ); t 4. Write a small GAP function that computes the determinant from the eigenvalues data. gap> detfromev:= function( evs, t ) > local det, i; > det:= 1; > for i in [ 1 .. Length( evs ) ] do > det:= det * ( 1 - t * E( Length( evs ) )^i )^evs[i]; > od; > return det; > end;; 5. Compute the determinants. gap> dets:= List( ev, x -> detfromev( x, t ) ); [ -t^3+3*t^2-3*t+1, -t^3-t^2+t+1, -t^3+1, -t^3-t^2+t+1, -t^3+t^2-t+1, t^3+3*t^2+3*t+1, t^3-t^2-t+1, t^3+1, t^3-t^2-t+1, t^3+t^2+t+1 ] 6. Compute the determinants directly from the matrices, in order to check the result. gap> id:= One( ccl[1] ); [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] gap> List( ccl, x -> Determinant( id - x * t ) ) = dets; true All the best, Thomas From zhaxiaolei at gmail.com Mon Sep 21 09:02:26 2009 From: zhaxiaolei at gmail.com (xiaolei zhang) Date: Mon Sep 21 09:02:44 2009 Subject: [GAP Forum] trace of an algebraic element Message-ID: <2ec148ef0909210102k1362938dt1dcb8fc8ad7b8252@mail.gmail.com> hello. I try to calculate the trace of an element, like this: GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> F2:=GF(2); GF(2) gap> x:=X(GF(2), "x"); x gap> F:=AlgebraicExtension(F2, x^2+x+1); gap> r:=RootOfDefiningPolynomial(F); a gap> Trace(r); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `AsDivisionRing' on 2 arguments called ...... I had tried Trace(F4, F2, r) and Trace(F4, r), they didn't work. Thanks. From ravi.kulk at gmail.com Tue Sep 22 02:15:22 2009 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Tue Sep 22 02:15:35 2009 Subject: [GAP Forum] Using Wedderga to compute Primitive Central Idempotents Message-ID: <870809660909211815t4393141cyd4f0193ff2351bac@mail.gmail.com> Dear GAP Forum, I am interested in decomposing the symmetric powers of a representation. To give an example: take the group G := AllSmallGroups(6)[1] acting on V := C^3 (with coordinates x,y,z) as the sum of its 2 dim irrep (X.3) and trivial rep (X.1). When I look at Sym^2(V), I can see using characters that Sym^2(V) decomposes into two 2-dim reps and 2 1-dim reps. A little manipulation by hand shows that the bases are {x^2-y^2, xy}, {xz, yz}, x^2+y^2 and z^2. I thought I should be able to do the same with primitive central idempotents using the Wedderga package. But I find the output confusing: GR := GroupRing(Rationals, G); gap> idempots := PrimitiveCentralIdempotentsByCharacterTable(GR); [ (1/6)* of ...+(1/6)*f1+(1/6)*f2+(1/6)*f1*f2+(1/6)*f2^2+(1/ 6)*f1*f2^2, (1/6)* of ...+(-1/6)*f1+(1/6)*f2+(-1/6)*f1*f2+(1/ 6)*f2^2+(-1/6)*f1*f2^2, (2/3)* of ...+(-1/3)*f2+(-1/3)*f2^2 ] gap> idempots[1]; (1/6)* of ...+(1/6)*f1+(1/6)*f2+(1/6)*f1*f2+(1/6)*f2^2+(1/6)*f1*f2^2 gap> Length(idempots); 3 How do I use this information to get a decomposition like the one I can obviously see above? Any help will be welcome... Ravi From thomas.breuer at math.rwth-aachen.de Tue Sep 29 10:17:27 2009 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Tue Sep 29 10:17:52 2009 Subject: [GAP Forum] trace of an algebraic element In-Reply-To: <2ec148ef0909210102k1362938dt1dcb8fc8ad7b8252@mail.gmail.com> References: <2ec148ef0909210102k1362938dt1dcb8fc8ad7b8252@mail.gmail.com> Message-ID: <20090929091727.GA27799@gemma.math.rwth-aachen.de> Dear GAP Forum, xiaolei zhang wrote > I try to calculate the trace of an element, like this: > > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> F2:=GF(2); > GF(2) > gap> x:=X(GF(2), "x"); > x > gap> F:=AlgebraicExtension(F2, x^2+x+1); > > gap> r:=RootOfDefiningPolynomial(F); > a > gap> Trace(r); > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 1st choice method found for `AsDivisionRing' on 2 arguments > called ...... Thanks for this report. This bug will be fixed in the next version of GAP. For the moment, the code appended below can be used to avoid the error. Simply read it into your GAP session before you start your calculations. All the best, Thomas Breuer ----------------------------------------------------------------------------- # Replace a too general implication by an appropriate one. l:= List( [ IsFieldControlledByGaloisGroup, IsField and IsFinite ], f -> TRUES_FLAGS( FLAGS_FILTER( f ) ) );; for p in Filtered( IMPLICATIONS, p -> l = List( p, TRUES_FLAGS ) ) do p[2]:= FLAGS_FILTER( IsField and IsFFECollection ); od; From jbohanon2 at gmail.com Thu Oct 1 06:12:16 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu Oct 1 06:12:41 2009 Subject: [GAP Forum] A conjugacy question Message-ID: <4AC43A30.8080108@gmail.com> I'm working on a project that requires me to test subgroups of Co1 for conjugacy. The enormous permrep makes the standard backtrack algorithm get very bogged down, so I've had to write several routines to speed things up. One place where I don't get very good speed-up is for groups with trivial solvable radical. I had an idea that I'm not sure if it's mathematically sound. Say that I have two groups H and K. Let C be the centralizer of H and D the centralizer of K. Suppose I can find an element conjugating D to C and I conjugate K by it so that H and K are in the centralizer of C. Is it true that if H and K are conjugate in G, then they are also conjugate in the centralizer of C? Thanks Joe From colva at mcs.st-and.ac.uk Thu Oct 1 10:25:44 2009 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Thu Oct 1 10:26:18 2009 Subject: [GAP Forum] A conjugacy question In-Reply-To: <4AC43A30.8080108@gmail.com> References: <4AC43A30.8080108@gmail.com> Message-ID: Dear Joe > Say that I have two groups H and K. Let C be the centralizer of H > and D the centralizer of K. Suppose I can find an element > conjugating D to C and I conjugate K by it so that H and K are in > the centralizer of C. Is it true that if H and K are conjugate in > G, then they are also conjugate in the centralizer of C? No, but they are conjugate in the normaliser of C (in some common overgroup C). Suppose K^x = H and in particular that k^x = h, and let c \in C. Then ck = kc so c^x k^x = k^x c^x. Hence c^x h = h c^x. This holds for all h \in H, so c^x \in C. Thus x \in N_G(C). Sadly, computing normalisers is nasty! Colva From L.H.Soicher at qmul.ac.uk Fri Oct 2 15:11:32 2009 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Fri Oct 2 15:12:12 2009 Subject: [GAP Forum] DESIGN 1.4 release Message-ID: <20091002141132.GA5849@maths.qmul.ac.uk> Dear GAP-Forum, I am pleased to announce the release of version 1.4 of the DESIGN package for GAP. The DESIGN package is for constructing, classifying, partitioning and studying block designs. DESIGN 1.4 is available from both http://designtheory.org/software/gap_design/ and http://www.gap-system.org/Packages/design.html . If you have not already done so, I strongly recommend that you upgrade GAP to version 4.4.12 and GRAPE to version 4.3, before installing DESIGN 1.4. The main changes from DESIGN 1.3 to DESIGN 1.4 are: - Improved and documented the main features of function SemiLatinSquareDuals, which can be used to classify (n x n)/k semi-Latin squares and SOMA(k,n)s with given properties and small n. - Added the function AGPointFlatBlockDesign, and improved the efficiency of function PGPointFlatBlockDesign. - Made function TDesignLambdas faster, in particular in the case of a point-transitive design, when that design's record includes a known point-transitive subgroup of the design's automorphism group. - Improved the (undocumented) function IsPossiblySBIBD so that TDesignBlockMultiplicityBound now makes full use of the Bruck-Ryser-Chowla Theorem. - Improved the speed of functions TDesignBlockMultiplicityBound and ResolvableTDesignBlockMultiplicityBound when the bounds are large. Regards, Leonard Soicher From trof1984 at rambler.ru Fri Oct 2 20:10:09 2009 From: trof1984 at rambler.ru (Alex Trofimuk) Date: Fri Oct 2 20:10:31 2009 Subject: [GAP Forum] split extensions Message-ID: <605173556.1254510609.62133448.82544@mcgi68.rambler.ru> -- Dear Gap Forum, Alex Trofimuk asked: How to find a split extensions G of group H by group N, i.e. G/N is isomorphic to H? So I define group H: gap> F:=FreeGroup("a","b","c"); gap> a:=F.1;b:=F.2;c:=F.3; a b c gap> rels:=[a*(b*c)^-1,b^3*(a*b*c)^-1,a*b*(c^-1)^3]; [ a*c^-1*b^-1, b^3*c^-1*b^-1*a^-1, a*b*c^-3 ] gap> H:=F/rels; gap> Size(H); 48 So I define group N: N:=ExtraspecialGroup(125,5); Alex Trofimuk. From hulpke at math.colostate.edu Mon Oct 5 23:31:49 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon Oct 5 23:32:09 2009 Subject: [GAP Forum] split extensions In-Reply-To: <605173556.1254510609.62133448.82544@mcgi68.rambler.ru> References: <605173556.1254510609.62133448.82544@mcgi68.rambler.ru> Message-ID: Dear GAP Forum, Alex Trofimuk asked: > How to find a split extensions G of group H by group N, i.e. G/N is > isomorphic to H? As you defined N and H independently, you presumably want to construct a semidirect product. For this, you would have to find a homomorphism from H into the automorphism group of N. Then `SemidirectProduct' will construct the extension (see manual). In your concrete example it turns out that the largest subgroup of Aut (N) which is isomorphic to a factor of H has order 6, so for example the following is a brute-force way to construct such a product: gap> a:=AutomorphismGroup(N); gap> u:=ConjugacyClassesSubgroups(a);; gap> u:=List(u,Representative);; gap> u6:=Filtered(u,x->Size(x)=6); [ , ] gap> GQuotients(H,u6[2]); [ [ a, b, c ] -> [ Pcgs([ f1, f2, f3 ]) -> [ f2^3, f1^2, f3^4 ], [ f1^4*f2^2*f3, f1^2, f3 ] -> Pcgs([ f1, f2, f3 ]), Pcgs([ f1, f2, f3 ]) -> [ f1^4*f2^2*f3, f2, f3^4 ] ] ] gap> hom:=last[1]; [ a, b, c ] -> [ Pcgs([ f1, f2, f3 ]) -> [ f2^3, f1^2, f3^4 ], [ f1^4*f2^2*f3, f1^2, f3 ] -> Pcgs([ f1, f2, f3 ]), Pcgs([ f1, f2, f3 ]) -> [ f1^4*f2^2*f3, f2, f3^4 ] ] (If you know the homomorphism, you would not need to go through all this brute-forcing) gap> sdp:=SemidirectProduct(H,hom,N); gap> Size(sdp); 6000 See the manual for connections between the original groups and the new product. Regards, Alexander Hulpke > > So I define group H: > > gap> F:=FreeGroup("a","b","c"); > > gap> a:=F.1;b:=F.2;c:=F.3; > a > b > c > gap> rels:=[a*(b*c)^-1,b^3*(a*b*c)^-1,a*b*(c^-1)^3]; > [ a*c^-1*b^-1, b^3*c^-1*b^-1*a^-1, a*b*c^-3 ] > gap> H:=F/rels; > > gap> Size(H); > 48 > > So I define group N: > N:=ExtraspecialGroup(125,5); > -- 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 graham.gerrard at googlemail.com Mon Oct 5 16:47:57 2009 From: graham.gerrard at googlemail.com (Graham Gerrard) Date: Tue Oct 6 10:31:33 2009 Subject: [GAP Forum] Representing Clifford Algebras Message-ID: I would like to examine groups associated with Clifford Algebras. Example: aa=1, bb=1, cc=-1, dd=-1, where a,b,c and d anti-commute, hence ba=-ab etc. Generators are easy to specify, so there must be an easy way of generation. Any suggestions? Graham From makai at aeki.kfki.hu Tue Oct 6 09:37:16 2009 From: makai at aeki.kfki.hu (=?iso-8859-2?Q?Makai_Mih=E1ly?=) Date: Tue Oct 6 10:31:36 2009 Subject: [GAP Forum] arXiv:0810.0974 Message-ID: <011778760A5C4B19918A4A981A07FCFE@makaiuj> Dear GAP Forum, We have investigated equispectrality of two structures composed of glued triangles and derived a condition of equispectrality based on the structure of the glued structures. The paper relies on the application of group theory (the adjacency matrix, graph of the structures etc.) and on analysis (Green's functions are used in the proof). If anybody could comment on the manucsript it is welcome. It seems that it is not easy to find a journal where referrees with expertise in analysis and group theory are available. Any suggestion to find a journal for such a manuscript is welcome. The manuscript is available at arXiv, M. Antal and M. Makai: Equispectrality and Transplantation, (math-ph), arXiv:0810.0974 If anybody is interested, we have results in application of group theory to physical problems ranging from iterative process to transplantation of measured values. Best regards **Mih?ly** From graham.gerrard at googlemail.com Tue Oct 6 19:26:01 2009 From: graham.gerrard at googlemail.com (Graham Gerrard) Date: Tue Oct 6 19:26:24 2009 Subject: [GAP Forum] Automorphism groups of homogeneous polynomials Message-ID: Any homogeneous polynomial in n variables has an automorphism group which preserves the polynomial. How do I tackle generation of such a group using GAP? Graham From junior.assis at gmail.com Tue Oct 6 23:01:39 2009 From: junior.assis at gmail.com (Junior Assis) Date: Tue Oct 6 23:02:20 2009 Subject: [GAP Forum] Ring by tables Message-ID: <724004570910061501g6bd1257cu2a4d14d35670a290@mail.gmail.com> Dear Forum, I am a brazilian student and I am beginner in this Forum. I would like to know how can I construct a ring by operation tables. Thanks. Junior Assis. From peter.mayr at jku.at Wed Oct 7 13:24:31 2009 From: peter.mayr at jku.at (Peter Mayr) Date: Wed Oct 7 15:57:10 2009 Subject: [GAP Forum] Ring by tables In-Reply-To: References: <724004570910061501g6bd1257cu2a4d14d35670a290@mail.gmail.com> Message-ID: Dear Junior Assis > I would like to know how can I construct a ring by operation tables. Constructing a ring from tables is a bit awkward but you can use the package SONATA for it. Let's say we want to build the field of size 2. First construct the additive group as a magma from the operation table A (Here i+j := A[i][j]): gap> A := [[1,2],[2,1]];; gap> G := MagmaWithInversesByMultiplicationTable( A ); gap> IsGroup( G ); true Then we attach the multiplicative structure to obtain a near-ring. For this you need to load SONATA. gap> RequirePackage( "sonata" ); We build a binary multiplication function mult on G from the multiplication table M. Note that the order of the elements of G in elmlist has to correspond to the order of rows and columns in the tables A and in M. gap> M := [[1,1],[1,2]];; gap> elmlist := List( [1..Size(G)], i -> MagmaElement( G, i ) ); [ m1, m2 ] gap> mult := NearRingMultiplicationByOperationTable( G, M, elmlist ); function( x, y ) ... end Finally we construct a near-ring R whose additive group is isomorphic to G and whose multiplication is given by mult. gap> R := ExplicitMultiplicationNearRing( G, mult ); ExplicitMultiplicationNearRing ( , multiplication ) R forms the field of size 2. However, because of its construction R is not in the GAP-category of rings but in that of near-rings (A left near-ring differs from a ring in that addition is not necessarily commutative and only the left distributive law is required). gap> IsRing( R ); false gap> IsDistributiveNearRing( R ); true Consequently not all GAP-functions for rings can be applied to R. Please see the SONATA-manual for the methods that are available for near-rings. Hope this helps, Peter -- Peter Mayr CAUL Lisbon, Portugal From hulpke at math.colostate.edu Wed Oct 7 18:54:31 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed Oct 7 18:54:47 2009 Subject: [GAP Forum] Automorphism groups of homogeneous polynomials In-Reply-To: References: Message-ID: Dear Graham Gerrard, dear Gap-forum, On Oct 6, 2009, at 10/6/09 12:26, Graham Gerrard wrote: > Any homogeneous polynomial in n variables has an automorphism group > which > preserves the polynomial. > > How do I tackle generation of such a group using GAP? If your n is small (say up to 12 or probably 15), you could compute the automorphism group immediately as stabilizer. In your example (you mailed privately): r:=PolynomialRing(Rationals,8); inds:=IndeterminatesOfPolynomialRing(r); a:=inds[1]; b:=inds[2]; c:=inds[3]; d:=inds[4]; e:=inds[5]; f:=inds[6]; g:=inds[7]; h:=inds[8]; s:=SymmetricGroup(Length(inds)); pol:= a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d+e*e*e*e+f*f*f*f+g*g*g*g+h*h*h*h -2 *a *a *b *b -2 *a *a *c *c -2 *a *a *d *d -2 *c *c *f *f -2 *d *d *f *f -2 *e *e *f*f-2*b*b*g*g-2*d*d*g*g-2*e*e*g*g-2*b*b*h*h-2*c*c*h*h-2*e*e*h*h -8*a*b*e*f-8*a*c*e*g-8*a*d*e*h +2*b*b*c*c+2*b*b*d*d+2*c*c*d*d +2*a*a*e*e+2*b*b*e*e+2*c*c*e*e+2*d*d*e*e+2*a*a*f*f+2*b*b*f*f+2*a*a*g*g +2*c*c*g*g+2*f*f*g*g+2*a*a*h*h+2*d*d*h*h+2*f*f*h*h+2*g*g*h*h +8*b*c*f*g+8*b*d*f*h+8*c*d*g*h; gap> u:=Stabilizer(s,pol,OnIndeterminates); Group([ (1,5)(2,6)(3,7)(4,8), (1,5)(2,6)(3,8)(4,7), (1,5)(2,7)(3,6) (4,8) ]) gap> Size(u); 12 However this is a naive orbit/stabilizer computation whose cost will grow with n! and you probably won't be able to go much further. If you can find a partition condition for the indeterminate which would let you work in a wreath product instead, this would let you go further. In general,translating to a graph problem, and using nauty (via the GRAPE package) is the way to go. 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 junior.assis at gmail.com Tue Oct 13 13:20:10 2009 From: junior.assis at gmail.com (Junior Assis) Date: Tue Oct 13 13:20:49 2009 Subject: [GAP Forum] Ring by tables In-Reply-To: References: <724004570910061501g6bd1257cu2a4d14d35670a290@mail.gmail.com> Message-ID: <724004570910130520g328b6bdbl926074bd4a6975c9@mail.gmail.com> Thank you very much, Peter. It was helpful. Now I have another question: Can I construct a structure like I define the nearrings by tables, but using semigroups instead of groups?? Thanks again. Junior Assis. On Wed, Oct 7, 2009 at 9:24 AM, Peter Mayr wrote: > Dear Junior Assis > > > I would like to know how can I construct a ring by operation tables. > > Constructing a ring from tables is a bit awkward but you can use the > package SONATA for it. > Let's say we want to build the field of size 2. First construct the > additive group as a magma from the operation table A (Here i+j := > A[i][j]): > > gap> A := [[1,2],[2,1]];; > gap> G := MagmaWithInversesByMultiplicationTable( A ); > > gap> IsGroup( G ); > true > > Then we attach the multiplicative structure to obtain a near-ring. For > this you need to load SONATA. > > gap> RequirePackage( "sonata" ); > > We build a binary multiplication function mult on G from the > multiplication table M. Note that the order of the elements of G in > elmlist has to correspond to the order of rows and columns in the > tables A and in M. > > gap> M := [[1,1],[1,2]];; > gap> elmlist := List( [1..Size(G)], i -> MagmaElement( G, i ) ); > [ m1, m2 ] > gap> mult := NearRingMultiplicationByOperationTable( G, M, elmlist ); > function( x, y ) ... end > > Finally we construct a near-ring R whose additive group is isomorphic > to G and whose multiplication is given by mult. > > gap> R := ExplicitMultiplicationNearRing( G, mult ); > ExplicitMultiplicationNearRing ( 2 generators> , multiplication ) > > R forms the field of size 2. However, because of its construction R is > not in the GAP-category of rings but in that of near-rings (A left > near-ring differs from a ring in that addition is not necessarily > commutative and only the left distributive law is required). > > gap> IsRing( R ); > false > gap> IsDistributiveNearRing( R ); > true > > Consequently not all GAP-functions for rings can be applied to R. > Please see the SONATA-manual for the methods that are available for > near-rings. > > Hope this helps, > Peter > > -- > Peter Mayr > CAUL > Lisbon, Portugal > From ravi.kulk at gmail.com Sun Oct 18 07:19:52 2009 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Sun Oct 18 07:20:13 2009 Subject: [GAP Forum] Working with symmetric powers of a linear transformation Message-ID: <870809660910172319p7d41d57eia983a95c4f282927@mail.gmail.com> Dear GAP Forum, Given a linear transformation on a vector space V with basis {x,y,z}, I need to calculate the matrix of the induced linear transformation on the symmetric powers of V. In the code below, GSym1 gives the action of the (generators of the) group G on {x,y,z}. GSym2 represents the induced action of G on the second symmetric power of V. a := Sqrt(3); F := Field(a); m1 := [ [-1/2,-a/2,0],[a/2,-1/2,0],[0,0,1] ];; m2 := [ [-1,0,0],[0,1,0],[0,0,1] ];; G := Group(m1,m2);; R := PolynomialRing(Rationals,3);; inds := IndeterminatesOfPolynomialRing(R);; x := inds[1];; y := inds[2];; z := inds[3];; Sym1 := [x,y,z]; Sym2 := [x^2,x*y,x*z,y^2,y*z,z^2]; GSym1 := List([m1,m2], g -> g*Sym1); GSym2 := List(GSym1, r -> List(Sym2, a -> Value(a,Sym1,r))); What I would now like to have is the 6x6 matrix that represents the action of G with respect to the basis Sym2. (i.e. the coefficients of the elements of Sym2 in GSym2). By hand, this is: m1_6 := [ [1/4, -a/4,0,3/4,0,0], [a/2,-1/2,0,-a/2,0,0], [0,0,-1/2,0,a/2,0], [3/4,a/4,0,1/4,0,0], [0,0,-a/2,0,-1/2,0], [0,0,0,0,0,1] ]; m2_6 := [ [1,0,0,0,0,0], [0,-1,0,0,0,0], [0,0,-1,0,0,0], [0,0,0,1,0,0], [0,0,0,0,1,0], [0,0,0,0,0,1] ]; One would obviously not want to do this by hand for larger symmetric powers. Is there a GAP function that will extract the matrix of the induced transformation as above? Thanks, Ravi From laurent.bartholdi at gmail.com Sun Oct 18 14:31:18 2009 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Sun Oct 18 14:32:00 2009 Subject: [GAP Forum] Re: Working with symmetric powers of a linear transformation In-Reply-To: <870809660910172319p7d41d57eia983a95c4f282927@mail.gmail.com> References: <870809660910172319p7d41d57eia983a95c4f282927@mail.gmail.com> Message-ID: <1ff637850910180631p41134d2fx3ad9bd20cade030a@mail.gmail.com> Dear Ravi: What you're looking for is the coefficients of GSym2[i][j] in the basis GSym2. Do the following: Sym2V := VectorSpace(F,Sym2); m1_6 := List(GSym2[1],x->Coefficients(Basis(Sym2V),x)); m2_6 := List(GSym2[2],x->Coefficients(Basis(Sym2V),x)); (or shorter: m_6 := List(GSym2,m->List(m,x->Coefficients(Basis(Sym2V),x))); ) Note that the answer will not be represented using a, but using E(12), a twelvth root of unity. Cheers, Laurent On Sun, Oct 18, 2009 at 8:19 AM, Ravi Kulkarni wrote: > Dear GAP Forum, > > Given a linear transformation on a vector space V with basis {x,y,z}, > I need to calculate the matrix of the induced linear transformation on > the symmetric powers of V. In the code below, GSym1 gives the action > of the (generators of the) group G on {x,y,z}. GSym2 represents the > induced action of G on the second symmetric power of V. > > a := Sqrt(3); > F := Field(a); > > m1 := [ [-1/2,-a/2,0],[a/2,-1/2,0],[0,0,1] ];; > m2 := [ [-1,0,0],[0,1,0],[0,0,1] ];; > G := Group(m1,m2);; > > R := PolynomialRing(Rationals,3);; > inds := IndeterminatesOfPolynomialRing(R);; > x := inds[1];; y := inds[2];; z := inds[3];; > > Sym1 := [x,y,z]; > Sym2 := [x^2,x*y,x*z,y^2,y*z,z^2]; > > GSym1 := List([m1,m2], g -> g*Sym1); > GSym2 := List(GSym1, r -> List(Sym2, a -> Value(a,Sym1,r))); > > What I would now like to have is the 6x6 matrix that represents the > action of G with respect to the basis Sym2. (i.e. the coefficients of > the elements of Sym2 in GSym2). By hand, this is: > > m1_6 := [ [1/4, -a/4,0,3/4,0,0], > ? ? ? ? ?[a/2,-1/2,0,-a/2,0,0], > ? ? ? ? ?[0,0,-1/2,0,a/2,0], > ? ? ? ? ?[3/4,a/4,0,1/4,0,0], > ? ? ? ? ?[0,0,-a/2,0,-1/2,0], > ? ? ? ? ?[0,0,0,0,0,1] ]; > > m2_6 := [ [1,0,0,0,0,0], > ? ? ? ? ?[0,-1,0,0,0,0], > ? ? ? ? ?[0,0,-1,0,0,0], > ? ? ? ? ?[0,0,0,1,0,0], > ? ? ? ? ?[0,0,0,0,1,0], > ? ? ? ? ?[0,0,0,0,0,1] ]; > > One would obviously not want to do this by hand for larger symmetric > powers. Is there a GAP function that will extract the matrix of the > induced transformation as above? > > Thanks, > ?Ravi > -- Prof. Dr. Laurent Bartholdi \ laurent.bartholdigmailcom G.-A. Universit?t zu G?ttingen \ Phone: +49 551 39 7826 Bunsenstra?e 3-5 \ Secr: +49 551 39 7752 D-37073 G?ttingen, Germany \ Fax: +49 551 39 22674 Sent from Gottingen, NI, Germany From dima at ntu.edu.sg Mon Oct 19 09:01:39 2009 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Mon Oct 19 09:02:34 2009 Subject: [GAP Support] Re: [GAP Forum] Using Wedderga to compute Primitive Central Idempotents In-Reply-To: <870809660910182333w17057bd1m7de26be6880b9116@mail.gmail.com> References: <870809660909211815t4393141cyd4f0193ff2351bac@mail.gmail.com> <20090928050813.GA27253@ntu.edu.sg> <870809660909272353t158c1bd1g562dff0e351186c0@mail.gmail.com> <20090928073029.GA30267@ntu.edu.sg> <870809660909280418r69044ae7p88561866f350bba5@mail.gmail.com> <870809660910182333w17057bd1m7de26be6880b9116@mail.gmail.com> Message-ID: <20091019080137.GA13690@ntu.edu.sg> Dear Ravi, What you can certainly do is to use CoefficientsAndMagmaElements to get the list of matrices and coefficients, and then to sum over this list. E.g. (after running your code) gap> id2:=CoefficientsAndMagmaElements(idempots[5]);; gap> coefs:=List([1..Length(id2)/2],i->id2[2*i]);; gap> mats:=List([1..Length(id2)/2],i->id2[2*i-1]);; gap> Sum(List([1..Length(coefs)],i->coefs[i]*mats[i])); [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] (actually, all the other 4 idempotents are 0 on this representation) I gather that this way will not be very efficient, if you work with groups of order more than few hundred, as constructing the group algebra will get too expensive. So computing with conjugacy classes directly, as I proposed, might be a better way to go. Best, Dmitrii On Mon, Oct 19, 2009 at 02:33:50PM +0800, Ravi Kulkarni wrote: > Dear Dmitrii, > You will remember that I was interested in using Wedderga to > decompose representations. I have basically done what I wanted to do, > but I have an elementary question about GAP: > When I call > > idempots := PrimitiveCentralIdempotentsByCharacterTable(GR); > > I get back a list of the idempotents. I have specified the group as > a matrix group, so idempots contains a list of objects: > > gap> TypeObj(idempots[1]); > NewType( NewFamily( "FreeMagmaRingObjFamily"... > > However I want to cast each of the idempots as a _matrix_ to > complete my calculations. How do I do that? > What I have done right now is to copy the idempotents, define them > as a matrix and everything works..., but that's obviously a dumb way > to do it... > I have pasted the few lines of code below. > > Regards, > Ravi Kulkarni > > RequirePackage("wedderga"); > > m1 := [ [0,1,0],[-1,0,0],[0,0,1] ];; > m2 := [ [0,1,0],[0,0,1],[1,0,0] ];; > O := Group(m1,m2);; # one of the two 3-dim irrep of S_4 > > R := PolynomialRing(Rationals,3);; > inds := IndeterminatesOfPolynomialRing(R);; > x := inds[1];; y := inds[2];; z := inds[3];; > > # define the symmetric powers > Sym1 := [x,y,z]; > > GR := GroupRing(Rationals, O); > idempots := PrimitiveCentralIdempotentsByCharacterTable(GR); > > # calculate idempots[1]*Sym1; > > ------------------------------------------------------------------------------------------ > ------------------------------------------------------------------------------------------ > > On Mon, Sep 28, 2009 at 4:48 PM, Ravi Kulkarni wrote: > > Dear Dmitrii, > > That was just what I was looking for. Everything seems to be working now... > > > > Many thanks and regards, > > Ravi Kulkarni > > ------------------------------------- > > > > On Mon, Sep 28, 2009 at 12:30 AM, Dima Pasechnik wrote: > >> Dear Ravi, > >> > >> certainly, there are effcient GAP functions to compute conjugacy > >> classes. Look up GAP documentation for ConjugacyClasses and > >> ConjugacyClass. > >> > >> Hope this helps, > >> Dmitrii > >> > >> On Mon, Sep 28, 2009 at 02:53:55PM +0800, Ravi Kulkarni wrote: > >>> Dear Dima, > >>> Thank you for the mail. Yes, I know the parts of Serre's book that > >>> you mentioned. > >>> If I can have one question answered, I think I can do my computations: > >>> I know how to generate all the matrices of a representation (which > >>> need not be one of the irreducible representations of the groups). My > >>> problem is then deciding which conjugacy class each one of them > >>> belongs to. You will see that this is essential because I need to > >>> multiply each element by the character of the class it belongs to. > >>> I cannot find a GAP function that does this. Before writing my own > >>> code to solve the conjugacy class membership problem, I thought I > >>> should ask if this is a standard algorithm. > >>> With regards and thanks, > >>> > >>> Ravi > >>> ----------------------------------------------------- > >>> > >>> On Sun, Sep 27, 2009 at 10:08 PM, Dima Pasechnik wrote: > >>> > Dear Ravi, > >>> > > >>> > a standard method to decompose a representation of a finite group G > >>> > into homogeneous components C_\chi > >>> > (each component will be a sum of a copies of the same irreducible > >>> > representation with the character \chi) > >>> > is by using the conjugacy class sums, s_g=sum_{y in g^G}y, for > >>> > G^g={xgx^{-1}|x in G}. > >>> > Projector to C_\chi will be given as a linear combination of s_g's with > >>> > coefficients depending on the values of \chi on y in g^G. > >>> > You can find the corresponding formulae in e.g. the Serre's book > >>> > "Linear representations of finite groups". > >>> > You will need explicit matrices of the representation > >>> > you want to decompose. > >>> > For small groups/representations this works quite well. I have written > >>> > some GAP code that does this for permutation representations (there you > >>> > can be a bit more efficient when computing s_g). > >>> > > >>> > Just in case, > >>> > Dmitrii > >>> > > >>> >> > >>> >> On 22 Sep 2009, at 02:15, Ravi Kulkarni wrote: > >>> >> > >>> >> > Dear GAP Forum, > >>> >> > I am interested in decomposing the symmetric powers of a > >>> >> > representation. To give an example: take the group G := > >>> >> > AllSmallGroups(6)[1] acting on V := C^3 (with coordinates x,y,z) as > >>> >> > the sum of its 2 dim irrep (X.3) and trivial rep (X.1). > >>> >> > When I look at Sym^2(V), I can see using characters that Sym^2(V) > >>> >> > decomposes into two 2-dim reps and 2 1-dim reps. A little manipulation > >>> >> > by hand shows that the bases are {x^2-y^2, xy}, {xz, yz}, x^2+y^2 and > >>> >> > z^2. I thought I should be able to do the same with primitive central > >>> >> > idempotents using the Wedderga package. But I find the output > >>> >> > confusing: > >>> >> > > >>> >> > GR := GroupRing(Rationals, G); > >>> >> > gap> idempots := PrimitiveCentralIdempotentsByCharacterTable(GR); > >>> >> > [ (1/6)* of ...+(1/6)*f1+(1/6)*f2+(1/6)*f1*f2+(1/6)*f2^2+(1/ > >>> >> > 6)*f1*f2^2, (1/6)* of ...+(-1/6)*f1+(1/6)*f2+ > >>> >> > (-1/6)*f1*f2+(1/ > >>> >> > 6)*f2^2+(-1/6)*f1*f2^2, (2/3)* of ...+(-1/3)*f2+ > >>> >> > (-1/3)*f2^2 ] > >>> >> > > >>> >> > gap> idempots[1]; > >>> >> > (1/6)* of ... > >>> >> > +(1/6)*f1+(1/6)*f2+(1/6)*f1*f2+(1/6)*f2^2+(1/6)*f1*f2^2 > >>> >> > > >>> >> > gap> Length(idempots); > >>> >> > 3 > >>> >> > > >>> >> > How do I use this information to get a decomposition like the one I > >>> >> > can obviously see above? Any help will be welcome... > >>> >> > > >>> >> > Ravi > >>> >> > > >>> >> > _______________________________________________ > >>> >> > Forum mailing list > >>> >> > Forum@mail.gap-system.org > >>> >> > http://mail.gap-system.org/mailman/listinfo/forum > >>> >> > >>> >> > >>> >> -- > >>> >> Dr. Alexander Konovalov School of Computer Science > >>> >> & Centre for Interdisciplinary Research in Computational Algebra > >>> >> University of St Andrews Tel +44/0 (1334) 461633 > >>> >> http://www.cs.st-andrews.ac.uk/~alexk Fax +44/0 (1334) 463278 > >>> >> The University of St Andrews is a charity registered in > >>> >> Scotland:No.SC013532 > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > >>> >> _______________________________________________ > >>> >> Support mailing list > >>> >> Support@gap-system.org > >>> >> http://mail.gap-system.org/mailman/listinfo/support > >>> > > >> > > CONFIDENTIALITY: This email is intended solely for the person(s) named. The contents may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us, and do not copy or use it, nor disclose its contents. Thank you. Towards A Sustainable Earth: Print Only When Necessary From blekit at gmail.com Tue Oct 20 23:03:15 2009 From: blekit at gmail.com (=?ISO-8859-2?Q?Micha=B3_Olejnik?=) Date: Tue Oct 20 23:03:36 2009 Subject: [GAP Forum] Checking whether given number is an algebraic number of degree N Message-ID: <686087cc0910201503j43d09ca9kccc601c5b4c6655d@mail.gmail.com> Hello, I'm a beginner to GAP, so forgive me if my question is trivial. I would like to know if there is an easy way in GAP to write a function which will check wheter passed number is an algebraic number of degree N. Is something like that available in GAP or one of the extending packages? Thanks in advance. Best regards, Micha? Olejnik From Bill.Allombert at math.u-bordeaux1.fr Wed Oct 21 23:11:08 2009 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Wed Oct 21 23:11:31 2009 Subject: [GAP Forum] Checking whether given number is an algebraic number of degree N In-Reply-To: <686087cc0910201503j43d09ca9kccc601c5b4c6655d@mail.gmail.com> References: <686087cc0910201503j43d09ca9kccc601c5b4c6655d@mail.gmail.com> Message-ID: <20091021221107.GC5746@yellowpig> On Wed, Oct 21, 2009 at 12:03:15AM +0200, Micha? Olejnik wrote: > Hello, > > I'm a beginner to GAP, so forgive me if my question is trivial. > > I would like to know if there is an easy way in GAP to write a function > which will check wheter passed number is an algebraic number of degree N. Is > something like that available in GAP or one of the extending packages? How do you input your number ? GAP has no floating point numbers, so in that case it is probably simpler to use the algdep function of PARI/GP, for example: ? algdep(cos(2*Pi/7),3) %1 = 8*x^3 + 4*x^2 - 4*x - 1 Now, GAP has LLL, so it is possible to write an algdep routine for numbers given by a rational approximation (which is what floating points numbers are anyway) in GAP: Algdep:= function(x,n,prec) local M,p,q,Q,qerr; p:=NumeratorRat(x); q:=DenominatorRat(x); Q:=q^(n-1); qerr:=1/(q*prec); M:=IdentityMat(n+1); M[n+1]:=List([0..n],e->EuclideanQuotient(p^e*q^(n-e),Q)*qerr); return LLLReducedBasis(TransposedMat(M),"linearcomb").transformation[1]; end; Algdep(x,n,prec) is looking for a polynomial of degree <=n whose root alpha verify |alpha-x| Hello GAP Forum, I thought it would be useful to have a function that generates a basis for the space of symmetric polynomials in the ring k[x_1,x_2,..,x_n]. Here is some simple code that does the job. The code is implemented only for k[x,y,z] right now, but changing it to any number of variables is straightforward. The code is not the most efficient possible certainly, but it works... Ravi ##################################################################### # symPol(k) ############# # symPol(k) will return a basis for the space of symmetric polynomials # of degree k in three variables x,y,z # WARNING: It is assumed that x,y,z exist in the environment! # Do this first, before invoking symPol: # gap> R := PolynomialRing(Rationals,3);; # gap> inds := IndeterminatesOfPolynomialRing(R);; # gap> x := inds[1];; y := inds[2];; z := inds[3];; ############# symPol := function(k) local lis1, i, j, outlist, outpolist; lis1 := Tuples([0..k],3); # am interested in C^3 only # now only retain those elements of lis1 whose sum equals k outlist := ""; for i in [1..Length(lis1)] do if Sum(lis1[i]) = k then Add(outlist, lis1[i]); fi; od; outpolist := ""; for j in [1..Length(outlist)] do Add(outpolist,x^(outlist[j][1])*y^(outlist[j][2])*z^(outlist[j][3])); od; return Reversed(outpolist); end; ##################################################################### From lotomano at gmail.com Mon Oct 26 13:46:51 2009 From: lotomano at gmail.com (Robson eduardo Assis) Date: Mon Oct 26 13:47:17 2009 Subject: [GAP Forum] use GAP as programing language! Message-ID: <3537d0c40910260646o78441dbat9ee5eedbdd6bef32@mail.gmail.com> Hi! I am a very new GAP user and i wanna use it as the folowing: 1) I write source forges using a text editor whithout any prompt of GAP. 2) In the prompt of GAP I excecute the content of this file and take the results to other file. 3) I'll create a program in c plus plus to convert this results in LATEX and then to PDF. the my questions are about using text files ".g" and rediretion of output or files. The manual don't answered my question! Thank for the patience! Robson Eduardo From e.j.postma+gap at gmail.com Mon Oct 26 14:31:53 2009 From: e.j.postma+gap at gmail.com (Erik Postma) Date: Mon Oct 26 14:32:13 2009 Subject: [GAP Forum] use GAP as programing language! In-Reply-To: <3537d0c40910260646o78441dbat9ee5eedbdd6bef32@mail.gmail.com> References: <3537d0c40910260646o78441dbat9ee5eedbdd6bef32@mail.gmail.com> Message-ID: 2009/10/26 Robson eduardo Assis : > Hi! I am a very new GAP user and i wanna use it as the folowing: > 1) I write source forges using a text editor whithout any prompt of GAP. > 2) In the prompt of GAP I excecute the content of this file and take the > results to > other file. > 3) I'll create a program in c plus plus to convert this results in LATEX and > then to PDF. > > the my questions are about using text files ".g" and rediretion of output or > files. The manual don't answered my question! > Thank for the patience! > Robson Eduardo Hi Robson, A simple way to achieve this is to use the input and output redirection features of your shell, and GAP's -q option. You don't write which OS you use, but on any Unix-alike, something like this should work: epostma@ubuntu64ma293:~/tmp % cat a.g f := (1,2,3); g := f^2; epostma@ubuntu64ma293:~/tmp % gap -q < a.g > b.out epostma@ubuntu64ma293:~/tmp % cat b.out (1,2,3) (1,3,2) Hope this helps, Erik Postma. From ljj198123 at 126.com Mon Oct 26 15:14:02 2009 From: ljj198123 at 126.com (=?gbk?B?wfW9qL78?=) Date: Mon Oct 26 15:14:23 2009 Subject: [GAP Forum] A question Message-ID: <6347949.525751256570042029.JavaMail.coremail@bj126app44.126.com> RGVhciBmb3J1bSwKSSBoYXZlIHdyaXR0ZW4gYSBzaW1wbGUgR0FQIHByb2dyYW1tZSBhcyBmb2xs b3dzOgogCkE6PUFsbFNtYWxsR3JvdXBzKFNpemUsWzEuLjIwXSk7CmZvciBpIGluIFsxLi5TaXpl KEEpXSBkbwpHOj1BW2ldOwpmOj1GYWN0b3JzSW50KFNpemUoRykpOwpGOj1VbmlvbihmLGYpOwpm b3IgcCBpbiBGIGRvClA6PVN5bG93U3ViZ3JvdXAoRyxwKTsKb2Q7Cm9kOwp0aGUgZm9sbG93aW5n IGVycm9yIGlzIHByb2R1Y2VkOgpFcnJvciwgU3lsb3dTdWJncm91cDogPHA+IG11c3QgYmUgYSBw cmltZSBjYWxsZWQgZnJvbQo8Y29tcGlsZWQgb3IgY29ycnVwdGVkIGNhbGwgdmFsdWU+ICBjYWxs ZWQgZnJvbQpTeWxvd1N1Ymdyb3VwKCBHLCBwICkgY2FsbGVkIGZyb20KPGZ1bmN0aW9uPiggPGFy Z3VtZW50cz4gKSBjYWxsZWQgZnJvbSByZWFkLWV2YWwtbG9vcApFbnRlcmluZyBicmVhayByZWFk LWV2YWwtcHJpbnQgbG9vcCAuLi4KeW91IGNhbiAncXVpdDsnIHRvIHF1aXQgdG8gb3V0ZXIgbG9v cCwgb3IKeW91IGNhbiAncmV0dXJuOycgdG8gY29udGludWUKYnJrPgpJZiB3ZSByZXBsYWNlICJB Oj1BbGxTbWFsbEdyb3VwcyhTaXplLFsxLi4yMF0pIiBieSAKIkE6PUFsbFNtYWxsR3JvdXBzKFNp emUsWzEuLjIwXSxJc1NvbHZhYmxlLGZhbHNlKSIsIHRoZW4gdGhpcyBlcnJvciBkb2Vzbid0IGFw cGVhci4KIApJIGNhbiBub3QgZmluZCB0aGUgcmVhc29uLiBIb3cgY2FuIEkgdXNlIHRoZSBhdHRy aWJ1dGUgIlN5bG93U3ViZ3JvdXAoRyxwKSIgd2hlbiBHIGlzIHNvbHZhYmxlPwpCZXN0IFdpc2hl cy4KSmlhbmp1biBMaXUKCiA=From jbohanon2 at gmail.com Mon Oct 26 15:27:39 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Mon Oct 26 15:28:01 2009 Subject: [GAP Forum] A question In-Reply-To: <6347949.525751256570042029.JavaMail.coremail@bj126app44.126.com> References: <6347949.525751256570042029.JavaMail.coremail@bj126app44.126.com> Message-ID: <4AE5BFEB.1060601@gmail.com> It doesn't work because the first group, the trivial group has order 1 and "FactorsInt" returns "[1]". All the rest of the positive integers return what you want. Change [1..20] to [2..20]. Your program is also not going to output the Sylow subgroups as they are done within a "for" loop. I would recommend adding a line like Sylows:=[]; above the first "for" loop, Sylow:=[]; above the second "for" loop, then Add(Sylow,P); in the second "for" loop, and Append(Sylows,Sylow); in between the "od" statements. As for why the code worked when you restricted the size from [1..20] it's because first off you are removing the group of order 1, and second because the smallest non-solvable group has order 60 so it's an empty list. Joe Áõ½¨¾ü wrote: > Dear forum, > I have written a simple GAP programme as follows: > > A:=AllSmallGroups(Size,[1..20]); > for i in [1..Size(A)] do > G:=A[i]; > f:=FactorsInt(Size(G)); > F:=Union(f,f); > for p in F do > P:=SylowSubgroup(G,p); > od; > od; > the following error is produced: > Error, SylowSubgroup:

must be a prime called from > called from > SylowSubgroup( G, p ) called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > If we replace "A:=AllSmallGroups(Size,[1..20])" by > "A:=AllSmallGroups(Size,[1..20],IsSolvable,false)", then this error doesn't appear. > > I can not find the reason. How can I use the attribute "SylowSubgroup(G,p)" when G is solvable? > Best Wishes. > Jianjun Liu > > > ------------------------------------------------------------------------ > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From resteban at mat.upv.es Mon Oct 26 16:01:36 2009 From: resteban at mat.upv.es (Ramon Esteban-Romero) Date: Mon Oct 26 16:02:15 2009 Subject: [GAP Forum] A question In-Reply-To: <6347949.525751256570042029.JavaMail.coremail@bj126app44.126.com> References: <6347949.525751256570042029.JavaMail.coremail@bj126app44.126.com> Message-ID: <20091026160136.GA29167@mat.upv.es> Dear Jianjun, This error is happening because of the factorisation of the order of the group of order 1. FactorsInt(1) returns [1] and obviously 1 cannot be a prime dividing the order of a group. If you change [1..20] by [2..20] in the first you do not get the error. You do not get the problem when you add "IsSolvable, false" because the first non-solvable group has order 60. All the best, -- Ramon Clau p?blica PGP/Llave p?blica PGP/Clef publique PGP/PGP public key: http://www.rediris.es/cert/servicios/keyserver/ http://ttt.upv.es/~resteban/resteban.pgp Tel?fon/tel?fono/t?l?phone/phone: (+34)963877007 ext. 76676 * ??? [091026 16:56]: > Dear forum, > I have written a simple GAP programme as follows: > > A:=AllSmallGroups(Size,[1..20]); > for i in [1..Size(A)] do > G:=A[i]; > f:=FactorsInt(Size(G)); > F:=Union(f,f); > for p in F do > P:=SylowSubgroup(G,p); > od; > od; > the following error is produced: > Error, SylowSubgroup:

must be a prime called from > called from > SylowSubgroup( G, p ) called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can 'return;' to continue > brk> > If we replace "A:=AllSmallGroups(Size,[1..20])" by > "A:=AllSmallGroups(Size,[1..20],IsSolvable,false)", then this error doesn't appear. > > I can not find the reason. How can I use the attribute "SylowSubgroup(G,p)" when G is solvable? > Best Wishes. > Jianjun Liu > > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From gabar at mai.liu.se Wed Oct 28 19:43:21 2009 From: gabar at mai.liu.se (Gabriel Bartolini) Date: Wed Oct 28 19:44:13 2009 Subject: [GAP Forum] Loading Packages Message-ID: Dear GAP forum I'm trying to load the genus package but can't get it to work. The package files are stored in "Desktop/gap/" and I start GAP with "gap -l '/home/temp/Desktop/gap/;/usr/local/gap4r4'" with no success. Any suggestions? /Gabriel From alexander.konovalov at gmail.com Wed Oct 28 21:41:16 2009 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Wed Oct 28 21:41:35 2009 Subject: [GAP Forum] Loading Packages In-Reply-To: References: Message-ID: Dear Gabriel, Could you please clarify which package do you mean, since GAP site doesn't distribute a package called 'genus'. What exactly the error message is? Does the problem persist if you will unpack the package in the /usr/local/gap4r4/pkg/ or in /home/temp/Desktop/gap/ pkg/ ? Are all package dependencies stated in the PackageInfo.g file satisfied? Hope this will help to locate the problem. Best wishes, Alexander On 28 Oct 2009, at 19:43, Gabriel Bartolini wrote: > Dear GAP forum > > I'm trying to load the genus package but can't get it to work. > The package files are stored in "Desktop/gap/" and I start GAP with > > "gap -l '/home/temp/Desktop/gap/;/usr/local/gap4r4'" > > with no success. Any suggestions? > > /Gabriel > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sal at cs.st-andrews.ac.uk Wed Oct 28 22:07:11 2009 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Wed Oct 28 22:07:55 2009 Subject: [GAP Forum] Loading Packages In-Reply-To: References: Message-ID: Your genus package should be in ~/Desktop/gap/pkg/genus for the command line you give to work correctly. Did you forget the pkg directory? Steve On 28 Oct 2009, at 19:43, Gabriel Bartolini wrote: > Dear GAP forum > > I'm trying to load the genus package but can't get it to work. > The package files are stored in "Desktop/gap/" and I start GAP with > > "gap -l '/home/temp/Desktop/gap/;/usr/local/gap4r4'" > > with no success. Any suggestions? > > /Gabriel > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ravi.kulk at gmail.com Sat Oct 31 13:26:37 2009 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Sat Oct 31 13:27:00 2009 Subject: [GAP Forum] Computing image of a homomorphism Message-ID: <870809660910310626s126909eeu38db2d2122f4de3b@mail.gmail.com> Dear GAP Forum, I need to calculate the image of a homomorphism of a matrix group: gap> m1 := [ [0,1,0],[-1,0,0],[0,0,1] ];; gap> m2 := [ [0,1,0],[0,0,1],[1,0,0] ];; gap> O := Group(m1,m2);; # one of the two 3-dim irrep of SymmetricGroup(4) (S_4) # compute the five conjugacy classes and combine them into one list # skip some code... gap> ccall := Concatenation(cc1,cc2,cc3,cc4,cc5); I want to calculate the matrices corresponding to the two dimensional irrep of S_4. Call this W. Examining the character table (and some computation) shows that W is a representation of the quotient of S_4 by the group generated by the elements of the fifth conjugacy class (which has character 2 in the W representation). gap> H := Group(cc5);; gap> IsNormal(O,H); true gap> OmodH := FactorGroup(O,H); Group([ f1, f2^2 ]) gap> hom := NaturalHomomorphismByNormalSubgroup(O,H); CompositionMapping( [ (1,2,6,5), (1,2,3)(4,6,5) ] -> [ f1, f2^2 ], ) Compute the images of elements of O: gap> imghom := List([1..Size(O)], i -> Image(hom,ccall[i])); [ of ..., f1*f2, f1*f2, f1*f2^2, f1*f2^2, f1, f1, f2^2, f2, f2, f2^2, f2, f2^2, f2, f2^2, f1, f1, f1*f2, f1*f2, f1*f2^2, f1*f2^2, of ..., of ..., of ... ] Now, what I would like to have are the 2x2 matrices corresponding to each of the elements of "imghom". I can guess what f1 and f2 are in this example, but would be wary of doing so for a larger group. Is there a systematic way of getting the matrices f1 and f2? Thanks, Ravi From ivmog84 at gmail.com Wed Nov 4 06:12:40 2009 From: ivmog84 at gmail.com (=?KOI8-R?B?7c/HyczYztnIIOnXwc4g4NLYxdfJ3g==?=) Date: Wed Nov 4 06:13:11 2009 Subject: [GAP Forum] Creating all subgroups of SymmetricGroup Message-ID: Hello, GAP forum! Can I create the set(list/ record) of all subgroups (preferebly nonisomorphic) of a Symmetric Group on 9 elements - Sym(9)? There is a function IntermediateSubgroup(G,U) which creates all subgroups "between"G and U. But this record contains additional information and GAP is working too slow while trying to create it. Can I boost it somehow? Ivan From ravi.kulk at gmail.com Wed Nov 4 06:14:23 2009 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Wed Nov 4 06:14:39 2009 Subject: [GAP Forum] Re: Computing image of a homomorphism In-Reply-To: <870809660910310626s126909eeu38db2d2122f4de3b@mail.gmail.com> References: <870809660910310626s126909eeu38db2d2122f4de3b@mail.gmail.com> Message-ID: <870809660911032214q57a2cf26q161de219e942a77d@mail.gmail.com> Dear J"urgen, I mailed a query to the GAP Forum a few days ago, but have not received any reply. Is it possible for you to look at this? Ravi Kulkarni On Sat, Oct 31, 2009 at 6:56 PM, Ravi Kulkarni wrote: > Dear GAP Forum, > ?I need to calculate the image of a homomorphism of a matrix group: > > gap> m1 := [ [0,1,0],[-1,0,0],[0,0,1] ];; > gap> m2 := [ [0,1,0],[0,0,1],[1,0,0] ];; > gap> O := Group(m1,m2);; # one of the two 3-dim irrep of SymmetricGroup(4) (S_4) > > # compute the five conjugacy classes and combine them into one list > # skip some code... > gap> ccall := Concatenation(cc1,cc2,cc3,cc4,cc5); > > I want to calculate the matrices corresponding to the two dimensional > irrep of S_4. Call this W. Examining the character table (and some > computation) shows that W is a representation of the quotient of S_4 > by the group generated by the elements of the fifth conjugacy class > (which has character 2 in the W representation). > > gap> H := Group(cc5);; > gap> IsNormal(O,H); > true > > gap> OmodH := FactorGroup(O,H); > Group([ f1, f2^2 ]) > > gap> hom := NaturalHomomorphismByNormalSubgroup(O,H); > CompositionMapping( [ (1,2,6,5), (1,2,3)(4,6,5) ] -> > [ f1, f2^2 ], ) > > Compute the images of elements of O: > > gap> imghom := List([1..Size(O)], i -> Image(hom,ccall[i])); > [ of ..., f1*f2, f1*f2, f1*f2^2, f1*f2^2, f1, f1, f2^2, f2, f2, > ?f2^2, f2, f2^2, f2, f2^2, f1, f1, f1*f2, f1*f2, f1*f2^2, f1*f2^2, > ? of ..., of ..., of ... ] > > Now, what I would like to have are the 2x2 matrices corresponding to > each of the elements of "imghom". I can guess what f1 and f2 are in > this example, but would be wary of doing so for a larger group. > > Is there a systematic way of getting the matrices f1 and f2? > > Thanks, > ?Ravi > From jbohanon2 at gmail.com Wed Nov 4 06:20:51 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Wed Nov 4 06:21:14 2009 Subject: [GAP Forum] Creating all subgroups of SymmetricGroup In-Reply-To: References: Message-ID: All that you're looking for is stored in the table of marks library. tom:=TableOfMarks("S9"); n:=Size(SubsTom(tom)); reps:=List([1..n],i->RepresentativeTom(tom,i)); This only gives one representative per conjugacy class. I'd warn you that there are 1,694,723 subgroups in all. Also, FYI, the TOM library goes up to S12. Joe 2009/11/4 ????????? ???? ??????? > Hello, GAP forum! > Can I create the set(list/ record) of all subgroups (preferebly > nonisomorphic) of a Symmetric Group on 9 elements - Sym(9)? > There is a function IntermediateSubgroup(G,U) which creates all subgroups > "between"G and U. > But this record contains additional information and GAP is working too slow > while trying to create it. > Can I boost it somehow? > > Ivan > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From mckay at encs.concordia.ca Wed Nov 4 10:11:09 2009 From: mckay at encs.concordia.ca (MCKAY john) Date: Wed Nov 4 10:11:38 2009 Subject: [GAP Forum] Creating all subgroups of SymmetricGroup In-Reply-To: References: Message-ID: There Are lists of transitive groups of degrees up to ?31 in Conway, Hulpke, McKay J. of Computation and Mathemaics, London Math Soc. Earlier -- covering your needs is G.Butler - J.McKay for degree up to 11 (transitive). in Communications in ALgebra. John McKay == On Wed, 4 Nov 2009, [KOI8-R] ????????? ???? ??????? wrote: > Hello, GAP forum! > Can I create the set(list/ record) of all subgroups (preferebly > nonisomorphic) of a Symmetric Group on 9 elements - Sym(9)? > There is a function IntermediateSubgroup(G,U) which creates all subgroups > "between"G and U. > But this record contains additional information and GAP is working too slow > while trying to create it. > Can I boost it somehow? > > Ivan > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From frank.luebeck at math.rwth-aachen.de Wed Nov 4 14:17:22 2009 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed Nov 4 14:17:47 2009 Subject: [GAP Forum] Computing image of a homomorphism In-Reply-To: <870809660910310626s126909eeu38db2d2122f4de3b@mail.gmail.com> References: <870809660910310626s126909eeu38db2d2122f4de3b@mail.gmail.com> Message-ID: <20091104141722.GD15734@beteigeuze> Dear Ravi Kulkarni, dear Forum, In general it is not easy to construct from one matrix representation of a group the other ones. But if the group and the degree of the representation you are interested in are not too big there is a chance that GAP can compute representing matrices for a given character. See the functions 'IrreducibleRepresentations', 'IrreducibleRepresentationsDixon' and the functions in the 'repsn' package. Below is an example GAP session without further comments. These examples together with the GAP help system should get you started. (The given representation for your group O is not needed, it would be more efficient to start with S4 as permutation group.) Best regards, Frank Luebeck gap> m1 := [ [0,1,0],[-1,0,0],[0,0,1] ];; gap> m2 := [ [0,1,0],[0,0,1],[1,0,0] ];; gap> O := Group(m1,m2);; gap> cl := ConjugacyClasses(O);; gap> pos := PositionProperty(cl, c-> Size(c) = 3); 5 gap> Irr(O); [ Character( CharacterTable( Group( [ [ [ 0, 1, 0 ], [ -1, 0, 0 ], [ 0, 0, 1 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]) ), [ 1, 1, 1, 1, 1 ] ), Character( CharacterTable( Group( [ [ [ 0, 1, 0 ], [ -1, 0, 0 ], [ 0, 0, 1 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]) ), [ 1, -1, 1, -1, 1 ] ), Character( CharacterTable( Group( [ [ [ 0, 1, 0 ], [ -1, 0, 0 ], [ 0, 0, 1 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]) ), [ 2, 0, -1, 0, 2 ] ), Character( CharacterTable( Group( [ [ [ 0, 1, 0 ], [ -1, 0, 0 ], [ 0, 0, 1 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]) ), [ 3, 1, 0, -1, -1 ] ), Character( CharacterTable( Group( [ [ [ 0, 1, 0 ], [ -1, 0, 0 ], [ 0, 0, 1 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ]) ), [ 3, -1, 0, 1, -1 ] ) ] gap> List(cl, c-> TraceMat(Representative(c))); [ 3, -1, 0, 1, -1 ] gap> allreps := IrreducibleRepresentations(O); [ CompositionMapping( [ (1,6)(2,4)(3,5), (1,4,5)(2,6,3), (2,5)(3,4), (1,6)(2,5) ] -> [ [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], ), CompositionMapping( [ (1,6)(2,4)(3,5), (1,4,5)(2,6,3), (2,5)(3,4), (1,6)(2,5) ] -> [ [ [ -1 ] ], [ [ 1 ] ], [ [ 1 ] ], [ [ 1 ] ] ], ), CompositionMapping( [ (1,6)(2,4)(3,5), (1,4,5)(2,6,3), (2,5)(3,4), (1,6)(2,5) ] -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3), 0 ], [ 0, E(3)^2 ] ], [ [ 1, 0 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 0, 1 ] ] ], ) , CompositionMapping( [ (1,6)(2,4)(3,5), (1,4,5)(2,6,3), (2,5)(3,4), (1,6)(2,5) ] -> [ [ [ 0, 0, 1 ], [ 0, 1, 0 ], [ 1, 0, 0 ] ], [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ], [ [ -1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, -1 ] ], [ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ] ], ), CompositionMapping( [ (1,6)(2,4)(3,5), (1,4,5)(2,6,3), (2,5)(3,4), (1,6)(2,5) ] -> [ [ [ 0, 0, -1 ], [ 0, -1, 0 ], [ -1, 0, 0 ] ], [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ], [ [ -1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, -1 ] ], [ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, -1 ] ] ], ) ] gap> rep2 := IrreducibleRepresentationsDixon(O, Irr(O)[2]); CompositionMapping( [ (1,2,6,5), (1,2,3)(4,6,5) ] -> [ [ [ -1 ] ], [ [ 1 ] ] ], ) gap> H := Group(Elements(cl[pos])); gap> OmodH := FactorGroup(O,H); Group([ f1, f2^2 ]) gap> repsmodH := IrreducibleRepresentations(OmodH); [ Pcgs([ f1, f2 ]) -> [ [ [ 1 ] ], [ [ 1 ] ] ], Pcgs([ f1, f2 ]) -> [ [ [ -1 ] ], [ [ 1 ] ] ], Pcgs([ f1, f2 ]) -> [ [ [ 0, 1 ], [ 1, 0 ] ], [ [ E(3), 0 ], [ 0, E(3)^2 ] ] ] ] gap> LoadPackage("repsn"); true gap> rep2x := IrreducibleAffordingRepresentation(Irr(O)[2]); CompositionMapping( [ (1,2,6,5), (1,2,3)(4,6,5) ] -> [ [ [ -1 ] ], [ [ 1 ] ] ], ) Instead of computing with the matrix group O it would be more efficient to compute with a permutation group. So, just use g := SymmetricGroup(4) instead of O, or use g := Image(IsomorphismPermGroup(O)). -- /// 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 hulpke at math.colostate.edu Wed Nov 4 16:54:35 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed Nov 4 16:55:07 2009 Subject: [GAP Forum] Creating all subgroups of SymmetricGroup In-Reply-To: References: Message-ID: Dear GAP forum, Ivan Jurevitch asked: > Can I create the set(list/ record) of all subgroups (preferebly > nonisomorphic) of a Symmetric Group on 9 elements - Sym(9)? > There is a function IntermediateSubgroup(G,U) which creates all > subgroups > "between"G and U. `IntermediateSubgroups' is intended for the case that U is nontrivial and you don't want to get the full lattice. It likely is very inefficient for getting all subgroups. The command Flat(List(ConjugacyClassesSubgroups(G),Elements)); creates a list of all subgroups. I doubt you would want to have this list for S9 (which has 1694723 subgroups in 554 classes) -- you probably will be happy with class representatives as obtained from ConjugactyClassesSubgroups. Also see questions 7.6 and 7.7 of the FAQ at http://www.gap-system.org/Faq/Computing/computing.html 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 ravi.kulk at gmail.com Sat Nov 7 16:37:39 2009 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Sat Nov 7 16:37:59 2009 Subject: [GAP Forum] Choosing the right Field... Message-ID: <870809660911070837if4eb914s948ad8e4fc56907@mail.gmail.com> Dear GAP Forum, I am decomposing representations of finite groups and I find that I need to keep track of the field the characters (or eigenvalues) take values in. If I start with R := PolynomialRing(Rationals,3);; I find that I should really have done F := Field(Sqrt(3), E(4));; R := PolynomialRing(F,3);; instead, to get a nice decomposition in some example. Is there some way to do this automatically without explicitly examining the eigenvalues/characters first? (And I think I now see why everybody tells me to work with permutation groups instead of matrix representations - I think those decompose over the Rationals only...) But I still would like to have a solution to my problem above... :) Thanks Ravi From hulpke at math.colostate.edu Wed Nov 11 18:27:43 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 11 Nov 2009 11:27:43 -0700 Subject: [GAP Forum] Choosing the right Field... In-Reply-To: <870809660911070837if4eb914s948ad8e4fc56907@mail.gmail.com> References: <870809660911070837if4eb914s948ad8e4fc56907@mail.gmail.com> Message-ID: Dear GAP Forum, Ravi Kulkarni write: > If I start with > > R := PolynomialRing(Rationals,3);; > > I find that I should really have done > > F := Field(Sqrt(3), E(4));; > R := PolynomialRing(F,3);; > > instead, to get a nice decomposition in some example. As far as creating polynomials is concernded, actually all polynomials created for the rationals, or any other subfield of the cyclotomic numbers live over the cyclotomics, i.e. you can just multiply them with cyclotomic numbers. > Is there some way to do this automatically without explicitly > examining the eigenvalues/characters first? I'm not sure what you mean by ``automatically''? If you just have polynomials you will have to investigate the roots. Are you asking for the smallest field of definition for all irreducible representations? (E.g. there is a theorem of Brauer stating that all character values will lie in Q(zeta) where zeta is an e-th root of unity for e the exponent of the finite group). > (And I think I now see why everybody tells me to work with > permutation groups instead of matrix representations - I think those > decompose over the Rationals only...) Clearly not -- the regular representation e.g. contains all irreducibles. Regards, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From lenny at math.uga.edu Fri Nov 13 19:33:12 2009 From: lenny at math.uga.edu (lenny) Date: Fri, 13 Nov 2009 14:33:12 -0500 Subject: [GAP Forum] Presentation for L(6,2) Message-ID: <4AFDB478.1040609@math.uga.edu> Dear Forum: The Atlas has presentations for L(5,2) and L(7,2), but none for L(4,2) or L(6,2). Gap can fing one for L(4,2), but my computer runs out of memmory when trying to find onw for L(6,2). Is one known? Lenny Chastkofsky From dima at ntu.edu.sg Sat Nov 14 04:38:11 2009 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Sat, 14 Nov 2009 12:38:11 +0800 Subject: [GAP Forum] Presentation for L(6,2) In-Reply-To: <4AFDB478.1040609@math.uga.edu> References: <4AFDB478.1040609@math.uga.edu> Message-ID: <20091114043809.GA6933@spms-dima.staff.main.ntu.edu.sg> Dear Lenny, "maximal parabolic" presentations for all classical groups were given by Chevalley and Tits (my attribution is from memory, so can be a bit off) In the case of L(n,2), such a presentation is in terms of generators of the form Eij, i<>j, where is Eij a matrix with 1 at the entry (i,j) and on the main diagonal, 0 elsewhere. More precisely, you only need to take Eij with i, and the relations arising from describing the action of each Eij, j=i-1 on B (i.e. of the form Eij Epq Eij=X(i,p,q), X(i,p,q) an element of B). Finally, add relations Eij^2=1. The result is a (faithful) presentation for L(n,2). Hope this helps, Dmitrii On Sat, Nov 14, 2009 at 03:33:12AM +0800, lenny wrote: > Dear Forum: > > The Atlas has presentations for L(5,2) and L(7,2), > but none for L(4,2) or L(6,2). Gap can fing one for L(4,2), > but my computer runs out of memmory when trying to find onw for L(6,2). > Is one known? > > Lenny Chastkofsky > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named. The contents may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us, and do not copy or use it, nor disclose its contents. Thank you. Towards A Sustainable Earth: Print Only When Necessary From akos at math.ohio-state.edu Sun Nov 15 19:32:16 2009 From: akos at math.ohio-state.edu (akos at math.ohio-state.edu) Date: Sun, 15 Nov 2009 14:32:16 -0500 (EST) Subject: [GAP Forum] conference announcement for March 21-25, 2010, Columbus, Ohio Message-ID: <57215.99.5.250.138.1258313536.squirrel@www.math.ohio-state.edu> Conference Announcement Combinatorics, Groups, Algorithms, and Complexity Conference in honor of Laci Babai's 60th birthday March 21-25, 2010 (Sunday - Thursday) The Ohio State University, Columbus, Ohio http://www.babai60.org Organizers: Akos Seress (Ohio State U) and Mario Szegedy (Rutgers) The meeting will highlight interconnections between the areas in the title. Confirmed speakers include Miklos Abert, Peter J. Cameron, John Dixon, Harald Helfgott, William Kantor, Alex Lubotzky, Eugene Luks, Peter P. Palfy, Cheryl Praeger, Laszlo Pyber, Aner Shalev; they will be joined by combinatorists and theoretical computer scientists, including Alexander Razborov. Please check the website for further details: www.babai60.org . Students and junior researchers are especially encouraged to attend; some financial assistance is available. From aker at gursey.gov.tr Mon Nov 16 15:17:24 2009 From: aker at gursey.gov.tr (aker at gursey.gov.tr) Date: Mon, 16 Nov 2009 17:17:24 +0200 Subject: [GAP Forum] Elements in Wreath Products Message-ID: <20091116171724.ulyw2n41xc40o848@roksan.gursey.gov.tr> Hi, I have two questions. Question (1): ------------- Gi := Dihedral(8); n := 3; S_n := SymmetricGroup( n ); G := WreathProduct( Gi, S_n ); x := One(G); x![1] := 3; This code runs... When I look at back the identity of the wreath product G, then it is really not the identity. I don't know what ! means. Does this allow me to change an immutable object such as One(G) ? Question (2): ------------- How can I create elements inside the wreath product ? Thanks a lot, Kursat ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From hulpke at math.colostate.edu Mon Nov 16 17:00:27 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 16 Nov 2009 10:00:27 -0700 Subject: [GAP Forum] Elements in Wreath Products In-Reply-To: <20091116171724.ulyw2n41xc40o848@roksan.gursey.gov.tr> References: <20091116171724.ulyw2n41xc40o848@roksan.gursey.gov.tr> Message-ID: Dear GAP-forum, Dear Kursat Aker, > Gi := Dihedral(8); > n := 3;S_n := SymmetricGroup( n ); > G := WreathProduct( Gi, S_n ); > x := One(G); > x![1] := 3; This access to internal components, while not technically prohibited, is not advisable. - The internal structures are not documented and not guaranteed to stay fixed between versions - doing so is very representation dependent. If you use instead DihedralGroup(IsPermGroup,8) this kind of access will not work. - Finally, modifying internal components of objects is likely to lead to the system to become seriously confused. > > I don't know what ! means. Does this allow me to change an immutable object such > as One(G) ? Yes -- this access is apparently possible for these particular objects, but the existing code assumes that nothing like this would happen. Basically after such an assignment the group created is broken. > Question (2): > ------------- > > How can I create elements inside the wreath product ? The proper way to create elements (independent of the representation) is to use homomorphisms: E.g. for elements a,b,c in D8 and d in Sn create the element (a,b,c;d) in the wreath product use: emb:=List([1..4],x->Embedding(G,x));; Image(emb[1],a)*Image(emb[2],b)*Image(emb[3],c)*Image(emb[4],d); You can similarly use these homomorphisms (and the one returned by Projection(G)) to decompose, using PreImagesRepresentative (after dividing off the S3-part). Regards, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From aker at gursey.gov.tr Tue Nov 17 08:32:33 2009 From: aker at gursey.gov.tr (aker at gursey.gov.tr) Date: Tue, 17 Nov 2009 10:32:33 +0200 Subject: [GAP Forum] Gap Emacs mode Message-ID: <20091117103233.096rran91wss4o00@roksan.gursey.gov.tr> Hello, I am using Emacs mode for Gap. The only way I know to send the file I work to gap-mode is C-u M-x gap This sends the whole file to gap-mode and executes it. I have used Maple via an emacs mode which I have got from http://www.mapleprimes.com/blog/joe-riel/emacs-mode-for-maple In this Maple mode, it was possible to send a single line to maple mode, a region, or a function, or buffer etc. Among the features were highlighting... Does the emacs mode for gap do these? Or, does anyone have his version of these features? Thanks a lot, kursat ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From nikos.ap at gmail.com Tue Nov 17 12:32:49 2009 From: nikos.ap at gmail.com (Nikos Apostolakis) Date: Tue, 17 Nov 2009 07:32:49 -0500 Subject: [GAP Forum] Gap Emacs mode In-Reply-To: <20091117103233.096rran91wss4o00@roksan.gursey.gov.tr> Message-ID: <87r5rxtjpq.fsf@knotter.earthlink.net> On Tue, Nov 17, 2009 at 10:32:33AM +0200, thus spake aker at gursey.gov.tr: > Hello, > > I am using Emacs mode for Gap. > > The only way I know to send the file I work to gap-mode is > > C-u M-x gap > > This sends the whole file to gap-mode and executes it. > > I have used Maple via an emacs mode which I have got from > > http://www.mapleprimes.com/blog/joe-riel/emacs-mode-for-maple > > In this Maple mode, it was possible to send a single line to maple mode, > a region, or a function, or buffer etc. Among the features were > highlighting... > > Does the emacs mode for gap do these? > No. I think that a modern gap mode that has these features would be a great idea. > Or, does anyone have his version of these features? > Well, I use the following hack. I'm not exactly an elisp expert so I'm sure there is a better way of doing this but you may find the following useful: -- 8< -------- Begin Elisp code (defun nea-send-string-to-gap (string) "Send the the string to an already running gap process. The output is displayed in the process' buffer." (interactive "sString to send to GAP (Include final \`;\')") (set-process-filter (get-process "gap") 'gap-output-filter) (save-window-excursion (set-buffer "*gap*") (goto-char (point-max)) (process-send-string "gap" (concat string "\n")))) ;; The name of the temp file should probably be randomly chosen. ;;; Haven't really used this command much. (defun nea-send-region-to-gap-as-file (begin end) "Have GAP read the contents of the region as a file." (interactive "r") (let ((temp-gap-file "/tmp/tmp.gap")) (write-region begin end temp-gap-file) (send-string-to-gap-normally (concat "Read(\"" temp-gap-file "\");\n")))) (defun nea-send-region-to-gap (begin end &optional arg) "Send region to gap." (interactive "r\nP") (let ((string (buffer-substring begin end))) (save-window-excursion (set-buffer "*gap*") (goto-char (point-max)) (send-string-to-gap string arg)))) (defun nea-send-line-to-gap (&optional arg) "Send current line to GAP." (interactive "P") (send-region-to-gap (line-beginning-position) (line-end-position) arg)) (defun nea-get-last-gap-output () "Scrap the last output from the gap buffer" (interactive) (save-excursion (set-buffer "*gap*") (let ((pt (point)) (pmark (progn (goto-char (process-mark (get-buffer-process "*gap*"))) (forward-line 0) (point-marker))) output) (goto-char pmark) (search-backward-regexp gap-prompt-regexp nil t) (forward-line 1) (setq output (buffer-substring-no-properties (point) pmark)) (goto-char pt) output))) ;; The following is an example of how to use nea-get-last-gap-output (defun nea-ins-gap () "Insert the last output in buffer." (interactive) (end-of-line) (let ((string (nea-get-last-gap-output))) (if (string-match " ." (nea-get-last-gap-output)) (setq string (format "\n#==>\n %s;\n#<==" string)) (setq string (format " #==> %s" string ))) (insert string))) ;; I use the following key bindings: (define-key gap-mode-map "\C-c\C-s" 'nea-send-string-to-gap) (define-key gap-mode-map "\C-c\C-l" 'nea-send-line-to-gap) (define-key gap-mode-map "\C-c\C-r" 'nea-send-region-to-gap) (define-key gap-mode-map "\C-c\C-f" 'nea-send-region-to-gap-as-file) (define-key gap-mode-map "\C-ci" 'nea-ins-gap) -- 8< -------- End Elisp code > Thanks a lot, > > kursat From aker at gursey.gov.tr Tue Nov 17 13:30:02 2009 From: aker at gursey.gov.tr (aker at gursey.gov.tr) Date: Tue, 17 Nov 2009 15:30:02 +0200 Subject: [GAP Forum] Gap Emacs mode In-Reply-To: <87r5rxtjpq.fsf@knotter.earthlink.net> References: <87r5rxtjpq.fsf@knotter.earthlink.net> Message-ID: <20091117153002.wkytr72pwkwcs044@roksan.gursey.gov.tr> Hello, Thanks for the code. I would definitely benefit from an emacs mode for GAP with more functionality. The code is not fully working, unfortunately. I think you have some other related code, which it is looking for. I have added your code to gap-mode.el. When I tried it, this is what happened: I have tried these command with these key bindings. The first and the last worked properly. > (define-key gap-mode-map "\C-c\C-s" 'nea-send-string-to-gap) > (define-key gap-mode-map "\C-c\C-l" 'nea-send-line-to-gap) > (define-key gap-mode-map "\C-c\C-r" 'nea-send-region-to-gap) > (define-key gap-mode-map "\C-c\C-f" 'nea-send-region-to-gap-as-file) > (define-key gap-mode-map "\C-ci" 'nea-ins-gap) For 2,3,4, I got the following error messages (with the same order). ;nea-send-line-to-gap: Symbol's function definition is void: send-region-to-gap ;Symbol's function definition is void: send-string-to-gap ;nea-send-region-to-gap-as-file: Symbol's function definition is void: send-string-to-gap-normally I guess I am missing some functions here. If I have them, I think it will work fine. Thanks a lot, this was really helpful, kursat Quoting Nikos Apostolakis : > > On Tue, Nov 17, 2009 at 10:32:33AM +0200, thus spake aker at gursey.gov.tr: >> Hello, >> >> I am using Emacs mode for Gap. >> >> The only way I know to send the file I work to gap-mode is >> >> C-u M-x gap >> >> This sends the whole file to gap-mode and executes it. >> >> I have used Maple via an emacs mode which I have got from >> >> http://www.mapleprimes.com/blog/joe-riel/emacs-mode-for-maple >> >> In this Maple mode, it was possible to send a single line to maple mode, >> a region, or a function, or buffer etc. Among the features were >> highlighting... >> >> Does the emacs mode for gap do these? >> > > No. I think that a modern gap mode that has these features would be a > great idea. > >> Or, does anyone have his version of these features? >> > > > Well, I use the following hack. I'm not exactly an elisp expert so I'm sure > there is a better way of doing this but you may find the following useful: > > -- 8< -------- Begin Elisp code > > (defun nea-send-string-to-gap (string) > "Send the the string to an already running gap process. The output is > displayed in the process' buffer." > (interactive "sString to send to GAP (Include final \`;\')") > (set-process-filter (get-process "gap") 'gap-output-filter) > (save-window-excursion > (set-buffer "*gap*") > (goto-char (point-max)) > (process-send-string "gap" (concat string "\n")))) > > > ;; The name of the temp file should probably be randomly chosen. > ;;; Haven't really used this command much. > (defun nea-send-region-to-gap-as-file (begin end) > "Have GAP read the contents of the region as a file." > (interactive "r") > (let ((temp-gap-file "/tmp/tmp.gap")) > (write-region begin end temp-gap-file) > (send-string-to-gap-normally (concat "Read(\"" temp-gap-file "\");\n")))) > > > (defun nea-send-region-to-gap (begin end &optional arg) > "Send region to gap." > (interactive "r\nP") > (let ((string (buffer-substring begin end))) > (save-window-excursion > (set-buffer "*gap*") > (goto-char (point-max)) > (send-string-to-gap string arg)))) > > > (defun nea-send-line-to-gap (&optional arg) > "Send current line to GAP." > (interactive "P") > (send-region-to-gap (line-beginning-position) (line-end-position) arg)) > > > (defun nea-get-last-gap-output () > "Scrap the last output from the gap buffer" > (interactive) > (save-excursion > (set-buffer "*gap*") > (let ((pt (point)) > (pmark (progn (goto-char (process-mark (get-buffer-process "*gap*"))) > (forward-line 0) > (point-marker))) > output) > (goto-char pmark) > (search-backward-regexp gap-prompt-regexp nil t) > (forward-line 1) > (setq output (buffer-substring-no-properties > (point) pmark)) > (goto-char pt) > output))) > > > > ;; The following is an example of how to use nea-get-last-gap-output > (defun nea-ins-gap () > "Insert the last output in buffer." > (interactive) > (end-of-line) > (let ((string (nea-get-last-gap-output))) > (if (string-match " > ." (nea-get-last-gap-output)) > (setq string (format "\n#==>\n %s;\n#<==" string)) > (setq string (format " #==> %s" string ))) > (insert string))) > > > ;; I use the following key bindings: > > (define-key gap-mode-map "\C-c\C-s" 'nea-send-string-to-gap) > (define-key gap-mode-map "\C-c\C-l" 'nea-send-line-to-gap) > (define-key gap-mode-map "\C-c\C-r" 'nea-send-region-to-gap) > (define-key gap-mode-map "\C-c\C-f" 'nea-send-region-to-gap-as-file) > (define-key gap-mode-map "\C-ci" 'nea-ins-gap) > > -- 8< -------- End Elisp code > >> Thanks a lot, >> >> kursat > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From nikos.ap at gmail.com Tue Nov 17 14:21:38 2009 From: nikos.ap at gmail.com (Nikos Apostolakis) Date: Tue, 17 Nov 2009 09:21:38 -0500 Subject: [GAP Forum] Gap Emacs mode In-Reply-To: <20091117153002.wkytr72pwkwcs044@roksan.gursey.gov.tr> References: <87r5rxtjpq.fsf@knotter.earthlink.net> <20091117153002.wkytr72pwkwcs044@roksan.gursey.gov.tr> Message-ID: On Tue, Nov 17, 2009 at 8:30 AM, wrote: > Hello, > > Thanks for the code. I would definitely benefit from an emacs mode for GAP > with more functionality. > > The code is not fully working, unfortunately. I think you have some other > related code, which it is looking for. > > I have added your code to gap-mode.el. > When I tried it, this is what happened: > > I have tried these command with these key bindings. The first and the last > worked properly. > >> (define-key gap-mode-map "\C-c\C-s" 'nea-send-string-to-gap) >> (define-key gap-mode-map "\C-c\C-l" 'nea-send-line-to-gap) >> (define-key gap-mode-map "\C-c\C-r" 'nea-send-region-to-gap) >> (define-key gap-mode-map "\C-c\C-f" 'nea-send-region-to-gap-as-file) >> (define-key gap-mode-map "\C-ci" 'nea-ins-gap) > > For 2,3,4, I got the following error messages (with the same order). > Oops! Yeah, these functions have gone through several stages and several names. I believe the following code is correct. Please check: -- 8< -------- Begin Elisp Code ;; The name of the temp file should probably be randomly chosen. ;;; Haven't really used this command much. (defun nea-send-region-to-gap-as-file (begin end) "Have GAP read the contents of the region as a file." (interactive "r") (let ((temp-gap-file "/tmp/tmp.gap")) (write-region begin end temp-gap-file) (nea-send-string-to-gap (concat "Read(\"" temp-gap-file "\");\n")))) (defun nea-send-region-to-gap (begin end &optional arg) "Send region to gap." (interactive "r\nP") (let ((string (buffer-substring begin end))) (save-window-excursion (set-buffer "*gap*") (goto-char (point-max)) (nea-send-string-to-gap string arg)))) (defun nea-send-line-to-gap (&optional arg) "Send current line to GAP." (interactive "P") (nea-send-region-to-gap (line-beginning-position) (line-end-position) arg)) -- 8< -------- End Elisp Code Hope it works correctly now, Nikos From pooja at imsc.res.in Tue Nov 17 16:32:28 2009 From: pooja at imsc.res.in (pooja singla) Date: Tue, 17 Nov 2009 22:02:28 +0530 Subject: [GAP Forum] Help to compare Character values Message-ID: Dear Forum members, I am new to this forum and have not used Gap yet. I need your help in answering the following question: I am looking at representations of the following groups; A = GL_2(Z/p^Z) and B = GL_2(F_p[t]/t^2) , where p is a prime. By some abstract theory, I know that these groups have same number of conjugacy classes and irreducible representations. Is it possible to check by using Gap that whether these groups have same character tables or not? if answer is negative for which p? For p =2 magma gives positive answer to this question. Regards, Pooja. From yalincak at gazi.edu.tr Tue Nov 17 17:28:07 2009 From: yalincak at gazi.edu.tr (yalincak at gazi.edu.tr) Date: Tue, 17 Nov 2009 17:28:07 -0000 Subject: [GAP Forum] Elements of the same order Message-ID: Dear Forum, I am very new in GAP and my question may be very easy: Is it possible to collect the elements of the same order in a group? For example the elements of order two in S_n, the symmetric group of n elements. All the best, Aynur Arikan From aker at gursey.gov.tr Tue Nov 17 21:42:38 2009 From: aker at gursey.gov.tr (aker at gursey.gov.tr) Date: Tue, 17 Nov 2009 23:42:38 +0200 Subject: [GAP Forum] Elements of the same order In-Reply-To: References: Message-ID: <20091117234238.mznfo9ji9wgcooow@roksan.gursey.gov.tr> This will do: Filtered( Elements( SymmetricGroup( 4 ) ), elt -> ( Order(elt) = 2 ) ); k. Quoting yalincak at gazi.edu.tr: > > Dear Forum, > > I am very new in GAP and my question may be very easy: > > Is it possible to collect the elements of the same order in a group? For > example the elements of order two in S_n, the symmetric group of n > elements. > > All the best, > > Aynur Arikan > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From jbohanon2 at gmail.com Wed Nov 18 01:58:24 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue, 17 Nov 2009 19:58:24 -0600 Subject: [GAP Forum] Elements of the same order In-Reply-To: <20091117234238.mznfo9ji9wgcooow@roksan.gursey.gov.tr> References: <20091117234238.mznfo9ji9wgcooow@roksan.gursey.gov.tr> Message-ID: It's better to use the conjugacy classes first as GAP will have a hard (or impossible) time doing this when n>=10. ccls:=ConjugacyClasses(SymmetricGroup(n)); 2ccls:=Filtered(ccls,i->Order(Representative(i))=2); Concatenation(List(2ccls,Elements)); Joe On Tue, Nov 17, 2009 at 3:42 PM, wrote: > This will do: > > Filtered( Elements( SymmetricGroup( 4 ) ), elt -> ( Order(elt) = 2 ) ); > > k. > > > Quoting yalincak at gazi.edu.tr: > > >> Dear Forum, >> >> I am very new in GAP and my question may be very easy: >> >> Is it possible to collect the elements of the same order in a group? For >> example the elements of order two in S_n, the symmetric group of n >> elements. >> >> All the best, >> >> Aynur Arikan >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> >> > > > ---------------------------------------------------------------- > This message was sent using IMP, the Internet Messaging Program. > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dima at ntu.edu.sg Wed Nov 18 11:32:33 2009 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Wed, 18 Nov 2009 19:32:33 +0800 Subject: [GAP Forum] RootSystem returning fail? Message-ID: <20091118113233.GA32296@spms-dima.staff.main.ntu.edu.sg> Dear all, is the following a bug, or a feature? gap> aa; [ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], [ [ 0, 2, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 0, 2 ], [ 0, 0, 1, 1 ] ], [ [ -2, 0, -4, -4 ], [ 0, 0, 0, 4 ], [ 1, 1, 0, 2 ], [ 0, -1, 0, -2 ] ], [ [ 0, 0, 0, 8 ], [ -2, 0, -4, 0 ], [ 0, -2, 0, -4 ], [ 1, 0, 0, 0 ] ] ] gap> ll:=LieAlgebra(Rationals,aa); gap> RootSystem(ll); fail gap> (In fact, I know that this algebra is isomorphic to gl(2,C), and I would like to find its representation in M_2(C)) Thanks, Dmitrii CONFIDENTIALITY: This email is intended solely for the person(s) named. The contents may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us, and do not copy or use it, nor disclose its contents. Thank you. Towards A Sustainable Earth: Print Only When Necessary From degraaf at science.unitn.it Wed Nov 18 15:26:46 2009 From: degraaf at science.unitn.it (degraaf at science.unitn.it) Date: Wed, 18 Nov 2009 16:26:46 +0100 Subject: [GAP Forum] RootSystem returning fail? Message-ID: <20091118162646.9iymbb0zk0owk8gg@www.unitn.it> Dear Dima, Here the problem is that your Lie algebra is not semisimple; you would need to take its derived subalgebra: D:= LieDerivedSubalgebra(ll); But then it returns fail as well, as the Cartan subalgebra is not split over the rationals (and as far as I am aware GAP does not have methods to factor polynomials over extensions): h:= Basis( CartanSubalgebra(D) )[1];; ad:= AdjointMatrix( Basis(ll), h );; gap> MinimalPolynomial(Rationals,ad); x^3-7*x Best wishes, Willem Dear all, is the following a bug, or a feature? gap> aa; [ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], [ [ 0, 2, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 0, 2 ], [ 0, 0, 1, 1 ] ], [ [ -2, 0, -4, -4 ], [ 0, 0, 0, 4 ], [ 1, 1, 0, 2 ], [ 0, -1, 0, -2 ] ], [ [ 0, 0, 0, 8 ], [ -2, 0, -4, 0 ], [ 0, -2, 0, -4 ], [ 1, 0, 0, 0 ] ] ] gap> ll:=LieAlgebra(Rationals,aa); gap> RootSystem(ll); fail gap> (In fact, I know that this algebra is isomorphic to gl(2,C), and I would like to find its representation in M_2(C)) Thanks, Dmitrii From NoemieCr at gmx.de Fri Nov 20 17:48:46 2009 From: NoemieCr at gmx.de (Nasira Sindhu) Date: Fri, 20 Nov 2009 18:48:46 +0100 Subject: [GAP Forum] time-function in GAP? Message-ID: <20091120174846.158610@gmx.net> Dear GAP-Forum, I want to measure the runtime of a GAP-program(Version 4) on a Wind. 7 Pc. How to display the time while running a program? Is there any time-function in GAP? Best regards, Nasira Sindhu -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From jbohanon2 at gmail.com Fri Nov 20 17:52:50 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Fri, 20 Nov 2009 11:52:50 -0600 Subject: [GAP Forum] time-function in GAP? In-Reply-To: <20091120174846.158610@gmx.net> References: <20091120174846.158610@gmx.net> Message-ID: <4B06D772.1070804@gmail.com> One of the following: gap> Runtime(); 832966 gap> Runtimes(); rec( user_time := 832966, system_time := 1656, user_time_children := 0, system_time_children := 0 ) Joe Nasira Sindhu wrote: > Dear GAP-Forum, > > I want to measure the runtime of a GAP-program(Version 4) on a Wind. 7 Pc. > How to display the time while running a program? Is there any time-function in GAP? > > Best regards, > Nasira Sindhu > From jbohanon2 at gmail.com Fri Nov 20 18:44:14 2009 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Fri, 20 Nov 2009 12:44:14 -0600 Subject: [GAP Forum] time-function in GAP? In-Reply-To: <20091120183532.139450@gmx.net> References: <20091120174846.158610@gmx.net> <4B06D772.1070804@gmail.com> <20091120183532.139450@gmx.net> Message-ID: <4B06E37E.7030000@gmail.com> Yes. I think it's milliseconds the processor has been in use since you started the program. Joe Nasira Sindhu wrote: > Thank you, Joe. This works fine. > > I guess, the output is in milliseconds? > > Nasira > > > > > -------- Original-Nachricht -------- > >> Datum: Fri, 20 Nov 2009 11:52:50 -0600 >> Von: Joe Bohanon >> An: Nasira Sindhu , GAP Forum >> Betreff: Re: [GAP Forum] time-function in GAP? >> > > >> One of the following: >> >> gap> Runtime(); >> 832966 >> gap> Runtimes(); >> rec( user_time := 832966, system_time := 1656, user_time_children := 0, >> system_time_children := 0 ) >> >> >> Joe >> >> Nasira Sindhu wrote: >> >>> Dear GAP-Forum, >>> >>> I want to measure the runtime of a GAP-program(Version 4) on a Wind. 7 >>> >> Pc. >> >>> How to display the time while running a program? Is there any >>> >> time-function in GAP? >> >>> Best regards, >>> Nasira Sindhu >>> >>> > > From aker at gursey.gov.tr Fri Nov 20 19:55:36 2009 From: aker at gursey.gov.tr (aker at gursey.gov.tr) Date: Fri, 20 Nov 2009 21:55:36 +0200 Subject: [GAP Forum] IsConjugate() after CharacterTableDirectProduct() Message-ID: <20091120215536.jsvlju27sww4ksk0@roksan.gursey.gov.tr> Dear GAP Forum, I am trying to do some calculation with binary dihedral groups (or Di-Cyclic groups, see http://en.wikipedia.org/wiki/Dicyclic_group ) together with symmetric groups. Inside my GAP code, a function call to IsConjugate() before and after a function call to CharacterTableDirectProduct() behaves very differently. The first call at (1) works fine, returns false, which is the expected result. After a call to CharacterTableDirectProduct(), the second call to IsConjugate() at (2) ends up in a brk>. Could you help me with this problem? Do I do something wrong? Or is there a bug? Is there a way around this problem? Thanks a lot, have a good weekend, k. #### The code is given below. #### The calls to IsConjugate() are marked (1) and (2). ## 2009-11-20 ## From Wikipedia: ## Binary Dihedral Group = Di-Cyclic Group with 4m elements f := FreeGroup( "a", "x" ); m := 4; Dic := f/[f.1^(2*m),f.2^4,f.1^m*f.2^-2, f.1*f.2*f.1*f.2^3 ]; SetName(Dic, Concatenation( "Dic(", String(4*m), ")" ) ); Ga := Dic; n := 2; gensGa := GeneratorsOfGroup( Ga ); a := gensGa[1]; x:=gensGa[2]; ctGa := CharacterTable( Ga ); ctSn := CharacterTable( "Symmetric", n ); ## (1) IsConjugate() works here and the result is false. IsConjugate(Ga, One(Ga), a^6); ctSnxGa := CharacterTableDirectProduct( ctSn, ctGa); ## (2) IsConjugate() breaks here IsConjugate(Ga, One(Ga), a^6); ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. From NoemieCr at gmx.de Sun Nov 22 22:02:50 2009 From: NoemieCr at gmx.de (Nasira Sindhu) Date: Sun, 22 Nov 2009 23:02:50 +0100 Subject: [GAP Forum] parse rational number Message-ID: <20091122220250.70020@gmx.net> Dear GAP-forum, is there any function in GAP, which parses a rational number like 66/123 in a floating point number like 0.536 ? Thanks, Nasira -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From hulpke at math.colostate.edu Mon Nov 23 17:05:54 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 23 Nov 2009 10:05:54 -0700 Subject: [GAP Forum] parse rational number In-Reply-To: <20091122220250.70020@gmx.net> References: <20091122220250.70020@gmx.net> Message-ID: Dear forum, Dear Nasira Sindhu, > is there any function in GAP, which parses a rational number like 66/123 in a floating point number like 0.536 ? The command `EvalF' returns a string containing a floating point representation of a rational number. For example: gap> EvalF(1/81); "0.0123456790" gap> EvalF(1/81,50); "0.01234567901234567901234567901234567901234567901234" Please be aware that the only thing you can do with these strings is human display -- there is no arithmetic functionality. Regards, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From mim_ at op.pl Tue Nov 24 08:12:21 2009 From: mim_ at op.pl (mim_ at op.pl) Date: Tue, 24 Nov 2009 09:12:21 +0100 Subject: [GAP Forum] Orthogonal group over finite field Message-ID: Hello, I have lately interested in finite groups. When I study orthogonal groups over field Z2, I have noticed following issue. Take definition of the orthogonal group: On(F)={A belongs to Mn(F): A*TransposedMat(A)=I} Let's call it natural definition. In dimension 4 and field Z2 there are 48 such matrices. In GAP there are two orthogonal groups in dimension 4: GO(1, 4,2) with 72 elements and GO(-1,4,2) with 120 elements. When I perform following in GAP: g:=GO(1,4,2); gen:=GeneratorsOfGroup(g); Display(gen[1]); Display(gen[2]); Display(gen[1]*TransposedMat(gen[1])); I see that generators do not satisfy condition A*A^T = I. In dimension 5 it seems both definitions GAP and natural gives groups with 720 elements, so the number of elements in the same. Still GAP gives other representation then I expect i.e. generators do not satisfy condition A*A^T = I. Wilson book gives following definition of the orthogonal group (chapter 3.7): "Recall from Section 3.4.6 that, up to equivalence, there are exactly two nonsingular symmetric bilinear forms f on a vector space V over a finite field F of odd order. The orthogonal group O(V, f) is defined as the group of linear maps g satisfying f(ug, vg) = f(u, v) for all u, v from V ." Can somebody explain for me what "orthogonal" means in case of field Z2 ? Why group {A: A*A^T=I} is not "orthogonal" ? Where I can find formula for number of elements in set {A:A*A^T=I} for field Z2 and other fields. Regards, Marek Mitros From mim_ at op.pl Tue Nov 24 08:26:33 2009 From: mim_ at op.pl (mim_ at op.pl) Date: Tue, 24 Nov 2009 09:26:33 +0100 Subject: [GAP Forum] Representing Clifford Algebras Message-ID: Hello, Have you found the way to represent Clifford algebras in GAP ? Personally I have represented monomial from Clifford algebra as list [cf, ind] where is coefficient and are list of indexes e.g. e12=[1, [1,2]] and -e12=[-1,[1,2]]. See below functions which I have created. In my functions I have assumed that either ei*ei=1 or ei*ei=-1 for given algebra. See below functions and . Regards, Marek # 2009-05-08 Create function which generate abstract clifford algebra # elements are represented as list with coefficients e123= [1,2,3] or [1, [1,2,3]] etc # Define first function for multiplying list elements. # Phase 1: Apply bubble sort to the concatenated list, each exchange of element will change the sign # Phase 2: Multiply all neighbour identical elements. The result will depend on the signature of Clifford algebra # i.e. whether e1 * e1 = 1 or -1. # This function should return new element (sorted list of integers) and sign 1 or -1. # Note: for sorting we can use SignPerm(Sortex(list)) functions which return permutation and calculates its sign. # In the same time is sorted. # Examples: # SignPerm(Sortex([1,3,2])) = -1 ; [2,3,1] -> 1; [1,2,1] -> -1; # # Such a solution does not require writing function for bubble sort. # Case when all squares of generators are equal to 1 cliff_mult_plus:=function(a,b) local res, sign, ind; res:=Concatenation(a,b); sign:=SignPerm(Sortex(res)); # sort # now we remove all repeats ind:=First([1..Length(res)-1], s->res[s]=res[s+1]); while (ind <> fail) do res:=Concatenation(res{[1..ind-1]}, res{[ind+2..Length(res)]}); ind:=First([1..Length(res)-1], s->res[s]=res[s+1]); od; return [sign, res]; end; lie_bracket_plus:=function(a,b) local c,d; c:=cliff_mult_plus(a,b); d:=cliff_mult_plus(b,a); if c=d then return [0,[]]; else return [c[1]-d[1], c[2]]; fi; end; # Case when all squares of generators are equal to -1 cliff_mult_minus:=function(a,b) local res, sign, ind; res:=Concatenation(a,b); sign:=SignPerm(Sortex(res)); # sort # now we have to remove all repeats and change sign for each removal ind:=First([1..Length(res)-1], s->res[s]=res[s+1]); while (ind <> fail) do res:=Concatenation(res{[1..ind-1]}, res{[ind+2..Length(res)]}); sign:=-sign; ind:=First([1..Length(res)-1], s->res[s]=res[s+1]); od; return [sign, res]; end; # 2009-05-22 function return SCT table for Lie algebra with cllifford algebra elements # parameters: bas - basis of clifford Lie algebra in form [[1,2], [2,3],...] sct_lie_alg_cliff_plus:=function(bas) local T, dim, s,t,res, pos; dim:=Length(bas); T:=EmptySCTable(dim, 0, "antisymmetric"); for s in [1..dim-1] do for t in [s+1..dim] do res:=lie_bracket_plus(bas[s], bas[t]); if res[1]<>0 then pos:=Position(bas, res[2]); SetEntrySCTable(T,s,t, [res[1],pos]); fi; od; od; return T; end;; From D.F.Holt at warwick.ac.uk Tue Nov 24 21:25:57 2009 From: D.F.Holt at warwick.ac.uk (Derek Holt) Date: Tue, 24 Nov 2009 21:25:57 +0000 Subject: [GAP Forum] Orthogonal group over finite field In-Reply-To: References: Message-ID: <20091124212557.GA16542@warwick.ac.uk> Dear Marek, Dear GAP Forum, On Tue, Nov 24, 2009 at 09:12:21AM +0100, mim_ at op.pl wrote: > Hello, > > I have lately interested in finite groups. When I study orthogonal groups over field Z2, I have noticed following issue. Take definition of the orthogonal group: > On(F)={A belongs to Mn(F): A*TransposedMat(A)=I} > Let's call it natural definition. This is definitely not the natural definition for fields of characteristic 2! In fact, for finite fields of odd characeristic and even dimension there are two types of orthogonal group (as you quote from Wilson below), and neither is really more natural than the other, so I don't think it a good idea to talk about the natural definition over finite fields. > In dimension 4 and field Z2 there are 48 such matrices. In GAP there are two orthogonal groups in dimension 4: GO(1, 4,2) with 72 elements and GO(-1,4,2) with 120 elements. When I perform following in GAP: > g:=GO(1,4,2); > gen:=GeneratorsOfGroup(g); > Display(gen[1]); Display(gen[2]); Display(gen[1]*TransposedMat(gen[1])); > I see that generators do not satisfy condition A*A^T = I. > > In dimension 5 it seems both definitions GAP and natural gives groups with 720 elements, so the number of elements in the same. Still GAP gives other representation then I expect i.e. generators do not satisfy condition A*A^T = I. > > Wilson book gives following definition of the orthogonal group (chapter 3.7): > "Recall from Section 3.4.6 that, up to equivalence, there are exactly two nonsingular > symmetric bilinear forms f on a vector space V over a finite field F > of odd order. The orthogonal group O(V, f) is defined as the group of linear > maps g satisfying f(ug, vg) = f(u, v) for all u, v from V ." > > Can somebody explain for me what "orthogonal" means in case of field Z2 ? Why group {A: A*A^T=I} is not "orthogonal" ? Where I can find formula for number of elements in set {A:A*A^T=I} for field Z2 and other fields. In characteristic 2, the orthogonal groups are only "interesting" in even dimension, and they are defined as the groups preserving quadratic forms rather than bilinear forms. There are two equivalence classes of such forms, so two types of groups. (They are both subgroups of the symplectic group, note that symplectic forms are in fact bilinear in characteristic 2.) The details are too complicated for an e-mail, and you need to read about it in a suitable textbook. In the sentence you quote from Wilson, he is referring to odd characteristic - I don't know whether he also deals with even characteristic. But the elements A of GL(n,q) that satisfy A A^T = I do form a subgroup of GL(d,q), so it is certainly reasonable to ask what is the structure of that subgroup. Let's call it G. Assume that q is even. If we let V be the n-dimensional vector space on which GL(n,q) acts, then the set of singular vectors under the form defined by the identity matrix forms a subspace W of codimension 1 in V, and the orthogonal complement X of W has dimension 1. Both of these subspaces are necessarily fixed by G, so G is acting reducibly on V. This is why G is not really a natural group to study! If n =2m+1 is odd, then V = W + X, and the form restricted to W is symplectic, so G is isomorphic to Sp(2m,q) - you can look of the order of that in any book dealing with classical groups over finite fields. For n = 2m even, X < W, and the form induces a symplectic form on the 2(m-1) dimensional space W/X. It turns out in this case that G is the same group as the stabilizer of a vector in Sp(2m,2), which is a group with a normal elementary abelian subgroup of order 2^(2m-1) with quotient Sp(2m-2,q). So |G| = 2^(2m-1) |Sp(2m-2,q)|. (For m = 2 this gives 8 times 6 = 48.) For q odd, G is conjugate in GL(n,q) to one of the standard orthogonal groups defined by Wilson. There is only one isomorphism class of such groups for n odd. For n even, there two types, the +-type and the --type. If I am remembering correctly, then G is (conjugate to) the +-type group except when d = 2 (mod 4) and q = 3 (mod 4), in which case it is the --type group. By the way, your question is not really to do with GAP. You might do better to ask questions about group theory in a general group theory mailing list, such as group pub forum: http://people.bath.ac.uk/masgcs/gpf.html Derek Holt. From NoemieCr at gmx.de Tue Nov 24 21:58:32 2009 From: NoemieCr at gmx.de (Nasira Sindhu) Date: Tue, 24 Nov 2009 22:58:32 +0100 Subject: [GAP Forum] StringTime Message-ID: <20091124215832.255220@gmx.net> Dear GAP-Forum, I need to print StringTime(x/y) but i get a error like this: gap> StringTime(35/1000); List Element: must be a list (not a rational) at if time[1] < 10 then Append( string, " " ); fi; called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can replace via 'return ;' to continue brk> Does anybody know a solution? Best regards, Nasira Sindhu -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From rm43 at evansville.edu Tue Nov 24 22:20:16 2009 From: rm43 at evansville.edu (Robert Morse) Date: Tue, 24 Nov 2009 16:20:16 -0600 Subject: [GAP Forum] StringTime In-Reply-To: <20091124215832.255220@gmx.net> References: <20091124215832.255220@gmx.net> Message-ID: <1ff1501f0911241420g20a72789kaa891655f7430ce7@mail.gmail.com> Dear Nasira, The StringTime function takes as input either an integer or a list representing hour, minute, second, millisecond. As the message states rational is not allowed. See the manual http://www.gap-system.org/Manuals/doc/htm/ref/CHAP026.htm#SSEC008.9 for more information. Regards, Robert F. Morse On Tue, Nov 24, 2009 at 3:58 PM, Nasira Sindhu wrote: > Dear GAP-Forum, > > I need to print StringTime(x/y) but i get a error like this: > > gap> StringTime(35/1000); > List Element: must be a list (not a rational) at > if time[1] < 10 ?then > ? ?Append( string, " " ); > fi; > ?called from > ( ) called from read-eval-loop > Entering break read-eval-print loop ... > you can 'quit;' to quit to outer loop, or > you can replace via 'return ;' to continue > brk> > > Does anybody know a solution? > > Best regards, > Nasira Sindhu > -- > GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! > Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From mim_ at op.pl Wed Nov 25 11:01:38 2009 From: mim_ at op.pl (mim_ at op.pl) Date: Wed, 25 Nov 2009 12:01:38 +0100 Subject: [GAP Forum] Orthogonal group over finite field In-Reply-To: 20091124212557.GA16542@warwick.ac.uk Message-ID: Thank you for the answers I have received ! I will not send mails not related to GAP any more, sorry for this. As a bonus I would like to present decomposition of 1451520 elements in O7(Z2) group which I defined as {A*A^T=I}. Class [a,b,c] means matrix has columns with 5 ones, columns with 3 ones and columns with one one. The work was done in GAP, so this would be forgiven in this forum, I hope :) Counting elements in class [ 0, 0, 7 ] ... it is 5040 <-------- this is permutation subgroup: 7! elements Counting elements in class [ 0, 4, 3 ] ... it is 176400 Counting elements in class [ 2, 4, 1 ] ... it is 529200 Counting elements in class [ 3, 4, 0 ] ... it is 705600 Counting elements in class [ 6, 0, 1 ] ... it is 35280 Regards, Marek "Derek Holt" napisa?(a): > Dear Marek, Dear GAP Forum, > > On Tue, Nov 24, 2009 at 09:12:21AM +0100, mim_ at op.pl wrote: > > Hello, > > > > I have lately interested in finite groups. When I study orthogonal groups over field Z2, I have noticed following issue. Take definition of the orthogonal group: > > On(F)={A belongs to Mn(F): A*TransposedMat(A)=I} > > Let's call it natural definition. > > This is definitely not the natural definition for fields of characteristic 2! > In fact, for finite fields of odd characeristic and even dimension there > are two types of orthogonal group (as you quote from Wilson below), and > neither is really more natural than the other, so I don't think it a good > idea to talk about the natural definition over finite fields. > > > In dimension 4 and field Z2 there are 48 such matrices. In GAP there are two orthogonal groups in dimension 4: GO(1, 4,2) with 72 elements and GO(-1,4,2) with 120 elements. When I perform following in GAP: > > g:=GO(1,4,2); > > gen:=GeneratorsOfGroup(g); > > Display(gen[1]); Display(gen[2]); Display(gen[1]*TransposedMat(gen[1])); > > I see that generators do not satisfy condition A*A^T = I. > > > > In dimension 5 it seems both definitions GAP and natural gives groups with 720 elements, so the number of elements in the same. Still GAP gives other representation then I expect i.e. generators do not satisfy condition A*A^T = I. > > > > Wilson book gives following definition of the orthogonal group (chapter 3.7): > > "Recall from Section 3.4.6 that, up to equivalence, there are exactly two nonsingular > > symmetric bilinear forms f on a vector space V over a finite field F > > of odd order. The orthogonal group O(V, f) is defined as the group of linear > > maps g satisfying f(ug, vg) = f(u, v) for all u, v from V ." > > > > Can somebody explain for me what "orthogonal" means in case of field Z2 ? Why group {A: A*A^T=I} is not "orthogonal" ? Where I can find formula for number of elements in set {A:A*A^T=I} for field Z2 and other fields. > > In characteristic 2, the orthogonal groups are only "interesting" in even > dimension, and they are defined as the groups preserving quadratic forms > rather than bilinear forms. There are two equivalence classes of such forms, > so two types of groups. (They are both subgroups of the symplectic group, > note that symplectic forms are in fact bilinear in characteristic 2.) > The details are too complicated for an e-mail, and you need to read about > it in a suitable textbook. In the sentence you quote from Wilson, he is > referring to odd characteristic - I don't know whether he also deals with > even characteristic. > > But the elements A of GL(n,q) that satisfy A A^T = I do form a subgroup of > GL(d,q), so it is certainly reasonable to ask what is the structure of > that subgroup. Let's call it G. > > Assume that q is even. > > If we let V be the n-dimensional vector space on which GL(n,q) acts, then > the set of singular vectors under the form defined by the identity matrix > forms a subspace W of codimension 1 in V, and the orthogonal complement > X of W has dimension 1. Both of these subspaces are necessarily fixed by G, > so G is acting reducibly on V. This is why G is not really a natural group to > study! > > If n =2m+1 is odd, then V = W + X, and the form restricted to W is > symplectic, so G is isomorphic to Sp(2m,q) - you can look of the order of that > in any book dealing with classical groups over finite fields. > > For n = 2m even, X < W, and the form induces a symplectic form on the > 2(m-1) dimensional space W/X. It turns out in this case that G is the > same group as the stabilizer of a vector in Sp(2m,2), which is a group > with a normal elementary abelian subgroup of order 2^(2m-1) with > quotient Sp(2m-2,q). So |G| = 2^(2m-1) |Sp(2m-2,q)|. > (For m = 2 this gives 8 times 6 = 48.) > > For q odd, G is conjugate in GL(n,q) to one of the standard orthogonal groups > defined by Wilson. There is only one isomorphism class of such groups for > n odd. For n even, there two types, the +-type and the --type. If I am > remembering correctly, then G is (conjugate to) the +-type group except > when d = 2 (mod 4) and q = 3 (mod 4), in which case it is the --type group. > > By the way, your question is not really to do with GAP. You might do better > to ask questions about group theory in a general group theory mailing list, > such as group pub forum: > http://people.bath.ac.uk/masgcs/gpf.html > > Derek Holt. From jack at ms.uky.edu Wed Nov 25 20:15:38 2009 From: jack at ms.uky.edu (Jack Schmidt) Date: Wed, 25 Nov 2009 15:15:38 -0500 Subject: [GAP Forum] Help to compare Character values In-Reply-To: References: Message-ID: <3034B9CA-4937-4708-8FCF-8C59BCF64E12@ms.uky.edu> On 2009-11-17, at 11:32, pooja singla wrote: > Dear Forum members, > I am new to this forum and have not used Gap yet. I need your help in > answering the following question: > > I am looking at representations of the following groups; > > A = GL_2(Z/p^Z) and B = GL_2(F_p[t]/t^2) , where p is a prime. > > By some abstract theory, I know that these groups have same number of > conjugacy classes and irreducible representations. Is it possible to check > by using Gap that whether these groups have same character tables or not? if > answer is negative for which p? For p =2 magma gives positive answer to > this question. > > > Regards, > Pooja. GAP allows you to construct A as GL(2,Integers mod p^2), but for B it is easier to think of F_p[t]/(t^2) as a 2x2 matrix algebra over F_p generated by t=[0,1;0,0]. Both A and B surject onto GL(2,p) and the kernel is easy to describe. This allows you to write functions to construct very similar generating sets for A and B. I include those functions at the bottom. For p=2 and p=3 the groups A and B not only have isomorphic character tables, but are actually isomorphic. For p=5, the groups do not have isomorphic character tables. This can be checked for p=2,3 in a few seconds: gap> A2:=ImagesSource(IsomorphismPermGroup(gl2p2(2)));; gap> B2:=ImagesSource(IsomorphismPermGroup(gl2pt(2)));; gap> fail <> IsomorphismGroups(A2,B2); # are they isomorphic? true gap> A3:=ImagesSource(IsomorphismPermGroup(gl2p2(3)));; gap> B3:=ImagesSource(IsomorphismPermGroup(gl2pt(3)));; gap> fail <> IsomorphismGroups(A3,B3); # are they isomorphic? true The test for p=5 takes significantly longer, but: gap> A5:=ImagesSource(IsomorphismPermGroup(gl2p2(5)));; gap> B5:=ImagesSource(IsomorphismPermGroup(gl2pt(5)));; gap> fail <> IsomorphismGroups(A5,B5); # are they isomorphic? (30 minutes) false gap> fail <> TransformingPermutationsCharacterTables(CharacterTable(A5),CharacterTable(B5)); # do they have the same character table? (3 hours) false These use the auxiliary functions gl2p2 and gl2pt to construct the groups as matrix groups. The second group B is constructed as a subgroup of GL(4,p). gl2p2 := function( p ) local bmat, t, gens; bmat := a -> [ [ ZmodnZObj( a[1], p^2 ), ZmodnZObj( a[2], p^2 ) ], [ ZmodnZObj( a[3], p^2 ), ZmodnZObj( a[4], p^2 ) ] ]; t := p; gens := List( GeneratorsOfGroup( GL(2,p) ), mat -> bmat( IntVecFFE( Flat( mat ) ) ) ); Add( gens, bmat( [ t^0 + t, 0*t, 0*t, t^0 ] ) ); Add( gens, bmat( [ t^0, 0*t, 0*t, t^0 + t ] ) ); Add( gens, bmat( [ t^0, 1*t, 0*t, t^0 ] ) ); Add( gens, bmat( [ t^0, 0*t, 1*t, t^0 ] ) ); return Group( gens ); end; gl2pt := function( p ) local bmat, t, gens; bmat := function( a ) local x; x := List([1..4],i->List([1..4],j->0)); x{[1..2]}{[1..2]} := a[1]; x{[1..2]}{[3..4]} := a[2]; x{[3..4]}{[1..2]} := a[3]; x{[3..4]}{[3..4]} := a[4]; return x*One(GF(p)); end; t := [[0,1],[0,0]]; gens := List( GeneratorsOfGroup( GL(2,p) ), mat -> bmat( List( Flat( mat ), e -> e*t^0 ) ) ); Add( gens, bmat( [ t^0 + t, 0*t, 0*t, t^0 ] ) ); Add( gens, bmat( [ t^0, 0*t, 0*t, t^0 + t ] ) ); Add( gens, bmat( [ t^0, 1*t, 0*t, t^0 ] ) ); Add( gens, bmat( [ t^0, 0*t, 1*t, t^0 ] ) ); return Group( gens ); end; One could also have defined gl2p2 as "p -> GL(2,Integers mod p^2)", but perhaps it is easier to understand the gl2pt function in context. From hulpke at math.colostate.edu Wed Nov 25 20:35:27 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 25 Nov 2009 13:35:27 -0700 Subject: [GAP Forum] IsConjugate() after CharacterTableDirectProduct() In-Reply-To: <20091120215536.jsvlju27sww4ksk0@roksan.gursey.gov.tr> References: <20091120215536.jsvlju27sww4ksk0@roksan.gursey.gov.tr> Message-ID: <66E65F8B-C265-41BB-A908-83AA0CD6AA64@math.colostate.edu> Dear GAP Forum, Kuersat Aker wrote: > Inside my GAP code, > a function call to IsConjugate() before and after > a function call to CharacterTableDirectProduct() behaves very differently. > > The first call at (1) works fine, returns false, which is the expected result. > > After a call to CharacterTableDirectProduct(), the second call to IsConjugate() at (2) ends up in a brk>. What is happening is that you are working with a finitely presented group. For calculations in known finite groups this is a very inefficient representation and less functionality is available, as for other representations. > Or is there a bug? This is not a bug -- GAP simply has reached the end of its capabilities for finitely presented groups. The calculation of the character table detects that the group is solvable. A subsequent conjugacy test now is trying to use a method for solvable groups, this fails as GAp is not aware of a method to compute a p-central series for finitely presented groups. > Is there a way around this problem? In this particular case it is relatiuvely easy to tell GAP that it can use existing routines for the PCentral series also for the groups in question, by issuing the following two commands: InstallOtherMethod( PcgsCentralSeries, "for pcgs computable use SpecialPcgs", true,[CanEasilyComputePcgs],0,DoCentralSeriesPcgsIfNilpot); InstallOtherMethod( PcgsPCentralSeriesPGroup, "for pcgs computable use SpecialPcgs", true,[CanEasilyComputePcgs],0,DoCentralSeriesPcgsIfNilpot); However using the representation as finitely presented group is very inefficient and prone to run into other issues of missing methods. It will be much better to represent your groups (as they are known to be solvable) as PCgroups, for example using the command IsomorphismPcGroup. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From AIMakosi at mail.ru Thu Nov 26 07:15:01 2009 From: AIMakosi at mail.ru (Alec Makosi) Date: Thu, 26 Nov 2009 14:15:01 +0700 Subject: [GAP Forum] two gap functions In-Reply-To: <3034B9CA-4937-4708-8FCF-8C59BCF64E12@ms.uky.edu> References: <3034B9CA-4937-4708-8FCF-8C59BCF64E12@ms.uky.edu> Message-ID: <200911261415.01462.AIMakosi@mail.ru> Dear Forum members, what's wrong in the following two examples of GAP code: G := AlternatingGroup(12); gens := StraightLineProgGens(GeneratorsOfGroup(G)); G := Group(gens); A := AutomorphismGroup(G); it break's with error: CyclePermInt: must be a permutation (not a object (positional)) at cyc := CyclePermInt( perm, i ); called from CycleStructurePerm( e[i] ) called from func( elm ) called from ForAny( [ 1 .. Length( e ) ], function ( i ) return CycleStructurePerm( e[i] ) <> CycleStructurePerm( f[i] ); end ) called from RepOpElmTuplesPermGroup( true, G, [ rep ], [ rep ^ Int( exp ) ], StabilizerOfExternalSet( class ), StabilizerOfExternalSet( class ) ) called from CompleteGaloisGroupPElement( cl, gal, power, p ) called from ... and the secod error: Syntax error: ; expected in test2.g line 5 SaveWorkspace("ttt"); ^ Error reading initial file "test2.g" abandoning remaining files while reading file i := 1; j := 2; while i < j do SaveWorkspace("ttt"); i := i + 1; od; These stylized code examples arising from real... Cheers, Alec Makosi From frank.luebeck at math.rwth-aachen.de Thu Nov 26 11:50:26 2009 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu, 26 Nov 2009 12:50:26 +0100 Subject: [GAP Forum] Orthogonal group over finite field In-Reply-To: References: Message-ID: <20091126115026.GF2725@beteigeuze> On Tue, Nov 24, 2009 at 09:12:21AM +0100, mim_ at op.pl wrote: > I have lately interested in finite groups. When I study orthogonal groups over field Z2, I have noticed following issue. Take definition of the orthogonal group: > On(F)={A belongs to Mn(F): A*TransposedMat(A)=I} > Let's call it natural definition. > > In dimension 4 and field Z2 there are 48 such matrices. In GAP there are two orthogonal groups in dimension 4: GO(1, 4,2) with 72 elements and GO(-1,4,2) with 120 elements. When I perform following in GAP: > g:=GO(1,4,2); > gen:=GeneratorsOfGroup(g); > Display(gen[1]); Display(gen[2]); Display(gen[1]*TransposedMat(gen[1])); > I see that generators do not satisfy condition A*A^T = I. Dear Marek Mitros, dear Forum, Derek Holt has already explained the definition of orthogonal groups and given some references. Let me add that the GAP manual also gives some useful information, ask the GAP help system for ?GO ?Classical groups In particular it is mentioned how to find out the corresponding quadratic form used for a group returned by GO: gap> g := GO(-1,4,2); GO(-1,4,2) gap> form := InvariantQuadraticForm(g); rec( matrix := ) gap> Display(form.matrix); . 1 . . . . . . . . 1 1 . . . 1 Furthermore, you find references for the generating sets returned by GO (and the other classical group constructors). Best regards, Frank L?beck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From ahulpke at gmail.com Thu Nov 26 19:40:02 2009 From: ahulpke at gmail.com (Alexander Hulpke) Date: Thu, 26 Nov 2009 12:40:02 -0700 Subject: [GAP Forum] two gap functions In-Reply-To: <200911261415.01462.AIMakosi@mail.ru> References: <3034B9CA-4937-4708-8FCF-8C59BCF64E12@ms.uky.edu> <200911261415.01462.AIMakosi@mail.ru> Message-ID: <6D8344E3-A2B4-4CC2-A1DC-8897A845DC23@gmail.com> Dear Forum, On Nov 26, 2009, at 12:15 AM, Alec Makosi wrote: > what's wrong in the following two examples of GAP code: > > G := AlternatingGroup(12); > gens := StraightLineProgGens(GeneratorsOfGroup(G)); > G := Group(gens); > A := AutomorphismGroup(G); Why do you pack the permutations of A12 as straight line programs? For so low degree the memory savings are neglegible, possibly even negative, but you will be paying an enormous performance penalty. Calculating the Automorphism group of AlternatingGroup(12) will be *much* faster, you then could use for example `EpimorphismFromFreeGroup' to decompose elements of A12 as words in generators (in case that was the aim). (Straight line program elements were intended for the case that it simpl would not be feasible to store many group elements for memory reasons.) > CyclePermInt: must be a permutation (not a object (positional)) at ... > called from CycleStructurePerm( e[i] ) called from ... The error message you got is because not all permutation code has been translated to straight line program elements. Adding the following three commands (which will be in the next release) should help, however still they will not help with the overall abysmal runtime. InstallOtherMethod( CycleStructurePerm, "straight line program perms", true, [ IsPerm and IsStraightLineProgElm ],1, function(p) return CycleStructurePerm(EvalStraightLineProgElm(p)); end); InstallOtherMethod( SignPerm, "straight line program perms", true, [ IsPerm and IsStraightLineProgElm ],1, function(p) return SignPerm(EvalStraightLineProgElm(p)); end); InstallOtherMethod( RestrictedPermNC, "straight line program perms", true, [ IsPerm and IsStraightLineProgElm,IsList ],1, function(p,l) return RestrictedPermNC(EvalStraightLineProgElm(p),l); end); Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From NoemieCr at gmx.de Thu Nov 26 23:14:47 2009 From: NoemieCr at gmx.de (Nasira Sindhu) Date: Fri, 27 Nov 2009 00:14:47 +0100 Subject: [GAP Forum] change size of memory used by gap Message-ID: <20091126231447.281100@gmx.net> Dear GAP Forum, I wrote a GAP programm which has a big need of memory. I use Win XP Home Editio SP3 on a P4 2,93 GHZ, 2GB RAM. With the standard GAP installation, GAP starts with C:\GAP4R4\bin\gapw95.exe -o 32m -l C:\GAP4R4\.... With the -o command you can change the size of the memory use, but when I change the memory to something like -o 512m I get an error message while running my programm: gap: cannot extend the workspace any more gap: Press to end program A look on the system monitor tells me that GAP did not really use the 512 mb. What is wrong with my -o command? Is there another way to get more memory for GAP? Best regards, Nasira -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From ahulpke at gmail.com Fri Nov 27 03:25:09 2009 From: ahulpke at gmail.com (Alexander Hulpke) Date: Thu, 26 Nov 2009 20:25:09 -0700 Subject: [GAP Forum] change size of memory used by gap In-Reply-To: <20091126231447.281100@gmx.net> References: <20091126231447.281100@gmx.net> Message-ID: On Nov 26, 2009, at 4:14 PM, Nasira Sindhu wrote: > I get an error message while running my programm: > gap: cannot extend the workspace any more The cygwin environment we use for compiling GAP has a built-in memory limit. See the section `Memory issues' at http://www.gap-system.org/Download/WinInst.html for details. Regards, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From dima at ntu.edu.sg Fri Nov 27 04:01:29 2009 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Fri, 27 Nov 2009 12:01:29 +0800 Subject: [GAP Forum] change size of memory used by gap In-Reply-To: <20091126231447.281100@gmx.net> References: <20091126231447.281100@gmx.net> Message-ID: <20091127040129.GA1894@spms-dima.staff.main.ntu.edu.sg> Dear Nasira, The manual describes how to fix this. You need to edit the registry. Please see http://www.gap-system.org/Manuals/doc/htm/ref/CHAP073.htm#SECT017 Best, Dmitrii On Fri, Nov 27, 2009 at 07:14:47AM +0800, Nasira Sindhu wrote: > I wrote a GAP programm which has a big need of memory. I use Win XP Home Editio SP3 on a P4 2,93 GHZ, 2GB RAM. > With the standard GAP installation, GAP starts with > C:\GAP4R4\bin\gapw95.exe -o 32m -l C:\GAP4R4\.... > > With the -o command you can change the size of the memory use, but when I change the memory to something like -o 512m I get an error message while running my programm: > gap: cannot extend the workspace any more > gap: Press to end program > > A look on the system monitor tells me that GAP did not really use the 512 mb. > > What is wrong with my -o command? > Is there another way to get more memory for GAP? > > > Best regards, > Nasira > -- > GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! > Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named. The contents may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us, and do not copy or use it, nor disclose its contents. Thank you. Towards A Sustainable Earth: Print Only When Necessary From desp at xanum.uam.mx Sat Nov 28 06:17:42 2009 From: desp at xanum.uam.mx (Daniel Espinosa) Date: Sat, 28 Nov 2009 00:17:42 -0600 (CST) Subject: [GAP Forum] change size of memory used by gap In-Reply-To: <20091126231447.281100@gmx.net> References: <20091126231447.281100@gmx.net> Message-ID: Dear Narisa Sindhu Under Win XP you only can use 3GB of total RAM. You should try C:\GAP4R4\bin\gapw95.exe -o 512m -l C:\GAP4R4\.... editing the C:\GAP4R4\bin\gap.bat file with "notepad" application or another text editor. Best Regards Daniel Espinosa On Fri, 27 Nov 2009, Nasira Sindhu wrote: > Dear GAP Forum, > > I wrote a GAP programm which has a big need of memory. I use Win XP Home Editio SP3 on a P4 2,93 GHZ, 2GB RAM. > With the standard GAP installation, GAP starts with > C:\GAP4R4\bin\gapw95.exe -o 32m -l C:\GAP4R4\.... > > With the -o command you can change the size of the memory use, but when I change the memory to something like -o 512m I get an error message while running my programm: > gap: cannot extend the workspace any more > gap: Press to end program > > A look on the system monitor tells me that GAP did not really use the 512 mb. > > What is wrong with my -o command? > Is there another way to get more memory for GAP? > > > Best regards, > Nasira > From dima at ntu.edu.sg Sat Nov 28 08:25:47 2009 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Sat, 28 Nov 2009 16:25:47 +0800 Subject: [GAP Forum] change size of memory used by gap In-Reply-To: References: <20091126231447.281100@gmx.net> Message-ID: <20091128082547.GA22815@spms-dima.staff.main.ntu.edu.sg> Daniel, in order to use more than 384Mb under Windows, you also need to edit the registry, as described in the link I posted earlier. Best, Dmitrii On Sat, Nov 28, 2009 at 02:17:42PM +0800, Daniel Espinosa wrote: > > Dear Narisa Sindhu > > Under Win XP you only can use 3GB of total RAM. You should try > > C:\GAP4R4\bin\gapw95.exe -o 512m -l C:\GAP4R4\.... > > editing the > > C:\GAP4R4\bin\gap.bat > > file with "notepad" application or another text editor. > > > > Best Regards > Daniel Espinosa > > On Fri, 27 Nov 2009, Nasira Sindhu wrote: > > > Dear GAP Forum, > > > > I wrote a GAP programm which has a big need of memory. I use Win XP Home Editio SP3 on a P4 2,93 GHZ, 2GB RAM. > > With the standard GAP installation, GAP starts with > > C:\GAP4R4\bin\gapw95.exe -o 32m -l C:\GAP4R4\.... > > > > With the -o command you can change the size of the memory use, but when I change the memory to something like -o 512m I get an error message while running my programm: > > gap: cannot extend the workspace any more > > gap: Press to end program > > > > A look on the system monitor tells me that GAP did not really use the 512 mb. > > > > What is wrong with my -o command? > > Is there another way to get more memory for GAP? > > > > > > Best regards, > > Nasira > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named. The contents may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us, and do not copy or use it, nor disclose its contents. Thank you. Towards A Sustainable Earth: Print Only When Necessary From os56k at yahoo.com Mon Nov 30 22:45:02 2009 From: os56k at yahoo.com (Omid Sadeghi) Date: Mon, 30 Nov 2009 14:45:02 -0800 (PST) Subject: [GAP Forum] Trouble installing XGAP Message-ID: <973951.27417.qm@web38403.mail.mud.yahoo.com> Hi, I'm going to use XGAP package but I can't install it. The problem is that when I execute the make command the " configure: error: XGAP needs XWindows X11R5 or better " error occurs. I have Ubuntu 9.04 and I think it must have X Window. I downloaded the latest version of X Window i.e. X11R7.5 from x.org and don't know how to install it neither because it has about 700 zipped files each of which having a separate configure and make. How should I know whether I have X Windows in my Ubuntu 9.04 or not and if so what version do I have. Best Regard, Omid From al at cadadr.org Mon Nov 30 23:09:04 2009 From: al at cadadr.org (Alexey Beshenov) Date: Tue, 01 Dec 2009 02:09:04 +0300 Subject: [GAP Forum] Trouble installing XGAP In-Reply-To: <973951.27417.qm@web38403.mail.mud.yahoo.com> References: <973951.27417.qm@web38403.mail.mud.yahoo.com> Message-ID: <87d42ztxtbal23%al@cadadr.org> At Mon, 30 Nov 2009 14:45:02 -0800 (PST), Omid Sadeghi wrote: > I'm going to use XGAP package but I can't install it. > The problem is that when I execute the make command the " configure: > error: XGAP needs XWindows X11R5 or better " error occurs. > > I have Ubuntu 9.04 and I think it must have X Window. It seems that you should install a package with development headers. (libx11-dev or something like that.) HTH -- Yours sincerely, Lyosha From frank.luebeck at math.rwth-aachen.de Tue Dec 1 09:33:24 2009 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Tue, 01 Dec 2009 10:33:24 +0100 Subject: [GAP Forum] Trouble installing XGAP In-Reply-To: <973951.27417.qm@web38403.mail.mud.yahoo.com> References: <973951.27417.qm@web38403.mail.mud.yahoo.com> Message-ID: <20091201093324.GJ8744@beteigeuze> On Mon, Nov 30, 2009 at 02:45:02PM -0800, Omid Sadeghi wrote: > I'm going to use XGAP package but I can't install it. > The problem is that when I execute the make command the " configure: error: XGAP needs XWindows X11R5 or better " error occurs. > > I have Ubuntu 9.04 and I think it must have X Window. > I downloaded the latest version of X Window i.e. X11R7.5 from x.org and don't know how to install it neither because it has about 700 zipped files each of which having a separate configure and make. > > How should I know whether I have X Windows in my Ubuntu 9.04 or not and if so what version do I have. Dear Omid Sadeghi, dear Forum, You must compile xgap as a 32-bit program. On a 32-bit Ubuntu install the following packages: libxaw7-dev libxmu-dev libxt-dev libxext-dev libx11-dev libsm-dev libice-dev libxpm-dev Then a standard ./configure make inside the pkg/xgap directory should compile xgap. On a 64-bit Linux you somehow have to make sure that the libraries and header files mentioned above are available as 32-bit versions. I don't know a simple way to achieve this. Best regards, Frank L?beck -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck at Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From rollandj at uwm.edu Wed Dec 2 02:07:10 2009 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Tue, 01 Dec 2009 20:07:10 -0600 Subject: [GAP Forum] Trouble installing XGAP In-Reply-To: <20091201093324.GJ8744@beteigeuze> References: <973951.27417.qm@web38403.mail.mud.yahoo.com> <20091201093324.GJ8744@beteigeuze> Message-ID: <4B15CBCE.1040404@uwm.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear Prof. Lubeck, I did the below, and when I try to run the script xgap.sh, I get the following error message: "Panic: cannot establish communication with gap.". Any suggestions? Sincerely, - -- Jeffrey Rolland Frank L?beck wrote: > On Mon, Nov 30, 2009 at 02:45:02PM -0800, Omid Sadeghi wrote: >> I'm going to use XGAP package but I can't install it. The problem >> is that when I execute the make command the " configure: error: >> XGAP needs XWindows X11R5 or better " error occurs. >> >> I have Ubuntu 9.04 and I think it must have X Window. I downloaded >> the latest version of X Window i.e. X11R7.5 from x.org and don't >> know how to install it neither because it has about 700 zipped >> files each of which having a separate configure and make. >> >> How should I know whether I have X Windows in my Ubuntu 9.04 or not >> and if so what version do I have. > > Dear Omid Sadeghi, dear Forum, > > You must compile xgap as a 32-bit program. On a 32-bit Ubuntu install > the following packages: libxaw7-dev libxmu-dev libxt-dev libxext-dev > libx11-dev libsm-dev libice-dev libxpm-dev > > Then a standard ./configure make inside the pkg/xgap directory should > compile xgap. On a 64-bit Linux you somehow have to make sure that > the libraries and header files mentioned above are available as > 32-bit versions. I don't know a simple way to achieve this. > > Best regards, > > Frank L?beck > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10-svn4923 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQEVAwUBSxXLlA7x0haAVywNAQLFqQf/Y4mI7BG92tq6d799e9PnapuVSQCZNgsE hVxaJRa1RWyZKMXuPOSHqQ0BaBCKiKN9+5xDbnlgLAFXpyYxZ3LdkQVCpfqJN42z AubXCarr9XyCu4EuYJ29DcetMM6dMsrk1ObFOBrscMwzzBhtCtBnLbdhdoR3KRwo 9CLtgCavxqFXcZW+PJ9B5kvYLP4cKTOcaU2161kRvD8CC/czOmQgBoJkL5kAt1za xfZRQlRhbGzmLbSxYynVxGQfyOVeBiSTjN+4QLrZmbHoMh3n61FCsNrsYnmmAX2P V/Sfv9z90ObT1rk9WsiRUATmoS5GKGQS8gLfak1obOotonB8v0B/2w== =2pzq -----END PGP SIGNATURE----- From os56k at yahoo.com Wed Dec 2 10:08:41 2009 From: os56k at yahoo.com (Omid Sadeghi) Date: Wed, 2 Dec 2009 02:08:41 -0800 (PST) Subject: [GAP Forum] Problem with installing ANUPQ package Message-ID: <512654.93576.qm@web38406.mail.mud.yahoo.com> Thank a million . I installed XGAP in Ubuntu 9.10 64-bit and I can now use it. There were even no need to alter the xgap.sh I want to install ANUPQ package but when executing the make command the errors below occurs. Please guide me. make[1]: *** [AllocateSpace.o] Error 1 make[1]: Leaving directory `/home/omid/gap4r4/pkg/anupq/src' make: *** [linux-iX86-gcc2-gmp] Error 2 From dennis at rkd.math.cornell.edu Mon Nov 30 22:22:07 2009 From: dennis at rkd.math.cornell.edu (R. Keith Dennis) Date: Mon, 30 Nov 2009 17:22:07 -0500 Subject: [GAP Forum] easy way to generate permutation groups? Message-ID: <200911302222.nAUMM7U1027411@rkd.math.cornell.edu> Hi, I'm interested in studying certain groups which arise as permutations of subsets of a given group. As a simple example, let G be any finite group, and S = G x G, the set of pairs of elements of G. Define a to be the permutation of S generated by (x,y) --> (x,xy) and b to be the one generated by (x,y) --> (yx,y). Is there a simple way to construct the subgroup of the permutation group on S generated by a and b? In this case both a and b have order exp(G) & for example I'd like to be able to compute a presentation for the group of permutations they generate. More generally I'd like to study other operations on certain subsets (or sequences) of elements derived from a fixed group G. As permutation groups seem to be given as permutations of sets of integers, it almost seems that I should (in essence) have to describe a one-to-one correspondence of S with a set of integers [1..m] and describe a and b by explicitly computing via this correspondence. Is that sort of thing really necessary? It usually seems that there are built-in operations in GAP to avoid such. Perhaps I'm missing something obvious. Suggestions most welcome! Keith From dima at ntu.edu.sg Wed Dec 2 11:16:36 2009 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Wed, 2 Dec 2009 19:16:36 +0800 Subject: [GAP Forum] Problem with installing ANUPQ package In-Reply-To: <512654.93576.qm@web38406.mail.mud.yahoo.com> References: <512654.93576.qm@web38406.mail.mud.yahoo.com> Message-ID: <20091202111636.GA5270@spms-dima.staff.main.ntu.edu.sg> Dear Omid, you probably need to install GMP development code first. On Debian (presumably on Ubuntu too), this would be apt-get install libgmp3-dev After that, in the anupq directory, run make clean ./confugure make linux-iX86-cc-gmp Then, assuming there were no errors, do ./testPq to test the package... HTH, Dmitrii On Wed, Dec 02, 2009 at 06:08:41PM +0800, Omid Sadeghi wrote: > Thank a million . I installed XGAP in Ubuntu 9.10 64-bit and I can now use it. There were even no need to alter the xgap.sh > > I want to install ANUPQ package but when executing the make command the errors below occurs. Please guide me. > > make[1]: *** [AllocateSpace.o] Error 1 > make[1]: Leaving directory `/home/omid/gap4r4/pkg/anupq/src' > make: *** [linux-iX86-gcc2-gmp] Error 2 > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum CONFIDENTIALITY: This email is intended solely for the person(s) named. The contents may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us, and do not copy or use it, nor disclose its contents. Thank you. Towards A Sustainable Earth: Print Only When Necessary From jdixon at math.carleton.ca Thu Dec 3 15:30:29 2009 From: jdixon at math.carleton.ca (John Dixon) Date: Thu, 03 Dec 2009 10:30:29 -0500 Subject: [GAP Forum] easy way to generate permutation groups? In-Reply-To: <200911302222.nAUMM7U1027411@rkd.math.cornell.edu> References: <200911302222.nAUMM7U1027411@rkd.math.cornell.edu> Message-ID: <4B17D995.2030404@math.carleton.ca> I don't know whether this answers the more general question which you recently posed on the GAP forum but it produces two permutations u, v on an appropriate interval [1..m] which generate the group which you describe. gap> a := x -> [x[1],x[1]*x[2]];; gap> b := x -> [x[2]*x[1],x[2]];; gap> g := SymmetricGroup(4);; gap> omega := Cartesian(g,g) ;; gap> u := PermListList(omega, List(omega,a));; gap> v := PermListList(omega, List(omega, b));; gap> h := Group(u,v);; gap> Size(h); 2239488 It is rather intriguing how the final group h varies with the input g. - John Dixon On 2009-11-30 5:22 PM, R. Keith Dennis wrote: > Hi, I'm interested in studying certain groups which arise as > permutations of subsets of a given group. As a simple example, let G > be any finite group, and S = G x G, the set of pairs of elements of G. > Define a to be the permutation of S generated by (x,y) --> (x,xy) and > b to be the one generated by (x,y) --> (yx,y). Is there a simple way > to construct the subgroup of the permutation group on S generated by a > and b? In this case both a and b have order exp(G) & for example I'd > like to be able to compute a presentation for the group of > permutations they generate. More generally I'd like to study other > operations on certain subsets (or sequences) of elements derived from > a fixed group G. > > As permutation groups seem to be given as permutations of sets of > integers, it almost seems that I should (in essence) have to describe > a one-to-one correspondence of S with a set of integers [1..m] and > describe a and b by explicitly computing via this correspondence. > Is that sort of thing really necessary? It usually seems that there > are built-in operations in GAP to avoid such. > > Perhaps I'm missing something obvious. Suggestions most welcome! > > Keith > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From elahehkhamseh at gmail.com Fri Dec 4 20:17:10 2009 From: elahehkhamseh at gmail.com (Elaheh khamseh) Date: Fri, 4 Dec 2009 13:17:10 -0700 Subject: [GAP Forum] Question about Schur Message-ID: Dears I need to charactrize group when Schur multiplier is p^9. In GAP can not do it.What is the quickiest way for commputing schur multiplier for big group. Also I want to know we can have the group of order p^7 in GAP. Yours; E. Khamseh. From dennis at rkd.math.cornell.edu Fri Dec 4 18:00:10 2009 From: dennis at rkd.math.cornell.edu (R. Keith Dennis) Date: Fri, 4 Dec 2009 13:00:10 -0500 Subject: [GAP Forum] easy way to generate permutation groups? Message-ID: <200912041800.nB4I0ASI018487@rkd.math.cornell.edu> John, thanks! I assumed that there must be a simple way to do this sort of thing. > I don't know whether this answers the more general question which > you recently posed on the GAP forum but it produces two permutations u, > v on an appropriate interval [1..m] which generate the group which you > describe. > > gap> a := x -> [x[1],x[1]*x[2]];; > gap> b := x -> [x[2]*x[1],x[2]];; > gap> g := SymmetricGroup(4);; > gap> omega := Cartesian(g,g) ;; > gap> u := PermListList(omega, List(omega,a));; > gap> v := PermListList(omega, List(omega, b));; > gap> h := Group(u,v);; > gap> Size(h); > 2239488 > > It is rather intriguing how the final group h varies with the input g. Yes, and the size of the groups get really large quite quickly it seems. Thnaks again! Keith From bsambale at gmx.de Sat Dec 5 08:21:58 2009 From: bsambale at gmx.de (Benjamin Sambale) Date: Sat, 05 Dec 2009 09:21:58 +0100 Subject: [GAP Forum] Question about Schur In-Reply-To: References: Message-ID: <4B1A1826.5050901@gmx.de> The groups of order 3^7, 5^7, 7^7, 11^7 are in the newest version of the small group library which is not shipped with gap. So you have to install this library separately (which is pretty easy). Elaheh khamseh schrieb: > Dears > > I need to charactrize group when Schur multiplier is p^9. In GAP can > not do it.What is the quickiest way for commputing schur multiplier > for big group. > > Also I want to know we can have the group of order p^7 in GAP. > > Yours; > E. Khamseh. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From jaijinenedra at yahoo.co.in Sun Dec 6 18:38:03 2009 From: jaijinenedra at yahoo.co.in (Vivek Jain) Date: Mon, 7 Dec 2009 00:08:03 +0530 (IST) Subject: [GAP Forum] a problem In-Reply-To: Message-ID: <946505.53296.qm@web94704.mail.in2.yahoo.com> Dear all, How can I know the time requirement of that a particular program/code? which I prepare to run in gap? Also can I know how much memory will be needed to run a particular code? with regards Vivek Kumar Jain HRI, Allahabad, India The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/ From kohl at univlora.edu.al Mon Dec 7 15:01:11 2009 From: kohl at univlora.edu.al (Stefan Kohl) Date: Mon, 7 Dec 2009 16:01:11 +0100 Subject: [GAP Forum] a problem In-Reply-To: <946505.53296.qm@web94704.mail.in2.yahoo.com> References: <946505.53296.qm@web94704.mail.in2.yahoo.com> Message-ID: <15ac27c10912070701w25674b67t400f0556e15cc867@mail.gmail.com> Dear Forum, Vivek Jain asked: How can I know the time requirement of that a particular program/code which > I prepare to run in gap? > > Also can I know how much memory will be needed to run a particular code? > This depends on what you want to do and what you know about your code and the algorithms or methods you use. -- Due to the algorithmic unsolvability of the halting problem for Turing machines, there is no algorithm to make such predictions. This is nothing GAP-specific, but holds for programs in any programming language which permits emulating Turing machines. If you in fact rather want to know afterwards how long the execution of a particular code has taken, you can use 1. the variable `time', whose value is the runtime of the last command in an interactive GAP session in milliseconds, 2. the function `Runtime', which returns the machine time spent so far in the present GAP session, and 3. the function `Runtimes', which returns a record containing more detailed information, see ?Runtimes. Apart from this, GAP also provides profiling facilities - see ?Profiling. You can determine the amount of memory used by a given GAP object by the operation `MemoryUsage'. Also, you can obtain information related to garbage collections and the present size of the GAP workspace -- see ?GasmanStatistics, ?GasmanMessageStatus and ?GasmanLimits. Independent of this, on most machines, you can determine the size of the GAP job by means of the operating system. Best regards, Stefan Kohl From zhaxiaolei at gmail.com Wed Dec 9 18:24:24 2009 From: zhaxiaolei at gmail.com (xiaolei zhang) Date: Thu, 10 Dec 2009 02:24:24 +0800 Subject: [GAP Forum] construction of an AlgebraicExtension Message-ID: <2ec148ef0912091024x7ca6b700m4f7d4c063aaae490@mail.gmail.com> hello: I want to make a field, such as Q(2^(1/3), 2^(1/3)i), where Q is Rationals, and i^2=-1. I am fail to describe 2^(1/3) and 2^(1/3) i. 2^(1/3) does not work. i is E(4), and Q(2^(1/3))=Q[x]/(x^3-2), but how to describe 2^(1/3)i ? Can gap help me to find out the minimal polynomial of 2^(1/3) i ? thanks. From hulpke at math.colostate.edu Wed Dec 9 20:04:50 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 9 Dec 2009 13:04:50 -0700 Subject: [GAP Forum] construction of an AlgebraicExtension In-Reply-To: <2ec148ef0912091024x7ca6b700m4f7d4c063aaae490@mail.gmail.com> References: <2ec148ef0912091024x7ca6b700m4f7d4c063aaae490@mail.gmail.com> Message-ID: Dear Forum, Dear Xialoei Zhang, > I want to make a field, such as Q(2^(1/3), 2^(1/3)i), where Q is > Rationals, and i^2=-1. > > I am fail to describe 2^(1/3) and 2^(1/3) i. 2^(1/3) does not work. > > i is E(4), and Q(2^(1/3))=Q[x]/(x^3-2), but how to describe 2^(1/3)i > ? Can gap help me to find out the minimal polynomial of 2^(1/3) i ? You can get polynomials that have sums (or products) of roots of existing polynomials via resultants: For example gap> x:=X(Rationals,"x"); gap> p1:=x^3-2; # 2^1/3 gap> p2:=x^2+1; #i Now create a second variable, and replace x by y/x in one of the polynomials, multiplying through to make the result a polynomial gap> y:=X(Rationals,"y"); gap> p3:=x^2*Value(p2,y/x); x^2+y^2 The resultant (eliminating the old variable) is a polynomial that has the product as roots. (You can do similar things for sums by taking y-x in the definition of p3.) gap> r:=Resultant(p1,p3,x); y^6+4 (Careful: The resultant is not guaranteed to be irreducible: For example for p1=x^2-3 and p2=x^2-5 you get as resultant (y^2-15)^2.) To generate an extension generated by elements a and b, you first need to find a primitive element, e.g. a+zb for a suitable integer z, again you can calculate the minimal polynomial as resultant of p(x) with q(y-zx). Hope this helps, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From csaba.schneider at gmail.com Fri Dec 11 14:07:30 2009 From: csaba.schneider at gmail.com (Csaba Schneider) Date: Fri, 11 Dec 2009 14:07:30 +0000 Subject: [GAP Forum] research opportunity in Lisbon Message-ID: Dear Colleagues I'd like to draw your attention to a recently advertised post-doctoral research position on groups, semigroups and computational algebra in the Center of Algebra at the University of Lisbon. See the following webpage for more details. http://www.eracareers.pt/opportunities/index.aspx?task=global&jobId=16160 We welcome applications by people with recent PhDs in algebra, computational algebra. Cheers Csaba. From dickinsm at gmail.com Mon Dec 14 14:16:37 2009 From: dickinsm at gmail.com (Mark Dickinson) Date: Mon, 14 Dec 2009 14:16:37 +0000 Subject: [GAP Forum] ListX error: "... must be a collection, a boolean, or a function ..." Message-ID: <5c6f2a5d0912140616k548a764o2b133ce0a0b62428@mail.gmail.com> Dear GAP forum, I'm a bit confused by an apparent mismatch between the documentation for the ListX function and its actual behaviour. The documentation (section 21.21 of the reference manual) says that "Each of the arguments [to ListX] must be one of the following: a list or collection [...] a function returning a list or collection [...] a function returning true or false [...] " But in practice, it seems that only collections are permissible, while general lists are not. Here's an example, using Gap 4.4.12: gap> square := function(x) return x*x; end; function( x ) ... end gap> ListX([1..10], square); [ 1, 4, 9, 16, 25, 36, 49, 64, 81, 100 ] So far, so good; this is what I expected. But now if I try to replace [1..10] with an empty list, I get an error: gap> ListX([], square); Error, gens[1] must be a collection, a boolean, or a function called from ListXHelp0( result, arg, 0 ); called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue I was expecting to get the empty list as a result of this operation. Is this a bug in GAP, a bug in the documentation, or a bug in my understanding? Thanks, Mark From rollandj at uwm.edu Tue Dec 15 20:49:29 2009 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Tue, 15 Dec 2009 14:49:29 -0600 Subject: [GAP Forum] Outer Actions Giving Rise to Distinct Group Extensions Message-ID: <4B27F659.2000102@uwm.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, all! My dissertation involves taking a closed smooth manifold with finitely presented fundamental group Q and creating a cobordant manifold having fundamental group isomorphic to Q |x S ("Q semi-direct product S"), where S is a given finitely presented superperfect group. I have created a procedure for doing this, and am now at the point where I want to make some examples of my theorem. My advisor, in particular, would like me to "stack" these cobordisms, so the right-hand side of cobordism (W_i, M_i, M)_{i+1}) becomes the left-hand side of cobordism (W_{i+1}, M_{i+1}, M)_{i+2}) (cobordism are read left-to-right). Derek Holt kindly gave me an example of a superperfect group with infinitely many outer automorphisms, none conjugate to each other. This example is S*S*S (free product) where S is SL(2,5) aka the Poincare group. The outer action is having the last two factors act via conjugation on the first factor and have the last two factors act trivially on the last two factors. I have been trying to show that one can make uncountably infinitely many of these infintely long "stacks" of cobordisms (the stacks are technically called "pseudo-collars") interleaving two of these outer actions, using matrices in SL(2,5) which are not conjugate in GL(2,5); one gets one pseudo-collar for each point in the unit interval, in fact. Unfortunately, it is quite difficult to prove that the group extensions one gets from using the different outer actions are not isomorphic. I was wondering if there isn't a wiser way of going about this example, using two distinct outer actions of Z, the integers, on S*S*S (or possibly some other fintely presented superperfect group) so that it is obvious, or at least simpler to prove, that the group extensions one obtains at each step are not isomorphic. [Note that given one group extension G_1 = Z |x S*S*S, one can get another group extension by having the copy of Z in G_! act again on S*S*S in the same way and have S*S*S act trivially on itself, producing G_2 = (Z |x S*S*S) |x S*S*S, and so on.] Thanks in advance for any assistance you can provide. Sincerely, - -- Jeffrey Rolland -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10-svn4923 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEVAwUBSyf2WQ7x0haAVywNAQLI+Qf+I/wLbzkj3g1IrDD/Qi6Nk79897RzLUTz 8iFj7QgifH2IE+/MMsQmsnhzck/Ui97kBs7TR6bLQDN8uoiLiOke5AliS3DEgURw uCmRnVY6y4jOs+0q5Y5DLWA2yq3H/MwXOV1ebRSk3WCmdsZwfSYo7dR5RgmVeEdp CvdIa3PWhhBJOI6uG+VkxusLkGjwqMdWl1aGJcQapfSG0cZp8fm/gDqTwbQTAcin bFgrsplmc6KJM9oAW/Se2wW7jAtmHYKanz7oCp3hgmzGDyo3yQpaJoX0jIMr4ee9 Sf2Obw0Lhc/y7F/B0OKyVM5385IUOnEns17tmf9qTBj/Q4cNJzNfgA== =KAHW -----END PGP SIGNATURE----- From mim_ at op.pl Wed Dec 16 08:52:09 2009 From: mim_ at op.pl (mim_ at op.pl) Date: Wed, 16 Dec 2009 09:52:09 +0100 Subject: [GAP Forum] Transitive groups Message-ID: Hi All, When using function AllTransitiveGroups I see following #gap> List(AllTransitiveGroups(DegreeAction,6),G->StructureDescription(G)); [ "C6", "S3", "D12", "A4", "C3 x S3", "C2 x A4", "S4", "S4", "S3 x S3", "(C3 x C3) : C4", "C2 x S4", "A5", "(S3 x S3) : C2", "S5", "A6", "S6" ] This description I understand. But when I use function TransitiveGroup(n,s) then I see following tn:=NrTransitiveGroups(n); g:=List([1..tn], s->TransitiveGroup(n,s)); Print("In dimesion", n, " there are ",tn," transitive groups. \n"); Print(g, "\n"); sg:=List(g, x->Size(x)); Print("Sizes are: ",sg, "\n"); In dimesion6 there are 16 transitive groups. [ C(6) = 6 = 3[x]2, D_6(6) = [3]2, D(6) = S(3)[x]2, A_4(6) = [2^2]3, F_18(6) = [3^2]2 = 3 wr 2, 2A_4(6) = [2^3]3 = 2 wr 3, S_4(6d) = [2^2]S(3), S_4(6c) = 1/2[2^3]S(3), F_18(6):2 = [1/2.S(3)^2]2, F_36(6) = 1/2[S(3)^2]2, 2S_4(6) = [2^3]S(3) = 2 wr S(3), L(6) = PSL(2,5) = A_5(6), F_36(6):2 = [S(3)^2]2 = S(3) wr 2, L(6):2 = PGL(2,5) = S_5(6), A6, S6 ] Sizes are: [ 6, 6, 12, 12, 18, 24, 24, 24, 36, 36, 48, 60, 72, 120, 360, 720 ] Where I can find explanation of the notation A_4(6), F_18(6), in other dimension there are also F(5), E(9), etc. ? In GAP documentation I cannot find this. Regards, Marek Mitros From hulpke at math.colostate.edu Wed Dec 16 17:33:58 2009 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 16 Dec 2009 10:33:58 -0700 Subject: [GAP Forum] Transitive groups In-Reply-To: References: Message-ID: <9A33FD77-2940-4A00-970C-059CB4C6592B@math.colostate.edu> Dear Forum, Marek Mitros asked: > > But when I use function TransitiveGroup(n,s) then I see following > > tn:=NrTransitiveGroups(n); > g:=List([1..tn], s->TransitiveGroup(n,s)); > Print("In dimesion", n, " there are ",tn," transitive groups. \n"); > Print(g, "\n"); > sg:=List(g, x->Size(x)); > Print("Sizes are: ",sg, "\n"); > > In dimesion6 there are 16 transitive groups. > [ C(6) = 6 = 3[x]2, D_6(6) = [3]2, D(6) = S(3)[x]2, A_4(6) = [2^2]3, > F_18(6) = [3^2]2 = 3 wr 2, 2A_4(6) = [2^3]3 = 2 wr 3, S_4(6d) = [2^2]S(3), > S_4(6c) = 1/2[2^3]S(3), F_18(6):2 = [1/2.S(3)^2]2, F_36(6) = 1/2[S(3)^2]2, > 2S_4(6) = [2^3]S(3) = 2 wr S(3), L(6) = PSL(2,5) = A_5(6), > F_36(6):2 = [S(3)^2]2 = S(3) wr 2, L(6):2 = PGL(2,5) = S_5(6), A6, S6 ] > Sizes are: [ 6, 6, 12, 12, 18, 24, 24, 24, 36, 36, 48, 60, 72, 120, 360, 720 ] > > Where I can find explanation of the notation A_4(6), F_18(6), in other dimension there are also F(5), E(9), etc. ? The names are defined in: MR1635715 (99g:20011) Conway, John H.(1-PRIN); Hulpke, Alexander(4-STAN-SM); McKay, John(3-CONC-AL) On transitive permutation groups. LMS J. Comput. Math. 1 (1998), 1--8 The extra information in parentheses provides information about the permutation structure. Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From s_mong at yahoo.com Mon Dec 21 06:33:39 2009 From: s_mong at yahoo.com (Mong So) Date: Sun, 20 Dec 2009 22:33:39 -0800 (PST) Subject: [GAP Forum] Semi Direct Product Message-ID: <254929.24416.qm@web113001.mail.gq1.yahoo.com> Dear Gap forum, I would like to know how we can directly compute the semi direct product to abelian finite groups? Also I have the same question for the semi direct product N and H such that N and H are a normal subgroup and subgroup of G, respectively and N\cap H=1. Best regards, Mong. Get your new Email address! Grab the Email name you've always wanted before someone else does! http://mail.promotions.yahoo.com/newdomains/aa/