From mim_ at op.pl Wed Jan 6 15:01:02 2010 From: mim_ at op.pl (mim_ at op.pl) Date: Wed, 06 Jan 2010 16:01:02 +0100 Subject: [GAP Forum] Extraspecial groups and orthogonal over Z2 Message-ID: Hi, Please forgive me sending this post on GAP forum. I don't know any forum for finite groups. If you know such then please let me know. I tried to register on group-pub-forum at maths.bath.ac.uk but it didn't work. I have discovered lately that extraspecial groups 2^(2n+1) can be represented as monomials in Clifford algebra C(2n). There are two such algebras depending on how we choose generators to square to +1 or to -1. 2^2n choices but in effect only two algebras are obtained. E.g. for C4 we have algebra C4=M2H obtained for ++++, ----, ---+. Algebra M4R=H*H is obtained for +-+-, +++- choices. I don't know yet the general principle for this but this must be easy. Conway paper "Simple construction of monster" (1984) in appendix says that automorphism of extraspecial group is equal to O+(2n,2) or O-(2n,2) times 2^2n. I have checked for n=2 that this is really true. This is nice way to define O+ and O- over Z2. Can anybody share thoughts on this subject ? Any literature I can find about it ? Regards, Marek Mitros From s_mong at yahoo.com Thu Jan 7 15:22:18 2010 From: s_mong at yahoo.com (Mong So) Date: Thu, 7 Jan 2010 07:22:18 -0800 (PST) Subject: [GAP Forum] A question about StructureDescription Message-ID: <143100.27033.qm@web113006.mail.gq1.yahoo.com> Dear Forum, I would like to know how we can understand the diversity between StructureDescription(SmallGroup(81,3)); StructureDescription(SmallGroup(81,8)); and StructureDescription(SmallGroup(81,14)). Of course all of them have the presentation "(C9 x C3) : C3" with different semi direct products which induced by \phi : C3----> Aut(C9 x C3). How we can exactly find the structure of \phi in all cases? Best regards. Mong. New Email addresses available on Yahoo! Get the Email name you've always wanted on the new @ymail and @rocketmail. Hurry before someone else does! http://mail.promotions.yahoo.com/newdomains/aa/ From bmonson at unb.ca Sun Jan 10 21:12:38 2010 From: bmonson at unb.ca (Monson, Barry R) Date: Sun, 10 Jan 2010 17:12:38 -0400 Subject: [GAP Forum] line by line input for classroom use In-Reply-To: References: <1182960914.12612.9.camel@studidott3.dm.unipi.it> Message-ID: <1263157958.4b4a42c61f0f6@webmail.unb.ca> Dear GAP-forum, I am using Gap in a course on computer algebra. Naturally I want to prepare typical commands or more involved examples to discuss in class. But I don't want to type each line in when in class, if only to keep chalk dust away from my laptop. So suppose I have several examples already entered into a file called stuff, which looks like this, say: # here is a list: a:=[4,3,3,4,2]; # Make it into a set: se:=Set(a); # Now for a group G:=Group((1,2,3),(3,4,5)); Size(G); Here the file "stuff" ends. Is there some command from the Gap session which would let me read in (but not execute) such lines one by one, say when prompted by some function key; then I'd execute the current line, discuss the result, then request the next line in the pre-prepared file "stuff", etc. So of course I don't want a simple Read("stuff") command. Sure I can have "stuff" open and copy/paste into the Gap window. But I'm wondering if there is a slicker solution. Thanks, Barry. From ravi.kulk at gmail.com Mon Jan 11 11:26:14 2010 From: ravi.kulk at gmail.com (Ravi Kulkarni) Date: Mon, 11 Jan 2010 16:56:14 +0530 Subject: [GAP Forum] line by line input for classroom use Message-ID: <870809661001110326p4796f8ebjb2f58e3e001e1c7d@mail.gmail.com> This is in reply to the Barry Monson's query about pre-loading a GAP script and running it line by line. I do not know if GAP can do this by itself, but there is a posting by Alastair Donaldson on Jan 5 2006, where he describes how a Java program can interface with GAP, send it commands and get back answers. I have not tried it (yet) but it sounds like it could do what Barry Monson is asking for, since a Java program can respond to a keystroke. Ravi Kulkarni From kohl at univlora.edu.al Mon Jan 11 22:52:10 2010 From: kohl at univlora.edu.al (Stefan Kohl) Date: Mon, 11 Jan 2010 23:52:10 +0100 Subject: [GAP Forum] A question about StructureDescription In-Reply-To: <143100.27033.qm@web113006.mail.gq1.yahoo.com> References: <143100.27033.qm@web113006.mail.gq1.yahoo.com> Message-ID: <15ac27c11001111452v56842864t74b9d18d0185a8ad@mail.gmail.com> Dear Forum, Mong So asked: I would like to know how we can understand the diversity between > StructureDescription(SmallGroup(81,3)); > StructureDescription(SmallGroup(81,8)); > and StructureDescription(SmallGroup(81,14)). > Of course all of them have the presentation "(C9 x C3) : C3" with > different semi direct products > which induced by \phi : C3----> Aut(C9 x C3). > How we can exactly find the structure of \phi in all cases? > You can proceed as follows: 1. Define the semidirect factors C3 and C9 x C3 gap> C3 := CyclicGroup(3); gap> C9C3 := DirectProduct(CyclicGroup(9),CyclicGroup(3)); 2. Find all embeddings of C3 into Aut(C9 x C3) gap> phis := IsomorphicSubgroups(AutomorphismGroup(C9C3),C3); [ [ f1 ] -> [ [ f1, f3 ] -> [ f1, f2*f3 ] ], [ f1 ] -> [ [ f1, f3 ] -> [ f1*f2, f3 ] ], [ f1 ] -> [ [ f1, f3 ] -> [ f1*f3, f3 ] ], [ f1 ] -> [ [ f1, f3 ] -> [ f1*f3, f2*f3 ] ], [ f1 ] -> [ [ f1, f3 ] -> [ f1*f3, f2^2*f3 ] ] ] 3. Form the corresponding semidirect products gap> semidirectprods := List(phis,phi->SemidirectProduct(C3,phi,C9C3)); [ , , , , ] 4. Compute their group ID's and StructureDescription's gap> List(last,IdGroup); [ [ 81, 14 ], [ 81, 13 ], [ 81, 3 ], [ 81, 8 ], [ 81, 9 ] ] gap> List(last2,StructureDescription); [ "(C9 x C3) : C3", "C3 x (C9 : C3)", "(C9 x C3) : C3", "(C9 x C3) : C3", "(C9 x C3) : C3" ] Actually you see that the 5 semidirect products are pairwise nonisomorphic, and that there is a 4th group getting the same StructureDescription. For another group (the second in the list), StructureDescription prefers another decomposition. This is since that group can be decomposed into nontrivial direct factors, and since StructureDescription follows the rule to decompose into direct factors first. Hope this helps, Stefan Kohl --------------------------------------------- Dr. Stefan Kohl Universiteti "Ismail Qemali" Vlore Lagjja: Pavaresia Vlore / Albania E-mail: kohl at univlora.edu.al Web: http://univlora.edu.al/personel/kohl/ --------------------------------------------- From azhvan at hotmail.com Tue Jan 12 21:44:46 2010 From: azhvan at hotmail.com (azhvan sanna) Date: Tue, 12 Jan 2010 14:44:46 -0700 Subject: [GAP Forum] Natural action of automorphism group on subsets Message-ID: Dear Gap forum, Is there any function already defined for computing the orbits of natural action of automorphism group of a group on the subset of group? in another way, if you have given a group G, and a subset S of G, is there any function for computing like Orbits(Aut(G), S, OnSets) which gives us the {S^sigma| for sigma in Aut(G)}. thanks _________________________________________________________________ From kohl at univlora.edu.al Wed Jan 13 20:48:30 2010 From: kohl at univlora.edu.al (Stefan Kohl) Date: Wed, 13 Jan 2010 21:48:30 +0100 Subject: [GAP Forum] line by line input for classroom use In-Reply-To: <1263157958.4b4a42c61f0f6@webmail.unb.ca> References: <1182960914.12612.9.camel@studidott3.dm.unipi.it> <1263157958.4b4a42c61f0f6@webmail.unb.ca> Message-ID: <15ac27c11001131248x27e9ea17wb2093d1e5310ee0f@mail.gmail.com> Dear Forum, Barry Monson asked: I am using Gap in a course on computer algebra. Naturally I want > to prepare > typical commands or more involved examples to discuss in class. But I don't > want to type > each > line in when in class, if only to keep chalk dust away from my laptop. > So suppose I have several examples already entered into a file > called stuff, > which looks like this, say: > # here is a list: > a:=[4,3,3,4,2]; > # Make it into a set: > se:=Set(a); > # Now for a group > G:=Group((1,2,3),(3,4,5)); > Size(G); > Here the file "stuff" ends. > Is there some command from the Gap session which would let me > read in (but > not execute) > such lines one by one, say when prompted by some function key; then I'd > execute the > current line, > discuss the result, then request the next line in the pre-prepared file > "stuff", etc. > So of course I don't want a simple Read("stuff") command. > Sure I can have "stuff" open and copy/paste into the Gap window. > But > I'm wondering if there is a slicker solution. > Such a function already exists in GAP, but is presently not documented. You should prepare a file exactly in the format you suggested, and run the demonstation by issueing at the GAP prompt: ReadLib( "demo.g" ); Demonstration( "yourfilename" ); Then each keypress runs the next line of your input; the key "q" interrupts the demo. You can find the source code of the function "Demonstration" in lib/demo.g in your GAP home directory; you may enjoy modifying it for your purposes. A variation of that code is provided as a small utility function by the RCWA package, see ?RunDemonstration. You also might be interested in an installer and a shell that have been built specifically for teaching purposes: http://www.math.colostate.edu/~hulpke/CGT/education.html The shell provides a worksheet interface similar to Maple. After reading in a worksheet, one can execute the commands one by one by hand. Hope this helps, Stefan Kohl --------------------------------------------------------------------------- http://univlora.edu.al/personel/kohl/ --------------------------------------------------------------------------- From gordon at maths.uwa.edu.au Thu Jan 14 03:29:30 2010 From: gordon at maths.uwa.edu.au (Gordon Royle) Date: Thu, 14 Jan 2010 11:29:30 +0800 Subject: [GAP Forum] Transitive Groups of Degree 36 Message-ID: <7B1F9AD2-9EB4-436D-B7FB-8213A3D8D3E2@maths.uwa.edu.au> Does anyone know if anyone has computed these? Thanks Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia gordon at maths.uwa.edu.au Check our new blog: symomega.wordpress.com From hulpke at me.com Thu Jan 14 15:16:30 2010 From: hulpke at me.com (Alexander Hulpke) Date: Thu, 14 Jan 2010 08:16:30 -0700 Subject: [GAP Forum] Natural action of automorphism group on subsets In-Reply-To: References: Message-ID: Dear Forum, On Jan 12, 2010, at 2:44 PM, azhvan sanna wrote: > Is there any function already defined for computing the orbits of natural action of automorphism group of a group on the subset of group? > in another way, if you have given a group G, and a subset S of G, is there any function for computing like Orbits(Aut(G), S, OnSets) which gives us the {S^sigma| for sigma in Aut(G)}. You're almost there, though I'm not sure from your formulation whether you want all orbits on a subset, or the orbit of a subset. To have all orbits, use Orbits(autgrp,subset,OnPoints); (Example 1). to get the orbit of a subset, use Orbit(autgrp,s,OnSets). Make sure that the set is sorted (Example 2) If you want the orbits on subsets, you first would have to create the subsets and then use Orbits(autgrp,subsets,OnSets); 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 Example1: gap> g:=SymmetricGroup(5); Sym( [ 1 .. 5 ] ) gap> a:=AutomorphismGroup(g); gap> s:=Filtered(Elements(g),x->not x in DerivedSubgroup(g)); [ (4,5), (3,4), (3,5), (2,3), (2,3,4,5), (2,3,5,4), (2,4,5,3), (2,4), (2,4,3,5), (2,5,4,3), (2,5), (2,5,3,4), (1,2), (1,2)(3,4,5), (1,2)(3,5,4), (1,2,3)(4,5), (1,2,3,4), (1,2,3,5), (1,2,4,3), (1,2,4,5), (1,2,4)(3,5), (1,2,5,3), (1,2,5,4), (1,2,5)(3,4), (1,3,2)(4,5), (1,3,4,2), (1,3,5,2), (1,3), (1,3,4,5), (1,3,5,4), (1,3)(2,4,5), (1,3,2,4), (1,3,5)(2,4), (1,3)(2,5,4), (1,3,2,5), (1,3,4)(2,5), (1,4,3,2), (1,4,5,2), (1,4,2)(3,5), (1,4,5,3), (1,4), (1,4,3,5), (1,4,2,3), (1,4,5)(2,3), (1,4)(2,3,5), (1,4,3)(2,5), (1,4)(2,5,3), (1,4,2,5), (1,5,3,2), (1,5,4,2), (1,5,2)(3,4), (1,5,4,3), (1,5), (1,5,3,4), (1,5,2,3), (1,5,4)(2,3), (1,5)(2,3,4), (1,5,3)(2,4), (1,5)(2,4,3), (1,5,2,4) ] gap> Orbits(a,s,OnPoints); [ [ (4,5), (1,5), (1,2), (2,5), (2,3), (1,3), (3,4), (2,4), (3,5), (1,4) ], [ (2,3,4,5), (1,3,4,5), (1,2,4,5), (1,2,3,5), (1,4,5,2), (1,2,3,4), (1,3,5,2), (1,3,2,5), (1,3,4,2), (1,3,2,4), (1,2,4,3), (1,5,2,3), (2,4,5,3), (2,4,3,5), (1,4,2,3), (2,3,5,4), (1,4,3,2), (1,4,3,5), (1,4,5,3), (1,3,5,4), (2,5,3,4), (1,5,3,4), (2,5,4,3), (1,2,5,4), (1,4,2,5), (1,5,2,4), (1,5,4,3), (1,5,4,2), (1,2,5,3), (1,5,3,2) ], [ (1,2)(3,4,5), (1,4,5)(2,3), (1,2,5)(3,4), (1,3)(2,4,5), (1,2,3)(4,5), (1,5,2)(3,4), (1,3,5)(2,4), (1,5)(2,3,4), (1,3,2)(4,5), (1,2,4)(3,5), (1,4)(2,3,5), (1,3,4)(2,5), (1,5)(2,4,3), (1,4,2)(3,5), (1,2)(3,5,4), (1,4,3)(2,5), (1,4)(2,5,3), (1,5,4)(2,3), (1,3)(2,5,4), (1,5,3)(2,4) ] ] Example 2: gap> s:=Set([(1,2,3),(1,3,2)]); [ (1,2,3), (1,3,2) ] gap> Orbit(a,s,OnSets); [ [ (1,2,3), (1,3,2) ], [ (2,3,4), (2,4,3) ], [ (3,4,5), (3,5,4) ], [ (1,3,4), (1,4,3) ], [ (1,4,5), (1,5,4) ], [ (2,4,5), (2,5,4) ], [ (1,2,5), (1,5,2) ], [ (1,3,5), (1,5,3) ], [ (1,2,4), (1,4,2) ], [ (2,3,5), (2,5,3) ] ] Example 3: gap> g:=DihedralGroup(IsPermGroup,8); Group([ (1,2,3,4), (2,4) ]) gap> a:=AutomorphismGroup(g); gap> s:=Combinations(Elements(g),2); # all 2-element subsets [ [ (), (2,4) ], [ (), (1,2)(3,4) ], [ (), (1,2,3,4) ], [ (), (1,3) ], [ (), (1,3)(2,4) ], [ (), (1,4,3,2) ], [ (), (1,4)(2,3) ], [...] gap> Orbits(a,s,OnSets); [ [ [ (), (2,4) ], [ (), (1,2)(3,4) ], [ (), (1,3) ], [ (), (1,4)(2,3) ] ], [ [ (), (1,2,3,4) ], [ (), (1,4,3,2) ] ], [ [ (), (1,3)(2,4) ] ], [ [ (2,4), (1,2)(3,4) ], [ (1,2)(3,4), (1,3) ], [ (1,3), (1,4)(2,3) ], [ (2,4), (1,4)(2,3) ] ], [ [ (2,4), (1,2,3,4) ], [ (1,2)(3,4), (1,2,3,4) ], [ (1,2,3,4), (1,3) ], [ (2,4), (1,4,3,2) ], [ (1,2,3,4), (1,4)(2,3) ], [ (1,4,3,2), (1,4)(2,3) ], [ (1,3), (1,4,3,2) ], [ (1,2)(3,4), (1,4,3,2) ] ], [ [ (2,4), (1,3) ], [ (1,2)(3,4), (1,4)(2,3) ] ], [ [ (2,4), (1,3)(2,4) ], [ (1,2)(3,4), (1,3)(2,4) ], [ (1,3), (1,3)(2,4) ], [ (1,3)(2,4), (1,4)(2,3) ] ], [ [ (1,2,3,4), (1,3)(2,4) ], [ (1,3)(2,4), (1,4,3,2) ] ], [ [ (1,2,3,4), (1,4,3,2) ] ] ] From trof1984 at rambler.ru Wed Jan 20 12:11:37 2010 From: trof1984 at rambler.ru (Alex Trofimuk) Date: Wed, 20 Jan 2010 15:11:37 +0300 Subject: [GAP Forum] semidirect product Message-ID: <963526594.1263989497.161448036.91911@mcgi27.rambler.ru> --Dear Gap forum, Alex Trofimuk asked: How to construct a group G=[E_{3^2}\times E_{5^2}]A_4, where [A]B -- semidirect product with normal subgroup A, A\times B --- direct product of group A and B, E_{3^2} --- elementary abelian group of order 9, A_4 --- alternating group of degree 4. Alex Trofimuk. -- Internet Explorer 8 - ?????????? ?????????! http://ie.rambler.ru/ From hulpke at math.colostate.edu Wed Jan 20 17:34:51 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 20 Jan 2010 10:34:51 -0700 Subject: [GAP Forum] semidirect product In-Reply-To: <963526594.1263989497.161448036.91911@mcgi27.rambler.ru> References: <963526594.1263989497.161448036.91911@mcgi27.rambler.ru> Message-ID: <5278557F-7DC5-4188-9E24-5B620344341A@math.colostate.edu> Dear Forum, On Jan 20, 2010, at 1/20/10 5:11, Alex Trofimuk wrote: > How to construct a group G=[E_{3^2}\times E_{5^2}]A_4, where [A]B -- semidirect product with normal subgroup A, A\times B --- direct product of group A and B, E_{3^2} --- elementary abelian group of order 9, A_4 --- alternating group of degree 4. We had a couple of such questions recently, so I'll be brief. Basically you will need to describe the action of A4 in the form of a homomorphism from A4 into the automorphism group of the direct product. Lets construct this automorphism group first. For working with it, it is convenient to use a permutation representation instead: gap> e1:=ElementaryAbelianGroup(3^2); gap> e2:=ElementaryAbelianGroup(5^2); gap> d:=DirectProduct(e1,e2); gap> au:=AutomorphismGroup(d); gap> Size(au); 23040 gap> auh:=IsomorphismPermGroup(au); gap> p:=Image(auh); As I can't think of an obvious action, lets see whether there are subgroups of the automorphism group isomorphic A4. We do this by calculating all subgroups up to conjugacy and picking the right ones. gap> cl:=List(ConjugacyClassesSubgroups(p),Representative);; gap> cl:=Filtered(cl,x->Size(x)=12);; gap> IdGroup(AlternatingGroup(4)); # use to test isomorphism [ 12, 3 ] gap> cl:=Filtered(cl,x->IdGroup(x)=[12,3]); [ ] So there is no faithful action of A4. Lets try a factor group, C3: gap> cl:=List(ConjugacyClassesSubgroups(p),Representative);; gap> cl:=Filtered(cl,x->Size(x)=3); [ , , ] This gives us three different products. To create the first one, e.g. create the map form A4 to the corresponding subgroup of the automorphism group gap> acthom:=GQuotients(a4,cl[1])[1]; [ (2,4,3), (1,3,2) ] -> [ (3,7,17)(4,8,18)(12,38,22)(13,39,23)(14,24,40)(15,25,41)(16,26,42)(31,68, [...] gap> acthom:=acthom*InverseGeneralMapping(auh); [ (2,3,4), (2,4,3), (1,2,3), (1,3,2), (1,3,4), (1,4,3) ] -> [ [ f1, f1*f2, f3, f4 ] -> Pcgs([ f1, f2, f3, f4 ]), [ f1, f1^2*f2, f3, f4 ] -> Pcgs([ f1, f2, f3, f4 ]), [ f1, f1^2*f2, f3, f4 ] -> Pcgs([ f1, f2, f3, f4 ]), [ f1, f1*f2, f3, f4 ] -> Pcgs([ f1, f2, f3, f4 ]), [ f1, f1^2*f2, f3, f4 ] -> Pcgs([ f1, f2, f3, f4 ]), [ f1, f1*f2, f3, f4 ] -> Pcgs([ f1, f2, f3, f4 ]) ] Now we can from the SDP: gap> s:=SemidirectProduct(a4,acthom,d); 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 A.Egri-Nagy at herts.ac.uk Sat Jan 23 20:29:58 2010 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Sat, 23 Jan 2010 20:29:58 +0000 Subject: [GAP Forum] Error, hash table in infinite loop called from LookupDictionary( ht, x ) Message-ID: <1e16edd81001231229y1eb3567fxee9777ed45c7da1c@mail.gmail.com> Dear Forum, I have some trouble with using dictionaries. I'm doing breadth-first search in a transformation semigroup and for keeping track of the processed elements, I create this dictionary: processed := NewDictionary(T[1],false, TransformationFamily); T is the list of generators, so I use the first one as a sample object. The search is running without any problem, then suddenly I get this: Error, hash table in infinite loop called from LookupDictionary( ht, x ) called from KnowsDictionary( processed, t ) called from PermutatorSemigroup( petrigens, node ) called from ( ) called from read-eval-loop ..... I checked dict.gi and it seems that there is a hardcoded limit in the global variable HASH_RANGE, but its purpose is not immediate. Could anyone advise me regarding this problem. Thank You! best wishes, attila egri-nagy From hulpke at me.com Sat Jan 23 20:44:37 2010 From: hulpke at me.com (Alexander Hulpke) Date: Sat, 23 Jan 2010 13:44:37 -0700 Subject: [GAP Forum] Error, hash table in infinite loop called from LookupDictionary( ht, x ) In-Reply-To: <1e16edd81001231229y1eb3567fxee9777ed45c7da1c@mail.gmail.com> References: <1e16edd81001231229y1eb3567fxee9777ed45c7da1c@mail.gmail.com> Message-ID: <78CEB391-B759-4745-B4AD-083D08DADBA2@me.com> Dear Attila Egri-Nagy, Dear forum, > I have some trouble with using dictionaries. I'm doing breadth-first > search in a transformation semigroup and for keeping track of the > processed elements, I create this dictionary: > > processed := NewDictionary(T[1],false, TransformationFamily); First remark: I don't think that the dictionary code accepts families, you would need an object like the monoid of all transformations. In any case, this only helps if there is specific code for it (which your code might provide). It will not o harm, but also does not necessarily help. > The search is running without any problem, then suddenly I get this: > > Error, hash table in infinite loop called from Basically this means that a large number (the hardcoded HASH_RANGE) of hash conflicts happen. One could increase HASH_RANGE (the default value was chosen to have this warning not arise in a broad set of tests -- personally I have not seen the warning for years), but it rather seems that the hash keys chosen are not selected ``randomly'' enough. I'm not aware of hash key code in the library (at least I did not write any when I implemented dictionaries, as my interests were with groups), so this might even be your own code. If you want, send me (privately) a self-contained file (requiring just the GAP library) which reproduces the problem and I will have a look at why so many conflicts arise. 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 rollandj at uwm.edu Sat Jan 23 21:05:15 2010 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Sat, 23 Jan 2010 15:05:15 -0600 Subject: [GAP Forum] Encode Homomorphism Between Groups Message-ID: <4B5B648B.2060102@uwm.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, all! I am a GAP newbie. I am trying to create a semidirect product in GAP, and I am having a little trouble encoding the homomorphism. The semidirect product group G is Q |x S, where Q = Z, the integers (i.e., the free group on 1 generator), P = SL(2,5), and S = P_1*P_2*P_3 (three copies of P). (I have successfully coded the groups into GAP.) Now, the matrices A = [[0 1][4 0]] and B = [[0 1][4 1]] (row vectors) in SL(2,5) have the property that \Xi(A) is not equal to B or B^{-1} for any \Xi \in Aut(P). (This result can be proven using the Jordan normal forms of A and B, or verified directly using Maple, e.g., and the fact that Aut(P) is isomorphic to PGL(2,5).) Let A_2 be the copy of A in P_2 and A_3 be the copy of A in P_3, and similarly for B_@ and B_3. An automorphism \phi of S can be defined by setting \phi(X_1) = (A_1A_2)^{-1}X_1(A_1A_2) for X_! in P_1 and \phi(X_2) = X_2 and \phi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3. Similarly, an automorphism \psi of S can be defined by setting \psi(X_1) = (B_1B_2)^{-1}X_1(B_1B_2) for X_! in P_1 and \psi(X_2) = X_2 and \psi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3. Now, I wish to create a homomorphism \Phi: Q -> Aut(S) by sending \Phi(q) = \phi^q (\phi composed with itself q times) and \Psi: Q -> S by sending \Psi(q) = \psi^q (\psi composed with itself q times). Note that S is a finitely presented group with GAP generators gap> GeneratorsOfGroup(S); [ f1, f2, f3, f4, f5, f6, f7, f8, f9 ] and relators gap> RelatorsOfFpGroup(S); [ f1^2*f3, f2^3*f3, f1*f2*f1*f2*f1*f2*f1*f2*f1*f2, f3^-1*f1^-1*f3*f1, f3^-1*f2^-1*f3*f2, f3^2, f4^2*f6, f5^3*f6, f4*f5*f4*f5*f4*f5*f4*f5*f4*f5, f6^-1*f4^-1*f6*f4, f6^-1*f5^-1*f6*f5, f6^2, f7^2*f9, f8^3*f9, f7*f8*f7*f8*f7*f8*f7*f8*f7*f8, f9^-1*f7^-1*f9*f7, f9^-1*f8^-1*f9*f8, f9^2 ] where f1 = [[2 0][0 3]] \in P_1, f2 = [[4 1][4 0]] \in P_1, and f3 = [[-1 0][0 -1]] \in P_1, and similarly for f4-f6 and f7-f9 (i.e., f4 = [[2 0][0 3]] \in P_2, f5 = [[4 1][4 0]] \in P_2, etc.). I have created a program to write each of A and B in terms of f1 and f2 (and similarly for f4 and f5 and f7 and f8) (the generators f3, f6, and f9 are somewhat superfluous). The results are A = f2*f1*f2*f2*f1*f2*f1*f2*f2*f1*f2 and B = f1*f1*f2*f2. So, could someone pretty-please help me to encode the homomorphisms Phi and Psi so that I can create the semidirect products G_1:=SemidirectProduct(Q,Phi,S) and G_2:=SemidirectProduct(Q,Psi,S)? Many thanks in advance. Sincerely, - -- Jeffrey Rolland P.S. Attached is a GAP file with my work to date. JJR -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (Darwin) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEVAwUBS1tkiw7x0haAVywNAQJKoQgApFF1dl/OpvXVmuyjFw80wcQx38JEszq2 C9dU+Ew378AD/yuNCHpTVuW7a3vW67Yv2ohbL1Sti7yIB0EKWEIC9SIzh6bs3ZyX Rmn2vZDzHZKSlaqEEiZgUrbbLiKrpbUrvkBLOPolNRPDT/xrGHy2Ms6BVxPsTVHV myloZq00e+HG2eRL/UPKnjyFMp6B+nJtniLiSsvyVk5NNchNMnny/RSB6KsHJj19 OLaqTVMcXCpGqb55cW0s2Ho1WWOwpB9cx+p2dWYnJqFRKB8V49O5DSfUkWuj6kr2 v1xgJz4xb2Iqcr7ygyAlIxPSudPARKibzn/DzxA5cCpRxCp0M8gJ7Q== =3DoU -----END PGP SIGNATURE----- -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: SemiDirectProduct.txt URL: From A.Egri-Nagy at herts.ac.uk Sat Jan 23 21:28:31 2010 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Sat, 23 Jan 2010 21:28:31 +0000 Subject: [GAP Forum] Error, hash table in infinite loop called from LookupDictionary( ht, x ) In-Reply-To: <78CEB391-B759-4745-B4AD-083D08DADBA2@me.com> References: <1e16edd81001231229y1eb3567fxee9777ed45c7da1c@mail.gmail.com> <78CEB391-B759-4745-B4AD-083D08DADBA2@me.com> Message-ID: <1e16edd81001231328x4def871diee72a1358fa29d08@mail.gmail.com> Dear Alexander, Dear Forum, Thank you very much for the prompt and helpful answer! If HASH_RANGE is for the limit of the number of hash conflicts then my actual BF-search is doing extremely badly. More than 10000 conflicts! That explains many things. I'm going to check which part is my code and whether I can produce the same problem in a minimal GAP-library-only settings. After understanding the role of HASH_RANGE this is very unlikely. I also have not seen this error message before, though I've been using the search code for quite a while now. But recently I had to put very heavy load on the code, so no surprise that something broke. ;) best, @ From hulpke at me.com Tue Jan 26 05:24:42 2010 From: hulpke at me.com (Alexander Hulpke) Date: Mon, 25 Jan 2010 22:24:42 -0700 Subject: [GAP Forum] Encode Homomorphism Between Groups In-Reply-To: <4B5B648B.2060102@uwm.edu> References: <4B5B648B.2060102@uwm.edu> Message-ID: <98BE6278-0A6C-4608-9CD6-92AF77526924@me.com> Dear Forum, Jeffrey Rolland asked: > The semidirect product group G is Q |x S, where Q = Z, the integers > (i.e., the free group on 1 generator), P = SL(2,5), and S = P_1*P_2*P_3 > (three copies of P). (I have successfully coded the groups into GAP.) > > Now, the matrices A = [[0 1][4 0]] and B = [[0 1][4 1]] (row vectors) in > SL(2,5) have the property that \Xi(A) is not equal to B or B^{-1} for > any \Xi \in Aut(P). (This result can be proven using the Jordan normal > forms of A and B, or verified directly using Maple, e.g., and the fact > that Aut(P) is isomorphic to PGL(2,5).) > > Let A_2 be the copy of A in P_2 and A_3 be the copy of A in P_3, and > similarly for B_@ and B_3. > > An automorphism \phi of S can be defined by setting \phi(X_1) = > (A_1A_2)^{-1}X_1(A_1A_2) for X_! in P_1 and \phi(X_2) = X_2 and > \phi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3. > > Similarly, an automorphism \psi of S can be defined by setting \psi(X_1) > = (B_1B_2)^{-1}X_1(B_1B_2) for X_! in P_1 and \psi(X_2) = X_2 and > \psi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3. > > Now, I wish to create a homomorphism \Phi: Q -> Aut(S) by sending > \Phi(q) = \phi^q (\phi composed with itself q times) and \Psi: Q -> S by > sending \Psi(q) = \psi^q (\psi composed with itself q times). This is (see below) not yet a full solution, but it might help you further: Firstly, as you get the FP group anyhow from a routine, the cost of using *your* generators A and B is neglegible. (This holds for SL(2,5), clearly for other groups there can be a substantial benefit for some generators). f:=GF(5); A:=[[0,1],[4,0]]*One(f); B:=[[0,1],[4,1]]*One(f); SL25:=Group(A,B); # ensure p fgenerators correspond to A,B fphom:=IsomorphismFpGroupByGenerators(SL25,[A,B]); SLfp:=Image(fphom); S:=FreeProduct(SLfp,SLfp,SLfp); Now the generators of S are simply A1,B1 etc. This makes creating phi and psi easy. gens:=GeneratorsOfGroup(S); # now gens[1,2] are the first copy etc. A1:=gens[1]; B1:=gens[2]; A2:=gens[3]; B2:=gens[4]; phi:=GroupHomomorphismByImagesNC(S,S,gens, [(A1*A2)^-1*gens[1]*A1*A2, (A1*A2)^-1*gens[2]*A1*A2, gens[3],gens[4],gens[5],gens[6]]); SetIsBijective(phi,true); psi:=GroupHomomorphismByImagesNC(S,S,gens, [(B1*B2)^-1*gens[1]*B1*B2, (B1*B2)^-1*gens[2]*B1*B2, gens[3],gens[4],gens[5],gens[6]]); SetIsBijective(psi,true); Here I'm using `GroupHomomorphismByImagesNC' simply to have the system trust me that this is really a homomorphism. (Otherwise it would have to check whether the generator images fulfill the relators, which would force it into solving the word problem for S, something that is not yet implemented. Similarly I'm telling the system that both maps really *are* automorphisms. Constructing the homomorphisms from Q now is easy: Q:=FreeGroup(1); phihom:=GroupHomomorphismByImages(Q,Group(phi),[Q.1],[phi]); psihom:=GroupHomomorphismByImages(Q,Group(psi),[Q.1],[psi]); Well, now for the bad news: There currently is no method for `SemidirectProduct' for fp groups. This is not a fundamental obstacle, so far just nobody wanted to construct them. Indeed, it is rather easy to write down a presentation by taking presentations for Q and S and simply adding the appropriate conjugation relations. Let me know if you need help with this. Best wishes, 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 rollandj at uwm.edu Tue Jan 26 20:46:24 2010 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Tue, 26 Jan 2010 14:46:24 -0600 Subject: [GAP Forum] Encode Homomorphism Between Groups In-Reply-To: <7DD91654-E9CB-4C56-83F9-3FCA52C6AEAB@ms.uky.edu> References: <4B5B648B.2060102@uwm.edu> <7DD91654-E9CB-4C56-83F9-3FCA52C6AEAB@ms.uky.edu> Message-ID: <4B5F54A0.2030204@uwm.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear Prof. Schmidt, Thank you so much for replying! I found an instance where I used "@" instead of "2", and I intended to use A2 and A3 and B2 and B3 (instead of A1 and A2 and B1 and B2 [so that no element of P1 multiplies A1 or B1]) consistently to define the semidirect product. I apologize for my poor proofreading; I assure I did attempt to proofread it several times. Again, thanks for replying. Alexander Hulpke, in an independent posting, indicated that 'SemidirectProduct' is not implemented for fp groups, so my method of attack outlined below would not have worked; thank you for the presentations of the semidirect products. Sincerely, - -- Jeffrey Rolland On 01/23/2010 05:06 PM, Jack Schmidt wrote: > I have answered your question below, but I think you should know that > your post does not present you in a favorable light. The post has > many typos and is much more complicated than it should be. It reads > as if it was carelessly written. > > > At any rate, a sane way to proceed: > > Setting A=[0,1;-1,0] and B=[0,1;-1,0], SL(2,5) is generated by A and > B subject to the relations: > > P = < A, B : A^4, A^2=B^3, (A*B)^5 > > > There is no homomorphism taking A to B because the order of A is 4 > and the order of B is 6. > > The free product P * P * P is generated by A1, B1, A2, B2, A3, B3 > subject to the relations: > > S = < A1, B1, A2, B2, A3, B3 : Ai^4, Ai^2 = Bi^3, (Ai*Bi)^5 > > > The semidirect product Q |x S, with Q free on { C } acting as > conjugation by x =(A1*A2)^q on P1 and fixing P2 and P3, is generated > by C, A1, B1, A2, B2, A3, B3 subject to the relations: > > G = < C, A1, B1, A2, B2, A3, B3 : Ai^4, Ai^2 = Bi^3, (Ai*Bi)^5, A1^C > = A1^x, B1^C = B1^x, A2^C = A2, B2^C = B2, A3^C = A3, B3^C = B3 > > > You can input such a group into GAP as: > > f := FreeGroup( "C", "A1", "B1", "A2", "B2", "A3", "B3" ); > AssignGeneratorVariables( f ); q := 3; x := (A1*A2)^q; G := f/[ A1^4, > A1^2/B1^3, (A1*B1)^5, A2^4, A2^2/B2^3, (A2*B2)^5, A3^4, A3^2/B3^3, > (A3*B3)^5, A1^C / A1^x, B1^C / B1^x, A2^C / A2, B2^C / B2, A3^C / A3, > B3^C / B3 ]; -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11-svn5163 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEVAwUBS19UlA7x0haAVywNAQIUQgf+JFtgzEh/38d8xiv6+J0hHzStU7UbakVs d22gVz/MP96WzGkqnBxs7vVeZauLIuQcdAmI5ZTanfyjpJXGHkTsElKF6ceHI0qw N7Hi//lE6yeEox9xdjheDGEos8nMECc1RRZpPkn1mTCM+a4H+OWvWFL75ZdFsVi5 8K7G/57pbahDBsXUVa9hSSRjHrfGgRoaUfDvsGEsRsRAKUsO/k7zLkYZ/tsrnool atLteQ+v1Q1gn8x/Vabj+6NOZ1ZVgjG1uxW4rOqRhWtfnlr3UWO7UmmAbtzIbp4X Y9W34DDsfAv3vCP4uR+L6+NwizIJevXPVH58MhaEULbzCmiE5XdVYg== =UagJ -----END PGP SIGNATURE----- From rollandj at uwm.edu Tue Jan 26 20:48:44 2010 From: rollandj at uwm.edu (Jeffrey Rolland) Date: Tue, 26 Jan 2010 14:48:44 -0600 Subject: [GAP Forum] Encode Homomorphism Between Groups In-Reply-To: <98BE6278-0A6C-4608-9CD6-92AF77526924@me.com> References: <4B5B648B.2060102@uwm.edu> <98BE6278-0A6C-4608-9CD6-92AF77526924@me.com> Message-ID: <4B5F552C.3070202@uwm.edu> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear Prof. Hulpke, Thank you very much! This was very helpful! Sincerely, - -- Jeffrey Rolland On 01/25/2010 11:24 PM, Alexander Hulpke wrote: > Dear Forum, > > Jeffrey Rolland asked: > >> The semidirect product group G is Q |x S, where Q = Z, the integers >> (i.e., the free group on 1 generator), P = SL(2,5), and S = P_1*P_2*P_3 >> (three copies of P). (I have successfully coded the groups into GAP.) >> >> Now, the matrices A = [[0 1][4 0]] and B = [[0 1][4 1]] (row vectors) in >> SL(2,5) have the property that \Xi(A) is not equal to B or B^{-1} for >> any \Xi \in Aut(P). (This result can be proven using the Jordan normal >> forms of A and B, or verified directly using Maple, e.g., and the fact >> that Aut(P) is isomorphic to PGL(2,5).) >> >> Let A_2 be the copy of A in P_2 and A_3 be the copy of A in P_3, and >> similarly for B_@ and B_3. >> >> An automorphism \phi of S can be defined by setting \phi(X_1) = >> (A_1A_2)^{-1}X_1(A_1A_2) for X_! in P_1 and \phi(X_2) = X_2 and >> \phi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3. >> >> Similarly, an automorphism \psi of S can be defined by setting \psi(X_1) >> = (B_1B_2)^{-1}X_1(B_1B_2) for X_! in P_1 and \psi(X_2) = X_2 and >> \psi(X_3) = X_3 for X_2 \in P_2 and X_3 \in P_3. >> >> Now, I wish to create a homomorphism \Phi: Q -> Aut(S) by sending >> \Phi(q) = \phi^q (\phi composed with itself q times) and \Psi: Q -> S by >> sending \Psi(q) = \psi^q (\psi composed with itself q times). > > This is (see below) not yet a full solution, but it might help you further: > > Firstly, as you get the FP group anyhow from a routine, the cost of using *your* generators A and B is neglegible. (This holds for SL(2,5), clearly for other groups there can be a substantial benefit for some generators). > > f:=GF(5); > A:=[[0,1],[4,0]]*One(f); > B:=[[0,1],[4,1]]*One(f); > SL25:=Group(A,B); > # ensure p fgenerators correspond to A,B > fphom:=IsomorphismFpGroupByGenerators(SL25,[A,B]); > SLfp:=Image(fphom); > S:=FreeProduct(SLfp,SLfp,SLfp); > > Now the generators of S are simply A1,B1 etc. This makes creating phi and psi easy. > > gens:=GeneratorsOfGroup(S); > # now gens[1,2] are the first copy etc. > A1:=gens[1]; > B1:=gens[2]; > A2:=gens[3]; > B2:=gens[4]; > phi:=GroupHomomorphismByImagesNC(S,S,gens, > [(A1*A2)^-1*gens[1]*A1*A2, > (A1*A2)^-1*gens[2]*A1*A2, > gens[3],gens[4],gens[5],gens[6]]); > SetIsBijective(phi,true); > psi:=GroupHomomorphismByImagesNC(S,S,gens, > [(B1*B2)^-1*gens[1]*B1*B2, > (B1*B2)^-1*gens[2]*B1*B2, > gens[3],gens[4],gens[5],gens[6]]); > SetIsBijective(psi,true); > > Here I'm using `GroupHomomorphismByImagesNC' simply to have the system trust me that this is really a homomorphism. (Otherwise it would have to check whether the generator images fulfill the relators, which would force it into solving the word problem for S, something that is not yet implemented. Similarly I'm telling the system that both maps really *are* automorphisms. > > Constructing the homomorphisms from Q now is easy: > Q:=FreeGroup(1); > phihom:=GroupHomomorphismByImages(Q,Group(phi),[Q.1],[phi]); > psihom:=GroupHomomorphismByImages(Q,Group(psi),[Q.1],[psi]); > > Well, now for the bad news: There currently is no method for `SemidirectProduct' for fp groups. This is not a fundamental obstacle, so far just nobody wanted to construct them. Indeed, it is rather easy to write down a presentation by taking presentations for Q and S and simply adding the appropriate conjugation relations. Let me know if you need help with this. > > Best wishes, > > 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 > > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11-svn5163 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iQEVAwUBS19VKQ7x0haAVywNAQLnaggAorn0TjHCpDa2HAqsM87aOtlJlG+NKGFI mLlsrEHrklLNFU5GdW/jjULxTeSqJFP7MLeK3y3rMjYCuRWLx0mQX2vI406wh5UI XgPvc+cFHS3fZZleEN6dOKmQTSU2TSNtRRn6lapucJysW1zhHYsoeItN3jrxnqga ot9vivoNA1FFBm23DsQh0M6HDmRNa2+9VjgTcGUngg41pnacFEVXKEmKnUvgVUxl +RkBFAEN1VsNJbc46AN/pl4GjHXR4DD4zVVbEBrNRZOnTZy1B8/GSjov7nS3DrKk 5eNz5GkctQW8bOp0V5Aa5d99RinUTKJPnQYVEnncrHP+KiyNPXYzDA== =rK5O -----END PGP SIGNATURE----- From jaijinenedra at yahoo.co.in Wed Jan 27 14:36:38 2010 From: jaijinenedra at yahoo.co.in (Vivek Jain) Date: Wed, 27 Jan 2010 20:06:38 +0530 (IST) Subject: [GAP Forum] p-group In-Reply-To: Message-ID: <935477.22738.qm@web94710.mail.in2.yahoo.com> Dear Forum, I want to know that: "Is it possible using GAP to check that given presentation is a nilpotent group of class 2 or not?" For example $G=\langle? a,b,c| a^{p^5}, b^{p^3}, c^{p^2}, [a,b]=a^{p^3}, [a,c]=c^p, [b,c]=b^{p^2} \rangle $ where $p$ is a prime. Also how can we determine its automorphism group using GAP? with regards Vivek kumar jain Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ From beick at tu-bs.de Thu Jan 28 10:48:19 2010 From: beick at tu-bs.de (Bettina Eick) Date: Thu, 28 Jan 2010 11:48:19 +0100 (CET) Subject: [GAP Forum] p-group In-Reply-To: <935477.22738.qm@web94710.mail.in2.yahoo.com> References: <935477.22738.qm@web94710.mail.in2.yahoo.com> Message-ID: Dear Vivek kumar jain, you can use GAP to investigate your question for any fixed prime p. For example, the nilpotent quotient algorithm of the NQ package or the NQL package of GAP allows you to determine the largest class-c quotient of a finitely presented groups for any positive integer c or even the largest nilpotent quotient (if this exists). Further, there are methods available in GAP to determine the automorphism group of a finite p-group. Check the AutPGrp package for this purpose. In your given example, you can implement your considered group G in GAP as function in p: G := function(p) local F, f, r, a, b, c; F := FreeGroup(3); f := GeneratorsOfGroup(F); a := f[1]; b := f[2]; c := f[3]; r := [a^(p^5), b^(p^3), c^(p^2), Comm(a,b)/a^(p^3), Comm(a,c)/c^p, Comm(b,c)/b^(p^2) ]; return F/r; end; Then you load the relevant packages LoadPackage("nq"); LoadPackage("autpgrp"); And then you can do the following (for example for p=3): gap> H := G(3); gap> K := NilpotentQuotient(H); Pcp-group with orders [ 27, 9, 3, 9, 3, 3 ] gap> Length(LowerCentralSeries(K)); 3 gap> A := AutomorphismGroupPGroup(K);; gap> A.size; 14348907 Hence for p=3 your group has class 2 and you can see the size of its automorphism group. Generators and further information on the automorphisms is also stored in A, but is perhaps too long to be displayed here. Hope this helps, Bettina > "Is it possible using GAP to check that given presentation is a nilpotent group of class 2 or not?" > > For example $G=\langle? a,b,c| a^{p^5}, b^{p^3}, c^{p^2}, [a,b]=a^{p^3}, [a,c]=c^p, [b,c]=b^{p^2} \rangle $ where $p$ is a prime. > > Also how can we determine its automorphism group using GAP? > > > with regards > > Vivek kumar jain > > > > > Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From D.F.Holt at warwick.ac.uk Thu Jan 28 13:17:50 2010 From: D.F.Holt at warwick.ac.uk (Derek Holt) Date: Thu, 28 Jan 2010 13:17:50 +0000 Subject: [GAP Forum] p-group In-Reply-To: <935477.22738.qm@web94710.mail.in2.yahoo.com> References: <935477.22738.qm@web94710.mail.in2.yahoo.com> Message-ID: <20100128131750.GA28400@warwick.ac.uk> Dear GAP Forum, Dear Vivek, You can use the GAP package KBMAG to prove nilpotency of finitely presented groups, using the method described by Charles Sims in his book of computing in finitely presented groups. This uses the Knuth-Bendix completion algorithm. This process is described and illustrated in Example 4 (p. 13) of the KBMAG manual. I have successfully verifed that your group below is nilpotent of order p^10 for p=2,3,5,7,11,13,17, and I am trying to do 19. Of course, since these groups are (apparently) finite, you could try use coset enumeration. This will work for small primes such as 2 and 3, but for larger primes the group order will probably be too large, and I think the Sims algorithm will work better. You first run NilpotentQuotient (as described in Bettina Eick's reply) to find the maximal nilpotent quotient of your group. The aim is then to prove that the group is actually isomorphic to this quotient. You do this by introducing new generators in the presentation which correspond the power-commutator generators in the maximal nilpotent quotient. You order the generators so that those at the bottom of the group come first and then use the so-called recursive ordering on strings to run Knuth-Bendix. Here is the basic GAP code to do this. LoadPackage("kbmag"); SetInfoLevel(InfoRWS,2); F:=FreeGroup("j","i","h","g","f","e","d","c","b","a");; j:=F.1;; i:=F.2;; h:=F.3;; g:=F.4;; f:=F.5;; e:=F.6;; d:=F.7;; c:=F.8;; b:=F.9;; a:=F.10;; p:=3;; rels := [a^p/e, b^p/f, c^p/d, e^p/g, f^p/h, g^p/i, i^p/j, j^p, h^p, d^p, Comm(a,b)/i, Comm(a,c)/d, Comm(b,c)/h ];; G := F/rels;; R := KBMAGRewritingSystem(G);; SetOrderingOfKBMAGRewritingSystem(R, "recursive"); MakeConfluent(R); If successful it will halt with a confluent presentation containing the relations of the power-commutator presentation of the computed maximal nilpotent quotient. You have then proved that these relations hold in the group itself (not just in the nilptent quotient), so you have proved that the group is nilpotent. This consists of 65 reduction equations (or 62 when p=2). The above works quickly for p=2,3,5,7. For larger primes, it helps to restrict the length of the stored reduction relations, and then re-run after completion. You have to experiment to find the optimal maximal length to store. So, for example, the following works fast for p=17: p:=19;; rels := [a^p/e, b^p/f, c^p/d, e^p/g, f^p/h, g^p/i, i^p/j, j^p, h^p, d^p, Comm(a,b)/i, Comm(a,c)/d, Comm(b,c)/h ];; G := F/rels;; R := KBMAGRewritingSystem(G);; SetOrderingOfKBMAGRewritingSystem(R, "recursive"); O := OptionsRecordOfKBMAGRewritingSystem(R); O.maxstoredlen := [40,40]; MakeConfluent(R); Unbind(O.maxstoredlen); MakeConfluent(R); Derek Holt. On Wed, Jan 27, 2010 at 08:06:38PM +0530, Vivek Jain wrote: > Dear Forum, > > I want to know that: > > "Is it possible using GAP to check that given presentation is a nilpotent group of class 2 or not?" > > For example $G=\langle? a,b,c| a^{p^5}, b^{p^3}, c^{p^2}, [a,b]=a^{p^3}, [a,c]=c^p, [b,c]=b^{p^2} \rangle $ where $p$ is a prime. > > Also how can we determine its automorphism group using GAP? > > > with regards > > Vivek kumar jain > > > > > Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From wright at uoregon.edu Thu Jan 28 17:50:25 2010 From: wright at uoregon.edu (Charles Wright) Date: Thu, 28 Jan 2010 09:50:25 -0800 Subject: [GAP Forum] p-group In-Reply-To: <20100128131750.GA28400@warwick.ac.uk> References: <935477.22738.qm@web94710.mail.in2.yahoo.com> <20100128131750.GA28400@warwick.ac.uk> Message-ID: <4B61CE61.30603@uoregon.edu> Dear Derek, Vivek and friends, I'm glad that Bettina and Derek have provided information about how to use GAP on problems such as this. If all you want to show is that this particular example is class 2 of order (at most) p^10, though, it's easy to do it by hand. We're given that a^b = a^(1+p^2), c^a = c^(1-p) and b^c = b^(1+p^2). Hence, (a^(p^3))^b = (a^b)^(p^3) = a^((1+p^3)p^3) = a^(p^3) and c^(a^(p^3)) = c^((1-p)^(p^3)) = c [what a mess of superscripts!], so a^(p^3) (i.e., [a,b]) is in Z(G). Similarly, a^(b^(p^2)) = a^((1+p^3)^(p^2)) = a and (b^(p^2))^c = (b^c)^(p^2) = b^((1+p^2)p^2) = b^(p^2), so b^(p^2) (i.e., [b,c]) is central. Finally, (c^p)^a = c^((1-p)p) = c^p and b^(c^p) = b^((1+p^2)^p) = b, so c^p (i.e., [a,c]) is central. Thus G/Z(G) is abelian. Since G' has order (at most) p^4 and G/G' has order (at most) p^6, G has order (at most) p^10. In the spirit of Burnside, I'll leave the elimination of "(at most)" to the reader. As ever, Charley Derek Holt wrote: > Dear GAP Forum, Dear Vivek, > > You can use the GAP package KBMAG to prove nilpotency of finitely presented > groups, using the method described by Charles Sims in his book of computing > in finitely presented groups. This uses the Knuth-Bendix completion > algorithm. > > This process is described and illustrated in Example 4 (p. 13) of the KBMAG > manual. I have successfully verifed that your group below is nilpotent of > order p^10 for p=2,3,5,7,11,13,17, and I am trying to do 19. > > Of course, since these groups are (apparently) finite, you could try > use coset enumeration. This will work for small primes such as 2 and 3, but > for larger primes the group order will probably be too large, and I think > the Sims algorithm will work better. > > You first run NilpotentQuotient (as described in Bettina Eick's reply) to > find the maximal nilpotent quotient of your group. The aim is then to > prove that the group is actually isomorphic to this quotient. > You do this by introducing new generators in the presentation which > correspond the power-commutator generators in the maximal nilpotent > quotient. You order the generators so that those at the bottom of the > group come first and then use the so-called recursive ordering on strings > to run Knuth-Bendix. > > Here is the basic GAP code to do this. > > LoadPackage("kbmag"); > SetInfoLevel(InfoRWS,2); > F:=FreeGroup("j","i","h","g","f","e","d","c","b","a");; > j:=F.1;; i:=F.2;; h:=F.3;; g:=F.4;; f:=F.5;; > e:=F.6;; d:=F.7;; c:=F.8;; b:=F.9;; a:=F.10;; > p:=3;; > rels := [a^p/e, b^p/f, c^p/d, e^p/g, f^p/h, g^p/i, i^p/j, > j^p, h^p, d^p, Comm(a,b)/i, Comm(a,c)/d, Comm(b,c)/h ];; > G := F/rels;; > R := KBMAGRewritingSystem(G);; > SetOrderingOfKBMAGRewritingSystem(R, "recursive"); > MakeConfluent(R); > > If successful it will halt with a confluent presentation containing the > relations of the power-commutator presentation of the computed maximal > nilpotent quotient. You have then proved that these relations hold in > the group itself (not just in the nilptent quotient), so you have proved > that the group is nilpotent. This consists of 65 reduction equations > (or 62 when p=2). > > The above works quickly for p=2,3,5,7. For larger primes, it helps to > restrict the length of the stored reduction relations, and then re-run > after completion. You have to experiment to find the optimal maximal > length to store. So, for example, the following works fast for p=17: > > p:=19;; > rels := [a^p/e, b^p/f, c^p/d, e^p/g, f^p/h, g^p/i, i^p/j, > j^p, h^p, d^p, Comm(a,b)/i, Comm(a,c)/d, Comm(b,c)/h ];; > G := F/rels;; > R := KBMAGRewritingSystem(G);; > SetOrderingOfKBMAGRewritingSystem(R, "recursive"); > O := OptionsRecordOfKBMAGRewritingSystem(R); > O.maxstoredlen := [40,40]; > MakeConfluent(R); > Unbind(O.maxstoredlen); > MakeConfluent(R); > > Derek Holt. > > > > > > > On Wed, Jan 27, 2010 at 08:06:38PM +0530, Vivek Jain wrote: >> Dear Forum, >> >> I want to know that: >> >> "Is it possible using GAP to check that given presentation is a nilpotent group of class 2 or not?" >> >> For example $G=\langle a,b,c| a^{p^5}, b^{p^3}, c^{p^2}, [a,b]=a^{p^3}, [a,c]=c^p, [b,c]=b^{p^2} \rangle $ where $p$ is a prime. >> >> Also how can we determine its automorphism group using GAP? >> >> >> with regards >> >> Vivek kumar jain >> >> >> >> >> Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From wright at uoregon.edu Fri Jan 29 02:29:27 2010 From: wright at uoregon.edu (Charles Wright) Date: Thu, 28 Jan 2010 18:29:27 -0800 Subject: [GAP Forum] p-group -- obvious typo In-Reply-To: <20100128131750.GA28400@warwick.ac.uk> References: <935477.22738.qm@web94710.mail.in2.yahoo.com> <20100128131750.GA28400@warwick.ac.uk> Message-ID: <4B624807.2050501@uoregon.edu> 1+p^3 should be 1+p^2 in line 5. No change in conclusion. CRBW From srmurthy at brookes.ac.uk Thu Feb 4 16:02:22 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Thu, 4 Feb 2010 16:02:22 +0000 Subject: [GAP Forum] GAP not working on Mac OS X 10.5.6 or later Message-ID: Hello. Since the Leopard update to the Mac OS X last year, the Mac version of GAP doesn't seem to work. I've raised this with Alexander Hulpke, but I keep having the same problem. The possibility was raised that it had to do with file permissions on the folder where GAP was installed, but I've checked the file permissions and there seems to be no restriction. These are lines from the console from the last time I tried to run GAP ------------------------ 16/12/2009 19:21:18 [0x0-0x33033].net.sourceforge.ggap.ggap[262] D: SettingsPrefs "/Users/sandeepmurthy/Library/Preferences/net.sourceforge.ggap.ggap.plist" 16/12/2009 19:21:18 [0x0-0x33033].net.sourceforge.ggap.ggap[262] D: SettingsState "/Users/sandeepmurthy/Library/Preferences/net.sourceforge.ggap.ggap-state.plist" 16/12/2009 19:21:34 [0x0-0x33033].net.sourceforge.ggap.ggap[262] D: ini file '/Volumes/sandeepmurthy/Library/Application Support/ggap/workspace.ini' does not exist 16/12/2009 19:21:34 [0x0-0x33033].net.sourceforge.ggap.ggap[262] *** Critical: could not create directory ' "/Volumes/sandeepmurthy/Library/Application Support/ggap" ' 16/12/2009 19:21:46 com.apple.launchd.peruser.501[98] ([0x0-0x33033].net.sourceforge.ggap.ggap[262]) Job appears to have crashed: Abort trap 16/12/2009 19:21:47 ReportCrash[265] Saved crash report for ggap[262] version 1.9.6 (1.9.6) to /Users/sandeepmurthy/Library/Logs/DiagnosticReports/ggap_2009-12-16-192147_sandeep-murthys-macbook.crash --------------------------- Would appreciate some help, and I'm unable to run GAP directly. 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 srmurthy at brookes.ac.uk Thu Feb 4 23:24:22 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Thu, 4 Feb 2010 23:24:22 +0000 Subject: [GAP Forum] GAP not working on Mac OS X 10.5.6 or later In-Reply-To: References: Message-ID: Hello. Thanks for all messages. I have corrected this problem. Sincerely, Sandeep. On 4 Feb 2010, at 23:22, Stephen Linton wrote: > I've taken this off the forum, since it seems to be a very specialised problem. > > ggp is working for me, on Mac OS 10.6.2 (Snow Leopard). > > I think the killer issue is > >> 16/12/2009 19:21:34 [0x0-0x33033].net.sourceforge.ggap.ggap[262] *** Critical: could not create directory ' "/Volumes/sandeepmurthy/Library/Application Support/ggap" ' > > I'm not sure why it's trying to do this. On my system there is > > /Users/sal/Library/Application Support/ggap > > but nothing in /Volumes/MacBook/Library/Application Support > > Maybe the simplest thing to try would be to uninstall and reinstall ggap? > > Steve > > On 4 Feb 2010, at 16:02, Sandeep Murthy wrote: > >> Hello. >> >> Since the Leopard update to the Mac OS X >> last year, the Mac version of GAP doesn't >> seem to work. I've raised this with Alexander >> Hulpke, but I keep having the same problem. >> The possibility was raised that it had to do with >> file permissions on the folder where GAP was >> installed, but I've checked the file permissions >> and there seems to be no restriction. >> >> These are lines from the console from the last >> time I tried to run GAP >> >> ------------------------ >> >> 16/12/2009 19:21:18 [0x0-0x33033].net.sourceforge.ggap.ggap[262] D: SettingsPrefs "/Users/sandeepmurthy/Library/Preferences/net.sourceforge.ggap.ggap.plist" >> 16/12/2009 19:21:18 [0x0-0x33033].net.sourceforge.ggap.ggap[262] D: SettingsState "/Users/sandeepmurthy/Library/Preferences/net.sourceforge.ggap.ggap-state.plist" >> 16/12/2009 19:21:34 [0x0-0x33033].net.sourceforge.ggap.ggap[262] D: ini file '/Volumes/sandeepmurthy/Library/Application Support/ggap/workspace.ini' does not exist >> 16/12/2009 19:21:34 [0x0-0x33033].net.sourceforge.ggap.ggap[262] *** Critical: could not create directory ' "/Volumes/sandeepmurthy/Library/Application Support/ggap" ' >> 16/12/2009 19:21:46 com.apple.launchd.peruser.501[98] ([0x0-0x33033].net.sourceforge.ggap.ggap[262]) Job appears to have crashed: Abort trap >> 16/12/2009 19:21:47 ReportCrash[265] Saved crash report for ggap[262] version 1.9.6 (1.9.6) to /Users/sandeepmurthy/Library/Logs/DiagnosticReports/ggap_2009-12-16-192147_sandeep-murthys-macbook.crash >> >> >> >> --------------------------- >> >> Would appreciate some help, and I'm unable to >> run GAP directly. >> >> 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 at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From dan_lanke at yahoo.com Fri Feb 5 14:56:57 2010 From: dan_lanke at yahoo.com (Dan Lanke) Date: Fri, 5 Feb 2010 06:56:57 -0800 (PST) Subject: [GAP Forum] braid group Message-ID: <162024.6920.qm@web45411.mail.sp1.yahoo.com> Dear Gap Forum, I would like to add more relations to the braid group B_n = 1, b_ib_{i+i}b_i=b_{i+1}b_ib_{i+1}> and check whether the resulting group is finite. The relations I want to add are: (b_i)^k=1, i=1,...(n-1) and (b_ib_{i+1})^l=1, i=1,...,(n-2), where k and l are some fixed positive integers. I have defined the new group using "FreeGroup" and tried checking if it is finite using "IsFinite", but in most cases this fails to give me an answer. Please let me know if there is a more efficient way to do this. Thanks, Dan From maasiru at yahoo.com Sat Feb 6 10:08:28 2010 From: maasiru at yahoo.com (muniru asiru) Date: Sat, 6 Feb 2010 02:08:28 -0800 (PST) Subject: [GAP Forum] Request Message-ID: <53646.38420.qm@web110509.mail.gq1.yahoo.com> Sirs, I should be grateful if someone would help me this problem fron Group Theory. ? If G is a group of order $p$ writeen additively, and $a$ is an element of G, then there is an element $b$ in G such that ? 1.? $(a+b) mod p =1$.? ? 2.? $(a+b) mod p =p$. ? What name do we call the elements $a$ and $b$ in Group Theory and in Gap in each case? ? Thanks. Dr. Muniru A. Asiru, Department of Mathematics & Statistics, The Federal Polytechnic, P.M.B. 55, Bida, Niger State, Nigeria. OR Dr. Muniru A. Asiru, P.O.Box. 294, Bida, Niger State, Nigeria. Email Addresses: maasiru at yahoo.com, remiasiru at yahoo.com, Mobile Phone number: +2348034271010 From elahehkhamseh at gmail.com Sat Feb 6 19:22:29 2010 From: elahehkhamseh at gmail.com (Elaheh khamseh) Date: Sat, 6 Feb 2010 11:22:29 -0800 Subject: [GAP Forum] question Message-ID: Dears There is a charactertion of p-groups of order P^5 in one paper for p>=5. I want to know what we have for groups order p^5 when p=2 or p=3. Are they different? Yours; E. Khamseh. From jbohanon2 at gmail.com Sat Feb 6 19:32:13 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sat, 6 Feb 2010 14:32:13 -0500 Subject: [GAP Forum] question In-Reply-To: References: Message-ID: I think in general the classification of groups of order p^n is different for p>=n than p=n. However, using, I believe, the p-quotient algorithm, the smaller "p"s have been done "by hand". Joe On Sat, Feb 6, 2010 at 2:22 PM, Elaheh khamseh wrote: > Dears > > There is a charactertion of p-groups of order P^5 in one paper for > p>=5. I want to know what we have for groups order p^5 when p=2 or > p=3. Are they different? > > Yours; > E. Khamseh. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From alireza_abdollahi at yahoo.com Sun Feb 7 06:38:57 2010 From: alireza_abdollahi at yahoo.com (Alireza Abdollahi) Date: Sat, 6 Feb 2010 22:38:57 -0800 (PST) Subject: [GAP Forum] question In-Reply-To: References: Message-ID: <952007.44683.qm@web35707.mail.mud.yahoo.com> Dear Ms. Khamseh, The point is that if G is a group of order p^n and p>= n, then the (nilpotenty) class of G is less than p. So it is possible to use Lazard Correspondence?between ?nilpotent p-groups and Lie rings of class =n, one may find a "uniform"?classification for all?p-groups of order p^n with p>=n. What remains, is to deal with the other values of p To: forum at gap-system.org Sent: Sat, February 6, 2010 10:52:29 PM Subject: [GAP Forum] question Dears There is a charactertion of p-groups of order P^5 in one paper for p>=5. I want to know what we have for groups order p^5 when p=2 or p=3. Are they different? Yours; E. Khamseh. _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Mon Feb 8 21:28:04 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 8 Feb 2010 14:28:04 -0700 Subject: [GAP Forum] braid group References: <8A15F6A5-B3DD-4C83-B278-DC58B93084D7@math.colostate.edu> Message-ID: <0A5F90A5-8DFA-408A-A179-F4FCB25213C5@math.colostate.edu> Dear forum, Dan Lanke asked: > I would like to add more relations to the braid group > B_n = 1, b_ib_{i+i}b_i=b_{i+1}b_ib_{i+1}> > and check whether the resulting group is finite. > > The relations I want to add are: (b_i)^k=1, i=1,...(n-1) and (b_ib_{i+1})^l=1, > i=1,...,(n-2), where k and l are some fixed positive integers. > > I have defined the new group using "FreeGroup" and tried checking if it is finite > using "IsFinite", but in most cases this fails to give me an answer. In general, trying to test whether a finitely presented group is actually finite is a very hard problem. In fact it is known to be unsolvable on a Turing machine equivalent computer. IsFinite or Size tries one approach, which would prove finiteness, but it is not trying whether the group is actually infinite. You therefore would be better off to try a variety of methods, also checking whether the group might be infinite. In general, there are three methods in use that can prove infinity of a finitely presented group: The first is to try to find a subgroup of small index which has infinite abelianization. You can find an example at http://www.gap-system.org/Doc/Examples/cavicchioli.html This second method, which probably is most fruitful for your situation, since your group is a quotient of a braid group, would be to try to compute a confluent rewriting system. The KBMAG package in GAP can be used here. A third method uses the Golod-Shafareevich estimates for the number of relators of a p-group.Some description Can be found in the manual at http://www.gap-system.org/Manuals/doc/htm/ref/CHAP045.htm#SECT015 If you have a large number of groups and need to filter, I would probably start by computing low index subgroups for a reasonable index, for example starting with 10, and changing this depending on the runtime needed, and then calculate the AbelianInvariants for the subgroups obtained. This might filter already some infinite cases. Then try to calculate the index of subgroups generated by only some of the generators (e.g. and in the group and so on). This test uses the same mechanism, coset enumeration, as `IsFinite' does, but it is an easier problem. If even this easier test fails, it might be an indication that the group is larger, possibly infinite. It certainly means that the na?ve finiteness test will fail. I know that this isn't really answering a question in detail, but you are looking potentially at a very hard problem. The best you can hope for is that the computer will eliminate some cases, leaving fewer to work on by hand. All the 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 srmurthy at brookes.ac.uk Tue Feb 9 21:20:50 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Tue, 9 Feb 2010 21:20:50 +0000 Subject: [GAP Forum] Querying for Abelian subgroups of a given index Message-ID: <711B03CB-3EB0-4351-A4AB-9ADBBC2B96E1@brookes.ac.uk> Hi. Is there a way in which I can query a given group on GAP if it has an Abelian subgroup of a given index? Sincerely, Sandeep. From jaijinenedra at yahoo.co.in Wed Feb 10 09:13:09 2010 From: jaijinenedra at yahoo.co.in (Vivek Jain) Date: Wed, 10 Feb 2010 14:43:09 +0530 (IST) Subject: [GAP Forum] p-group Message-ID: <507748.2204.qm@web94712.mail.in2.yahoo.com> Dear Prof. Bettina Eick, While doing following? Method as mentioned in your email "A" is not a group. The command IsGroup(A), AsGroup(A) fails. I want to determine weather "A" is abelian group or not. Can we get more information about the structure of A? ==============Method=============== G := function(p) ? ???local F, f, r, a, b, c; ? ???F := FreeGroup(3); ? ???f := GeneratorsOfGroup(F); a := f[1]; b := f[2]; c := f[3]; ? ???r := [a^(p^5), b^(p^3), c^(p^2), ? ? ? ? ???Comm(a,b)/a^(p^3), ? ? ? ? ???Comm(a,c)/c^p, ? ? ? ? ???Comm(b,c)/b^(p^2) ]; ? ???return F/r; end; LoadPackage("nq"); LoadPackage("autpgrp"); (example for p=3): gap> H := G(3); gap> K := NilpotentQuotient(H); Pcp-group with orders [ 27, 9, 3, 9, 3, 3 ] gap> Length(LowerCentralSeries(K)); 3 gap> A := AutomorphismGroupPGroup(K);; gap> A.size; 14348907 ====================================== with regards Vivek Kumar Jain ================================= Vivek Kumar Jain Post-Doctoral Fellow Harish-Chandra Research Institute Allahabad (India) ================================= --- On Thu, 28/1/10, Bettina Eick wrote: From: Bettina Eick Subject: Re: [GAP Forum] p-group To: "Vivek Jain" Cc: "GAP Forum" Date: Thursday, 28 January, 2010, 4:18 PM Dear Vivek kumar jain, you can use GAP to investigate your question for any fixed prime p. For example, the nilpotent quotient algorithm of the NQ package or the NQL package of GAP allows you to determine the largest class-c quotient of a finitely presented groups for any positive integer c or even the largest nilpotent quotient (if this exists). Further, there are methods available in GAP to determine the automorphism group of a finite p-group. Check the AutPGrp package for this purpose. In your given example, you can implement your considered group G in GAP as function in p: G := function(p) ? ???local F, f, r, a, b, c; ? ???F := FreeGroup(3); ? ???f := GeneratorsOfGroup(F); a := f[1]; b := f[2]; c := f[3]; ? ???r := [a^(p^5), b^(p^3), c^(p^2), ? ? ? ? ???Comm(a,b)/a^(p^3), ? ? ? ? ???Comm(a,c)/c^p, ? ? ? ? ???Comm(b,c)/b^(p^2) ]; ? ???return F/r; end; Then you load the relevant packages LoadPackage("nq"); LoadPackage("autpgrp"); And then you can do the following (for example for p=3): gap> H := G(3); gap> K := NilpotentQuotient(H); Pcp-group with orders [ 27, 9, 3, 9, 3, 3 ] gap> Length(LowerCentralSeries(K)); 3 gap> A := AutomorphismGroupPGroup(K);; gap> A.size; 14348907 Hence for p=3 your group has class 2 and you can see the size of its automorphism group. Generators and further information on the automorphisms is also stored in A, but is perhaps too long to be displayed here. Hope this helps, Bettina > "Is it possible using GAP to check that given presentation is a nilpotent group of class 2 or not?" > > For example $G=\langle? a,b,c| a^{p^5}, b^{p^3}, c^{p^2}, [a,b]=a^{p^3}, [a,c]=c^p, [b,c]=b^{p^2} \rangle $ where $p$ is a prime. > > Also how can we determine its automorphism group using GAP? > > > with regards > > Vivek kumar jain > > > > >? ? ? Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/ From hulpke at math.colostate.edu Wed Feb 10 16:00:21 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 10 Feb 2010 09:00:21 -0700 Subject: [GAP Forum] Querying for Abelian subgroups of a given index In-Reply-To: <711B03CB-3EB0-4351-A4AB-9ADBBC2B96E1@brookes.ac.uk> References: <711B03CB-3EB0-4351-A4AB-9ADBBC2B96E1@brookes.ac.uk> Message-ID: Dear Forum, On Feb 9, 2010, at 2/9/10 2:20, Sandeep Murthy wrote: > Is there a way in which I can query a given group on GAP > if it has an Abelian subgroup of a given index? > There is no generic method for this, but one could use parts of the subgroup lattice computation to help. What kinds of groups are you interested in? 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 beick at tu-bs.de Thu Feb 11 08:15:31 2010 From: beick at tu-bs.de (Bettina Eick) Date: Thu, 11 Feb 2010 09:15:31 +0100 (CET) Subject: [GAP Forum] p-group In-Reply-To: <507748.2204.qm@web94712.mail.in2.yahoo.com> References: <507748.2204.qm@web94712.mail.in2.yahoo.com> Message-ID: Dear Vivek Kumar Jain, you can convert you group with gap> B := ConvertHybridAutGroup(A); The result will be an ordinary automorphism group and you can then ask questions like gap> IsAbelian(B); Best wishes, Bettina From chin.bill at gmail.com Thu Feb 11 18:56:22 2010 From: chin.bill at gmail.com (Bill Chin) Date: Thu, 11 Feb 2010 12:56:22 -0600 Subject: [GAP Forum] group action on polynomials Message-ID: <9f36db5c1002111056i2b71f93dgdaa8e72f6d283c39@mail.gmail.com> I have defined a polynomial ring Q[x_1,...,x_5] over the rationals. How do you define an action of S_5 such that gx_i=x_g(i) for all g in S_5, i.e. an action permuting the vertices? I am interested in this and other actions on the polynomial ring. I have defined Q:=Rationals R:=PolynomialRing(Q,5) G:=Group[(12),(1,2,3,4,5)] Thanks in advance. From hulpke at math.colostate.edu Thu Feb 11 19:29:16 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 11 Feb 2010 12:29:16 -0700 Subject: [GAP Forum] group action on polynomials In-Reply-To: <9f36db5c1002111056i2b71f93dgdaa8e72f6d283c39@mail.gmail.com> References: <9f36db5c1002111056i2b71f93dgdaa8e72f6d283c39@mail.gmail.com> Message-ID: <8356C470-5E11-4E8D-AD24-EABE0ECB5AFE@math.colostate.edu> Dear Bill Chin, dear forum, > I have defined a polynomial ring Q[x_1,...,x_5] over the rationals. How do > you define an action of S_5 such that gx_i=x_g(i) for all g in S_5, i.e. an > action permuting the vertices? I am interested in this and other actions on > the polynomial ring. > > I have defined > > Q:=Rationals > R:=PolynomialRing(Q,5) > G:=Group[(12),(1,2,3,4,5)] With these definitions (correcting the syntax for the group definition, of course) you can use the action `OnIndeterminates' to compute orbits or stabilizers him and, for example. gap> ind:=IndeterminatesOfPolynomialRing(R); [ x_1, x_2, x_3, x_4, x_5 ] gap> pol:=ind[2]*ind[3]+ind[4]*ind[5]; x_2*x_3+x_4*x_5 gap> s:=Stabilizer(G,pol,OnIndeterminates); Group([ (2,4)(3,5), (4,5) ]) gap> Size(s); 8 gap> Orbit(G,pol,OnIndeterminates); [ x_2*x_3+x_4*x_5, x_1*x_3+x_4*x_5, x_1*x_5+x_3*x_4, x_1*x_5+x_2*x_4, x_2*x_5+x_3*x_4, x_1*x_2+x_4*x_5, x_1*x_4+x_2*x_5, x_1*x_2+x_3*x_5, x_1*x_5+x_2*x_3, x_1*x_3+x_2*x_5, x_1*x_4+x_2*x_3, x_1*x_2+x_3*x_4, x_1*x_3+x_2*x_4, x_2*x_4+x_3*x_5, x_1*x_4+x_3*x_5 ] gap> u:=Subgroup(G,[(1,2,3),(2,3,4)]); Group([ (1,2,3), (2,3,4) ]) gap> o:=Orbit(u,ind[1]*ind[2],OnIndeterminates); [ x_1*x_2, x_2*x_3, x_1*x_3, x_3*x_4, x_1*x_4, x_2*x_4 ] gap> inv:=Sum(o); x_1*x_2+x_1*x_3+x_1*x_4+x_2*x_3+x_2*x_4+x_3*x_4 gap> s:=Stabilizer(G,inv,OnIndeterminates); Group([ (1,2), (1,2,3,4) ]) gap> Size(s); 24 gap> Index(s,u); 2 I hope this is of help. Best wishes, 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 dan_lanke at yahoo.com Thu Feb 11 23:04:38 2010 From: dan_lanke at yahoo.com (Dan Lanke) Date: Thu, 11 Feb 2010 15:04:38 -0800 (PST) Subject: [GAP Forum] Structure description of a large group Message-ID: <460498.74546.qm@web45416.mail.sp1.yahoo.com> Dear GAP Forum, I have a permutation group (with two generators) of size 279936 = 2^7 * 3^7. How do I go about trying to find its structure description? Thanks, Dan From jbohanon2 at gmail.com Thu Feb 11 23:14:44 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Thu, 11 Feb 2010 18:14:44 -0500 Subject: [GAP Forum] Structure description of a large group In-Reply-To: <460498.74546.qm@web45416.mail.sp1.yahoo.com> References: <460498.74546.qm@web45416.mail.sp1.yahoo.com> Message-ID: <4B748F64.1010808@gmail.com> If you're running out of memory with the representation you're using, you can try IsomorphismPcGroup. Most algorithms tend to work faster with that. Note that since your group has 2 prime divisors, it must be solvable, hence it has a PC presentation. If you ever don't have a solvable group, you can do SmallerDegreePermutationRepresentation. Joe Dan Lanke wrote: > Dear GAP Forum, > > I have a permutation group (with two generators) of size 279936 = 2^7 * 3^7. > How do I go about trying to find its structure description? > > Thanks, > Dan > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From hulpke at math.colostate.edu Thu Feb 11 23:26:47 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 11 Feb 2010 16:26:47 -0700 Subject: [GAP Forum] Structure description of a large group In-Reply-To: <460498.74546.qm@web45416.mail.sp1.yahoo.com> References: <460498.74546.qm@web45416.mail.sp1.yahoo.com> Message-ID: <75735F36-2F48-473A-9541-D73468F15D10@math.colostate.edu> Dear Dan Langke,Dear forum, > I have a permutation group (with two generators) of size 279936 = 2^7 * 3^7. > How do I go about trying to find its structure description? In general, it doesn't make much sense to try to describe the structure of an arbitrary group of that order, respectively one will end up with a description which is far from describing the isomorphism type. The built-in `StructureDescription' function is likely to choke on a group of that size. What one can do is for example to first find normal subgroups, see whether any of these have complements and so on. What seems more fruitful, however, would be to use the permutation structure if the group is not too large degree. By using the action on orbits one could decompose as a subdirect product, and one could test for primitivity when acting on one orbit. If the degrees are very small one could even use `TransitiveIdentification' to identify the permutation group types. Otherwise, it probably would make sense to think what information you really want to get from the structure description. Do you want to have a name for the group? Do you want to reconstruct the group from smaller parts? Or do you simply want to see information about its structure, the letter might be obtained easier from information such as a chief series. 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 anvita21 at gmail.com Wed Feb 17 12:50:16 2010 From: anvita21 at gmail.com (Anvita) Date: Wed, 17 Feb 2010 18:50:16 +0600 Subject: [GAP Forum] Strange GAP, I Message-ID: <6a52effd1002170450u555ee31p3a02f0ab6757b8d7@mail.gmail.com> Dear Forum, This command hangs GAP: ----------------------------- Indeterminate(Ring(Sqrt(2))); ----------------------------- So does this one: ------------------- One(Ring(Sqrt(2))); ------------------- Could there be the same underlying reason / bug ?? This one, although being rather weird, works fine: ------------------------- One(Zero(Ring(Sqrt(2)))); ------------------------- Anvita From anvita21 at gmail.com Wed Feb 17 12:51:34 2010 From: anvita21 at gmail.com (Anvita) Date: Wed, 17 Feb 2010 18:51:34 +0600 Subject: [GAP Forum] Strange GAP, II Message-ID: <6a52effd1002170451n686695a7n993628b39330ccd9@mail.gmail.com> Dear Forum, If a pcgs has an element "g" of infinite relative order, the negative exponents of "g" seem to hang the function "ExponentsOfPcElement". For example, the program ------------------------------------------- F:=FreeGroup(1); g:=F.1; p := PcgsByPcSequence( FamilyObj(g), [g] ); ExponentsOfPcElement(p,g^-1); ------------------------------------------- instead of returning -1 runs forever. It this the expected behavior? Anvita From anvita21 at gmail.com Wed Feb 17 12:53:07 2010 From: anvita21 at gmail.com (Anvita) Date: Wed, 17 Feb 2010 18:53:07 +0600 Subject: [GAP Forum] Strange GAP, III Message-ID: <6a52effd1002170453y67b31acs2eec562eb51dfc91@mail.gmail.com> Dear Forum, GAP sometimes fails to find class fusions for character tables one of which is modular: ------------------------------------- c1:=CharacterTable(CyclicGroup(12)); c2:=CharacterTable("U3(11)"); PossibleClassFusions(c1,c2); # This line works fine (both tables ordinary) PossibleClassFusions(c1, c2 mod 11 ); # This one returns the following error: ------------------------------------- Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `ClassMultiplicationCoefficient' on 4 arguments called from ClassMultiplicationCoefficient( tbl, parm[i], parm[j], parm[kk] ) called from ConsiderStructureConstants( subtbl, tbl, subgroupfusions, quick ) called from PossibleClassFusions( subtbl, tbl, rec( quick := false, parameters := rec( approxfus := [ ], maxamb := 200000, minamb := 10000, maxlen := 10 ) ) ) 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 # A similar program returns no errors: ------------------------------------ c1:=CharacterTable(CyclicGroup(10)); c2:=CharacterTable("U3(11)"); PossibleClassFusions(c1,c2); PossibleClassFusions(c1, c2 mod 11 ); ------------------------------------- Anvita From thomas.breuer at math.rwth-aachen.de Wed Feb 17 13:31:26 2010 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed, 17 Feb 2010 14:31:26 +0100 Subject: [GAP Forum] Strange GAP, III In-Reply-To: <6a52effd1002170453y67b31acs2eec562eb51dfc91@mail.gmail.com> References: <6a52effd1002170453y67b31acs2eec562eb51dfc91@mail.gmail.com> Message-ID: <20100217133126.GA3102@gemma> Dear GAP Forum, Anvita wrote > GAP sometimes fails to find class fusions for character tables one of > which is modular: > > ------------------------------------- > c1:=CharacterTable(CyclicGroup(12)); > c2:=CharacterTable("U3(11)"); > PossibleClassFusions(c1,c2); # This line works fine (both > tables ordinary) > PossibleClassFusions(c1, c2 mod 11 ); # This one returns the following error: > ------------------------------------- > > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > [...] The function `PossibleClassFusions' is not defined for the case that one argument is a Brauer table and the other is an ordinary table, see the GAP Reference Manual. In the example shown above, the following should work. PossibleClassFusions( c1 mod 11, c2 mod 11 ); All the best, Thomas Breuer From dima at ntu.edu.sg Wed Feb 17 13:36:41 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed, 17 Feb 2010 21:36:41 +0800 Subject: [GAP Forum] Strange GAP, I In-Reply-To: <6a52effd1002170450u555ee31p3a02f0ab6757b8d7@mail.gmail.com> References: <6a52effd1002170450u555ee31p3a02f0ab6757b8d7@mail.gmail.com> Message-ID: <668720bc1002170536m3f29a993l49646aa2dca723af@mail.gmail.com> Dear Forum, This ring, Ring(Sqrt(2)), does not have a unity: this explains why One(Ring(Sqrt(2))) does not terminate. (it does not know how to "prove" that there is no unity, so it continues to generate new and new elements in hope to find one...) Then, it appears that polynomial rings in GAP are only implemented for rings with unity, and this explains why Indeterminate(Ring(Sqrt(2))), as it tries to find the unity first. Best, Dmirii On 17 February 2010 20:50, Anvita wrote: > Dear Forum, > > This command hangs GAP: > > ----------------------------- > Indeterminate(Ring(Sqrt(2))); > ----------------------------- > > So does this one: > > ------------------- > One(Ring(Sqrt(2))); > ------------------- > > Could there be the same underlying reason / bug ? > > This one, although being rather weird, works fine: > > ------------------------- > One(Zero(Ring(Sqrt(2)))); > ------------------------- > > Anvita > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. 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 hulpke at math.colostate.edu Wed Feb 17 16:01:52 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 17 Feb 2010 09:01:52 -0700 Subject: [GAP Forum] Strange GAP, II In-Reply-To: <6a52effd1002170451n686695a7n993628b39330ccd9@mail.gmail.com> References: <6a52effd1002170451n686695a7n993628b39330ccd9@mail.gmail.com> Message-ID: <000D0C9B-F846-4973-AE3E-3D162F8079A4@math.colostate.edu> Dear Forum, Anvita21 asked > > If a pcgs has an element "g" of infinite relative order, > the negative exponents of "g" seem to hang the function > "ExponentsOfPcElement". For example, the program > > ------------------------------------------- > F:=FreeGroup(1); > g:=F.1; > p := PcgsByPcSequence( FamilyObj(g), [g] ); > ExponentsOfPcElement(p,g^-1); > ------------------------------------------- > > instead of returning -1 runs forever. > It this the expected behavior? Yes, as the implementation of pcgs in the library assumes that the group is finite. The `Polycyclic' package allows infinite polycyclic groups and their polycyclic generating systems, but they need to be represented suitably, on cannot simply take a free group. 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 nagyg at math.u-szeged.hu Thu Feb 18 11:06:03 2010 From: nagyg at math.u-szeged.hu (=?ISO-8859-2?Q?Nagy_G=E1bor?=) Date: Thu, 18 Feb 2010 12:06:03 +0100 Subject: [GAP Forum] Bitwise operators Message-ID: <4B7D1F1B.5050709@math.u-szeged.hu> Dear Forum, Is there some possibility for using bitwise operations (OR,AND,...) for integers in GAP? Of course, I don't mean to reimplement these in GAP. I mean access to the C and C++ operations. Thanks, Gabor Nagy From hulpke at math.colostate.edu Fri Feb 19 17:09:24 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 19 Feb 2010 10:09:24 -0700 Subject: [GAP Forum] Bitwise operators In-Reply-To: <4B7D1F1B.5050709@math.u-szeged.hu> References: <4B7D1F1B.5050709@math.u-szeged.hu> Message-ID: Dear Gabor Nagy, > Is there some possibility for using bitwise operations (OR,AND,...) for integers in GAP? > > Of course, I don't mean to reimplement these in GAP. > > I mean access to the C and C++ operations. The binary lists offer internal operations on a bit level, using the C. operations. However at the moment there is no function interpreting integers as bit lists or vice versa. nevertheless, as long as you want the bits only to store properties, binary lists should do the job. Offering such operations for integers is somewhat problematic, because there are already different internal storages (depending on whether the integer is small or large) with further representations in the wings. I don't know whether any such representation is guaranteed to always be consistent with bitwise operations. All the 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 dan_lanke at yahoo.com Sun Feb 21 13:12:46 2010 From: dan_lanke at yahoo.com (Dan Lanke) Date: Sun, 21 Feb 2010 05:12:46 -0800 (PST) Subject: [GAP Forum] SmallGroup(64,177) Message-ID: <488819.78949.qm@web45411.mail.sp1.yahoo.com> Dear GAP Forum, Gap tells me that the structure description of SmallGroup(64,177) is (C2 x D16) : C2.? How do I determine explicitly the action of C2 on (C2 x D16), so that I can do some computations by hand? Thanks, D. From jbohanon2 at gmail.com Sun Feb 21 16:22:58 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sun, 21 Feb 2010 11:22:58 -0500 Subject: [GAP Forum] SmallGroup(64,177) In-Reply-To: <488819.78949.qm@web45411.mail.sp1.yahoo.com> References: <488819.78949.qm@web45411.mail.sp1.yahoo.com> Message-ID: <4B815DE2.2070004@gmail.com> If you don't specifically need the group in this exact form, it also works as Z8 : D8. If you plan to be doing a lot of things like this, you should check out the link below that I created a few years ago. http://www.joebohanon.com/math/64grps.txt Replace 64 with 32 to get those groups. You should double check my work by copying-and-pasting the code from the declaration of "f" down to the declaration of "g" then running: IdGroup(g) and making sure it returns [64,177] (or whatever number you need). I created that page for exactly the reason you described. My dissertation worked a lot with generators and relations and it was frustrating to try to deduce them from the internal structure of the small groups as PC-groups rather than some more natural finite presentation that lines up well with StructureDescription. Now, all that to say this. While the finite presentations I list are good for, say, describing the group in a paper, almost any computation you'd want to do in GAP works much faster with the PC-presentation. So what you ought to do is G:=SmallGroup(64,177); iso:=IsomorphismGroups(g,G); Then use the isomorphism to move back-and-forth when you need to. Or if the IsomorphismGroups command stalls, do IsomorphismPcGroup first then IsomorphicGroups with the image. For this specific group, when you run "Center" on g you get a group with 33 generators, in spite of the center having size 4. I've thought about doing this for groups of order 128, but I did 64 almost entirely by hand and there are 10 times the groups of order 128. A fairly difficult thing to do is to find a decent way to present the group. StructureDescription doesn't do anything with central products (as far as I know). Look at what the output gives you on SmallGroup(32,50) which is Q8 * D8. All that to say that for any given group, there are many way to present it. Joe Dan Lanke wrote: > Dear GAP Forum, > > Gap tells me that the structure description of SmallGroup(64,177) is > (C2 x D16) : C2. How do I determine explicitly the action of C2 on (C2 x D16), so that I can do some computations by hand? > > Thanks, > D. > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From al at cadadr.org Sun Mar 7 14:53:04 2010 From: al at cadadr.org (Lyosha Beshenov) Date: Sun, 07 Mar 2010 17:53:04 +0300 Subject: [GAP Forum] Quotients of abelian groups Message-ID: <878wa49oa7al23%al@cadadr.org> Hello, Here is a typical computational task. Given bases of two abelian groups A_1 and A_2, A_2 \subset A_1, compute the structure of A_1/A_2. For instance, if A_1 has a basis {a - b, c} and A_2 has a basis {a - b - c, -a + b - c}, then A_1/A_2 is isomorphic to Z/2Z. I'm wondering, is there a straightforward formulation and solution of this problem in terms of the GAP system? Thank you. -- Lyosha From dima at ntu.edu.sg Mon Mar 8 00:46:47 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Mon, 8 Mar 2010 08:46:47 +0800 Subject: [GAP Forum] Quotients of abelian groups In-Reply-To: <878wa49oa7al23%al@cadadr.org> References: <878wa49oa7al23%al@cadadr.org> Message-ID: <668720bc1003071646n75c3dc31iee01938f8ba32b56@mail.gmail.com> Dear Forum, as I already replied to the author, the following would work, although I do not know how efficient this is. gap> a0:=AbelianPcpGroup(3,[0,0,0]); Pcp-group with orders [ 0, 0, 0 ] gap> a:=Subgroup(a0,[a0.1*a0.2^-1,a0.3]); Pcp-group with orders [ 0, 0 ] gap> b:=Subgroup(a0,[a.1*a.2^-1,a.1^-1*a.2^-1]); Pcp-group with orders [ 0, 0 ] gap> a/b; Pcp-group with orders [ 2 ] gap> (here we use multiplicative notation for Abelian groups, which feels odd to me) Best, Dmitrii On 7 March 2010 22:53, Lyosha Beshenov wrote: > Hello, > > Here is a typical computational task. > > Given bases of two abelian groups A_1 and A_2, A_2 \subset A_1, > compute the structure of A_1/A_2. > > > For instance, if A_1 has a basis {a - b, c} and A_2 has a basis > {a - b - c, -a + b - c}, then A_1/A_2 is isomorphic to Z/2Z. > > > I'm wondering, is there a straightforward formulation and solution > of this problem in terms of the GAP system? > > > Thank you. > > -- Lyosha > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. 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 hulpke at me.com Mon Mar 8 01:53:36 2010 From: hulpke at me.com (Alexander Hulpke) Date: Sun, 07 Mar 2010 18:53:36 -0700 Subject: [GAP Forum] Quotients of abelian groups In-Reply-To: <878wa49oa7al23%al@cadadr.org> References: <878wa49oa7al23%al@cadadr.org> Message-ID: <3CF1318B-5688-43F0-889B-1E04F1E1B009@me.com> Dear Forum, On Mar 7, 2010, at 7:53 AM, Lyosha Beshenov wrote: > Given bases of two abelian groups A_1 and A_2, A_2 \subset A_1, > compute the structure of A_1/A_2. > > > For instance, if A_1 has a basis {a - b, c} and A_2 has a basis > {a - b - c, -a + b - c}, then A_1/A_2 is isomorphic to Z/2Z. Assuming you have a basis for A_1, a Smith Normal Form computation will give the desired information.In your example: gap> m:=[[1,-1,-1],[-1,1,-1]]; #A2generators in terms of A1 [ [ 1, -1, -1 ], [ -1, 1, -1 ] ] gap> SmithNormalFormIntegerMatTransforms(m); rec( rank := 2, normal := [ [ 1, 0, 0 ], [ 0, 2, 0 ] ], rowtrans := [ [ 0, -1 ], [ -1, -1 ] ], rowC := [ [ 1, 0 ], [ 0, 1 ] ], rowQ := [ [ 0, -1 ], [ -1, -1 ] ], colC := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ] ], colQ := [ [ 1, -1, 1 ], [ 0, 0, 1 ], [ 0, 1, -1 ] ], coltrans := [ [ 1, -1, 1 ], [ 0, 0, 1 ], [ 0, 1, 0 ] ] ) normal component shows A_1/A2 =Z/2 x Z rowtrans and coltrans are the respective base changes. 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 trebauchet1986 at yahoo.co.in Wed Mar 10 06:13:36 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Wed, 10 Mar 2010 11:43:36 +0530 (IST) Subject: [GAP Forum] Finding subgroups Message-ID: <416830.84518.qm@web94601.mail.in2.yahoo.com> Hi... ????? I needed to find the list of all subgroups for some commonly encountered groups like SU(3), S4 etc. It seems to me that GAP can only give the subgroups by listing the generators. Does anyone know if there is anyway that I can make it give me names of subgroups, like say A4??? Krishna The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/ From hulpke at math.colostate.edu Wed Mar 10 22:44:32 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 10 Mar 2010 15:44:32 -0700 Subject: [GAP Forum] Finding subgroups In-Reply-To: <416830.84518.qm@web94601.mail.in2.yahoo.com> References: <416830.84518.qm@web94601.mail.in2.yahoo.com> Message-ID: <08833C6D-235C-48F4-ADD5-BCF940CEE817@math.colostate.edu> Dear forum, On Mar 9, 2010, at 3/9/10 11:13, krishna mohan wrote: > I needed to find the list of all subgroups for some commonly encountered groups like SU(3), S4 etc. It seems to me that GAP can only give the subgroups by listing the generators. > > Does anyone know if there is anyway that I can make it give me names of subgroups, like say A4? in general, it doesn't really make sense to try to assign a name to a group of order more than 15 or so. Unless you're lucky, and have very particular groups with nice names, you'll end up with a large number of groups whose names are somehow very nondescriptive. Having said this, I append a description from a manual, currently in beta, http://www.math.colostate.edu/~hulpke/CGT/howtogap.pdf that tries to describe what one can hope to do as far as a group naming goes. Best wishes, Alexander Hulpke \section{Identifying groups} One of the most frequent requests that comes up is for {\GAP} to ``identify'' a given group. While some functionality for this exists, the problem is basically what ``identify'' means, or what a user expects from identification: \begin{itemize} \item For tiny orders (say up to 15), there are few groups up to isomorphism, and each of the groups has a ``natural'' name. Furthermore many these names belong into series (symmetric groups, dihedral groups, cyclic groups) and the remaining groups are in obvious ways (direct product or possibly semidirect product) composed from groups named this way. \item This clean situation breaks down quickly once the order increases: for example there are -- up to isomorphism -- 14 groups of order 16, 231 of order 96 and over 10 million of order 512. This rapid growth goes beyond any general ``naming'' or ``composition'' scheme. \item A decomposition as semidirect, subdirect or central product is not uniquely defined without some further information, which can be rather extensive to write down. \item Even if one might hope that a particular group would be composable in a nice way, this does not lead to an ``obvious'' description, for example the same group of order 16 could be described for example as $C_2\times D_8$, or as $C_2\ltimes Q_8$, or as $(C_2\times C_4)\rtimes C_2$ (and -- vice versa -- the last name could be given to $4$ nonisomorphic groups). In the context of matrix groups in characteristic $2$, $S_3$ is better called $SL_2(2)$, and so on. \item There are libraries of different classes of groups (e.g. small order up to isomorphism, or transitive subgroup of $S_n$ (for small $n$) up to conjugacy); these libraries typically allow to identify a given group, but the identification is just like the library call number of a book and gives little information about the group, it is mainly of use to allow recreation of the group with the identification number given as only information. \end{itemize} With these caveats, the following functions exist to identify groups and give them a name: \paragraph{\texttt{StructureDescription}} returns a string describing the isomorphism type of a group \gvar{G}. This string is produced recursively, trying to decompose groups as direct or semidirect products. The resulting string does \textbf{not} identify isomorphism types, nor is it neccessarily the most ``natural'' description of a group. \begin{verbatim} gap> g:=Group((1,2,3),(2,3,4));; gap> StructureDescription(g); "A4" \end{verbatim} \paragraph{Group Libraries} {\GAP} contains extensive libraries of ``small'' groups and many of these libraries allow identificatuion of a group therein. The associated library group then often comes with a name that might be appropriate. \begin{description} \item[Small Groups] The small groups library contains -- amongst others -- all groups of order $\le 1000$, except $512$. For such a group \texttt{IdGroup} returns a list \gvar{[sz,num]} such that the group is isomorphic to \texttt{SmallGroup(\gvar{sz,num})}. \begin{verbatim} gap> g:=Group((1,2,3),(2,3,4));; gap> IdGroup(g); [ 12, 3 ] gap> SmallGroup(12,3); \end{verbatim} \item[Transitive Groups] The transitive groups library contains transitive subgroups of $S_n$ of degree $\le 31$ up to $S_n$ conjugacy. For such a group of degree $n$, \texttt{TransitiveIdentification} returns a number \gvar{num}, such that the group is conjugate in $S_n$ to \texttt{TransitiveGroup(\gvar{n,num})}. \begin{verbatim} gap> g:=Group((1,2,3),(2,3,4));; gap> TransitiveIdentification(g); 4 gap> TransitiveGroup(NrMovedPoints(g),4); A4 \end{verbatim} \item[Primitive Groups] The primitive groups library contains primitive subgroups of $S_n$ (i.e. the group is transitive and affords no nontrivial $G$-invariant partition of the points) of degree $\le 1000$ up to $S_n$ conjugacy. For such a group of degree $n$, \texttt{PrimitiveIdentification} returns a number \gvar{num}, such that the group is conjugate in $S_n$ to \texttt{PrimitiveGroup(\gvar{n,num})}. \begin{verbatim} gap> g:=Group((1,2,3),(2,3,4));; gap> IsPrimitive(g,[1..4]); true gap> PrimitiveIdentification(g); 1 gap> PrimitiveGroup(NrMovedPoints(g),1); A(4) \end{verbatim} \end{description} -- 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 zahra.sheikhaleslami at gmail.com Tue Mar 16 19:29:21 2010 From: zahra.sheikhaleslami at gmail.com (zahra sheikhaleslami) Date: Tue, 16 Mar 2010 22:59:21 +0330 Subject: [GAP Forum] gap Message-ID: <56bac44f1003161229q3dd60f7au7000fb688d07051@mail.gmail.com> hi dearest, i am student. i study algebra. i want know more detailes about gap. please tell me someting about gap. thanks -- zahra sheikhaleslami best wishes From zahra.sheikhaleslami at gmail.com Tue Mar 16 19:29:21 2010 From: zahra.sheikhaleslami at gmail.com (zahra sheikhaleslami) Date: Tue, 16 Mar 2010 22:59:21 +0330 Subject: [GAP Forum] gap Message-ID: <56bac44f1003161229q3dd60f7au7000fb688d07051@mail.gmail.com> hi dearest, i am student. i study algebra. i want know more detailes about gap. please tell me someting about gap. thanks -- zahra sheikhaleslami best wishes From s-dmccune1 at math.unl.edu Tue Mar 16 20:24:25 2010 From: s-dmccune1 at math.unl.edu (Dave McCune) Date: Tue, 16 Mar 2010 15:24:25 -0500 Subject: [GAP Forum] reidemeister-schreier algorithm Message-ID: <4B9FE8F9.9010803@math.unl.edu> I have a group G and a map from G onto H, and I want GAP to use Reidemeister-Schreier to get a presentation for the kernel of the map. I couldn't figure out from the manual how to do this. Could somebody please help? Thanks. From hulpke at me.com Wed Mar 17 01:13:30 2010 From: hulpke at me.com (Alexander Hulpke) Date: Tue, 16 Mar 2010 19:13:30 -0600 Subject: [GAP Forum] reidemeister-schreier algorithm In-Reply-To: <4B9FE8F9.9010803@math.unl.edu> References: <4B9FE8F9.9010803@math.unl.edu> Message-ID: <1F582680-ABC2-4E27-8FDF-71CEAB9A75BB@me.com> Dear Dave McCune, Dear Forum, > I have a group G and a map from G onto H, and I want GAP to use Reidemeister-Schreier to get a presentation for the kernel of the map. I couldn't figure out from the manual how to do this. Could somebody please help? Thanks. If you just want a way to present the subgroup, `IsomorphismFpGroup' will do what you want -- it does Reidemeister-Schreier, as well as some Tietze-Transformations to get the presentation smaller. The homomorphism allows for easy translation between the subgroup of the original group, and the group with the rewritten presentation. For example: Create some fp group and a map gap> f:=FreeGroup("a","b"); gap> g:=f/ParseRelators(f,"a^2,b^3,[a,b]^5"); gap> RelatorsOfFpGroup(g); [ a^2, b^3, a^-1*b^-1*a*b*a^-1*b^-1*a*b*a^-1*b^-1*a*b*a^-1*b^-1*a*b*a^-1*b^ -1*a*b ] gap> A5:=Group((1,2,3,4,5),(1,2,3)); Group([ (1,2,3,4,5), (1,2,3) ]) gap> map:=GroupHomomorphismByImages(g,A5,GeneratorsOfGroup(g), > [(2,4)(3,5),(1,2,3)]); [ a, b ] -> [ (2,4)(3,5), (1,2,3) ] Now calculate the kernel, and determine an isomorphism onto a new fp group with the rewritten presentation: gap> k:=Kernel(map); Group() gap> iso:=IsomorphismFpGroup(k); [ <[ [ 1, 1 ] ]|b*a*b*a*b*a^-1*b*a^-1*b*a^-1>, <[ [ 2, 1 ] ]|b^-1*a*b^-1*a*b^-1*a^-1*b^-1*a^-1*b^-1*a^-1>, <[ [ 3, 1 ] ]|b*a*b^-1*a*b^-1*a*b^-1*a^-1*b^-1*a^-1*b>, <[ [ 4, 1 ] ]|a*b*a*b^-1*a*b^-1*a*b^-1*a^-1*b^-1*a^-1*b*a^-1>, <[ [ 5, 1 ] ]|b*a*b*a*b^-1*a*b*a*b*a^-1*b*a^-1*b^-1*a^-1*b*a^-1>, <[ [ 6, 1 ] ]|b^-1*a*b*a*b^-1*a*b^-1*a*b^-1*a^-1*b^-1*a^-1*b*a^-1*b> ] -> [ F1, F2, F3, F4, F5, F6 ] gap> h:=Range(iso); If we want the actual presentation: gap> RelatorsOfFpGroup(h); [ F4*F1^-1*F3*F6*F5*F6*F2*F1^-1*F5*F4^-1*F2^-1*F3^-1 ] If you want to go down to the bare metal and have a ``purer'' RRS, there is PresentationSubgroupRrs, which returns a ``presentation'' object. Greetings from Colorado, 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 joachim.neubueser at t-online.de Wed Mar 17 15:42:42 2010 From: joachim.neubueser at t-online.de (=?ISO-8859-1?Q?Joachim_Neub=FCser?=) Date: Wed, 17 Mar 2010 16:42:42 +0100 Subject: [GAP Forum] [Fwd: Re: gap] Message-ID: <4BA0F872.5040608@t-online.de> From joachim.neubueser at t-online.de Thu Mar 18 07:24:46 2010 From: joachim.neubueser at t-online.de (=?ISO-8859-15?Q?Joachim_Neub=FCser?=) Date: Thu, 18 Mar 2010 08:24:46 +0100 Subject: [GAP Forum] sorry Message-ID: <4BA1D53E.3040901@t-online.de> Dear Forum members, I apologise for sending am empty Forum mail yesterday. What I meant to send is the following text, that yesterday already reached Zahra S. Sorry for your inconveniance Joachim Neub?ser Dear Zahra Sheikhaleslami, You asked: I am student. I study algebra. I want to know more details about GAP. Please tell me something about GAP. GAP has a fairly comprehensive website that you can reach under http://www-gap.dcs.st-and.ac.uk/ On it you find information about the mathematical capabilities of GAP, about how to download GAP, about using it or programming yourself in the GAP language. In particular you find the manuals of GAP and its 'packages' provided for special purposes by users of GAP as well as a 'Tutorial' for beginners and several texts for people who want to learn GAP. There are FAQ about GAP as well as several worked-out examples of use of GAP from investigating the group of Rubik's cube to character tables of some simple groups. It will be easy to find your way through the website: on the left margin of each page there is a link to a sitemap, which depicts the rough structure of the website. Hope this will help you. Wishing you fun and success using GAP, with kind regards Joachim Neub?ser sorry From sal at cs.st-andrews.ac.uk Thu Mar 18 09:29:39 2010 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Thu, 18 Mar 2010 09:29:39 +0000 Subject: [GAP Forum] gap In-Reply-To: <56bac44f1003161229q3dd60f7au7000fb688d07051@mail.gmail.com> References: <56bac44f1003161229q3dd60f7au7000fb688d07051@mail.gmail.com> Message-ID: Dear Zabra Sheikhaleslami, The best place to start finding out about GAP is on our website, which you will fine at http://www.gap-system.org Steve Linton On 16 Mar 2010, at 19:29, zahra sheikhaleslami wrote: > hi dearest, > > > i am student. i study algebra. > > i want know more detailes about gap. > > please tell me someting about gap. > > thanks > > -- > zahra sheikhaleslami > best wishes > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From kohl at univlora.edu.al Thu Mar 18 09:35:18 2010 From: kohl at univlora.edu.al (Stefan Kohl) Date: Thu, 18 Mar 2010 10:35:18 +0100 Subject: [GAP Forum] ACA '10 in Vlora / Albania, Session on Computational Group Theory Message-ID: <15ac27c11003180235v3bc31995qcfe0fbfe4fbdbe43@mail.gmail.com> ACA '10, Applications of Computer Algebra ========================================= Vlora / Albania June 24, 2010 -- June 27, 2010 Website: http://aca2010.info/index.php/aca2010/aca2010 Closing date for funding applications: March 30, 2010 Closing date for registration: June 12, 2010 --- Session on Computational Group Theory ------------------------------------- --- Call for Talks, Papers and Participation --- Organizers: Stefan Kohl, kohl at univlora.edu.al, http://univlora.edu.al/personel/kohl/ Dmitry Malinin, malinin at univlora.edu.al, http://univlora.edu.al/personel/malinin/ The session topics include, but are not restricted to, the description and analysis of algorithms and methods for computation in - group theory, - representation theory, - Galois theory and - lattice theory, as well as the presentation of results obtained by their use. The session also discusses applications of such algorithms and methods to other parts of mathematics and sciences. Examples of possible session topics in group theory are algorithms and methods for - finitely- or recursively presented groups, - p-groups or polycyclically presented groups, - finite or infinite matrix groups (including crystallographic groups), - finite or infinite permutation groups, - simple groups, - group actions, - geometry of groups, - group cohomology and - group rings as well as algorithms and methods for classifying groups (or objects closely related to groups) with certain properties, and the presentation of results obtained using such algorithms and methods. From trebauchet1986 at yahoo.co.in Thu Mar 18 17:07:32 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Thu, 18 Mar 2010 22:37:32 +0530 (IST) Subject: [GAP Forum] Decomposing direct products of reps into irreps Message-ID: <410160.7136.qm@web94608.mail.in2.yahoo.com> Hi..... ??????? Suppose I take the direct product of two two-dimensional representations of D4...and then I want to decompose it as direct sum of irreducible representations of D4........ I need to do such decompositions quite often for my current project... So I was wondering if GAP has anything built in to tackle the above task... I searched the manual but came up with nought.... Krishna Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ From dima at ntu.edu.sg Thu Mar 18 17:52:22 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Fri, 19 Mar 2010 01:52:22 +0800 Subject: [GAP Forum] Decomposing direct products of reps into irreps In-Reply-To: <410160.7136.qm@web94608.mail.in2.yahoo.com> References: <410160.7136.qm@web94608.mail.in2.yahoo.com> Message-ID: <668720bc1003181052r64b598d8yc24d1c25505c1fd2@mail.gmail.com> Dear Krishna, Presuming you are talking about representations over complex numbers, GAP can easily tell you with which multiplicities the irreducible representations appear in the representation P you have. For this you just need to compute its character x(P). Then computing the scalar products of x(P) with the characters of the irreducible representations (available in the character table) of your group will give you this information. Doing the actual decomposition into the direct sum of the irreducibles is also doable by the brute-force method described e.g. in the 1st part of J.Serre's book "Linear representations of finite groups" (look for "explicit decomposition of a representation"), but there seems to be no GAP code publicly available that actually does this computation. (I wrote such code a while ago, and could e-mail it to you, although it's by no means finished or anything...) Best, Dmitrii On 19 March 2010 01:07, krishna mohan wrote: > Hi..... > > > Suppose I take the direct product of two two-dimensional representations of D4...and then I want to decompose it as direct sum of irreducible representations of D4........ > > I need to do such decompositions quite often for my current project... > > So I was wondering if GAP has anything built in to tackle the above task... > > I searched the manual but came up with nought.... > > Krishna > > > > Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. 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 vdabbagh at sfu.ca Thu Mar 18 18:07:42 2010 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Thu, 18 Mar 2010 11:07:42 -0700 (PDT) Subject: [GAP Forum] Decomposing direct products of reps into irreps In-Reply-To: <1714225391.14958151268935372634.JavaMail.root@jaguar7.sfu.ca> Message-ID: <936141964.14961891268935662196.JavaMail.root@jaguar7.sfu.ca> Dear Krishna, You can use the GAP package REPSN. The function "ConstituentsOfRepresentation" decomposes the given ordinary reducible representation to its irreducible constituents. You can contact me directly if you have any question about this package. Regards Vahid Dabbaghian ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ ----- Original Message ----- From: "krishna mohan" To: forum at gap-system.org Sent: Thursday, March 18, 2010 10:07:32 AM GMT -08:00 US/Canada Pacific Subject: [GAP Forum] Decomposing direct products of reps into irreps Hi..... ??????? Suppose I take the direct product of two two-dimensional representations of D4...and then I want to decompose it as direct sum of irreducible representations of D4........ I need to do such decompositions quite often for my current project... So I was wondering if GAP has anything built in to tackle the above task... I searched the manual but came up with nought.... Krishna Your Mail works best with the New Yahoo Optimized IE8. Get it NOW! http://downloads.yahoo.com/in/internetexplorer/ _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From Jaco.Versfeld at wits.ac.za Thu Mar 18 20:49:28 2010 From: Jaco.Versfeld at wits.ac.za (Jaco Versfeld) Date: Thu, 18 Mar 2010 22:49:28 +0200 Subject: [GAP Forum] Help needed with function Factors Message-ID: Hi There, I want to factor a polynomial in GF(2^3). After I started GAP, I type the following commands (with outputs): gap> f := GF(8); GF(2^3) gap> y := Indeterminate(f); x_1 gap> pol := y^7 + Z(2)^0; x_1^7+Z(2)^0 gap> Factors(pol); [ x_1+Z(2)^0, x_1^3+x_1+Z(2)^0, x_1^3+x_1^2+Z(2)^0 ] However, I expect the result to be all the non-zero elements in GF(2^3). What am I missing? (How can I evaluate p for Z(2^3)^2, for instance?) Your time, effort and suggestions will be greatly appreciated Jaco _______________________________ Jaco Versfeld Lecturer Centre for Telecommunications Access and Services School of Electrical and Information Engineering University of the Witwatersrand Johannesburg Tel: +27-11-717-7212 Email: jaco.versfeld at wits.ac.za web: http://dept.ee.wits.ac.za/~versfeld

This communication is intended for the addressee only. It is confidential. If you have received this communication in error, please notify us immediately and destroy the original message. You may not copy or disseminate this communication without the permission of the University. Only authorized signatories are competent to enter into agreements on behalf of the University and recipients are thus advised that the content of this message may not be legally binding on the University and may contain the personal views and opinions of the author, which are not necessarily the views and opinions of The University of the Witwatersrand, Johannesburg. All agreements between the University and outsiders are subject to South African Law unless the University agrees in writing to the contrary.

From hulpke at math.colostate.edu Thu Mar 18 21:17:14 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 18 Mar 2010 15:17:14 -0600 Subject: [GAP Forum] Help needed with function Factors In-Reply-To: References: Message-ID: <73FA85AD-3EF6-4E7F-8DE8-85ED9A0C455E@math.colostate.edu> Dear forum, Dear Jaco Versfeld, > I want to factor a polynomial in GF(2^3). > > gap> f := GF(8); > GF(2^3) > gap> y := Indeterminate(f); > x_1 > gap> pol := y^7 + Z(2)^0; > x_1^7+Z(2)^0 > gap> Factors(pol); > [ x_1+Z(2)^0, x_1^3+x_1+Z(2)^0, x_1^3+x_1^2+Z(2)^0 ] > > However, I expect the result to be all the non-zero elements in GF(2^3). What am I missing? Polynomials in GAP are defined for a Family (typically, these are all elements of finite fields for a particular characteristic), but factorization is done by default over the field of coefficients, which often is just the prime field. (The reason for doing so, is that often it is not desired, and certainly more expensive, to construct the splitting field.) In your example, the indeterminate `y' is actually defined for characteristic 2, and the coefficient field of the polynomial is GF(2). You can of course factor over larger fields, by specifying the appropriate polynomial ring (you need to specify a polynomial ring, not the field over which it is defined, because factorization happens in the polynomial ring.) In your example, this can be done in the following way. gap> Factors(PolynomialRing(GF(8)),pol); [ x_1+Z(2)^0, x_1+Z(2^3), x_1+Z(2^3)^2, x_1+Z(2^3)^3, x_1+Z(2^3)^4, x_1+Z(2^3)^5, x_1+Z(2^3)^6 ] gap> Factors(PolynomialRing(GF(16)),pol); [ x_1+Z(2)^0, x_1^3+x_1+Z(2)^0, x_1^3+x_1^2+Z(2)^0 ] If you instead want roots, the command `RootsOfUPol' (possibly indicating the field) will work: gap> RootsOfUPol(pol); [ Z(2)^0 ] gap> RootsOfUPol(GF(8),pol); [ Z(2)^0, Z(2^3), Z(2^3)^2, Z(2^3)^3, Z(2^3)^4, Z(2^3)^5, Z(2^3)^6 ] > (How can I evaluate p for Z(2^3)^2, for instance?) the operation `Value' will work for the polynomial and any element in characteristic 2: gap> Value(pol,Z(8)^5); 0*Z(2) gap> Value(pol,Z(32)^5); Z(2^5)^10 I hope this is of help, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From zahra.sheikhaleslami at gmail.com Fri Mar 19 13:10:13 2010 From: zahra.sheikhaleslami at gmail.com (zahra sheikhaleslami) Date: Fri, 19 Mar 2010 16:40:13 +0330 Subject: [GAP Forum] hi Message-ID: <56bac44f1003190610y3bac5c31q9cf9378a415f55b1@mail.gmail.com> -- zahra sheikhaleslami best wishes From max at quendi.de Fri Mar 19 13:43:44 2010 From: max at quendi.de (Max Horn) Date: Fri, 19 Mar 2010 14:43:44 +0100 Subject: [GAP Forum] ZeroMutable for a group ring module Message-ID: <858F6CC7-C365-4870-881B-2B4F33A07593@quendi.de> Dear Forum members, I am doing some work in GAP with integral group rings, specifically with modules over those. For this, I wanted to get a mutable zero "vector" of a module M (to be modified later on). However, it turns out that ZeroMutable(M) does not work (in GAP 4.4.12) for my case. To my confusion, ZeroMutable(Zero(M)) *does* work. Am I doing something wrong? Is this intentional or a bug? Here's an explicit example gap> G:=SymmetricGroup(3); # Some group, doesn't matter which Sym( [ 1 .. 3 ] ) gap> ZG:=GroupRing(Integers,G); # integral group ring of G gap> M:=ZG^3; # some ZG module ( ^3 ) gap> Zero(M); IsMutable(last); [ of ..., of ..., of ... ] false gap> ZeroMutable(Zero(M)); IsMutable(last); [ of ..., of ..., of ... ] true gap> ZeroMutable(M); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `ZERO_MUT' 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> Best regards, Max From chakaben at gmx.de Sun Mar 21 09:49:33 2010 From: chakaben at gmx.de (chakachak) Date: Sun, 21 Mar 2010 10:49:33 +0100 Subject: [GAP Forum] How can I extend the "permitted memory"? Message-ID: <690D8821-BF22-47E4-A12C-929AD229AAB3@gmx.de> Hello GAP-Forum, I am new to GAP and I have a question concerning the "-o command line option". When I am giving GAP the StructureDescription-Command on a Group of order 3715891200 after half an hour or so GAP says: "exceeded the permitted memory (`-o' command line option)" As a MacBook-User I can?t do anything with the suggestions from the ReferenceManual: Whatever suggested key I pressed while opening GAP, I did not accomplish to open the dialog box in which I should write the command the extend the workspace. And even if I would accomplish to open the dialog box, the ReferenceManual says, that as a MacOs- User it would be impossible to change the Workspace over the -o command line option... So: How can I expand the workspace? Thanks in advance from Oliver Benjamin from Cologne in Germany. From jbohanon2 at gmail.com Sun Mar 21 11:29:32 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sun, 21 Mar 2010 07:29:32 -0400 Subject: [GAP Forum] How can I extend the "permitted memory"? In-Reply-To: <690D8821-BF22-47E4-A12C-929AD229AAB3@gmx.de> References: <690D8821-BF22-47E4-A12C-929AD229AAB3@gmx.de> Message-ID: <4BA6031C.1080105@gmail.com> My guess is that with a group of that size, you stand no chance of getting an answer out of StructureDescription even with a lot of memory. That said, send me the generators in a separate e-mail and I'll try it out on a machine with 4 GB of RAM. I might also be able to get you a StructureDescription without using that function. Joe chakachak wrote: > Hello GAP-Forum, > > I am new to GAP and I have a question concerning the "-o command line > option". > > When I am giving GAP the StructureDescription-Command on a Group of > order 3715891200 after half an hour or so GAP says: > > "exceeded the permitted memory (`-o' command line option)" > > As a MacBook-User I can?t do anything with the suggestions from the > ReferenceManual: Whatever suggested key I pressed while opening GAP, > I did not accomplish to open the dialog box in which I should write > the command the extend the workspace. And even if I would accomplish > to open the dialog box, the ReferenceManual says, that as a MacOs-User > it would be impossible to change the Workspace over the -o command > line option... > > So: > > How can I expand the workspace? > > > Thanks in advance > > from Oliver Benjamin from Cologne in Germany. > > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From jbohanon2 at gmail.com Sun Mar 21 12:18:43 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sun, 21 Mar 2010 08:18:43 -0400 Subject: [GAP Forum] How can I extend the "permitted memory"? In-Reply-To: <1D151D0E-EA83-4276-A171-054A40394922@gmx.de> References: <690D8821-BF22-47E4-A12C-929AD229AAB3@gmx.de> <4BA6031C.1080105@gmail.com> <1D151D0E-EA83-4276-A171-054A40394922@gmx.de> Message-ID: <4BA60EA3.8090002@gmail.com> Oliver and Forum, Here is how you can get what you want without StructureDescription (and which I highly recommend for big groups): Oliver's group was generated by I20:=(1,2,4,8,16,11)(3,6,12)(5,10,20,19,17,13)(7,14)(9,18,15); O20:=(2,3,5,9,17,14,8,15,10,19,18,16,12,4,7,13,6,11); First off, given that this is a shuffle group, the structure is well known and can be found here: http://uoregon.edu/~kantor/PAPERS/PerfectShuffles.pdf The answer to his question is that this group has the form Z2^10 : S10 or also the wreath product S2 wr S10. However, to show how this can be achieved in GAP, first a brief description of what StructureDescripton does. Basically, you want to find normal subgroups that tell a lot about the structure of G. For every one you find, you can say something about G, but finding the best one is a bit difficult. When you call StructureDescription it first tries to determine if you have a "nice" group, where "nice" is anything like "abelian", "dihedral", "simple", "symmetric" etc. GAP has no trouble recognizing gigantic groups if they fall in one of those categories. It can also easily find if you have a direct product. Beyond that it essentially tries to compute the entire lattice using a call to ConjugacyClassesSubgroups. When you call that, the newest version of GAP first finds the solvable radical S (the largest solvable normal subgroup) and computes the lattice of G/S. In this case, you had S10. For groups without a solvable radical, it uses "LatticeByCyclicExtension", which starts with a call to "Zuppos" which was the first place the call to StructureDescription gets bogged down. The zuppos are cyclic subgroups of prime power order, of which there are 344,251 in S10. I've seen GAP compute zuppos that high before, but it takes quite a while. GAP will use these to build the entire lattice from the bottom up. After this completes (and for S10, it might not, unless you have a ton of memory), it pulls the subgroups it find back to G, and tries to figure out, for each pre-imaged subgroup of S10, which subgroups of 2^10 are invariant under it. That's the second huge problem with this group as 2^10 has gobs and gobs of subgroups. So here's how I would approach this problem once I knew the size of the group was too big to use StructureDescription for. gap> N:=RadicalGroup(G); gap> StructureDescription(last); "C2 x C2 x C2 x C2 x C2 x C2 x C2 x C2 x C2 x C2" gap> StructureDescription(G/N); "S10" At this point, I know the group has the form Z2^10 . S10, but now I need to know if it splits or not. In this case, since N is solvable, I can run gap> Complementclasses(G,N); [ , ] This says that GAP found what we need, so this is a split extension. If it returned [] we'd know it was non-split. If you're dealing with a different groups where N is not solvable, things are considerably more difficult. The best solution I can come up with is to run IsomorphicSubgroups(G,G/N), but many times this involves calling StructureDescription, which I wanted to avoid in the first place. However, if G/N is small enough you might avoid that problem. Hope this helps Joe chakachak wrote: > That is very kind of you! > > > Here are the two generators: > > I20:=(1,2,4,8,16,11)(3,6,12)(5,10,20,19,17,13)(7,14)(9,18,15); > O20:=(2,3,5,9,17,14,8,15,10,19,18,16,12,4,7,13,6,11); > > It?s for my paper I need to write for my Examination. I am writing > about shufflegroups. > > Thank You very, very much! > > Yours Oliver Benjamin from Cologne. > > > > > Am 21.03.2010 um 12:29 schrieb Joe Bohanon: > >> My guess is that with a group of that size, you stand no chance of >> getting an answer out of StructureDescription even with a lot of memory. >> >> That said, send me the generators in a separate e-mail and I'll try >> it out on a machine with 4 GB of RAM. I might also be able to get >> you a StructureDescription without using that function. >> >> Joe >> >> chakachak wrote: >>> Hello GAP-Forum, >>> >>> I am new to GAP and I have a question concerning the "-o command >>> line option". >>> >>> When I am giving GAP the StructureDescription-Command on a Group of >>> order 3715891200 after half an hour or so GAP says: >>> >>> "exceeded the permitted memory (`-o' command line option)" >>> >>> As a MacBook-User I can?t do anything with the suggestions from the >>> ReferenceManual: Whatever suggested key I pressed while opening GAP, >>> I did not accomplish to open the dialog box in which I should write >>> the command the extend the workspace. And even if I would accomplish >>> to open the dialog box, the ReferenceManual says, that as a >>> MacOs-User it would be impossible to change the Workspace over the >>> -o command line option... >>> >>> So: >>> >>> How can I expand the workspace? >>> >>> >>> Thanks in advance >>> >>> from Oliver Benjamin from Cologne in Germany. >>> >>> >>> >>> >>> >>> >>> >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >>> > > From mbg.nimda at gmail.com Mon Mar 22 16:33:30 2010 From: mbg.nimda at gmail.com (mbg nimda) Date: Mon, 22 Mar 2010 17:33:30 +0100 Subject: [GAP Forum] Looking for automorphisms of triple steiner systems Message-ID: Hello, I'm new here and forgive me if I broke any rules. I'm trying to determine the automorphism group of Steiner(2,3,13) but I get a memory exceeded error. Here is the session: gap> st; [ [ 2, 4, 11 ], [ 7, 10, 12 ], [ 3, 8, 10 ], [ 2, 6, 12 ], [ 3, 6, 13 ], [ 1, 6, 10 ], [ 5, 11, 13 ], [ 1, 2, 3 ], [ 3, 4, 9 ], [ 5, 7, 8 ], [ 3, 7, 11 ], [ 4, 8, 12 ], [ 1, 8, 13 ], [ 5, 6, 9 ], [ 9, 12, 13 ], [ 1, 7, 9 ], [ 2, 5, 10 ], [ 2, 7, 13 ], [ 2, 8, 9 ], [ 6, 8, 11 ], [ 9, 10, 11 ], [ 4, 10, 13 ], [ 1, 11, 12 ], [ 1, 4, 5 ], [ 4, 6, 7 ], [ 3, 5, 12 ] ] gap> gap> gap> g:=SymmetricGroup(13); Sym( [ 1 .. 13 ] ) gap> h:=Stabilizer(g,st,OnSetsSets); exceeded the permitted memory (`-o' command line option) at i := i + 1; called from List( e, function ( i ) return OnSets( i, g ); end ) called from act( orb[p], acts[i] ) called from OrbitStabilizerAlgorithm( G, false, false, gens, acts, rec( pnt := d, act := act ) ) called from orbish( G, pnt, gens, acts, act ) called from CallFuncList( StabilizerFunc, arg ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> Thanks if you can find a workaround. From hulpke at math.colostate.edu Mon Mar 22 17:36:12 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 22 Mar 2010 11:36:12 -0600 Subject: [GAP Forum] Looking for automorphisms of triple steiner systems In-Reply-To: References: Message-ID: <844AAC59-E010-418D-AE18-7AF2812A7D16@math.colostate.edu> Dear Forum, Mbg Nimda asked: > I'm trying to determine the automorphism group of Steiner(2,3,13) but I get > a memory exceeded error. > Here is the session: > > gap> st; > [ [ 2, 4, 11 ], [ 7, 10, 12 ], [ 3, 8, 10 ], [ 2, 6, 12 ], [ 3, 6, 13 ], [ > 1, 6, 10 ], [ 5, 11, 13 ], [ 1, 2, 3 ], > [ 3, 4, 9 ], [ 5, 7, 8 ], [ 3, 7, 11 ], [ 4, 8, 12 ], [ 1, 8, 13 ], [ 5, > 6, 9 ], [ 9, 12, 13 ], [ 1, 7, 9 ], > [ 2, 5, 10 ], [ 2, 7, 13 ], [ 2, 8, 9 ], [ 6, 8, 11 ], [ 9, 10, 11 ], [ 4, > 10, 13 ], [ 1, 11, 12 ], [ 1, 4, 5 ], > [ 4, 6, 7 ], [ 3, 5, 12 ] ] > gap> > gap> > gap> g:=SymmetricGroup(13); > Sym( [ 1 .. 13 ] ) > gap> h:=Stabilizer(g,st,OnSetsSets); First, `st' should be sorted to be a set: st:=Set(st); Then, alas, the OnSetsSets action only does a naive orbit algorithm, and has no backtrack implementation. The stabilizer calculation therefore needs to form the whole orbit, which is unlikely to succeed. The best way to deal with this would be to use the GRAPE package, encode the steiner system in a graph and use the graph automorphism function. Alternatively (as 13 choose 3= 286 is still small), you could take the action on 3-sets, and in this action compute a set stabilizer (a single set stabilizer has a backtrack implementation and therefore much faster): gap> comb:=Combinations([1..13],3);; gap> act:=ActionHomomorphism(g,comb,OnSets,"surjective"); Now translate st to a set of points in this action of degree 286 gap> stp:=Set(List(st,x->Position(comb,x))); [ 1, 22, 42, 47, 56, 64, 83, 90, 99, 106, 107, 126, 137, 145, 149, 153, 175, 191, 199, 205, 210, 229, 239, 262, 277, 282 ] stabilize, and transfer back to S13: gap> u:=Stabilizer(Image(act),stp,OnSets); gap> u:=PreImage(act,u); Group([ (4,11)(5,12)(6,10)(7,9)(8,13), (1,9)(2,4)(5,8)(6,13)(10,12) ]) 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 at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From L.H.Soicher at qmul.ac.uk Mon Mar 22 17:53:04 2010 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Mon, 22 Mar 2010 17:53:04 +0000 Subject: [GAP Forum] Looking for automorphisms of triple steiner systems In-Reply-To: <844AAC59-E010-418D-AE18-7AF2812A7D16@math.colostate.edu> References: <844AAC59-E010-418D-AE18-7AF2812A7D16@math.colostate.edu> Message-ID: <20100322175304.GA15388@maths.qmul.ac.uk> Dear Forum, I would suggest making use of the DESIGN package and its function to compute the automorphism group of a block design, as illustrated in the logfile, below. The DESIGN package uses GRAPE for this computation, which in turn makes use of Brendan McKay's nauty package, and so this will only work on a Unix system on which GAP, GRAPE and DESIGN have been fully installed. Regards, Leonard gap> LoadPackage("design"); Loading GRAPE 4.3 (GRaph Algorithms using PErmutation groups), by L.H.Soicher at qmul.ac.uk. ----------------------------------------------------------------------------- Loading DESIGN 1.4 (The Design Package for GAP) by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). ----------------------------------------------------------------------------- true gap> st:=[ [ 2, 4, 11 ], [ 7, 10, 12 ], [ 3, 8, 10 ], [ 2, 6, 12 ], [ 3, 6, 13 ], [ > 1, 6, 10 ], [ 5, 11, 13 ], [ 1, 2, 3 ], > [ 3, 4, 9 ], [ 5, 7, 8 ], [ 3, 7, 11 ], [ 4, 8, 12 ], [ 1, 8, 13 ], [ 5, > 6, 9 ], [ 9, 12, 13 ], [ 1, 7, 9 ], > [ 2, 5, 10 ], [ 2, 7, 13 ], [ 2, 8, 9 ], [ 6, 8, 11 ], [ 9, 10, 11 ], [ 4, > 10, 13 ], [ 1, 11, 12 ], [ 1, 4, 5 ], > [ 4, 6, 7 ], [ 3, 5, 12 ] ];; gap> S:=BlockDesign(13,st); rec( isBlockDesign := true, v := 13, blocks := [ [ 1, 2, 3 ], [ 1, 4, 5 ], [ 1, 6, 10 ], [ 1, 7, 9 ], [ 1, 8, 13 ], [ 1, 11, 12 ], [ 2, 4, 11 ], [ 2, 5, 10 ], [ 2, 6, 12 ], [ 2, 7, 13 ], [ 2, 8, 9 ], [ 3, 4, 9 ], [ 3, 5, 12 ], [ 3, 6, 13 ], [ 3, 7, 11 ], [ 3, 8, 10 ], [ 4, 6, 7 ], [ 4, 8, 12 ], [ 4, 10, 13 ], [ 5, 6, 9 ], [ 5, 7, 8 ], [ 5, 11, 13 ], [ 6, 8, 11 ], [ 7, 10, 12 ], [ 9, 10, 11 ], [ 9, 12, 13 ] ] ) gap> AllTDesignLambdas(S); [ 26, 6, 1 ] gap> G:=AutomorphismGroup(S); Group([ (1,7,9)(2,11,4)(5,13,10)(6,8,12), (4,11)(5,12)(6,10)(7,9)(8,13) ]) gap> Size(G); 6 gap> On Mon, Mar 22, 2010 at 11:36:12AM -0600, Alexander Hulpke wrote: > > > Dear Forum, > > Mbg Nimda asked: > > > I'm trying to determine the automorphism group of Steiner(2,3,13) but I get > > a memory exceeded error. > > Here is the session: > > > > gap> st; > > [ [ 2, 4, 11 ], [ 7, 10, 12 ], [ 3, 8, 10 ], [ 2, 6, 12 ], [ 3, 6, 13 ], [ > > 1, 6, 10 ], [ 5, 11, 13 ], [ 1, 2, 3 ], > > [ 3, 4, 9 ], [ 5, 7, 8 ], [ 3, 7, 11 ], [ 4, 8, 12 ], [ 1, 8, 13 ], [ 5, > > 6, 9 ], [ 9, 12, 13 ], [ 1, 7, 9 ], > > [ 2, 5, 10 ], [ 2, 7, 13 ], [ 2, 8, 9 ], [ 6, 8, 11 ], [ 9, 10, 11 ], [ 4, > > 10, 13 ], [ 1, 11, 12 ], [ 1, 4, 5 ], > > [ 4, 6, 7 ], [ 3, 5, 12 ] ] > > gap> > > gap> > > gap> g:=SymmetricGroup(13); > > Sym( [ 1 .. 13 ] ) > > gap> h:=Stabilizer(g,st,OnSetsSets); > > First, `st' should be sorted to be a set: > st:=Set(st); > > Then, alas, the OnSetsSets action only does a naive orbit algorithm, and has no backtrack implementation. The stabilizer calculation therefore needs to form the whole orbit, which is unlikely to succeed. > > The best way to deal with this would be to use the GRAPE package, encode the steiner system in a graph and use the graph automorphism function. > > Alternatively (as 13 choose 3= 286 is still small), you could take the action on 3-sets, and in this action compute a set stabilizer (a single set stabilizer has a backtrack implementation and therefore much faster): > > gap> comb:=Combinations([1..13],3);; > gap> act:=ActionHomomorphism(g,comb,OnSets,"surjective"); > > > Now translate st to a set of points in this action of degree 286 > gap> stp:=Set(List(st,x->Position(comb,x))); > [ 1, 22, 42, 47, 56, 64, 83, 90, 99, 106, 107, 126, 137, 145, 149, 153, 175, > 191, 199, 205, 210, 229, 239, 262, 277, 282 ] > > stabilize, and transfer back to S13: > gap> u:=Stabilizer(Image(act),stp,OnSets); > > gap> u:=PreImage(act,u); > Group([ (4,11)(5,12)(6,10)(7,9)(8,13), (1,9)(2,4)(5,8)(6,13)(10,12) ]) > > 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 at math.colostate.edu, Phone: ++1-970-4914288 > http://www.math.colostate.edu/~hulpke > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Tue Mar 23 03:35:31 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Tue, 23 Mar 2010 11:35:31 +0800 Subject: [GAP Forum] Looking for automorphisms of triple steiner systems In-Reply-To: <20100322175304.GA15388@maths.qmul.ac.uk> References: <844AAC59-E010-418D-AE18-7AF2812A7D16@math.colostate.edu> <20100322175304.GA15388@maths.qmul.ac.uk> Message-ID: <668720bc1003222035waa992d1kf8352f1607cc9e9d@mail.gmail.com> Hi Leonard, I suppose your definition of a Unix system includes Windows with Cygwin installed, and with GAP installed via the Cygwin route, right? Best, Dima On 23 March 2010 01:53, Leonard Soicher wrote: > Dear Forum, > > I would suggest making use of the DESIGN package and its > function to compute the automorphism group of a block > design, as illustrated in the logfile, below. > The DESIGN package uses GRAPE for this computation, which > in turn makes use of Brendan McKay's nauty package, and so > this will only work on a Unix system on which GAP, GRAPE > and DESIGN have been fully installed. > > Regards, > Leonard > > gap> LoadPackage("design"); > > Loading GRAPE 4.3 (GRaph Algorithms using PErmutation groups), > by L.H.Soicher at qmul.ac.uk. > > ----------------------------------------------------------------------------- > Loading DESIGN 1.4 (The Design Package for GAP) > by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). > ----------------------------------------------------------------------------- > true > gap> st:=[ [ 2, 4, 11 ], [ 7, 10, 12 ], [ 3, 8, 10 ], [ 2, 6, 12 ], [ 3, 6, 13 ], [ >> 1, 6, 10 ], [ 5, 11, 13 ], [ 1, 2, 3 ], >> [ 3, 4, 9 ], [ 5, 7, 8 ], [ 3, 7, 11 ], [ 4, 8, 12 ], [ 1, 8, 13 ], [ 5, >> 6, 9 ], [ 9, 12, 13 ], [ 1, 7, 9 ], >> [ 2, 5, 10 ], [ 2, 7, 13 ], [ 2, 8, 9 ], [ 6, 8, 11 ], [ 9, 10, 11 ], [ 4, >> 10, 13 ], [ 1, 11, 12 ], [ 1, 4, 5 ], >> [ 4, 6, 7 ], [ 3, 5, 12 ] ];; > gap> S:=BlockDesign(13,st); > rec( isBlockDesign := true, v := 13, > blocks := [ [ 1, 2, 3 ], [ 1, 4, 5 ], [ 1, 6, 10 ], [ 1, 7, 9 ], > [ 1, 8, 13 ], [ 1, 11, 12 ], [ 2, 4, 11 ], [ 2, 5, 10 ], [ 2, 6, 12 ], > [ 2, 7, 13 ], [ 2, 8, 9 ], [ 3, 4, 9 ], [ 3, 5, 12 ], [ 3, 6, 13 ], > [ 3, 7, 11 ], [ 3, 8, 10 ], [ 4, 6, 7 ], [ 4, 8, 12 ], [ 4, 10, 13 ], > [ 5, 6, 9 ], [ 5, 7, 8 ], [ 5, 11, 13 ], [ 6, 8, 11 ], [ 7, 10, 12 ], > [ 9, 10, 11 ], [ 9, 12, 13 ] ] ) > gap> AllTDesignLambdas(S); > [ 26, 6, 1 ] > gap> G:=AutomorphismGroup(S); > Group([ (1,7,9)(2,11,4)(5,13,10)(6,8,12), (4,11)(5,12)(6,10)(7,9)(8,13) ]) > gap> Size(G); > 6 > gap> > > On Mon, Mar 22, 2010 at 11:36:12AM -0600, Alexander Hulpke wrote: >> >> >> Dear Forum, >> >> Mbg Nimda asked: >> >> > I'm trying to determine the automorphism group of Steiner(2,3,13) but I get >> > a memory exceeded error. >> > Here is the session: >> > >> > gap> st; >> > [ [ 2, 4, 11 ], [ 7, 10, 12 ], [ 3, 8, 10 ], [ 2, 6, 12 ], [ 3, 6, 13 ], [ >> > 1, 6, 10 ], [ 5, 11, 13 ], [ 1, 2, 3 ], >> > [ 3, 4, 9 ], [ 5, 7, 8 ], [ 3, 7, 11 ], [ 4, 8, 12 ], [ 1, 8, 13 ], [ 5, >> > 6, 9 ], [ 9, 12, 13 ], [ 1, 7, 9 ], >> > [ 2, 5, 10 ], [ 2, 7, 13 ], [ 2, 8, 9 ], [ 6, 8, 11 ], [ 9, 10, 11 ], [ 4, >> > 10, 13 ], [ 1, 11, 12 ], [ 1, 4, 5 ], >> > [ 4, 6, 7 ], [ 3, 5, 12 ] ] >> > gap> >> > gap> >> > gap> g:=SymmetricGroup(13); >> > Sym( [ 1 .. 13 ] ) >> > gap> h:=Stabilizer(g,st,OnSetsSets); >> >> First, `st' should be sorted to be a set: >> st:=Set(st); >> >> Then, alas, the OnSetsSets action only does a naive orbit algorithm, and has no backtrack implementation. The stabilizer calculation therefore needs to form the whole orbit, which is unlikely to succeed. >> >> The best way to deal with this would be to use the GRAPE package, encode the steiner system in a graph and use the graph automorphism function. >> >> Alternatively (as 13 choose 3= 286 is still small), you could take the action on 3-sets, and in this action compute a set stabilizer (a single set stabilizer has a backtrack implementation and therefore much faster): >> >> gap> comb:=Combinations([1..13],3);; >> gap> act:=ActionHomomorphism(g,comb,OnSets,"surjective"); >> >> >> Now translate st to a set of points in this action of degree 286 >> gap> stp:=Set(List(st,x->Position(comb,x))); >> [ 1, 22, 42, 47, 56, 64, 83, 90, 99, 106, 107, 126, 137, 145, 149, 153, 175, >> 191, 199, 205, 210, 229, 239, 262, 277, 282 ] >> >> stabilize, and transfer back to S13: >> gap> u:=Stabilizer(Image(act),stp,OnSets); >> >> gap> u:=PreImage(act,u); >> Group([ (4,11)(5,12)(6,10)(7,9)(8,13), (1,9)(2,4)(5,8)(6,13)(10,12) ]) >> >> 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 at math.colostate.edu, Phone: ++1-970-4914288 >> http://www.math.colostate.edu/~hulpke >> >> >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. 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 alexk at mcs.st-andrews.ac.uk Wed Mar 24 22:21:46 2010 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 24 Mar 2010 22:21:46 +0000 Subject: [GAP Forum] ZeroMutable for a group ring module In-Reply-To: <858F6CC7-C365-4870-881B-2B4F33A07593@quendi.de> References: <858F6CC7-C365-4870-881B-2B4F33A07593@quendi.de> Message-ID: Dear Max, dear GAP Forum, The description of Zero and ZeroMutable in the chapter "Domains and their Elements" of the reference manual states these operations as primarily designed to be applicable to additive elements rather than domains (only 'Zero' may be applicable to a domain, which has to be in this case an additive magma-with-zero). This why ZeroMutable is applicable to Zero(M) but not to M in the example in question. Best, Alexander On 19 Mar 2010, at 13:43, Max Horn wrote: > Dear Forum members, > > I am doing some work in GAP with integral group rings, specifically with modules over those. For this, I wanted to get a mutable zero "vector" of a module M (to be modified later on). However, it turns out that ZeroMutable(M) does not work (in GAP 4.4.12) for my case. To my confusion, ZeroMutable(Zero(M)) *does* work. Am I doing something wrong? Is this intentional or a bug? > > > Here's an explicit example > > gap> G:=SymmetricGroup(3); # Some group, doesn't matter which > Sym( [ 1 .. 3 ] ) > gap> ZG:=GroupRing(Integers,G); # integral group ring of G > > gap> M:=ZG^3; # some ZG module > ( ^3 ) > gap> Zero(M); IsMutable(last); > [ of ..., of ..., of ... ] > false > gap> ZeroMutable(Zero(M)); IsMutable(last); > [ of ..., of ..., of ... ] > true > gap> ZeroMutable(M); > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 1st choice method found for `ZERO_MUT' 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> > > > Best regards, > Max From combariza at gmail.com Thu Mar 25 19:12:44 2010 From: combariza at gmail.com (German Combariza) Date: Thu, 25 Mar 2010 15:12:44 -0400 Subject: [GAP Forum] Modules over a Group Ring. Message-ID: Dear Forum, I really appreciate if anybody can help me with this: Is there a function like NullSpace but for modules over a group ring? Let $G$ a finite $2$-group. Consider the Group Ring $F[G]$ over the field of two elements. Let $V$ sub $F[G]$-module of $\oplus^n F[G]$ (n copies of the group ring). I have a $F[G]$-tranformation T:V^a \to V^b. I need Kernel(T). From josef.lauri at um.edu.mt Thu Mar 25 20:08:11 2010 From: josef.lauri at um.edu.mt (Josef Lauri) Date: Thu, 25 Mar 2010 21:08:11 +0100 Subject: [GAP Forum] Looking for automorphisms of triple steiner systems Message-ID: <4BABC2AB.9070103@um.edu.mt> Hello Dima, Yes, I started using gap under cygwin before eventually switching over to linux, and grape and nauty worked fine although when you load grape you get the message saying that unix based modules will not work. I just ignored it and they worked! Good luck. Josef Date: Tue, 23 Mar 2010 11:35:31 +0800 From: "Asst. Prof. Dmitrii (Dima) Pasechnik" To: Leonard Soicher Cc: "forum at gap-system.org" Subject: Re: [GAP Forum] Looking for automorphisms of triple steiner systems Message-ID: <668720bc1003222035waa992d1kf8352f1607cc9e9d at mail.gmail.com> Content-Tjoseype: text/plain; charset="UTF-8" Hi Leonard, I suppose your definition of a Unix system includes Windows with Cygwin installed, and with GAP installed via the Cygwin route, right? Best, Dima From trof1984 at rambler.ru Fri Mar 26 10:41:30 2010 From: trof1984 at rambler.ru (Alex Trofimuk) Date: Fri, 26 Mar 2010 13:41:30 +0300 Subject: [GAP Forum] subgroups of GL(3,7) Message-ID: <1205031668.1269600090.54259288.91393@mcgi74.rambler.ru> -- Dear Gap forum, Alex Trofimuk asked: How to compute all subgroups of GL(3,7) and GL(3,11)? I write the following commands: G:=GL(3,7); GL(3,7) gap> imG:=Image(IsomorphismPermGroup(G));; gap> c:=ConjugacyClassesSubgroups(imG);; and GAP says: exceeded the permitted memory (`-o' command line option) at sorted := ShallowCopy( list ); called from Collected( StructuralCopy( types ) ) called from rbase.nextLevel( rbase.partition, rbase ); called from PBEnumerate( 1, not repr ) called from PartitionBacktrack( G, Pr, false, rbase, data, L, L ) called from oper( Parent( D ), D ) called from ?.. Alex Trofimuk. -- ?????? ????? ICQ 7.0 http://icq.rambler.ru/ From dima at ntu.edu.sg Fri Mar 26 16:37:26 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sat, 27 Mar 2010 00:37:26 +0800 Subject: [GAP Forum] subgroups of GL(3,7) In-Reply-To: <1205031668.1269600090.54259288.91393@mcgi74.rambler.ru> References: <1205031668.1269600090.54259288.91393@mcgi74.rambler.ru> Message-ID: <668720bc1003260937u3ef654d2v30405934a901bc4@mail.gmail.com> Dear Alex, As stated, your problem is pretty hopeless --- the group is too big to do this by brute force. You have to "help" GAP -- the maximal subgroups of GL(3,q) were determined by Dickson, so you can generate the maximal subgroups "by hand". And then consider each one in turn... HTH, Dima 2010/3/26 Alex Trofimuk : > > > > -- Dear Gap forum, > Alex Trofimuk asked: > > How to compute all subgroups of GL(3,7) and GL(3,11)? > > I write the following commands: > G:=GL(3,7); > GL(3,7) > gap> imG:=Image(IsomorphismPermGroup(G));; > gap> c:=ConjugacyClassesSubgroups(imG);; > > and GAP says: > > exceeded the permitted memory (`-o' command line option) at > sorted := ShallowCopy( list ); > called from > Collected( StructuralCopy( types ) ) called from > rbase.nextLevel( rbase.partition, rbase ); called from > PBEnumerate( 1, not repr ) called from > PartitionBacktrack( G, Pr, false, rbase, data, L, L ) called from > oper( Parent( D ), D ) called from ?.. > > Alex Trofimuk. > > -- > ?????? ????? ICQ 7.0 http://icq.rambler.ru/ > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. 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 jbohanon2 at gmail.com Sat Mar 27 00:14:23 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Fri, 26 Mar 2010 20:14:23 -0400 Subject: [GAP Forum] subgroups of GL(3,7) In-Reply-To: <668720bc1003260937u3ef654d2v30405934a901bc4@mail.gmail.com> References: <1205031668.1269600090.54259288.91393@mcgi74.rambler.ru> <668720bc1003260937u3ef654d2v30405934a901bc4@mail.gmail.com> Message-ID: <4BAD4DDF.40701@gmail.com> Actually, I think this can be done at least for L3(11), but you'll have to get down-and-dirty with the source code. If you call ConjugacyClassesSubgroups on either of these groups, the function that ends up being called (assuming you have the latest version of GAP) is LatticeViaRadical. In turn, this determines that the radical group of GL(3,11) is a Z10, and it will try to construct the lattice of L(3,11) first. That's what's causing the exceeded memory errors. If GAP did eventually finish constructing these, it would then try determining G:which of the lifted subgroups contain non-trivial subgroups that do not contain the radical and do "lifting". If you look in the "lib" directory, these functions are in "grplatt.gi". As Dmitiri suggested, you can look at the maximal subgroups, but even better, you can look at the table of marks in GAP's library. The bigger ones in there were actually constructed using the maximal subgroup idea (presented in a paper by Pfeiffer on the lattice of M24). Here's a basic list of commands that you can run. Here, I'm assuming G is the permutation representation of GL(3,7): R:=RadicalGroup(G); hom:=NaturalHomomorphismByNormalSubgroup(G,R); H:=Image(hom); tom:=TableOfMarks("L3(11)"); K:=UnderlyingGroup(tom); iso:=IsomorphismGroups(H,K); ccls:=List([1..Size(SubsTom(tom))],i->ConjugacyClassSubgroups(K,i)); At this point, you would copy the source code for "LatticeViaRadical" into a new function, find the point at which it is trying to construct the lattice of L(3,11), and skip that and instead of computing it, let it be one of the arguments you feed in. Again, I'm not 100% sure this will work, but I know that it is taking what is probably the hardest part of the computation out of it. This works on L3(11) and not L3(7) because in the case of GL(3,7), modding out by the radical group gives you PGL which, for q=7 is not the same as PSL. GAP's TOM library does have L3(7) in there. L3(13) is not in there, but I constructed it using Pfeiffer's methods a few years ago. I can probably dig it up if you want it. I have another way that I can construct lattices for groups like this that I will try out and possible be able to send you, for GL(3,7). (It involves code that was given to me by someone else that I probably shouldn't release). Joe Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear Alex, > > As stated, your problem is pretty hopeless --- the group is too big to > do this by brute force. > You have to "help" GAP -- the maximal subgroups of GL(3,q) were determined by > Dickson, so you can generate the maximal subgroups "by hand". > And then consider each one in turn... > > HTH, > Dima > > 2010/3/26 Alex Trofimuk : > >> >> -- Dear Gap forum, >> Alex Trofimuk asked: >> >> How to compute all subgroups of GL(3,7) and GL(3,11)? >> >> I write the following commands: >> G:=GL(3,7); >> GL(3,7) >> gap> imG:=Image(IsomorphismPermGroup(G));; >> gap> c:=ConjugacyClassesSubgroups(imG);; >> >> and GAP says: >> >> exceeded the permitted memory (`-o' command line option) at >> sorted := ShallowCopy( list ); >> called from >> Collected( StructuralCopy( types ) ) called from >> rbase.nextLevel( rbase.partition, rbase ); called from >> PBEnumerate( 1, not repr ) called from >> PartitionBacktrack( G, Pr, false, rbase, data, L, L ) called from >> oper( Parent( D ), D ) called from ?.. >> >> Alex Trofimuk. >> >> -- >> ?????? ????? ICQ 7.0 http://icq.rambler.ru/ >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> >> > > > > -- > Dmitrii Pasechnik > ----- > DISCLAIMER: Any text following this sentence does not constitute a > part of this message, and was added automatically during transmission. > > 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 > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From trebauchet1986 at yahoo.co.in Tue Mar 30 07:38:12 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Tue, 30 Mar 2010 12:08:12 +0530 (IST) Subject: [GAP Forum] How to make GAP use a representation Message-ID: <920829.39077.qm@web94614.mail.in2.yahoo.com> Hi... ???? My current project involves working with representations. I have seen that the package "repsn" allows one to construct the irreducible representation corresponding to a particular character in the irreducible character table. Also, it can give you an equivalent representation for a given representation as well as reduce a given representation into irreducible representations. There are two thing I would like GAP to do for me....but I am unable to find how to get it done.. 1. Specify a representation to GAP in matrix form and make it work with that representation. 2. Take direct (Kronecker) product of two irreducible representations (or any two representations) to give a new representation. If I know how to do the first part, I think I can use the Kronecker product function on matrices to achieve the second. Thanks in advance Krishnamohan P Student Indian Institute of Science The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. http://in.yahoo.com/ From sandeepr.murthy at gmail.com Thu Apr 1 23:36:09 2010 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Thu, 1 Apr 2010 23:36:09 +0100 Subject: [GAP Forum] List passing and access Message-ID: <23CA40B4-E68A-4FD4-A087-83CF4DF9A7B4@brookes.ac.uk> Hi. I have a question: is it better / quicker to pass a set of arguments to a GAP function as a list, or as individual objects? Sincerely, S. Murthy. From mim_ at op.pl Thu Apr 8 15:27:18 2010 From: mim_ at op.pl (mim_ at op.pl) Date: Thu, 08 Apr 2010 16:27:18 +0200 Subject: [GAP Forum] Co1 generators in SO24 Message-ID: Hello, I have received following email from one matematician. I have asked him for the matrix generators of Conway group Co1 in SO(24). Do you know how to obtain such generators in GAP ? The following Magma code should work: L := Lattice("Lambda",24); G := AutomorphismGroup(L); B := BasisMatrix(L); S := ShortestVectors(L); S := S cat [-S[i] : i in [1..#S]]; M := MatrixRing(Rationals(),24); G := MatrixGroup<24, Rationals() | [B^(-1) * M!G.i * B : i in [1..Ngens(G)]]>; Then S will be the list of minimal vectors and G will be the automorphism group, as a subgroup of SO(24). The code for G is a little ugly, because by default Magma will express it as a subgroup of GL_24(Z) instead. < end of quote> Here is the base matrix of my leech lattice. The determinant is 8^12. B:=[[4,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0], [2,2,2,2,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0], [2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0], [2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0], [2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0], [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0], [2,0,2,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2], [2,0,0,2,2,2,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2], [2,2,0,0,2,0,2,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,2], [0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,2], [0,0,0,0,0,0,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0], [0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0], [-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]; Regards, Marek From Mathieu.Dutour at ens.fr Fri Apr 9 08:01:39 2010 From: Mathieu.Dutour at ens.fr (Mathieu Dutour) Date: Fri, 9 Apr 2010 09:01:39 +0200 Subject: [GAP Forum] Co1 generators in SO24 In-Reply-To: References: Message-ID: <20100409070139.GA14946@orge.ens.fr> There are a number of ways to do that. If you are interested in the automorphism group of the Leech lattice, that is the double cover of the group Co1, then you can use my package "polyhedral" (from http://www.liga.ens.fr/~dutour/Polyhedral/index.html) which is not official or the package "cryst" which is official. Both rely on the use of autom by B. Souvignier and W. Plesken and Magma rely as well on this program. But I should point to you that what you are asking is Co1, i.e. the quotient of the automorphism group of the Leech lattice by the antipodal involution. The atlas of finite groups http://brauer.maths.qmul.ac.uk/Atlas/v3/spor/Co1/ does not list obvious 24-dimensional rational representations of this group. Mathieu >> Hello, >> >> I have received following email from one matematician. I have asked him for the matrix >> generators of Conway group Co1 in SO(24). Do you know how to obtain such generators in GAP ? >> >> >> The following Magma code should work: >> >> L := Lattice("Lambda",24); >> G := AutomorphismGroup(L); >> B := BasisMatrix(L); >> S := ShortestVectors(L); >> S := S cat [-S[i] : i in [1..#S]]; >> M := MatrixRing(Rationals(),24); >> G := MatrixGroup<24, Rationals() | [B^(-1) * M!G.i * B : i in [1..Ngens(G)]]>; >> >> Then S will be the list of minimal vectors and G will be the >> automorphism group, as a subgroup of SO(24). The code for G is >> a little ugly, because by default Magma will express it as a >> subgroup of GL_24(Z) instead. >> < end of quote> >> >> Here is the base matrix of my leech lattice. The determinant is 8^12. >> B:=[[4,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0], >> [2,2,2,2,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0], >> [4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0], >> [2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0], >> [2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0], >> [2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0], >> [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0], >> [2,0,2,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2], >> [2,0,0,2,2,2,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2], >> [2,2,0,0,2,0,2,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,2], >> [0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,2], >> [0,0,0,0,0,0,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0], >> [0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0], >> [-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]; >> >> Regards, >> Marek y From dima at ntu.edu.sg Fri Apr 9 09:04:32 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Fri, 9 Apr 2010 16:04:32 +0800 Subject: [GAP Forum] Co1 generators in SO24 In-Reply-To: References: Message-ID: Dear Marek, you can find matrices for 2.Co1 here: http://brauer.maths.qmul.ac.uk/Atlas/spor/Co1/gap0/2Co1G1-Zr24B0.g as a subgroup of SL(24,Z). To find the form F that is invariant under the group, you can, for instance, solve an obvious system of linear equations g_i F=F (g_i^T)^-1, with i=1,2. Note that Co1 itself does not have a 24-dimensional faithful representation in characteristic 0. The minimal degree of such a representation is 276. Best, Dmitrii On 8 April 2010 22:27, mim_ at op.pl wrote: > Hello, > > I have received following email from one matematician. I have asked him for the matrix generators of Conway group Co1 in SO(24). Do you know how to obtain such generators in GAP ? > > > The following Magma code should work: > > L := Lattice("Lambda",24); > G := AutomorphismGroup(L); > B := BasisMatrix(L); > S := ShortestVectors(L); > S := S cat [-S[i] : i in [1..#S]]; > M := MatrixRing(Rationals(),24); > G := MatrixGroup<24, Rationals() | [B^(-1) * M!G.i * B : i in [1..Ngens(G)]]>; > > Then S will be the list of minimal vectors and G will be the > automorphism group, as a subgroup of SO(24). The code for G is > a little ugly, because by default Magma will express it as a > subgroup of GL_24(Z) instead. > < end of quote> > > Here is the base matrix of my leech lattice. The determinant is 8^12. > B:=[[4,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0], > [2,2,2,2,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0], > [2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0], > [2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0], > [2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0], > [2,0,2,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2], > [2,0,0,2,2,2,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2], > [2,2,0,0,2,0,2,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,2], > [0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,2], > [0,0,0,0,0,0,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0], > [0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0], > [-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]; > > Regards, > Marek > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. 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 mim_ at op.pl Fri Apr 9 09:31:38 2010 From: mim_ at op.pl (mim_ at op.pl) Date: Fri, 09 Apr 2010 10:31:38 +0200 Subject: [GAP Forum] Co1 generators in SO24 In-Reply-To: Q3909039-5a74cbff78be9aa58317035e2bec58e6@pmq3.m5r2.onet.test.onet.pl Message-ID: Thank you for your answers. Sorry, I am interested in Co0 - automorphism group of Leech lattice. My goal is to find the decomposition of Leech lattice into 4095 "crosses" i.e. orthonormal frames of 48 vectors. I have heard that such decomposition exists, but I want to have it explicite. My plan is following. Take simple frame built with 4^2,0^22 vectors. Calculate image of it by random element from Co0. See if new frame is received. If yes then add it to the set. Continue until all is done. What I suspect is that maybe E8 sublattices are distinct generated by those crosses, but I am not sure. I would be grateful if you can provide me with generators of such group for my Leech lattice mentioned below. Regards, Marek mim_ at op.pl napisa?(a): > Hello, > > I have received following email from one matematician. I have asked him for the matrix generators of Conway group Co1 in SO(24). Do you know how to obtain such generators in GAP ? > > > The following Magma code should work: > > L := Lattice("Lambda",24); > G := AutomorphismGroup(L); > B := BasisMatrix(L); > S := ShortestVectors(L); > S := S cat [-S[i] : i in [1..#S]]; > M := MatrixRing(Rationals(),24); > G := MatrixGroup<24, Rationals() | [B^(-1) * M!G.i * B : i in [1..Ngens(G)]]>; > > Then S will be the list of minimal vectors and G will be the > automorphism group, as a subgroup of SO(24). The code for G is > a little ugly, because by default Magma will express it as a > subgroup of GL_24(Z) instead. > < end of quote> > > Here is the base matrix of my leech lattice. The determinant is 8^12. > B:=[[4,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0], > [2,2,2,2,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0], > [2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0], > [2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0], > [2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0], > [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0], > [2,0,2,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2], > [2,0,0,2,2,2,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2], > [2,2,0,0,2,0,2,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,2], > [0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,2], > [0,0,0,0,0,0,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0], > [0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0], > [-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]; > > Regards, > Marek > > From mim_ at op.pl Fri Apr 9 09:57:43 2010 From: mim_ at op.pl (mim_ at op.pl) Date: Fri, 09 Apr 2010 10:57:43 +0200 Subject: [GAP Forum] Co0 generators in SO24 In-Reply-To: Q3988462-fc8ff3731981a12085d48151223dd0e8@pmq4.m5r2.onet.test.onet.pl Message-ID: The conjecture is that whether we can decompose Leech lattice into 273 of E8 tripples. 273*720=4095*48=196560. Maybe you know the answer already. Regards, Marek mim_ at op.pl napisa?(a): > Thank you for your answers. Sorry, I am interested in Co0 - automorphism group of Leech lattice. My goal is to find the decomposition of Leech lattice into 4095 "crosses" i.e. orthonormal frames of 48 vectors. I have heard that such decomposition exists, but I want to have it explicite. > > My plan is following. Take simple frame built with 4^2,0^22 vectors. Calculate image of it by random element from Co0. See if new frame is received. If yes then add it to the set. Continue until all is done. > > What I suspect is that maybe E8 sublattices are distinct generated by those crosses, but I am not sure. > > I would be grateful if you can provide me with generators of such group for my Leech lattice mentioned below. > > Regards, > Marek > > > mim_ at op.pl napisa?(a): > > Hello, > > > > I have received following email from one matematician. I have asked him for the matrix generators of Conway group Co1 in SO(24). Do you know how to obtain such generators in GAP ? > > > > > > The following Magma code should work: > > > > L := Lattice("Lambda",24); > > G := AutomorphismGroup(L); > > B := BasisMatrix(L); > > S := ShortestVectors(L); > > S := S cat [-S[i] : i in [1..#S]]; > > M := MatrixRing(Rationals(),24); > > G := MatrixGroup<24, Rationals() | [B^(-1) * M!G.i * B : i in [1..Ngens(G)]]>; > > > > Then S will be the list of minimal vectors and G will be the > > automorphism group, as a subgroup of SO(24). The code for G is > > a little ugly, because by default Magma will express it as a > > subgroup of GL_24(Z) instead. > > < end of quote> > > > > Here is the base matrix of my leech lattice. The determinant is 8^12. > > B:=[[4,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0], > > [2,2,2,2,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0], > > [4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0], > > [2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0], > > [2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0], > > [2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0], > > [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0], > > [2,0,2,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2], > > [2,0,0,2,2,2,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2], > > [2,2,0,0,2,0,2,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,2], > > [0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,2], > > [0,0,0,0,0,0,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0], > > [0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0], > > [-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]; > > > > Regards, > > Marek > > > > > From mckay at encs.concordia.ca Fri Apr 9 13:58:32 2010 From: mckay at encs.concordia.ca (MCKAY john) Date: Fri, 9 Apr 2010 08:58:32 -0400 (EDT) Subject: [GAP Forum] Co1 generators in SO24 In-Reply-To: <20100409070139.GA14946@orge.ens.fr> References: <20100409070139.GA14946@orge.ens.fr> Message-ID: Isn't the obvious place the book SPLAG by Conway & Sloane? Chapter 4? Rob WIlson at QMUL is master of the generators. He has a new book on the finite simples. John McKay == On Fri, 9 Apr 2010, Mathieu Dutour wrote: > There are a number of ways to do that. > > If you are interested in the automorphism group of the Leech lattice, that > is the double cover of the group Co1, then you can use my package > "polyhedral" (from http://www.liga.ens.fr/~dutour/Polyhedral/index.html) > which is not official or the package "cryst" which is official. > Both rely on the use of autom by B. Souvignier and W. Plesken and Magma > rely as well on this program. > > But I should point to you that what you are asking is Co1, i.e. the quotient > of the automorphism group of the Leech lattice by the antipodal involution. > The atlas of finite groups http://brauer.maths.qmul.ac.uk/Atlas/v3/spor/Co1/ > does not list obvious 24-dimensional rational representations of this group. > > Mathieu > > >> Hello, > >> > >> I have received following email from one matematician. I have asked him for the matrix > >> generators of Conway group Co1 in SO(24). Do you know how to obtain such generators in GAP ? > >> > >> > >> The following Magma code should work: > >> > >> L := Lattice("Lambda",24); > >> G := AutomorphismGroup(L); > >> B := BasisMatrix(L); > >> S := ShortestVectors(L); > >> S := S cat [-S[i] : i in [1..#S]]; > >> M := MatrixRing(Rationals(),24); > >> G := MatrixGroup<24, Rationals() | [B^(-1) * M!G.i * B : i in [1..Ngens(G)]]>; > >> > >> Then S will be the list of minimal vectors and G will be the > >> automorphism group, as a subgroup of SO(24). The code for G is > >> a little ugly, because by default Magma will express it as a > >> subgroup of GL_24(Z) instead. > >> < end of quote> > >> > >> Here is the base matrix of my leech lattice. The determinant is 8^12. > >> B:=[[4,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0], > >> [2,2,2,2,0,0,0,0,2,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0], > >> [4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0], > >> [2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,0,0,0,0,0,0,0,0], > >> [2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,0,0,0,0,0,0,0,0], > >> [2,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0], > >> [4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0], > >> [2,0,2,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2,2], > >> [2,0,0,2,2,2,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,2,0,2], > >> [2,2,0,0,2,0,2,0,2,0,0,2,0,0,0,0,0,0,0,0,2,0,0,2], > >> [0,2,2,2,2,0,0,0,2,0,0,0,2,0,0,0,0,0,0,2,0,0,0,2], > >> [0,0,0,0,0,0,0,0,2,2,0,0,2,2,0,0,2,2,0,0,2,2,0,0], > >> [0,0,0,0,0,0,0,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0,2,0], > >> [-3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]]; > >> > >> Regards, > >> Marek > y > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From ljj198123 at 126.com Sat Apr 10 03:29:48 2010 From: ljj198123 at 126.com (=?gbk?B?wfW9qL78?=) Date: Sat, 10 Apr 2010 10:29:48 +0800 (CST) Subject: [GAP Forum] A question about generators Message-ID: <151c218.c20f.127e58d33e7.Coremail.ljj198123@126.com> Dear Forum, I would like to obtain a subgroup which is generated by several subgroups of a given finite group, i.e. the generators of the subgroup are some subgroup, but not some elements. For example: G:=SmallGroup(200,44);; N:=NormalSubgroups(G);; If H and K are subgroups of G, we denote by the subgroup generated by H and K. What is the subgroup ? How to express it in GAP? Best Wishes LIU From bsambale at gmx.de Sat Apr 10 07:48:51 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Sat, 10 Apr 2010 08:48:51 +0200 Subject: [GAP Forum] A question about generators In-Reply-To: <151c218.c20f.127e58d33e7.Coremail.ljj198123@126.com> References: <151c218.c20f.127e58d33e7.Coremail.ljj198123@126.com> Message-ID: <4BC01F53.3080700@gmx.de> Subgroup(G,Union(N[3],N[4])); ??? schrieb: > Dear Forum, > I would like to obtain a subgroup which is generated by several subgroups of a given finite group, i.e. the generators of the subgroup are some subgroup, but not some elements. > For example: G:=SmallGroup(200,44);; N:=NormalSubgroups(G);; > If H and K are subgroups of G, we denote by the subgroup generated by H and K. > What is the subgroup ? > How to express it in GAP? > Best Wishes > LIU > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From max at quendi.de Sat Apr 10 11:58:02 2010 From: max at quendi.de (Max Horn) Date: Sat, 10 Apr 2010 12:58:02 +0200 Subject: [GAP Forum] A question about generators In-Reply-To: <4BC01F53.3080700@gmx.de> References: <151c218.c20f.127e58d33e7.Coremail.ljj198123@126.com> <4BC01F53.3080700@gmx.de> Message-ID: <7942F6F0-DA17-4C6D-A967-C86027F0CB17@quendi.de> Am 10.04.2010 um 08:48 schrieb Benjamin Sambale: > Subgroup(G,Union(N[3],N[4])); Or use Subgroup(G,Union(GeneratorsOfGroup(N[3]), GeneratorsOfGroup(N[4]))); which yields a group with four generators instead of 100 and also works for much bigger groups. Cheers, Max From jbohanon2 at gmail.com Sat Apr 10 13:02:56 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sat, 10 Apr 2010 08:02:56 -0400 Subject: [GAP Forum] A question about generators In-Reply-To: <7942F6F0-DA17-4C6D-A967-C86027F0CB17@quendi.de> References: <151c218.c20f.127e58d33e7.Coremail.ljj198123@126.com> <4BC01F53.3080700@gmx.de> <7942F6F0-DA17-4C6D-A967-C86027F0CB17@quendi.de> Message-ID: <4BC068F0.8050004@gmail.com> Actually ClosureGroup(N[3],N[4]); is the easiest function. Max Horn wrote: > Am 10.04.2010 um 08:48 schrieb Benjamin Sambale: > > >> Subgroup(G,Union(N[3],N[4])); >> > > Or use > Subgroup(G,Union(GeneratorsOfGroup(N[3]), GeneratorsOfGroup(N[4]))); > > which yields a group with four generators instead of 100 and also works for much bigger groups. > > Cheers, > Max > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From dearmj at 126.com Sun Apr 11 14:17:50 2010 From: dearmj at 126.com (=?gbk?B?vv0=?=) Date: Sun, 11 Apr 2010 21:17:50 +0800 (CST) Subject: [GAP Forum] Help Message-ID: <585236f7.6105.127ed04da37.Coremail.dearmj@126.com> I am a newer to GAP. I want to know that if I have a group presentation, such as G=gp, then how to use GAP to find all the elements of this group? Is there any program for general groups in such presentation to find all the elements? Hope get some help.Thanks a lot! From dearmj at 126.com Mon Apr 12 03:09:27 2010 From: dearmj at 126.com (=?gbk?B?vv0=?=) Date: Mon, 12 Apr 2010 10:09:27 +0800 (CST) Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? Message-ID: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> If there is an noncommutative associative algebra, presented as A=K,where X is the generating set, R is the relations set. My question is: How to use GAP to find the Grobner basis for A? P.S.:Can GAP find the Grobner shirshov basis for A,too? I hope to get some help from experts. From hulpke at me.com Mon Apr 12 04:22:48 2010 From: hulpke at me.com (Alexander Hulpke) Date: Sun, 11 Apr 2010 21:22:48 -0600 Subject: [GAP Forum] Help In-Reply-To: <585236f7.6105.127ed04da37.Coremail.dearmj@126.com> References: <585236f7.6105.127ed04da37.Coremail.dearmj@126.com> Message-ID: <8D775EE5-6C85-4017-9033-DFE553365748@me.com> Dear Forum, [Chinese character] asked: `Elements' will give you a list, but please be aware of the algorithmic issues surrounding finitely presented groups. Issuing the command SetReducedMultiplication(G); beforehand will produce nicer looking elements. Of course, if your group is large, the list of elements might simply not fit into memory, so you might want to check whether you *really* want an element list. 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 dearmj at 126.com Mon Apr 12 04:29:31 2010 From: dearmj at 126.com (=?UTF-8?B?5ZCb?=) Date: Mon, 12 Apr 2010 11:29:31 +0800 (CST) Subject: [GAP Forum] Help In-Reply-To: <8D775EE5-6C85-4017-9033-DFE553365748@me.com> References: <8D775EE5-6C85-4017-9033-DFE553365748@me.com> <585236f7.6105.127ed04da37.Coremail.dearmj@126.com> Message-ID: Thank you,AH! I will try!

?2010-04-12 11:22:48?"Alexander Hulpke" ??? >Dear Forum, > >[Chinese character] asked: > >`Elements' will give you a list, but please be aware of the algorithmic issues surrounding finitely presented groups. >Issuing the command >SetReducedMultiplication(G); >beforehand will produce nicer looking elements. > >Of course, if your group is large, the list of elements might simply not fit into memory, so you might want to check whether you *really* want an element list. > >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 max at quendi.de Mon Apr 12 07:53:55 2010 From: max at quendi.de (Max Horn) Date: Mon, 12 Apr 2010 08:53:55 +0200 Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> References: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> Message-ID: Am 12.04.2010 um 04:09 schrieb ?: > If there is an noncommutative associative algebra, presented as A=K,where X is the generating set, R is the relations set. > My question is: How to use GAP to find the Grobner basis for A? > P.S.:Can GAP find the Grobner shirshov basis for A,too? > I hope to get some help from experts. The GBNP package can perform Gr?bner basis computations in free associative algebras. First you'll have to install GBNP. load GBNP and enter the relations. Here we assume two generators a and b, and we work over the rationals. gap> LoadPackage("gbnp"); true gap> A:=FreeAssociativeAlgebraWithOne(Rationals, "a", "b"); gap> a:=A.1;;b:=A.2;;e:=One(A);; gap> rels := [ b*a^2*b-b^2, b^2-e, (a*b)^12-e, (a*b)^8-e ];; You can now compute a Gr?bner basis for the ideal generated by these relation: gap> GBR:=SGrobner(GP2NPList(rels));; gap> PrintNPList(GBR); a^2 - 1 b^2 - 1 baba - abab Now you can compute the dimension of A, or multiply elements in it gap> DimQA(GBR,2); 8 gap> PrintNP(MulQA(GP2NP(a), GP2NP(b), GBR)); ab gap> PrintNP(MulQA(GP2NP(a*b), GP2NP(a*b), GBR)); abab gap> PrintNP(MulQA(GP2NP(a*b*a), GP2NP(a*b*a), GBR)); 1 As far as I know, GBNP does not yet provide a nice interface to turn the quotient algebra into a "proper" GAP object / algebra, but you can ask for matrix generators as a substitute (assuming its dimension is not too big): gap> B := BaseQA(GBR,2,0);; gap> mats := MatricesQA(2,B,GBR);; gap> Q:=AlgebraWithOne(Rationals, mats); gap> Dimension(Q); 8 Hope that helps, Max From dearmj at 126.com Mon Apr 12 14:39:56 2010 From: dearmj at 126.com (=?utf-8?B?5ZCb?=) Date: Mon, 12 Apr 2010 21:39:56 +0800 (CST) Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: References: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> Message-ID: <86786.10298.127f23f73b2.Coremail.dearmj@126.com> Thanks a lot, Max!It really helps me.

?2010-04-12 14:53:55?"Max Horn" ??? > >Am 12.04.2010 um 04:09 schrieb ?: > >> If there is an noncommutative associative algebra, presented as A=K,where X is the generating set, R is the relations set. >> My question is: How to use GAP to find the Grobner basis for A? >> P.S.:Can GAP find the Grobner shirshov basis for A,too? >> I hope to get some help from experts. > >The GBNP package can perform Gr?bner basis computations in free associative algebras. First you'll have to install GBNP. > >load GBNP and enter the relations. Here we assume two generators a and b, and we work over the rationals. > >gap> LoadPackage("gbnp"); >true >gap> A:=FreeAssociativeAlgebraWithOne(Rationals, "a", "b"); > >gap> a:=A.1;;b:=A.2;;e:=One(A);; >gap> rels := [ b*a^2*b-b^2, b^2-e, (a*b)^12-e, (a*b)^8-e ];; > >You can now compute a Gr?bner basis for the ideal generated by these relation: > >gap> GBR:=SGrobner(GP2NPList(rels));; >gap> PrintNPList(GBR); > a^2 - 1 > b^2 - 1 > baba - abab > >Now you can compute the dimension of A, or multiply elements in it > >gap> DimQA(GBR,2); >8 >gap> PrintNP(MulQA(GP2NP(a), GP2NP(b), GBR)); > ab >gap> PrintNP(MulQA(GP2NP(a*b), GP2NP(a*b), GBR)); > abab >gap> PrintNP(MulQA(GP2NP(a*b*a), GP2NP(a*b*a), GBR)); > 1 > >As far as I know, GBNP does not yet provide a nice interface to turn the quotient algebra into a "proper" GAP object / algebra, but you can ask for matrix generators as a substitute (assuming its dimension is not too big): > >gap> B := BaseQA(GBR,2,0);; >gap> mats := MatricesQA(2,B,GBR);; >gap> Q:=AlgebraWithOne(Rationals, mats); > >gap> Dimension(Q); >8 > > > >Hope that helps, >Max From dearmj at 126.com Mon Apr 12 14:48:02 2010 From: dearmj at 126.com (=?utf-8?B?5ZCb?=) Date: Mon, 12 Apr 2010 21:48:02 +0800 (CST) Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: References: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> Message-ID: <1fdb7a3.103bb.127f246de1f.Coremail.dearmj@126.com> Hello?Max?Could you tell me where I can download the GBNP package ?Or can you give me a link?

?2010-04-12 14:53:55?"Max Horn" ??? > >Am 12.04.2010 um 04:09 schrieb ?: > >> If there is an noncommutative associative algebra, presented as A=K,where X is the generating set, R is the relations set. >> My question is: How to use GAP to find the Grobner basis for A? >> P.S.:Can GAP find the Grobner shirshov basis for A,too? >> I hope to get some help from experts. > >The GBNP package can perform Gr?bner basis computations in free associative algebras. First you'll have to install GBNP. > >load GBNP and enter the relations. Here we assume two generators a and b, and we work over the rationals. > >gap> LoadPackage("gbnp"); >true >gap> A:=FreeAssociativeAlgebraWithOne(Rationals, "a", "b"); > >gap> a:=A.1;;b:=A.2;;e:=One(A);; >gap> rels := [ b*a^2*b-b^2, b^2-e, (a*b)^12-e, (a*b)^8-e ];; > >You can now compute a Gr?bner basis for the ideal generated by these relation: > >gap> GBR:=SGrobner(GP2NPList(rels));; >gap> PrintNPList(GBR); > a^2 - 1 > b^2 - 1 > baba - abab > >Now you can compute the dimension of A, or multiply elements in it > >gap> DimQA(GBR,2); >8 >gap> PrintNP(MulQA(GP2NP(a), GP2NP(b), GBR)); > ab >gap> PrintNP(MulQA(GP2NP(a*b), GP2NP(a*b), GBR)); > abab >gap> PrintNP(MulQA(GP2NP(a*b*a), GP2NP(a*b*a), GBR)); > 1 > >As far as I know, GBNP does not yet provide a nice interface to turn the quotient algebra into a "proper" GAP object / algebra, but you can ask for matrix generators as a substitute (assuming its dimension is not too big): > >gap> B := BaseQA(GBR,2,0);; >gap> mats := MatricesQA(2,B,GBR);; >gap> Q:=AlgebraWithOne(Rationals, mats); > >gap> Dimension(Q); >8 > > > >Hope that helps, >Max From dearmj at 126.com Mon Apr 12 14:48:22 2010 From: dearmj at 126.com (=?utf-8?B?5ZCb?=) Date: Mon, 12 Apr 2010 21:48:22 +0800 (CST) Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: References: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> Message-ID: <14a7b73.103c2.127f2472993.Coremail.dearmj@126.com> Hello?Max?Could you tell me where I can download the GBNP package ?Or can you give me a link?

?2010-04-12 14:53:55?"Max Horn" ??? > >Am 12.04.2010 um 04:09 schrieb ?: > >> If there is an noncommutative associative algebra, presented as A=K,where X is the generating set, R is the relations set. >> My question is: How to use GAP to find the Grobner basis for A? >> P.S.:Can GAP find the Grobner shirshov basis for A,too? >> I hope to get some help from experts. > >The GBNP package can perform Gr?bner basis computations in free associative algebras. First you'll have to install GBNP. > >load GBNP and enter the relations. Here we assume two generators a and b, and we work over the rationals. > >gap> LoadPackage("gbnp"); >true >gap> A:=FreeAssociativeAlgebraWithOne(Rationals, "a", "b"); > >gap> a:=A.1;;b:=A.2;;e:=One(A);; >gap> rels := [ b*a^2*b-b^2, b^2-e, (a*b)^12-e, (a*b)^8-e ];; > >You can now compute a Gr?bner basis for the ideal generated by these relation: > >gap> GBR:=SGrobner(GP2NPList(rels));; >gap> PrintNPList(GBR); > a^2 - 1 > b^2 - 1 > baba - abab > >Now you can compute the dimension of A, or multiply elements in it > >gap> DimQA(GBR,2); >8 >gap> PrintNP(MulQA(GP2NP(a), GP2NP(b), GBR)); > ab >gap> PrintNP(MulQA(GP2NP(a*b), GP2NP(a*b), GBR)); > abab >gap> PrintNP(MulQA(GP2NP(a*b*a), GP2NP(a*b*a), GBR)); > 1 > >As far as I know, GBNP does not yet provide a nice interface to turn the quotient algebra into a "proper" GAP object / algebra, but you can ask for matrix generators as a substitute (assuming its dimension is not too big): > >gap> B := BaseQA(GBR,2,0);; >gap> mats := MatricesQA(2,B,GBR);; >gap> Q:=AlgebraWithOne(Rationals, mats); > >gap> Dimension(Q); >8 > > > >Hope that helps, >Max From max at quendi.de Mon Apr 12 14:58:53 2010 From: max at quendi.de (Max Horn) Date: Mon, 12 Apr 2010 15:58:53 +0200 Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: <14a7b73.103c2.127f2472993.Coremail.dearmj@126.com> References: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> <14a7b73.103c2.127f2472993.Coremail.dearmj@126.com> Message-ID: Am 12.04.2010 um 15:48 schrieb ?: > Hello?Max?Could you tell me where I can download the GBNP package ?Or can you give me a link? GBNP is not yet an accepted or even deposited GAP package, but there is a link to it on pointing to . Newer versions are much better and nicer, and I hope it will be released in the not to distant future, but that is of course up to its authors :). Cheers, Max From dearmj at 126.com Mon Apr 12 15:15:22 2010 From: dearmj at 126.com (=?utf-8?B?5ZCb?=) Date: Mon, 12 Apr 2010 22:15:22 +0800 (CST) Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: References: <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> <14a7b73.103c2.127f2472993.Coremail.dearmj@126.com> Message-ID: <1cde612.10736.127f25fe232.Coremail.dearmj@126.com> Oh,what a pity, but I respect the authors.

?2010-04-12 21:58:53?"Max Horn" ??? > >Am 12.04.2010 um 15:48 schrieb ?: > >> Hello?Max?Could you tell me where I can download the GBNP package ?Or can you give me a link? > >GBNP is not yet an accepted or even deposited GAP package, but there is a link to it on pointing to . Newer versions are much better and nicer, and I hope it will be released in the not to distant future, but that is of course up to its authors :). > >Cheers, >Max From dearmj at 126.com Mon Apr 12 17:13:41 2010 From: dearmj at 126.com (=?utf-8?B?5ZCb?=) Date: Tue, 13 Apr 2010 00:13:41 +0800 (CST) Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: <20100412154441.GE33386@stack.nl> References: <20100412154441.GE33386@stack.nl> <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> <14a7b73.103c2.127f2472993.Coremail.dearmj@126.com> Message-ID: <1bde079.11148.127f2cc3410.Coremail.dearmj@126.com> It is very nice to you, and thank you for your help. Actually,my GAP is running in the windows system, can the package be use in this system?

?2010-04-12 23:44:41?"Jan Willem Knopper" ??? >Max Horn wrote: >> >> Am 12.04.2010 um 15:48 schrieb ?: >> >> > Hello?Max?Could you tell me where I can download the GBNP package ?Or can you give me a link? >> >> GBNP is not yet an accepted or even deposited GAP package, but there is a link to it on pointing to . Newer versions are much better and nicer, and I hope it will be released in the not to distant future, but that is of course up to its authors :). >> >Hello ?, > >You might be interested to know that a newer version can be found at >http://mathdox.org/gbnp/ . A direct link to download it is >http://mathdox.org/products/gbnp/GBNP-1.0.tar.gz > >If you have any problems or questions, feel free to mail me, > >Regards, > >Jan Willem Knopper From dearmj at 126.com Mon Apr 12 17:39:19 2010 From: dearmj at 126.com (=?utf-8?B?5ZCb?=) Date: Tue, 13 Apr 2010 00:39:19 +0800 (CST) Subject: [GAP Forum] Can GAP find Grobner basis for Noncmmutative algebras? In-Reply-To: <20100412154441.GE33386@stack.nl> References: <20100412154441.GE33386@stack.nl> <19c5cf.5d30.127efc74b18.Coremail.dearmj@126.com> <14a7b73.103c2.127f2472993.Coremail.dearmj@126.com> Message-ID: <10ece00.11259.127f2e3acb3.Coremail.dearmj@126.com> Hello,Jan! I want to know that if the gbnp package can be used to find the Grobner bases for noncommutative associative algebras,such as A=K,can you use the package to find the normal forms of A? And what is the program?Thank you for your help! Regards, dearmj

?2010-04-12 23:44:41?"Jan Willem Knopper" ??? >Max Horn wrote: >> >> Am 12.04.2010 um 15:48 schrieb ?: >> >> > Hello?Max?Could you tell me where I can download the GBNP package ?Or can you give me a link? >> >> GBNP is not yet an accepted or even deposited GAP package, but there is a link to it on pointing to . Newer versions are much better and nicer, and I hope it will be released in the not to distant future, but that is of course up to its authors :). >> >Hello ?, > >You might be interested to know that a newer version can be found at >http://mathdox.org/gbnp/ . A direct link to download it is >http://mathdox.org/products/gbnp/GBNP-1.0.tar.gz > >If you have any problems or questions, feel free to mail me, > >Regards, > >Jan Willem Knopper From justin.walker at comcast.net Wed Apr 14 04:11:34 2010 From: justin.walker at comcast.net (Justin Walker) Date: Tue, 13 Apr 2010 20:11:34 -0700 Subject: [GAP Forum] Segmentation Fault Message-ID: Dear Forum, I was fiddling with lists and tried the following, which resulted in a segmentation fault: gap> l:=ListWithIdenticalEntries(6,[1,2,3]);; gap> l[1][1]:=l[3];; gap> l; [ [ ~[1], 2, 3 ], [ ~[2], 2, 3 ], [ ~[3], 2, 3 ], [ ~[4], 2, 3 ], [ ~[5], 2, 3 ], [ ~[6], 2, 3 ] ] gap> MakeImmutable(l); Boom! I gather that the result of the second assignment is to tie the list into knots. The following call then goes recursive and eventually blows the stack (true?). I thought it worth reporting, in case it's fixable. Regards, Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Absorption of Federal Funds -------- If you're not confused, You're not paying attention -------- From jbohanon2 at gmail.com Wed Apr 14 12:11:59 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Wed, 14 Apr 2010 07:11:59 -0400 Subject: [GAP Forum] Segmentation Fault In-Reply-To: References: Message-ID: I'm always impressed when someone finds a "bug" in robustly checked software, even though I can't imagine why someone would legitimately need a recursive list. :) This immediately kills gap in Cygwin (no mention of a segfault). I duplicated the segfault on my Linux machine. I know a few functions have "Recursion Depth Traps". That's probably the solution here. Joe On Tue, Apr 13, 2010 at 11:11 PM, Justin Walker wrote: > Dear Forum, > > I was fiddling with lists and tried the following, which resulted in a > segmentation fault: > > gap> l:=ListWithIdenticalEntries(6,[1,2,3]);; > gap> l[1][1]:=l[3];; > gap> l; > [ [ ~[1], 2, 3 ], [ ~[2], 2, 3 ], [ ~[3], 2, 3 ], [ ~[4], 2, 3 ], [ ~[5], > 2, 3 ], > [ ~[6], 2, 3 ] ] > gap> MakeImmutable(l); > > Boom! > > I gather that the result of the second assignment is to tie the list into > knots. The following call then goes recursive and eventually blows the > stack (true?). > > I thought it worth reporting, in case it's fixable. > > Regards, > > Justin > > -- > Justin C. Walker, Curmudgeon-At-Large > Institute for the Absorption of Federal Funds > -------- > If you're not confused, > You're not paying attention > -------- > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From mbg.nimda at gmail.com Sun Apr 18 16:32:55 2010 From: mbg.nimda at gmail.com (mbg nimda) Date: Sun, 18 Apr 2010 17:32:55 +0200 Subject: [GAP Forum] Computation of the quotient of abelian groups Message-ID: Dear Forum members, I would like to know if there is an easy way to calculate, using GAP, the quotient of two Abelian groups. The groups I obtain are generated by vectors in finite dimensional vectorspaces and have integer coefficients. For example: V is the Z-module generated by the vectors [ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 1, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, -1, 0, 1 ], [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, -1 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0 ] ] and W is the submodule generated by the vectors [ [ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 1 ], [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 1, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, -1, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, 0, 1 ] ] Assuming I'm correct we have that V/W is the direct sum of Z and Z/2Z. Is there an easy way to calculate this? Mark. From alexandre.borovik at manchester.ac.uk Sun Apr 18 09:02:02 2010 From: alexandre.borovik at manchester.ac.uk (Professor Alexandre Borovik) Date: Sun, 18 Apr 2010 09:02:02 +0100 Subject: [GAP Forum] GAP in teaching Message-ID: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> Dear Colleagues, I happen to serve on the Education Committee of the London Mathematical Society and onthe Research Committee of the Association for Learning Technology; in both incarnations, I am very much interested in getting a wider overview of uses of GAP in teaching. Could you please direct me to appropriate sources? Many thanks Alexandre Borovik - Professor Alexandre Borovik - www.maths.manchester.ac.uk/~avb/ - Check my book/blog http://micromath.wordpress.com/ - http://twitter.com/avborovik From hebert.perez at gmail.com Mon Apr 19 00:45:33 2010 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Mon, 19 Apr 2010 09:45:33 +1000 Subject: [GAP Forum] GAP in teaching In-Reply-To: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> References: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> Message-ID: Dear Prof. Borovik, Find two of my favourite papers below. Actually, they use MAGMA, but it all works with GAP too. Best regards, Hebert Perez-Roses The University of Newcastle, Australia --------------------------------------------- @article{BOSTON1997453, title = "A Use of Computers to Teach Group Theory and Introduce Students to Research", journal = "Journal of Symbolic Computation", volume = "23", number = "5-6", pages = "453 - 458", year = "1997", note = "", issn = "0747-7171", doi = "DOI: 10.1006/jsco.1996.0100", url = " http://www.sciencedirect.com/science/article/B6WM7-45K145D-W/2/b1c4577cf96e72c1c0d96bf699f13af4 ", author = "NIGEL BOSTON" } ------------------------------------------ @article{SHERMAN1997577, title = "Trying to Do Group Theory with Undergraduates and Computers", journal = "Journal of Symbolic Computation", volume = "23", number = "5-6", pages = "577 - 587", year = "1997", note = "", issn = "0747-7171", doi = "DOI: 10.1006/jsco.1996.0108", url = " http://www.sciencedirect.com/science/article/B6WM7-45K145D-15/2/d0b954315fd58701ffd3ccff810353a7 ", author = "GARY J. SHERMAN" } ------------------------- 2010/4/18 Professor Alexandre Borovik > > Dear Colleagues, > > I happen to serve on the Education Committee of the London Mathematical > Society and onthe Research Committee of the Association for Learning > Technology; in both incarnations, I am very much interested in getting a > wider overview of uses of GAP in teaching. > > Could you please direct me to appropriate sources? > > Many thanks > > Alexandre Borovik > > > > - Professor Alexandre Borovik - www.maths.manchester.ac.uk/~avb/ > - Check my book/blog http://micromath.wordpress.com/ > - http://twitter.com/avborovik > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From beick at tu-bs.de Mon Apr 19 07:55:15 2010 From: beick at tu-bs.de (Bettina Eick) Date: Mon, 19 Apr 2010 08:55:15 +0200 (CEST) Subject: [GAP Forum] Computation of the quotient of abelian groups In-Reply-To: References: Message-ID: Dear Forum members, the Polycyclic package contains a method to compute sub-quotients of a free abelian group. With V and W as in the e-mail below, this does the following: gap> AdditiveFactorPcp(V, W, 0); rec( gens := [ [ 1, 0 ], [ 0, 1 ] ], rels := [ 2, 0 ], imgs := [ [ 0, 1 ], [ 0, -2 ], [ 0, 1 ], [ 0, 0 ], [ 0, 0 ], [ 0, 0 ], [ 1, 1 ], [ 0, -2 ], [ 1, 1 ] ], prei := [ [ 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, -1 ] ], denom := [ [ 1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], [ 0, 1, 0, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, -1, 0, 1 ], [ 0, 0, 2, 0, -1, 1, -2, 0, 0, 0, -1, 1, -1, 1, 1, -1 ], [ 0, 0, 0, 1, 0, 0, 1, 0, -1, -1, 1, -1, 1, 0, -1, 0 ], [ 0, 0, 0, 0, 1, 0, -1, -1, -1, -1, -1, 0, 0, -1, 1, 0 ], [ 0, 0, 0, 0, 0, 1, 0, 1, 2, 1, -1, 0, -1, 0, 0, 1 ], [ 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, -1, 1, 0, 0, 0, 0 ] ] ) The input to this function is a basis 'V' in upper triangular form, a list of generators 'W' for a subgroup of 'V' and '0' (the last input tells the function that you want to work over the integers). The output is a record with various entries: 'rels' tells you that the quotient has the isomorphism type Z_2 x Z (2 stands for Z_2, 0 stands for Z), 'prei' contains preimages of two generators of the quotient, 'denom' is a basis in upper triangular form for the kernel of the natural homomorphism on the quotient. Best wishes, Bettina On Sun, 18 Apr 2010, mbg nimda wrote: > Dear Forum members, > > I would like to know if there is an easy way to calculate, using GAP, the > quotient of two Abelian groups. The groups I obtain are generated by vectors > in finite dimensional vectorspaces and have integer coefficients. For > example: V is the Z-module generated by the vectors > [ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, -1, 1, > 0, 0 ], > [ 0, 1, 0, 0, 0, 0, 0, 0, 0, -1, -1, -1, 0, -1, > 0, 1 ], > [ 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, > 1, -1 ], > [ 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, > -1, 0 ], > [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, > 1, 0 ], > [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, > 0, 1 ], > [ 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, > 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 0, 1, 0, -1, -1, -1, 0, 0, > 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, > 0, 0 ] ] > > and W is the submodule generated by the vectors > [ [ 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0 ], > [ 1, 0, -1, 0, 1, -1, 0, 0, 0, 0, 0, 0, 0, 0, > 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, > 0, 0 ], > [ 0, 0, 0, 0, 0, 0, 1, 0, -1, 0, 1, -1, 0, 0, > 0, 0 ], > [ 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, > 0, 1 ], > [ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, > 1, 0 ], > [ 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, > -1, 0 ], > [ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, -1, 0, > 0, 1 ] ] > > Assuming I'm correct we have that V/W is the direct sum of Z and Z/2Z. Is > there an easy way to calculate this? > > Mark. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From rosebrock at ph-karlsruhe.de Mon Apr 19 08:26:10 2010 From: rosebrock at ph-karlsruhe.de (Stephan Rosebrock) Date: Mon, 19 Apr 2010 09:26:10 +0200 Subject: [GAP Forum] GAP in teaching In-Reply-To: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> References: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> Message-ID: <5b80640a9a5c6e684dc2d6b693efe130.squirrel@webmail.ph-bw.de> Dear Prof. Borovik, I have written a book for beginners in Group Theory using GAP to learn Group Theory. It is in German. See http://www.rosebrock.ph-karlsruhe.de/grpth/index.html Best wishes Stephan Rosebrock Am So, 18.04.2010, 10:02 schrieb Professor Alexandre Borovik: > > Dear Colleagues, > > I happen to serve on the Education Committee of the London > Mathematical Society and onthe Research Committee of the Association > for Learning Technology; in both incarnations, I am very much > interested in getting a wider overview of uses of GAP in teaching. > > Could you please direct me to appropriate sources? > > Many thanks > > Alexandre Borovik > > > > - Professor Alexandre Borovik - www.maths.manchester.ac.uk/~avb/ > - Check my book/blog http://micromath.wordpress.com/ > - http://twitter.com/avborovik > > > > _______________________________________________ > Forum mailing list > Forum at 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 at PH-karlsruhe.de * * home page: http://www.rosebrock.ph-karlsruhe.de/ * * * * Tel: 0721-925-4275 * * Fax: 0721-925-4249 * ********************************************************* From dima at ntu.edu.sg Mon Apr 19 12:11:49 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Mon, 19 Apr 2010 19:11:49 +0800 Subject: [GAP Forum] GAP in teaching In-Reply-To: <5b80640a9a5c6e684dc2d6b693efe130.squirrel@webmail.ph-bw.de> References: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> <5b80640a9a5c6e684dc2d6b693efe130.squirrel@webmail.ph-bw.de> Message-ID: Dear all, dear Sasha, algebra courses that use Sage (http://www.sagemath.org) in fact use GAP behind the scene (in particular when group-theoretic computations are performed --- GAP is a "Sage package"), so this adds http://wiki.sagemath.org/Teaching_with_SAGE (which needs to be filtered to leave things like calculus courses out) One can almso directly use GAP from Sage, which gives one an otherwise absent option of using a notebook feature from a Web browser, in which one can run Sage (and thus GAP) remotely. So one does not need any software except a Web browser locally. HTH, Dima On 19 April 2010 15:26, Stephan Rosebrock wrote: > Dear Prof. Borovik, > > I have written a book for beginners in Group Theory using GAP > to learn Group Theory. It is in German. See > > http://www.rosebrock.ph-karlsruhe.de/grpth/index.html > > Best wishes > > Stephan Rosebrock > > > > > Am So, 18.04.2010, 10:02 schrieb Professor Alexandre Borovik: >> >> Dear Colleagues, >> >> I happen to serve on the Education Committee of the London >> Mathematical Society and onthe Research Committee of the Association >> for Learning Technology; in both incarnations, I am very much >> interested in getting a wider overview of uses of GAP in teaching. >> >> Could you please direct me to appropriate sources? >> >> Many thanks >> >> Alexandre Borovik >> >> >> >> - Professor Alexandre Borovik - www.maths.manchester.ac.uk/~avb/ >> - Check my book/blog http://micromath.wordpress.com/ >> - http://twitter.com/avborovik >> >> >> >> _______________________________________________ >> Forum mailing list >> Forum at 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 at PH-karlsruhe.de * > * home page: http://www.rosebrock.ph-karlsruhe.de/ * > * * > * Tel: 0721-925-4275 * > * Fax: 0721-925-4249 * > ********************************************************* > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. 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 alexander.konovalov at gmail.com Mon Apr 19 23:36:35 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon, 19 Apr 2010 23:36:35 +0100 Subject: [GAP Forum] GAP in teaching In-Reply-To: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> References: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> Message-ID: Dear Prof Borovik, dear GAP Forum, Certainly, GAP has a great potential to be used in teaching abstract algebra. The GAP homepage has "Teaching" and "Learning" sections, and while "Learning" is more about learning the GAP system itself, the "Teaching" page http://www.gap-system.org/Doc/Learning/learning.html refers to material accompanying courses given at various places. As you can see there, GAP has been used in lecture courses of various levels, both for providing examples and for creating teaching materials, in particular, generating sets of exercises. The selection of materials listed on this page is probably incomplete, but hopefully it will help to create an adequate opinion on the subject. Hopefully more GAP Forum members having teaching materials not listed in the "Teaching" and "Learning" sections will respond to your request in the Forum, and thanks for those who has already replied. We will be happy to put relevant links on the GAP website. Please do not hesitate to contact the GAP Group if you will be interested in further details about GAP. Best regards, Alexander On 18 Apr 2010, at 09:02, Professor Alexandre Borovik wrote: > > Dear Colleagues, > > I happen to serve on the Education Committee of the London Mathematical Society and onthe Research Committee of the Association for Learning Technology; in both incarnations, I am very much interested in getting a wider overview of uses of GAP in teaching. > > Could you please direct me to appropriate sources? > > Many thanks > > Alexandre Borovik > > > > - Professor Alexandre Borovik - www.maths.manchester.ac.uk/~avb/ > - Check my book/blog http://micromath.wordpress.com/ > - http://twitter.com/avborovik > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexander.konovalov at gmail.com Mon Apr 19 23:39:32 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon, 19 Apr 2010 23:39:32 +0100 Subject: [GAP Forum] GAP in teaching In-Reply-To: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> References: <20100418090202.73271ri3iuiudzsq@webmail.manchester.ac.uk> Message-ID: P.S. Apologies for the wrong link - of course, the "Teaching" page address is http://www.gap-system.org/Doc/Teaching/teaching.html and the link below refers to "Learning" page. Alexander Dear Prof Borovik, dear GAP Forum, Certainly, GAP has a great potential to be used in teaching abstract algebra. The GAP homepage has "Teaching" and "Learning" sections, and while "Learning" is more about learning the GAP system itself, the "Teaching" page http://www.gap-system.org/Doc/Learning/learning.html refers to material accompanying courses given at various places. As you can see there, GAP has been used in lecture courses of various levels, both for providing examples and for creating teaching materials, in particular, generating sets of exercises. The selection of materials listed on this page is probably incomplete, but hopefully it will help to create an adequate opinion on the subject. Hopefully more GAP Forum members having teaching materials not listed in the "Teaching" and "Learning" sections will respond to your request in the Forum, and thanks for those who has already replied. We will be happy to put relevant links on the GAP website. Please do not hesitate to contact the GAP Group if you will be interested in further details about GAP. Best regards, Alexander On 18 Apr 2010, at 09:02, Professor Alexandre Borovik wrote: > > Dear Colleagues, > > I happen to serve on the Education Committee of the London Mathematical Society and onthe Research Committee of the Association for Learning Technology; in both incarnations, I am very much interested in getting a wider overview of uses of GAP in teaching. > > Could you please direct me to appropriate sources? > > Many thanks > > Alexandre Borovik > > > > - Professor Alexandre Borovik - www.maths.manchester.ac.uk/~avb/ > - Check my book/blog http://micromath.wordpress.com/ > - http://twitter.com/avborovik > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From frank.luebeck at math.rwth-aachen.de Tue Apr 20 16:50:53 2010 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Tue, 20 Apr 2010 17:50:53 +0200 Subject: [GAP Forum] Segmentation Fault In-Reply-To: References: Message-ID: <20100420155053.GH26138@beteigeuze> On Tue, Apr 13, 2010 at 08:11:34PM -0700, Justin Walker wrote: > Dear Forum, > > I was fiddling with lists and tried the following, which resulted in a > segmentation fault: > > gap> l:=ListWithIdenticalEntries(6,[1,2,3]);; > gap> l[1][1]:=l[3];; > gap> l; > [ [ ~[1], 2, 3 ], [ ~[2], 2, 3 ], [ ~[3], 2, 3 ], [ ~[4], 2, 3 ], [ ~[5], > 2, 3 ], > [ ~[6], 2, 3 ] ] > gap> MakeImmutable(l); > > Boom! > > I gather that the result of the second assignment is to tie the list > into knots. The following call then goes recursive and eventually blows > the stack (true?). > > I thought it worth reporting, in case it's fixable. Dear Justin, dear Forum, Thanks for this example, I'm a bit surprised that nobody reported this before. A slightly shorter example is: gap> l := [~]; # equivalent to: l := [];; l[1] := l; [ ~ ] gap> MakeImmutable(l); Segmentation fault I tend to consider this as "feature" rather than a bug. But it should at least be documented. GAP can only make a list immutable when all its entries are immutable. MakeImmutable just recurses into the list and tries to make all entries immutable first (if they are not already immutable). In the examples above this runs into an infinite recursion. This could be fixed. For example you see above that Print or View can deal with the self-recursive structure. You can also make an immutable copy of the object: gap> l := [~];; gap> l := Immutable(l); [ ~ ] gap> IsMutable(l); false But I think that MakeImmutable is intended to be very fast on newly created objects (which may be huge and have many subobjects). If we would fix the reported problem, MakeImmutable would become much slower and we would loose its speed advantage compared to Immutable. Therefore: For self-recursive objects use don't use 'MakeImmutable', create a copy with 'Immutable' instead. Best regards, Frank BTW: Self-recursive objects are not uncommon in GAP, e.g., a group may contain a list of its conjugacy classes and each class points back to the group it belongs to. Or think of a tree structure where the nodes point back to the root. -- /// 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 srmurthy at brookes.ac.uk Thu Apr 22 06:55:58 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Thu, 22 Apr 2010 06:55:58 +0100 (BST) Subject: [GAP Forum] Alignment problem for printing tables Message-ID: <3a94fe3e43aa7aa734bb0d917148d64d.squirrel@webmail.brookes.ac.uk> Hi. I've written a simple GAP program that prints a table of information in 3 columns for a given group: 1st column - shows distinct orders of proper subgroups realized by the group 2nd column - shows the number of distinct subgroups of the group of the order given by column 1 3rd column - shows a representative conjugacy class of the subgroup So the output for the the alternating group Alt(5) currently prints out like this: Order Number Of Subgroups Subgroup Conjugacy Class -------- ----------------- ---------------------------- 2 15 Group([ (2,3)(4,5) ]) 3 10 Group([ (3,4,5) ]) 4 5 Group([ (2,3)(4,5), (2,4)(3,5) ]) 5 6 Group([ (1,2,3,4,5) ]) 6 10 Group([ (3,4,5), (1,2)(4,5) ]) 10 6 Group([ (1,2,3,4,5), (2,5)(3,4) ]) 12 5 Group([ (2,3)(4,5), (2,4)(3,5), (3,4,5) ]) Entries of column 1 and 2 are aligned with the headers, but the problem is that the third column entries are not aligned with the header. I tried to give each conjugacy class a string name, and then offset the print function exactly so that the name is aligned with the header, but the String( object ) methods doesn't seem to work for elements of ConjugacyClassesSubgroups( group ). Anyone have any suggestions? Sincerely, Sandeep. From alexk at mcs.st-andrews.ac.uk Tue Apr 27 22:56:08 2010 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 27 Apr 2010 22:56:08 +0100 Subject: [GAP Forum] Alignment problem for printing tables In-Reply-To: <3a94fe3e43aa7aa734bb0d917148d64d.squirrel@webmail.brookes.ac.uk> References: <3a94fe3e43aa7aa734bb0d917148d64d.squirrel@webmail.brookes.ac.uk> Message-ID: Dear Sandeep, dear Forum, On 22 Apr 2010, at 06:55, Sandeep Murthy wrote: > Hi. > > I've written a simple GAP program that prints a table of information > in 3 columns for a given group: > > 1st column - shows distinct orders of proper subgroups realized by the group > 2nd column - shows the number of distinct subgroups of the group of the > order given > by column 1 > 3rd column - shows a representative conjugacy class of the subgroup > > So the output for the the alternating group Alt(5) currently prints out > like this: > > Order Number Of Subgroups Subgroup Conjugacy > Class > -------- ----------------- ---------------------------- > > 2 15 > Group([ (2,3)(4,5) ]) > 3 10 > Group([ (3,4,5) ]) > 4 5 > Group([ (2,3)(4,5), (2,4)(3,5) ]) > 5 6 > Group([ (1,2,3,4,5) ]) > 6 10 > Group([ (3,4,5), (1,2)(4,5) ]) > 10 6 > Group([ (1,2,3,4,5), (2,5)(3,4) ]) > 12 5 > Group([ (2,3)(4,5), (2,4)(3,5), (3,4,5) ]) > > Entries of column 1 and 2 are aligned with the headers, but the problem is > that > the third column entries are not aligned with the header. I tried to give > each > conjugacy class a string name, and then offset the print function exactly > so that the > name is aligned with the header, but the String( object ) methods doesn't > seem to work > for elements of ConjugacyClassesSubgroups( group ). > > Anyone have any suggestions? > > Sincerely, Sandeep. If I am understanding this correctly, you want to say that String applied to a conjugacy class of subgroups produces the output that is superfluous for your purposes (see below). Could you apply String to a representative of a conjugacy class? Then it will probably return a string containing exactly what you need: gap> G:=AlternatingGroup(5); Alt( [ 1 .. 5 ] ) gap> cc:=ConjugacyClassesSubgroups(G); [ Group( () )^G, Group( [ (2,3)(4,5) ] )^G, Group( [ (3,4,5) ] )^G, Group( [ (2,3)(4,5), (2,4)(3,5) ] )^G, Group( [ (1,2,3,4,5) ] )^G, Group( [ (3,4,5), (1,2)(4,5) ] )^G, Group( [ (1,2,3,4,5), (2,5)(3,4) ] )^G, Group( [ (2,3)(4,5), (2,4)(3,5), (3,4,5) ] )^G, AlternatingGroup( [ 1 .. 5 ] )^G ] gap> String(cc[2]); "ConjugacyClassSubgroups(AlternatingGroup( [ 1 .. 5 ] ),Group( \n[ (2,3)(4,5) \ ] ))" gap> String(Representative(cc[2])); "Group( [ (2,3)(4,5) ] )" Hope this helps, Alexander From alexander.konovalov at gmail.com Tue Apr 27 22:58:40 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue, 27 Apr 2010 22:58:40 +0100 Subject: [GAP Forum] List passing and access In-Reply-To: <23CA40B4-E68A-4FD4-A087-83CF4DF9A7B4@brookes.ac.uk> References: <23CA40B4-E68A-4FD4-A087-83CF4DF9A7B4@brookes.ac.uk> Message-ID: <95FB5599-84BD-4A46-8BBF-BD4B55F17A0E@gmail.com> Dear Sandeep, dear Forum, On 1 Apr 2010, at 23:36, Sandeep Murthy wrote: > Hi. > > I have a question: is it better / quicker to pass a set of arguments to > a GAP function as a list, or as individual objects? > > Sincerely, S. Murthy. It may depend on several factors, maybe you can try to investigate and optimise your particular example, using the approach shown below. In the first example, initially individual arguments seem to work faster: gap> f1:=function(x) return; end; function( x ) ... end gap> f2:=function(a,b,c) return; end; function( a, b, c ) ... end gap> for i in [1..10000000] do f1([1,2,3]);od;time; 2163 gap> for i in [1..10000000] do f1([1,2,3]);od;time; 2172 gap> for i in [1..10000000] do f1([1,2,3]);od;time; 2172 gap> for i in [1..10000000] do f2(1,2,3);od;time; 1506 gap> for i in [1..10000000] do f2(1,2,3);od;time; 1556 gap> for i in [1..10000000] do f2(1,2,3);od;time; 1519 However, observe that the list [1,2,3] is calculated each time 'f1' is called. If we will create this list before the loop, then it becomes slightly faster than 'f2', since, clearly, GAP parser will parse f1(x) faster than f1(1,2,3): gap> x:=[1,2,3]; [ 1, 2, 3 ] gap> for i in [1..10000000] do f1(x);od;time; 1349 gap> for i in [1..10000000] do f1(x);od;time; 1336 gap> for i in [1..10000000] do f1(x);od;time; 1343 In the second example, we increased the length of the list and the number of arguments to 8: gap> f1:=function(x) return; end; function( x ) ... end gap> f2:=function(a,b,c,d,e,f,g,h) return; end; function( a, b, c, d, e, f, g, h ) ... end gap> for i in [1..10000000] do f1([1,2,3,4,5,6,7,8]);od;time; 2737 gap> for i in [1..10000000] do f1([1,2,3,4,5,6,7,8]);od;time; 2737 gap> for i in [1..10000000] do f1([1,2,3,4,5,6,7,8]);od;time; 2757 gap> for i in [1..10000000] do f2(1,2,3,4,5,6,7,8);od;time; 3149 gap> for i in [1..10000000] do f2(1,2,3,4,5,6,7,8);od;time; 3152 gap> for i in [1..10000000] do f2(1,2,3,4,5,6,7,8);od;time; 3142 Now the list approach works faster. Moreover, if the list to pass to 'f1' will be precomputed in advance, then the timing will be comparable with the one demonstrated in the previous example: gap> t:=[1,2,3,4,5,6,7,8]; [ 1, 2, 3, 4, 5, 6, 7, 8 ] gap> for i in [1..10000000] do f1(t);od;time; 1342 gap> for i in [1..10000000] do f1(t);od;time; 1343 gap> for i in [1..10000000] do f1(t);od;time; 1342 For practical applications, I would say that the overhead is so small (10^7 loop iterations in the examples above to see the difference), that you may select either approach that makes your code easier to read, understand and maintain. Passing arguments in a list, you may need to create this list in advance, and then perform indexation in the function body, and the overhead of these operations may be bigger than passing each argument individually. Note that thinking of arguments as a list may be useful if you need to define a function with a variable number of arguments. GAP allows to to this, if a function is defined with exactly one formal argument with the special name 'arg': the values of all the actual arguments are stored in a list assigned to the new variable corresponding to the formal argument 'arg'. There are two typical scenarios for wanting such a possibility: having optional arguments and having any number of arguments. Hope this helps, Alexander From r.hartung at tu-braunschweig.de Thu Apr 29 08:48:03 2010 From: r.hartung at tu-braunschweig.de (=?iso-8859-1?q?Ren=E9_Hartung?=) Date: Thu, 29 Apr 2010 09:48:03 +0200 Subject: [GAP Forum] Summer School in Algorithmic Mathematics, Aug 16-20, 2010 in Berlin Message-ID: <201004290948.04118.r.hartung@tu-braunschweig.de> It is our pleasure to announce the first "Summer School in Algorithmic Mathematics (S2AM)" August, 16-20, 2010, Berlin, Germany. Lecture series: * Deformation Theory (Jan Christophersen, Oslo) * Computational Group Cohomology (Graham Ellis, Galway) * Modular Forms and Galois Representations (Gerhard Frey, Essen) S2AM is targeted at PhD Students and Postdocs. Conducted within the framework of the DFG Priority Programme "Algorithmic and Experimental methods in Algebra, Geometry, and Number Theory", the school aims to provide the theoretical background necessary for developing and implementing algorithms. In addition to three lecture series by senior lecturers, participants are invited to give short presentations of their own research. S2AM will provide lodging, breakfast, and dinner for participants at no charge. Participants are responsible for their lunch and travel costs. There is no fee for the school. Please apply as soon as possible. Applications will be accepted on a first-come first-serve basis, with adjustments to ensure equal interest in each lecture series. For more information and to apply, please visit the website at http://severian.mit.edu/s2am. With best regards, Ren? Hartung Andreas Hochenegger Nathan Ilten Lars Petersen Mehment Haluk Sengun. From srmurthy at brookes.ac.uk Thu Apr 29 17:08:23 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Thu, 29 Apr 2010 17:08:23 +0100 Subject: [GAP Forum] Lazy Evaluation or Eager Evaluation Message-ID: <4E62ED7C-0A04-4E83-9BBA-7B5927141010@brookes.ac.uk> Hello. Could I please know whether GAP uses lazy or eager evaluation in computations? Sincerely, Sandeep. From trebauchet1986 at yahoo.co.in Fri Apr 30 08:41:31 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Fri, 30 Apr 2010 13:11:31 +0530 (IST) Subject: [GAP Forum] SU(n) group Message-ID: <590966.97644.qm@web94601.mail.in2.yahoo.com> In GAP, can I define an SU(n) group over complex numbers? Krishna Mohan Project Assistant CHEP Indian Institute of Science Bangalore From sal at mcs.st-andrews.ac.uk Fri Apr 30 09:29:58 2010 From: sal at mcs.st-andrews.ac.uk (Stephen Linton) Date: Fri, 30 Apr 2010 09:29:58 +0100 Subject: [GAP Forum] Lazy Evaluation or Eager Evaluation In-Reply-To: <4E62ED7C-0A04-4E83-9BBA-7B5927141010@brookes.ac.uk> References: <4E62ED7C-0A04-4E83-9BBA-7B5927141010@brookes.ac.uk> Message-ID: Eager. All arguments to a function are fully evaluated before the function is invoked. Steve On 29 Apr 2010, at 17:08, Sandeep Murthy wrote: > Hello. > > Could I please know whether GAP uses lazy or eager evaluation in computations? > > Sincerely, Sandeep. > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From trebauchet1986 at yahoo.co.in Sat May 1 12:36:58 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Sat, 1 May 2010 17:06:58 +0530 (IST) Subject: [GAP Forum] SU(n) group In-Reply-To: Message-ID: <338670.68938.qm@web94604.mail.in2.yahoo.com> Hi.. ????? Suppose I have a group and want to find whether its a subgroup of SU(3). How can I do that in GAP? Krishna Mohan Project Assistant CHEP Indian Institute of Science Bangalore > --- On Fri, 30/4/10, Scott Murray wrote: From: Scott Murray Subject: Re: [GAP Forum] SU(n) group To: "krishna mohan" Date: Friday, 30 April, 2010, 4:14 PM Dear Krishna, It is possible in GAP to define the root datum of SU(n).? I don't think you can define the group over the complex numbers.? GAP is not designed for numerical analysis.? However, it is useful for representation theory problems that reduce to combinatorics of roots and weights, like branching and plethysm problems. If you let me know what specific computation you want to do, I might be able to help further. All the best, Scott Murray. On 30 April 2010 17:41, krishna mohan wrote: > In GAP, can I define an SU(n) group over complex numbers? > > > Krishna Mohan > Project Assistant > CHEP > Indian Institute of Science > Bangalore > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dima at ntu.edu.sg Sat May 1 13:07:26 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Sat, 1 May 2010 20:07:26 +0800 Subject: [GAP Forum] SU(n) group In-Reply-To: <338670.68938.qm@web94604.mail.in2.yahoo.com> References: <338670.68938.qm@web94604.mail.in2.yahoo.com> Message-ID: Dear Krishna, it depends upon the way your group is given, a lot, as well as on particular properties of it. E.g. if it is a finite group you can, by computing the character table (actually, a part of it) easily see whether it has a faithful 3-dimensional complex representation (which will be a unitary representation), and then, with a bit more effort, to see whether such a representation is into SU(3), or not. For infinite groups this is in general much harder, IMHO. On the other hand if it is already a subgroup of GL(3) then this should be easy... Best, Dmitrii On 1 May 2010 19:36, krishna mohan wrote: > Hi.. > > Suppose I have a group and want to find whether its a subgroup of SU(3). How can I > do that in GAP? > > Krishna Mohan > Project Assistant > CHEP > Indian Institute of Science > Bangalore >> > > --- On Fri, 30/4/10, Scott Murray wrote: > > From: Scott Murray > Subject: Re: [GAP Forum] SU(n) group > To: "krishna mohan" > Date: Friday, 30 April, 2010, 4:14 PM > > Dear Krishna, > > It is possible in GAP to define the root datum of SU(n). I don't > think you can define the group over the complex numbers. GAP is not > designed for numerical analysis. However, it is useful for > representation theory problems that reduce to combinatorics of roots > and weights, like branching and plethysm problems. > > If you let me know what specific computation you want to do, I might > be able to help further. > > All the best, > Scott Murray. > > > > On 30 April 2010 17:41, krishna mohan wrote: >> In GAP, can I define an SU(n) group over complex numbers? >> >> >> Krishna Mohan >> Project Assistant >> CHEP >> Indian Institute of Science >> Bangalore >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From srmurthy at brookes.ac.uk Mon May 3 10:42:03 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Mon, 3 May 2010 10:42:03 +0100 Subject: [GAP Forum] Range of List Iteration Message-ID: Hello. I am currently working on GAP programs which search for triples of distinct proper subsets of finite groups satisfying a certain property. For a group G of order n, the space of triples of distinct proper subsets is of order 8^n. By applying a certain filter to filter out ineligible triples, I am searching actually on a much smaller space of order 4^n, but still exponential in the group order n. I'm currently using "binary list" representations of group subsets, where a given subset X of G is represented by a unique n-length list b(X) of 0's and 1's and a corresponding unique decimal number d(X) in the range [1..2^n]. The program iterates over all distinct proper subset triples of G by running through all possible triples of n-bit combinations of 1's and 0's, and testing the property for the equivalent subset triple. The programs work fine for groups of order n <= 27, but not for n >= 28 - GAP says that a loop cannot over a range >= 2^28. Is this an absolute limit, or is this machine dependent? Sincerely, Sandeep. From srmurthy at brookes.ac.uk Tue May 4 16:49:35 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Tue, 4 May 2010 16:49:35 +0100 Subject: [GAP Forum] Profiling Specific Functions Message-ID: <05CC2FDB-22D0-4B06-A4CA-252DDB663007@brookes.ac.uk> Hello. I am somewhat confused by the range of profiling functions available on GAP. I just want to see the profile of a specific single function I've written. Is the command DisplayProfile( funcs ) the right one for this? Is funcs an array, or just the specific single function of interest? Anyway, I used ProfileOperations( true ), and then DisplayProfile() after one run of my function, and that gives me the following results: count self/ms chld/ms function 15029 16 8 IS_SSORT_LIST 10656 23 4 InfoLevel 14819 33 4 SSortedList 21586 37 0 APPEND_LIST 10446 36 7 AsSSortedList 13531 40 3 IntersectSet 23006 36 8 ADD_LIST 14679 47 0 SHALLOW_COPY_OBJ 102626 157 0 LENGTH 29072 147 35 Size 619 TOTAL What do LENGTH, InfoLevel, and the other keywords like self/ms and chld/ms refer to? Sincerely, Sandeep. From combariza at gmail.com Tue May 4 17:49:31 2010 From: combariza at gmail.com (German Combariza) Date: Tue, 4 May 2010 12:49:31 -0400 Subject: [GAP Forum] Programming Question. Message-ID: Dear Forum, I have a naive question that I really appreciate if you can help me. In the free group group f:= FreeGroup("x", "y"); I have a element w. How Can ask to GAP if w=x*(something) or y*(something). I need to split the word w. Thanks. From bsambale at gmx.de Tue May 4 19:18:20 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Tue, 04 May 2010 20:18:20 +0200 Subject: [GAP Forum] Programming Question. In-Reply-To: References: Message-ID: <4BE064EC.8090505@gmx.de> Can you compare Length(x^-1*w) with Length(y^-1*w)? f:= FreeGroup("x", "y"); AssignGeneratorVariables(f); w:=Random(f); Length(x^-1*w); Best wishes, Benjamin German Combariza schrieb: > Dear Forum, I have a naive question that I really appreciate if you can help > me. > > In the free group group > > f:= FreeGroup("x", "y"); > > I have a element w. How Can ask to GAP if w=x*(something) or > y*(something). > > I need to split the word w. > > Thanks. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From hulpke at math.colostate.edu Tue May 4 20:51:39 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 4 May 2010 13:51:39 -0600 Subject: [GAP Forum] Programming Question. In-Reply-To: References: Message-ID: <095C1821-E12F-4181-8564-F7D83B6808F7@math.colostate.edu> On May 4, 2010, at 5/4/10 10:49, German Combariza wrote: > In the free group group > f:= FreeGroup("x", "y"); > I have a element w. How Can ask to GAP if w=x*(something) or y*(something). > I need to split the word w. If you want to split the whole word, you can simply access the internal storage via LetterRepAssocWord(w) which returns a list of integers. E.g. w=x^2yx^-1y^-1 would be 1,1,2,-1,-2 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 frank.luebeck at math.rwth-aachen.de Wed May 5 10:39:10 2010 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed, 05 May 2010 11:39:10 +0200 Subject: [GAP Forum] Range of List Iteration In-Reply-To: References: Message-ID: <20100505093910.GB4918@beteigeuze> On Mon, May 03, 2010 at 10:42:03AM +0100, Sandeep Murthy wrote: > The programs work fine for groups of order n <= 27, but not for n >= 28 - GAP says that a > loop cannot over a range >= 2^28. Is this an absolute limit, or is this machine dependent? Dear Sandeep Murthy, dear Forum, Here are a few general remarks about ranges [a..b] in GAP. These are (currently) implemented with some machine dependend restrictions: The integers a and b and the length of the range must have absolute value < 2^28 if GAP is compiled for 32-bit systems, and < 2^60 if GAP is compiled for 64-bit systems. The reason for this limitation is efficiency of loops over such ranges. So, in your case I suggest two possible solutions: (1) Use the 64-bit version of GAP on a 64-bit system. With a limit of 2^60 you run into other problems before asking for larger ranges. (2) Don't use a range in your loop, e.g.: i := 1; while i < 2^28-1 do od; needs about 40 seconds on my computer compared to for i in [1..2^28-1] do od; which takes about 5 seconds. So, the additional overhead in the while-loop is probably neglectible if the body of your loop is not empty. In the while-loop there is no restriction on the integer you compare to, so 'while i < 2^32 do ...' is no problem. Side remark: Very often it is still sensible to use a 32-bit version of GAP, even on a 64-bit system because it is more memory efficient and often slightly faster (depends on what exactly you are doing), see also the comment at: http://www.math.rwth-aachen.de/RsyncLinuxGAP/index.html#32versus64 Best regards, Frank -- /// 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 frank.luebeck at math.rwth-aachen.de Wed May 5 14:31:55 2010 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Wed, 05 May 2010 15:31:55 +0200 Subject: [GAP Forum] Range of List Iteration In-Reply-To: <20100505093910.GB4918@beteigeuze> References: <20100505093910.GB4918@beteigeuze> Message-ID: <20100505133155.GI4918@beteigeuze> On Wed, May 05, 2010 at 11:39:10AM +0200, Frank L?beck wrote: > i := 1; > while i < 2^28-1 do > od; > > needs about 40 seconds on my computer compared to Of course, I have done the test with: i := 1; while i < 2^28-1 do i := i+1; od; Thanks to all who pointed this out to me. Frank -- /// 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 srmurthy at brookes.ac.uk Wed May 5 14:51:58 2010 From: srmurthy at brookes.ac.uk (Sandeep Murthy) Date: Wed, 5 May 2010 14:51:58 +0100 Subject: [GAP Forum] Range of List Iteration In-Reply-To: <20100505133155.GI4918@beteigeuze> References: <20100505093910.GB4918@beteigeuze> <20100505133155.GI4918@beteigeuze> Message-ID: <19CD3001-37FD-4190-A423-5A6CCFD84ED2@brookes.ac.uk> Thank you very much Max Horn, and Dr. L?beck, for this information. I have two further questions: 1. Mac OS X 10.6.3 (Snow Leopard) is 64-bit ready, I believe. So where can I obtain a 64 bit version of GAP? I cannot find it on the official GAP site. 2. The GAP manual doesn't explain very well how one understands the output of profiling functions. The output uses keywords, which seem to refer to internal GAP functions, their number of calls etc., but could someone please explain in greater detail how one understands the output. For example, what do self/ms and chld/ms refer to? What do the keyword InfoLevel and SHALLOW_COPY_OBJ refer to? count self/ms chld/ms function 15029 16 8 IS_SSORT_LIST 10656 23 4 InfoLevel 14819 33 4 SSortedList 21586 37 0 APPEND_LIST 10446 36 7 AsSSortedList 13531 40 3 IntersectSet 23006 36 8 ADD_LIST 14679 47 0 SHALLOW_COPY_OBJ 102626 157 0 LENGTH 29072 147 35 Size 619 TOTAL Sincerely, Sandeep. On 5 May 2010, at 14:31, Frank L?beck wrote: > On Wed, May 05, 2010 at 11:39:10AM +0200, Frank L?beck wrote: >> i := 1; >> while i < 2^28-1 do >> od; >> >> needs about 40 seconds on my computer compared to > > Of course, I have done the test with: > > i := 1; > while i < 2^28-1 do > i := i+1; > od; > > Thanks to all who pointed this out to me. > > Frank > -- > /// 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/ \\\ > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Wed May 5 15:12:53 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed, 5 May 2010 22:12:53 +0800 Subject: [GAP Forum] Range of List Iteration In-Reply-To: <19CD3001-37FD-4190-A423-5A6CCFD84ED2@brookes.ac.uk> References: <20100505093910.GB4918@beteigeuze> <20100505133155.GI4918@beteigeuze> <19CD3001-37FD-4190-A423-5A6CCFD84ED2@brookes.ac.uk> Message-ID: Dear Sandeep, On 5 May 2010 21:51, Sandeep Murthy wrote: > > I have two further questions: > > 1. Mac OS X 10.6.3 (Snow Leopard) is 64-bit ready, I believe. > So where can I obtain a 64 bit version of GAP? I cannot find it > on the official GAP site. you can compile such a version (for this you need Xcode, a free download from Apple) from the source, that you can get from the GAP website. The site cannot carry all the possible binaries... Hope this helps, -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From burkhard at hoefling.name Wed May 5 15:21:34 2010 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Wed, 5 May 2010 16:21:34 +0200 Subject: [GAP Forum] Range of List Iteration In-Reply-To: <19CD3001-37FD-4190-A423-5A6CCFD84ED2@brookes.ac.uk> References: <20100505093910.GB4918@beteigeuze> <20100505133155.GI4918@beteigeuze> <19CD3001-37FD-4190-A423-5A6CCFD84ED2@brookes.ac.uk> Message-ID: <3F3D14F1-E04F-4197-A45A-948BDB12D465@hoefling.name> On 05/05/2010, at 15:51 , Sandeep Murthy wrote: > Thank you very much Max Horn, and Dr. L?beck, for this > information. > > I have two further questions: > > 1. Mac OS X 10.6.3 (Snow Leopard) is 64-bit ready, I believe. > So where can I obtain a 64 bit version of GAP? I cannot find it > on the official GAP site. Just compile it as a 64 bit binary: Open Terminal, cd to the GAP root directory, and use the following commands. make clean set CFLAGS="-arch x86_64" touch extern/jenkins/jhash.c ./configure make The only step that is a bit unusual is the touch.. command - this is to make sure that make will create a new 64bit object file for jhash.c > 2. The GAP manual doesn't explain very well how one understands > the output of profiling functions. The output uses keywords, which seem > to refer to internal GAP functions These are not keywords, but the actual GAP function names. Cheers Burkhard. From sal at cs.st-andrews.ac.uk Thu May 6 15:57:26 2010 From: sal at cs.st-andrews.ac.uk (Stephen Linton) Date: Thu, 6 May 2010 15:57:26 +0100 Subject: [GAP Forum] Session on Computational Group Theory at ICMS 2010 in Kobe, Japan Message-ID: Dear GAP Forum, From 13th to 17th September this year, the Department of Mathematics at Kobe University, Kobe, Japan will host the 3rd International Congress on Mathematical Software, a meeting of developers and users of mathematical software systems such as GAP. One session of the conference will be devoted Computational Group Theory and organised by Bettina Eick and Steve Linton. We would like to invite GAP users and package developers to attend the conference and this session in particular. We especially hope that this will be an opportunity to meet those of you who are based in Asia and do not have the chance to get to Europe so often. Information about the conference can be found at http://www.mathsoftware.org/, enquiries about the session on Computational Group Theory can be sent to either of us. yours Bettina Eick Steve Linton From DGusso at gmx.de Mon May 10 09:19:58 2010 From: DGusso at gmx.de (Domenica Gusso) Date: Mon, 10 May 2010 10:19:58 +0200 Subject: [GAP Forum] construct an ideal Message-ID: <20100510081958.208640@gmx.net> Hello, I want to construct a maximal ideal I in the ring of integers from the cyclotomic field with gap which contains the prime number p. To construct Z[zeta] with zeta = nth-root of unity I use to command >R:=Ring(1,E(n)); The ideal gens = > Therefore I store the generators of I as list in gens. Use the command : >I:=TwoSidedIdeal(R,gens); But when I want to create the ideal I in this way or want to check whether R contains an element x with >x in R; gap doesn't terminate. What's wrong here? Grettings, Domenica -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From hebert.perez at gmail.com Tue May 11 02:23:15 2010 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Tue, 11 May 2010 11:23:15 +1000 Subject: [GAP Forum] About certain mixed products of cyclic groups Message-ID: Dear all, I want to construct all the groups of type (Zm x Zm) \rtimes Zn for given m,n, but I don't know how to do that in GAP. In relation to that, there are a few sub-problems (some of a rather group-theoretical nature) for which I don't know the answer. I will appreciate anyone pointing me to the right references: 1. What is the group of automorphisms of Zm x Zm, for arbitrary m? 2. How can I express an arbitrary automorphism of Zm x Zm by its action on the abstract generators "a" and "b" of Zm x Zm ? 3. How can I get a pc presentation of (Zm x Zm) \rtimes Zn in GAP? Hebert Perez-Roses The University of Newcastle, Australia. From beick at tu-bs.de Tue May 11 08:26:36 2010 From: beick at tu-bs.de (Bettina Eick) Date: Tue, 11 May 2010 09:26:36 +0200 (CEST) Subject: [GAP Forum] About certain mixed products of cyclic groups In-Reply-To: References: Message-ID: Dear Hebert Perez-Roses, the 'Polycyclic' package of GAP provides some functionality which may be of some help for you. Here is an example on constructing the groups of type Z_6 x Z_6 split Z_4: # get the group Zm x Zm and the group Zn gap> A := AbelianPcpGroup(2, [6,6]); Pcp-group with orders [ 6, 6 ] gap> C := AbelianPcpGroup(1,[4]); Pcp-group with orders [ 4 ] # get its automorphism group gap> B := AutomorphismGroup(A); # determine conjugacy classes of elements of order dividing 4 gap> cl := ConjugacyClasses(B);; gap> cl := List(cl, Representative);; gap> cl := Filtered(cl, x -> IsInt(4/Order(x))); [ IdentityMapping( Pcp-group with orders [ 6, 6 ] ), [ g1, g2 ] -> [ g1*g2^2, g2^5 ], [ g1, g2 ] -> [ g2, g1 ], [ g1, g2 ] -> [ g1^4*g2^3, g1^3*g2^4 ], [ g1, g2 ] -> [ g1^3*g2^5, g1^4*g2^3 ], [ g1, g2 ] -> [ g1^5*g2^2, g1^2*g2 ], [ g1, g2 ] -> [ g1^5, g1^3*g2^5 ], [ g1, g2 ] -> [ g1^5, g2^5 ] ] # for each remaining class-rep, compute a split extension gap> grps := List(cl, x -> SplitExtensionByAutomorphisms(A,C,[x])); [ Pcp-group with orders [ 4, 6, 6 ], Pcp-group with orders [ 4, 6, 6 ], Pcp-group with orders [ 4, 6, 6 ], Pcp-group with orders [ 4, 6, 6 ], Pcp-group with orders [ 4, 6, 6 ], Pcp-group with orders [ 4, 6, 6 ], Pcp-group with orders [ 4, 6, 6 ], Pcp-group with orders [ 4, 6, 6 ] ] # check that they are non-isomorphic gap> List(grps, IdGroup); [ [ 144, 178 ], [ 144, 166 ], [ 144, 84 ], [ 144, 102 ], [ 144, 136 ], [ 144, 191 ], [ 144, 100 ], [ 144, 176 ] ] This example will also work for other values of m and n, but only for small ones. In particular, the conjugacy class computation is a potiential bottle-neck. It may help if you first determine a permutation representation of the automorphism group B and then compute conjugacy classes in the permutation group. However, a better approach may be to use a theoretical analysis of Aut(Zm x Zm) to avoid the conjugacy class computation a priori. Nonetheless, I hope that this helps a little bit. Best wishes, Bettina From D.F.Holt at warwick.ac.uk Tue May 11 09:30:19 2010 From: D.F.Holt at warwick.ac.uk (Derek Holt) Date: Tue, 11 May 2010 09:30:19 +0100 Subject: [GAP Forum] About certain mixed products of cyclic groups In-Reply-To: References: Message-ID: <20100511083019.GB9495@warwick.ac.uk> Dear GAP Forum, Hebert, On Tue, May 11, 2010 at 11:23:15AM +1000, Hebert P?rez-Ros?s wrote: > Dear all, > > I want to construct all the groups of type (Zm x Zm) \rtimes Zn for given > m,n, but I don't know how to do that in GAP. In relation to that, there > are a few sub-problems (some of a rather group-theoretical nature) for which > I don't know the answer. I will appreciate anyone pointing me to the right > references: > > 1. What is the group of automorphisms of Zm x Zm, for arbitrary m? Bettina suggested that a theoretical analysis of this automorphism group might help with computing its conjugacy classes. Aut(Zm x Zm) is the group GL(2,Z_m) where Z_m is the ring of integers mod m. It is the direct product of Aut(P) where P ranges over the Sylow subgroups of Zm, so you should be able to reduce to the case when m is a prime power. When m = p^k for prime k, Aut(Zm x Zm) is an extension of a normal p-subgroup of order p^{4(k-1)} by GL(2,p). You can create this group in GAP as follows: gap> R:=ZmodnZ(27); (Integers mod 27) gap> G:=GL(2,R); GL(2,Z/27Z) gap> Order(G); 314928 gap> C:=ConjugacyClasses(G);; gap> Length(C); 720 Unfortunately, this seems to be no quicker that computing Aut(Z27 x Z27) directly and then computing its conjugacy classes, but I would expect the reduction to m being a prime power should definitely help to speed things up. Derek Holt. > 2. How can I express an arbitrary automorphism of Zm x Zm by its action on > the abstract generators "a" and "b" of Zm x Zm ? > 3. How can I get a pc presentation of (Zm x Zm) \rtimes Zn in GAP? > > Hebert Perez-Roses > The University of Newcastle, Australia. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jansch2 at gmx.de Fri May 14 10:47:20 2010 From: jansch2 at gmx.de (Jan Schneider) Date: Fri, 14 May 2010 11:47:20 +0200 Subject: [GAP Forum] counting elements Message-ID: <20100514094720.305250@gmx.net> Hi there, I'm just wondering, whether you all can tell me how to count the objects of a list. If I define for example a list:="abbccc", how do I manage to let GAP count the letters? Hope to hear from you soon. Thanks Stefan -- 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 Fri May 14 12:06:06 2010 From: rm43 at evansville.edu (Robert Morse) Date: Fri, 14 May 2010 06:06:06 -0500 Subject: [GAP Forum] counting elements In-Reply-To: <20100514094720.305250@gmx.net> References: <20100514094720.305250@gmx.net> Message-ID: The Length and Collected commands are what you are looking for. gap> list:="abbccc";; gap> Length(list); 6 gap> Collected(list); [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ] Robert F. Morse On Fri, May 14, 2010 at 4:47 AM, Jan Schneider wrote: > Hi there, > I'm just wondering, whether you all can tell me how to count the objects of a list. If I define for example a list:="abbccc", how do I manage to let GAP count the letters? > Hope to hear from you soon. > > Thanks > Stefan > -- > 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 jbohanon2 at gmail.com Fri May 14 15:47:16 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Fri, 14 May 2010 10:47:16 -0400 Subject: [GAP Forum] counting elements In-Reply-To: References: <20100514094720.305250@gmx.net> Message-ID: <4BED6274.4070006@gmail.com> This also works for arrays. (Matter of fact, a string is just an array of characters). Joe Robert Morse wrote: > The Length and Collected commands are what you are looking for. > > gap> list:="abbccc";; > gap> Length(list); > 6 > gap> Collected(list); > [ [ 'a', 1 ], [ 'b', 2 ], [ 'c', 3 ] ] > > > Robert F. Morse > > > > On Fri, May 14, 2010 at 4:47 AM, Jan Schneider wrote: > >> Hi there, >> I'm just wondering, whether you all can tell me how to count the objects of a list. If I define for example a list:="abbccc", how do I manage to let GAP count the letters? >> Hope to hear from you soon. >> >> Thanks >> Stefan >> -- >> 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 >> >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From jansch2 at gmx.de Sun May 16 09:40:30 2010 From: jansch2 at gmx.de (Jan Schneider) Date: Sun, 16 May 2010 10:40:30 +0200 Subject: [GAP Forum] solving equations Message-ID: <20100516084030.45550@gmx.net> Hi there, can anybody tell me how to solve multiple equations with GAP? I know, it's a pretty easy question, but I just started working with GAP. For example, what do I have to do to let GAP calculate 5*x+y = 17, x*y=18? Thanks Stefan -- GRATIS f?r alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 From noreply at netlogmail.com Tue May 18 04:08:56 2010 From: noreply at netlogmail.com (Arun Muktibodh) Date: Tue, 18 May 2010 03:08:56 +0000 Subject: [GAP Forum] Visit my Netlog profile Message-ID: <0.0.8.3AE.1CAF63773C41284.0@mx02-3.netlogmail.com> Hey, I have created a Netlog profile with my pictures, videos, blogs and events and I want to add you as a friend so you can see it. You first need to register on Netlog! When you log in, you can create your own profile. Take a look: http://en.netlog.com/go/mailurl/-bT04MjU1NTc2MjcmbD0xJmdtPTM3JnU9JTJGZ28lMkZyZWdpc3RlciUyRmlkJTNEMTg5ODM0NjMzMSUyNmklM0R0OTE_ Cheers, Arun ---------------------------------------------------------------- Don't want to receive invitations from your friends anymore? http://en.netlog.com/go/mailurl/-bT04MjU1NTc2MjcmbD0yJmdtPTM3JnU9JTJGZ28lMkZub21haWxzJTJGaW52aXRlJTJGZW1haWwlM0QtWm05eWRXMUFaMkZ3TFhONWMzUmxiUzV2Y21jXyUyNmNvZGUlM0QwNTcwNTk1NiUyNmlkJTNEMTg5ODM0NjMzMSUyNmklM0R0OTI_ From stefan at mcs.st-and.ac.uk Tue May 18 21:11:12 2010 From: stefan at mcs.st-and.ac.uk (stefan at mcs.st-and.ac.uk) Date: Tue, 18 May 2010 21:11:12 +0100 (BST) Subject: [GAP Forum] solving equations In-Reply-To: <20100516084030.45550@gmx.net> References: <20100516084030.45550@gmx.net> Message-ID: Dear Forum, Jan Schneider asked: > can anybody tell me how to solve multiple equations with GAP? > I know, it's a pretty easy question, but I just started working with GAP. > For example, what do I have to do to let GAP calculate 5*x+y = 17, x*y=18? You can proceed as follows: First define the variables you need: gap> x := Indeterminate(Rationals,1);; SetName(x,"x"); gap> y := Indeterminate(Rationals,2);; SetName(y,"y"); Then compute a reduced Groebner basis for the ideal of C[x,y] defined by your equations, for lex order: gap> ReducedGroebnerBasis([5*x+y-17,x*y-18],MonomialLexOrdering()); [ y^2-17*y+90, x+1/5*y-17/5 ] Then solve the first equation y^2-17*y+90 = 0 for y (note that it is an equation in y, only). Finally, insert the solutions into the second equation x+1/5*y-17/5 = 0 to compute the possible values of x. This process works in a similar way general. -- You can find details in standard textbooks like Cox, Little, O'Shea: Ideals, Varieties, and Algorithms: An Introduction to Computational Algebraic Geometry and Commutative Algebra. If you encounter a univariate polynomial whose Galois group is solvable, you can use the GAP Package RadiRoot ( see http://www.gap-system.org/Packages/radiroot.html ) by Andreas Distler to compute representations of its roots in terms of radicals. There is presently no code in GAP to compute solutions numerically. Hope this helps, Stefan Kohl From trebauchet1986 at yahoo.co.in Tue May 25 09:13:04 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Tue, 25 May 2010 13:43:04 +0530 (IST) Subject: [GAP Forum] Homomorphism for semidirect product Message-ID: <818158.10409.qm@web94615.mail.in2.yahoo.com> Hi.... I have learnt that the StructureDescription command gives me the structure of certain groups as semidirect products. But, as I have discovered, to specify a semidirect product one needs to specify a homomorphism as well. ?Can GAP give me the relevant homomorphism? Krishnamohan P Project Assistant CHEP IISc From trebauchet1986 at yahoo.co.in Thu May 27 08:22:25 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Thu, 27 May 2010 12:52:25 +0530 (IST) Subject: [GAP Forum] Are reps from repsn package unitary? Message-ID: <531259.30843.qm@web94615.mail.in2.yahoo.com> Hi.... I have used the repsn package to construct representations for certain groups. Till now, all the reps have been unitary. I wanted to know whether the package always gives unitary matrices. If not, is there a way to tell the package to produce unitary reps? Krishnamohan Project Assistant CHEP IISc From hulpke at me.com Fri May 28 14:18:33 2010 From: hulpke at me.com (Alexander Hulpke) Date: Fri, 28 May 2010 14:18:33 +0100 Subject: [GAP Forum] Announcing the GBNP package Message-ID: <75FFC5F1-F0A5-4F71-B48A-D6D282DEFB7E@me.com> Dear Forum, It is my pleasure to announce the acceptance of the GBNP package for GAP, by Arjeh Cohen and Jan Willem Knopper, and to thank them for their contribution to the system. GBNP provides functionality for computing noncommutative Groebner bases (and in turn computations in quotients of associative, noncommutative, algebras. The package manual contains a large list of example problems that can be solved with this package. The GBNP package can be downloaded as part of the full package archive, or from its GAP webpage http://www.gap-system.org/Packages/gbnp.html (which also holds documentation). It is plain GAP code and will run on any architecture that runs GAP itself. Best wishes, Alexander Hulpke (for the GAP Council) -- 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 hulpke at me.com Fri May 28 15:01:10 2010 From: hulpke at me.com (Alexander Hulpke) Date: Fri, 28 May 2010 15:01:10 +0100 Subject: [GAP Forum] Homomorphism for semidirect product In-Reply-To: <818158.10409.qm@web94615.mail.in2.yahoo.com> References: <818158.10409.qm@web94615.mail.in2.yahoo.com> Message-ID: <992EF3D8-D142-4704-B4F8-6BA9E1AD7432@me.com> Dear Forum, Dear Krishna Mohan, > I have learnt that the StructureDescription command gives me the structure of certain groups as semidirect products. But, as I have discovered, to specify a semidirect product one needs to specify a homomorphism as well. > > Can GAP give me the relevant homomorphism? If you have the concrete normal subgroup N and complement C, the following commands will produce such a homomorphism. In general there is no method for describing such a homomorphism with a name, and `StructureDrescription will not return the homomorphism -- you will have to get N and C yourself. # create an example N and C gap> G:=SymmetricGroup(4); Sym( [ 1 .. 4 ] ) gap> N:=Subgroup(G,[(1,2)(3,4),(1,3)(2,4)]); Group([ (1,2)(3,4), (1,3)(2,4) ]) gap> C:=Complementclasses(G,N)[1]; Group([ (3,4), (2,4,3) ]) gap> auts:=List(GeneratorsOfGroup(C),x->GroupHomomorphismByImages(N,N, > GeneratorsOfGroup(N),List(GeneratorsOfGroup(N),y->y^x))); [ [ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,2)(3,4), (1,4)(2,3) ], [ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,4)(2,3), (1,2)(3,4) ] ] gap> hom:=GroupHomomorphismByImagesNC(C,Group(auts), > GeneratorsOfGroup(C),auts); [ (3,4), (2,4,3) ] -> [ [ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,2)(3,4), (1,4)(2,3) ], [ (1,2)(3,4), (1,3)(2,4) ] -> [ (1,4)(2,3), (1,2)(3,4) ] ] Now `hom' is a homomorphism, one can use to create a semidirect product: gap> S:=SemidirectProduct(C,hom,N); Group([ (3,4), (2,4,3), (1,2)(3,4), (1,3)(2,4) ]) gap> Size(S); 24 gap> IsomorphismGroups(G,S); [ (1,2,3,4), (1,2) ] -> [ (1,2,4,3), (1,2) ] 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 imranmaths at yahoo.com Sat May 29 11:08:23 2010 From: imranmaths at yahoo.com (Imran) Date: Sat, 29 May 2010 10:08:23 +0000 (GMT) Subject: [GAP Forum] Weyl group of Gl(n) Message-ID: <721071.89234.qm@web29005.mail.ird.yahoo.com> Dear Forum We can access the Weyl groups of different types of semi-simple Lie groups in GAP. Is it possible to get the Matrix form of Weyl groups of reductive Lie groups? For example can we compute the matrix form of Weyl group of Genereral Linear group Gl(n)? because its Weyl group will consists n x n matrices contrary to Sl(n) who's Wyel group is given by (n-1) x (n-1) matrices. Regards Imran Qureshi From mbg.nimda at gmail.com Sun May 30 15:26:31 2010 From: mbg.nimda at gmail.com (mbg nimda) Date: Sun, 30 May 2010 16:26:31 +0200 Subject: [GAP Forum] An Essay in GAP Programming: Algebraic Topology Message-ID: Dear Forum Members, I have only be using GAP for a little while and derived great pleasure from it. Out of curiosity I also had a look at the Programmers Reference, and decided, as an exercise to write some functions supporting the study of homological groups on chain complexes. I would like to present the results of what I actually have already at this moment and obtain remarks and comments from the public on something that maybe could become a package concerning the construction and the study of chain complexes. It has to be said that this work is in a very embryonic stage, programming is lousy, nomenclature is not always consistent and some problems still have to be resolved. Maybe a few examples could give a good idea what it is all about. In this implementation, chain complexes are constructed by using skeletons recursively, increasing dimension, each skeleton of dimension n serving as a building block on which a skeleton of dimension n+1 is constructed. A 0-skeleton is a mere finite set of vertexes (the type of elements of this set is not important yet, so it can be numbers, polynomials, indeterminates etc.). The only effect is that they are labelled and that this label is used as a positional parameter in higher dimensions. A 1-skeleton is built on a given 0-skeleton by connecting some of the vertexes, in fact one considers a set of formal differences between two vertexes, giving a directed edge. If v is the number of vertexes then these edges can be represented as v-dimensional vectors with only two integer entries 1 and -1 put at the position of the corresponding points. For example the edge connecting the i-th vertex with the j-th vertex can be viewed as the vector (0,..0,1,0,..,0,-1,0,..,0) with the i-th coordinate being 1 and the j-th coordinate being -1. In order not to overflow the forum system I will start with a few examples, but it soon will be clear that the construction always follows the same scheme. First a set of n-cycles is found out, and "promoted" to n+1-cells. Then a set of these cells is found out that form cycles to be promoted to n+2-cells and so on. The examples will appear in separate postings in order not to inundate the forum and to have separate references in case of discussion. The examples will include: The 2-Disk The 2-Sphere The 2-Open ended cylinder The Moebius strip The 2-Projective Space The Klein bottle Still to do : the double torus, the 3-Sphere, general constructions like joining and excision. Thanks for your attention. PS: is it OK if I put some images/programming code as attachments or is this "not done"? Marc Bogaerts From bmonson at unb.ca Mon May 31 17:02:27 2010 From: bmonson at unb.ca (Monson, Barry R) Date: Mon, 31 May 2010 13:02:27 -0300 Subject: [GAP Forum] unpredictable SemidirectProduct Message-ID: <20100531130227.90573x0vfeel23y8@webmail.unb.ca> Dear Gap users, I am puzzled by the behaviour of SemidirectProduct. Two similar calculations, only one successful, follow. Can someone explain what, if anything, I am doing wrong? The problem may have something to do with `immutable compressed matrices'. Thanks, Barry. ####################################### gap> r0:=(1,2);;r1:=(2,3);;G:=Group(r0,r1); Group([ (1,2), (2,3) ]) gap> u:=Z(5)^0; Z(5)^0 gap> m0:=u*[[0,1],[1,0]];; m1:=u*[[1,0],[-1,-1]];; gap> Mat:=Group(m0,m1);;IsSubgroup(GL(2,5),Mat); true gap> N:=GF(5)^2;; gap> alpha:=GroupHomomorphismByImages(G,Mat,[r0,r1],[m0,m1]);; gap> sem:=SemidirectProduct(G,alpha,N); gap> # So far, so good; 150 = 6*25. gap> # Now tweak the inputs a little. gap> m0:=u*[[1,0,0],[0,1,0],[0,0,1]];;m1:=m0;; gap> Mat:=Group(m0,m1);IsSubgroup(GL(3,5),Mat); Group([ [ [ Z(5)^0, 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0, 0*Z(5) ], [ 0*Z(5), 0*Z(5), Z(5)^0 ] ], [ [ Z(5)^0, 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0, 0*Z(5) ], [ 0*Z(5), 0*Z(5), Z(5)^0 ] ] ]) true gap> # Now we have a trivial action on a 3-dimensional space over GF(5). gap> N:=GF(5)^3;; gap> alpha:=GroupHomomorphismByImages(G,Mat,[r0,r1],[m0,m1]); [ (1,2), (2,3) ] -> [ [ [ Z(5)^0, 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0, 0*Z(5) ], [ 0*Z(5), 0*Z(5), Z(5)^0 ] ] , [ [ Z(5)^0, 0*Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0, 0*Z(5) ], [ 0*Z(5), 0*Z(5), Z(5)^0 ] ] ] gap> sem:=SemidirectProduct( G, alpha, N ); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `SemidirectProduct' on 3 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> quit; From vdabbagh at sfu.ca Mon May 31 20:17:47 2010 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Mon, 31 May 2010 12:17:47 -0700 (PDT) Subject: [GAP Forum] Are reps from repsn package unitary? In-Reply-To: <531259.30843.qm@web94615.mail.in2.yahoo.com> Message-ID: <1641380269.4202541275333467865.JavaMail.root@jaguar7.sfu.ca> Hi Krishna, Sorry for the late reply. I was out of town. The answer to your question is no. The REPSN package doesn't always compute unitary matrices, and there is no specific function to do that. Regards Vahid ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ ----- Original Message ----- From: "krishna mohan" To: "gap forum" Sent: Thursday, May 27, 2010 12:22:25 AM GMT -08:00 US/Canada Pacific Subject: [GAP Forum] Are reps from repsn package unitary? Hi.... I have used the repsn package to construct representations for certain groups. Till now, all the reps have been unitary. I wanted to know whether the package always gives unitary matrices. If not, is there a way to tell the package to produce unitary reps? Krishnamohan Project Assistant CHEP IISc _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From hulpke at me.com Tue Jun 1 12:15:16 2010 From: hulpke at me.com (Alexander Hulpke) Date: Tue, 01 Jun 2010 12:15:16 +0100 Subject: [GAP Forum] unpredictable SemidirectProduct In-Reply-To: <20100531130227.90573x0vfeel23y8@webmail.unb.ca> References: <20100531130227.90573x0vfeel23y8@webmail.unb.ca> Message-ID: <28B7EEF8-DEE7-416A-A67C-FD4FE101AB7F@me.com> Dear Forum, Dear Barry Monson, > I am puzzled by the behaviour of SemidirectProduct. > Two similar calculations, only one successful, follow. > Can someone explain what, if anything, I am doing wrong? The existing (convenience) code for constructing semidirect products with vector spaces assumes that the group acts faithfully -- otherwise one cannot construct the product as a group of affine matrices. I append a modified function that in such a case constructs the vector space as a group (and forms the corresponding automorphisms), allowing to use the generic mechanism for semidirect products. I hope this resolves the issue. In this case, however, the product will not be represented any longer as a matrix group. Best, Alexander Hulpke ############################################################################## ## #M SemidirectProduct: with vector space ## InstallOtherMethod( SemidirectProduct, "group with vector space: affine", true, [ IsGroup, IsGroupHomomorphism, IsFullRowModule and IsVectorSpace ], 0, function( G, map, V ) local pm,F,d,b,s,t,pos,i,j,img,m,P,info,Go,bnt,N,pcgs,auts,mapi,ag,phi,imgs; # construction assumes faithful action. AH if Size(KernelOfMultiplicativeGeneralMapping(map))<>1 then # not faithful -- cannot simply build as matrices N:=ElementaryAbelianGroup(Size(V)); pcgs:=Pcgs(N); auts:=[]; mapi:=MappingGeneratorsImages(map); for i in mapi[2] do imgs:=List(i,x->PcElementByExponents(pcgs,x)); Add(auts,GroupHomomorphismByImagesNC(N,N,pcgs,imgs)); od; ag:=Group(auts,IdentityMapping(N)); SetIsGroupOfAutomorphismsFiniteGroup(ag,true); phi:=GroupHomomorphismByImages(G,ag,mapi[1],auts); s:=SemidirectProduct(G,phi,N); return s; fi; G:=Image(map,G); F:=LeftActingDomain(V); d:=DimensionOfVectors(V); # if G is a permgroup, take permutation matrices Go:=G; if IsPermGroup(G) then m:=List(GeneratorsOfGroup(G),i->PermutationMat(i,d,F)); s:=Group(m); pm:=GroupHomomorphismByImagesNC(G,s,GeneratorsOfGroup(G),m); map:=map*pm; G:=s; fi; if not IsMatrixGroup(G) or d<>DimensionOfMatrixGroup(G) or not IsSubset(F,FieldOfMatrixGroup(G)) then Error("the matrices do not fit with the field"); fi; b:=BasisVectors(Basis(V)); # spin up a basis s:=[]; pos:=1; t:=[]; while Length(s)0 and RankMat(s)=RankMat(Concatenation(s,[b[pos]])) do pos:=pos+1; od; Add(s,b[pos]); Add(t,b[pos]); # those vectors need own affine matrices # spin the new vector i:=Length(s); while i<=Length(s) and Length(s)F then b:=BasisVectors(Basis(Field(FieldOfMatrixGroup(G),GeneratorsOfField(F)))); s:=[]; for i in t do for j in b do Add(s,i*j); od; od; t:=s; fi; m:=[]; # build affine matrices from group generators for i in GeneratorsOfGroup(G) do b:=MutableIdentityMat(d+1,F); b{[1..d]}{[1..d]}:=i; Add(m,ImmutableMatrix(F,b)); od; # and from basis vectors bnt:=[]; for i in t do b:=MutableIdentityMat(d+1,F); b[d+1]{[1..d]}:=i; b:=ImmutableMatrix(F,b); Add(m,b); Add(bnt,b); od; P:=Group(m,One(m[1])); SetSize(P,Size(G)*Size(V)); info:=rec(group:=Go, vectorspace:=V, normalsub:=bnt, lenlist:=[0,Length(GeneratorsOfGroup(G))], embeddings:=[], field:=F, dimension:=d, projections:=true); SetSemidirectProductInfo( P, info ); return P; end); -- 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 wchin at condor.depaul.edu Thu Jun 3 13:16:17 2010 From: wchin at condor.depaul.edu (Bill Chin) Date: Thu, 3 Jun 2010 07:16:17 -0500 Subject: [GAP Forum] normal subgroup semidirect product Message-ID: I need to know the normal subgroups of the following group G'. G' is defined as follows. G=symmetric group on 7 elements. S=symmetric group on 5 elements, embedded in G as the subgroup stabilizing 6 and 7. R = integers mod 3. K=the free R-module with R-basis the set of right cosets of S in G. Finally G' is the semidirect product of K by G. Can anyone help? Esther From hulpke at me.com Thu Jun 3 14:59:22 2010 From: hulpke at me.com (Alexander Hulpke) Date: Thu, 03 Jun 2010 14:59:22 +0100 Subject: [GAP Forum] normal subgroup semidirect product In-Reply-To: References: Message-ID: Dear Bill/Esther, Dear Forum, > I need to know the normal subgroups of the following group G'. > > G' is defined as follows. > > G=symmetric group on 7 elements. > > S=symmetric group on 5 elements, embedded in G as the subgroup stabilizing 6 > and 7. > > R = integers mod 3. > > K=the free R-module with R-basis the set of right cosets of S in G. > > Finally G' is the semidirect product of K by G. I read this description that (n=[S_7:S_5]=7*6=42) you have S_7 act in degree 42 on pairs of points and take the semidirect product of K=C_3^n with S_7 acting by permuting generators. The main issue is how to generate this group, as the generic semidirect product, or the product generated by matrices are rather unhandy to work with. The easiest way in fact seems to be to observe that (because of the permutation of the basis vectors) the group is in fact simply the wreath product C_3\wr S_7 with S_7 acting on 42 points: gap> S:=SymmetricGroup(7); Sym( [ 1 .. 7 ] ) gap> pairs:=Arrangements([1..7],2); [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 1, 5 ], [ 1, 6 ], [ 1, 7 ], [ 2, 1 ], [ 2, 3 ], [ 2, 4 ], [ 2, 5 ], [ 2, 6 ], [ 2, 7 ], [ 3, 1 ], [ 3, 2 ], [ 3, 4 ], [ 3, 5 ], [ 3, 6 ], [ 3, 7 ], [ 4, 1 ], [ 4, 2 ], [ 4, 3 ], [ 4, 5 ], [ 4, 6 ], [ 4, 7 ], [ 5, 1 ], [ 5, 2 ], [ 5, 3 ], [ 5, 4 ], [ 5, 6 ], [ 5, 7 ], [ 6, 1 ], [ 6, 2 ], [ 6, 3 ], [ 6, 4 ], [ 6, 5 ], [ 6, 7 ], [ 7, 1 ], [ 7, 2 ], [ 7, 3 ], [ 7, 4 ], [ 7, 5 ], [ 7, 6 ] ] gap> hom:=ActionHomomorphism(S,pairs,OnTuples); gap> G:=Image(hom); Group([ (1,8,15,22,29,36,37)(2,9,16,23,30,31,38)(3,10,17,24,25,32,39)(4,11,18, 19,26,33,40)(5,12,13,20,27,34,41)(6,7,14,21,28,35,42), (1,7)(2,8)(3,9)(4,10)(5,11)(6,12)(13,14)(19,20)(25,26)(31,32)(37,38) ]) gap> Size(G); 5040 gap> P:=WreathProduct(Group((1,2,3)),G); Now we can calculate the normal subgroups (32 in total) gap> N:=NormalSubgroups(P); 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 greg.d.tener at gmail.com Mon Jun 7 03:15:20 2010 From: greg.d.tener at gmail.com (Greg Tener) Date: Sun, 6 Jun 2010 19:15:20 -0700 Subject: [GAP Forum] Possible bug with MinimalGeneratingSet()??? Message-ID: Dear GAP-forum, There might be a problem with MinimalGeneratingSet(). It seems not to work for a particular group, as shown in the following console session: """ gap> g := Group( [ (1,2,3,4,5), (1,2,3) ] ); Group([ (1,2,3,4,5), (1,2,3) ]) gap> MinimalGeneratingSet(g); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 2nd choice method found for `IndependentGeneratorsOfAbelianGroup' on 1 arguments called from IndependentGeneratorsOfAbelianGroup( G ) 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 """ Am I doing something wrong or could this be a bug? I know nothing about the internals of GAP so I cannot think why this would happen or how to fix it. Thanks, -Greg Tener- From jbohanon2 at gmail.com Mon Jun 7 04:06:26 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sun, 6 Jun 2010 23:06:26 -0400 Subject: [GAP Forum] Possible bug with MinimalGeneratingSet()??? In-Reply-To: References: Message-ID: Greg and Forum You might find this link particularly helpful here: http://mail.gap-system.org/pipermail/forum/2005/001109.html For non-solvable groups, you can (sort of) get what you want with "SmallGeneratingSet". I would guess from the name that it's not necessarily "Minimal", however, it can be very useful if you define a non-solvable group, then try (for instance) asking for the center, and you get a subgroup with 2 elements and 35 generators (I swear, I've seen that happen before). In my experience, it does very well with permutation groups. With groups you define yourself via generators and relations, anything goes. Joe On Sun, Jun 6, 2010 at 10:15 PM, Greg Tener wrote: > Dear GAP-forum, > > There might be a problem with MinimalGeneratingSet(). It seems not to > work for a particular group, as shown in the following console > session: > > """ > gap> g := Group( [ (1,2,3,4,5), (1,2,3) ] ); > Group([ (1,2,3,4,5), (1,2,3) ]) > gap> MinimalGeneratingSet(g); > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 2nd choice method found for > `IndependentGeneratorsOfAbelianGroup' on 1 arguments called from > IndependentGeneratorsOfAbelianGroup( G ) 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 > """ > > Am I doing something wrong or could this be a bug? I know nothing > about the internals of GAP so I cannot think why this would happen or > how to fix it. > > Thanks, > -Greg Tener- > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From e.obrien at auckland.ac.nz Tue Jun 8 02:18:01 2010 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Tue, 08 Jun 2010 13:18:01 +1200 Subject: [GAP Forum] Vacancy in Combinatorics / Graph Theory at the University of Auckland Message-ID: <4C0D9A49.9090007@math.auckland.ac.nz> Dear Forum, Applications are invited for a permanent position at the Lecturer/Senior Lecturer level in the Department of Mathematics, University of Auckland. This position is intended for candidates who have a PhD in Mathematics and who can demonstrate a strong commitment to excellence in research and teaching at all levels of Mathematics. The successful applicant will have research interests in combinatorics or graph theory, or a field closely related to these. The Department of Mathematics offers a full range of courses at the undergraduate and postgraduate levels, and has a growing PhD programme and a vibrant research culture spanning pure and applied mathematics and mathematics education. It is closely affiliated to, and hosts the offices of, the New Zealand Institute for Mathematics and Its Applications (http://www.nzima.org). More details about the Department and this vacancy may be found at http://www.math.auckland.ac.nz/ Closing date: 20th August 2010 Informal inquiries: Professor Eamonn O'Brien From jjm at mcs.st-and.ac.uk Tue Jun 8 12:20:12 2010 From: jjm at mcs.st-and.ac.uk (John McDermott) Date: Tue, 08 Jun 2010 12:20:12 +0100 Subject: [GAP Forum] [Fwd: Uncaught bounce notification] Message-ID: <1275996012.4907.12.camel@mcdermott3.mcs.st-and.ac.uk> Dear Thekiso Seretlo, dear all, This message was accidentally sent to forum-bounces at gap-system.org, rather than the correct address for the GAP Forum: forum at gap-system.org. Please send replies to 207525917 at ukzn.ac.za and not to me. John > > -------- Forwarded Message -------- > > From: Thekiso Seretlo <207525917 at ukzn.ac.za> > > To: forum-bounces at gap-system.org > > Subject: Re:5^2:2.A5 > > Date: Tue, 08 Jun 2010 11:38:11 +0200 > > > > Dear Gap Forum > > I wonder who can help me with the Schur mutiplier of the group $5^2:2A5$. > > Thanks in advance > > Yours > > TT Seretlo > > > > Please find our Email Disclaimer here: http://www.ukzn.ac.za/disclaimer/ > > From vdabbagh at sfu.ca Tue Jun 8 20:45:16 2010 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Tue, 8 Jun 2010 12:45:16 -0700 (PDT) Subject: [GAP Forum] list of elements In-Reply-To: <409497481.6808181276025882417.JavaMail.root@jaguar7.sfu.ca> Message-ID: <1671067763.6812081276026316940.JavaMail.root@jaguar7.sfu.ca> Dear GAP Forum, I used the function AsSSortedList to list the elements of a permutation group. Does anybody know what type of ordering is used in the output list? Thanks Vahid Dabbaghian ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ From hulpke at me.com Tue Jun 8 20:46:54 2010 From: hulpke at me.com (Alexander Hulpke) Date: Tue, 08 Jun 2010 20:46:54 +0100 Subject: [GAP Forum] [Fwd: Uncaught bounce notification] In-Reply-To: <1275996012.4907.12.camel@mcdermott3.mcs.st-and.ac.uk> References: <1275996012.4907.12.camel@mcdermott3.mcs.st-and.ac.uk> Message-ID: <68D89D85-E026-44A4-BC34-780767CBAB01@me.com> Dear GAP Forum, Dear Thekiso Seretlo, >>> I wonder who can help me with the Schur mutiplier of the group $5^2:2A5$. The group is g:=PerfectGroup(3000,1); (Only perfect group of that order, so its easy) AbelianInvariantsMultiplier(g); returns [5], so the multiplier is C5. 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 hulpke at me.com Tue Jun 8 21:00:24 2010 From: hulpke at me.com (Alexander Hulpke) Date: Tue, 08 Jun 2010 21:00:24 +0100 Subject: [GAP Forum] list of elements In-Reply-To: <1671067763.6812081276026316940.JavaMail.root@jaguar7.sfu.ca> References: <1671067763.6812081276026316940.JavaMail.root@jaguar7.sfu.ca> Message-ID: Dear Forum, Dear Vahid Dabbaghian, > I used the function AsSSortedList to list the elements of a permutation group. Does anybody know what type of ordering is used in the output list? The ordering (which also is the one used by <) is lexicographic on images of [1,2,3,4,5,...], for example (1,2,3) >(2,3) as [2,3,1] > [1,3,2] 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 greg.d.tener at gmail.com Tue Jun 8 22:16:38 2010 From: greg.d.tener at gmail.com (Greg Tener) Date: Tue, 8 Jun 2010 14:16:38 -0700 Subject: [GAP Forum] Possible bug with MinimalGeneratingSet()??? In-Reply-To: References: Message-ID: Thanks Joe, your reply was very helpful, I can just use "SmallGeneratingSet" when "MinimalGeneratingSet" fails. Also, I have a question about terminology/semantics, I thought "MinimalGeneratingSet" was providing a set of generators such that no subset of them generates the entire group. Is it, on the contrary, returning a group with the fewest possible number of generators? (I was under the impression this would be called a "MinimumGeneratingSet"). On Sun, Jun 6, 2010 at 8:06 PM, Joe Bohanon wrote: > Greg and Forum > > You might find this link particularly helpful here: > > http://mail.gap-system.org/pipermail/forum/2005/001109.html > > For non-solvable groups, you can (sort of) get what you want with > "SmallGeneratingSet".? I would guess from the name that it's not necessarily > "Minimal", however, it can be very useful if you define a non-solvable > group, then try (for instance) asking for the center, and you get a subgroup > with 2 elements and 35 generators (I swear, I've seen that happen before). > In my experience, it does very well with permutation groups.? With groups > you define yourself via generators and relations, anything goes. > > Joe > > On Sun, Jun 6, 2010 at 10:15 PM, Greg Tener wrote: >> >> Dear GAP-forum, >> >> There might be a problem with MinimalGeneratingSet(). ?It seems not to >> work for a particular group, as shown in the following console >> session: >> >> """ >> gap> g := Group( [ (1,2,3,4,5), (1,2,3) ] ); >> Group([ (1,2,3,4,5), (1,2,3) ]) >> gap> MinimalGeneratingSet(g); >> Error, no method found! For debugging hints type ?Recovery from >> NoMethodFound >> Error, no 2nd choice method found for >> `IndependentGeneratorsOfAbelianGroup' on 1 arguments called from >> IndependentGeneratorsOfAbelianGroup( G ) 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 >> """ >> >> Am I doing something wrong or could this be a bug? I know nothing >> about the internals of GAP so I cannot think why this would happen or >> how to fix it. >> >> Thanks, >> -Greg Tener- >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > From graham.ellis at nuigalway.ie Wed Jun 16 06:31:35 2010 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Wed, 16 Jun 2010 06:31:35 +0100 Subject: [GAP Forum] workshop on group actions References: <47C2E007B3E98F4E8BBC7997F007CE1308BC37E3@EVS1.ac.nuigalway.ie> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1308BC37E5@EVS1.ac.nuigalway.ie> Dear friends and colleagues, We would like to draw your attention to the "Fourth de Brun Workshop on Group Actions", which will take place in Galway between 6-12 December 2010. There will be three minicourses, given by Jeff Brock (Brown): Asymptotics of Weil-Petersson geodesics on Teichmueller space and the geometry of hyperbolic 3-manifolds Hamish Short (Marseille): Limit groups Juan Souto (Michigan): Mapping class groups We are also planning to have a number of contributed talks; details to follow in due course. We have funds to cover the accommodation costs of about 25-30 participants. If you are interested in attending, please email Javier Aramayona at javier.aramayona at nuigalway.ie. More details will be posted to the conference website, which is located at http://hamilton.nuigalway.ie/DeBrunCentre/FourthWorkshop.html Best regards, Javier Aramayona & Graham Ellis From siddhartha18 at gmail.com Wed Jun 16 18:14:00 2010 From: siddhartha18 at gmail.com (Siddhartha Sarkar) Date: Wed, 16 Jun 2010 22:44:00 +0530 Subject: [GAP Forum] First announcement of GROUPS, ACTIONS, COMPUTATIONS 2010 Message-ID: Dear GAP forum, We are happy to announce the workshop GROUPS, ACTIONS, COMPUTATIONS 2010 followed by a conference (1 - 12 September, 2010) in HRI, Allahabad, India. Please contact us to : gac2010 at hri.res.in if you are interested to attend. regards, Siddhartha ###################################################################### This is to announce a combined workshop and conference `Groups, Actions, Computations' (GAC2010), at the Harish-Chandra Research Institute in Allahabad, India. from September 1st to September 12th, 2010, taking place under the auspices of the International Centre for Theoretical Sciences of the Tata Institute of Fundamental Research. We will address recent developments in finite group theory, with a definite emphasis on computational aspects: next to general techniques for matrix and permutation groups, we will discuss the classification of and computations with p-groups, give an introduction to simple groups and how to compute with them, and consider actions of finite groups on Riemann surfaces. In the workshop part we will have various introductory lecture series, which additionally will be accompanied by practical introductions to the computer algebra system GAP; amongst the speakers will be Max Neunh?ffer (St.Andrews) and Eamonn O'Brien (Auckland). Subsequently, in the conference part recent research results will be presented by internationally renowned experts. For more details please find the conference webpage `www.icts.res.in/program/GAC2010'. Manoj Kumar (Allahabad, India) Siddhartha Sarkar (Bhopal, India) J?rgen M?ller (Aachen, Germany) ###################################################################### From trebauchet1986 at yahoo.co.in Mon Jun 21 07:05:07 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Mon, 21 Jun 2010 11:35:07 +0530 (IST) Subject: [GAP Forum] CharacterTable and Irr Message-ID: <490713.19209.qm@web94615.mail.in2.yahoo.com> Hi... I wanted to know if the ordering of conjugacy classes as obtained by using the commands CharacterTable and Irr are the same. I generally find it to be so. The gap manual is not very clear about this although the impression I got was that it is indeed the same. Krishnamohan Project Assistant CHEP Indian institute of Science Bangalore From hulpke at me.com Mon Jun 21 09:47:30 2010 From: hulpke at me.com (Alexander Hulpke) Date: Mon, 21 Jun 2010 09:47:30 +0100 Subject: [GAP Forum] CharacterTable and Irr In-Reply-To: <490713.19209.qm@web94615.mail.in2.yahoo.com> References: <490713.19209.qm@web94615.mail.in2.yahoo.com> Message-ID: Dear Forum, Krishna Mohan asked: > I wanted to know if the ordering of conjugacy classes as obtained by using the commands CharacterTable and Irr are the same. > I generally find it to be so. The gap manual is not very clear about this although the impression I got was that it is indeed the same. It does not need to be (but often is, in particular if the table is computed from scratch for a given group the classes are just taken as given by the group). If the table was taken from a library of existing tables, for example by connecting a given table with a given group, however, it is possible that the arrangement will differ. Because of this, the attribute IdentificationOfClasses for a character table holds the corresponding class numbers of the underlying group. See the manual chapter The Interface between Character Tables and Groups http://www.gap-system.org/Manuals/doc/htm/ref/CHAP069.htm#SECT006 for more details. 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 marc.bogaerts at cyclone.be Mon Jun 21 16:56:41 2010 From: marc.bogaerts at cyclone.be (Marc Bogaerts) Date: Mon, 21 Jun 2010 17:56:41 +0200 Subject: [GAP Forum] Chain Complexes: INTRO Message-ID: <4C1F8BB9.70009@cyclone.be> Dear forum members, A few weeks ago I announced I was going to post some results I had writing some gap functions that permit to represent "chain complexes". First of all I have to make you aware that all this is very inuitive and there are no proofs of my assertions whatsoever. I admit the programming style is clumsy and not optimal. Moreover the notion of "chain complex" is rather vague but can be seen as purely algebraically abstract. The idea of a chain complex is based on the notion of n-skeleton. For each object in this category, there is a list of skeletons built one upon the other. Here is how a chain complex is built: First there a set of vertices is chosen. For this 0-skeleton it does not matter what exactly a set contains, only it's number of elements is important. The command to create a 0-skeleton is simply: ChainComplex(0, set), where the first argument is the dimension, and the second argument is any finite set. Example c0:=ChainComplex(0, [1..6]); #line 1 The command for 0- and 1- skeletons differ from those of higher dimensions as will be clear in the following. As an example of the creation of a 1-skeleton we could enter c1:=ChainComplex(1, c0, [[1,2],[2,3],[3,1],[4,5],[5,6],[6,4],[1,4],[2,5],[3,6]]); #line 2 The arguments are the dimension, the skeleton of dimension 0, and a set of (order independent) order independent defind by a couple of vertices respectively. A closer inspection shows that these edges form two triangles with the respective vertices joined: The 1-skeleton of a prism. From dimension 2 on, the command ChainComplex is standard of the form ChainComplex(n, c, list), where n is the dimension, c is a previously defined n-1 skeleton, and "list" is a set of vectors of the same length, containing coefficients. These coefficients are associated with objects of the previous skeleton c, the objects being identified by their position in c. Example based on line 2: c2:=ChainComplex(2, c1, [ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], # the face 1,2,5,4 [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], # the face 2,3,6,5 [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ] # the face 3,1,4,6 ] # line 3 This 2-skeleton is built on c1 and defines the three lateral square faces of the prism. Some of the examples contain a scheme in ASCII characters. In order to distinguish between the labels of vertices and the labels of edges, the vertices are labeled by an asterix followed by a number. The labels of the edges are written on the edges themselves. I don't have examples where the faces needed to be labeled. I expect to receive your suggestions, comments, questions and recommandations for improvement. I also don't know if it is admissible to add pictures as attachments, I've not seen it been doing here before, but I'll do it anyway unless somebody complains. Marc Bogaerts. From marc.bogaerts at cyclone.be Mon Jun 21 17:04:48 2010 From: marc.bogaerts at cyclone.be (Marc Bogaerts) Date: Mon, 21 Jun 2010 18:04:48 +0200 Subject: [GAP Forum] Chain Complexes: The 2-Disk Message-ID: <4C1F8DA0.5060505@cyclone.be> # we start with a 0-skeleton consisting of 3 points c0:=ChainComplex(0,[1..3]); dim 0:[ 1 .. 3 ] # for the 1 skeleton we first connect 1 and 2: c1:=ChainComplex(1,c0,[[1,2]]); dim 0:[ 1 .. 3 ] dim 1:[ [ 1, -1, 0 ] ] Basis of 2-cells: [ ] # remark that the arguments are now: the dimension, a 0-skeleton to build upon # and a set (with one member) of edges on which to build the 1-skeleton # remark how the edges (1-cells) are kept in memory # there seem to be no 1-cycles, so no 2 cells can be formed. What do we know about this object? HomologyGroups(c1); [ [ 0, 0 ], [ ] ] SingularFaces(c1); [ 1, 2 ] # Points 1 and 2 are border points so c1 is not a manifold. Let's connect 2 and 3 too: c1:=ChainComplex(1,c0,[[1,2],[2,3]]); dim 0:[ 1 .. 3 ] dim 1:[ [ 1, -1, 0 ], [ 0, 1, -1 ] ] Basis of 2-cells: [ ] # looking at the homology groups gives: HomologyGroups(c1); [ [ 0 ], [ ] ] # the space is now connected, but still no cycles. SingularFaces(c1); [ 1, 3 ] # 1 and 3 are still boundary points, let's connect them: c1:=ChainComplex(1,c0,[[1,2],[2,3],[3,1]]); dim 0:[ 1 .. 3 ] dim 1:[ [ 1, -1, 0 ], [ 0, 1, -1 ], [ -1, 0, 1 ] ] Basis of 2-cells: [ [ 1, 1, 1 ] ] HomologyGroups(c1); [ [ 0 ], [ 0 ] ] SingularFaces(c1); [ ] # The homology groups are that of a circle and there are no border points, so we probably represent a circle # since the software proposes a 2 cell to be constructed we use it in a 2 skeleton: c2:=ChainComplex(2,c1,[[1,1,1]]); dim 0:[ 1 .. 3 ] dim 1:[ [ 1, -1, 0 ], [ 0, 1, -1 ], [ -1, 0, 1 ] ] dim 2:[ [ 1, 1, 1 ] ] Basis of 3-cells: [ ] HomologyGroups(c2); [ [ 0 ], [ ], [ ] ] # That of a contracible space SingularFaces(c2); [ [ 1, -1, 0 ], [ 0, 1, -1 ], [ -1, 0, 1 ] ] # the three edges form a border of the disk. From marc.bogaerts at cyclone.be Mon Jun 21 17:24:53 2010 From: marc.bogaerts at cyclone.be (Marc Bogaerts) Date: Mon, 21 Jun 2010 18:24:53 +0200 Subject: [GAP Forum] Chin Complexes: The Cylinder Message-ID: <4C1F9255.6070705@cyclone.be> # The following scheme sketches the 0- ,1- and 2 skeleton of a cyclinder, # presented as a triangular prism. The vertices are numbered by a label # preceded by an asterix, the edges are labelled by a number written on it. # # # # *6 / | \ # / | \ # 6 | 5 # / | \ # *4---4--- *5 # | | | # | 9 | # 7 | 8 # | *3 | # | / \ | # | 3 2 | # |/ \ | # *1---1--- *2 # First we construct the 0-skeleton consisting of 6 points c0:=ChainComplex(0,[1..6]); dim 0:[ 1 .. 6 ] # Then the 1-skeleton: c1:=ChainComplex(1,c0,[[1,2],[2,3],[3,1],[4,5],[5,6],[6,4],[4,1],[5,2],[6,3]]); dim 0:[ 1 .. 6 ] dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [ 0, 0, -1, 0, 0, 1 ] ] Basis of 2-cells: [ [ 1, 0, 0, 0, 1, 1, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ], [ 0, 0, 0, 1, 1, 1, 0, 0, 0 ] ] # Note that the software already indicates 5 independent 1-cycles that serve # as a basis for all the possible cycles that can be promoted to cells. # but we're only interested in those square faces which make up the # open cylinder. In fact, we want for each square face, to find a combination # of edges that make up these faces, in such a way that they form a cycle. # First let's get this set of edges: 1, 8, 4, 7 (the face at the front) M:=GeneratorsOfBoundaries(0,c1); # a basis for all 1-faces [ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [ 0, 0, -1, 0, 0, 1 ] ] u:=[1..9]*0; [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ] faces:=[]; [ ] # the first face with edges numbered 1,8,4,7 u{[1,8,4,7]}:=[a,b,c,d]; [ a, b, c, d ] # I previously defined a,b,c,d,... as rational indeterminates; u; [ a, 0, 0, c, 0, 0, d, b, 0 ] # in order to have a 1-cycle we must have u*M = 0, so; u*M; [ a-d, -a-b, 0, c+d, b-c, 0 ] # we can chose a=d=1 giving u{[1,8,4,7]}:=[1,b,c,1]; [ 1, b, c, 1 ] u*M; [ 0, -b-1, 0, c+1, b-c, 0 ] # so b=-1, and c=-1 : u{[1,8,4,7]}:=[1,-1,-1,1]; [ 1, -1, -1, 1 ] u*M; [ 0, 0, 0, 0, 0, 0 ] # ok, we found the right combination for the first 2-face u; [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ] Add(faces,u); # two more to go # next for the face 2,8,5,9: u:=[1..9]*0; [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ] u{[2,8,5,9]}:=[a,b,c,d]; [ a, b, c, d ] u; [ 0, a, 0, 0, c, 0, 0, b, d ] u*M; [ 0, a-b, -a-d, 0, b+c, -c+d ] u{[2,8,5,9]}:=[1,1,-1,-1]; [ 1, 1, -1, -1 ] u*M; [ 0, 0, 0, 0, 0, 0 ] u; [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ] Add(faces,u); # one more to go faces; [ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ] ] u:=[1..9]*0; [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ] u{[3,9,6,7]}:=[a,b,c,d]; [ a, b, c, d ] u; [ 0, 0, a, 0, 0, c, d, 0, b ] u{[3,9,6,7]}:=[1,1,-1,-1]; [ 1, 1, -1, -1 ] u*M; [ 0, 0, 0, 0, 0, 0 ] u; [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ] Add(faces,u); faces; [ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ] ] # We can now define the open ended cylinder as a chain complex: c2:=ChainComplex(2,c1,faces); dim 0:[ 1 .. 6 ] dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [ 0, 0, -1, 0, 0, 1 ] ] dim 2:[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ] ] Basis of 3-cells: [ ] HomologyGroups(c2); [ [ 0 ], [ 0 ], [ ] ] # homotopy type of a circle confirmed SingularFaces(c2); [ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ] ] NullspaceIntMat(last); [ [ 1, 1, 1, 0, 0, 0 ], [ 0, 0, 0, 1, 1, 1 ] ] # The border has two components. # This completes the construction of the open ended cylinder. Lets fill up one triangle: u:=[1..9]*0; [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ] u{[1,2,3]}:=[a,b,c]; [ a, b, c ] u; [ a, b, c, 0, 0, 0, 0, 0, 0 ] u*M; [ a-c, -a+b, -b+c, 0, 0, 0 ] u{[1,2,3]}:=[1,1,1]; [ 1, 1, 1 ] u; [ 1, 1, 1, 0, 0, 0, 0, 0, 0 ] Add(faces,u); faces; [ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ], [ 1, 1, 1, 0, 0, 0, 0, 0, 0 ] ] c2:=ChainComplex(2,c1,faces); dim 0:[ 1 .. 6 ] dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [ 0, 0, -1, 0, 0, 1 ] ] dim 2:[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ], [ 1, 1, 1, 0, 0, 0, 0, 0, 0 ] ] Basis of 3-cells: [ ] SingularFaces(c2); [ [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ] ] NullspaceIntMat(last); [ [ 1, 1, 1 ] ] # only one border component HomologyGroups(c2); [ [ 0 ], [ ], [ ] ] # contractible # Now we fill up the other end: u:=[1..9]*0; [ 0, 0, 0, 0, 0, 0, 0, 0, 0 ] u{[4,5,6]}:=[a,b,c]; [ a, b, c ] u*M; [ 0, 0, 0, a-c, -a+b, -b+c ] u{[4,5,6]}:=[1,1,1]; [ 1, 1, 1 ] u; [ 0, 0, 0, 1, 1, 1, 0, 0, 0 ] Add(faces,u); faces; [ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ], [ 1, 1, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 1, 1, 0, 0, 0 ] ] c2:=ChainComplex(2,c1,faces); dim 0:[ 1 .. 6 ] dim 1:[ [ 1, -1, 0, 0, 0, 0 ], [ 0, 1, -1, 0, 0, 0 ], [ -1, 0, 1, 0, 0, 0 ], [ 0, 0, 0, 1, -1, 0 ], [ 0, 0, 0, 0, 1, -1 ], [ 0, 0, 0, -1, 0, 1 ], [ -1, 0, 0, 1, 0, 0 ], [ 0, -1, 0, 0, 1, 0 ], [ 0, 0, -1, 0, 0, 1 ] ] dim 2:[ [ 1, 0, 0, -1, 0, 0, 1, -1, 0 ], [ 0, 1, 0, 0, -1, 0, 0, 1, -1 ], [ 0, 0, 1, 0, 0, -1, -1, 0, 1 ], [ 1, 1, 1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 1, 1, 1, 0, 0, 0 ] ] Basis of 3-cells: [ [ 1, 1, 1, -1, 1 ] ] # Mark that the 2-cells now form a 2-cycle. HomologyGroups(c2); [ [ 0 ], [ ], [ 0 ] ] # homotopytype of the 2-sphere confirmed SingularFaces(c2); [ ] # no borders From marc.bogaerts at cyclone.be Mon Jun 21 18:18:32 2010 From: marc.bogaerts at cyclone.be (Marc Bogaerts) Date: Mon, 21 Jun 2010 19:18:32 +0200 Subject: [GAP Forum] Chain Complexes: The Moebius Strip Message-ID: <4C1F9EE8.7090609@cyclone.be> # The Moebius strip is obtained by gluing together a straight strip and and a twisted strip # that has been rotated 180?. See figure in attachment where the former strip is colored in blue # and the latter in red. # The labeling of the vertices and the edges is as in following scheme: # # *1---1---*2 # | \ /| # | \ / | # 4 \ / 2 # | \ / | # | / \ | # | / \ | # | 5 6 | # | / \ | # *4---3--*3 # # (vertex labels are preceded by an asterix, edge labels are written upon the edge) # First we construct the 0-skeleton: c0:=ChainComplex(0,[1..4]); dim 0:[ 1 .. 4 ] # Then we construct the 1-skeleton upon c0: c1:=ChainComplex(1,c0,[[1,2],[2,3],[3,4],[4,1],[1,3],[2,4]]); dim 0:[ 1 .. 4 ] dim 1:[ [ 1, -1, 0, 0 ], [ 0, 1, -1, 0 ], [ 0, 0, 1, -1 ], [ -1, 0, 0, 1 ], [ 1, 0, -1, 0 ], [ 0, 1, 0, -1 ] ] Basis of 2-cells: [ [ 1, 0, 0, 1, 0, 1 ], [ 0, 1, 0, -1, -1, -1 ], [ 0, 0, 1, 1, 1, 0 ] ] faces:=[]; [ ] # let's first obtain the set of edges: M:=GeneratorsOfBoundaries(0,c1); [ [ 1, -1, 0, 0 ], [ 0, 1, -1, 0 ], [ 0, 0, 1, -1 ], [ -1, 0, 0, 1 ], [ 1, 0, -1, 0 ], [ 0, 1, 0, -1 ] ] # we look for a a combination u of the edges 1,2,3 and 4 that form a cycle, the border of the straight strip: u:=[1..6]*0; [ 0, 0, 0, 0, 0, 0 ] u{[1,2,3,4]}:=[a,b,c,d]; #a,b,c and d were predefined as indeterminates [ a, b, c, d ] u*M; [ a-d, -a+b, -b+c, -c+d ] u{[1,2,3,4]}:=[1,1,1,1]; [ 1, 1, 1, 1 ] u*M; [ 0, 0, 0, 0 ] Add(faces,u); #same for the edges 1,5,3 and 6 to form the border of "twisted" strip: u:=[1..6]*0; [ 0, 0, 0, 0, 0, 0 ] u{[1,5,3,6]}:=[a,b,c,d]; [ a, b, c, d ] u*M; [ a+b, -a+d, -b+c, -c-d ] u{[1,5,3,6]}:=[1,-1,-1,1]; [ 1, -1, -1, 1 ] u*M; [ 0, 0, 0, 0 ] Add(faces,u); "faces" now contains two combination of edges each forming a cycle each, c2:=ChainComplex(2,c1,faces); dim 0:[ 1 .. 4 ] dim 1:[ [ 1, -1, 0, 0 ], [ 0, 1, -1, 0 ], [ 0, 0, 1, -1 ], [ -1, 0, 0, 1 ], [ 1, 0, -1, 0 ], [ 0, 1, 0, -1 ] ] dim 2:[ [ 1, 1, 1, 1, 0, 0 ], [ 1, 0, -1, 0, -1, 1 ] ] Basis of 3-cells: [ ] HomologyGroups(c2); [ [ 0 ], [ 0 ], [ ] ] # The Moebius strip has the same homotopy type as a circle. SingularFaces(c2); [ [ 0, 1, -1, 0 ], [ -1, 0, 0, 1 ], [ 1, 0, -1, 0 ], [ 0, 1, 0, -1 ] ] # And it has a border consisting of the edges 2, 4, 5 and 6. Marc Bogaerts. From marc.bogaerts at cyclone.be Mon Jun 21 18:18:58 2010 From: marc.bogaerts at cyclone.be (Marc Bogaerts) Date: Mon, 21 Jun 2010 19:18:58 +0200 Subject: [GAP Forum] Chain Complexes: The Projective plane Message-ID: <4C1F9F02.6000904@cyclone.be> # In the posting about the Moebius strip we saw that it had a unique # border and that it was a 1-cycle: border:=SingularFaces(c2); [ [ 0, 1, -1, 0 ], [ -1, 0, 0, 1 ], [ 1, 0, -1, 0 ], [ 0, 1, 0, -1 ] ] # this corresponds top the cycle 2,4,5,6 # we get the set of faces already defined: faces:=GeneratorsOfBoundaries(1,c2); [ [ 1, 1, 1, 1, 0, 0 ], [ 1, 0, -1, 0, -1, 1 ] ] # Let's find the coefficients of boundary in the basis defined by the edges M: M:=GeneratorsOfBoundaries(0,c1); [ [ 1, -1, 0, 0 ], [ 0, 1, -1, 0 ], [ 0, 0, 1, -1 ], [ -1, 0, 0, 1 ], [ 1, 0, -1, 0 ], [ 0, 1, 0, -1 ] ] u:=[1..6]*0; [ 0, 0, 0, 0, 0, 0 ] u{[2,4,5,6]}:=[1,-1,-1,-1]; [ 1, -1, -1, -1 ] u{[2,4,5,6]}:=[1,b,c,d]; [ 1, b, c, d ] u*M; [ -b+c, d+1, -c-1, b-d ] u{[2,4,5,6]}:=[1,-1,-1,-1]; [ 1, -1, -1, -1 ] # control if it is the right combination u*M; [ 0, 0, 0, 0 ] Now we glue a 2-disk to the 2-skeleton of the Moebius strip: Add(faces,u); # and construct the projective space: c2:=ChainComplex(2,c1,faces); dim 0:[ 1 .. 4 ] dim 1:[ [ 1, -1, 0, 0 ], [ 0, 1, -1, 0 ], [ 0, 0, 1, -1 ], [ -1, 0, 0, 1 ], [ 1, 0, -1, 0 ], [ 0, 1, 0, -1 ] ] dim 2:[ [ 1, 1, 1, 1, 0, 0 ], [ 1, 0, -1, 0, -1, 1 ], [ 0, 1, 0, -1, -1, -1 ] ] Basis of 3-cells: [ ] Remark that there are no 2-cycles, the projective plane is non orientable. HomologyGroups(c2); [ [ 0 ], [ 2 ], [ ] ] The first homology group is Z/2Z as expected SingularFaces(c2); [ ] # The projective space has no border. Marc Bogaerts. From aker at gursey.gov.tr Tue Jun 22 18:37:32 2010 From: aker at gursey.gov.tr (Kursat Aker) Date: Tue, 22 Jun 2010 20:37:32 +0300 Subject: [GAP Forum] AdjointBasis() and IndicesOfAdjointBasis() Message-ID: <4C20F4DC.7020402@gursey.gov.tr> Dear GAP Forum, I would like to ask a question about AdjointBasis(). I have the following code, which I essentially took from GAP Manual. gap> A:= QuaternionAlgebra( Rationals );; gap> B := Basis( A ); Basis( , ... ) gap> Elements( B ); [ k, j, i, e ] gap> adjB := AdjointBasis( B ); Basis( , [ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], [ [ 0, -1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, -1 ], [ 0, 0, 1, 0 ] ], [ [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ], [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ] ], [ [ 0, 0, 0, -1 ], [ 0, 0, -1, 0 ], [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ] ] ] ) gap> IndicesOfAdjointBasis( adjB ); [ 1, 2, 3, 4 ] My question is this: Is the matrix adjB[i] supposed to the left action of the element B[i] for i=1,2,3,4? Thanks, Kursat From kursataker at gmail.com Tue Jun 22 19:17:41 2010 From: kursataker at gmail.com (Kursat Aker) Date: Tue, 22 Jun 2010 21:17:41 +0300 Subject: [GAP Forum] AdjointBasis() and IndicesOfAdjointBasis() In-Reply-To: <4C20F4DC.7020402@gursey.gov.tr> References: <4C20F4DC.7020402@gursey.gov.tr> Message-ID: <4C20FE45.3020109@gmail.com> Dear GAP Forum, I now understood that the answer to my question is yes. My confusion was a result of me looking at gap> Elements(B); [k, j, i, e] I should have look at gap> BasisVectors(B); [e,i,j,k] Sorry for bothering the Forum. Best wishes, Kursat On 6/22/10 8:37 PM, Kursat Aker wrote: > Dear GAP Forum, > > I would like to ask a question about AdjointBasis(). > > I have the following code, which I essentially took from GAP Manual. > > gap> A:= QuaternionAlgebra( Rationals );; > gap> B := Basis( A ); > Basis( , ... ) > gap> Elements( B ); > [ k, j, i, e ] > gap> adjB := AdjointBasis( B ); > Basis( , > [ [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], > [ [ 0, -1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, -1 ], [ 0, 0, 1, 0 ] ], > [ [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ], [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ] ], > [ [ 0, 0, 0, -1 ], [ 0, 0, -1, 0 ], [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ] ] > ] ) > gap> IndicesOfAdjointBasis( adjB ); > [ 1, 2, 3, 4 ] > > My question is this: > > Is the matrix adjB[i] supposed to the left action of the element B[i] > for i=1,2,3,4? > > Thanks, > > Kursat > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From afdouglas at gmail.com Fri Jun 25 03:04:24 2010 From: afdouglas at gmail.com (Andrew Douglas) Date: Thu, 24 Jun 2010 22:04:24 -0400 Subject: [GAP Forum] Basis for irreducible representations Message-ID: Hello, I would like to know what basis GAP uses for irreducible representations of simple Lie algebras. Thank you! From degraaf at science.unitn.it Fri Jun 25 14:29:08 2010 From: degraaf at science.unitn.it (degraaf at science.unitn.it) Date: Fri, 25 Jun 2010 15:29:08 +0200 Subject: [GAP Forum] Basis for irreducible representations Message-ID: <20100625152908.bwitr4m5ogw8kk4g@www3.unitn.it> Dear Andrew, The irreducible modules are constructed as quotients U(N)/I, where U(N) is a universal enveloping algebra, and I a left ideal. The algorithm is a kind of Groebner basis method, and the basis that comes out consists of the "normal" monomials modulo I. So it is not a particular type of basis. (The only thing that one can say is that it consists of weight vectors.) The package SLA (http://science.unitn.it/~degraaf/sla.html) contains a function for computing a basis of an irreducible module that is also a basis of an admissible lattice. Best wishes, Willem de Graaf > Hello, > > I would like to know what basis GAP uses for irreducible representations of > simple Lie algebras. > > Thank you! From primoz.moravec at fmf.uni-lj.si Sun Jun 27 17:39:28 2010 From: primoz.moravec at fmf.uni-lj.si (Primoz Moravec) Date: Sun, 27 Jun 2010 18:39:28 +0200 Subject: [GAP Forum] LieExteriorSquare -- HAP 1.9 Message-ID: <1277656768.1728.17.camel@primoz-laptop> Dear Forum, I've been trying to use HAP 1.9 to work with the (non-abelian) Lie exterior square of a Lie algebra. I define an algebra as follows: T:=EmptySCTable(4,0,"antisymmetric");; SetEntrySCTable(T,1,2,[1,3]);; SetEntrySCTable(T,1,3,[1,4]);; L:=LieAlgebraByStructureConstants(Rationals,T);; Then I compute the exterior square of L. It is a record containing the commutator map kappa : L\wedge L\to L, and the pairing p: L\times L\to L \wedge L sending (x,y) to x\wedge y: ext:=LieExteriorSquare(L);; kappa:=ext.homomorphism;; p:=ext.pairing;; Now, I take two elements x and y of a basis of L, find the image p(x,y)=x\wedge y in L\wedge L, and check whether this element belongs to the source of kappa: b:=Elements(Basis(L));; p(b[3],b[4]) in Source(kappa); false I would appreciate if somebody told me what I've been doing wrong. Primoz. From sandeepr.murthy at gmail.com Thu Jul 1 17:32:46 2010 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Thu, 1 Jul 2010 17:32:46 +0100 Subject: [GAP Forum] Counting all elements in a group of a given order Message-ID: <04B2CFAD-D7AC-4B8F-85EA-E211A0018C9D@gmail.com> Hello. Is there a direct function in GAP for counting all elements in a group of a given order? Sandeep. From bsambale at gmx.de Thu Jul 1 19:11:42 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Thu, 01 Jul 2010 20:11:42 +0200 Subject: [GAP Forum] Counting all elements in a group of a given order In-Reply-To: <04B2CFAD-D7AC-4B8F-85EA-E211A0018C9D@gmail.com> References: <04B2CFAD-D7AC-4B8F-85EA-E211A0018C9D@gmail.com> Message-ID: <4C2CDA5E.8000101@gmx.de> Size(Filtered(G,x->Order(x)=n)); counts the elements of order n in the group G. Sandeep Murthy schrieb: > Hello. > > Is there a direct function in GAP for counting all elements > in a group of a given order? > > Sandeep. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From sal at mcs.st-andrews.ac.uk Thu Jul 1 20:10:04 2010 From: sal at mcs.st-andrews.ac.uk (Stephen Linton) Date: Thu, 1 Jul 2010 20:10:04 +0100 Subject: [GAP Forum] Counting all elements in a group of a given order In-Reply-To: <4C2CDA5E.8000101@gmx.de> References: <04B2CFAD-D7AC-4B8F-85EA-E211A0018C9D@gmail.com> <4C2CDA5E.8000101@gmx.de> Message-ID: Dear GAP Forum, On 1 Jul 2010, at 19:11, Benjamin Sambale wrote: > Size(Filtered(G,x->Order(x)=n)); counts the elements of order n in the group G. > You can simplify this a little to Number(G, x-> Order(x) = n) and this will work quite efficiently for smaller groups. For larger (and nonabelian) groups it would be more sensible to use the conjugacy structure of the group. Something like: Sum(Filtered(ConjugacyClasses(G), c-> Order(Representative(c)) = n), Size) works well. For example for G = M_22 and n =4 this is some 50 times faster than the direct approach. Finally, for the largest examples it might be best to factorise n into prime powers and use the Sylow subgroups to find representatives of all the conjugacy classes of elements of the appropriate prime power orders. Then, aving enumerated these elements, the number of elements of order n is simply the product. Steve > Sandeep Murthy schrieb: >> Hello. >> >> Is there a direct function in GAP for counting all elements >> in a group of a given order? >> >> Sandeep. >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sal at mcs.st-andrews.ac.uk Thu Jul 1 21:40:55 2010 From: sal at mcs.st-andrews.ac.uk (Stephen Linton) Date: Thu, 1 Jul 2010 21:40:55 +0100 Subject: [GAP Forum] Counting all elements in a group of a given order In-Reply-To: References: <04B2CFAD-D7AC-4B8F-85EA-E211A0018C9D@gmail.com> <4C2CDA5E.8000101@gmx.de> Message-ID: Dear GAP Forum. As has just been pointed out to me, I typed too hastily: > > > > Finally, for the largest examples it might be best to factorise n into prime powers and use the Sylow subgroups to find representatives of all the conjugacy classes of elements of the appropriate prime power orders. Then, aving enumerated these elements, the number of elements of order n is simply the product. > This is entirely incorrect, since only commuting elements of prime power orders give rise to elements of the product order. It might still be possible to do something along these lines (for instance to find elements of order 12, one might explore the centralisers of elements of order 4), but it is much less simple than I implied. Steve From sandeepr.murthy at gmail.com Thu Jul 1 21:42:47 2010 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Thu, 1 Jul 2010 21:42:47 +0100 Subject: [GAP Forum] Counting all elements in a group of a given order In-Reply-To: References: <04B2CFAD-D7AC-4B8F-85EA-E211A0018C9D@gmail.com> <4C2CDA5E.8000101@gmx.de> Message-ID: <256F05E3-11A9-493A-8DD1-A491A00203B5@gmail.com> Dear GAP Forum, members thanks for the information. Sincerely, Sandeep Murthy. On 1 Jul 2010, at 21:40, Stephen Linton wrote: > Dear GAP Forum. > > As has just been pointed out to me, I typed too hastily: > > >> >> >> >> Finally, for the largest examples it might be best to factorise n into prime powers and use the Sylow subgroups to find representatives of all the conjugacy classes of elements of the appropriate prime power orders. Then, aving enumerated these elements, the number of elements of order n is simply the product. >> > > This is entirely incorrect, since only commuting elements of prime power orders give rise to elements of the product order. It might still be possible to do something along these lines (for instance to find elements of order 12, one might explore the centralisers of elements of order 4), but it is much less simple than I implied. > > Steve > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From vipul at math.uchicago.edu Fri Jul 9 03:24:49 2010 From: vipul at math.uchicago.edu (Vipul Naik) Date: Thu, 8 Jul 2010 21:24:49 -0500 Subject: [GAP Forum] Libraries and tools for Lie rings Message-ID: <20100709022449.GA20665@math.uchicago.edu> Dear GAP forum, Does anybody know of GAP packages that deal with finite Lie rings (particularly, the nilpotent p-Lie rings)? Specifically, I'm looking for some analogue to the SmallGroups library for nilpotent Lie rings of order p^n for small values of p and n. I would also greatly appreciate any advice or references on how to list or manipulate all nilpotent Lie rings of a given order. Thank you, Vipul From alexk at mcs.st-andrews.ac.uk Fri Jul 9 17:41:20 2010 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 9 Jul 2010 17:41:20 +0100 Subject: [GAP Forum] Libraries and tools for Lie rings In-Reply-To: <20100709022449.GA20665@math.uchicago.edu> References: <20100709022449.GA20665@math.uchicago.edu> Message-ID: Dear Vipul, You may be interested to look at the LieAlgDB package: http://www.sztaki.hu/~schneider/Research/LieAlgDB/ and in particular on its functions "NilpotentLieAlgebra" and "AllNilpotentLieAlgebras( F, dim )" Hope this helps, Alexander On 9 Jul 2010, at 03:24, Vipul Naik wrote: > Dear GAP forum, > > Does anybody know of GAP packages that deal with finite Lie rings > (particularly, the nilpotent p-Lie rings)? > > Specifically, I'm looking for some analogue to the SmallGroups library > for nilpotent Lie rings of order p^n for small values of p and n. > > I would also greatly appreciate any advice or references on how to > list or manipulate all nilpotent Lie rings of a given order. > > Thank you, > > Vipul > > _______________________________________________ > Forum mailing list > Forum at 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 From vipul at math.uchicago.edu Fri Jul 9 19:31:23 2010 From: vipul at math.uchicago.edu (Vipul Naik) Date: Fri, 9 Jul 2010 13:31:23 -0500 Subject: [GAP Forum] Libraries and tools for Lie rings In-Reply-To: References: <20100709022449.GA20665@math.uchicago.edu> Message-ID: <20100709183123.GA18815@math.uchicago.edu> Dear Mr. Konovalov, > http://www.sztaki.hu/~schneider/Research/LieAlgDB/ > > and in particular on its functions "NilpotentLieAlgebra" > and "AllNilpotentLieAlgebras( F, dim )" Thank you very much. This package seems useful. However, it does not seem to have any capabilities for Lie rings that are not algebras over fields, i.e., the ones that don't have prime characteristic. Is there any existing package which also deals with such Lie rings? Yours truly, Vipul From lisette.brillemans at mensa.nl Tue Jul 13 12:28:43 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Tue, 13 Jul 2010 13:28:43 +0200 Subject: [GAP Forum] I think I found a bug. Message-ID: <1279020523.2564.6.camel@agnieszka-desktop> LS I'm using the latest version of GAP on linux and have read all the bugfixes but didn't find this one: If you type this: S:=SymmetricGroup(9); for a in [1..9] do Print(Orbit(S,a),"\n"); od; The output is as follows: [1,2,3,4,5,6,7,8,9] [2,3,1,4,5,6,7,8,9] [3,4,5,6,7,8,9,1,2] [4,5,6,7,8,9,1,2,3] [5,6,7,8,9,1,2,3,4] [6,7,8,9,1,2,3,4,5] [7,8,9,1,2,3,4,5,6] [8,9,1,2,3,4,5,6,7] [9,1,2,3,4,5,6,7,8] The problem is the second line: [2,3,1,4,5,6,7,8,9] Which, according to me, is incorrect. But apart from that GAP is a splendid program which possibilities still surprise me everyday. With regards. Lisette Brillemans Rotterdam, Holland From neunhoef at mcs.st-and.ac.uk Tue Jul 13 13:36:02 2010 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Tue, 13 Jul 2010 13:36:02 +0100 Subject: [GAP Forum] [GAP Support] I think I found a bug. In-Reply-To: <1279020523.2564.6.camel@agnieszka-desktop> References: <1279020523.2564.6.camel@agnieszka-desktop> Message-ID: <20100713123602.GA21622@mcs.st-and.ac.uk> Dear Lisette, as far as I see there is nothing incorrect. The documentation of "Orbit" says that the result is the *list of all images* and not the *set of all images*. Therefore it is OK that the list is not sorted. The order of the elements you see depends on the starting point and the generators of your group in general. Also, it is not guaranteed by the documentation. If you need the orbit as a set just use Set(Orbit(S,a)) instead. I hope this is useful, if there are any other questions please do not hesitate to ask again. Best regards, Max Neunhoeffer On Tue, Jul 13, 2010 at 01:28:43PM +0200, Lisette Brillemans wrote: > LS > > > I'm using the latest version of GAP on linux and have read all the > bugfixes but didn't find this one: > > If you type this: > > > S:=SymmetricGroup(9); > for a in [1..9] do > Print(Orbit(S,a),"\n"); > od; > > The output is as follows: > > [1,2,3,4,5,6,7,8,9] > [2,3,1,4,5,6,7,8,9] > [3,4,5,6,7,8,9,1,2] > [4,5,6,7,8,9,1,2,3] > [5,6,7,8,9,1,2,3,4] > [6,7,8,9,1,2,3,4,5] > [7,8,9,1,2,3,4,5,6] > [8,9,1,2,3,4,5,6,7] > [9,1,2,3,4,5,6,7,8] > > The problem is the second line: > > [2,3,1,4,5,6,7,8,9] > > Which, according to me, is incorrect. > > But apart from that GAP is a splendid program which possibilities still > surprise me everyday. > > With regards. > > Lisette Brillemans > Rotterdam, Holland > > > _______________________________________________ > Support mailing list > Support at gap-system.org > http://mail.gap-system.org/mailman/listinfo/support -- 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 lisette.brillemans at mensa.nl Tue Jul 13 14:54:46 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Tue, 13 Jul 2010 15:54:46 +0200 Subject: [GAP Forum] [GAP Support] I think I found a bug. In-Reply-To: <20100713123602.GA21622@mcs.st-and.ac.uk> References: <1279020523.2564.6.camel@agnieszka-desktop> <20100713123602.GA21622@mcs.st-and.ac.uk> Message-ID: <1279029286.2423.0.camel@agnieszka-desktop> Dear Max, You're right. If you look at it this way you can say the answer given is of course entirely correct. However I am still wondering why the ordering of the second line in my example is somehow "unlogical" compared to the other lines. Is there some inconsistency in the algorithm? (I mean, why only when a = 2?) But if that's not the case then I apologize. Best regards, Lisette > Dear Lisette, > > as far as I see there is nothing incorrect. The documentation of > "Orbit" says that the result is the *list of all images* and not the > *set of all images*. Therefore it is OK that the list is not sorted. > The order of the elements you see depends on the starting point and > the generators of your group in general. Also, it is not guaranteed by > the documentation. > > If you need the orbit as a set just use > Set(Orbit(S,a)) > instead. > > I hope this is useful, if there are any other questions please do not > hesitate to ask again. > > Best regards, > Max Neunhoeffer > > On Tue, Jul 13, 2010 at 01:28:43PM +0200, Lisette Brillemans wrote: > > LS > > > > > > I'm using the latest version of GAP on linux and have read all the > > bugfixes but didn't find this one: > > > > If you type this: > > > > > > S:=SymmetricGroup(9); > > for a in [1..9] do > > Print(Orbit(S,a),"\n"); > > od; > > > > The output is as follows: > > > > [1,2,3,4,5,6,7,8,9] > > [2,3,1,4,5,6,7,8,9] > > [3,4,5,6,7,8,9,1,2] > > [4,5,6,7,8,9,1,2,3] > > [5,6,7,8,9,1,2,3,4] > > [6,7,8,9,1,2,3,4,5] > > [7,8,9,1,2,3,4,5,6] > > [8,9,1,2,3,4,5,6,7] > > [9,1,2,3,4,5,6,7,8] > > > > The problem is the second line: > > > > [2,3,1,4,5,6,7,8,9] > > > > Which, according to me, is incorrect. > > > > But apart from that GAP is a splendid program which possibilities still > > surprise me everyday. > > > > With regards. > > > > Lisette Brillemans > > Rotterdam, Holland > > > > > > _______________________________________________ > > Support mailing list > > Support at gap-system.org > > http://mail.gap-system.org/mailman/listinfo/support > From neunhoef at mcs.st-and.ac.uk Tue Jul 13 16:01:21 2010 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Tue, 13 Jul 2010 16:01:21 +0100 Subject: [GAP Forum] [GAP Support] I think I found a bug. In-Reply-To: <1279027302.1785.5.camel@agnieszka-desktop> References: <1279020523.2564.6.camel@agnieszka-desktop> <20100713123602.GA21622@mcs.st-and.ac.uk> <1279027302.1785.5.camel@agnieszka-desktop> Message-ID: <20100713150121.GA21917@mcs.st-and.ac.uk> Dear Lisette, I think the "logic" comes from the orbit algorithm. It works about as follows: l := [a]; i := 1; while i <= Length(l) do for g in gens do if not(l[i]^g in l) then Add(l,l[i]^g); fi; od; i := i + 1; od; Of course the GAP library has an optimised version of this, but this basically should explain the order of the things in the list you see. I think SymmetricGroup(9) will have (1,2,3,4,5,6,7,8,9) and (1,2) as generators, so the output you sent is exactly what I would expect from the above algorithm. Cheers, Max. On Tue, Jul 13, 2010 at 03:21:42PM +0200, Lisette Brillemans wrote: > Dear Max, > > You're right. If you look at it this way you can say the answer given is > of course entirely correct. However I am still wondering why the > ordering of the second line in my example is somehow "unlogical" > compared to the other lines. Is there some inconsistency in the > algorithm? (I mean, why only when a = 2?) > But if that's not the case then I apologize. > > Best regards, > > Lisette > > > > Dear Lisette, > > > > as far as I see there is nothing incorrect. The documentation of > > "Orbit" says that the result is the *list of all images* and not the > > *set of all images*. Therefore it is OK that the list is not sorted. > > The order of the elements you see depends on the starting point and > > the generators of your group in general. Also, it is not guaranteed by > > the documentation. > > > > If you need the orbit as a set just use > > Set(Orbit(S,a)) > > instead. > > > > I hope this is useful, if there are any other questions please do not > > hesitate to ask again. > > > > Best regards, > > Max Neunhoeffer > > > > On Tue, Jul 13, 2010 at 01:28:43PM +0200, Lisette Brillemans wrote: > > > LS > > > > > > > > > I'm using the latest version of GAP on linux and have read all the > > > bugfixes but didn't find this one: > > > > > > If you type this: > > > > > > > > > S:=SymmetricGroup(9); > > > for a in [1..9] do > > > Print(Orbit(S,a),"\n"); > > > od; > > > > > > The output is as follows: > > > > > > [1,2,3,4,5,6,7,8,9] > > > [2,3,1,4,5,6,7,8,9] > > > [3,4,5,6,7,8,9,1,2] > > > [4,5,6,7,8,9,1,2,3] > > > [5,6,7,8,9,1,2,3,4] > > > [6,7,8,9,1,2,3,4,5] > > > [7,8,9,1,2,3,4,5,6] > > > [8,9,1,2,3,4,5,6,7] > > > [9,1,2,3,4,5,6,7,8] > > > > > > The problem is the second line: > > > > > > [2,3,1,4,5,6,7,8,9] > > > > > > Which, according to me, is incorrect. > > > > > > But apart from that GAP is a splendid program which possibilities still > > > surprise me everyday. > > > > > > With regards. > > > > > > Lisette Brillemans > > > Rotterdam, Holland > > > > > > > > > _______________________________________________ > > > Support mailing list > > > Support at gap-system.org > > > http://mail.gap-system.org/mailman/listinfo/support > > > > -- 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 lisette.brillemans at mensa.nl Tue Jul 13 16:51:10 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Tue, 13 Jul 2010 17:51:10 +0200 Subject: [GAP Forum] [GAP Support] I think I found a bug. In-Reply-To: <20100713150121.GA21917@mcs.st-and.ac.uk> References: <1279020523.2564.6.camel@agnieszka-desktop> <20100713123602.GA21622@mcs.st-and.ac.uk> <1279027302.1785.5.camel@agnieszka-desktop> <20100713150121.GA21917@mcs.st-and.ac.uk> Message-ID: <1279036270.1487.2.camel@agnieszka-desktop> Dear Max, Yes! Thank you very much! Now I see why the output is correct. Super. Greetings, Lisette > Dear Lisette, > > I think the "logic" comes from the orbit algorithm. It works about as > follows: > > l := [a]; > i := 1; > while i <= Length(l) do > for g in gens do > if not(l[i]^g in l) then > Add(l,l[i]^g); > fi; > od; > i := i + 1; > od; > > Of course the GAP library has an optimised version of this, but this > basically should explain the order of the things in the list you see. > > I think SymmetricGroup(9) will have > (1,2,3,4,5,6,7,8,9) and (1,2) > as generators, so the output you sent is exactly what I would expect > from the above algorithm. > > Cheers, > Max. > > On Tue, Jul 13, 2010 at 03:21:42PM +0200, Lisette Brillemans wrote: > > Dear Max, > > > > You're right. If you look at it this way you can say the answer given is > > of course entirely correct. However I am still wondering why the > > ordering of the second line in my example is somehow "unlogical" > > compared to the other lines. Is there some inconsistency in the > > algorithm? (I mean, why only when a = 2?) > > But if that's not the case then I apologize. > > > > Best regards, > > > > Lisette > > > > > > > Dear Lisette, > > > > > > as far as I see there is nothing incorrect. The documentation of > > > "Orbit" says that the result is the *list of all images* and not the > > > *set of all images*. Therefore it is OK that the list is not sorted. > > > The order of the elements you see depends on the starting point and > > > the generators of your group in general. Also, it is not guaranteed by > > > the documentation. > > > > > > If you need the orbit as a set just use > > > Set(Orbit(S,a)) > > > instead. > > > > > > I hope this is useful, if there are any other questions please do not > > > hesitate to ask again. > > > > > > Best regards, > > > Max Neunhoeffer > > > > > > On Tue, Jul 13, 2010 at 01:28:43PM +0200, Lisette Brillemans wrote: > > > > LS > > > > > > > > > > > > I'm using the latest version of GAP on linux and have read all the > > > > bugfixes but didn't find this one: > > > > > > > > If you type this: > > > > > > > > > > > > S:=SymmetricGroup(9); > > > > for a in [1..9] do > > > > Print(Orbit(S,a),"\n"); > > > > od; > > > > > > > > The output is as follows: > > > > > > > > [1,2,3,4,5,6,7,8,9] > > > > [2,3,1,4,5,6,7,8,9] > > > > [3,4,5,6,7,8,9,1,2] > > > > [4,5,6,7,8,9,1,2,3] > > > > [5,6,7,8,9,1,2,3,4] > > > > [6,7,8,9,1,2,3,4,5] > > > > [7,8,9,1,2,3,4,5,6] > > > > [8,9,1,2,3,4,5,6,7] > > > > [9,1,2,3,4,5,6,7,8] > > > > > > > > The problem is the second line: > > > > > > > > [2,3,1,4,5,6,7,8,9] > > > > > > > > Which, according to me, is incorrect. > > > > > > > > But apart from that GAP is a splendid program which possibilities still > > > > surprise me everyday. > > > > > > > > With regards. > > > > > > > > Lisette Brillemans > > > > Rotterdam, Holland > > > > > > > > > > > > _______________________________________________ > > > > Support mailing list > > > > Support at gap-system.org > > > > http://mail.gap-system.org/mailman/listinfo/support > > > > > > > > From vipul at math.uchicago.edu Wed Jul 14 03:14:22 2010 From: vipul at math.uchicago.edu (Vipul Naik) Date: Tue, 13 Jul 2010 21:14:22 -0500 Subject: [GAP Forum] 2-cocycles for trivial actions Message-ID: <20100714021422.GB16411@math.uchicago.edu> Dear GAP forum, This is probably something short and simple but I am having difficulty figuring it out. How do I calculate the group of 2-cocycles for the trivial group action? Specifically, given finite groups G and A, with A abelian, what's a short command or snippet of code that will output the group of 2-cocycles for the trivial action of G on A? I see that GAP has a TwoCocycles function, but I couldn't figure out how to specify the trivial action if G and A are pre-specified. Also, I am interested in actual 2-cocycles that can be treated as functions, and not just in the second cohomology group. Thank you, Vipul Naik From qureshi at maths.ox.ac.uk Fri Jul 16 13:05:45 2010 From: qureshi at maths.ox.ac.uk (Imran Qureshi) Date: Fri, 16 Jul 2010 05:05:45 -0700 (PDT) Subject: [GAP Forum] Storing everything in file Message-ID: <864782.80222.qm@web29007.mail.ird.yahoo.com> Dear Forum Is it possible to save all the entries of the GAP session and output in some file by setting up some file a priory? Muhammad Imran Qureshi (D.Phil Student) Mathematical Institute University of Oxford,UK OX1 3LB PS: If some body have used Magma then what I want is the "log file", which we set in Magma to save everything. From lukas.maas at iem.uni-due.de Fri Jul 16 15:46:15 2010 From: lukas.maas at iem.uni-due.de (Lukas Maas) Date: Fri, 16 Jul 2010 16:46:15 +0200 Subject: [GAP Forum] Storing everything in file In-Reply-To: <864782.80222.qm@web29007.mail.ird.yahoo.com> References: <864782.80222.qm@web29007.mail.ird.yahoo.com> Message-ID: Dear Muhammad, you can use LogTo( "name_of_the_logfile" ); to start logging the output, and LogTo(); to close the logfile. See Chapter 9 of the reference manual for some other options. Cheers, Lukas On Jul 16, 2010, at 2:05 PM, Imran Qureshi wrote: > Dear Forum > > Is it possible to save all the entries of the GAP session and output in some > file by setting up some file a priory? > > > > Muhammad Imran Qureshi (D.Phil Student) > Mathematical Institute > University of Oxford,UK > OX1 3LB > PS: If some body have used Magma then what I want is the "log file", which we > set in Magma to save everything. > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dima at ntu.edu.sg Fri Jul 16 16:11:11 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Fri, 16 Jul 2010 16:11:11 +0100 Subject: [GAP Forum] Storing everything in file In-Reply-To: <864782.80222.qm@web29007.mail.ird.yahoo.com> References: <864782.80222.qm@web29007.mail.ird.yahoo.com> Message-ID: Dear Imran, LogTo is the GAP function to use here. Hope this helps, Dmitrii On 16 July 2010 13:05, Imran Qureshi wrote: > Dear Forum > > Is it possible to save all the entries of the GAP session and output in some > file by setting up some file a priory? > > > > Muhammad Imran Qureshi (D.Phil Student) > Mathematical Institute > University of Oxford,UK > OX1 3LB > PS: If some body have used Magma then what I want is the "log file", which we > set in Magma to save everything. > > CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From hulpke at math.colostate.edu Fri Jul 16 16:36:14 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 16 Jul 2010 09:36:14 -0600 Subject: [GAP Forum] Storing everything in file In-Reply-To: <864782.80222.qm@web29007.mail.ird.yahoo.com> References: <864782.80222.qm@web29007.mail.ird.yahoo.com> Message-ID: <2C973989-3C30-4D18-A6AC-F1FF6BA97D23@math.colostate.edu> Dear Forum, Imran Qureshi asked: > Is it possible to save all the entries of the GAP session and output in some > file by setting up some file a priory? Since you mentioned a ``log file'' feature for aome other system, the command LogTo(filename) will create a text file with a transcript of your GAP session. If instead you want to save the state of the system to stop a calculation and continue later, you can use SaveWorkspace(filename) and later start GAP with the -L command line option to load the saved workspace -- see the manual section 3.11 Saving and Loading a Workspace for more details. The use of a command line option makes this feature complicated for Windows users. Users of the ggap shell provided with the installer from http://www.math.colostate.edu/~hulpke/CGT/education.html can use the menu option for saving a workspace. 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 at math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From trebauchet1986 at yahoo.co.in Sat Jul 17 07:50:52 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Sat, 17 Jul 2010 12:20:52 +0530 (IST) Subject: [GAP Forum] Forming only groups smaller than a certain size Message-ID: <476004.29384.qm@web94613.mail.in2.yahoo.com> Hi... Currently I am running a code which generates groups from a set of generators, which in turn depends on an integer n running in the loop. Now the problem is that some groups that are generated have very large sizes (of the order of thousands). But I am only interested in groups that have a size less than, say, thousand. I am using the command GroupWithGenerators to generate the groups. Is there some way I can tell GAP to stop forming the group as soon as it finds out that the order is greater than thousand. This will cut down the running time of the code considerably. Krishnamohan P Project Assistant CHEP, IISc Bangalore, India From lisette.brillemans at mensa.nl Sun Jul 18 22:15:54 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Sun, 18 Jul 2010 23:15:54 +0200 Subject: [GAP Forum] Question Message-ID: <1279487754.1559.8.camel@agnieszka-desktop> Dear forum-members, Is there a command to enter a group like S:=Group((1,2,3,4,5,6,7,8,9,10)); at once. For instance a command like: S:=Group([1..10]) or so? I have tried many things but not yet been able to find it. Thank you in advance, Lisette From ahulpke at gmail.com Sun Jul 18 23:57:26 2010 From: ahulpke at gmail.com (Alexander Hulpke) Date: Sun, 18 Jul 2010 16:57:26 -0600 Subject: [GAP Forum] Question In-Reply-To: <1279487754.1559.8.camel@agnieszka-desktop> References: <1279487754.1559.8.camel@agnieszka-desktop> Message-ID: <9272DE3A-2B8B-45C2-BA82-34117D8607C4@gmail.com> Dear GAP Forum, On Jul 18, 2010, at 3:15 PM, Lisette Brillemans wrote: > Is there a command to enter a group like > > S:=Group((1,2,3,4,5,6,7,8,9,10)); at once. > > For instance a command like: > > S:=Group([1..10]) or so? If you just want a cyclic group you can use CyclicGroup(IsPermGroup,10); (Omitting `IsPermGroup' yields an isomorphic group in a different representation). The `generic' command taking a degree would be SymmetricGroup(10) yielding the group of all permutations. 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 ahulpke at gmail.com Mon Jul 19 00:03:54 2010 From: ahulpke at gmail.com (Alexander Hulpke) Date: Sun, 18 Jul 2010 17:03:54 -0600 Subject: [GAP Forum] Forming only groups smaller than a certain size In-Reply-To: <476004.29384.qm@web94613.mail.in2.yahoo.com> References: <476004.29384.qm@web94613.mail.in2.yahoo.com> Message-ID: <0B1BB5F7-10EC-459B-A5EF-009280CF0D58@gmail.com> Dear Forum, Krishna Mohan asked: > Currently I am running a code which generates groups from a set of generators, > which in turn depends on an integer n running in the loop. Now the problem is > that some groups that are generated have very large sizes (of the order of > thousands). But I am only interested in groups that have a size less than, say, > thousand. > > I am using the command GroupWithGenerators to generate the groups. > > Is there some way I can tell GAP to stop forming the group as soon as it finds > out that the order is greater than thousand. This will cut down the running time > of the code considerably. This really depends substantially what your generators are (permutations? matrices?), of what degree etc. and how many generators you have. In general, forming the group takes no time, but the initial order calculation (which sets up some data structures) does. There is no way provided that would kill this calculation once the order gets bigger -- instead one should do some cheap tests first that will eliminate the ``bad'' cases. What tests to do again depends on the elements you have, for examples: - try a subset of generators first - in the case of permutation groups, test whether the group is symmetric or alternating. Please feel free to provide further details of what elements and generating sets you are working with and I can probably be more specific. 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 dan+gap at banaan.org Mon Jul 19 00:11:25 2010 From: dan+gap at banaan.org (Dan Roozemond) Date: Mon, 19 Jul 2010 09:11:25 +1000 Subject: [GAP Forum] Question In-Reply-To: <9272DE3A-2B8B-45C2-BA82-34117D8607C4@gmail.com> References: <1279487754.1559.8.camel@agnieszka-desktop> <9272DE3A-2B8B-45C2-BA82-34117D8607C4@gmail.com> Message-ID: Dear Lisette, Dear Forum, On Mon, Jul 19, 2010 at 8:57 AM, Alexander Hulpke wrote: > Dear GAP Forum, > > On Jul 18, 2010, at 3:15 PM, Lisette Brillemans wrote: > > > Is there a command to enter a group like > > > > S:=Group((1,2,3,4,5,6,7,8,9,10)); at once. > > > > For instance a command like: > > > > S:=Group([1..10]) or so? > If you just want a cyclic group you can use > CyclicGroup(IsPermGroup,10); > Alternatively, you could use "List" to construct a list describing the permutation you are interested in: > gap> x := List([1..10], i->(i mod 10)+1); [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 ] (this list means that 1 goes to x[1]=2, 2 goes to x[2] = 3, etc. Then use PermList to turn it into a permutation: > gap> PermList(x); (1,2,3,4,5,6,7,8,9,10) see http://www.gap-system.org/Manuals/doc/htm/ref/CHAP040.htm#SECT004 for the documentation for PermList. We then use Group to construct the group generated by that permutation: > gap> G := Group(PermList(x)); Group([ (1,2,3,4,5,6,7,8,9,10) ]) gap> Size(G); 10 Hope this helps. Kind regards, Dan From trebauchet1986 at yahoo.co.in Mon Jul 19 05:55:08 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Mon, 19 Jul 2010 10:25:08 +0530 (IST) Subject: [GAP Forum] Forming only groups smaller than a certain size In-Reply-To: <0B1BB5F7-10EC-459B-A5EF-009280CF0D58@gmail.com> References: <476004.29384.qm@web94613.mail.in2.yahoo.com> <0B1BB5F7-10EC-459B-A5EF-009280CF0D58@gmail.com> Message-ID: <257210.24157.qm@web94616.mail.in2.yahoo.com> Hi.. I am using matrices as generators. The set of generators consist of just 2 elements. Each element by itself generates a small group. Krishnamohan ________________________________ From: Alexander Hulpke To: krishna mohan Cc: gap forum Sent: Mon, 19 July, 2010 4:33:54 AM Subject: Re: [GAP Forum] Forming only groups smaller than a certain size Dear Forum, Krishna Mohan asked: > Currently I am running a code which generates groups from a set of generators, > which in turn depends on an integer n running in the loop. Now the problem is > that some groups that are generated have very large sizes (of the order of > thousands). But I am only interested in groups that have a size less than, say, > > thousand. > > I am using the command GroupWithGenerators to generate the groups. > > Is there some way I can tell GAP to stop forming the group as soon as it finds > out that the order is greater than thousand. This will cut down the running >time > > of the code considerably. This really depends substantially what your generators are (permutations? matrices?), of what degree etc. and how many generators you have. In general, forming the group takes no time, but the initial order calculation (which sets up some data structures) does. There is no way provided that would kill this calculation once the order gets bigger -- instead one should do some cheap tests first that will eliminate the ``bad'' cases. What tests to do again depends on the elements you have, for examples: - try a subset of generators first - in the case of permutation groups, test whether the group is symmetric or alternating. Please feel free to provide further details of what elements and generating sets you are working with and I can probably be more specific. 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 lisette.brillemans at mensa.nl Mon Jul 19 09:27:11 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Mon, 19 Jul 2010 10:27:11 +0200 Subject: [GAP Forum] Question In-Reply-To: References: <1279487754.1559.8.camel@agnieszka-desktop> <9272DE3A-2B8B-45C2-BA82-34117D8607C4@gmail.com> Message-ID: <1279528031.1482.10.camel@agnieszka-desktop> Dear Dan, dear Forum, Thank you for your reply. This does it indeed. But: gap> G := Group(PermList(List([1..10], i->(i mod 10)+1)); is a very long and complicated line. Furthermore, what does NOT work (of course...) is: gap> G := SymmetricGroup(PermList(List([1..10], i->(i mod 10)+1)); So I would like to ask the forum again: Is it possible to do something like (and how??): gap> G:=Group([1..10]); gap? G:=SymmetricGroup([1..10]); etc. (and especially with 100 instead of 10 and so.) with regards, Lisette > Dear Lisette, Dear Forum, > > On Mon, Jul 19, 2010 at 8:57 AM, Alexander Hulpke > wrote: > Dear GAP Forum, > > On Jul 18, 2010, at 3:15 PM, Lisette Brillemans wrote: > > > Is there a command to enter a group like > > > > S:=Group((1,2,3,4,5,6,7,8,9,10)); at once. > > > > For instance a command like: > > > > S:=Group([1..10]) or so? > > If you just want a cyclic group you can use > CyclicGroup(IsPermGroup,10); > > Alternatively, you could use "List" to construct a list describing the > permutation you are interested in: > gap> x := List([1..10], i->(i mod 10)+1); > [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 ] > (this list means that 1 goes to x[1]=2, 2 goes to x[2] = 3, etc. Then > use PermList to turn it into a permutation: > gap> PermList(x); > (1,2,3,4,5,6,7,8,9,10) > see http://www.gap-system.org/Manuals/doc/htm/ref/CHAP040.htm#SECT004 for the documentation for PermList. We then use Group to construct the group generated by that permutation: > gap> G := Group(PermList(x)); > Group([ (1,2,3,4,5,6,7,8,9,10) ]) > gap> Size(G); > 10 > > > Hope this helps. > > > Kind regards, > Dan > From neunhoef at mcs.st-and.ac.uk Mon Jul 19 09:34:42 2010 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Mon, 19 Jul 2010 09:34:42 +0100 Subject: [GAP Forum] Question In-Reply-To: <1279528031.1482.10.camel@agnieszka-desktop> References: <1279487754.1559.8.camel@agnieszka-desktop> <9272DE3A-2B8B-45C2-BA82-34117D8607C4@gmail.com> <1279528031.1482.10.camel@agnieszka-desktop> Message-ID: <20100719083442.GA4766@mcs.st-and.ac.uk> Dear Lisette, if you want to save typing, simply define a function making the group: MyCycGrp := function(n) return Group(PermList(Concatenation([2..n],[1]))); end; (this can simply be typed in or saved in a file and read with the "Read" command). Then a simple gap> MyCycGrp(100); gap> Size(last); 100 does the job. I hope this helps. Cheers, Max. On Mon, Jul 19, 2010 at 10:27:11AM +0200, Lisette Brillemans wrote: > Dear Dan, dear Forum, > > Thank you for your reply. > This does it indeed. But: > > gap> G := Group(PermList(List([1..10], i->(i mod 10)+1)); > > is a very long and complicated line. Furthermore, what does NOT work (of > course...) is: > > gap> G := SymmetricGroup(PermList(List([1..10], i->(i mod 10)+1)); > > So I would like to ask the forum again: Is it possible to do something > like (and how??): > > gap> G:=Group([1..10]); > gap? G:=SymmetricGroup([1..10]); > > etc. > (and especially with 100 instead of 10 and so.) > > > with regards, > > Lisette > > > > Dear Lisette, Dear Forum, > > > > On Mon, Jul 19, 2010 at 8:57 AM, Alexander Hulpke > > wrote: > > Dear GAP Forum, > > > > On Jul 18, 2010, at 3:15 PM, Lisette Brillemans wrote: > > > > > Is there a command to enter a group like > > > > > > S:=Group((1,2,3,4,5,6,7,8,9,10)); at once. > > > > > > For instance a command like: > > > > > > S:=Group([1..10]) or so? > > > > If you just want a cyclic group you can use > > CyclicGroup(IsPermGroup,10); > > > > Alternatively, you could use "List" to construct a list describing the > > permutation you are interested in: > > gap> x := List([1..10], i->(i mod 10)+1); > > [ 2, 3, 4, 5, 6, 7, 8, 9, 10, 1 ] > > (this list means that 1 goes to x[1]=2, 2 goes to x[2] = 3, etc. Then > > use PermList to turn it into a permutation: > > gap> PermList(x); > > (1,2,3,4,5,6,7,8,9,10) > > see http://www.gap-system.org/Manuals/doc/htm/ref/CHAP040.htm#SECT004 for the documentation for PermList. We then use Group to construct the group generated by that permutation: > > gap> G := Group(PermList(x)); > > Group([ (1,2,3,4,5,6,7,8,9,10) ]) > > gap> Size(G); > > 10 > > > > > > Hope this helps. > > > > > > Kind regards, > > Dan > > > > > > _______________________________________________ > Forum mailing list > Forum at 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 max at quendi.de Mon Jul 19 10:12:05 2010 From: max at quendi.de (Max Horn) Date: Mon, 19 Jul 2010 11:12:05 +0200 Subject: [GAP Forum] Question In-Reply-To: <1279528031.1482.10.camel@agnieszka-desktop> References: <1279487754.1559.8.camel@agnieszka-desktop> <9272DE3A-2B8B-45C2-BA82-34117D8607C4@gmail.com> <1279528031.1482.10.camel@agnieszka-desktop> Message-ID: <1E4C1B59-349B-417A-BDD0-D66A29533B9B@quendi.de> Hi, Am 19.07.2010 um 10:27 schrieb Lisette Brillemans: [...] > > So I would like to ask the forum again: Is it possible to do something > like (and how??): > > gap> G:=Group([1..10]); Alexander Hulpke already explained that you can do: CyclicGroup(IsPermGroup,10); But maybe you do not just want cyclic groups. In that case, you might want to tell us a bit more about what it is that you want to achieve, with less artificial examples. > gap? G:=SymmetricGroup([1..10]); This command works as you typed it, and will return a symmetric group on the points 1 to 10. You can also specify other (integer) sets to get a symmetric group acting on those: G:=SymmetricGroup([5,7,12]); > > etc. > (and especially with 100 instead of 10 and so.) G1 := CyclicGroup(IsPermGroup,100); G2 := SymmetricGroup(100); Again, that's only for the specific case you asked. Dan, Alexander and Max N. already gave some easily working examples as to how to tackle the general case. Bye, Max From lisette.brillemans at mensa.nl Mon Jul 19 10:49:49 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Mon, 19 Jul 2010 11:49:49 +0200 Subject: [GAP Forum] Question In-Reply-To: <1E4C1B59-349B-417A-BDD0-D66A29533B9B@quendi.de> References: <1279487754.1559.8.camel@agnieszka-desktop> <9272DE3A-2B8B-45C2-BA82-34117D8607C4@gmail.com> <1279528031.1482.10.camel@agnieszka-desktop> <1E4C1B59-349B-417A-BDD0-D66A29533B9B@quendi.de> Message-ID: <1279532989.2581.9.camel@agnieszka-desktop> Dier Max, Thank you for your reply. Indeed the answers already given were very helpful to me.] Group theory for me is a "hobby", something exciting to explore. Groups have really very very very deep structures and properties. That's what fascinates me. With regards, Lisette > Hi, > > > Am 19.07.2010 um 10:27 schrieb Lisette Brillemans: > > [...] > > > > > So I would like to ask the forum again: Is it possible to do something > > like (and how??): > > > > gap> G:=Group([1..10]); > > Alexander Hulpke already explained that you can do: > CyclicGroup(IsPermGroup,10); > > But maybe you do not just want cyclic groups. In that case, you might want to tell us a bit more about what it is that you want to achieve, with less artificial examples. > > > > gap? G:=SymmetricGroup([1..10]); > > This command works as you typed it, and will return a symmetric group on the points 1 to 10. You can also specify other (integer) sets to get a symmetric group acting on those: > > G:=SymmetricGroup([5,7,12]); > > > > > etc. > > (and especially with 100 instead of 10 and so.) > > G1 := CyclicGroup(IsPermGroup,100); > G2 := SymmetricGroup(100); > > Again, that's only for the specific case you asked. Dan, Alexander and Max N. already gave some easily working examples as to how to tackle the general case. > > Bye, > Max From dima at ntu.edu.sg Mon Jul 19 12:03:03 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Mon, 19 Jul 2010 14:03:03 +0300 Subject: [GAP Forum] Forming only groups smaller than a certain size In-Reply-To: <257210.24157.qm@web94616.mail.in2.yahoo.com> References: <476004.29384.qm@web94613.mail.in2.yahoo.com> <0B1BB5F7-10EC-459B-A5EF-009280CF0D58@gmail.com> <257210.24157.qm@web94616.mail.in2.yahoo.com> Message-ID: Dear Krishna, you might try computing the orbit of a random vector (or few random vectors) under your group G. This is faster than computing the group order, and the length of the orbit is a lower bound on |G|. (and it is easy to tweak the orbit computation code to make it stop after it generates more than prescribed number of elements of the orbit) HTH, Dmitrii On 19 July 2010 07:55, krishna mohan wrote: > Hi.. > > I am using matrices as generators. The set of generators consist of just 2 > elements. Each element by itself generates a small group. > > > Krishnamohan > > > > > > ________________________________ > From: Alexander Hulpke > To: krishna mohan > Cc: gap forum > Sent: Mon, 19 July, 2010 4:33:54 AM > Subject: Re: [GAP Forum] Forming only groups smaller than a certain size > > Dear Forum, > > Krishna Mohan asked: > >> Currently I am running a code which generates groups from a set of generators, > >> which in turn depends on an integer n running in the loop. Now the problem is > >> that some groups that are generated have very large sizes (of the order of >> thousands). But I am only interested in groups that have a size less than, say, >> >> thousand. >> >> I am using the command GroupWithGenerators to generate the groups. >> >> Is there some way I can tell GAP to stop forming the group as soon as it finds > >> out that the order is greater than thousand. This will cut down the running >>time >> >> of the code considerably. > > This really depends substantially what your generators are (permutations? > matrices?), of what degree etc. and how many generators you have. > > In general, forming the group takes no time, but the initial order calculation > (which sets up some data structures) does. There is no way provided that would > kill this calculation once the order gets bigger -- instead one should do some > cheap tests first that will eliminate the ``bad'' cases. What tests to do again > depends on the elements you have, for examples: > - try a subset of generators first > - in the case of permutation groups, test whether the group is symmetric or > alternating. > > Please feel free to provide further details of what elements and generating sets > you are working with and I can probably be more specific. > > 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 > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From lisette.brillemans at mensa.nl Mon Jul 19 19:38:07 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Mon, 19 Jul 2010 20:38:07 +0200 Subject: [GAP Forum] I'd like to know something again. Message-ID: <1279564687.2307.7.camel@agnieszka-desktop> Dear forum, I'm exploring the exiting possibilities of the wonderful GAP and there is quite a lot to explore there but... How can I trust that everything GAP calculates is correct? I'm sure I can't. And then we're only talking about GAP. GAP has also been added to another, much bigger, software package calles SAGE, where many opensource packages and libraries can be used in one interface. But so many libraries, so many programs, so many packages, this cannot all be correct. There must have been programming mistakes leading to wrong calculations. But I would say that one cannot rely on it without recalculating everyting, or is that preposterous? I hope that I may ask this here... I wish you a nice day and am continuing to learn to use gap (and sage too). Lisette From lisette.brillemans at mensa.nl Tue Jul 20 16:41:15 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Tue, 20 Jul 2010 17:41:15 +0200 Subject: [GAP Forum] I'd like to know something again. In-Reply-To: <4C45B947.2020005@math.ohio-state.edu> References: <1279564687.2307.7.camel@agnieszka-desktop> <4C45B947.2020005@math.ohio-state.edu> Message-ID: <1279640475.1483.14.camel@agnieszka-desktop> Dear James (and Joachim), Of course, I know, people working with GAP and so on are mainly professors and dr.'s, and they are programming it. I am not a prof dr. so I won't ever say that gap, sage, pari etc. etc. are not good. What I meant is: Can't there be a danger in using these programs? If you trust them so much (They are open source and programmed by the world's finest professors etc.) there is always a chance of big accidents. I don't want to fly in an airplane designed with possibly faulty software. That's my point. I already see it happen on television: "Yes yes, we designed our planes (of which on crashed that day) with the best software available... So that cannot be the reason." No, but very seriously speaking now: There is always a danger that we trust software too much. If we do so there will always be security risks that could have been avoided. Lisette > > GAP, Sage, and most of Magma include the source files to the software > which means that if you are interested you can read the way that > computations are performed. That is hard to do if you don't have a > background in the details of these platforms. But most of the authors > of these algorithms also publish academic papers describing their > algorithms. These publications receive peer review and the most used > routines receive a lot of testing before they are distributed. You can > see this in the documentation. Most of the documentation include > references to published papers where you can read about the theorems > behind the algorithms, and examples that show you the correct behavior > is being produced on well-known examples. > > Are their mistakes? Of course, both in the programming and in the > design of some algorithms. But this is likely to happen at least as > often when you do similar computations by hand. Furthermore, many > computations just cannot be done by hand because of their size, e.g. > proof of the 4 color theorem. Others could be done by hand but rather > inconsistently because of their complexity. > > Some people think of these tools as the microscope for mathematics. It > lets you see things you couldn't see before. But you don't just except > the data, you need to go in to each experiment with a hypothesis of what > you expect and then process the results against what you understand. So > if you get a result that doesn't make sense you should endeavor to > explain it, redo it, and try to discover if there is a problem with the > microscope. Overtime we will build even better microscopes and others > will redo important computations with their own tools to see if they get > the same thing. > > For most things I trust these platforms. It has been my (limited) > experience that most of the incorrect outputs are a result of my failure > to ask the question in the right way and not the result of the computer > doing something contrary to what it claims it would do. > > You are permitted and encouraged to doubt anything in these algorithms, > but hopefully that simply spurs you to get more information on what they > do rather than give up on them :) > > > > -James > > > > Lisette Brillemans wrote: > > Dear forum, > > > > I'm exploring the exiting possibilities of the wonderful GAP and there > > is quite a lot to explore there but... > > > > How can I trust that everything GAP calculates is correct? I'm sure I > > can't. > > And then we're only talking about GAP. GAP has also been added to > > another, much bigger, software package calles SAGE, where many > > opensource packages and libraries can be used in one interface. But so > > many libraries, so many programs, so many packages, this cannot all be > > correct. There must have been programming mistakes leading to wrong > > calculations. > > > > But I would say that one cannot rely on it without recalculating > > everyting, or is that preposterous? I hope that I may ask this here... > > > > I wish you a nice day and am continuing to learn to use gap (and sage > > too). > > > > Lisette > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > From hulpke at math.colostate.edu Tue Jul 20 20:20:27 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 20 Jul 2010 13:20:27 -0600 Subject: [GAP Forum] Forming only groups smaller than a certain size In-Reply-To: <257210.24157.qm@web94616.mail.in2.yahoo.com> References: <476004.29384.qm@web94613.mail.in2.yahoo.com> <0B1BB5F7-10EC-459B-A5EF-009280CF0D58@gmail.com> <257210.24157.qm@web94616.mail.in2.yahoo.com> Message-ID: <51BE899B-53D5-4F5E-ACC4-DE14514038BC@math.colostate.edu> Dear Forum, Dear Krishna Mohan, > I am using matrices as generators. The set of generators consist of just 2 elements. Each element by itself generates a small group. If you have ``random'' matrices the lartge groups you want to exclude likely are very large (containing SL). As a quick way of eliminating such giants, you could (even before trying an orbit calculation) try the orders of a few (pseudo-)random elements (you could replace 20 by a different number): List([1..20],x->Order(PseudoRandom(G))); and calculate the LCM. This is a lower bound for the group order which will typically eliminate very large subgroups of GL very quickly. Also (assuming you're working over a finite field, you could look at the action on submodules or factor modules first: (again they give lower bounds on the order): m:=GModuleByMats(GeneratorsOfGroup(G),DefaultFieldOfMatrixGroup(G)); MTX.IsIrreducible(m); if this returns false, you can use: bas:=MTX.ProperSubmoduleBasis(m); l:=MTX.InducedAction(m,bas); Now l[1].generators gives matrices (in smaller dimension) for the action on the submodule, l[2].generators for the action on the factor module. The orders of the corresponding groups again are lower bounds for |G|. 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 rickhg12hs at gmail.com Sun Jul 25 23:51:32 2010 From: rickhg12hs at gmail.com (Richard Graham) Date: Sun, 25 Jul 2010 18:51:32 -0400 Subject: [GAP Forum] Different TwoSquares algorithm for large input? Message-ID: I use Sage for some recreational mathematics, which in turn uses Gap. I would like to use the TwoSquares function with inputs that are large. Is there perhaps another algorithm that could be used to handle large input? Thanks. From sal at mcs.st-andrews.ac.uk Mon Jul 26 09:27:29 2010 From: sal at mcs.st-andrews.ac.uk (Stephen Linton) Date: Mon, 26 Jul 2010 10:27:29 +0200 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: How large are your inputs? For me the existing algorithms seems to work quite well for really quite large numbers, limited mainly by integer factorisation. One obvious question is therefore: do you have the factint GAP package installed? It's part of the standard GAP distribution, but I don't know about SAGE. You can check with the GAP command InstalledPackageVersion("factint"); which will give a version number or "fail. Steve Linton On 26 Jul 2010, at 00:51, Richard Graham wrote: > I use Sage for some recreational mathematics, which in turn uses Gap. I > would like to use the TwoSquares function with inputs that are large. Is > there perhaps another algorithm that could be used to handle large input? > Thanks. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From lisette.brillemans at mensa.nl Mon Jul 26 20:15:55 2010 From: lisette.brillemans at mensa.nl (Lisette Brillemans) Date: Mon, 26 Jul 2010 21:15:55 +0200 Subject: [GAP Forum] manual Message-ID: <1280171755.2027.4.camel@agnieszka-desktop> Dear forum-members, I wonder if it is possible to obtain a printed reference-manual somehow. Of course I could print it myself, but it would cost me more than eur. 60,=. Of course a hard-cover printed edition wouldn't cost much less, but it would be an "official" book. Does it exist? O yes, and, could you, if possible, change my account so that my postings (including this and previous ones) no longer will appear in the archives and thus on Google? I don't want to these messages to be found there. I would be very grateful for that! (Else I should make a nickname and post here under that nickname, but I more like doing it with my own name.) With regards, Lisette From rickhg12hs at gmail.com Mon Jul 26 20:16:48 2010 From: rickhg12hs at gmail.com (Richard Graham) Date: Mon, 26 Jul 2010 15:16:48 -0400 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: Thanks for your response. I suppose relying on integer factorization is the limiting factor (pun intended). Sage does not appear to include Gap's factint, but still, factorization of large numbers can be difficult. Sage's four_squares function also relies on Gap's TwoSquares function, so it too is limited. I noticed that the four square problem is solved without factorization at: http://www.alpertron.com.ar/FSQUARES.HTM ... and it can take very large inputs (I tried numbers greater than 2^1000). I am wondering if the TwoSquares problem can be solved without integer factorization. Cheers! Richard On Mon, Jul 26, 2010 at 4:27 AM, Stephen Linton wrote: > How large are your inputs? For me the existing algorithms seems to work > quite well for really quite large numbers, limited mainly by integer > factorisation. > One obvious question is therefore: do you have the factint GAP package > installed? It's part of the standard GAP distribution, but I don't know > about SAGE. > > You can check with the GAP command > > InstalledPackageVersion("factint"); > > which will give a version number or "fail. > > Steve Linton > > On 26 Jul 2010, at 00:51, Richard Graham wrote: > > > I use Sage for some recreational mathematics, which in turn uses Gap. I > > would like to use the TwoSquares function with inputs that are large. Is > > there perhaps another algorithm that could be used to handle large input? > > Thanks. > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > From frank.luebeck at math.rwth-aachen.de Tue Jul 27 05:52:20 2010 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Tue, 27 Jul 2010 06:52:20 +0200 Subject: [GAP Forum] manual In-Reply-To: <1280171755.2027.4.camel@agnieszka-desktop> References: <1280171755.2027.4.camel@agnieszka-desktop> Message-ID: <20100727045220.GB18667@beteigeuze> On Mon, Jul 26, 2010 at 09:15:55PM +0200, Lisette Brillemans wrote: > Dear forum-members, > > I wonder if it is possible to obtain a printed reference-manual somehow. > Of course I could print it myself, but it would cost me more than eur. > 60,=. Of course a hard-cover printed edition wouldn't cost much less, > but it would be an "official" book. Does it exist? Dear Lisette Brillemans, dear Forum, No, the GAP reference manual is not distributed in a printed version. It is actually not meant to be printed (and read) as a whole. Of course, we provide pdf-versions of the manuals. So, if you prefer reading parts of the manuals on paper you can use the pdf-versions for printouts. I suggest that you just print what you really want to read in detail, maybe some chapters of the tutorial and those chapters (or just their introductions) of the reference manual you are most interested in. Note that each update of GAP also contains updates of the documentation, it is likely that printed versions of the manual will soon become outdated. Once you are familiar with GAP and its help facilities you might find it easier and more convenient to find out new things with the GAP help system in a running GAP session. > O yes, and, could you, if possible, change my account so that my > postings (including this and previous ones) no longer will appear in the > archives and thus on Google? > I don't want to these messages to be found there. > > I would be very grateful for that! No, that is not possible. Before you sign in to the GAP forum you see the link to the archive of previous messages. That makes clear that messages to the GAP forum are public. If you don't agree to this policy, you cannot post to the GAP forum. It is useful that the forum is covered by Google (and others) because some questions arise repeatedly. BTW: messages to support at gap-system.org are not made public, but you reach less people who might be able to answer your questions. > (Else I should make a nickname and post here under that nickname, but I > more like doing it with my own name.) It seems to be a convention that people sign in to the GAP forum by their real names. But we cannot prevent anyone from using a nickname/pseudonym. With 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 alexander.konovalov at gmail.com Wed Jul 28 09:00:28 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Wed, 28 Jul 2010 09:00:28 +0100 Subject: [GAP Forum] GAP package simpcomp won Best Software Presentation Award at ISSAC 2010 Message-ID: Congratulations to Felix Effenberger and Jonathan Spreer (Universit?t Stuttgart) on receiving the Best Software Presentation Award at ISSAC 2010 for their presentation of the GAP package "simpcomp - A GAP Toolbox for Simplicial Complexes" http://www.igt.uni-stuttgart.de/LstDiffgeo/simpcomp/ In addition, two other GAP packages (LocalizeRingForHomalg, SCSCP) were presented at ISSAC 2010, and in two other presentations (TRIP, SymGrid-Par) interfaces to GAP were shown. The program and abstracts of all presentations may be found at http://www.issac-conference.org/2010/program/ Best wishes, Alexander From dima at ntu.edu.sg Wed Jul 28 13:40:58 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed, 28 Jul 2010 15:40:58 +0300 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: Dear Richard, Sage includes a number of number-theoretic systems that should be much better than GAP in factoring, e.g. PARI. That's, if you like, the whole purpose of Sage, to make the best tool available for each particular job. You can also install extra GAP packages into your Sage installation, although this is not very straightforward, if this includes compiling executables. Best, Dmitrii On 26 July 2010 22:16, Richard Graham wrote: > Thanks for your response. > > I suppose relying on integer factorization is the limiting factor (pun > intended). Sage does not appear to include Gap's factint, but still, > factorization of large numbers can be difficult. > > Sage's four_squares function also relies on Gap's TwoSquares function, so it > too is limited. > > I noticed that the four square problem is solved without factorization at: > > http://www.alpertron.com.ar/FSQUARES.HTM > > ... and it can take very large inputs (I tried numbers greater than 2^1000). > > I am wondering if the TwoSquares problem can be solved without integer > factorization. > > Cheers! > Richard > > On Mon, Jul 26, 2010 at 4:27 AM, Stephen Linton wrote: > >> How large are your inputs? For me the existing algorithms seems to work >> quite well for really quite large numbers, limited mainly by integer >> factorisation. >> One obvious question is therefore: do you have the factint GAP package >> installed? It's part of the standard GAP distribution, but I don't know >> about SAGE. >> >> You can check with the GAP command >> >> InstalledPackageVersion("factint"); >> >> which will give a version number or "fail. >> >> Steve Linton >> >> On 26 Jul 2010, at 00:51, Richard Graham wrote: >> >> > I use Sage for some recreational mathematics, which in turn uses Gap. I >> > would like to use the TwoSquares function with inputs that are large. Is >> > there perhaps another algorithm that could be used to handle large input? >> > Thanks. >> > _______________________________________________ >> > Forum mailing list >> > Forum at mail.gap-system.org >> > http://mail.gap-system.org/mailman/listinfo/forum >> >> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From dima at ntu.edu.sg Wed Jul 28 16:17:47 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed, 28 Jul 2010 18:17:47 +0300 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: Dear Richard, actually, Sage does include FactInt package, you just need to install gap_packages spkg, e.g. as follows. optional_packages() gives you the list of available optional packages: e.g. on my 4.5.1 installation I get sage: optional_packages() (['database_gap-4.4.12.p0', 'gap_packages-4.4.12.p0'], ['ace-5.0.p0', 'biopython-1.54.p0', 'cbc-2.3.p2', 'cunningham_tables-1.0', 'database_cremona_ellcurve-20071019.p0', ...............]) the 1st list in the pair gives you already installed optional packages, and the 2nd list - available, but not yet installed. (for you probably the lists will look differently) So you will need to run install_package('gap_packages-4.4.12.p0') after this is done you can just do sage: gap.load_package("factint") (same as LoadPackage("factint") in GAP) and then it is loaded and you can e.g. do sage: gap('FactorsTD(12^25+25^12)') [ [ 13, 19, 727 ], [ 5312510324723614735153 ] ] HTH, Dmitrii PS. Alex, I stand corrected, this package is available... On 28 July 2010 15:40, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear Richard, > > Sage includes a number of number-theoretic systems that should be > much better than GAP in factoring, e.g. PARI. > That's, if you like, the whole purpose of Sage, to make the best tool > available for each particular job. > > You can also install extra GAP packages into your Sage installation, > although this is not very straightforward, if this includes compiling > executables. > > Best, > Dmitrii > > On 26 July 2010 22:16, Richard Graham wrote: >> Thanks for your response. >> >> I suppose relying on integer factorization is the limiting factor (pun >> intended). Sage does not appear to include Gap's factint, but still, >> factorization of large numbers can be difficult. >> >> Sage's four_squares function also relies on Gap's TwoSquares function, so it >> too is limited. >> >> I noticed that the four square problem is solved without factorization at: >> >> http://www.alpertron.com.ar/FSQUARES.HTM >> >> ... and it can take very large inputs (I tried numbers greater than 2^1000). >> >> I am wondering if the TwoSquares problem can be solved without integer >> factorization. >> >> Cheers! >> Richard >> >> On Mon, Jul 26, 2010 at 4:27 AM, Stephen Linton wrote: >> >>> How large are your inputs? For me the existing algorithms seems to work >>> quite well for really quite large numbers, limited mainly by integer >>> factorisation. >>> One obvious question is therefore: do you have the factint GAP package >>> installed? It's part of the standard GAP distribution, but I don't know >>> about SAGE. >>> >>> You can check with the GAP command >>> >>> InstalledPackageVersion("factint"); >>> >>> which will give a version number or "fail. >>> >>> Steve Linton >>> >>> On 26 Jul 2010, at 00:51, Richard Graham wrote: >>> >>> > I use Sage for some recreational mathematics, which in turn uses Gap. I >>> > would like to use the TwoSquares function with inputs that are large. Is >>> > there perhaps another algorithm that could be used to handle large input? >>> > Thanks. >>> > _______________________________________________ >>> > Forum mailing list >>> > Forum at mail.gap-system.org >>> > http://mail.gap-system.org/mailman/listinfo/forum >>> >>> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > > -- > Dmitrii Pasechnik > ----- > DISCLAIMER: Any text following this sentence does not constitute a > part of this message, and was added automatically during transmission. > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From dima at ntu.edu.sg Wed Jul 28 16:17:47 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed, 28 Jul 2010 18:17:47 +0300 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: Dear Richard, actually, Sage does include FactInt package, you just need to install gap_packages spkg, e.g. as follows. optional_packages() gives you the list of available optional packages: e.g. on my 4.5.1 installation I get sage: optional_packages() (['database_gap-4.4.12.p0', 'gap_packages-4.4.12.p0'], ['ace-5.0.p0', 'biopython-1.54.p0', 'cbc-2.3.p2', 'cunningham_tables-1.0', 'database_cremona_ellcurve-20071019.p0', ...............]) the 1st list in the pair gives you already installed optional packages, and the 2nd list - available, but not yet installed. (for you probably the lists will look differently) So you will need to run install_package('gap_packages-4.4.12.p0') after this is done you can just do sage: gap.load_package("factint") (same as LoadPackage("factint") in GAP) and then it is loaded and you can e.g. do sage: gap('FactorsTD(12^25+25^12)') [ [ 13, 19, 727 ], [ 5312510324723614735153 ] ] HTH, Dmitrii PS. Alex, I stand corrected, this package is available... On 28 July 2010 15:40, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear Richard, > > Sage includes a number of number-theoretic systems that should be > much better than GAP in factoring, e.g. PARI. > That's, if you like, the whole purpose of Sage, to make the best tool > available for each particular job. > > You can also install extra GAP packages into your Sage installation, > although this is not very straightforward, if this includes compiling > executables. > > Best, > Dmitrii > > On 26 July 2010 22:16, Richard Graham wrote: >> Thanks for your response. >> >> I suppose relying on integer factorization is the limiting factor (pun >> intended). Sage does not appear to include Gap's factint, but still, >> factorization of large numbers can be difficult. >> >> Sage's four_squares function also relies on Gap's TwoSquares function, so it >> too is limited. >> >> I noticed that the four square problem is solved without factorization at: >> >> http://www.alpertron.com.ar/FSQUARES.HTM >> >> ... and it can take very large inputs (I tried numbers greater than 2^1000). >> >> I am wondering if the TwoSquares problem can be solved without integer >> factorization. >> >> Cheers! >> Richard >> >> On Mon, Jul 26, 2010 at 4:27 AM, Stephen Linton wrote: >> >>> How large are your inputs? For me the existing algorithms seems to work >>> quite well for really quite large numbers, limited mainly by integer >>> factorisation. >>> One obvious question is therefore: do you have the factint GAP package >>> installed? It's part of the standard GAP distribution, but I don't know >>> about SAGE. >>> >>> You can check with the GAP command >>> >>> InstalledPackageVersion("factint"); >>> >>> which will give a version number or "fail. >>> >>> Steve Linton >>> >>> On 26 Jul 2010, at 00:51, Richard Graham wrote: >>> >>> > I use Sage for some recreational mathematics, which in turn uses Gap. I >>> > would like to use the TwoSquares function with inputs that are large. Is >>> > there perhaps another algorithm that could be used to handle large input? >>> > Thanks. >>> > _______________________________________________ >>> > Forum mailing list >>> > Forum at mail.gap-system.org >>> > http://mail.gap-system.org/mailman/listinfo/forum >>> >>> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > > -- > Dmitrii Pasechnik > ----- > DISCLAIMER: Any text following this sentence does not constitute a > part of this message, and was added automatically during transmission. > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From rickhg12hs at gmail.com Thu Jul 29 05:15:31 2010 From: rickhg12hs at gmail.com (Richard Graham) Date: Thu, 29 Jul 2010 00:15:31 -0400 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: Dear Dmitrii, Thanks for the tip on enhancing my Sage install. However, all the factoring power my little laptop can produce won't factor an RSA challenge number in any reasonable time, but the four squares algorithm at: http://www.alpertron.com.ar/FSQUARES.HTM ... can produce the sums of squares in less than a few seconds. My real question is about the TwoSquares algorithm. Is there a better (or perhaps extended/augmented) TwoSquares algorithm that Gap could use that would extend its range of usefulness? Regards, Richard On Wed, Jul 28, 2010 at 11:17 AM, Asst. Prof. Dmitrii (Dima) Pasechnik < dima at ntu.edu.sg> wrote: > Dear Richard, > actually, Sage does include FactInt package, you just need to install > gap_packages spkg, e.g. as follows. > > optional_packages() gives you the list of available optional packages: > e.g. on my 4.5.1 installation I get > sage: optional_packages() > (['database_gap-4.4.12.p0', 'gap_packages-4.4.12.p0'], ['ace-5.0.p0', > 'biopython-1.54.p0', 'cbc-2.3.p2', 'cunningham_tables-1.0', > 'database_cremona_ellcurve-20071019.p0', ...............]) > > the 1st list in the pair gives you already installed optional packages, > and the 2nd list - available, but not yet installed. > (for you probably the lists will look differently) > > So you will need to run > install_package('gap_packages-4.4.12.p0') > > after this is done you can just do > sage: gap.load_package("factint") > (same as LoadPackage("factint") in GAP) > > and then it is loaded and you can e.g. do > > sage: gap('FactorsTD(12^25+25^12)') > [ [ 13, 19, 727 ], [ 5312510324723614735153 ] ] > > HTH, > Dmitrii > > PS. Alex, I stand corrected, this package is available... > > On 28 July 2010 15:40, Asst. Prof. Dmitrii (Dima) Pasechnik > wrote: > > Dear Richard, > > > > Sage includes a number of number-theoretic systems that should be > > much better than GAP in factoring, e.g. PARI. > > That's, if you like, the whole purpose of Sage, to make the best tool > > available for each particular job. > > > > You can also install extra GAP packages into your Sage installation, > > although this is not very straightforward, if this includes compiling > > executables. > > > > Best, > > Dmitrii > > > > On 26 July 2010 22:16, Richard Graham wrote: > >> Thanks for your response. > >> > >> I suppose relying on integer factorization is the limiting factor (pun > >> intended). Sage does not appear to include Gap's factint, but still, > >> factorization of large numbers can be difficult. > >> > >> Sage's four_squares function also relies on Gap's TwoSquares function, > so it > >> too is limited. > >> > >> I noticed that the four square problem is solved without factorization > at: > >> > >> http://www.alpertron.com.ar/FSQUARES.HTM > >> > >> ... and it can take very large inputs (I tried numbers greater than > 2^1000). > >> > >> I am wondering if the TwoSquares problem can be solved without integer > >> factorization. > >> > >> Cheers! > >> Richard > >> > >> On Mon, Jul 26, 2010 at 4:27 AM, Stephen Linton < > sal at mcs.st-andrews.ac.uk>wrote: > >> > >>> How large are your inputs? For me the existing algorithms seems to work > >>> quite well for really quite large numbers, limited mainly by integer > >>> factorisation. > >>> One obvious question is therefore: do you have the factint GAP package > >>> installed? It's part of the standard GAP distribution, but I don't know > >>> about SAGE. > >>> > >>> You can check with the GAP command > >>> > >>> InstalledPackageVersion("factint"); > >>> > >>> which will give a version number or "fail. > >>> > >>> Steve Linton > >>> > >>> On 26 Jul 2010, at 00:51, Richard Graham wrote: > >>> > >>> > I use Sage for some recreational mathematics, which in turn uses Gap. > I > >>> > would like to use the TwoSquares function with inputs that are large. > Is > >>> > there perhaps another algorithm that could be used to handle large > input? > >>> > Thanks. > >>> > _______________________________________________ > >>> > Forum mailing list > >>> > Forum at mail.gap-system.org > >>> > http://mail.gap-system.org/mailman/listinfo/forum > >>> > >>> > >> _______________________________________________ > >> Forum mailing list > >> Forum at mail.gap-system.org > >> http://mail.gap-system.org/mailman/listinfo/forum > >> > > > > > > > > -- > > Dmitrii Pasechnik > > ----- > > DISCLAIMER: Any text following this sentence does not constitute a > > part of this message, and was added automatically during transmission. > > > > > > -- > Dmitrii Pasechnik > ----- > DISCLAIMER: Any text following this sentence does not constitute a > part of this message, and was added automatically during transmission. > > CONFIDENTIALITY: This email is intended solely for the person(s) named and > may be confidential and/or privileged. If you are not the intended > recipient, please delete it, notify us and do not copy, use, or disclose its > content. Thank you. > > Towards A Sustainable Earth: Print Only When Necessary > From max at quendi.de Thu Jul 29 09:00:04 2010 From: max at quendi.de (Max Horn) Date: Thu, 29 Jul 2010 10:00:04 +0200 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: <6D3B6B6F-8D82-494F-8671-0E69A6EEA37B@quendi.de> Dear Richard, dear Forum, Am 29.07.2010 um 06:15 schrieb Richard Graham: > Dear Dmitrii, > > Thanks for the tip on enhancing my Sage install. > > However, all the factoring power my little laptop can produce won't factor > an RSA challenge number in any reasonable time, but the four squares > algorithm at: > > http://www.alpertron.com.ar/FSQUARES.HTM > > ... can produce the sums of squares in less than a few seconds. Of course. Two get a sum of three or four squares, you don't need to factor. The site you refer to mentions that explicitly. So, if you just want to write a number as sum of four squares (where 0^2 is allowed as a summand), then you do not have to use TwoSquares, but rather should use an algorithm for that. Darin Alpern even kindly provides the source code for what he does on his website, as well as alink to a page which explains how the four squares applet works: , scroll to the bottom for the factorization free approach. > > My real question is about the TwoSquares algorithm. Is there a better (or > perhaps extended/augmented) TwoSquares algorithm that Gap could use that > would extend its range of usefulness? To the best of my knowledge, no, factorization is required to solve this. The two squares problem is considerably harder than the four squares problem. Cheers, Max From rickhg12hs at gmail.com Thu Jul 29 13:39:11 2010 From: rickhg12hs at gmail.com (Richard Graham) Date: Thu, 29 Jul 2010 08:39:11 -0400 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: <6D3B6B6F-8D82-494F-8671-0E69A6EEA37B@quendi.de> References: <6D3B6B6F-8D82-494F-8671-0E69A6EEA37B@quendi.de> Message-ID: Max, > To the best of my knowledge, no, factorization is required to solve this. > The two squares problem is considerably harder than the four squares > problem. > Factorization is required. Ok, thanks! Richard On Thu, Jul 29, 2010 at 4:00 AM, Max Horn wrote: > Dear Richard, dear Forum, > > Am 29.07.2010 um 06:15 schrieb Richard Graham: > > > Dear Dmitrii, > > > > Thanks for the tip on enhancing my Sage install. > > > > However, all the factoring power my little laptop can produce won't > factor > > an RSA challenge number in any reasonable time, but the four squares > > algorithm at: > > > > http://www.alpertron.com.ar/FSQUARES.HTM > > > > ... can produce the sums of squares in less than a few seconds. > > Of course. Two get a sum of three or four squares, you don't need to > factor. The site you refer to mentions that explicitly. > > So, if you just want to write a number as sum of four squares (where 0^2 is > allowed as a summand), then you do not have to use TwoSquares, but rather > should use an algorithm for that. > > Darin Alpern even kindly provides the source code for what he does on his > website, as well as alink to a page which explains how the four squares > applet works: , scroll to the > bottom for the factorization free approach. > > > > > > My real question is about the TwoSquares algorithm. Is there a better (or > > perhaps extended/augmented) TwoSquares algorithm that Gap could use that > > would extend its range of usefulness? > > To the best of my knowledge, no, factorization is required to solve this. > The two squares problem is considerably harder than the four squares > problem. > > > Cheers, > Max > > From Bill.Allombert at math.u-bordeaux1.fr Thu Jul 29 13:46:10 2010 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Thu, 29 Jul 2010 14:46:10 +0200 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: References: Message-ID: <20100729124610.GA15939@yellowpig> On Mon, Jul 26, 2010 at 03:16:48PM -0400, Richard Graham wrote: > Thanks for your response. > > I am wondering if the TwoSquares problem can be solved without integer > factorization. Well, if you can compute all the solutions of a^2+b^2=n and there is at least one solution with a and b coprimes, then you can factor n. So solving the TwoSquares in general without integer factorization is higly unlikely. Cheers, Bill. From Jason.B.Hill at Colorado.edu Thu Jul 29 22:23:19 2010 From: Jason.B.Hill at Colorado.edu (Jason B Hill) Date: Thu, 29 Jul 2010 15:23:19 -0600 Subject: [GAP Forum] Different TwoSquares algorithm for large input? In-Reply-To: <20100729124610.GA15939@yellowpig> References: <20100729124610.GA15939@yellowpig> Message-ID: The available documentation helps with the original question a bit. I'll mention some options in a bit. First, notice the difference between gap and sage. Sage's 'two_squares()' method indeed calls gap's TwoSquares function, and is literally written as "gap.gap.eval('TwoSquares(%s)'%n)". The documentation claims that two_squares(n) will write n as the sum of two squares if possible, and return a value error otherwise. It should be noted that gap's TwoSquares is more complex, as found in 15.6 of the gap reference manual: "TwoSquares returns a list of two integers x\le y such that the sum of the squares of x and y is equal to the nonnegative integer n... If no such representation exists Two Squares will return fail. TwoSquares will return a representation for which the gcd of x and y is as small as possible. It is not specified which representation TwoSquares returns if there is more than one." The sage method was clearly written with the idea that it may expanded by continued fractions (via pari) in the future. But, for right now, the sage documentation isn't exactly precise and I'll submit a patch to clear this up. The two main concerns are (a) that the value exception raised looks more like an error (someone may wish to test if n has a two squares representation and if not then this method doesn't make that entirely clear) and (b) the documentation does not explain that a lowest gcd representation is returned. It would also be nice to have (1) a potentially faster method that returns any two squares representation regardless of gcd considerations and (2) a boolean method that states if a two squares representation exists (without calculating such). Some options for making your code faster/better: 1) Factoring large integers in sage will be slower than in gp/pari (even though 'factor()' in sage does use gp/pari), as the gp-prime-limit is fixed and sage forces a global proof attribute on factorizations. Since you have sage installed, you might as well use {{{sage -gp -p prime_limit}}} with a high prime limit (and maybe more memory?) to factor anything too serious. 2) To test if a two squares representation exists, divide from n all of the primes in the factorization of n not of the form 4k+3. The remaining product is a square iff n has a two squares representation. This is probably how gap determines if it should return "fail". 3) If you call a gap or gp command from sage that will return something like a list or list of lists, it is better to cast it back as a sage object: sage: gap('FactorsTD(12^25+25^12)').sage() Objects like the following will obviously require more parsing: sage: gp('factor(12^25+25^12)') [13, 1; 19, 1; 727, 1; 35149, 1; 151142573749569397, 1] Jason From mathpn59 at yahoo.com Tue Aug 3 13:11:30 2010 From: mathpn59 at yahoo.com (Takjk Taj) Date: Tue, 3 Aug 2010 05:11:30 -0700 (PDT) Subject: [GAP Forum] help Message-ID: <352712.30610.qm@web110714.mail.gq1.yahoo.com> Dear GAP forum, I would be grateful if anybody help me about the following questions.? 1) For a normal subgroup $N$ and a subgroup H of $G$, how we can compute the product $HN={hn|h\in H and n\in N}$? 2)For any $R$-module? $M$ and $N$, how we can compute the tensor product $M$ and $N$? especially when $N=\mathbb{Z}$. 3) Let two groups $H$ and $K$ be given. Can we obtain the central product of $H$ and ?$K$? Any suggestions are welcome. Yours, Takjk From gap at rkd.math.cornell.edu Fri Aug 6 14:58:11 2010 From: gap at rkd.math.cornell.edu (R. Keith Dennis) Date: Fri, 6 Aug 2010 09:58:11 -0400 Subject: [GAP Forum] combinations Message-ID: <201008061358.o76DwBQo014036@rkd.math.cornell.edu> I've been trying to do some tests where I look at certain combinations of subgroups and take intersections. I've been using Combinations([1..m],k); which works fine as long as Binomial(m,k) is small enough. When the number is very large, then there is a memory problem & one can't even look at a few example combinations. Presumably the program is recursively computing all combinations & runs out of memory. Now this may well be simply because I haven't used the right GAP command. I'd appreciate it if someone would point out the correct way to use a built-in command if there is one. In the meantime I solved the problem a different way, namely I wrote a program that generates one combination at a time using only the preceding one. See below: [I carry along the combination number in position n+1 as well as the total number of combinations in position n+2 as that is convenient for further use.] InitComb:=function(m,n) local B,seq; B:=Binomial(m,n); seq:=[1..n]; Append(seq,[1]); Append(seq,[B]); return seq; end; NextCombination := function(m,n,seq) local i,j; if(seq[n+1]<=seq[n+2]) then seq[n+1]:=1+seq[n+1]; for i in [n,n-1..1] do if(seq[i] References: <201008061358.o76DwBQo014036@rkd.math.cornell.edu> Message-ID: Keith and forum Two things to try. 1. Run until you hit the "you've run out of memory" break loop. From in here you can access the local variables of the "Combinations" function. Grab however many you want, print to disk and start GAP again. 2. Try g:=Random(SymmetricGroup(m)); List([1..k],i->i^m); It's not systematic, but at least you can find a few random ones to test whatever you want. Joe Joe On Fri, Aug 6, 2010 at 9:58 AM, R. Keith Dennis wrote: > I've been trying to do some tests where I look at certain combinations of > subgroups and take intersections. I've been using > > Combinations([1..m],k); > > which works fine as long as Binomial(m,k) is small enough. When the number > is very large, then there is a memory problem & one can't even look at a > few > example combinations. Presumably the program is recursively computing all > combinations & runs out of memory. > > Now this may well be simply because I haven't used the right GAP command. > I'd appreciate it if someone would point out the correct way to use a > built-in command if there is one. > > In the meantime I solved the problem a different way, namely I wrote a > program that generates one combination at a time using only the preceding > one. See below: > > [I carry along the combination number in position n+1 as well as the > total number of combinations in position n+2 as that is convenient for > further use.] > > InitComb:=function(m,n) > local B,seq; > B:=Binomial(m,n); > seq:=[1..n]; > Append(seq,[1]); > Append(seq,[B]); > return seq; > end; > > NextCombination := function(m,n,seq) > local i,j; > if(seq[n+1]<=seq[n+2]) then > seq[n+1]:=1+seq[n+1]; > for i in [n,n-1..1] do > if(seq[i] seq[i]:=1+seq[i]; > for j in [i+1..n] do > seq[j]:=1+seq[j-1]; > od; > return seq; > fi; > od; > fi; > end; > > ListComb:=function(m,n) > local seq,test; > seq:=InitComb(m,n); > test:=true; > while(test) do > Print(seq,"\n"); > if(seq[n+1]=seq[n+2]) then > test:=false; > continue; > fi; > seq:=NextCombination(m,n,seq); > od; > end; > > If something equivalent to "NextCombination" is already available in GAP, > I'd appreciate learning that. If not, this are something similar might be > a useful addition to the next version. > > > The GAP manual says a lot about random generation of various kinds. No > doubt there must be a way to do the following or something similar > with a built-in command. What's the correct way to generate a random > permutation of a list? > > I've been using the following (more or less copying the idea from > perl): > > FisherYates:=function(seq) > local i,j,l,t; > # Fisher-Yates shuffle: > # generate a random permutation of array in place > l:=Length(seq); > for i in [l,l-1..1] do > j:=Random(1,i); > t:=seq[i]; > seq[i]:=seq[j]; > seq[j]:=t; > od; > return seq; > end; > > > thanks. > > Keith > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From e.obrien at auckland.ac.nz Mon Aug 9 09:51:24 2010 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Mon, 09 Aug 2010 20:51:24 +1200 Subject: [GAP Forum] Vacancy in Combinatorics / Graph Theory at the University of Auckland Message-ID: <4C5FC18C.60305@math.auckland.ac.nz> Dear forum, Applications are invited for a permanent position at the Lecturer/Senior Lecturer level in the Department of Mathematics, University of Auckland. This position is intended for candidates who have a PhD in Mathematics or a related discipline, and who can demonstrate a strong commitment to excellence in research and teaching at all levels of Mathematics. The successful applicant will have research interests in combinatorics or graph theory, or a field closely related to these. The Department of Mathematics offers a full range of courses at the undergraduate and postgraduate levels, and has a growing PhD programme and a vibrant research culture spanning pure and applied mathematics and mathematics education. It is closely affiliated to, and hosts the offices of, the New Zealand Institute for Mathematics and Its Applications (http://www.nzima.org). More details about the Department and this vacancy may be found at http://www.math.auckland.ac.nz/ Closing date: 20th August 2010 Informal inquiries: Professor Eamonn O'Brien From vdabbagh at sfu.ca Fri Aug 13 23:50:06 2010 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Fri, 13 Aug 2010 15:50:06 -0700 (PDT) Subject: [GAP Forum] list of small groups In-Reply-To: <729392051.6536461281739792722.JavaMail.root@jaguar7.sfu.ca> Message-ID: <11142792.6536561281739806260.JavaMail.root@jaguar7.sfu.ca> Dear GAP Forum, Does anybody know what type of ordering is used in the list of small groups given by the function AllSmallGroups? Regards Vahid ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ From wdjoyner at gmail.com Sat Aug 14 13:04:38 2010 From: wdjoyner at gmail.com (David Joyner) Date: Sat, 14 Aug 2010 08:04:38 -0400 Subject: [GAP Forum] new book on Computational group theory Message-ID: Hello Forum: I am posting this for Joachim Neubeuser: The Book: 'Representations of Groups, A Computational Approach' by Klaus Lux and Herbert Pahlings (Cambridge Studies in Advanced Mathematics 124, Cambridge University Press 2010, x+460 p) provides a joint development of both ordinary and modular representation theory together with the wealth of algorithms and their implementations that are playing such an important role in the recent development of the field. GAP programs are used and documented throughout the book. An important feature is that the book is accompanied by an own website http://www.math.rwth-aachen.de/~RepresentationsOfGroups which i.a. provides errata, solutions for the numerous exercises in the book and additional material. This feature will in particular allow further updating of this important text. This has also been posted to http://www.gap-system.org/Doc/references.html - David Joyner PS: The cambridge link for the book on the page http://www.math.rwth-aachen.de/~RepresentationsOfGroups does not work for me. However, the book is on amazon.com and there you can also find sample pages from inside the book, such as the table of contents. From csaba.schneider at gmail.com Sun Aug 15 20:02:58 2010 From: csaba.schneider at gmail.com (Csaba Schneider) Date: Sun, 15 Aug 2010 20:02:58 +0100 Subject: [GAP Forum] research opportunities in Portugal Message-ID: Dear colleagues I would like to draw your attention to post-doctoral research opportunities in Portugal. Postdoctoral positions for recent PhDs are advertised at the FCT website; see http://alfa.fct.mctes.pt/apoios/bolsas/concursos/individuais2010. You can apply online, the deadline is 6 September. You have to nominate a host institution that will have to send a letter of acceptance to the FCT. Another opportunity is within the Marie Curie Actions; see http://alfa.fct.mctes.pt/apoios/contratacaodoutorados/welcome2/ This is not yet actually advertised, the deadline will be later this year. The Center of Algebra at the University of Lisbon (http://caul.cii.fc.ul.pt) would welcome applications in the areas of group theory, semigroup theory, computational algebra, and/or related topics. Pls let me know if you are interested and I'll be very happy to help with the application process. Many thanks for your attention Csaba Schneider. From alexander.konovalov at gmail.com Sun Aug 15 20:56:37 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Sun, 15 Aug 2010 20:56:37 +0100 Subject: [GAP Forum] list of small groups In-Reply-To: <11142792.6536561281739806260.JavaMail.root@jaguar7.sfu.ca> References: <11142792.6536561281739806260.JavaMail.root@jaguar7.sfu.ca> Message-ID: <96F92D65-A17C-4D6C-9C57-98D82AC2721B@gmail.com> Dear Vahid, There is a function SmallGroupsInformation that will be helpful to answer this question. You will see that the ordering may vary dependently on the order of the group, for example: gap> SmallGroupsInformation(256); There are 56092 groups of order 256. They are sorted by their ranks. 1 is cyclic. 2 - 541 have rank 2. 542 - 6731 have rank 3. 6732 - 26972 have rank 4. 26973 - 55625 have rank 5. 55626 - 56081 have rank 6. 56082 - 56091 have rank 7. 56092 is elementary abelian. For the selection functions the values of the following attributes are precomputed and stored: IsAbelian, PClassPGroup, RankPGroup, FrattinifactorSize and FrattinifactorId. This size belongs to layer 2 of the SmallGroups library. IdSmallGroup is available for this size. gap> SmallGroupsInformation(105); There are 2 groups of order 105. 1 is of type 7:3x5. 2 is of type c105. The groups whose order factorises in at most 3 primes have been classified by O. Hoelder. This classification is used in the SmallGroups library. This size belongs to layer 1 of the SmallGroups library. IdSmallGroup is available for this size. gap> SmallGroupsInformation(2*5*7*9); There are 32 groups of order 630. They are sorted by their Frattini factors. 1 has Frattini factor [ 210, 1 ]. 2 has Frattini factor [ 210, 2 ]. 3 has Frattini factor [ 210, 3 ]. 4 has Frattini factor [ 210, 4 ]. 5 has Frattini factor [ 210, 5 ]. 6 has Frattini factor [ 210, 6 ]. 7 has Frattini factor [ 210, 7 ]. 8 has Frattini factor [ 210, 8 ]. 9 has Frattini factor [ 210, 9 ]. 10 has Frattini factor [ 210, 10 ]. 11 has Frattini factor [ 210, 11 ]. 12 has Frattini factor [ 210, 12 ]. 13 - 32 have trivial Frattini subgroup. For the selection functions the values of the following attributes are precomputed and stored: IsAbelian, IsNilpotentGroup, IsSupersolvableGroup, IsSolvableGroup, LGLength, FrattinifactorSize and FrattinifactorId. This size belongs to layer 2 of the SmallGroups library. IdSmallGroup is available for this size. gap> Best regards, Alexander On 13 Aug 2010, at 23:50, Vahid Dabbaghian wrote: > > Dear GAP Forum, > > Does anybody know what type of ordering is used in the list of small groups given by the function AllSmallGroups? > > Regards > Vahid > ____________________________________________ > Program Director > Modelling of Complex Social Systems (MoCSSy) > The IRMACS Centre (ASB 10905) > Simon Fraser University, BC Canada > Tel: 778-782-7854 > http://mocssy.irmacs.sfu.ca/ > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From imamaghan at yahoo.com Mon Aug 16 16:19:32 2010 From: imamaghan at yahoo.com (mohammad j.mamaghani) Date: Mon, 16 Aug 2010 08:19:32 -0700 (PDT) Subject: [GAP Forum] lack of big space Message-ID: <872363.90899.qm@web50805.mail.re2.yahoo.com> I would like to calculate the order of a subgroup of symmetric group S_2187 generated by two cycles of length 2187=3^7 using GAP, but gap has not enough space and does not accept all the members of the cycles .?Are there any ways to use GAP for this problem?best regards mamaghaniAllameh Tabatabaei university?dept of maths and ?statsTehran, Iran. From max at quendi.de Tue Aug 17 00:38:39 2010 From: max at quendi.de (Max Horn) Date: Tue, 17 Aug 2010 01:38:39 +0200 Subject: [GAP Forum] lack of big space In-Reply-To: <872363.90899.qm@web50805.mail.re2.yahoo.com> References: <872363.90899.qm@web50805.mail.re2.yahoo.com> Message-ID: Am 16.08.2010 um 17:19 schrieb mohammad j.mamaghani: > I would like to calculate the order of a subgroup of symmetric group S_2187 generated by two cycles of length 2187=3^7 using GAP, but gap has not enough space and does not accept all the members of the cycles . Are there any ways to use GAP for this problem?best regards mamaghaniAllameh Tabatabaei university dept of maths and statsTehran, Iran. Hi there, according to a result by John Dixon, two random permutations each moving n points with high probability generate the symmetric or alternating group on n points. To be more precise, the probability is a bit less than 1 - 1/n - 1/n^2 which is roughly 0.9995. In your case, of course only the alternating group is possible (you are looking at two cycles of odd order). Now of course your elements are (I assume) not random, but still, you could first try to somehow (dis)prove that you are looking at the alternating group. As it is, to determine the size of a permutation group, GAP computes a stabilizer chain. For an alternating group, the number of elements in such a stabilizer chain is huge, something in O(n^2). In addition, the larger n is, the more space you need to store the permutation, so the memory usage for a single permutation is O(n). This means memory usage is at least O(n^3), maybe worse. (Indeed, some empiric tests I just run seem to confirm this roughly). So it is no surprise that you run out of memory. One can save some memory using so-called "straight line programs" instead of plain permutations (the GAP manual has more information on these), at the cost of some speed, but I doubt it will help much -- you'd still need more than O(n^2) memory just for the stabilizer chain. But then again, maybe if your group is *not* the alternating group, perhaps it has a much shorter stabilizer chain, and you can get further this way. In summary, unless you happen to have strong reasons to believe that those two cycles generate a much, much, MUCH smaller group (say, if they commute :), it is probably hopeless to compute the order of the subgroup they generate directly by conventional methods. Cheers, Max From neunhoef at mcs.st-and.ac.uk Tue Aug 17 14:16:17 2010 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Tue, 17 Aug 2010 14:16:17 +0100 Subject: [GAP Forum] lack of big space In-Reply-To: <872363.90899.qm@web50805.mail.re2.yahoo.com> References: <872363.90899.qm@web50805.mail.re2.yahoo.com> Message-ID: <20100817131617.GA7300@mcs.st-and.ac.uk> Dear Mohammad j.mamaghani, as Max Horn already pointed out most of the time you will see the alternating or the symmetric group and indeed then GAP has problems computing a stabiliser chain if you simply call Size(g) in the following situation: gap> s := SymmetricGroup(2187); gap> x := PseudoRandom(s); gap> y := PseudoRandom(s); gap> g := Group(x,y); (this is a similar example, although not with 2187-cycles) However, you can very efficiently do gap> IsNaturalSymmetricGroup(g); true gap> IsNaturalAlternatingGroup(g); false which costs nearly no time and memory (very efficient special methods are used for these). If one of these returned true then the group knows its size without a stabiliser chain. Once both these calls return false it should be relatively safe to call gap> Size(g); since theoretical results imply that then your group is much smaller than Sym(2187) and - after all - it acts "only" on 2187 points. Then GAP should be able to compute a stabiliser chain readily. Another possibility is to use the recog package, which does this analysis automatically in its RecogniseGroup function. Note however that this package currently only provides Monte Carlo algorithms which might go wrong. Cheers, Max On Mon, Aug 16, 2010 at 08:19:32AM -0700, mohammad j.mamaghani wrote: > I would like to calculate the order of a subgroup of symmetric group S_2187 generated by two cycles of length 2187=3^7 using GAP, but gap has not enough space and does not accept all the members of the cycles .?Are there any ways to use GAP for this problem?best regards mamaghaniAllameh Tabatabaei university?dept of maths and ?statsTehran, Iran. > > > > _______________________________________________ > Forum mailing list > Forum at 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 max at quendi.de Tue Aug 17 16:10:43 2010 From: max at quendi.de (Max Horn) Date: Tue, 17 Aug 2010 17:10:43 +0200 Subject: [GAP Forum] Questions on modules and coefficient rings Message-ID: <2AC6596D-118B-4125-A502-7062F1C549E8@quendi.de> Hi there, I am currently working on a GAP package of my own. One of the things I am doing for that is writing my own kind of "(free) module" for group rings (for efficiency reasons I cannot use the default GAP representation) and doing so, I came across some things in GAP which I don't quite understand, and where I hope somebody can enlighten me: * For algebra modules, GAP does this: DeclareProperty( "IsLeftAlgebraModule", IsLeftModule ); DeclareProperty( "IsRightAlgebraModule", IsLeftModule ); So if I understand this correctly, for GAP, right algebra modules are a special kind of left modules? Why? I would have expected IsRightModule there. * GAP allows CoefficientsRing only for polynomial rings: DeclareAttribute( "CoefficientsRing", IsPolynomialRing ); But for free magma rings, one has to use LeftActingDomain -- this got me stuck at first (luckily chapter 63 of the GAP manual quickly helped with that). Still: Is there a particular reason for that distinction? Similarly, why can one only use LeftActingDomaing, but not also RightActingDomain (which is undocumented for some reason), on a free magma ring? The coefficient ring does act from both side on the free magma ring, and GAP happily allows me to do so. * I make heavy use of group rings, and it is very frustrating that every invocation of GroupRing(Integers, G) returns a new, different object. For now I am working around that by defining a global function IntegralGroupRing, which stores the group ring in the family of the group G. But this is not very elegant, and furthermore fails if the user uses GroupRing directly. Is there any hope that GroupRing will be changed (in future GAP versions) to return compatible (or even identical) group rings when invoked with identical parameters? And in the meantime: Suppose I want to write a function or method that wants to take elements as parameter which are vectors of group ring elements (i.e. elements of a free module over a group ring): How would I detect such input (independently of concrete group ring, coefficient ring and group), e.g. for method selection? Thanks, Max From dima at ntu.edu.sg Thu Aug 19 15:40:48 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Thu, 19 Aug 2010 15:40:48 +0100 Subject: [GAP Forum] SubAlgebraModule of an eigenvector of the algebra element? Message-ID: Dear all, I need to construct the action of a matrix algebra A on an A-invariant subspace, which is spanned by an eigenvector of one of matrix generators. And I get a weird type clash that I don't know how to get around: regmats := [ [ [ 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 ] ], [ [ 0, 0, 4, 0 ], [ 1, -2, 2, -4 ], [ -1, 0, -2, 0 ], [ -1/2, 1, 0, 0 ] ], [ [ 1, -2, 0, -4 ], [ 0, 0, 2, 0 ], [ 0, 1, 1, 0 ], [ -1/2, 0, -1, 0 ] ] ]; es := First(Eigenspaces(Rationals, TransposedMat(regmats[1])),x->Dimension(x)=2); A := AlgebraWithOne(Rationals, regmats); M:=LeftAlgebraModule(A,\*,Rationals^4); V:=SubAlgebraModule(M,[Basis(es)[1]]); and I get at the last line: Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `SubAlgebraModule' on 2 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> while gap> Basis(es)[1]; [ 1, 1, 0, 0 ] and also gap> BM:=Basis(M); Basis( <4-dimensional left-module over >, [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ] ) gap> V:=SubAlgebraModule(M,[BM[1]+BM[2]]); > gap> MatrixOfAction(Basis(V),regmats[1]); [ [ 2, 2 ], [ 0, -1 ] ] does what it should. But I do not understand how to write GAP code to compute the decomposition of my vector Basis(es)[1] in the basis BM of M ! Many thanks in advance, Dmitrii Pasechnik CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From degraaf at science.unitn.it Thu Aug 19 17:11:04 2010 From: degraaf at science.unitn.it (degraaf at science.unitn.it) Date: Thu, 19 Aug 2010 18:11:04 +0200 Subject: [GAP Forum] [GAP Support] SubAlgebraModule of an eigenvector of the algebra element? Message-ID: <20100819181104.w2xo5ice80k4oow0@www3.unitn.it> Dear Dima, One way is to set up a map from the vector space to the module. In your example: gap> regmats := [ > [ [ 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 ] ], > $0 ] ], > $ ] ] ]; [ [ [ 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 ] ], [ [ 0, 0, 4, 0 ], [ 1, -2, 2, -4 ], [ -1, 0, -2, 0 ], [ -1/2, 1, 0, 0 ] ], [ [ 1, -2, 0, -4 ], [ 0, 0, 2, 0 ], [ 0, 1, 1, 0 ], [ -1/2, 0, -1, 0 ] ] ] gap> es := First(Eigenspaces(Rationals, > TransposedMat(regmats[1])),x->Dimension(x)=2); gap> A := AlgebraWithOne(Rationals, regmats); gap> W:= Rationals^4; ( Rationals^4 ) gap> M:=LeftAlgebraModule(A,\*,W); > gap> f:= LeftModuleHomomorphismByImages( W, M, Basis(W), Basis(M) ); CanonicalBasis( ( Rationals^4 ) ) -> Basis( < 4-dimensional left-module over >, [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ] ) gap> V:=SubAlgebraModule(M,[Image( f, Basis(es)[1] )]); > gap> MatrixOfAction(Basis(V),regmats[1]); [ [ 2, 2 ], [ 0, -1 ] ] Does that help you? Best wishes, Willem On Thu, Aug 19, 2010 at 4:40 PM, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear all, > > I need to construct the action of a matrix algebra A on an A-invariant > subspace, > which is spanned by an eigenvector of one of matrix generators. > And I get a weird type clash that I don't know how to get around: > > regmats := [ > [ [ 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 ] ], > [ [ 0, 0, 4, 0 ], [ 1, -2, 2, -4 ], [ -1, 0, -2, 0 ], [ -1/2, 1, 0, 0 ] ], > [ [ 1, -2, 0, -4 ], [ 0, 0, 2, 0 ], [ 0, 1, 1, 0 ], [ -1/2, 0, -1, 0 ] ] ]; > es := First(Eigenspaces(Rationals, > TransposedMat(regmats[1])),x->Dimension(x)=2); > A := AlgebraWithOne(Rationals, regmats); > M:=LeftAlgebraModule(A,\*,Rationals^4); > V:=SubAlgebraModule(M,[Basis(es)[1]]); > > and I get at the last line: > > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 1st choice method found for `SubAlgebraModule' on 2 > 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> > > while > gap> Basis(es)[1]; > [ 1, 1, 0, 0 ] > and also > gap> BM:=Basis(M); > Basis( <4-dimensional left-module over 5 generators>>, [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], > [ 0, 0, 0, 1 ] ] ) > gap> V:=SubAlgebraModule(M,[BM[1]+BM[2]]); > > > gap> MatrixOfAction(Basis(V),regmats[1]); > [ [ 2, 2 ], [ 0, -1 ] ] > > does what it should. > > But I do not understand how to write GAP code to compute the decomposition of > my vector Basis(es)[1] in the basis BM of M ! > > Many thanks in advance, > Dmitrii Pasechnik > > CONFIDENTIALITY: This email is intended solely for the person(s) > named and may be confidential and/or privileged. If you are not the > intended recipient, please delete it, notify us and do not copy, > use, or disclose its content. Thank you. > > Towards A Sustainable Earth: Print Only When Necessary > > _______________________________________________ > Support mailing list > Support at gap-system.org > http://mail.gap-system.org/mailman/listinfo/support > From dima at ntu.edu.sg Thu Aug 19 18:03:08 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Thu, 19 Aug 2010 18:03:08 +0100 Subject: [GAP Forum] [GAP Support] SubAlgebraModule of an eigenvector of the algebra element? In-Reply-To: <20100819181104.w2xo5ice80k4oow0@www3.unitn.it> References: <20100819181104.w2xo5ice80k4oow0@www3.unitn.it> Message-ID: Dear Willem, Thanks! This is certainly better than adding elements of Basis(M) with coefficients given by Basis(es)[1] that I had to put in my code... [...] > gap> W:= Rationals^4; > gap> M:=LeftAlgebraModule(A,\*,W); > gap> f:= LeftModuleHomomorphismByImages( W, M, Basis(W), Basis(M) ); > gap> V:=SubAlgebraModule(M,[Image( f, Basis(es)[1] )]); Best, Dima CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From mim_ at op.pl Mon Aug 23 09:57:02 2010 From: mim_ at op.pl (mim_ at op.pl) Date: Mon, 23 Aug 2010 10:57:02 +0200 Subject: [GAP Forum] GAP on Symbian OS Message-ID: Hello, I wonder whether it is possible to run GAP on Symbian OS which run on Nokia phones. I have received lately Nokia E71 and I'm eager to use GAP in metro or bus while going to work :) I found following web page for porting applications from Linux to Symbian. http://developer.symbian.org/wiki/index.php/Porting_from_Linux_to_Symbian_Platform Do you think this can be done for GAP ? Regards, Marek Mitros From darthandrus at gmail.com Mon Aug 23 06:43:30 2010 From: darthandrus at gmail.com (Ivan Andrus) Date: Mon, 23 Aug 2010 07:43:30 +0200 Subject: [GAP Forum] GAP mode for emacs Message-ID: <388A5A0F-517B-4C4C-A538-DC5E040266DC@gmail.com> I have been using gap-mode for emacs version 1.96 by Michael Smith. There are a few things that I would like to add, principally syntax highlighting. Has anyone else done this that I couldn't find? Would there be interest in an updated version with some improvements? -Ivan Andrus From rvf0068 at gmail.com Tue Aug 24 01:39:29 2010 From: rvf0068 at gmail.com (Rafael) Date: Mon, 23 Aug 2010 19:39:29 -0500 Subject: [GAP Forum] GAP mode for emacs References: <388A5A0F-517B-4C4C-A538-DC5E040266DC@gmail.com> Message-ID: <87sk24etdq.fsfhello@somewhere.com> Ivan Andrus writes: > I have been using gap-mode for emacs version 1.96 by Michael Smith. > There are a few things that I would like to add, principally syntax > highlighting. Has anyone else done this that I couldn't find? Would > there be interest in an updated version with some improvements? This is what I use. It is really far from perfect, but it is something... (defun add-custom-keyw() "adds a few special keywords for gap mode" (font-lock-add-keywords nil '( ("\\bif\\b\\|then\\|else\\|elseif" . 'font-lock-keyword-face ) ("while\\|\\bdo\\b\\|\\bfi\\b" . 'font-lock-keyword-face ) ("\\bend\\b\\|return\\|\\bnot\\b\\|function\\|\\blocal\\b" . 'font-lock-keyword-face ) ("\\bfor\\b\\|\\bin\\b\\|\\bod\\b\\|\\bmod\\b\\|\\band\\b" . 'font-lock-keyword-face ) ("true\\|false" . 'font-lock-constant-face ) ("Print\\|Length\\|\\bOrbits\\b\\|Subsets\\|Difference" . 'font-lock-function-name-face ) ("List\\|OnSets\\|Group\\|Intersection" . 'font-lock-function-name-face ) ("IsTransitive\\|OnTuples\\|Concatenation\\|Filtered" . 'font-lock-function-name-face ) ("Add\\|Sum\\|SymmetricGroup\\|Filtered\\|RightCosets" . 'font-lock-function-name-face ) ("Eigenvalues\\|Rationals\\|" . 'font-lock-function-name-face ) ("\\bCharacteristicPolynomial\\b" . 'font-lock-function-name-face ) ("Filtered\\|RightCosets" . 'font-lock-function-name-face ) ("#.*" . font-lock-comment-face) ))) (add-hook 'gap-mode-hook 'add-custom-keyw) From A.Egri-Nagy at herts.ac.uk Tue Aug 24 10:00:39 2010 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Tue, 24 Aug 2010 10:00:39 +0100 Subject: [GAP Forum] GAP mode for emacs In-Reply-To: <87sk24etdq.fsfhello@somewhere.com> References: <388A5A0F-517B-4C4C-A538-DC5E040266DC@gmail.com> <87sk24etdq.fsfhello@somewhere.com> Message-ID: Hi, It is crazy but I've been using python-mode for gap files. It gets the comments and strings right, at least... attila On Tue, Aug 24, 2010 at 1:39 AM, Rafael wrote: > Ivan Andrus > writes: > > > I have been using gap-mode for emacs version 1.96 by Michael Smith. > > There are a few things that I would like to add, principally syntax > > highlighting. Has anyone else done this that I couldn't find? Would > > there be interest in an updated version with some improvements? > > This is what I use. It is really far from perfect, but it is something... > > (defun add-custom-keyw() > "adds a few special keywords for gap mode" > (font-lock-add-keywords nil > '( > ("\\bif\\b\\|then\\|else\\|elseif" . 'font-lock-keyword-face ) > ("while\\|\\bdo\\b\\|\\bfi\\b" . 'font-lock-keyword-face ) > ("\\bend\\b\\|return\\|\\bnot\\b\\|function\\|\\blocal\\b" . > 'font-lock-keyword-face ) > ("\\bfor\\b\\|\\bin\\b\\|\\bod\\b\\|\\bmod\\b\\|\\band\\b" . > 'font-lock-keyword-face ) > ("true\\|false" . 'font-lock-constant-face ) > ("Print\\|Length\\|\\bOrbits\\b\\|Subsets\\|Difference" . > 'font-lock-function-name-face ) > ("List\\|OnSets\\|Group\\|Intersection" . > 'font-lock-function-name-face ) > ("IsTransitive\\|OnTuples\\|Concatenation\\|Filtered" . > 'font-lock-function-name-face ) > ("Add\\|Sum\\|SymmetricGroup\\|Filtered\\|RightCosets" . > 'font-lock-function-name-face ) > ("Eigenvalues\\|Rationals\\|" . 'font-lock-function-name-face ) > ("\\bCharacteristicPolynomial\\b" . 'font-lock-function-name-face ) > ("Filtered\\|RightCosets" . 'font-lock-function-name-face ) > ("#.*" . font-lock-comment-face) > ))) > (add-hook 'gap-mode-hook 'add-custom-keyw) > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From darthandrus at gmail.com Tue Aug 24 13:11:07 2010 From: darthandrus at gmail.com (Ivan Andrus) Date: Tue, 24 Aug 2010 14:11:07 +0200 Subject: [GAP Forum] GAP mode for emacs In-Reply-To: References: <388A5A0F-517B-4C4C-A538-DC5E040266DC@gmail.com> <87sk24etdq.fsfhello@somewhere.com> Message-ID: Cool, thanks Rafael. I think I may create an improved gap-mode which includes this (or some derivative thereof, though it may take some time since I'm a bit busy right now. -Ivan On Aug 24, 2010, at 11:00 AM, Attila Egri-Nagy wrote: > Hi, > > It is crazy but I've been using python-mode for gap files. It gets the > comments and strings right, at least... > > attila > > > On Tue, Aug 24, 2010 at 1:39 AM, Rafael wrote: > >> Ivan Andrus >> writes: >> >>> I have been using gap-mode for emacs version 1.96 by Michael Smith. >>> There are a few things that I would like to add, principally syntax >>> highlighting. Has anyone else done this that I couldn't find? Would >>> there be interest in an updated version with some improvements? >> >> This is what I use. It is really far from perfect, but it is something... >> >> (defun add-custom-keyw() >> "adds a few special keywords for gap mode" >> (font-lock-add-keywords nil >> '( >> ("\\bif\\b\\|then\\|else\\|elseif" . 'font-lock-keyword-face ) >> ("while\\|\\bdo\\b\\|\\bfi\\b" . 'font-lock-keyword-face ) >> ("\\bend\\b\\|return\\|\\bnot\\b\\|function\\|\\blocal\\b" . >> 'font-lock-keyword-face ) >> ("\\bfor\\b\\|\\bin\\b\\|\\bod\\b\\|\\bmod\\b\\|\\band\\b" . >> 'font-lock-keyword-face ) >> ("true\\|false" . 'font-lock-constant-face ) >> ("Print\\|Length\\|\\bOrbits\\b\\|Subsets\\|Difference" . >> 'font-lock-function-name-face ) >> ("List\\|OnSets\\|Group\\|Intersection" . >> 'font-lock-function-name-face ) >> ("IsTransitive\\|OnTuples\\|Concatenation\\|Filtered" . >> 'font-lock-function-name-face ) >> ("Add\\|Sum\\|SymmetricGroup\\|Filtered\\|RightCosets" . >> 'font-lock-function-name-face ) >> ("Eigenvalues\\|Rationals\\|" . 'font-lock-function-name-face ) >> ("\\bCharacteristicPolynomial\\b" . 'font-lock-function-name-face ) >> ("Filtered\\|RightCosets" . 'font-lock-function-name-face ) >> ("#.*" . font-lock-comment-face) >> ))) >> (add-hook 'gap-mode-hook 'add-custom-keyw) >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From A.Egri-Nagy at herts.ac.uk Wed Aug 25 19:03:23 2010 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Wed, 25 Aug 2010 19:03:23 +0100 Subject: [GAP Forum] bad bags Message-ID: Hello, We have been running large scale computation in GAP but sometimes we get warning messages like #W bad bag id 608 found, 0 saved and then execution stops. Clearly this message comes from the garbage collector, but what does it mean? Thanks! attila egri-nagy From alexk at mcs.st-andrews.ac.uk Sun Aug 29 15:29:02 2010 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sun, 29 Aug 2010 15:29:02 +0100 Subject: [GAP Forum] bad bags In-Reply-To: References: Message-ID: Dear Attila, Are you attempting to save the workspace when this happens? The only line in the GAP kernel which may produce such message is in the saving workspace mechanism, and its meaning is explained in the documentation for SaveWorkspace (see ?SaveWorkspace in GAP): === SaveWorkspace may sometimes produce warning messages, as in gap> SaveWorkspace("b5"); #W bad bag id 4 found, 0 saved #W bad bag id 20 found, 0 saved true A small number of such messages can probably be ignored (they arise because the garbage collector may not always collect all dead objects, and dead objects may contain data that SaveWorkspace does not know how to process). === Best wishes, Alexander On 25 Aug 2010, at 19:03, Attila Egri-Nagy wrote: > Hello, > > We have been running large scale computation in GAP but sometimes we get > warning messages like > > #W bad bag id 608 found, 0 saved > > and then execution stops. Clearly this message comes from the garbage > collector, but what does it mean? > > Thanks! > > attila egri-nagy > _______________________________________________ > Forum mailing list > Forum at 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 From A.Egri-Nagy at herts.ac.uk Sun Aug 29 19:13:24 2010 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Sun, 29 Aug 2010 20:13:24 +0200 Subject: [GAP Forum] bad bags In-Reply-To: References: Message-ID: Dear Alexander, Yes, actually in our script we save workspaces at several stages. I checked it again and it turns out that we get this message when we run out of memory then the next command tries to save workspace. I guess that explains that. Thank you for your help and sorry for missing that documentation entry. best, attila On Sun, Aug 29, 2010 at 4:29 PM, Alexander Konovalov wrote: > Dear Attila, > > Are you attempting to save the workspace when this happens? > > The only line in the GAP kernel which may produce such message is in the > saving workspace mechanism, and its meaning is explained in the documentation > for SaveWorkspace (see ?SaveWorkspace in GAP): > > === > SaveWorkspace may sometimes produce warning messages, as in > > gap> SaveWorkspace("b5"); > #W bad bag id 4 found, 0 saved > #W bad bag id 20 found, 0 saved > true > > A small number of such messages can probably be ignored (they arise because > the garbage collector may not always collect all dead objects, and dead objects > may contain data that SaveWorkspace does not know how to process). > === > > Best wishes, > Alexander > > > On 25 Aug 2010, at 19:03, Attila Egri-Nagy wrote: > >> Hello, >> >> We have been running large scale computation in GAP but sometimes we get >> warning messages like >> >> #W bad bag id 608 found, 0 saved >> >> and then execution stops. Clearly this message comes from the garbage >> collector, but what does it mean? >> >> Thanks! >> >> attila egri-nagy >> _______________________________________________ >> Forum mailing list >> Forum at 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 > > > > > > > > From J.Howie at ma.hw.ac.uk Mon Aug 30 09:08:27 2010 From: J.Howie at ma.hw.ac.uk (Jim Howie) Date: Mon, 30 Aug 2010 09:08:27 +0100 Subject: [GAP Forum] Lectureship at Heriot-Watt In-Reply-To: <201008061358.o76DwBQo014036@rkd.math.cornell.edu> References: <201008061358.o76DwBQo014036@rkd.math.cornell.edu> Message-ID: <4C7B66FB.4030408@ma.hw.ac.uk> Dear Colleague, Heriot-Watt University is advertising a lectureship in pure mathematics. I'd be grateful if you would pass this message on to anyone who may be interested. Thanks in advance, Jim Howie Head of Mathematics Heriot-Watt University -------------------------------------------------------- Lectureship in Pure Mathematics - Ref 162/10/W Applications are invited for the post of Lecturer in Pure Mathematics. Candidates should have a strong track record in some branch of pure mathematics that will contribute to the dynamic mathematics research environment within the Maxwell Institute, and be able to engage in our undergraduate and postgraduate teaching programmes. The position is available from January 2011, or a mutually agreed date thereafter. Informal enquiries about this position may be made to the head of department, Professor Jim Howie (tel +44 (0) 131 451 3240, email J.Howie at hw.ac.uk) Ref 162/10/W Closing date: 30 September 2010 Further details available at http://www.hw.ac.uk/hr/v_academic.php#16210 -- Heriot-Watt University is a Scottish charity registered under charity number SC000278. From elahehkhamseh at gmail.com Mon Sep 13 12:27:36 2010 From: elahehkhamseh at gmail.com (Elaheh khamseh) Date: Mon, 13 Sep 2010 15:57:36 +0430 Subject: [GAP Forum] question Message-ID: Dears Let G be a semidirect product of a normal subgroup elementery abelian group of order p^4 and a cyclic group of order p. How can I copmute its Schur multiplier ? Do we have any information about the Schur multiplier of non-abelian p-groups of order p^5? Yours; E. Khamseh. From graham.ellis at nuigalway.ie Tue Sep 14 18:01:49 2010 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Tue, 14 Sep 2010 18:01:49 +0100 Subject: [GAP Forum] algorithmic algebraic topology References: Message-ID: <47C2E007B3E98F4E8BBC7997F007CE1308BC39DA@EVS1.ac.nuigalway.ie> Dear Forum, I hope it's OK to use this forum to advertize the following call for papers on algorithmic and applied aspects of algebraic topology (including group theory). Graham School of Mathematics, Statistics and Applied Mathematics National University of Ireland, Galway http://hamilton.nuigalway.ie CALL FOR PAPERS APPLICABLE ALGEBRA IN ENGINEERING, COMMUNICATION AND COMPUTING SPECIAL ISSUE ON COMPUTER ALGEBRA IN ALGEBRAIC TOPOLOGY AND ITS APPLICATIONS Guest Editors: Graham Ellis, Eduardo S?enz-de-Cabez?n Algebraic Topology is an area of pure mathematics with deep algebraic, geometric and topological roots. Advances in computer science, particularly in symbolic computation and manipulation, have increased the computability of the concepts of algebraic topology to an extent that they are now increasingly finding real life applications in areas such as data analysis, dynamical systems, robotics, computer vision, communications, large scale networks, concurrent computation, comparative genomics and many other areas. This special issue is devoted to papers on potential and actual applications of algebraic topology as well as to papers on computational techniques and problems related to algorithmic algebraic topology. Contributions are welcome on: - Potential applications of algebraic topology in mathematics, computer science,physics, engineering, industry, communications, business and other areas. - Actual applications of algebraic topology. - All computational aspects of algebraic topology. Fields of application include but are not restricted to: ?Coding theory ?Combinatorics ?Commutative algebra ?Computer science, including algorithms and distributed computing ?Data analysis ?Differential systems ?Digital images ?Discrete and computational geometry ?Dynamical systems ?Electromagnetism ?Effective homology ?Graph theory ?Group theory ?Medical sciences ?Persistent homology ?Physics ?Reliability theory ?Robotics ?Statistics Paper submissions should follow the guidelines for AAECC submissions, see http://www.springer.com/computer/theoretical+computer+science/journal/200 Submissions can be sent to either of the editors: Graham Ellis, graham.ellis at nuigalway.ie Eduardo S?enz-de-Cabez?n, eduardo.saenz-de-cabezon at unirioja.es All the papers will be refereed according to the AAECC standards. DEADLINE: January 3, 2011 From zahra.sheikhaleslami at gmail.com Thu Sep 16 09:38:32 2010 From: zahra.sheikhaleslami at gmail.com (zahra sheikhaleslami) Date: Thu, 16 Sep 2010 13:08:32 +0430 Subject: [GAP Forum] Forum Digest, Vol 82, Issue 1 In-Reply-To: References: Message-ID: hi i find gap software plese guid me to work with it On 9/14/10, forum-request at gap-system.org wrote: > Send Forum mailing list submissions to > forum at 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 at mail.gap-system.org > > You can reach the person managing the list at > forum-owner at mail.gap-system.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of Forum digest..." > > > Today's Topics: > > 1. Re: GAP mode for emacs (Attila Egri-Nagy) > 2. Re: GAP mode for emacs (Ivan Andrus) > 3. bad bags (Attila Egri-Nagy) > 4. Re: bad bags (Alexander Konovalov) > 5. Re: bad bags (Attila Egri-Nagy) > 6. Lectureship at Heriot-Watt (Jim Howie) > 7. question (Elaheh khamseh) > 8. algorithmic algebraic topology (Ellis, Grahamj) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 24 Aug 2010 10:00:39 +0100 > From: Attila Egri-Nagy > Cc: forum at gap-system.org > Subject: Re: [GAP Forum] GAP mode for emacs > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > Hi, > > It is crazy but I've been using python-mode for gap files. It gets the > comments and strings right, at least... > > attila > > > On Tue, Aug 24, 2010 at 1:39 AM, Rafael wrote: > >> Ivan Andrus >> writes: >> >> > I have been using gap-mode for emacs version 1.96 by Michael Smith. >> > There are a few things that I would like to add, principally syntax >> > highlighting. Has anyone else done this that I couldn't find? Would >> > there be interest in an updated version with some improvements? >> >> This is what I use. It is really far from perfect, but it is something... >> >> (defun add-custom-keyw() >> "adds a few special keywords for gap mode" >> (font-lock-add-keywords nil >> '( >> ("\\bif\\b\\|then\\|else\\|elseif" . 'font-lock-keyword-face ) >> ("while\\|\\bdo\\b\\|\\bfi\\b" . 'font-lock-keyword-face ) >> ("\\bend\\b\\|return\\|\\bnot\\b\\|function\\|\\blocal\\b" . >> 'font-lock-keyword-face ) >> ("\\bfor\\b\\|\\bin\\b\\|\\bod\\b\\|\\bmod\\b\\|\\band\\b" . >> 'font-lock-keyword-face ) >> ("true\\|false" . 'font-lock-constant-face ) >> ("Print\\|Length\\|\\bOrbits\\b\\|Subsets\\|Difference" . >> 'font-lock-function-name-face ) >> ("List\\|OnSets\\|Group\\|Intersection" . >> 'font-lock-function-name-face ) >> ("IsTransitive\\|OnTuples\\|Concatenation\\|Filtered" . >> 'font-lock-function-name-face ) >> ("Add\\|Sum\\|SymmetricGroup\\|Filtered\\|RightCosets" . >> 'font-lock-function-name-face ) >> ("Eigenvalues\\|Rationals\\|" . 'font-lock-function-name-face ) >> ("\\bCharacteristicPolynomial\\b" . 'font-lock-function-name-face ) >> ("Filtered\\|RightCosets" . 'font-lock-function-name-face ) >> ("#.*" . font-lock-comment-face) >> ))) >> (add-hook 'gap-mode-hook 'add-custom-keyw) >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > ------------------------------ > > Message: 2 > Date: Tue, 24 Aug 2010 14:11:07 +0200 > From: Ivan Andrus > To: GAP Forum > Subject: Re: [GAP Forum] GAP mode for emacs > Message-ID: > Content-Type: text/plain; charset=us-ascii > > Cool, thanks Rafael. I think I may create an improved gap-mode which > includes this (or some derivative thereof, though it may take some time > since I'm a bit busy right now. > > -Ivan > > On Aug 24, 2010, at 11:00 AM, Attila Egri-Nagy wrote: > >> Hi, >> >> It is crazy but I've been using python-mode for gap files. It gets the >> comments and strings right, at least... >> >> attila >> >> >> On Tue, Aug 24, 2010 at 1:39 AM, Rafael wrote: >> >>> Ivan Andrus >>> writes: >>> >>>> I have been using gap-mode for emacs version 1.96 by Michael Smith. >>>> There are a few things that I would like to add, principally syntax >>>> highlighting. Has anyone else done this that I couldn't find? Would >>>> there be interest in an updated version with some improvements? >>> >>> This is what I use. It is really far from perfect, but it is something... >>> >>> (defun add-custom-keyw() >>> "adds a few special keywords for gap mode" >>> (font-lock-add-keywords nil >>> '( >>> ("\\bif\\b\\|then\\|else\\|elseif" . 'font-lock-keyword-face ) >>> ("while\\|\\bdo\\b\\|\\bfi\\b" . 'font-lock-keyword-face ) >>> ("\\bend\\b\\|return\\|\\bnot\\b\\|function\\|\\blocal\\b" . >>> 'font-lock-keyword-face ) >>> ("\\bfor\\b\\|\\bin\\b\\|\\bod\\b\\|\\bmod\\b\\|\\band\\b" . >>> 'font-lock-keyword-face ) >>> ("true\\|false" . 'font-lock-constant-face ) >>> ("Print\\|Length\\|\\bOrbits\\b\\|Subsets\\|Difference" . >>> 'font-lock-function-name-face ) >>> ("List\\|OnSets\\|Group\\|Intersection" . >>> 'font-lock-function-name-face ) >>> ("IsTransitive\\|OnTuples\\|Concatenation\\|Filtered" . >>> 'font-lock-function-name-face ) >>> ("Add\\|Sum\\|SymmetricGroup\\|Filtered\\|RightCosets" . >>> 'font-lock-function-name-face ) >>> ("Eigenvalues\\|Rationals\\|" . 'font-lock-function-name-face ) >>> ("\\bCharacteristicPolynomial\\b" . 'font-lock-function-name-face ) >>> ("Filtered\\|RightCosets" . 'font-lock-function-name-face ) >>> ("#.*" . font-lock-comment-face) >>> ))) >>> (add-hook 'gap-mode-hook 'add-custom-keyw) >>> >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >>> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > > > > ------------------------------ > > Message: 3 > Date: Wed, 25 Aug 2010 19:03:23 +0100 > From: Attila Egri-Nagy > To: GAP Forum > Subject: [GAP Forum] bad bags > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > Hello, > > We have been running large scale computation in GAP but sometimes we get > warning messages like > > #W bad bag id 608 found, 0 saved > > and then execution stops. Clearly this message comes from the garbage > collector, but what does it mean? > > Thanks! > > attila egri-nagy > > > ------------------------------ > > Message: 4 > Date: Sun, 29 Aug 2010 15:29:02 +0100 > From: Alexander Konovalov > To: Attila Egri-Nagy > Cc: GAP Forum > Subject: Re: [GAP Forum] bad bags > Message-ID: > Content-Type: text/plain; charset=us-ascii > > Dear Attila, > > Are you attempting to save the workspace when this happens? > > The only line in the GAP kernel which may produce such message is in the > saving workspace mechanism, and its meaning is explained in the > documentation > for SaveWorkspace (see ?SaveWorkspace in GAP): > > === > SaveWorkspace may sometimes produce warning messages, as in > > gap> SaveWorkspace("b5"); > #W bad bag id 4 found, 0 saved > #W bad bag id 20 found, 0 saved > true > > A small number of such messages can probably be ignored (they arise because > the garbage collector may not always collect all dead objects, and dead > objects > may contain data that SaveWorkspace does not know how to process). > === > > Best wishes, > Alexander > > > On 25 Aug 2010, at 19:03, Attila Egri-Nagy wrote: > >> Hello, >> >> We have been running large scale computation in GAP but sometimes we get >> warning messages like >> >> #W bad bag id 608 found, 0 saved >> >> and then execution stops. Clearly this message comes from the garbage >> collector, but what does it mean? >> >> Thanks! >> >> attila egri-nagy >> _______________________________________________ >> Forum mailing list >> Forum at 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 > > > > > > > > > > > ------------------------------ > > Message: 5 > Date: Sun, 29 Aug 2010 20:13:24 +0200 > From: Attila Egri-Nagy > To: Alexander Konovalov > Cc: GAP Forum > Subject: Re: [GAP Forum] bad bags > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > Dear Alexander, > > Yes, actually in our script we save workspaces at several stages. I > checked it again and it turns out that we get this message when we run > out of memory then the next command tries to save workspace. I guess > that explains that. > > Thank you for your help and sorry for missing that documentation entry. > > best, > attila > > > > On Sun, Aug 29, 2010 at 4:29 PM, Alexander Konovalov > wrote: >> Dear Attila, >> >> Are you attempting to save the workspace when this happens? >> >> The only line in the GAP kernel which may produce such message is in the >> saving workspace mechanism, and its meaning is explained in the >> documentation >> for SaveWorkspace (see ?SaveWorkspace in GAP): >> >> === >> SaveWorkspace may sometimes produce warning messages, as in >> >> gap> SaveWorkspace("b5"); >> #W bad bag id 4 found, 0 saved >> #W bad bag id 20 found, 0 saved >> true >> >> A small number of such messages can probably be ignored (they arise >> because >> the garbage collector may not always collect all dead objects, and dead >> objects >> may contain data that SaveWorkspace does not know how to process). >> === >> >> Best wishes, >> Alexander >> >> >> On 25 Aug 2010, at 19:03, Attila Egri-Nagy wrote: >> >>> Hello, >>> >>> We have been running large scale computation in GAP but sometimes we get >>> warning messages like >>> >>> #W bad bag id 608 found, 0 saved >>> >>> and then execution stops. Clearly this message comes from the garbage >>> collector, but what does it mean? >>> >>> Thanks! >>> >>> attila egri-nagy >>> _______________________________________________ >>> Forum mailing list >>> Forum at 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 >> >> >> >> >> >> >> >> > > > > ------------------------------ > > Message: 6 > Date: Mon, 30 Aug 2010 09:08:27 +0100 > From: Jim Howie > To: forum at gap-system.org > Subject: [GAP Forum] Lectureship at Heriot-Watt > Message-ID: <4C7B66FB.4030408 at ma.hw.ac.uk> > Content-Type: text/plain; charset=ISO-8859-1; format=flowed > > Dear Colleague, > > Heriot-Watt University is advertising a lectureship in pure > mathematics. I'd be grateful if you would pass this message on > to anyone who may be interested. > > Thanks in advance, > > Jim Howie > Head of Mathematics > Heriot-Watt University > > -------------------------------------------------------- > Lectureship in Pure Mathematics - Ref 162/10/W > > Applications are invited for the post of Lecturer in Pure Mathematics. > Candidates should have a strong track record in some branch of pure > mathematics that will contribute to the dynamic mathematics research > environment within the Maxwell Institute, and be able to engage in our > undergraduate and postgraduate teaching programmes. > > The position is available from January 2011, or a mutually agreed date > thereafter. > > Informal enquiries about this position may be made to the head of > department, Professor Jim Howie (tel +44 (0) 131 451 3240, email > J.Howie at hw.ac.uk) > > Ref 162/10/W > Closing date: 30 September 2010 > > Further details available at > > http://www.hw.ac.uk/hr/v_academic.php#16210 > > > -- > Heriot-Watt University is a Scottish charity > registered under charity number SC000278. > > > > > ------------------------------ > > Message: 7 > Date: Mon, 13 Sep 2010 15:57:36 +0430 > From: Elaheh khamseh > To: forum at gap-system.org > Subject: [GAP Forum] question > Message-ID: > > Content-Type: text/plain; charset=ISO-8859-1 > > Dears > > Let G be a semidirect product of a normal subgroup elementery abelian > group of order p^4 and a cyclic group of order p. How can I copmute > its Schur multiplier ? > > > Do we have any information about the Schur multiplier of non-abelian > p-groups of order p^5? > > Yours; > E. Khamseh. > > > > ------------------------------ > > Message: 8 > Date: Tue, 14 Sep 2010 18:01:49 +0100 > From: "Ellis, Grahamj" > To: "GAP Forum" > Subject: [GAP Forum] algorithmic algebraic topology > Message-ID: > <47C2E007B3E98F4E8BBC7997F007CE1308BC39DA at EVS1.ac.nuigalway.ie> > Content-Type: text/plain; charset="iso-8859-1" > > Dear Forum, > > I hope it's OK to use this forum to advertize the following call for papers > on algorithmic and applied aspects of algebraic topology (including group > theory). > > Graham > > School of Mathematics, Statistics and Applied Mathematics > National University of Ireland, Galway > http://hamilton.nuigalway.ie > > > > > CALL FOR PAPERS > > APPLICABLE ALGEBRA IN ENGINEERING, COMMUNICATION AND COMPUTING > > SPECIAL ISSUE ON COMPUTER ALGEBRA IN ALGEBRAIC TOPOLOGY AND ITS APPLICATIONS > > Guest Editors: > Graham Ellis, Eduardo S?enz-de-Cabez?n > > Algebraic Topology is an area of pure mathematics with deep algebraic, > geometric and topological roots. Advances in computer science, particularly > in > symbolic computation and manipulation, have increased the computability of > the concepts of algebraic topology to an extent that they are now > increasingly > finding real life applications in areas such as data analysis, dynamical > systems, robotics, computer vision, communications, large scale networks, > concurrent computation, comparative genomics and many other areas. This > special > issue is devoted to papers on potential and actual applications of algebraic > topology as well as to papers on computational techniques and problems > related > to algorithmic algebraic topology. > > Contributions are welcome on: > > - Potential applications of algebraic topology in mathematics, computer > science,physics, engineering, industry, communications, business and other > areas. > - Actual applications of algebraic topology. > - All computational aspects of algebraic topology. > > Fields of application include but are not restricted to: > > ?Coding theory > ?Combinatorics > ?Commutative algebra > ?Computer science, including algorithms and distributed computing > ?Data analysis > ?Differential systems > ?Digital images > ?Discrete and computational geometry > ?Dynamical systems > ?Electromagnetism > ?Effective homology > ?Graph theory > ?Group theory > ?Medical sciences > ?Persistent homology > ?Physics > ?Reliability theory > ?Robotics > ?Statistics > > Paper submissions should follow the guidelines for AAECC submissions, see > http://www.springer.com/computer/theoretical+computer+science/journal/200 > > Submissions can be sent to either of the editors: > Graham Ellis, graham.ellis at nuigalway.ie > Eduardo S?enz-de-Cabez?n, eduardo.saenz-de-cabezon at unirioja.es > > All the papers will be refereed according to the AAECC standards. > > DEADLINE: January 3, 2011 > > > > > > ------------------------------ > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > > End of Forum Digest, Vol 82, Issue 1 > ************************************ > -- zahra sheikhaleslami From joachim.neubueser at t-online.de Thu Sep 16 17:26:25 2010 From: joachim.neubueser at t-online.de (=?ISO-8859-1?Q?Joachim_Neub=FCser?=) Date: Thu, 16 Sep 2010 18:26:25 +0200 Subject: [GAP Forum] Forum Digest, Vol 82, Issue 1 In-Reply-To: References: Message-ID: <4C924531.4060603@t-online.de> Dear Zahra sheikhaleslami You wrote to the GAP Forum: > hi > > i find gap software > > plese guid me to work with it > I take this as saying that you now have installed the GAP system or have access to it in some other way and that you want advice how to use it. Please read the page http://www-gap.dcs.st-and.ac.uk/Doc/Learning/learning.html of the GAP website, on which you find plenty of such advice. Of the references given on that page I recommend in particular the 'Tutorial' volume of the GAP manual and the 'introductory lessons' by Prof. Ed Robertson, for which you find links on that page. Hope this helps. Joachim Neub?ser PS: By the way, in writing to the Forum please try to avoid copying a dozen or more letters from the Forum correspondence as you did with your last letter. From frank.luebeck at math.rwth-aachen.de Fri Sep 17 15:00:46 2010 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Fri, 17 Sep 2010 16:00:46 +0200 Subject: [GAP Forum] combinations In-Reply-To: <201008061358.o76DwBQo014036@rkd.math.cornell.edu> References: <201008061358.o76DwBQo014036@rkd.math.cornell.edu> Message-ID: <20100917140046.GD7333@beteigeuze> On Fri, Aug 06, 2010 at 09:58:11AM -0400, R. Keith Dennis wrote: > I've been trying to do some tests where I look at certain combinations of > subgroups and take intersections. I've been using > > Combinations([1..m],k); > > which works fine as long as Binomial(m,k) is small enough. When the number > is very large, then there is a memory problem & one can't even look at a few > example combinations. Presumably the program is recursively computing all > combinations & runs out of memory. > > Now this may well be simply because I haven't used the right GAP command. > I'd appreciate it if someone would point out the correct way to use a > built-in command if there is one. Dear Keith, dear Forum, Sorry for the late response (because of summer holidays). The current release 4.4.12 of GAP has no builtin functionality for memory efficient looping over large sets of combinations. > In the meantime I solved the problem a different way, namely I wrote a > program that generates one combination at a time using only the preceding > one. See below: > [...] GAP has a concept for this, see '?Iterators' in the help system. Your code could be easily turned into a proper iterator using 'IteratorByFunctions'. In fact, the next GAP release will contain code for IteratorOfCombinations( mset[, k] ); and EnumeratorOfCombinations( mset ); (I don't know how to do a (mset, k)-version of the enumerator). They are a bit more general than your code because they work for all multisets mset (not only the set [1..m]). Examples: gap> i := 0;; gap> mset := "aabcdddefghijjklmnopqrrrstuvw"; gap> for c in IteratorOfCombinations(mset,10) do i := i+1; od; time; 8241 gap> i; 3244707 gap> NrCombinations(mset,10); 3244707 gap> en := EnumeratorOfCombinations(mset);; gap> Length(en); 75497472 gap> en[50000000]; "acddfjjlpqsuw" gap> Position(en, "bcddfhikl"); 15106 If someone wants to use this functionality in the current GAP release, fetch the file http://www.math.rwth-aachen.de/~Frank.Luebeck/tmp/itercomb.g and read it into your GAP session. > The GAP manual says a lot about random generation of various kinds. No > doubt there must be a way to do the following or something similar > with a built-in command. What's the correct way to generate a random > permutation of a list? > > I've been using the following (more or less copying the idea from > perl): > > FisherYates:=function(seq) > local i,j,l,t; > # Fisher-Yates shuffle: > # generate a random permutation of array in place > l:=Length(seq); > for i in [l,l-1..1] do > j:=Random(1,i); > t:=seq[i]; > seq[i]:=seq[j]; > seq[j]:=t; > od; > return seq; > end; Yes, provided Random(1,i) yields uniformly random integers, this function applies a uniformly random permutation to the list seq. I usually use seq := Permuted(seq, Random(SymmetricGroup(Length(seq)))); for this, and the algorithm in the background is exactly the same as in the code shown above. Maybe we should put a 'Shuffle(list)' into the library. Best regards, Frank -- /// 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 r_n_tsai at yahoo.com Fri Sep 17 18:55:37 2010 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Fri, 17 Sep 2010 10:55:37 -0700 (PDT) Subject: [GAP Forum] next gap release In-Reply-To: <20100917140046.GD7333@beteigeuze> References: <201008061358.o76DwBQo014036@rkd.math.cornell.edu> <20100917140046.GD7333@beteigeuze> Message-ID: <153579.51245.qm@web34407.mail.mud.yahoo.com> Dear gap-forum, ? I read from another thread that there will be a new release of gap. I'd like to?request a small feature that can hopefully be included : when assigning names to?the generators?of an algebra? instead of : ? AlgebraByStructureConstants( R, sctable, name1, name2, ... ) ? this would be more useful ? AlgebraByStructureConstants( R, sctable, [name1, name2, ...] ) ? ? unless there's a better way to do the naming. It's easier to work a list of names (second form) when the number of generators is a variable... ? Regrads, R.N. ? PS. when is the next release scheduled for? any previews of changes? From beick at tu-bs.de Mon Sep 20 10:44:08 2010 From: beick at tu-bs.de (Bettina Eick) Date: Mon, 20 Sep 2010 11:44:08 +0200 (CEST) Subject: [GAP Forum] question In-Reply-To: References: Message-ID: Dear Elaheh Khamseh, the Schur multiplier of a finite p-group (or of a polycyclic group in general) can be computed in GAP with the function 'SchurMultiplicator' of the Polycyclic package. This returns the abelian invariants of the SchurMultiplier. It requires a PcpGroup as input. The groups of order p^5 are available as part of the SmallGroups library of GAP for every prime p. It is also not difficult to construct your desired groups directly; see for example the function 'SpecialSplitExtensions' enclosed below. I hope that this helps you towards your questions and towards an investigation of the Schur multipliers of your considered groups. Best wishes, Bettina SpecialSplitExtensions := function(p) local cl, grps; # get conjugacy classes of elements of order p in GL(4,p) cl := ConjugacyClasses(GL(4,p)); cl := List(cl, Representative); cl := Filtered(cl, x -> Order(x) in [1,p]); # construct a split extension for every conjugacy class return List(cl, x -> SplitExtensionPcpGroup(AbelianPcpGroup(1,[p]),[x])); end; gap> SpecialSplitExtensions(2); [ Pcp-group with orders [ 2, 2, 2, 2, 2 ], Pcp-group with orders [ 2, 2, 2, 2, 2 ], Pcp-group with orders [ 2, 2, 2, 2, 2 ] ] gap> List(last, SchurMultiplicator); [ [ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2, 2, 2 ], [ 2, 2, 2, 2 ] ] gap> SpecialSplitExtensions(3); [ Pcp-group with orders [ 3, 3, 3, 3, 3 ], Pcp-group with orders [ 3, 3, 3, 3, 3 ], Pcp-group with orders [ 3, 3, 3, 3, 3 ], Pcp-group with orders [ 3, 3, 3, 3, 3 ] ] gap> List(last, SchurMultiplicator); [ [ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 ], [ 3, 3, 3, 3, 3, 3, 3 ], [ 3, 3, 3, 3, 3, 3 ], [ 3, 3, 3 ] ] gap> SpecialSplitExtensions(5); [ Pcp-group with orders [ 5, 5, 5, 5, 5 ], Pcp-group with orders [ 5, 5, 5, 5, 5 ], Pcp-group with orders [ 5, 5, 5, 5, 5 ], Pcp-group with orders [ 5, 5, 5, 5, 5 ], Pcp-group with orders [ 5, 5, 5, 5, 5 ] ] gap> List(last, SchurMultiplicator); [ [ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 ], [ 5, 5, 5, 5, 5, 5, 5 ], [ 5, 5, 5, 5, 5, 5 ], [ 5, 5, 5, 5 ], [ 5, 5, 5 ] ] On Mon, 13 Sep 2010, Elaheh khamseh wrote: > Dears > > Let G be a semidirect product of a normal subgroup elementery abelian > group of order p^4 and a cyclic group of order p. How can I copmute > its Schur multiplier ? > > > Do we have any information about the Schur multiplier of non-abelian > p-groups of order p^5? > > Yours; > E. Khamseh. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From benjamin.sambale at uni-jena.de Tue Sep 21 10:42:22 2010 From: benjamin.sambale at uni-jena.de (Benjamin Sambale) Date: Tue, 21 Sep 2010 11:42:22 +0200 Subject: [GAP Forum] Bug in Add (list function)? Message-ID: <4C987DFE.10806@uni-jena.de> Dear GAP Forum, consider this small GAP code (I hope it is minimal somehow): L:=[]; e:=[1]; for s in [[1],[0]] do e[1]:=s[1]; Add(L,e); od; After that the list L should be [ [ 1 ], [ 0 ] ]. However GAP gives [ [ 0 ], [ 0 ] ]. I'm not quite sure if this is a bug. It seems to me that the Add function only adds a pointer or something similar. Note that the code works as expected if one uses e:=1 and so on (without additional square brackets). By the way I'm using GAP 4.4.12. Thanks for clarification, Benjamin Sambale From Mathieu.Dutour at ens.fr Tue Sep 21 11:51:34 2010 From: Mathieu.Dutour at ens.fr (Mathieu Dutour) Date: Tue, 21 Sep 2010 12:51:34 +0200 Subject: [GAP Forum] Bug in Add (list function)? In-Reply-To: <4C987DFE.10806@uni-jena.de> References: <4C987DFE.10806@uni-jena.de> Message-ID: <20100921105134.GA20318@orge.ens.fr> This is because when you add the element e, you actually add a pointer to it. Hence you change the value but the pointer does not change. The trick is to do Add(L, ShallowCopy(e)); which really does the addition that you want. >> Dear GAP Forum, >> >> consider this small GAP code (I hope it is minimal somehow): >> >> L:=[]; >> e:=[1]; >> for s in [[1],[0]] do >> e[1]:=s[1]; >> Add(L,e); >> od; >> >> After that the list L should be [ [ 1 ], [ 0 ] ]. However GAP gives [ [ >> 0 ], [ 0 ] ]. I'm not quite sure if this is a bug. It seems to me that >> the Add function only adds a pointer or something similar. Note that the >> code works as expected if one uses e:=1 and so on (without additional >> square brackets). By the way I'm using GAP 4.4.12. >> >> Thanks for clarification, >> Benjamin Sambale >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From bsambale at gmx.de Tue Sep 21 19:20:13 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Tue, 21 Sep 2010 20:20:13 +0200 Subject: [GAP Forum] Bug in Add (list function)? In-Reply-To: <20100921105134.GA20318@orge.ens.fr> References: <4C987DFE.10806@uni-jena.de> <20100921105134.GA20318@orge.ens.fr> Message-ID: <4C98F75D.5030503@gmx.de> I forgot to copy my reply to the list: Thank you very much! It works. Am 21.09.2010 12:51, schrieb Mathieu Dutour: > This is because when you add the element e, you actually add > a pointer to it. Hence you change the value but the pointer > does not change. > > The trick is to do > Add(L, ShallowCopy(e)); > which really does the addition that you want. > >>> Dear GAP Forum, >>> >>> consider this small GAP code (I hope it is minimal somehow): >>> >>> L:=[]; >>> e:=[1]; >>> for s in [[1],[0]] do >>> e[1]:=s[1]; >>> Add(L,e); >>> od; >>> >>> After that the list L should be [ [ 1 ], [ 0 ] ]. However GAP gives [ [ >>> 0 ], [ 0 ] ]. I'm not quite sure if this is a bug. It seems to me that >>> the Add function only adds a pointer or something similar. Note that the >>> code works as expected if one uses e:=1 and so on (without additional >>> square brackets). By the way I'm using GAP 4.4.12. >>> >>> Thanks for clarification, >>> Benjamin Sambale >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From bsambale at gmx.de Sat Sep 25 07:36:49 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Sat, 25 Sep 2010 08:36:49 +0200 Subject: [GAP Forum] Orbit of group action on matrices Message-ID: <4C9D9881.4050209@gmx.de> Dear Forum, I've defined an action of a permutation group on a set of square matrices in the following way: act:=function(x,g) local i; for i in [1..Length(x[1])] do x[i]:=Permuted(x[i],g); od; return Permuted(x,g); end; This works as expected, for example: gap> act([[1,2],[3,4]],(1,2)); [ [ 4, 3 ], [ 2, 1 ] ] However, using the Orbit command gives gap> Orbit(Group((1,2)),[[1,2],[3,4]],act); Lists Assignment: must be a mutable list What is wrong here? Thanks, Benjamin Sambale From krkini at ntu.edu.sg Sat Sep 25 08:50:37 2010 From: krkini at ntu.edu.sg (Keshav Rao Kini) Date: Sat, 25 Sep 2010 15:50:37 +0800 Subject: [GAP Forum] Orbit of group action on matrices In-Reply-To: <4C9D9881.4050209@gmx.de> References: <4C9D9881.4050209@gmx.de> Message-ID: Hello, As the message states, you cannot assign values to elements of an immutable list. When you tested your act function at the prompt, you passed it a list literal, which is mutable. Presumably Orbit() is passing your function an immutable list (which is wise as it preserves the arguments you sent to Orbit()), which your function then chokes on. You could try for example using ShallowCopy() on the list x which is passed to your function: gap> act:=function(x,g) > local i,y; > y:=ShallowCopy(x); > for i in [1..Length(y[1])] do y[i]:=Permuted(y[i],g); od; > return Permuted(y,g); > end; function( x, g ) ... end gap> act([[1,2],[3,4]],(1,2)); [ [ 4, 3 ], [ 2, 1 ] ] gap> Orbit(Group((1,2)),[[1,2],[3,4]],act); [ [ [ 1, 2 ], [ 3, 4 ] ], [ [ 4, 3 ], [ 2, 1 ] ] ] gap> As I am a GAP beginner, I can't guarantee that there isn't a better way to do this, but it seems to work ;) Here is some more information about mutability: http://www.gap-system.org/Manuals/doc/htm/ref/CHAP012.htm#SECT006 Yours, Keshav On Sat, Sep 25, 2010 at 14:36, Benjamin Sambale > wrote: Dear Forum, I've defined an action of a permutation group on a set of square matrices in the following way: act:=function(x,g) local i; for i in [1..Length(x[1])] do x[i]:=Permuted(x[i],g); od; return Permuted(x,g); end; This works as expected, for example: gap> act([[1,2],[3,4]],(1,2)); [ [ 4, 3 ], [ 2, 1 ] ] However, using the Orbit command gives gap> Orbit(Group((1,2)),[[1,2],[3,4]],act); Lists Assignment: must be a mutable list What is wrong here? Thanks, Benjamin Sambale _______________________________________________ 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 and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From burkhard at hoefling.name Sat Sep 25 09:59:58 2010 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Sat, 25 Sep 2010 10:59:58 +0200 Subject: [GAP Forum] Orbit of group action on matrices In-Reply-To: <4C9D9881.4050209@gmx.de> References: <4C9D9881.4050209@gmx.de> Message-ID: <2F4184CD-A7C1-4522-BF02-F7157DFAAE95@hoefling.name> On 25/09/2010, at 8:36 , Benjamin Sambale wrote: > Dear Forum, > > I've defined an action of a permutation group on a set of square matrices in the following way: > > act:=function(x,g) > local i; > for i in [1..Length(x[1])] do x[i]:=Permuted(x[i],g); od; > return Permuted(x,g); > end; > > This works as expected, for example: > > gap> act([[1,2],[3,4]],(1,2)); > [ [ 4, 3 ], [ 2, 1 ] ] > > However, using the Orbit command gives > > gap> Orbit(Group((1,2)),[[1,2],[3,4]],act); > Lists Assignment: must be a mutable list > > What is wrong here? Your action tries to change the argument x (by assigning permuted rows). But this is probably not what you had intended anyway. Try the following. act:=function(x,g) local i, y; y := []; for i in [1..Length(x[1])] do y[i]:=Permuted(x[i],g); od; return Permuted(y,g); end; Cheers, Burkhard. From bsambale at gmx.de Sat Sep 25 19:14:03 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Sat, 25 Sep 2010 20:14:03 +0200 Subject: [GAP Forum] Orbit of group action on matrices In-Reply-To: <2F4184CD-A7C1-4522-BF02-F7157DFAAE95@hoefling.name> References: <4C9D9881.4050209@gmx.de> <2F4184CD-A7C1-4522-BF02-F7157DFAAE95@hoefling.name> Message-ID: <4C9E3BEB.1080603@gmx.de> Am 25.09.2010 10:59, schrieb Burkhard H?fling: > On 25/09/2010, at 8:36 , Benjamin Sambale wrote: > >> Dear Forum, >> >> I've defined an action of a permutation group on a set of square matrices in the following way: >> >> act:=function(x,g) >> local i; >> for i in [1..Length(x[1])] do x[i]:=Permuted(x[i],g); od; >> return Permuted(x,g); >> end; >> >> This works as expected, for example: >> >> gap> act([[1,2],[3,4]],(1,2)); >> [ [ 4, 3 ], [ 2, 1 ] ] >> >> However, using the Orbit command gives >> >> gap> Orbit(Group((1,2)),[[1,2],[3,4]],act); >> Lists Assignment: must be a mutable list >> >> What is wrong here? > Your action tries to change the argument x (by assigning permuted rows). But this is probably not what you had intended anyway. Try the following. > > act:=function(x,g) > local i, y; > y := []; > for i in [1..Length(x[1])] do y[i]:=Permuted(x[i],g); od; > return Permuted(y,g); > end; > > Cheers, > > Burkhard. > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > Thanks Burkhard and Keshav. I already tried Keshav's approach with StructuralCopy instead of ShallowCopy and it did not work. I'm a bit confused about that, but it doesn't matter, because both your approaches work excellent. Best wishes, Benjamin From darthandrus at gmail.com Thu Sep 30 12:40:06 2010 From: darthandrus at gmail.com (Ivan Andrus) Date: Thu, 30 Sep 2010 13:40:06 +0200 Subject: [GAP Forum] GAP mode for emacs In-Reply-To: References: <388A5A0F-517B-4C4C-A538-DC5E040266DC@gmail.com> <87sk24etdq.fsfhello@somewhere.com> Message-ID: This probably isn't the best place for this, but... I have taken Michael Smith's gap-mode and made what I hope are improvements. I'm using a very recent version of emacs however, so I may have inadvertently made it backwards incompatible. I also haven't tested on Xemacs. The code can be found at https://bitbucket.org/gvol/gap-mode/ so feel free to open an issue there if you have problems or suggestions (or contact me directly via email). The main improvements are 1. font-lock support 2. improved local statement functionality 3. beginning/end-of-defun functions 4. bug fixes in indentation 5. converting to defcustom's in gap-mode.el I haven't touched gap-process.el yet, and may not for a while (I've got other stuff going on). I did remove comint.el since that's been included with Emacs for a long time. Running gap in Emacs seems to work for me, though I haven't tested it much. Thus, if you need that functionality, please don't get rid of your old install! -Ivan On Aug 24, 2010, at 11:00 AM, Attila Egri-Nagy wrote: > Hi, > > It is crazy but I've been using python-mode for gap files. It gets the > comments and strings right, at least... > > attila > > > On Tue, Aug 24, 2010 at 1:39 AM, Rafael wrote: > >> Ivan Andrus >> writes: >> >>> I have been using gap-mode for emacs version 1.96 by Michael Smith. >>> There are a few things that I would like to add, principally syntax >>> highlighting. Has anyone else done this that I couldn't find? Would >>> there be interest in an updated version with some improvements? >> >> This is what I use. It is really far from perfect, but it is something... >> >> (defun add-custom-keyw() >> "adds a few special keywords for gap mode" >> (font-lock-add-keywords nil >> '( >> ("\\bif\\b\\|then\\|else\\|elseif" . 'font-lock-keyword-face ) >> ("while\\|\\bdo\\b\\|\\bfi\\b" . 'font-lock-keyword-face ) >> ("\\bend\\b\\|return\\|\\bnot\\b\\|function\\|\\blocal\\b" . >> 'font-lock-keyword-face ) >> ("\\bfor\\b\\|\\bin\\b\\|\\bod\\b\\|\\bmod\\b\\|\\band\\b" . >> 'font-lock-keyword-face ) >> ("true\\|false" . 'font-lock-constant-face ) >> ("Print\\|Length\\|\\bOrbits\\b\\|Subsets\\|Difference" . >> 'font-lock-function-name-face ) >> ("List\\|OnSets\\|Group\\|Intersection" . >> 'font-lock-function-name-face ) >> ("IsTransitive\\|OnTuples\\|Concatenation\\|Filtered" . >> 'font-lock-function-name-face ) >> ("Add\\|Sum\\|SymmetricGroup\\|Filtered\\|RightCosets" . >> 'font-lock-function-name-face ) >> ("Eigenvalues\\|Rationals\\|" . 'font-lock-function-name-face ) >> ("\\bCharacteristicPolynomial\\b" . 'font-lock-function-name-face ) >> ("Filtered\\|RightCosets" . 'font-lock-function-name-face ) >> ("#.*" . font-lock-comment-face) >> ))) >> (add-hook 'gap-mode-hook 'add-custom-keyw) >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From zahra.sheikhaleslami at gmail.com Thu Sep 30 12:58:33 2010 From: zahra.sheikhaleslami at gmail.com (zahra sheikhaleslami) Date: Thu, 30 Sep 2010 15:28:33 +0330 Subject: [GAP Forum] Re Message-ID: hi i find afew books about gap, if u have a good information a bout gap send me thank u have a nice day zahra From A.Egri-Nagy at herts.ac.uk Thu Sep 30 13:10:43 2010 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Thu, 30 Sep 2010 14:10:43 +0200 Subject: [GAP Forum] GAP mode for emacs In-Reply-To: References: <388A5A0F-517B-4C4C-A538-DC5E040266DC@gmail.com> <87sk24etdq.fsfhello@somewhere.com> Message-ID: Dear Ivan, I would very much like to test/use your gap-mode, but I see no file for downloading (without checking out a repository). Also a few lines on usage would be helpful. Thanks! best, attila On Thu, Sep 30, 2010 at 1:40 PM, Ivan Andrus wrote: > This probably isn't the best place for this, but... > > I have taken Michael Smith's gap-mode and made what I hope are improvements. ?I'm using a very recent version of emacs however, so I may have inadvertently made it backwards incompatible. ?I also haven't tested on Xemacs. ?The code can be found at https://bitbucket.org/gvol/gap-mode/ so feel free to open an issue there if you have problems or suggestions (or contact me directly via email). > > The main improvements are > 1. font-lock support > 2. improved local statement functionality > 3. beginning/end-of-defun functions > 4. bug fixes in indentation > 5. converting to defcustom's in gap-mode.el > > I haven't touched gap-process.el yet, and may not for a while (I've got other stuff going on). ?I did remove comint.el since that's been included with Emacs for a long time. ?Running gap in Emacs seems to work for me, though I haven't tested it much. ?Thus, if you need that functionality, please don't get rid of your old install! > > -Ivan > > On Aug 24, 2010, at 11:00 AM, Attila Egri-Nagy wrote: > >> Hi, >> >> It is crazy but I've been using python-mode for gap files. It gets the >> comments and strings right, at least... >> >> attila >> >> >> On Tue, Aug 24, 2010 at 1:39 AM, Rafael wrote: >> >>> Ivan Andrus >>> writes: >>> >>>> I have been using gap-mode for emacs version 1.96 by Michael Smith. >>>> There are a few things that I would like to add, principally syntax >>>> highlighting. ?Has anyone else done this that I couldn't find? ?Would >>>> there be interest in an updated version with some improvements? >>> >>> This is what I use. It is really far from perfect, but it is something... >>> >>> (defun add-custom-keyw() >>> ? "adds a few special keywords for gap mode" >>> ? (font-lock-add-keywords nil >>> ? ?'( >>> ? ? ?("\\bif\\b\\|then\\|else\\|elseif" . 'font-lock-keyword-face ) >>> ? ? ?("while\\|\\bdo\\b\\|\\bfi\\b" . 'font-lock-keyword-face ) >>> ? ? ?("\\bend\\b\\|return\\|\\bnot\\b\\|function\\|\\blocal\\b" . >>> 'font-lock-keyword-face ) >>> ? ? ?("\\bfor\\b\\|\\bin\\b\\|\\bod\\b\\|\\bmod\\b\\|\\band\\b" . >>> 'font-lock-keyword-face ) >>> ? ? ?("true\\|false" . 'font-lock-constant-face ) >>> ? ? ?("Print\\|Length\\|\\bOrbits\\b\\|Subsets\\|Difference" . >>> 'font-lock-function-name-face ) >>> ? ? ?("List\\|OnSets\\|Group\\|Intersection" . >>> 'font-lock-function-name-face ) >>> ? ? ?("IsTransitive\\|OnTuples\\|Concatenation\\|Filtered" . >>> 'font-lock-function-name-face ) >>> ? ? ?("Add\\|Sum\\|SymmetricGroup\\|Filtered\\|RightCosets" . >>> 'font-lock-function-name-face ) >>> ? ? ?("Eigenvalues\\|Rationals\\|" . 'font-lock-function-name-face ) >>> ? ? ?("\\bCharacteristicPolynomial\\b" . 'font-lock-function-name-face ) >>> ? ? ?("Filtered\\|RightCosets" . 'font-lock-function-name-face ) >>> ? ? ?("#.*" . font-lock-comment-face) >>> ? ? ?))) >>> (add-hook 'gap-mode-hook 'add-custom-keyw) >>> >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >>> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From tshun at kurims.kyoto-u.ac.jp Fri Oct 1 09:43:15 2010 From: tshun at kurims.kyoto-u.ac.jp (Shunsuke Tsuchioka) Date: Fri, 01 Oct 2010 17:43:15 +0900 (JST) Subject: [GAP Forum] Repeating workspace save/load Message-ID: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> Hi, I want to ask about a possibility of repeating workspace save and load. It seems impossible more than 5 times as shown below. The error occurs on Linux in x86(64bit) machine, but exactly the same error occurrs in my solaris environment (GAP4, Version: 4.4.9 of 6-Nov-2006, sparc-sun-solaris2.10-gcc, sparc 32bit). Is the behavior by design or a bug? Sincerely, Shunsuke Tsuchioka cherry05:~/GAP/nG2> /home/tshun/math/gap -b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> a:=1; 1 gap> SaveWorkspace("a"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L a GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> b:=2; 2 gap> SaveWorkspace("b"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> c:=3; 3 gap> SaveWorkspace("c"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L c GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> d:=1; 1 gap> SaveWorkspace("d"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L d GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> e:=1; 1 gap> SaveWorkspace("e"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L e GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> f:=1; 1 gap> SaveWorkspace("f"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L f GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> g:=1; 1 gap> SaveWorkspace("g"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L g Segmentation fault From krkini at ntu.edu.sg Fri Oct 1 12:17:36 2010 From: krkini at ntu.edu.sg (Keshav Rao Kini) Date: Fri, 1 Oct 2010 19:17:36 +0800 Subject: [GAP Forum] Repeating workspace save/load In-Reply-To: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> References: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> Message-ID: Hello, I am not maintainer of GAP, but I thought I would try to confirm your report. Unfortunately, I cannot seem to duplicate this error. I wrote a small test script, and with it I managed to save and load a workspace 257 times without GAP segfaulting. See below for output: keshav at banana ~ $ cat test.sh #!/bin/bash echo "x0 := 0;; SaveWorkspace(\"0.ws\");; quit;" | gap -q for i in `seq $(($1-1))` do echo "x$i := $i;; SaveWorkspace(\"$i.ws\");; quit;" | gap -q -L $((i-1)).ws rm $((i-1)).ws done ls -l $(($1-1)).ws keshav at banana ~ $ time ./test.sh 257 -rw-r--r-- 1 keshav keshav 25705844 Oct 1 19:01 256.ws real 2m12.342s user 1m9.868s sys 0m33.966s keshav at banana ~ $ uname -a Linux banana 2.6.32-5-amd64 #1 SMP Fri Sep 17 21:50:19 UTC 2010 x86_64 GNU/Linux Maybe the error is caused by something specific to your two environments? Feel free to try out my script for yourself as well, though I suspect your own result will not change (unless it was caused by running out of disk space, or something). Perhaps someone from the GAP Support Group can speculate further... Yours, Keshav On Fri, Oct 1, 2010 at 16:43, Shunsuke Tsuchioka > wrote: Hi, I want to ask about a possibility of repeating workspace save and load. It seems impossible more than 5 times as shown below. The error occurs on Linux in x86(64bit) machine, but exactly the same error occurrs in my solaris environment (GAP4, Version: 4.4.9 of 6-Nov-2006, sparc-sun-solaris2.10-gcc, sparc 32bit). Is the behavior by design or a bug? Sincerely, Shunsuke Tsuchioka cherry05:~/GAP/nG2> /home/tshun/math/gap -b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> a:=1; 1 gap> SaveWorkspace("a"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L a GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> b:=2; 2 gap> SaveWorkspace("b"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> c:=3; 3 gap> SaveWorkspace("c"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L c GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> d:=1; 1 gap> SaveWorkspace("d"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L d GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> e:=1; 1 gap> SaveWorkspace("e"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L e GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> f:=1; 1 gap> SaveWorkspace("f"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L f GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> g:=1; 1 gap> SaveWorkspace("g"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L g Segmentation fault _______________________________________________ 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 and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From tshun at kurims.kyoto-u.ac.jp Fri Oct 1 13:39:57 2010 From: tshun at kurims.kyoto-u.ac.jp (Shunsuke Tsuchioka) Date: Fri, 01 Oct 2010 21:39:57 +0900 (JST) Subject: [GAP Forum] Repeating workspace save/load In-Reply-To: References: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> Message-ID: <20101001.213957.68535624.tshun@kurims.kyoto-u.ac.jp> Hi, Thank you for your reply. I tried your patch on another Linux machine : (kirin/student/tshun/GAP)28 uname -a Linux kirin 2.6.24-24-server #1 SMP Fri Sep 18 16:47:05 UTC 2009 x86_64 GNU/Linux and obtained the same error as follows: (kirin/student/tshun/GAP)29 ./test.sh 7 -rw------- 1 tshun 653 25560586 Oct 1 21:30 6.ws (kirin/student/tshun/GAP)30 ./test.sh 8 ./test.sh: line 3: 7792 Done echo "x$i := $i;; SaveWorkspace(\"$i.ws\");; quit;" 7793 Segmentation fault | /usr/local/opt/gap -q -L $((i-1)).ws ls: cannot access 7.ws: No such file or directory I encountered exactly the same error in my laptop (Core2, 32bit, FreeBSD 8.1-STABLE). I installed GAP in FreeBSD via ports. As summarize, I encountered the same error at 4 different machine with 3 different OSs (Linux, FreeBSD and Solaris) or CPUs (Xeon, Core2, Sparc). I don't think it's due to something specific to my environment. Best, Shunsuke From: Keshav Rao Kini Subject: Re: [GAP Forum] Repeating workspace save/load Date: Fri, 1 Oct 2010 19:17:36 +0800 > Hello, > > I am not maintainer of GAP, but I thought I would try to confirm your report. Unfortunately, I cannot seem to duplicate this error. I wrote a small test script, and with it I managed to save and load a workspace 257 times without GAP segfaulting. See below for output: > > keshav at banana ~ $ cat test.sh > #!/bin/bash > echo "x0 := 0;; SaveWorkspace(\"0.ws\");; quit;" | gap -q > for i in `seq $(($1-1))` > do > echo "x$i := $i;; SaveWorkspace(\"$i.ws\");; quit;" | gap -q -L $((i-1)).ws > rm $((i-1)).ws > done > ls -l $(($1-1)).ws > > keshav at banana ~ $ time ./test.sh 257 > -rw-r--r-- 1 keshav keshav 25705844 Oct 1 19:01 256.ws > > real 2m12.342s > user 1m9.868s > sys 0m33.966s > keshav at banana ~ $ uname -a > Linux banana 2.6.32-5-amd64 #1 SMP Fri Sep 17 21:50:19 UTC 2010 x86_64 GNU/Linux > > Maybe the error is caused by something specific to your two environments? Feel free to try out my script for yourself as well, though I suspect your own result will not change (unless it was caused by running out of disk space, or something). Perhaps someone from the GAP Support Group can speculate further... > > Yours, > Keshav > > > On Fri, Oct 1, 2010 at 16:43, Shunsuke Tsuchioka > wrote: > Hi, > > I want to ask about a possibility of > repeating workspace save and load. > It seems impossible more than 5 times as shown below. > The error occurs on Linux in x86(64bit) machine, > but exactly the same error occurrs in my solaris environment > (GAP4, Version: 4.4.9 of 6-Nov-2006, sparc-sun-solaris2.10-gcc, sparc 32bit). > Is the behavior by design or a bug? > > Sincerely, > Shunsuke Tsuchioka > > cherry05:~/GAP/nG2> /home/tshun/math/gap -b > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> a:=1; > 1 > gap> SaveWorkspace("a"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L a > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> b:=2; > 2 > gap> SaveWorkspace("b"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L b > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> c:=3; > 3 > gap> SaveWorkspace("c"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L c > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> d:=1; > 1 > gap> SaveWorkspace("d"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L d > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> e:=1; > 1 > gap> SaveWorkspace("e"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L e > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> f:=1; > 1 > gap> SaveWorkspace("f"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L f > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> g:=1; > 1 > gap> SaveWorkspace("g"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L g > Segmentation fault > > _______________________________________________ > 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 and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. > > Towards A Sustainable Earth: Print Only When Necessary From max at quendi.de Fri Oct 1 21:36:57 2010 From: max at quendi.de (Max Horn) Date: Fri, 1 Oct 2010 22:36:57 +0200 Subject: [GAP Forum] Repeating workspace save/load In-Reply-To: References: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> Message-ID: Hi, I can reproduce the issue using Keshav Rao Kini's script. On Mac OS X 10.6.4 (Intel CPU, 32bit compiled), and on a Linux machine. In both cases with GAP 4.4.12. In addition, I also performed the same test but with "-A" specified, to disable autoloading of packages (in case one of them was the culprit), but still got the segfaults, on both machines. Cheers, Max From krkini at ntu.edu.sg Sat Oct 2 09:51:56 2010 From: krkini at ntu.edu.sg (Keshav Rao Kini) Date: Sat, 2 Oct 2010 16:51:56 +0800 Subject: [GAP Forum] Repeating workspace save/load In-Reply-To: References: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> Message-ID: Hello all, I'd like to apologize for the hyperlinks that I seem to have sent within the terminal output in my previous mail. If you are reading your mail in a terminal or some reader which attempts to convert HTML mail to plaintext, there may be garbage inside the script - I have uploaded the correct script to the following URL: http://pastebin.ca/1953162 . Please note that on OS X you may need to replace "seq" with "jot" as the operating system doesn't come with GNU coreutils (thanks to Dr. Dmitrii Pasechnik for pointing this out to me). Yours, Keshav On Fri, Oct 1, 2010 at 19:17, Keshav Rao Kini > wrote: Hello, I am not maintainer of GAP, but I thought I would try to confirm your report. Unfortunately, I cannot seem to duplicate this error. I wrote a small test script, and with it I managed to save and load a workspace 257 times without GAP segfaulting. See below for output: keshav at banana ~ $ cat test.sh #!/bin/bash echo "x0 := 0;; SaveWorkspace(\"0.ws\");; quit;" | gap -q for i in `seq $(($1-1))` do echo "x$i := $i;; SaveWorkspace(\"$i.ws\");; quit;" | gap -q -L $((i-1)).ws rm $((i-1)).ws done ls -l $(($1-1)).ws keshav at banana ~ $ time ./test.sh 257 -rw-r--r-- 1 keshav keshav 25705844 Oct 1 19:01 256.ws real 2m12.342s user 1m9.868s sys 0m33.966s keshav at banana ~ $ uname -a Linux banana 2.6.32-5-amd64 #1 SMP Fri Sep 17 21:50:19 UTC 2010 x86_64 GNU/Linux Maybe the error is caused by something specific to your two environments? Feel free to try out my script for yourself as well, though I suspect your own result will not change (unless it was caused by running out of disk space, or something). Perhaps someone from the GAP Support Group can speculate further... Yours, Keshav On Fri, Oct 1, 2010 at 16:43, Shunsuke Tsuchioka > wrote: Hi, I want to ask about a possibility of repeating workspace save and load. It seems impossible more than 5 times as shown below. The error occurs on Linux in x86(64bit) machine, but exactly the same error occurrs in my solaris environment (GAP4, Version: 4.4.9 of 6-Nov-2006, sparc-sun-solaris2.10-gcc, sparc 32bit). Is the behavior by design or a bug? Sincerely, Shunsuke Tsuchioka cherry05:~/GAP/nG2> /home/tshun/math/gap -b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> a:=1; 1 gap> SaveWorkspace("a"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L a GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> b:=2; 2 gap> SaveWorkspace("b"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> c:=3; 3 gap> SaveWorkspace("c"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L c GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> d:=1; 1 gap> SaveWorkspace("d"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L d GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> e:=1; 1 gap> SaveWorkspace("e"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L e GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> f:=1; 1 gap> SaveWorkspace("f"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L f GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> g:=1; 1 gap> SaveWorkspace("g"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L g Segmentation fault _______________________________________________ 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 and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From krkini at ntu.edu.sg Sat Oct 2 10:54:08 2010 From: krkini at ntu.edu.sg (Keshav Rao Kini) Date: Sat, 2 Oct 2010 17:54:08 +0800 Subject: [GAP Forum] Repeating workspace save/load In-Reply-To: References: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> Message-ID: Hello yet again, This is rather embarrassing, but pastebin.ca seems to have imploded (temporarily, perhaps) shortly after I uploaded the script... here is yet another mirror: http://www1.spms.ntu.edu.sg/~krkini/temp/test.sh My apologies for the repeated mailings. Yours, Keshav On Sat, Oct 2, 2010 at 16:51, Keshav Rao Kini > wrote: Hello all, I'd like to apologize for the hyperlinks that I seem to have sent within the terminal output in my previous mail. If you are reading your mail in a terminal or some reader which attempts to convert HTML mail to plaintext, there may be garbage inside the script - I have uploaded the correct script to the following URL: http://pastebin.ca/1953162 . Please note that on OS X you may need to replace "seq" with "jot" as the operating system doesn't come with GNU coreutils (thanks to Dr. Dmitrii Pasechnik for pointing this out to me). Yours, Keshav On Fri, Oct 1, 2010 at 19:17, Keshav Rao Kini > wrote: Hello, I am not maintainer of GAP, but I thought I would try to confirm your report. Unfortunately, I cannot seem to duplicate this error. I wrote a small test script, and with it I managed to save and load a workspace 257 times without GAP segfaulting. See below for output: keshav at banana ~ $ cat test.sh #!/bin/bash echo "x0 := 0;; SaveWorkspace(\"0.ws\");; quit;" | gap -q for i in `seq $(($1-1))` do echo "x$i := $i;; SaveWorkspace(\"$i.ws\");; quit;" | gap -q -L $((i-1)).ws rm $((i-1)).ws done ls -l $(($1-1)).ws keshav at banana ~ $ time ./test.sh 257 -rw-r--r-- 1 keshav keshav 25705844 Oct 1 19:01 256.ws real 2m12.342s user 1m9.868s sys 0m33.966s keshav at banana ~ $ uname -a Linux banana 2.6.32-5-amd64 #1 SMP Fri Sep 17 21:50:19 UTC 2010 x86_64 GNU/Linux Maybe the error is caused by something specific to your two environments? Feel free to try out my script for yourself as well, though I suspect your own result will not change (unless it was caused by running out of disk space, or something). Perhaps someone from the GAP Support Group can speculate further... Yours, Keshav On Fri, Oct 1, 2010 at 16:43, Shunsuke Tsuchioka > wrote: Hi, I want to ask about a possibility of repeating workspace save and load. It seems impossible more than 5 times as shown below. The error occurs on Linux in x86(64bit) machine, but exactly the same error occurrs in my solaris environment (GAP4, Version: 4.4.9 of 6-Nov-2006, sparc-sun-solaris2.10-gcc, sparc 32bit). Is the behavior by design or a bug? Sincerely, Shunsuke Tsuchioka cherry05:~/GAP/nG2> /home/tshun/math/gap -b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> a:=1; 1 gap> SaveWorkspace("a"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L a GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> b:=2; 2 gap> SaveWorkspace("b"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L b GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> c:=3; 3 gap> SaveWorkspace("c"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L c GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> d:=1; 1 gap> SaveWorkspace("d"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L d GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> e:=1; 1 gap> SaveWorkspace("e"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L e GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> f:=1; 1 gap> SaveWorkspace("f"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L f GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc gap> g:=1; 1 gap> SaveWorkspace("g"); true gap> quit; cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L g Segmentation fault _______________________________________________ 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 and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From frank.luebeck at math.rwth-aachen.de Sat Oct 2 13:19:41 2010 From: frank.luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Sat, 02 Oct 2010 14:19:41 +0200 Subject: [GAP Forum] Repeating workspace save/load In-Reply-To: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> References: <20101001.174315.125114275.tshun@kurims.kyoto-u.ac.jp> Message-ID: <20101002121941.GB22011@beteigeuze> On Fri, Oct 01, 2010 at 05:43:15PM +0900, Shunsuke Tsuchioka wrote: > I want to ask about a possibility of > repeating workspace save and load. > It seems impossible more than 5 times as shown below. > The error occurs on Linux in x86(64bit) machine, > but exactly the same error occurrs in my solaris environment > (GAP4, Version: 4.4.9 of 6-Nov-2006, sparc-sun-solaris2.10-gcc, sparc 32bit). > Is the behavior by design or a bug? > > Sincerely, > Shunsuke Tsuchioka > > cherry05:~/GAP/nG2> /home/tshun/math/gap -b > GAP4, Version: 4.4.12 of 17-Dec-2008, x86_64-unknown-linux-gnu-gcc > gap> a:=1; > 1 > gap> SaveWorkspace("a"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L a [...] > gap> SaveWorkspace("g"); > true > gap> quit; > cherry05:~/GAP/nG2> /home/tshun/math/gap -b -L g > Segmentation fault Dear Shunsuke Tsuchioka, dear Forum, Thank you very much for this report (and the feedback by other users). I can exactly reproduce the problem with various versions of GAP, 32- and 64-bit systems, with and without packages. Therefore I hope that it is not too difficult to locate the bug. We will investigate the problem and let you know when we have fixed it. Best regards, Frank Luebeck -- /// 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 mbg.nimda at gmail.com Sun Oct 3 15:52:39 2010 From: mbg.nimda at gmail.com (mbg nimda) Date: Sun, 3 Oct 2010 16:52:39 +0200 Subject: [GAP Forum] Enumeration in a matrix algebra Message-ID: Dear forum members, I have a finitely generated matrix algebra over the rationals that I know is not a field but contains zero divisors. To find one (and this seems to be quite suitable) I simply use: i:=First(rc.algebra, a-> Determinant(a)=0 and a <> 0*I); Sometimes it works for 120x120 matrices within a reasonable time, sometimes I have to give up after several hours even with 24x24 matrices. Does anybody know how to do this another way with more chance for a success? Thanks, Marc Bogaerts From e.j.postma+gap at gmail.com Sun Oct 3 18:19:24 2010 From: e.j.postma+gap at gmail.com (Erik Postma) Date: Sun, 3 Oct 2010 13:19:24 -0400 Subject: [GAP Forum] Enumeration in a matrix algebra In-Reply-To: References: Message-ID: Hi Marc, I'm sure better answers are possible (and probably forthcoming), but the following may be good enough. If your algebra has a nontrivial radical, then you can take an arbitrary (nonzero) element of that. Otherwise, I would expect it's much more efficient (in expectation) to try the elements in pseudorandom order than in whatever is the default, to get around any systematic effect that might put zero divisors later. Two trivial examples: gap> m:= [ [ 1, 1, 2 ], [ 1, 0, 3], [ 1, 0, 0 ] ];; gap> A:= AlgebraWithOne( Rationals, [ m ] ); gap> ra := RadicalOfAlgebra(A); gap> GeneratorsOfAlgebra(ra); [ [ [ 0, 1, 2 ], [ 0, 0, 3 ], [ 0, 0, 0 ] ], [ [ 0, 0, 1 ], [ 0, 0, 0 ], [ 0, 0, 0 ] ] ] gap> # These are all nilpotent. gap> A2 := Rationals^[7,7]; ( Rationals^[ 7, 7 ] ) gap> # Has a trivial radical. gap> psr := PseudoRandom(A2);; gap> while Determinant(psr) <> 0 or psr = Zero(A2) do > psr := PseudoRandom(A2); > od; gap> # Now psr is nilpotent. Hope this helps, Erik Postma. On 3 October 2010 10:52, mbg nimda wrote: > Dear forum members, > > I have a finitely generated matrix algebra over the rationals that I know is > not a field but contains > zero divisors. > To find one (and this seems to be quite suitable) I simply use: > i:=First(rc.algebra, a-> Determinant(a)=0 and a <> 0*I); > > Sometimes it works for 120x120 matrices within a reasonable time, sometimes > I have to give up > after several hours even with 24x24 matrices. > > Does anybody know how to do this another way with more chance for a success? > > Thanks, > > Marc Bogaerts > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From justin at mac.com Mon Oct 4 02:28:50 2010 From: justin at mac.com (Justin C. Walker) Date: Sun, 03 Oct 2010 18:28:50 -0700 Subject: [GAP Forum] "Crc mismatch" Message-ID: Dear Forum, I just downloaded and built Gap 4.4.12 (Mac OS X, 10.6.4, Dual Quad Xeon). I tried to get help, and got the following: gap> ?QuaternionAlgebra Error, Rebuild completion files! (Crc value of "./lib/helpdef.gi" does not match.) at HELP_BOOKS_INFO.(bnam) := HELP_BOOK_HANDLER.(handler).ReadSix( stream ); I'm kind of clueless at this point. Brand new installation, from a newly downloaded tarball. Thanks! Justin -- Justin C. Walker, Curmudgeon at Large Institute for the Absorption of Federal Funds ----------- Like the ski resort full of girls hunting for husbands and husbands hunting for girls, the situation is not as symmetrical as it might seem. - Alan MacKay -- From jbohanon2 at gmail.com Mon Oct 4 03:10:57 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sun, 3 Oct 2010 22:10:57 -0400 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: References: Message-ID: Try starting gap with the "-N" command, then run CreateCompletionFiles(); quit and restart. On Sun, Oct 3, 2010 at 9:28 PM, Justin C. Walker wrote: > Dear Forum, > > I just downloaded and built Gap 4.4.12 (Mac OS X, 10.6.4, Dual Quad Xeon). > I tried to get help, and got the following: > > gap> ?QuaternionAlgebra > Error, Rebuild completion files! (Crc value of > "./lib/helpdef.gi" does not match.) at > HELP_BOOKS_INFO.(bnam) := HELP_BOOK_HANDLER.(handler).ReadSix( stream ); > > I'm kind of clueless at this point. Brand new installation, from a newly > downloaded tarball. > > Thanks! > > Justin > > -- > Justin C. Walker, Curmudgeon at Large > Institute for the Absorption of Federal Funds > ----------- > Like the ski resort full of girls hunting for husbands > and husbands hunting for girls, the situation is not > as symmetrical as it might seem. > - Alan MacKay > -- > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From sal at mcs.st-andrews.ac.uk Mon Oct 4 09:05:44 2010 From: sal at mcs.st-andrews.ac.uk (Stephen Linton) Date: Mon, 4 Oct 2010 09:05:44 +0100 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: References: Message-ID: Dear GAP Forum, This shouldn't happen, and suggests that your download might have been corrupted in some way. For instance, is it possible that you ran out of disk space while downloading or unpacking the distribution? This can result in files being truncated. Could you possibly go into the lib directory of your distribution, do ls -l and mail the output to support at gap-system.org? Thanks Steve Linton On 4 Oct 2010, at 02:28, Justin C. Walker wrote: > Dear Forum, > > I just downloaded and built Gap 4.4.12 (Mac OS X, 10.6.4, Dual Quad Xeon). I tried to get help, and got the following: > > gap> ?QuaternionAlgebra > Error, Rebuild completion files! (Crc value of > "./lib/helpdef.gi" does not match.) at > HELP_BOOKS_INFO.(bnam) := HELP_BOOK_HANDLER.(handler).ReadSix( stream ); > > I'm kind of clueless at this point. Brand new installation, from a newly downloaded tarball. > > Thanks! > > Justin > > -- > Justin C. Walker, Curmudgeon at Large > Institute for the Absorption of Federal Funds > ----------- > Like the ski resort full of girls hunting for husbands > and husbands hunting for girls, the situation is not > as symmetrical as it might seem. > - Alan MacKay > -- > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From justin at mac.com Mon Oct 4 10:26:58 2010 From: justin at mac.com (Justin C. Walker) Date: Mon, 04 Oct 2010 02:26:58 -0700 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: References: Message-ID: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> On Oct 3, 2010, at 19:10 , Joe Bohanon wrote: > Try starting gap with the "-N" command, then run CreateCompletionFiles(); > quit and restart. Well, well, well...I learn something new every day, it seems. Occasionally, it even sticks. I tried this, and got past the problem I reported, only to run into this one: gap> Q:=QuaternionAlgebra(Rationals, -1, -1); gap> T:=StructureConstantsTable(Basis(Q)); Error, Rebuild completion files! (Crc value of "./lib/vspcrow.gi" does not match.) at return LeftModuleByGenerators( LeftActingDomain( V ), List( gens, function ( v ) return NiceVector( V, v ); end ) ); I get this when I start GAP using this line: GAP_MEM= /SandBox/Justin/sb/GAP/gap4r4/bin/gap.sh -L /SandBox/Justin/sb/GAP/Justin/MySpace -o 1024m $* If I start GAP using the full path to the executable, with no arguments, I don't get the above error. Curious. Justin -- Justin C. Walker, Curmudgeon-At-Large Director Institute for the Enhancement of the Director's Income -------- "Weaseling out of things is what separates us from the animals. Well, except the weasel." - Homer J Simpson -------- From justin at mac.com Mon Oct 4 10:27:50 2010 From: justin at mac.com (Justin C. Walker) Date: Mon, 04 Oct 2010 02:27:50 -0700 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: References: Message-ID: <9BAC0CA8-CC94-45C8-983D-8BC4921768D5@mac.com> On Oct 4, 2010, at 01:05 , Stephen Linton wrote: > Dear GAP Forum, > > This shouldn't happen, and suggests that your download might have been corrupted in some way. For instance, is it possible that you ran out of disk space > while downloading or unpacking the distribution? This can result in files being truncated. > > Could you possibly go into the lib directory of your distribution, do ls -l and mail the output to support at gap-system.org? I have sent the listing to the support address. But see my followup mail answering Joe's reply. Justin -- Justin C. Walker, Curmudgeon at Large Institute for the Absorption of Federal Funds ----------- If it weren't for carbon-14, I wouldn't date at all. ----------- From alexk at mcs.st-andrews.ac.uk Mon Oct 4 10:43:34 2010 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 4 Oct 2010 10:43:34 +0100 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> References: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> Message-ID: How the workspace /SandBox/Justin/sb/GAP/Justin/MySpace was created? If it was created with your previous installation of GAP, than you may need to regenerate it (if there is no need to load *that* particular workspace). Hope this helps, Alexander On 4 Oct 2010, at 10:26, Justin C. Walker wrote: > On Oct 3, 2010, at 19:10 , Joe Bohanon wrote: > >> Try starting gap with the "-N" command, then run CreateCompletionFiles(); >> quit and restart. > > Well, well, well...I learn something new every day, it seems. Occasionally, it even sticks. > > I tried this, and got past the problem I reported, only to run into this one: > > gap> Q:=QuaternionAlgebra(Rationals, -1, -1); > > gap> T:=StructureConstantsTable(Basis(Q)); > Error, Rebuild completion files! (Crc value of > "./lib/vspcrow.gi" does not match.) at > return LeftModuleByGenerators( LeftActingDomain( V ), > List( gens, function ( v ) > return NiceVector( V, v ); > end ) ); > > I get this when I start GAP using this line: > > GAP_MEM= /SandBox/Justin/sb/GAP/gap4r4/bin/gap.sh -L /SandBox/Justin/sb/GAP/Justin/MySpace -o 1024m $* > > If I start GAP using the full path to the executable, with no arguments, I don't get the above error. > > Curious. > > Justin > > -- > Justin C. Walker, Curmudgeon-At-Large > Director > Institute for the Enhancement of the Director's Income > -------- > "Weaseling out of things is what separates us from the animals. > Well, except the weasel." > - Homer J Simpson > -------- > > > > _______________________________________________ > Forum mailing list > Forum at 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 From sal at mcs.st-andrews.ac.uk Mon Oct 4 10:46:15 2010 From: sal at mcs.st-andrews.ac.uk (Stephen Linton) Date: Mon, 4 Oct 2010 10:46:15 +0100 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> References: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> Message-ID: Looks like you're using a saved workspace from an earlier version of GAP. If so, that would explain the problem -- saved workspaces are NOT portable across GAP versions I'm afraid. Steve On 4 Oct 2010, at 10:26, Justin C. Walker wrote: > > On Oct 3, 2010, at 19:10 , Joe Bohanon wrote: > >> Try starting gap with the "-N" command, then run CreateCompletionFiles(); >> quit and restart. > > Well, well, well...I learn something new every day, it seems. Occasionally, it even sticks. > > I tried this, and got past the problem I reported, only to run into this one: > > gap> Q:=QuaternionAlgebra(Rationals, -1, -1); > > gap> T:=StructureConstantsTable(Basis(Q)); > Error, Rebuild completion files! (Crc value of > "./lib/vspcrow.gi" does not match.) at > return LeftModuleByGenerators( LeftActingDomain( V ), > List( gens, function ( v ) > return NiceVector( V, v ); > end ) ); > > I get this when I start GAP using this line: > > GAP_MEM= /SandBox/Justin/sb/GAP/gap4r4/bin/gap.sh -L /SandBox/Justin/sb/GAP/Justin/MySpace -o 1024m $* > > If I start GAP using the full path to the executable, with no arguments, I don't get the above error. > > Curious. > > Justin > > -- > Justin C. Walker, Curmudgeon-At-Large > Director > Institute for the Enhancement of the Director's Income > -------- > "Weaseling out of things is what separates us from the animals. > Well, except the weasel." > - Homer J Simpson > -------- > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From justin at mac.com Mon Oct 4 16:41:08 2010 From: justin at mac.com (Justin C. Walker) Date: Mon, 04 Oct 2010 08:41:08 -0700 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: References: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> Message-ID: <2F31727A-8743-46F7-AFF8-A3FF7A8A3C70@mac.com> On Oct 4, 2010, at 02:46 , Stephen Linton wrote: > Looks like you're using a saved workspace from an earlier version of GAP. If so, that would explain the problem -- saved workspaces are NOT portable across GAP versions I'm afraid. I had noticed earlier that GAP was complaining about the saved workspace. I have recently upgraded from 10.5 to 10.6, and to the new default x86_64 (64-bit) architecture. After fiddling around with this, I recreated the workspace (and the complaining stopped), so I believe this is not the current answer. I tripped over the "Crc mismatch" problem after creating the new workspace. I have since recreated the new workspace several times. Is there something in this latest printout (or in the listing I sent support) that suggests that the workspace is actually out-of-date? Thanks for your help. Justin -- Justin C. Walker Curmudgeon-at-large -- Network, n., Difference between work charged for and work done From justin at mac.com Mon Oct 4 22:41:54 2010 From: justin at mac.com (Justin C. Walker) Date: Mon, 04 Oct 2010 14:41:54 -0700 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> References: <320397FD-BA51-4D90-9868-48A93435037A@mac.com> Message-ID: <2864DD51-1A02-4E0A-9A8E-665AECA2BEAA@mac.com> On Oct 4, 2010, at 02:26 , Justin C. Walker wrote: > > On Oct 3, 2010, at 19:10 , Joe Bohanon wrote: > >> Try starting gap with the "-N" command, then run CreateCompletionFiles(); >> quit and restart. > > Well, well, well...I learn something new every day, it seems. Occasionally, it even sticks. > > I tried this, and got past the problem I reported, only to run into this one: > > gap> Q:=QuaternionAlgebra(Rationals, -1, -1); > > gap> T:=StructureConstantsTable(Basis(Q)); > Error, Rebuild completion files! (Crc value of > "./lib/vspcrow.gi" does not match.) at > return LeftModuleByGenerators( LeftActingDomain( V ), > List( gens, function ( v ) > return NiceVector( V, v ); > end ) ); Ok, the above problem is actually a problem (at least on my systems). Turns out my claim that under some circumstances, I don't get the error is just a short between the headphones: I don't get the error when I work with a different quaternion algebra (with not both a,b = -1). Sorry for the confusion (for those of you still following this). Justin -- Justin C. Walker, Curmudgeon-At-Large Institute for the Absorption of Federal Funds -------- If you're not confused, You're not paying attention -------- From justin at mac.com Mon Oct 4 23:04:07 2010 From: justin at mac.com (Justin C. Walker) Date: Mon, 04 Oct 2010 15:04:07 -0700 Subject: [GAP Forum] "Crc mismatch" In-Reply-To: References: Message-ID: <3B151D25-9625-4B9B-8F33-C02DD3E6EB9D@mac.com> On Oct 4, 2010, at 01:05 , Stephen Linton wrote: > Dear GAP Forum, > > This shouldn't happen, and suggests that your download might have been corrupted in some way. For instance, is it possible that you ran out of disk space > while downloading or unpacking the distribution? This can result in files being truncated. Meant to comment on this but it got kind of late last night. First thing: if disk space ran out, there would be repercussions. I don't think 'tar' would be pleased, and also, I would get complaints in my syslog. Neither happened, so I think we can rule that out. I ran 'md5' on the tarball: MD5 (gap4r4p12.tar.bz2) = 2808c00e85e98843bb0e1a62c33ad5f0 I didn't see a checksum mentioned on the website but maybe I missed it. This should be a quick check to verify whether tarball corruption is an issue. If it were, I would again expect 'tar' to be unhappy, but "stuff happens". Is there anything I missed here? Thanks! Justin -- Justin C. Walker Curmudgeon at Large Director Institute for the Enhancement of the Director's Income -- Build a man a fire and he'll be warm for a night. Set a man on fire and he'll be warm for the rest of his life. From degraaf at science.unitn.it Tue Oct 5 09:39:27 2010 From: degraaf at science.unitn.it (degraaf at science.unitn.it) Date: Tue, 5 Oct 2010 10:39:27 +0200 Subject: [GAP Forum] Enumeration in a matrix algebra Message-ID: <20101005103927.bdwihkzqsccoswgk@www3.unitn.it> Dear Marc, Erik, Forum, > I have a finitely generated matrix algebra over the rationals that I know is > not a field but contains > zero divisors. > To find one (and this seems to be quite suitable) I simply use: > i:=First(rc.algebra, a-> Determinant(a)=0 and a <> 0*I); > Does anybody know how to do this another way with more chance for a success? In general this is a very difficult problem. If the input basis is bad, then no general algorithm is known (if the algebra is central simple). For more information: @article {MR2325916, AUTHOR = {P{\'{\i}}lnikov{\'a}, Jana}, TITLE = {Trivializing a central simple algebra of degree 4 over the rational numbers}, JOURNAL = {J. Symbolic Comput.}, FJOURNAL = {Journal of Symbolic Computation}, VOLUME = {42}, YEAR = {2007}, NUMBER = {6}, PAGES = {579--586}, ISSN = {0747-7171}, MRCLASS = {16K20}, MRNUMBER = {2325916 (2008c:16030)}, MRREVIEWER = {Zinovy Reichstein}, DOI = {10.1016/j.jsc.2007.01.001}, URL = {http://dx.doi.org/10.1016/j.jsc.2007.01.001}, } Best wishes, Willem de Graaf From reza_orfi at yahoo.com Wed Oct 6 15:57:58 2010 From: reza_orfi at yahoo.com (Reza Orfi) Date: Wed, 6 Oct 2010 07:57:58 -0700 (PDT) Subject: [GAP Forum] Test for Isoclinism in GAP Message-ID: <792159.79203.qm@web57102.mail.re3.yahoo.com> Dear forum, Is there any way to check? that ?two groups are Isoclinism. Best Regards Reza Orfi ? From trebauchet1986 at yahoo.co.in Sun Oct 10 13:29:01 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Sun, 10 Oct 2010 17:59:01 +0530 (IST) Subject: [GAP Forum] Using repsn package on A5 Message-ID: <318126.93143.qm@web94606.mail.in2.yahoo.com> Hi.... I do the following: gap> g:=AllSmallGroups(60)[5]; Group([ (1,2,3,4,5), (1,2,3) ]) gap> StructureDescription(g); "A5" gap> LoadPackage("repsn"); true gap> chi:=Irr(g);; gap> rep1:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ E(3), -1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3), E(3)^2, -E(3)^2 ], [ E(3), 1/2*E(3), 1/2*E(3)^2, -1/2*E(3) ], [ E(3), -E(3)-1/2*E(3)^2, -3/2*E(3)-1/2*E(3)^2, -1/2*E(3)^2 ] ], [ [ E(3)^2, 1/2*E(3), E(3)-1/2*E(3)^2, -1/2*E(3) ], [ 0, -1/2*E(3), -E(3)-1/2*E(3)^2, -1/2*E(3)-E(3)^2 ], [ E(3)^2, -1/2*E(3)^2, 1/2*E(3)-1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3)-1/2*E(3)^2, -1/2, -1/2*E(3)^2 ] ], [ [ 1, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)+E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 0, -1, -1, -E(3) ], [ 0, 0, 0, E(3) ], [ 0, 0, E(3)^2, 0 ] ] ] gap> rep2:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ 1/2*E(3), -1/2*E(3)-E(3)^2, E(3)^2, 1/2*E(3)^2 ], [ 0, -E(3)^2, E(3)^2, E(3) ], [ E(3)+1/2*E(3)^2, -3/2*E(3)^2, E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 1/2*E(3)-1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 0, -1/2*E(3) ] ], [ [ -1/2, 1/2, E(3), -1/2*E(3)-E(3)^2 ], [ 1/2*E(3)+E(3)^2, 1/2*E(3), 1, -1/2*E(3)^2 ], [ 1/2*E(3)+E(3)^2, -1/2*E(3)-E(3)^2, 0, -1/2*E(3)^2 ], [ -1/2*E(3)-E(3)^2, -3/2*E(3), E(3), -E(3)-1/2*E(3)^2 ] ], [ [ -1/2*E(3), 1/2*E(3)+E(3)^2, 0, E(3)+1/2*E(3)^2 ], [ 1/2*E(3), -1/2*E(3), E(3), -1/2*E(3)^2 ], [ -1/2*E(3)^2, -E(3)+1/2*E(3)^2, E(3), 1/2 ], [ E(3)^2, -1, 1, 0 ] ] ] As one can see, the representation matrices are different in the two instances. I tried this with a couple of other groups, but always got the same representation matrices. On going through the repsn manual, it seemed to me that this must be due to the fact that A5 is not solvable. So, if the group is solvable, then does the program always give the same representation matrices? Or is it that the matrices generated may be different for different trials even for a solvable group? Krishnamohan P From vdabbagh at sfu.ca Tue Oct 12 04:31:21 2010 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Mon, 11 Oct 2010 20:31:21 -0700 (PDT) Subject: [GAP Forum] Using repsn package on A5 In-Reply-To: <318126.93143.qm@web94606.mail.in2.yahoo.com> Message-ID: <591270563.134424.1286854281934.JavaMail.root@jaguar7.sfu.ca> Dear Krishna, The answer to your question is yes. You may get different representations for different trials even for solvable groups. For solvable groups, the only case that you will get the same answer is when it doesn't need to extend a representation. I hope it helps. Regards Vahid ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ ----- Original Message ----- From: "krishna mohan" To: "gap forum" Sent: Sunday, October 10, 2010 5:29:01 AM Subject: [GAP Forum] Using repsn package on A5 Hi.... I do the following: gap> g:=AllSmallGroups(60)[5]; Group([ (1,2,3,4,5), (1,2,3) ]) gap> StructureDescription(g); "A5" gap> LoadPackage("repsn"); true gap> chi:=Irr(g);; gap> rep1:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ E(3), -1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3), E(3)^2, -E(3)^2 ], [ E(3), 1/2*E(3), 1/2*E(3)^2, -1/2*E(3) ], [ E(3), -E(3)-1/2*E(3)^2, -3/2*E(3)-1/2*E(3)^2, -1/2*E(3)^2 ] ], [ [ E(3)^2, 1/2*E(3), E(3)-1/2*E(3)^2, -1/2*E(3) ], [ 0, -1/2*E(3), -E(3)-1/2*E(3)^2, -1/2*E(3)-E(3)^2 ], [ E(3)^2, -1/2*E(3)^2, 1/2*E(3)-1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3)-1/2*E(3)^2, -1/2, -1/2*E(3)^2 ] ], [ [ 1, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)+E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 0, -1, -1, -E(3) ], [ 0, 0, 0, E(3) ], [ 0, 0, E(3)^2, 0 ] ] ] gap> rep2:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ 1/2*E(3), -1/2*E(3)-E(3)^2, E(3)^2, 1/2*E(3)^2 ], [ 0, -E(3)^2, E(3)^2, E(3) ], [ E(3)+1/2*E(3)^2, -3/2*E(3)^2, E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 1/2*E(3)-1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 0, -1/2*E(3) ] ], [ [ -1/2, 1/2, E(3), -1/2*E(3)-E(3)^2 ], [ 1/2*E(3)+E(3)^2, 1/2*E(3), 1, -1/2*E(3)^2 ], [ 1/2*E(3)+E(3)^2, -1/2*E(3)-E(3)^2, 0, -1/2*E(3)^2 ], [ -1/2*E(3)-E(3)^2, -3/2*E(3), E(3), -E(3)-1/2*E(3)^2 ] ], [ [ -1/2*E(3), 1/2*E(3)+E(3)^2, 0, E(3)+1/2*E(3)^2 ], [ 1/2*E(3), -1/2*E(3), E(3), -1/2*E(3)^2 ], [ -1/2*E(3)^2, -E(3)+1/2*E(3)^2, E(3), 1/2 ], [ E(3)^2, -1, 1, 0 ] ] ] As one can see, the representation matrices are different in the two instances. I tried this with a couple of other groups, but always got the same representation matrices. On going through the repsn manual, it seemed to me that this must be due to the fact that A5 is not solvable. So, if the group is solvable, then does the program always give the same representation matrices? Or is it that the matrices generated may be different for different trials even for a solvable group? Krishnamohan P _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From trebauchet1986 at yahoo.co.in Wed Oct 13 03:05:39 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Wed, 13 Oct 2010 07:35:39 +0530 (IST) Subject: [GAP Forum] Using repsn package on A5 In-Reply-To: <591270563.134424.1286854281934.JavaMail.root@jaguar7.sfu.ca> References: <591270563.134424.1286854281934.JavaMail.root@jaguar7.sfu.ca> Message-ID: <796655.28946.qm@web94611.mail.in2.yahoo.com> Thanks Vahid, Just one more quick question...so is there a way to know, for a particular group and character, whether repsn is extending a representation or not (i.e for the command IrreucibleAffordingRepresentation)? Krishna ________________________________ From: Vahid Dabbaghian To: krishna mohan Cc: gap forum Sent: Tue, 12 October, 2010 9:01:21 AM Subject: Re: [GAP Forum] Using repsn package on A5 Dear Krishna, The answer to your question is yes. You may get different representations for different trials even for solvable groups. For solvable groups, the only case that you will get the same answer is when it doesn't need to extend a representation. I hope it helps. Regards Vahid ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ ----- Original Message ----- From: "krishna mohan" To: "gap forum" Sent: Sunday, October 10, 2010 5:29:01 AM Subject: [GAP Forum] Using repsn package on A5 Hi.... I do the following: gap> g:=AllSmallGroups(60)[5]; Group([ (1,2,3,4,5), (1,2,3) ]) gap> StructureDescription(g); "A5" gap> LoadPackage("repsn"); true gap> chi:=Irr(g);; gap> rep1:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ E(3), -1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3), E(3)^2, -E(3)^2 ], [ E(3), 1/2*E(3), 1/2*E(3)^2, -1/2*E(3) ], [ E(3), -E(3)-1/2*E(3)^2, -3/2*E(3)-1/2*E(3)^2, -1/2*E(3)^2 ] ], [ [ E(3)^2, 1/2*E(3), E(3)-1/2*E(3)^2, -1/2*E(3) ], [ 0, -1/2*E(3), -E(3)-1/2*E(3)^2, -1/2*E(3)-E(3)^2 ], [ E(3)^2, -1/2*E(3)^2, 1/2*E(3)-1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3)-1/2*E(3)^2, -1/2, -1/2*E(3)^2 ] ], [ [ 1, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)+E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 0, -1, -1, -E(3) ], [ 0, 0, 0, E(3) ], [ 0, 0, E(3)^2, 0 ] ] ] gap> rep2:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ 1/2*E(3), -1/2*E(3)-E(3)^2, E(3)^2, 1/2*E(3)^2 ], [ 0, -E(3)^2, E(3)^2, E(3) ], [ E(3)+1/2*E(3)^2, -3/2*E(3)^2, E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 1/2*E(3)-1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 0, -1/2*E(3) ] ], [ [ -1/2, 1/2, E(3), -1/2*E(3)-E(3)^2 ], [ 1/2*E(3)+E(3)^2, 1/2*E(3), 1, -1/2*E(3)^2 ], [ 1/2*E(3)+E(3)^2, -1/2*E(3)-E(3)^2, 0, -1/2*E(3)^2 ], [ -1/2*E(3)-E(3)^2, -3/2*E(3), E(3), -E(3)-1/2*E(3)^2 ] ], [ [ -1/2*E(3), 1/2*E(3)+E(3)^2, 0, E(3)+1/2*E(3)^2 ], [ 1/2*E(3), -1/2*E(3), E(3), -1/2*E(3)^2 ], [ -1/2*E(3)^2, -E(3)+1/2*E(3)^2, E(3), 1/2 ], [ E(3)^2, -1, 1, 0 ] ] ] As one can see, the representation matrices are different in the two instances. I tried this with a couple of other groups, but always got the same representation matrices. On going through the repsn manual, it seemed to me that this must be due to the fact that A5 is not solvable. So, if the group is solvable, then does the program always give the same representation matrices? Or is it that the matrices generated may be different for different trials even for a solvable group? Krishnamohan P _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From vdabbagh at sfu.ca Wed Oct 13 03:51:14 2010 From: vdabbagh at sfu.ca (Vahid Dabbaghian) Date: Tue, 12 Oct 2010 19:51:14 -0700 (PDT) Subject: [GAP Forum] Using repsn package on A5 In-Reply-To: <796655.28946.qm@web94611.mail.in2.yahoo.com> Message-ID: <923514609.187810.1286938274673.JavaMail.root@jaguar7.sfu.ca> Krishna, Whenever IrreucibleAffordingRepresentation needs to extend a representation, an Info message appears first. See the following example. gap> m:=AllPrimitiveGroups(DegreeOperation,81,IsSolvable,true);; gap> G:=m[30];; gap> chi := Irr(G)[8];; gap> rep := IrreducibleAffordingRepresentation(chi);; #I Need to extend a representation of degree 2. This may take a while. Vahid ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ From: "krishna mohan" To: "Vahid Dabbaghian" Cc: "gap forum" Sent: Tuesday, October 12, 2010 7:05:39 PM Subject: Re: [GAP Forum] Using repsn package on A5 Thanks Vahid, Just one more quick question...so is there a way to know, for a particular group and character, whether repsn is extending a representation or not (i.e for the command IrreucibleAffordingRepresentation)? Krishna From: Vahid Dabbaghian To: krishna mohan Cc: gap forum Sent: Tue, 12 October, 2010 9:01:21 AM Subject: Re: [GAP Forum] Using repsn package on A5 Dear Krishna, The answer to your question is yes. You may get different representations for different trials even for solvable groups. For solvable groups, the only case that you will get the same answer is when it doesn't need to extend a representation. I hope it helps. Regards Vahid ____________________________________________ Program Director Modelling of Complex Social Systems (MoCSSy) The IRMACS Centre (ASB 10905) Simon Fraser University, BC Canada Tel: 778-782-7854 http://mocssy.irmacs.sfu.ca/ ----- Original Message ----- From: "krishna mohan" < trebauchet1986 at yahoo.co.in > To: "gap forum" < forum at gap-system.org > Sent: Sunday, October 10, 2010 5:29:01 AM Subject: [GAP Forum] Using repsn package on A5 Hi.... I do the following: gap> g:=AllSmallGroups(60)[5]; Group([ (1,2,3,4,5), (1,2,3) ]) gap> StructureDescription(g); "A5" gap> LoadPackage("repsn"); true gap> chi:=Irr(g);; gap> rep1:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ E(3), -1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3), E(3)^2, -E(3)^2 ], [ E(3), 1/2*E(3), 1/2*E(3)^2, -1/2*E(3) ], [ E(3), -E(3)-1/2*E(3)^2, -3/2*E(3)-1/2*E(3)^2, -1/2*E(3)^2 ] ], [ [ E(3)^2, 1/2*E(3), E(3)-1/2*E(3)^2, -1/2*E(3) ], [ 0, -1/2*E(3), -E(3)-1/2*E(3)^2, -1/2*E(3)-E(3)^2 ], [ E(3)^2, -1/2*E(3)^2, 1/2*E(3)-1/2*E(3)^2, 1/2*E(3)^2 ], [ 1, -E(3)-1/2*E(3)^2, -1/2, -1/2*E(3)^2 ] ], [ [ 1, -1/2*E(3)+1/2*E(3)^2, 1/2*E(3)+E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 0, -1, -1, -E(3) ], [ 0, 0, 0, E(3) ], [ 0, 0, E(3)^2, 0 ] ] ] gap> rep2:=IrreducibleAffordingRepresentation(chi[4]); [ (1,2)(3,4), (1,4)(2,3), (1,3)(4,5) ] -> [ [ [ 1/2*E(3), -1/2*E(3)-E(3)^2, E(3)^2, 1/2*E(3)^2 ], [ 0, -E(3)^2, E(3)^2, E(3) ], [ E(3)+1/2*E(3)^2, -3/2*E(3)^2, E(3)^2, 1/2*E(3)-1/2*E(3)^2 ], [ 1/2*E(3)-1/2*E(3)^2, -1/2*E(3)+1/2*E(3)^2, 0, -1/2*E(3) ] ], [ [ -1/2, 1/2, E(3), -1/2*E(3)-E(3)^2 ], [ 1/2*E(3)+E(3)^2, 1/2*E(3), 1, -1/2*E(3)^2 ], [ 1/2*E(3)+E(3)^2, -1/2*E(3)-E(3)^2, 0, -1/2*E(3)^2 ], [ -1/2*E(3)-E(3)^2, -3/2*E(3), E(3), -E(3)-1/2*E(3)^2 ] ], [ [ -1/2*E(3), 1/2*E(3)+E(3)^2, 0, E(3)+1/2*E(3)^2 ], [ 1/2*E(3), -1/2*E(3), E(3), -1/2*E(3)^2 ], [ -1/2*E(3)^2, -E(3)+1/2*E(3)^2, E(3), 1/2 ], [ E(3)^2, -1, 1, 0 ] ] ] As one can see, the representation matrices are different in the two instances. I tried this with a couple of other groups, but always got the same representation matrices. On going through the repsn manual, it seemed to me that this must be due to the fact that A5 is not solvable. So, if the group is solvable, then does the program always give the same representation matrices? Or is it that the matrices generated may be different for different trials even for a solvable group? Krishnamohan P _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Thu Oct 14 18:40:39 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 14 Oct 2010 11:40:39 -0600 Subject: [GAP Forum] Test for Isoclinism in GAP References: <845D74E6-5814-43C1-A529-42B9456CC46D@math.colostate.edu> Message-ID: Dear Forum, On Oct 6, 2010, at 10/6/10 8:57, Reza Orfi wrote: > Is there any way to check that > two groups are Isoclinism. I am not aware of any predefined function which does this, so the only solution I can think of is to write a function based on the definition: - Run through all isomorphisms between G/Z and H/Z (should be sufficient to do this up to inner automorphisms) - For a sufficient set of elements a,b in G form commutators [a,b] (such that they generate G') and prospective images [c,d] with Za=Zc and Zb=Zd. Test whether this map defines an isomorphism - If so, test the remaining commutators pairs (up to conjugacy) 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 hulpke at me.com Fri Oct 15 15:11:45 2010 From: hulpke at me.com (Alexander Hulpke) Date: Fri, 15 Oct 2010 08:11:45 -0600 Subject: [GAP Forum] next gap release References: Message-ID: <94B440CD-1896-4DFF-B82D-5CFC5D45A695@me.com> Dear GAP forum, R.N.Tsai asked: > I'd like to request a small feature that can hopefully > be included : when assigning names to the generators of an algebra > this would be more useful > > AlgebraByStructureConstants( R, sctable, [name1, name2, ...] ) Unless I am misunderstanding your request, this functionality is already included in version 4.4.12, the following is a trivial example: gap> t:=EmptySCTable( 2, Zero( GF(5) ), "antisymmetric" ); [ [ [ [ ], [ ] ], [ [ ], [ ] ] ], [ [ [ ], [ ] ], [ [ ], [ ] ] ], -1, 0*Z(5) ] gap> a:=AlgebraByStructureConstants(GF(5),t,["x","y"]); gap> a.1; x > PS. when is the next release scheduled for? any previews of changes? I understand that companies often build up advance interest in forthcoming products by scheduling a release date and previewing features. This often results in the release of unfinished products and the feature list that is dictated more by marketing than by usability or need. This is not a model which I would consider desirable, or even feasible (most of the work done on GAP is volunteer work which cannot suddenly be expanded to hit an arbitrary deadline). The next release will be available when it is completed, including extensive tests. We are currently in early-stage testing and will start involving package authors in a couple of months to ensure packages will run as well. Personally I hope that the next release will be available within the next year, but delays in previous releases have taught me to not to make promises about release dates anymore. This next release will include a list of new features, but as this list is not yet completed I don't think it is worth to delay release work just for the sake of creating a preliminary features list at this point. Best wishes, 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 trebauchet1986 at yahoo.co.in Sat Oct 16 18:53:19 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Sat, 16 Oct 2010 23:23:19 +0530 (IST) Subject: [GAP Forum] Action of Random on a vector space Message-ID: <920021.47542.qm@web94609.mail.in2.yahoo.com> Hi... I have a list of basis vectors b. Now I define V:=VectorSpace(Rationals,b); I can choose a random vector in this vector space by using Random(V). Are there any subtleties about the way this works? Also, I have got zero vectors by this procedure. Is there any simple way to ensure that one gets only non-zero vectors? (Currently, I explicitly check this going through the elements of the vector, and then use Random again if I find all zero) Krishnamohan From primoz.moravec at fmf.uni-lj.si Mon Oct 18 19:43:03 2010 From: primoz.moravec at fmf.uni-lj.si (Primoz Moravec) Date: Mon, 18 Oct 2010 20:43:03 +0200 Subject: [GAP Forum] Announcement of the Harlaxton Group Theory Conference 2011 Message-ID: <1287427383.1696.8.camel@primoz-laptop> We are pleased to announce the second Group Theory Conference at Harlaxton to be held August 1-5, 2011 at Harlaxton Manor, Grantham, England. The focus and format of this conference follows what is now known as the Zassenhaus Conferences held in various locations in the United States for the last fifty years. Researchers and graduate students in all areas of group theory are encouraged to give talks. As is often the case researchers in different areas give new perspectives and ask fresh questions of those presenting in different areas. The conference website is at rfmorse.evansville.edu We are pleased to be able to keep the costs of the conference low with room, board, bus trip and banquet at $360 (205 BPS) per person for the week. There are a couple of flats in the manor/carriage house for families (which are welcome) and we have accommodations for couples. August 1 is the arrival date with a welcome time in the evening along with tours of the manor. August 5 is the departure date. The technical program will consist of 27 talks. Reply to this email address (harlaxton2011 at rfmorse.evansville.edu) to express your interest in the conference and let us know if you need a letter of invitation or any other information. We look forward to seeing you at Harlaxton in August. Primo? Moravec Robert F. Morse Conference organizers From nahikariblanco at hotmail.com Wed Oct 20 12:32:00 2010 From: nahikariblanco at hotmail.com (Nahikari Blanco) Date: Wed, 20 Oct 2010 13:32:00 +0200 Subject: [GAP Forum] Code Message-ID: Dear GAP Forum, I am studying group algorithms and I would like to know where in the source code of GAP are the basic group algorithms implemented. In particular, I am looking for the code of "SubgroupsSolvableGroup". I have seen that you had already answered this question in July 2000, but I have looked where you said and I have not found the code. Waiting for response, Thanks, Nahikari Blanco From dima at ntu.edu.sg Wed Oct 20 13:21:45 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed, 20 Oct 2010 20:21:45 +0800 Subject: [GAP Forum] Code In-Reply-To: References: Message-ID: Dear Nahikari Blanco, dear Forum, well, this is usually done by grepping lib/ directory of your GAP installation: $ cd /usr/local/src/gap/gap4r4/ (or whereever you have it) Then do $ grep SubgroupsSolvableGroup lib/* and look for the string containing #F in the output, amond .gi files (that where GAP language implementations would be) lib/grplatt.gi: l:=SubgroupsSolvableGroup(r,rec( lib/grppclat.gd:#F SubgroupsSolvableGroup([,]) . classreps of subgrps of , lib/grppclat.gd:DeclareGlobalFunction("SubgroupsSolvableGroup"); lib/grppclat.gd:## used in `SubgroupsSolvableGroup' (see "SubgroupsSolvableGroup") for lib/grppclat.gd:## used in `SubgroupsSolvableGroup' (see "SubgroupsSolvableGroup") for lib/grppclat.gi:#F SubgroupsSolvableGroup([,]) . classreps of subgrps of , [...] look in lib/grppclat.gd, you see that #F SubgroupsSolvableGroup is in line 451 That's it, read the code there. Some functions are actually implemented in C, as you can see by doing Print() at the GAP prompt. Then you have to look at src/ instead of lib, in files with names ending in .c. If you want to look for the code of a package function, look in pkg//lib and/or in pkg//src Hope this helps, Dmitrii On 20 October 2010 19:32, Nahikari Blanco wrote: > SubgroupsSolvableGroup -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From e.obrien at auckland.ac.nz Wed Oct 20 19:55:17 2010 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Thu, 21 Oct 2010 07:55:17 +1300 Subject: [GAP Forum] First Announcement: 5th de Brun Workshop Message-ID: <4CBF3B15.7030300@math.auckland.ac.nz> THE FIFTH DE BRUN WORKSHOP 'Groups, Combinatorics, Computing' National University of Ireland, Galway 11 April - 16 April 2011 The primary aim of the Workshop is to bring together experts in group theory and combinatorics, to discuss computational and algorithmic aspects that have recently emerged at the interface of both subjects. Three short lecture courses will be delivered by leading experts. There will also be contributed research talks. The Workshop will be beneficial and suitable both for early-stage researchers (including PhD students), as well as those who are more established. The Principal Lecturers are ? Prof. Martin Liebeck (Imperial College London) ? Prof. Cheryl Praeger (University of Western Australia) ? Prof. Leonard Soicher (Queen Mary University of London) For further information, see http://larmor.nuigalway.ie/~detinko/DeBrun5 To indicate interest in attending the Workshop, please send e-mail to dane.flannery at nuigalway.ie There is no registration fee nor formal registration process. The Workshop is funded by the de Br?n Centre for Computational Algebra at NUI Galway. Organizers: Alla Detinko Dane Flannery Eamonn O'Brien From arikan at gazi.edu.tr Tue Oct 26 07:36:05 2010 From: arikan at gazi.edu.tr (AHMET ARIKAN) Date: Tue, 26 Oct 2010 09:36:05 +0300 Subject: [GAP Forum] McLain groups References: <4CBF3B15.7030300@math.auckland.ac.nz> Message-ID: <13483765846544EE931E975772E118DD@AARIKAN> Dear Forum, I am interested in McLain groups (see D.J.S. Robinson, A Course in the Theory of Groups, p 348). I wonder if there is any member of the forum who uses GAP for calculations of products, conjugates, inverse of elements etc... in McLain groups. Best wishes, Ahmet Arikan From mbg.nimda at gmail.com Wed Oct 27 12:34:09 2010 From: mbg.nimda at gmail.com (mbg nimda) Date: Wed, 27 Oct 2010 13:34:09 +0200 Subject: [GAP Forum] Looking for proofs of statements that always seem true in GAP calculations Message-ID: Dear Forum members, GAP allows me to make the following explicit construction of a commutative matrix algebra, starting with a separable and irreducible polynomial p(x) of degree n over the rationals. I call this algebra the "companion algebra" because it is a generalization of the companion matrix (and the algebra it generates). The first step is the construction of the algebra A1 generated by the companion matrix M of the polynomial p. This is a commutative algebra of n x n matrices, containing a "root" of the polynomial p, namely M. The second step is to consider the polynomial q(x) = (p(x) - M) / (x - M), viewed as a polynomial with coefficients in A1. Let N be the companion matrix of q. This is a (n-1) x (n-1) block matrix with n x n matrices as entries, yielding n(n-1) x n(n-1 matrices over the rationals. The matrix M is "promoted" to a "scalar" (n-1) x (n-1) block matrix and the algebra A2 is constructed as the algebra generated by M and N. The following steps are simply a repetition of the construction done in the second step giving rise to algebras A2, ... and "roots" P,Q,... The construction ends when the remaining polynomial is of the second degree. The final algebra An is the "companion algebra" announced above. As an attachment to this post I include the function "companionalgebra" that explicitely constructs this algebra, providing a basis for this algebra as well as two generators "phi" and "psi" of the symmetric group Sn, as automorphisms of An expressed as matrices in this basis. I can prove some of the following statements but not all of them, but they seem to be valid in the few dozens of polynomials I tried. a) An is isomorphic to a direct product of n!/k copies of the splitting field F of the polynomial, where k is the order of the Galois group of the polynomial p. b) There is a subgroup G of the group of automorphisms of An that is isomorphic to the symmetric group Sn. c) There is a basis in An such that the group mentioned in b) acts transitively on this basis. d) The action of G on this basis is analogous to the action of G on the right cosets of a subgroup H of G which is isomorphic to the Galois group of p. I don't know if the construction of the companion algebra is of any practical use, but I think it is valid for educational purposes. That is is not completely useless can be seen in a posting I made in the group sci.math where I express in radicals a root of a quintinc that has the dihedral group D(10) as a Galois group: http://groups.google.com/group/sci.math/browse_thread/thread/9f234150358ce3e7?pli=1 So I home somebody has any hint in the proofs of above statements. Marc Bogaerts. From Jerry.Swan at nottingham.ac.uk Wed Oct 27 17:05:49 2010 From: Jerry.Swan at nottingham.ac.uk (Jerry Swan) Date: Wed, 27 Oct 2010 17:05:49 +0100 Subject: [GAP Forum] "Cannot extend workspace" on alternative presentation for S_n Message-ID: <1D20D24F37AD4843B03A393BE6597BB2048E7C30@VUIEXCHC.ad.nottingham.ac.uk> Dear Forum members, I'm interested in obtaining rewrite rules for the group of all pairwise transpositions of n elements, say 'Tn'. I know that in group-theoretic terms it contains a lot of redundancy - that's precisely why I want rewrite rules for it ;-) Taking g := Tn( 65 ); works fine, but for n := 66, the code (attached) gives me 'cannot extend workspace' on two different machines (with maximal values for -o) running XP with 2GB and 4GB respectively. Since that this is so, might this perhaps be due to some internal limit rather than a memory isssue per se? I ask in order to avoid obtaining more memory. Are there any suggestions for some alternative representation I might use (given that I'm interested in obtaining a rewriting system, it's not clear to me what my other representation options are, if any) . I'm familiar with KBMAG and MAF, but would prefer to be able to generate the group from within GAP if possible. Best regards, Jerry Swan. This message and any attachment are intended solely for the addressee and may contain confidential information. If you have received this message in error, please send it back to me, and immediately delete it. Please do not use, copy or disclose the information contained in this message or in any attachment. Any views or opinions expressed by the author of this email do not necessarily reflect the views of the University of Nottingham. This message has been checked for viruses but the contents of an attachment may still contain software viruses which could damage your computer system: you are advised to perform your own checks. Email communications with the University of Nottingham may be monitored as permitted by UK legislation. From jamesa at for.mat.bham.ac.uk Mon Nov 1 11:26:23 2010 From: jamesa at for.mat.bham.ac.uk (Adam James) Date: Mon, 1 Nov 2010 11:26:23 -0000 Subject: [GAP Forum] CyclePermInt Message-ID: <6DC39AC6F57E4533968F9179BA12DF22@bham.ac.uk> Dear Forum, Sorry If I have missed this somewhere in the reference manual or online, but I came across some GAP code recently using the CyclePermInt function and can't figure out what this function does? Regards, Adam From Bill.Allombert at math.u-bordeaux1.fr Mon Nov 1 13:12:54 2010 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Mon, 1 Nov 2010 14:12:54 +0100 Subject: [GAP Forum] CyclePermInt In-Reply-To: <6DC39AC6F57E4533968F9179BA12DF22@bham.ac.uk> References: <6DC39AC6F57E4533968F9179BA12DF22@bham.ac.uk> Message-ID: <20101101131254.GC27910@yellowpig> On Mon, Nov 01, 2010 at 11:26:23AM -0000, Adam James wrote: > Dear Forum, > > Sorry If I have missed this somewhere in the reference manual or online, but > I came across some GAP code recently using the CyclePermInt function and > can't figure out what this function does? Experiments suggest that CyclePermInt(perm, i) returns the orbit of i under perm as a list [i, perm(i), perm(perm(i)),...] gap> CyclePermInt((1,3)(4,2,5),5); [ 5, 4, 2 ] Cheers, Bill. From alexander.konovalov at gmail.com Mon Nov 1 14:38:07 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon, 1 Nov 2010 14:38:07 +0000 Subject: [GAP Forum] CyclePermInt In-Reply-To: <6DC39AC6F57E4533968F9179BA12DF22@bham.ac.uk> References: <6DC39AC6F57E4533968F9179BA12DF22@bham.ac.uk> Message-ID: Dear Adam, dear GAP Forum, On 1 Nov 2010, at 11:26, Adam James wrote: > Dear Forum, > > Sorry If I have missed this somewhere in the reference manual or online, but > I came across some GAP code recently using the CyclePermInt function and > can't figure out what this function does? > > Regards, > Adam CyclePermInt is currently undocumented: gap> ?CyclePermInt Help: no matching entry found Help: 'CyclePermInt' is currently undocumented. For details, try ?Undocumented Variables To find out what it is doing, first let's see if this is a function on an operation: gap> CyclePermInt; function( perm, point ) ... end and now print this function: gap> Print(last,"\n"); function ( perm, point ) <> end This output suggests that it is implemented in the kernel. Search in the source ( gap4r4/src/ ) reveals that it is contained in permutat.c and has a comment explaining what it does: ** 'CyclePermInt( , )' ** ** 'CyclePermInt' returns the cycle of , which must be a positive ** integer, under the permutation as a list. Note, however, that one should not rely on the behaviour of internal undocumented functions, since their semantics/names/arguments may be changed across releases and it is not guaranteed that they will be preserved in the next release at all. To the contrary, if the function is documented, then there is a very strict set of rules specifying how such changes should be done. Best regards, Alexander From ahulpke at gmail.com Tue Nov 2 04:35:37 2010 From: ahulpke at gmail.com (Alexander Hulpke) Date: Tue, 2 Nov 2010 12:35:37 +0800 Subject: [GAP Forum] "Cannot extend workspace" on alternative presentation for S_n In-Reply-To: <1D20D24F37AD4843B03A393BE6597BB2048E7C30@VUIEXCHC.ad.nottingham.ac.uk> References: <1D20D24F37AD4843B03A393BE6597BB2048E7C30@VUIEXCHC.ad.nottingham.ac.uk> Message-ID: <24321616-E824-4217-90E4-66698FFD15A3@gmail.com> Dear Jerry Swan, > > I'm interested in obtaining rewrite rules for the group of all pairwise transpositions of n elements, say 'Tn'. I know that in group-theoretic terms it contains a lot of redundancy - that's precisely why I want rewrite rules for it ;-) > > Taking g := Tn( 65 ); works fine, but for n := 66, the code (attached) gives me 'cannot extend workspace' on two different machines (with maximal values for -o) running XP with 2GB and 4GB respectively. Since that this is so, might this perhaps be due to some internal limit rather than a memory isssue per se? I ask in order to avoid obtaining more memory. The mailing list does not permit attachments. If you believe the attachment is of crucial importance please send it to me directly by private mail. However I assume that you use a Knuth-Bendix on a presentation. The implementation of the KB in GAP is rather basic and magnitudes beyond what KBMAG can do. > Are there any suggestions for some alternative representation I might use (given that I'm interested in obtaining a rewriting system, it's not clear to me what my other representation options are, if any) . I'm familiar with KBMAG and MAF, but would prefer to be able to generate the group from within GAP if possible. Your best bet is probably to load KBMAG as a GAP package (probably replacing the binaries with MAF) and then set KB_REW:=KBMAG_REW; This will have GAP use KBMAG in place of its own KB. Best wishes, Alexander Hulpke > > Please do not use, copy or disclose the information contained in this message or in any attachment. I have just done this by sending this mail. From csaba.schneider at gmail.com Wed Nov 3 09:46:29 2010 From: csaba.schneider at gmail.com (Csaba Schneider) Date: Wed, 3 Nov 2010 09:46:29 +0000 Subject: [GAP Forum] Conference on Groups and Semigroups, Lisbon Message-ID: Dear Colleagues Please find below the first announcement of the "Groups and Semigroups: Interactions and Computations" conference to be held between 25-29 July, 2011 in Lisbon (Portugal). More information can be found on the website http://caul.cii.fc.ul.pt/GSConf2011. Registration is now open. Best wishes Csaba Schneider ------------------------------------------------------------------------------ FIRST ANNOUNCEMENT OF THE CONFERENCE GROUPS AND SEMIGROUPS: INTERACTIONS AND COMPUTATIONS 25-29 JULY 2011 UNIVERSIDADE DE LISBOA, PORTUGAL http://caul.cii.fc.ul.pt/GSConf2011 SUMMARY The aim of this conference is to deepen the existing interactions between group theory and semigroup theory. The main themes of the conference include, not exclusively: the application of permutation group theory in the theory of transformation semigroups; computational techniques in group theory and semigroup theory; and combinatorial methods in group theory and semigroup theory. The conference will be organized by the Centro de ?lgebra da Universidade de Lisboa (CAUL), the Centro Internacional de Matem?tica (CIM), and the Departamento de Matem?tica da Faculdade de Ci?ncias da Universidade de Lisboa (DM-FCUL). INVITED SPEAKERS Carlos Andr?, University of Lisbon Peter Cameron, Queen Mary, University of London John Fountain, University of York Bettina Eick, Technical University of Braunschweig Robert Gray, University of Lisbon Zur Izhakian, Bar-Ilan University Olga Kharlampovich, McGill University Michael Kinyon, University of Denver Charles Leedham-Green, Queen Mary, University of London Alex Lubotzky, Hebrew University Peter Neumann, University of Oxford Cheryl Praeger, University of Western Australia ?kos Seress, University of Western Australia Pedro Silva, University of Porto Michail Volkov, University of Ekaterinburg Efim Zelmanov, University of California ORGANIZING COMMITTEE Gracinda Gomes (chair), CAUL, DM-FCUL Jo?o Ara?jo, CAUL, Universidade Aberta Victoria Gould, University of York Stephen Linton, University of St Andrews Eamonn O'Brien, University of Auckland Csaba Schneider, CAUL, DM-FCUL. The planned program includes 50 minutes lectures by the invited speakers and 20 minutes contributed talks by the participants. REGISTRATION If you wish to participate in the conference, please fill in the registration form (see below) and send it to conf2011 at cii.fc.ul.pt. For logistic reasons, the number of participants is limited, so please do register as soon as possible. The registration fee that covers the conference dinner and the conference trip is: 200 euros, until 31st March 2011; 225 euros, from 1st April 2011; 120 euros for postgraduate students; 100 euros for accompanying partners to participate in the dinner and the trip. The registration fee should be transferred to the following bank account: Centro Internacional de Matem?tica Av. Prof. Gama Pinto, 2 1649-003 Lisboa, Portugal Bank: Millennium BCP ? Santa Clara, Coimbra IBAN: PT50 0033000017280018083 12 BIC / SWIFT: BCOMPTPL Once the transfer is made, either email or fax us a copy of the bank transaction statement. Our email address is conf2011 at cii.fc.ul.pt and our fax number is +351 217954288. Please address the fax to the attention of Patricia Paraiba and do not forget to clearly identify the name of the participant. TRAVEL INFORMATION: We recommend to everyone coming from abroad flying to Lisbon's airport. Travel information, including information on accommodation, will be available on the conference website. REGISTRATION FORM If you wish to participate, please fill it in and return it by June 1, 2011 to conf2011 at cii.fc.ul.pt. NAME: AFFILIATION: ADDRESS FOR CORRESPONDENCE: E-mail ADDRESS: PHONE/FAX: DO YOU WISH TO GIVE A SEMINAR? Yes/No IF YES, PLEASE SEND US THE TITLE and an ABSTRACT (deadline: March 31th, 2011) NAME OF ACCOMPANYING PARTNER (if participates in the social events) From J.Howie at ma.hw.ac.uk Fri Nov 5 14:23:51 2010 From: J.Howie at ma.hw.ac.uk (Jim Howie) Date: Fri, 05 Nov 2010 14:23:51 +0000 Subject: [GAP Forum] Resignation of the Editorial Board of Journal of Group Theory Message-ID: <4CD41377.6000409@ma.hw.ac.uk> Resignation of the Editorial Board of Journal of Group Theory Dear Colleagues, On 20 October 2010 the entire Editorial Board of the Journal of Group Theory submitted their resignation to the publisher, De Gruyter, with effect from 31 December 2010. This unanimous action followed the resignation of the Managing Editor of the journal, Professor John Wilson, on October 14, 2010. The editors stopped processing any papers submitted after 14 October 2010 but will continue to work, up to 31 December 2010, with manuscripts submitted to them before 14 October 2010. We thank all authors and reviewers who worked with us for the benefit of mathematics. Miklos Abert Alexandre V. Borovik Nigel Boston Martin R. Bridson Michel Broue Francesco de Giovanni Robert Guralnick James Howie Andrei Jaikin Zapirain William M. Kantor Evgenii I. Khukhro Dessislava H. Kochloukova Linus Kramer Gunter Malle Alexandre Yu. Olshanskii Christopher W. Parker Derek J. S. Robinson Said Sidki George Willis John S. Wilson -- Heriot-Watt University is a Scottish charity registered under charity number SC000278. From gordon at maths.uwa.edu.au Sat Nov 6 01:00:26 2010 From: gordon at maths.uwa.edu.au (Gordon Royle) Date: Sat, 6 Nov 2010 09:00:26 +0800 Subject: [GAP Forum] Resignation of the Editorial Board of Journal of Group Theory In-Reply-To: <4CD41377.6000409@ma.hw.ac.uk> References: <4CD41377.6000409@ma.hw.ac.uk> Message-ID: Why? On 05/11/2010, at 10:23 PM, Jim Howie wrote: > Resignation of the Editorial Board of Journal of Group Theory > > Dear Colleagues, > > On 20 October 2010 the entire Editorial Board of the Journal of Group Theory submitted their resignation to the publisher, De Gruyter, with effect from 31 December 2010. This unanimous action followed the resignation of the Managing Editor of the journal, Professor John Wilson, on October 14, 2010. > > The editors stopped processing any papers submitted after 14 October 2010 but will continue to work, up to 31 December 2010, with manuscripts submitted to them before 14 October 2010. From gap at rkd.math.cornell.edu Sat Nov 6 01:29:57 2010 From: gap at rkd.math.cornell.edu (R. Keith Dennis) Date: Fri, 5 Nov 2010 20:29:57 -0500 Subject: [GAP Forum] Michler Prize Message-ID: <201011060129.oA61Tv1C005117@rkd.math.cornell.edu> I just learned that the Ruth I. Michler Prize of the AWM is still open for next year. It is a one term research position at Cornell (no teaching) for a woman in mathematics who has recently received tenure at some university. It pays something like $46,000 for six months & has a small travel supplement. It's possible to stay longer if one wishes to teach or has external funding. There is no restriction on the field of the applicant, although it's best if there are research groups in that area at Cornell. The original application deadline of November 1st has been extended. Please see http://sites.google.com/site/awmmath/programs/michler-prize for further information; one can find even more by doing a search with google. Best regards, Keith From vince at math.uconn.edu Sat Nov 6 02:22:38 2010 From: vince at math.uconn.edu (Vince Giambalvo) Date: Fri, 5 Nov 2010 22:22:38 -0400 Subject: [GAP Forum] Resignation of the Editorial Board of Journal of Group Theory In-Reply-To: References: <4CD41377.6000409@ma.hw.ac.uk> Message-ID: <120F8938-7086-482B-A73F-418727036DCC@math.uconn.edu> Jim, The real answer is "I have not idea", but a short time ago the entire editorial board of "Topology" resigned. Here is some details. Topology Board Resigns ? Not Even Wrong Vince On Nov 5, 2010, at 9:00 PM, Gordon Royle wrote: > Why? > > > On 05/11/2010, at 10:23 PM, Jim Howie wrote: > >> Resignation of the Editorial Board of Journal of Group Theory >> >> Dear Colleagues, >> >> On 20 October 2010 the entire Editorial Board of the Journal of Group Theory submitted their resignation to the publisher, De Gruyter, with effect from 31 December 2010. This unanimous action followed the resignation of the Managing Editor of the journal, Professor John Wilson, on October 14, 2010. >> >> The editors stopped processing any papers submitted after 14 October 2010 but will continue to work, up to 31 December 2010, with manuscripts submitted to them before 14 October 2010. > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ljj198123 at 126.com Sun Nov 7 07:13:30 2010 From: ljj198123 at 126.com (=?gbk?B?wfW9qL78?=) Date: Sun, 7 Nov 2010 15:13:30 +0800 (CST) Subject: [GAP Forum] A question Message-ID: <22e381.2463.12c252ec36a.Coremail.ljj198123@126.com> Dear forum, Let $G$ be a finite group. I would like to know that the intersection of the normalizers of derived subgroups of all subgroups of $G$. Is there a method to get it in GAP? Best Wishes Jianjun Liu From bsambale at gmx.de Sun Nov 7 08:38:40 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Sun, 07 Nov 2010 09:38:40 +0100 Subject: [GAP Forum] A question In-Reply-To: <22e381.2463.12c252ec36a.Coremail.ljj198123@126.com> References: <22e381.2463.12c252ec36a.Coremail.ljj198123@126.com> Message-ID: <4CD66590.9050007@gmx.de> try this: LoadPackage("sonata"); I:=G; #G is a group for H in Subgroups(G) do I:=Intersection(I,Normalizer(G,DerivedSubgroup(H))); od; #now I is the intersection you want best wishes, Benjamin Am 07.11.2010 08:13, schrieb ???: > Dear forum, > > Let $G$ be a finite group. I would like to know that the intersection of the normalizers of derived subgroups of all subgroups of $G$. > Is there a method to get it in GAP? > > Best Wishes > Jianjun Liu > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From bsambale at gmx.de Sun Nov 7 10:18:28 2010 From: bsambale at gmx.de (Benjamin Sambale) Date: Sun, 07 Nov 2010 11:18:28 +0100 Subject: [GAP Forum] A question In-Reply-To: <4CD66590.9050007@gmx.de> References: <22e381.2463.12c252ec36a.Coremail.ljj198123@126.com> <4CD66590.9050007@gmx.de> Message-ID: <4CD67CF4.3030202@gmx.de> maybe the following is faster (and does not need the sonata package): I:=G; #G is a group for H in List(ConjugacyClassesSubgroups(G),Representative) do I:=Intersection(I,Normalizer(G,DerivedSubgroup(H))); od; I:=Core(G,I); Am 07.11.2010 09:38, schrieb Benjamin Sambale: > try this: > > LoadPackage("sonata"); > I:=G; #G is a group > for H in Subgroups(G) do > I:=Intersection(I,Normalizer(G,DerivedSubgroup(H))); > od; > #now I is the intersection you want > > best wishes, > Benjamin > > Am 07.11.2010 08:13, schrieb ???: >> Dear forum, >> >> Let $G$ be a finite group. I would like to know that the intersection >> of the normalizers of derived subgroups of all subgroups of $G$. >> Is there a method to get it in GAP? >> >> Best Wishes >> Jianjun Liu >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jbohanon2 at gmail.com Sun Nov 7 17:29:21 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Sun, 7 Nov 2010 12:29:21 -0500 Subject: [GAP Forum] A question In-Reply-To: <4CD67CF4.3030202@gmx.de> References: <22e381.2463.12c252ec36a.Coremail.ljj198123@126.com> <4CD66590.9050007@gmx.de> <4CD67CF4.3030202@gmx.de> Message-ID: Make sure you've got a good representation of your group, too. If it's solvable, use iso:=IsomorphismPcGroup(G); H:=Image(iso); then run on H (and use PreImage(iso,I) where I is the result of the code below). If not solvable, use IsomorphismPermGroup and maybe also SmallerDegreePermutationRepresentation. ConjugacyClassesSubgroups stalls very badly if you feed it a finitely presented group. Even WITH the PC presentation, some of the higher rank groups of order 256 will stall badly on the "ConjugacyClassesSubgroups" command. Joe On Sun, Nov 7, 2010 at 5:18 AM, Benjamin Sambale wrote: > maybe the following is faster (and does not need the sonata package): > > > I:=G; #G is a group > for H in List(ConjugacyClassesSubgroups(G),Representative) do > > I:=Intersection(I,Normalizer(G,DerivedSubgroup(H))); > od; > I:=Core(G,I); > > Am 07.11.2010 09:38, schrieb Benjamin Sambale: > > try this: >> >> LoadPackage("sonata"); >> I:=G; #G is a group >> for H in Subgroups(G) do >> I:=Intersection(I,Normalizer(G,DerivedSubgroup(H))); >> od; >> #now I is the intersection you want >> >> best wishes, >> Benjamin >> >> Am 07.11.2010 08:13, schrieb ???: >> >>> Dear forum, >>> >>> Let $G$ be a finite group. I would like to know that the intersection of >>> the normalizers of derived subgroups of all subgroups of $G$. >>> Is there a method to get it in GAP? >>> >>> Best Wishes >>> Jianjun Liu >>> >>> _______________________________________________ >>> Forum mailing list >>> Forum at mail.gap-system.org >>> http://mail.gap-system.org/mailman/listinfo/forum >>> >>> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From a.francis at uws.edu.au Sun Nov 7 21:47:17 2010 From: a.francis at uws.edu.au (Andrew Francis) Date: Mon, 08 Nov 2010 08:47:17 +1100 Subject: [GAP Forum] Algebra/Combinatorics positions available at Western Sydney Message-ID: Dear GAP forum members, The School of Computing and Mathematics at the University of Western Sydney is advertising two positions in Pure Mathematics at the Lecturer/Senior Lecturer levels. We are specifically looking for strong researchers in algebra and/or combinatorics. Please see https://uws.nga.net.au/cp/ for further details. The closing date for applications is 2nd December. Regards, Andrew -- Dr Andrew Francis Associate Professor School of Computing and Mathematics University of Western Sydney Parramatta campus, room ECG63 http://www.scm.uws.edu.au/~andrew/ From bob.heffernan at gmail.com Mon Nov 8 12:22:15 2010 From: bob.heffernan at gmail.com (Robert Heffernan) Date: Mon, 8 Nov 2010 15:22:15 +0300 Subject: [GAP Forum] [group-pub-forum] FW: Resignation of the Editorial Board of Journal of Group Theory In-Reply-To: References: Message-ID: On 5 November 2010 20:39, Matthew Ragland wrote: > I have yet to see this posted on the forum. ?This sad news. ?Perhaps it is time for an Online Journal of Group Theory? I am not so sure that this is sad news. The Journal of Group Theory is massively overpriced. In 2007 the entire editorial staff of "K-Theory" resigned and it was soon announced that a new journal ("Journal of K-Theory") would be published, edited by most of the same people but at less than half the price. I think similar things have happened with other journals in the past. Perhaps something like this will happen in the case of the Journal of GT? It would be a very good development if there were a high quality group theory journal out there that didn't charge the enormous subscription fees of De Gruyter's journal. An on-line journal of group-theory would also be nice, of course. Regards, Bob Heffernan From tim at maths.tcd.ie Tue Nov 9 02:52:44 2010 From: tim at maths.tcd.ie (Timothy Murphy) Date: Tue, 9 Nov 2010 02:52:44 +0000 Subject: [GAP Forum] List of available functions Message-ID: <201011090252.44544.tim@maths.tcd.ie> I once brought up a list of available functions in GAP, but have forgotten what command I gave. Could some kind soul remind me, please. (I'm mainly interested in functions related to groups.) Also, is there a GUI interface to GAP? -- Timothy Murphy e-mail: gayleard /at/ eircom.net tel: +353-86-2336090, +353-1-2842366 s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland From jbohanon2 at gmail.com Tue Nov 9 12:08:51 2010 From: jbohanon2 at gmail.com (Joe Bohanon) Date: Tue, 9 Nov 2010 07:08:51 -0500 Subject: [GAP Forum] List of available functions In-Reply-To: <201011090252.44544.tim@maths.tcd.ie> References: <201011090252.44544.tim@maths.tcd.ie> Message-ID: The manual on the website has an alphabetical index of functions. Not sure how to do this within GAP. As for the GUI version, check out GGAP: http://ggap.sourceforge.net/ Also, if you have a Mac and are interested in drawing subgroup lattices try out CocoaGap: http://cocoagap.sourceforge.net/ Joe On Mon, Nov 8, 2010 at 9:52 PM, Timothy Murphy wrote: > I once brought up a list of available functions in GAP, > but have forgotten what command I gave. > Could some kind soul remind me, please. > (I'm mainly interested in functions related to groups.) > > Also, is there a GUI interface to GAP? > > -- > Timothy Murphy > e-mail: gayleard /at/ eircom.net > tel: +353-86-2336090, +353-1-2842366 > s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From ahulpke at gmail.com Tue Nov 9 12:16:26 2010 From: ahulpke at gmail.com (Alexander Hulpke) Date: Tue, 9 Nov 2010 20:16:26 +0800 Subject: [GAP Forum] List of available functions In-Reply-To: References: <201011090252.44544.tim@maths.tcd.ie> Message-ID: <7E5BA97B-3F47-47B3-BDD4-9E51D2F3ADB5@gmail.com> On Nov 9, 2010, at 8:08 PM, Joe Bohanon wrote: > > As for the GUI version, check out GGAP: > > http://ggap.sourceforge.net/ There is an installer for GAP and GGAP (Windows and OSX) at http://www.math.colostate.edu/~hulpke/CGT/education.html which might be useful as well. Best, Alexander Hulpke From trebauchet1986 at yahoo.co.in Tue Nov 9 13:12:40 2010 From: trebauchet1986 at yahoo.co.in (krishna mohan) Date: Tue, 9 Nov 2010 18:42:40 +0530 (IST) Subject: [GAP Forum] Error given by StructureDescription function Message-ID: <730679.66007.qm@web94616.mail.in2.yahoo.com> Hi... I run the following lines of code. gap> A:=[[0,1,0],[0,0,1],[1,0,0]]; B:=[[0,0,1],[0,1,0],[-1,0,0]]; C:=[[E(4),0,0],[0,E(4)^(-1),0],[0,0,1]]; gap> g2:=GroupWithGenerators([A,B,C]); gap> StructureDescription(g2); recursion depth trap (5000) at if func( elm ) then return true; fi; called from ForAny( mat, function ( r ) return not IsPlistRep( r ); end ) called from ac( i, g ) called from func( elm ) called from List( set, function ( i ) return ac( i, g ); end ) called from act( b, elm ) called from ... Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you may 'return;' to continue brk> But I can identify the group by doing: gap> IdGroup(g2); [ 96, 64 ] I can generate the same group using a different set of generators. Then, StructureDescription works fine. Why is it that there is a problem with this set of generators? How can I bypass this problem? Krishna Krishnamohan P Graduate Student IUCAA Pune India From tim at maths.tcd.ie Tue Nov 9 15:53:33 2010 From: tim at maths.tcd.ie (Timothy Murphy) Date: Tue, 9 Nov 2010 15:53:33 +0000 Subject: [GAP Forum] List of available functions In-Reply-To: <7E5BA97B-3F47-47B3-BDD4-9E51D2F3ADB5@gmail.com> References: <201011090252.44544.tim@maths.tcd.ie> <7E5BA97B-3F47-47B3-BDD4-9E51D2F3ADB5@gmail.com> Message-ID: <201011091553.34395.tim@maths.tcd.ie> On Tuesday, November 09, 2010 12:16:26 pm Alexander Hulpke wrote: > On Nov 9, 2010, at 8:08 PM, Joe Bohanon wrote: > > As for the GUI version, check out GGAP: > > > > http://ggap.sourceforge.net/ > > There is an installer for GAP and GGAP (Windows and OSX) at > http://www.math.colostate.edu/~hulpke/CGT/education.html > > which might be useful as well. Thanks, but I'm actually using Linux (Fedora-14). At a first try, ggap-1.9.7 does not compile, or rather ./config was unsuccessful, as an extra "../" was added to QT_CXXFLAGS" for some reason that escapes me at the moment. I suspect it thinks I am working on a Mac ... -- Timothy Murphy e-mail: gayleard /at/ eircom.net tel: +353-86-2336090, +353-1-2842366 s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland From ahulpke at gmail.com Wed Nov 10 11:07:42 2010 From: ahulpke at gmail.com (Alexander Hulpke) Date: Wed, 10 Nov 2010 19:07:42 +0800 Subject: [GAP Forum] Error given by StructureDescription function In-Reply-To: <730679.66007.qm@web94616.mail.in2.yahoo.com> References: <730679.66007.qm@web94616.mail.in2.yahoo.com> Message-ID: <13F3E0AC-089C-492F-AAAE-5B7B69E886E0@gmail.com> Dear Forum, On Nov 9, 2010, at 9:12 PM, krishna mohan wrote: > > gap> A:=[[0,1,0],[0,0,1],[1,0,0]]; B:=[[0,0,1],[0,1,0],[-1,0,0]]; > C:=[[E(4),0,0],[0,E(4)^(-1),0],[0,0,1]]; > gap> g2:=GroupWithGenerators([A,B,C]); > > gap> StructureDescription(g2); > recursion depth trap (5000) Thank you for reporting this bug. We will correct this in the next release. > How can I bypass > this problem? The error is triggered by the routine testing for finiteness of the matrix group. You can avoid it by telling GAP (immediately after creating the group) that it is finite: SetIsFinite(g2,true); with this the calculation will work fine. Finally, let me add the remark that you are doing a potentially rather costly calculation (StructureDescription) in a representation (matrix group over number field) that does not have very efficient algorithms available. You will be able to speed up calculations by first converting to a permutation group: hom:=IsomorphismPermGroup(g2); p2:=Image(hom); 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 darthandrus at gmail.com Wed Nov 10 19:46:11 2010 From: darthandrus at gmail.com (Ivan Andrus) Date: Wed, 10 Nov 2010 20:46:11 +0100 Subject: [GAP Forum] List of available functions In-Reply-To: <201011090252.44544.tim@maths.tcd.ie> References: <201011090252.44544.tim@maths.tcd.ie> Message-ID: <23C68DA3-2AFC-4B80-B3C0-005B960ECBFF@gmail.com> Perhaps GLOBAL_FUNCTION_NAMES is what you are looking for. -Ivan Andrus On Nov 9, 2010, at 3:52 AM, Timothy Murphy wrote: > I once brought up a list of available functions in GAP, > but have forgotten what command I gave. > Could some kind soul remind me, please. > (I'm mainly interested in functions related to groups.) > > Also, is there a GUI interface to GAP? > > -- > Timothy Murphy > e-mail: gayleard /at/ eircom.net > tel: +353-86-2336090, +353-1-2842366 > s-mail: School of Mathematics, Trinity College, Dublin 2, Ireland > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexander.konovalov at gmail.com Sat Nov 13 15:42:19 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Sat, 13 Nov 2010 15:42:19 +0000 Subject: [GAP Forum] List of available functions In-Reply-To: <23C68DA3-2AFC-4B80-B3C0-005B960ECBFF@gmail.com> References: <201011090252.44544.tim@maths.tcd.ie> <23C68DA3-2AFC-4B80-B3C0-005B960ECBFF@gmail.com> Message-ID: <812A8C33-9861-410F-AB42-5A5BABA18272@gmail.com> Dear Timothy, dear Forum, On 10 Nov 2010, at 19:46, Ivan Andrus wrote: > Perhaps GLOBAL_FUNCTION_NAMES is what you are looking for. > > -Ivan Andrus > > On Nov 9, 2010, at 3:52 AM, Timothy Murphy wrote: > >> I once brought up a list of available functions in GAP, >> but have forgotten what command I gave. >> Could some kind soul remind me, please. >> (I'm mainly interested in functions related to groups.) In addition to Joe's reference to the HTML version of the manual (which is not only available on the GAP website, but is also a part of a GAP installation), I would recommend using the search facilities of the GAP help system as the best way to get an overview of the functionality related with groups. Entering ??group at the GAP prompt will result in this: gap> ??group Help: several entries match this topic - type ?2 to get match [2] [1] polycyclic (not loaded): Group [2] RCWA (not loaded): Group [3] Tutorial: Groups and Homomorphisms [4] Tutorial: Permutation groups [5] Tutorial: Actions of Groups [6] Tutorial: Subgroups as Stabilizers [7] Tutorial: Group Homomorphisms by Images [8] Tutorial: Further Information about Groups and Homomorphisms [9] Tutorial: group general mapping [10] Tutorial: GroupHomomorphismByImages vs. GroupGeneralMappingByImages [11] Tutorial: group general mapping single-valued [12] Tutorial: group general mapping total [13] Reference: Free Groups, Monoids and Semigroups [14] Reference: FreeGroup [15] Reference: Rewriting in Groups and Monoids -- page, next line, back,

back line, quit -- and (for my particular GAP installation) this ends up with more than a thousand entries, including also those from GAP packages manuals: ... [1180] RCWA (not loaded): GeneratorsAndInverses for a group [1181] RCWA (not loaded): EpimorphismByGenerators for two groups gap> Note that GLOBAL_FUNCTION_NAMES is an undocumented internal variable (as its name in uppercase with underscores suggests). Moreover, it does not contain GAP operations, as you can see from the following convincing example: gap> ConjugacyClasses; gap> "ConjugacyClasses" in GLOBAL_FUNCTION_NAMES; false so it will not give you the full picture (unless you are specifically interested in the list of *functions* and not operations). Best regards, Alexander From akdasnehu at gmail.com Sun Nov 14 04:00:08 2010 From: akdasnehu at gmail.com (Dr. Ashish Kumar Das) Date: Sun, 14 Nov 2010 09:30:08 +0530 Subject: [GAP Forum] IsMatrix Message-ID: Dear all, I am confused with the command IsMatrix. In GAP a matrix is a list of lists of equal length whose entries lie in a common ring. But if I type mat:=[[1,2,3],[2,3]]; and then run IsMatrix(mat); I get the reply 'true'. Moreover, If I run DimensionsMat(mat); I get the reply '[2,3]'. Can any one tell me why does this happen? With regards Ashish Kumar Das NEHU, Shillong, INDIA From gap at rkd.math.cornell.edu Mon Nov 15 22:56:04 2010 From: gap at rkd.math.cornell.edu (R. Keith Dennis) Date: Mon, 15 Nov 2010 17:56:04 -0500 Subject: [GAP Forum] GAP installation on Ubuntu? Message-ID: <201011152256.oAFMu4a4017972@rkd.math.cornell.edu> Hi. It seems that the GAP installation built-in to Ubuntu isn't complete - not all packages are there (and the directory structure might be a little different). Is there a standard way to add other packages to an Ubuntu installation? Or is it best to install a complete version in a separate location? I'd appreciate some advice from someone familiar with running GAP under Ubuntu. Thanks! Keith From alexander.konovalov at gmail.com Mon Nov 15 23:04:00 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon, 15 Nov 2010 23:04:00 +0000 Subject: [GAP Forum] GAP installation on Ubuntu? In-Reply-To: <201011152256.oAFMu4a4017972@rkd.math.cornell.edu> References: <201011152256.oAFMu4a4017972@rkd.math.cornell.edu> Message-ID: Dear Keith, On 15 Nov 2010, at 22:56, R. Keith Dennis wrote: > Hi. It seems that the GAP installation built-in to Ubuntu isn't complete > - not all packages are there (and the directory structure might be a little > different). That's true, since it is running using Debian packages. Most Debian-based GNU/Linux distributions contain .deb-packages with the core part of GAP and a small number of the GAP packages. After an update or new release of GAP it takes some time until these Linux distributions are updated to the newest GAP version. > Is there a standard way to add other packages to an Ubuntu installation? > > Or is it best to install a complete version in a separate location? When I was using Ubuntu, my preference was a complete installation in my preferred location, following the standard procedure as described at http://www.gap-system.org/Download/UNIXInst.html Hope this helps. Best wishes, Alexander From gap at rkd.math.cornell.edu Mon Nov 15 23:08:08 2010 From: gap at rkd.math.cornell.edu (R. Keith Dennis) Date: Mon, 15 Nov 2010 18:08:08 -0500 Subject: [GAP Forum] memory management in GAP Message-ID: <201011152308.oAFN88q8018016@rkd.math.cornell.edu> Hi again - I have some questions regarding how one manages memory usage in GAP - the manual doesn't seem to answer my questions. 1. Is it possible to enlarge the memory available in GAP from the "inside"? That is, if one gets an out of memory error, is it possible to do something from the GAP command line that is more or less equivalent to starting with the -o option set to a larger value? My presumption is "no" since this didn't seem to be addressed in the manual. 2. Is there a way to force GAP to release memory it has used in a computation? It appears that GAP hangs onto the memory & it can only be recovered by killing GAP and starting over again. I have a program that in a single case creates a table with say 1G of data & uses up 30G of memory (in a 48G machine). The program finishes, I save the data, reset the variable containing the 1G of data to [], and then wish to do the next case. GAP does not release the memory (according to top, according to GasmanStatistics & according to its behavior). I kill GAP, reload program & run the next case with no problem. Why must I do this? Ok, am I making some error? Is there a way to use Gasman, or something else, to tell GAP to release the memory it used? I couldn't find this in the manual. Is it there? Are there tips for writing GAP code that avoids problems of this type? Any suggestions are most welcome! Keith From Bill.Allombert at math.u-bordeaux1.fr Mon Nov 15 23:43:31 2010 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Tue, 16 Nov 2010 00:43:31 +0100 Subject: [GAP Forum] GAP installation on Ubuntu? In-Reply-To: <201011152256.oAFMu4a4017972@rkd.math.cornell.edu> References: <201011152256.oAFMu4a4017972@rkd.math.cornell.edu> Message-ID: <20101115234331.GC9866@yellowpig> On Mon, Nov 15, 2010 at 05:56:04PM -0500, R. Keith Dennis wrote: > Hi. It seems that the GAP installation built-in to Ubuntu isn't complete > - not all packages are there (and the directory structure might be a little > different). This is true. Packaging everything is a lot of work and some packages have problematic licenses or depends on other packages with problematic licenses. > Is there a standard way to add other packages to an Ubuntu installation? Two actually: you can install them in /usr/local/share/gap, /usr/local/lib/gap or in $HOME/gap. > Or is it best to install a complete version in a separate location? I suppose it depends on your need. > I'd appreciate some advice from someone familiar with running GAP under > Ubuntu. I am the maintainer of the Debian packages in question. Ubuntu just import them from Debian. I will try to packages more of them next year. Is there some kind of popularity list for GAP packages ? Cheers, Bill. From sal at mcs.st-andrews.ac.uk Mon Nov 15 23:56:04 2010 From: sal at mcs.st-andrews.ac.uk (Stephen Linton) Date: Mon, 15 Nov 2010 23:56:04 +0000 Subject: [GAP Forum] memory management in GAP In-Reply-To: <201011152308.oAFN88q8018016@rkd.math.cornell.edu> References: <201011152308.oAFN88q8018016@rkd.math.cornell.edu> Message-ID: On 15 Nov 2010, at 23:08, R. Keith Dennis wrote: > Hi again - I have some questions regarding how one manages > memory usage in GAP - the manual doesn't seem to answer my > questions. > > 1. Is it possible to enlarge the memory available in GAP from > the "inside"? That is, if one gets an out of memory error, is > it possible to do something from the GAP command line that is > more or less equivalent to starting with the -o option set to > a larger value? > > My presumption is "no" since this didn't seem to be addressed in the > manual. At the moment no, although this is on the list to fix in a future version. > > 2. Is there a way to force GAP to release memory it has used in a > computation? It appears that GAP hangs onto the memory & it can only > be recovered by killing GAP and starting over again. > > I have a program that in a single case creates a table with say 1G of > data & uses up 30G of memory (in a 48G machine). The program > finishes, I save the data, reset the variable containing the 1G of > data to [], and then wish to do the next case. GAP does not release > the memory (according to top, according to GasmanStatistics & > according to its behavior). I kill GAP, reload program & run the next > case with no problem. Why must I do this? Ok, am I making some > error? You should not need to do this. GAP should release the memory at its next full garbage collection. If you want to hasten this process, you can call GASMAN("coillect"); to trigger an immediate collection. If your large data structure is not being freed in a garbage collection, it must be because GASMAN thinks it is still accessible. There are a few ways this might happen -- one of the variables last, last2 or last3 might refer to it it might contain data which is referenced from one of the pieces of information that GAP routinely caches, such as finite fields It might be an attribute of an object that stores its attribute values Less plausibly, but not impossibly, there may be some binary value on the stack or somewhere which just happens to look like a pointer to the object, although actually it's a C integer or something. In this case GASMAN will act "conservatively" and not free the object, but this is very rare. Steve > > Is there a way to use Gasman, or something else, to tell GAP to release > the memory it used? I couldn't find this in the manual. Is it there? > > Are there tips for writing GAP code that avoids problems of this type? > Any suggestions are most welcome! > > Keith > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ahulpke at gmail.com Mon Nov 15 23:57:54 2010 From: ahulpke at gmail.com (Alexander Hulpke) Date: Tue, 16 Nov 2010 07:57:54 +0800 Subject: [GAP Forum] memory management in GAP In-Reply-To: <201011152308.oAFN88q8018016@rkd.math.cornell.edu> References: <201011152308.oAFN88q8018016@rkd.math.cornell.edu> Message-ID: Dear Forum, Dear Keith Dennis, > Hi again - I have some questions regarding how one manages > memory usage in GAP - the manual doesn't seem to answer my > questions. > > 1. Is it possible to enlarge the memory available in GAP from > the "inside"? That is, if one gets an out of memory error, is > it possible to do something from the GAP command line that is > more or less equivalent to starting with the -o option set to > a larger value? If you get a GAP error message: ``Error, exceeded the permitted memory (`-o' command line option)'' you can simply type return; and continue the calculation with GAP allocating more memory. The reason for this safety trigger is that it is easily possible (and in the past has happened frequently) to have GAP accidentally bring a machine to its knees by allocating all of (or with virtual memory even more than) the physical memory; doing so would cause problems for other processes (e.g. text editors) or users. You can change the default level at which this error message is triggered with the -o command line option. If GAP tries to allocate beyond the maximal possible size (e.g. somewhere between 2 and 3 GB for a 32bit process) GAP will terminate with an error message that it cannot extend the workspace any more. > > 2. Is there a way to force GAP to release memory it has used in a > computation? It appears that GAP hangs onto the memory & it can only > be recovered by killing GAP and starting over again. GAP will release memory it does not need any more. For example, if you call GASMAN("message"); # to get display of memory use Elements(MathieuGroup(24)); # will get an ``exceeded permitted memory'' error unless you have a gargantuan machine and set -o quit; # to exit break loop GASMAN("collect"); #trigger garbage collection to show how much memory is used. you will see that GAP grows from its initial size to a few hundred MB and afterwards gets smaller. There is one caveat. Some of new memory (I believe somewhere around 20%) allocated is used for a ``pointer area'' that is required for GAPs memory management. This part of allocated memory is not returned to the system. If you allocate huge chunks of memory this can be a substantial part. > > I have a program that in a single case creates a table with say 1G of > data & uses up 30G of memory (in a 48G machine). The program > finishes, I save the data, reset the variable containing the 1G of > data to [], and then wish to do the next case. GAP does not release > the memory (according to top, according to GasmanStatistics & > according to its behavior). I kill GAP, reload program & run the next > case with no problem. Why must I do this? Ok, am I making some > error? I suspect that some objects are still alive. Popular places are the `last', `last2; and `last3' variables. You also (due to the nature of GAPs very conservative garbage collector) might be able to create immortal objects by creating cyclical links a->b, b->a (the exact conditions for this are a bit more complicated, just records with reverse pointers are not sufficient) , even if no other pointers exist any more to a and b. Without knowing what your code does it is hard to make educated guesses about the reason, but (as this sounds like a real showstopper) please feel free to contact us at support at gap-system.org (or me directly) with more information about the code and I'd be happy to have a look. All the 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 alexander.konovalov at gmail.com Tue Nov 16 00:00:26 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue, 16 Nov 2010 00:00:26 +0000 Subject: [GAP Forum] GAP installation on Ubuntu? In-Reply-To: <20101115234331.GC9866@yellowpig> References: <201011152256.oAFMu4a4017972@rkd.math.cornell.edu> <20101115234331.GC9866@yellowpig> Message-ID: <833CEE41-FC66-48F7-A656-164ECBC8B109@gmail.com> Thanks, Bill, for the further advice, On 15 Nov 2010, at 23:43, Bill Allombert wrote: > On Mon, Nov 15, 2010 at 05:56:04PM -0500, R. Keith Dennis wrote: >> Hi. It seems that the GAP installation built-in to Ubuntu isn't complete >> - not all packages are there (and the directory structure might be a little >> different). > > This is true. Packaging everything is a lot of work and some packages have > problematic licenses or depends on other packages with problematic licenses. > >> Is there a standard way to add other packages to an Ubuntu installation? > > Two actually: you can install them in /usr/local/share/gap, /usr/local/lib/gap > or in $HOME/gap. Additionally, the GAP manual explains how to use multiple root directories here http://www.gap-system.org/Manuals/doc/htm/ref/CHAP009.htm#SECT002 (this is probably the mechanism used in the Debian GAP packages?) best, Alexander > >> Or is it best to install a complete version in a separate location? > > I suppose it depends on your need. > >> I'd appreciate some advice from someone familiar with running GAP under >> Ubuntu. > > I am the maintainer of the Debian packages in question. Ubuntu just import them from Debian. > I will try to packages more of them next year. Is there some kind of popularity list for > GAP packages ? > > Cheers, > Bill. From Bill.Allombert at math.u-bordeaux1.fr Tue Nov 16 00:20:13 2010 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Tue, 16 Nov 2010 01:20:13 +0100 Subject: [GAP Forum] GAP installation on Ubuntu? In-Reply-To: <833CEE41-FC66-48F7-A656-164ECBC8B109@gmail.com> References: <201011152256.oAFMu4a4017972@rkd.math.cornell.edu> <20101115234331.GC9866@yellowpig> <833CEE41-FC66-48F7-A656-164ECBC8B109@gmail.com> Message-ID: <20101116002013.GD9866@yellowpig> On Tue, Nov 16, 2010 at 12:00:26AM +0000, Alexander Konovalov wrote: > > On Mon, Nov 15, 2010 at 05:56:04PM -0500, R. Keith Dennis wrote: > >> Hi. It seems that the GAP installation built-in to Ubuntu isn't complete > >> - not all packages are there (and the directory structure might be a little > >> different). > > > > This is true. Packaging everything is a lot of work and some packages have > > problematic licenses or depends on other packages with problematic licenses. > > > >> Is there a standard way to add other packages to an Ubuntu installation? > > > > Two actually: you can install them in /usr/local/share/gap, /usr/local/lib/gap > > or in $HOME/gap. > > Additionally, the GAP manual explains how to use multiple root directories here > > http://www.gap-system.org/Manuals/doc/htm/ref/CHAP009.htm#SECT002 > > (this is probably the mechanism used in the Debian GAP packages?) Yes, GAP_LIB is set in the gap script to GAP_LIB="$HOME/gap;/usr/local/lib/gap;/usr/local/share/gap;/usr/lib/gap;/usr/share/gap;" and it does gap.real -l "$GAP_LIB" Cheers, Bill. From mutluu at uni-hildesheim.de Wed Nov 17 20:58:56 2010 From: mutluu at uni-hildesheim.de (U.Mutlu) Date: Wed, 17 Nov 2010 21:58:56 +0100 Subject: [GAP Forum] Mappings how? Message-ID: <4CE44210.5090700@uni-hildesheim.de> Hi, I'm new to GAP and I try to solve the following from a textbook: A = { 1, 2 } and B = { a, b, c }. Show all possible mappings of A to B. How to do this in GAP? From marcus.bishop at gmail.com Wed Nov 17 21:39:02 2010 From: marcus.bishop at gmail.com (Marcus Bishop) Date: Wed, 17 Nov 2010 22:39:02 +0100 Subject: [GAP Forum] Mappings how? In-Reply-To: <4CE44210.5090700@uni-hildesheim.de> References: <4CE44210.5090700@uni-hildesheim.de> Message-ID: Computer algebra can be very frustrating when your questions are SO specific. What you want to do is first understand why your problem is equivalent to the following. List all the pairs [a,b] where a and b come from the set {1,2,3}. Then the answer to the second problem in GAP is given by the following command. gap> Tuples([1,2,3],2); [ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 1 ], [ 2, 2 ], [ 2, 3 ], [ 3, 1 ], [ 3, 2 ], [ 3, 3 ] ] You can find out more about the Tuples command by typing ?Tuples Best of luck! -marcus On Wed, Nov 17, 2010 at 9:58 PM, U.Mutlu wrote: > Hi, > I'm new to GAP and I try to solve the following from a textbook: > ?A = { 1, 2 } and B = { a, b, c }. > ?Show all possible mappings of A to B. > > How to do this in GAP? > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From alexander.konovalov at gmail.com Mon Nov 22 10:06:51 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon, 22 Nov 2010 10:06:51 +0000 Subject: [GAP Forum] IsMatrix In-Reply-To: References: Message-ID: On 14 Nov 2010, at 04:00, Dr. Ashish Kumar Das wrote: > Dear all, > I am confused with the command IsMatrix. In GAP a matrix is a list of > lists of equal length whose entries lie in a common ring. But if I > type mat:=[[1,2,3],[2,3]]; and then run IsMatrix(mat); I get the > reply 'true'. Moreover, If I run DimensionsMat(mat); I get the reply > '[2,3]'. Can any one tell me why does this happen? Dear Dr. Ashish Kumar Das, The answer that you are getting here is really what is expected. The confusion here actually arises because of an incomplete GAP documentation, which will be clarified in the next GAP release. For the sake of performance and optimal method selection, IsMatrix is implemented in a way that it does not check that all lists have the same length, so IsMatrix is allowed to return 'true' for objects that does not strictly correspond to the definition of matrix to be "a list of lists of equal length whose entries lie in a common ring". This convention, allows, for example, to distinguish a matrix from other types of objects for the method selection, saving time by not checking each time that all its rows have the same length. If you want to check the latter condition, you need to call "IsRectangularTable" which will became documented in the next GAP release: gap> mat:=[[1,2,3],[2,3]]; [ [ 1, 2, 3 ], [ 2, 3 ] ] gap> IsRectangularTable(mat); false gap> m:=[[1,2,3],[2,3,0]]; [ [ 1, 2, 3 ], [ 2, 3, 0 ] ] gap> IsRectangularTable(m); true In addition, note a call to "IsSomething" may be a filter which checks that the object belongs to the certain category of GAP objects, and does not check the mathematical property of an argument, like in the example: gap> IsGroup([(),(1,2)]); false gap> G:=AsGroup([(),(1,2)]); Group([ (1,2) ]) gap> IsGroup(G); true See chapter 13 "Types of Objects" of the reference manual for more details. Hope this helps, Alexander From johanneswachs at gmail.com Sun Dec 5 13:57:23 2010 From: johanneswachs at gmail.com (Johannes Wachs) Date: Sun, 5 Dec 2010 14:57:23 +0100 Subject: [GAP Forum] Multiplicative Group modulo n Message-ID: Is there a way to call up the multiplicative group of order n? In particular I have written a program to output some set of positive integers. I want to test if they are a subgroup of the multiplicative group mod n. It would be great if I could use Subgroup(G, L); Alternatively, I think I could solve my problem by checking to see if my set is closed under multiplication mod n. Is there a way to implement IsGroup for some set mod n with multiplication? Johannes Wachs From sandeepr.murthy at gmail.com Sun Dec 5 14:07:59 2010 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Sun, 5 Dec 2010 14:07:59 +0000 Subject: [GAP Forum] Multiplicative Group modulo n In-Reply-To: References: Message-ID: Hi, I think Units( R ), where R is a ring, will return the unit group of a ring R, which is a multiplicative group. A field is a ring, so it should work. According to the GAP manual (p. 568), it will be returned either as a list or group. If the return is list, then you can always Group() the list to make it a Group object. Sincerely, Sandeep. On 5 Dec 2010, at 13:57, Johannes Wachs wrote: > Is there a way to call up the multiplicative group of order n? > > In particular I have written a program to output some set of positive > integers. I want to test if they are a subgroup of the multiplicative group > mod n. It would be great if I could use Subgroup(G, L); > > Alternatively, I think I could solve my problem by checking to see if my set > is closed under multiplication mod n. Is there a way to implement IsGroup > for some set mod n with multiplication? > > Johannes Wachs > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From krkini at ntu.edu.sg Sun Dec 5 18:31:46 2010 From: krkini at ntu.edu.sg (Keshav Rao Kini) Date: Mon, 6 Dec 2010 02:31:46 +0800 Subject: [GAP Forum] Multiplicative Group modulo n In-Reply-To: References: Message-ID: Hello, I'd just like to point out that the unit group of a field is the field less the additive identity, by definition - I'm not sure what field you are referring to here. "Units( ZmodnZ( n ) )" is probably what Johannes wants. It returns a group. Yours, Keshav Disclaimer: the boilerplate text at the foot of this email has been added automatically by my mail server. This was not done by my request (rather the opposite) so please disregard it. 2010/12/5 Sandeep Murthy > Hi, I think Units( R ), where R is a ring, will return the unit group of a ring R, which is a multiplicative group. A field is a ring, so it should work. According to the GAP manual (p. 568), it will be returned either as a list or group. If the return is list, then you can always Group() the list to make it a Group object. Sincerely, Sandeep. On 5 Dec 2010, at 13:57, Johannes Wachs wrote: > Is there a way to call up the multiplicative group of order n? > > In particular I have written a program to output some set of positive > integers. I want to test if they are a subgroup of the multiplicative group > mod n. It would be great if I could use Subgroup(G, L); > > Alternatively, I think I could solve my problem by checking to see if my set > is closed under multiplication mod n. Is there a way to implement IsGroup > for some set mod n with multiplication? > > Johannes Wachs > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum _______________________________________________ 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 and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From alireza5119 at gmail.com Thu Dec 9 16:03:30 2010 From: alireza5119 at gmail.com (ali khalili) Date: Thu, 9 Dec 2010 08:03:30 -0800 Subject: [GAP Forum] question Message-ID: Dear forum I want abou find extension of groups Best wishes Alireza From hebert.perez at gmail.com Fri Dec 10 01:36:52 2010 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Fri, 10 Dec 2010 12:36:52 +1100 Subject: [GAP Forum] Interface with other languages Message-ID: Dear Forum, As far as I know, there is no way to compile a GAP program into an exec file, right? And I suppose you cannot call a GAP function from another language. Please correct me if I am wrong. Best regards, Hebert Perez-Roses University of Newcastle, Australia From krkini at ntu.edu.sg Fri Dec 10 04:49:14 2010 From: krkini at ntu.edu.sg (Keshav Rao Kini) Date: Fri, 10 Dec 2010 12:49:14 +0800 Subject: [GAP Forum] Interface with other languages In-Reply-To: References: Message-ID: Hello, I'm not sure if this is at all relevant, but while I am not aware of any way to compile a GAP program into an executable, the Sage project for example has built interface code which allows you to "call" GAP code from Sage, in a way - specifically it converts its own native objects into strings containing GAP expressions which represent the equivalent object in GAP, sends the code to a GAP process, waits for the output which it reads in as a string, then deciphers it back into its own native objects. It can do this for some other languages too - see http://www.sagemath.org/ . Yours, Keshav Disclaimer: the boilerplate text at the foot of this email has been added automatically by my mail server. This was not done by my request (rather the opposite) so please disregard it. 2010/12/10 Hebert P?rez-Ros?s > Dear Forum, As far as I know, there is no way to compile a GAP program into an exec file, right? And I suppose you cannot call a GAP function from another language. Please correct me if I am wrong. Best regards, Hebert Perez-Roses University of Newcastle, Australia _______________________________________________ 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 and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From max at quendi.de Fri Dec 10 09:06:19 2010 From: max at quendi.de (Max Horn) Date: Fri, 10 Dec 2010 10:06:19 +0100 Subject: [GAP Forum] Interface with other languages In-Reply-To: References: Message-ID: <14F0BF9E-0E27-4188-93C0-4F2FF4EAC225@quendi.de> Am 10.12.2010 um 02:36 schrieb Hebert P?rez-Ros?s: > Dear Forum, > > As far as I know, there is no way to compile a GAP program into an exec > file, right? Yes there is (at least on UNIX type systems like Linux and Mac OS X; don't know about Windows): You can use "gac", the "GAP compiler", see section 3.7 of the GAP reference manual > And I suppose you cannot call a GAP function from another > language. Please correct me if I am wrong. That depends on how you mean that. GAP does not offer a "direct" native interface which others can hook into to load GAP as, say, a (shared) library. One can of course "interface" by launching a separate GAP process, and then send text commands to it, and trying to "parse" the output of GAP (a technique sometimes also referred to as "screen scrubbing"). The Sage "interface" Keshav described uses exactly this technique. In addition, GAP can load dynamic modules (again, at least on UNIX type systems). I used that to implement some of the most time critical functions of a package I am working on in C, for a major speed boost. So you could call other systems from within GAP Hope that helps, Max From alexander.konovalov at gmail.com Fri Dec 10 11:42:38 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Fri, 10 Dec 2010 11:42:38 +0000 Subject: [GAP Forum] Interface with other languages In-Reply-To: <14F0BF9E-0E27-4188-93C0-4F2FF4EAC225@quendi.de> References: <14F0BF9E-0E27-4188-93C0-4F2FF4EAC225@quendi.de> Message-ID: On 10 Dec 2010, at 09:06, Max Horn wrote: > Am 10.12.2010 um 02:36 schrieb Hebert P?rez-Ros?s: > >> Dear Forum, >> >> As far as I know, there is no way to compile a GAP program into an exec >> file, right? > > Yes there is (at least on UNIX type systems like Linux and Mac OS X; don't know about Windows): You can use "gac", the "GAP compiler", see section 3.7 of the GAP reference manual Note that this will not result in a C code which you can run stand-alone. >> And I suppose you cannot call a GAP function from another >> language. Please correct me if I am wrong. > > That depends on how you mean that. GAP does not offer a "direct" native interface which others can hook into to load GAP as, say, a (shared) library. > One can of course "interface" by launching a separate GAP process, and then send text commands to it, and trying to "parse" the output of GAP (a technique sometimes also referred to as "screen scrubbing"). The Sage "interface" Keshav described uses exactly this technique. > > > In addition, GAP can load dynamic modules (again, at least on UNIX type systems). I used that to implement some of the most time critical functions of a package I am working on in C, for a major speed boost. So you could call other systems from within GAP > > > Hope that helps, > Max In addition, Hebert, you may communicate with the GAP server provided by the SCSCP package [1] from another application using SCSCP protocol [2]. A client could be e.g. GAP SCSCP client [1] or another SCSCP-compliant computer algebra system (e.g. MuPAD, via an extension package [3] or Macaulay2 [4] out-of-box). SCSCP has good C/C++ [5] and Java [6] APIs, which may be used for calls from C/C++/Java applications. Please let me know if you would be interested to go this way. Best regards, Alexander [1] http://www.cs.st-andrews.ac.uk/~alexk/scscp.htm [2] http://www.symbolic-computation.org/scscp [3] http://mupad.symcomp.org/ [4] http://www.math.uiuc.edu/Macaulay2/doc/Macaulay2-1.4/share/doc/Macaulay2/SCSCP/html/index.html [5] http://www.imcce.fr/Equipes/ASD/trip/scscp/ [6] http://java.symcomp.org/ From marek at mitros.org Fri Dec 10 13:24:47 2010 From: marek at mitros.org (Marek Mitros) Date: Fri, 10 Dec 2010 14:24:47 +0100 Subject: [GAP Forum] Octads for Mathieu group Message-ID: Hi All, For some time I struggle to obtain Golay code from the Mathieu group and opposite - find Mathieu group which preserve given Golay code. I found solution in one way which I present below. It is quick. Does anybody know how to obtain Mathieu Group M24 generators for given Golay code ? Regards, Marek Mitros #-------------------------------------------------------------------------------------------------------- m:=MathieuGroup(24); stab:=Stabilizer(m, [1,2,3,4,5], OnTuples); n0:=First([6..24], x->Size(Orbit(stab,x))=3); # find 3-element orbit # now we have first octad o1:=Concatenation([1..5], Orbit(stab, n0)); rs:=GlobalRandomSource; rand:=function(n) return Random(rs, [1..n]); end;; gen:=GeneratorsOfGroup(m); # 3 generators of order 23,5,2 octads:=[o1]; count:=0; while Size(octads)<759 and count <20000 do # generate random element rl:=List([1..10], n->rand(3)); g:=Product(gen{rl}); # find image of the octad im:=OnSets(o1, g); if not (im in octads) then Add(octads, im); fi; count:=count+1; if count mod 1000 = 0 then Print(Size(octads), " octads found; counter=", count,"\n"); fi; od; # now we have ready 759 octads. Verify result whether intersections of octads are 0,2,4 Set(List(octads, x->Size(Intersection(octads[1], x))))= [0,2,4,8]; From bart at mat.ug.edu.pl Fri Dec 10 14:44:16 2010 From: bart at mat.ug.edu.pl (bart at mat.ug.edu.pl) Date: Fri, 10 Dec 2010 15:44:16 +0100 Subject: [GAP Forum] Interface with other languages Message-ID: <2b1eb6bd9353ac82cd8c47b15c54fb82.squirrel@mat.ug.edu.pl> W dniu 10.12.2010 10:06, Max Horn pisze: > In addition, GAP can load dynamic modules (again, at least on UNIX type systems). I used that to implement some of the most time critical functions of a package I am working on in C, for a major speed boost. So you could call other systems from within GAP Hello, How to do this? Could I write my own function in C/C++, compile it into library, and use in GAP? I imagine that there could be necessary some types conversions (?) I see LoadDynamicModule() in http://www.gap-system.org/Manuals/doc/htm/ref/CHAP003.htm#SECT007 but is it possible to use it with library other than obtained by using gac? All the best Bartosz Putrycz From hebert.perez at gmail.com Sat Dec 11 13:10:06 2010 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Sun, 12 Dec 2010 00:10:06 +1100 Subject: [GAP Forum] Interface with other languages In-Reply-To: References: Message-ID: Thanks for all the responses; you have been very helpful. Cheers, Hebert. 2010/12/10 Keshav Rao Kini > Hello, > > I'm not sure if this is at all relevant, but while I am not aware of any > way to compile a GAP program into an executable, the Sage project for > example has built interface code which allows you to "call" GAP code from > Sage, in a way - specifically it converts its own native objects into > strings containing GAP expressions which represent the equivalent object in > GAP, sends the code to a GAP process, waits for the output which it reads in > as a string, then deciphers it back into its own native objects. It can do > this for some other languages too - see http://www.sagemath.org/ . > > Yours, > Keshav > > Disclaimer: the boilerplate text at the foot of this email has been added > automatically by my mail server. This was not done by my request (rather the > opposite) so please disregard it. > > > > 2010/12/10 Hebert P?rez-Ros?s > >> Dear Forum, >> >> As far as I know, there is no way to compile a GAP program into an exec >> file, right? And I suppose you cannot call a GAP function from another >> language. Please correct me if I am wrong. >> >> Best regards, >> Hebert Perez-Roses >> University of Newcastle, Australia >> _______________________________________________ >> 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 and > may be confidential and/or privileged. If you are not the intended > recipient, please delete it, notify us and do not copy, use, or disclose its > content. Thank you. > > Towards A Sustainable Earth: Print Only When Necessary > From dima at ntu.edu.sg Mon Dec 13 04:00:06 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Mon, 13 Dec 2010 12:00:06 +0800 Subject: [GAP Forum] Octads for Mathieu group In-Reply-To: References: Message-ID: Dear Marek, the crucial fact one can use is that the 21 octads containing a given triple of points, say, (1,2,3) form the projective plane of order 4. So, if you fix (1,2,3) and any two points, say, 4,5, in the projective plane P on {4..24}, you get a subgroup with 2 orbits on {6,24}, one of them, of length 3, corresponding to the unique line of P on 4 and 5. So the points in this length 3 orbit, together with {1..5}, will form an octad. g:=MathieuGroup(24); h:=Stabilizer(g,[1,2,3,4,5],OnTuples); o:=Orbits(h,[6..24]); o3:=Filtered(o,x->Length(x)=3)[1]; octads:=Orbit(g,Union([1..5],o3),OnSets);; give you the octads. Conversely, if you have the set of octads, you can start by taking the 21 octads containing {1,2,3}, and write down generators for its group of automorphisms (e.g. by coordinatizing the plane using homogeneous coordinates, a nice exercise in finite geometry). Then do the same for some other triple. Combining the resulting sets of generators will give you a generating set for M_{24}. Hope this helps, Dmitrii On 10 December 2010 21:24, Marek Mitros wrote: > Hi All, > > For some time I struggle to obtain Golay code from the Mathieu group and > opposite - find Mathieu group which preserve given Golay code. I found > solution in one way which I present below. It is quick. Does anybody know > how to obtain Mathieu Group M24 generators for given Golay code ? > > Regards, > Marek Mitros > > > #-------------------------------------------------------------------------------------------------------- > m:=MathieuGroup(24); > stab:=Stabilizer(m, [1,2,3,4,5], OnTuples); > n0:=First([6..24], x->Size(Orbit(stab,x))=3); # find 3-element orbit > # now we have first octad > o1:=Concatenation([1..5], Orbit(stab, n0)); > rs:=GlobalRandomSource; > rand:=function(n) return Random(rs, [1..n]); end;; > gen:=GeneratorsOfGroup(m); # 3 generators of order 23,5,2 > octads:=[o1]; count:=0; > while Size(octads)<759 and count <20000 do > # generate random element > rl:=List([1..10], n->rand(3)); > g:=Product(gen{rl}); > # find image of the octad > im:=OnSets(o1, g); > if not (im in octads) then > Add(octads, im); > fi; > count:=count+1; > if count mod 1000 = 0 then Print(Size(octads), " octads found; counter=", > count,"\n"); fi; > od; > # now we have ready 759 octads. Verify result whether intersections of > octads are 0,2,4 > Set(List(octads, x->Size(Intersection(octads[1], x))))= [0,2,4,8]; > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From marek at mitros.org Wed Dec 15 08:30:59 2010 From: marek at mitros.org (Marek Mitros) Date: Wed, 15 Dec 2010 09:30:59 +0100 Subject: [GAP Forum] Octads for Mathieu group In-Reply-To: References: Message-ID: Thank you for the answer ! Here is the code for generating Mathieu group preserving my set of octads from given Golay code. I did it using advices from Dmitrij, so I share this code with GAP forum as well. It works but I do not understand why :) I need to learn more about projective spaces over finite fields. Regards, Marek # My set of octads is stored in variable e.g. [1,2,3,4,9,10,11,12] is in this set. # Function generating permutation from octad. Parameters description: # f - octad; trip - triple inside that octad # o21 - 21 octads containing that triple per_from_octad:=function(f, trip, o21) local res, res2, per; res:=Filtered(List(o21, x->Difference(x, Concatenation(f, trip))), y->Size(y)=2); Add(res, trip{[2,3]}); res2:=List(res, x->[x[2],x[1]]); # swap elements per:=MappingPermListList(Concatenation(res), Concatenation(res2)); # OK return per; end;; trip:=[22,23,24]; # take first triple ot:=Filtered(ioctads, o->IsSubset(o, trip)); # 21 octads containing triple fx:=Filtered(ioctads, o->(trip[1] in o) and not (trip[2] in o) and not (trip[3] in o));; # 120 gen:=List(fx{[1,5,9,12]}, x->per_from_octad(x, trip, ot)); # generate group with 40320 elements # it can be checked that generators of this group preserve octads. Of course I did some additional work to figure out that 1,5,9,12 elements generate this group. trip:=[1,2,3]; # second triple ot:=Filtered(ioctads, o->IsSubset(o, trip)); # 21 octads containing trip fx:=Filtered(ioctads, o->(trip[1] in o) and not (trip[2] in o) and not (trip[3] in o));; # 120 gen2:=List(fx{[30,31,33,37]}, x->per_from_octad(x, trip, ot)); # generate group with 40320 elements gm:=Concatenation(gen, gen2); # gm{[1..5]} generate M23, [1..6] generate M24 m:=Group(gm); # Mathieu group M24 with 244 823 040 which preserve my set of octads. On Mon, Dec 13, 2010 at 5:00 AM, Asst. Prof. Dmitrii (Dima) Pasechnik < dima at ntu.edu.sg> wrote: > Dear Marek, > > the crucial fact one can use is that the 21 octads containing a given > triple of points, > say, (1,2,3) > form the projective plane of order 4. > So, if you fix (1,2,3) and any two points, say, 4,5, in the projective > plane P on {4..24}, > you get a subgroup with 2 orbits on {6,24}, one of them, of length 3, > corresponding > to the unique line of P on 4 and 5. > So the points in this length 3 orbit, together with {1..5}, will form an > octad. > g:=MathieuGroup(24); > h:=Stabilizer(g,[1,2,3,4,5],OnTuples); > o:=Orbits(h,[6..24]); > o3:=Filtered(o,x->Length(x)=3)[1]; > octads:=Orbit(g,Union([1..5],o3),OnSets);; > > give you the octads. > > Conversely, if you have the set of octads, you can start by taking the > 21 octads containing {1,2,3}, and write down generators for its group > of automorphisms (e.g. by coordinatizing the > plane using homogeneous coordinates, a nice exercise in finite > geometry). Then do the same > for some other triple. Combining the resulting sets of generators will give > you > a generating set for M_{24}. > > Hope this helps, > Dmitrii > > > On 10 December 2010 21:24, Marek Mitros wrote: > > Hi All, > > > > For some time I struggle to obtain Golay code from the Mathieu group and > > opposite - find Mathieu group which preserve given Golay code. I found > > solution in one way which I present below. It is quick. Does anybody know > > how to obtain Mathieu Group M24 generators for given Golay code ? > > > > Regards, > > Marek Mitros > > > From hulpke at math.colostate.edu Wed Dec 15 18:14:30 2010 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 15 Dec 2010 11:14:30 -0700 Subject: [GAP Forum] Multiplicative Group modulo n In-Reply-To: References: Message-ID: <8C10DB45-AF33-4CD3-A126-F5CAD07C5DB2@math.colostate.edu> Dear GAP Forum, On Dec 5, 2010, at 12/5/10 6:57, Johannes Wachs wrote: > Is there a way to call up the multiplicative group of order n? You could create Z/nZ in GAP as Units(Integers mod 75); (or whatever modulus you like). > > In particular I have written a program to output some set of positive > integers. I want to test if they are a subgroup of the multiplicative group > mod n. It would be great if I could use Subgroup(G, L); > > Alternatively, I think I could solve my problem by checking to see if my set > is closed under multiplication mod n. Is there a way to implement IsGroup > for some set mod n with multiplication? If you create a group in GAP, the convention is that GAP will take the multiplicative closure of this generating set. Thus -- unless you wanted to compare elements -- `Subgroup' will not help for testing whether a set is a group. Similarly `IsGroup' is declared in GAP as a category, i.e. a property that an object will have from creation, but that is not testable. (I.e. if you define a semigroup, even if it turns out to be a group, it will never fulfill `IsGroup'.) In the case of your problem, I fear that fundamentally you will have to test closure (though the fact that it is a subset of an abelian group with known base will allow for some shortcuts). 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 hebert.perez at gmail.com Sun Dec 19 12:22:20 2010 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Sun, 19 Dec 2010 23:22:20 +1100 Subject: [GAP Forum] cycle index and Polya enumeration Message-ID: Dear all, Does anybody have a GAP function to compute the cycle index of a permutation group, and perform Polya enumeration? Best regards, Hebert Perez-Roses The University of Newcastle, Australia From hedtke at me.com Sun Dec 19 19:05:23 2010 From: hedtke at me.com (hedtke) Date: Sun, 19 Dec 2010 19:05:23 +0000 (GMT) Subject: [GAP Forum] log_a b in floating point arithmetic Message-ID: Dear Forum, is there a way to compute log_a b in floating point arithmetic in GAP? In the Forum Archive I found two solutions, but they didn't work: 1)?there is a function LOG_FLOAT, but when I used it, GAP crashed. 2) there was a file "decimal.g" on?ftp.math.rwth-aachen.de which may do what I want, but the FTP server is not available. Can you help me? Thanks, Ivo From alexander.konovalov at gmail.com Sun Dec 19 20:43:57 2010 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Sun, 19 Dec 2010 20:43:57 +0000 Subject: [GAP Forum] log_a b in floating point arithmetic In-Reply-To: References: Message-ID: Dear Ivo, On 19 Dec 2010, at 19:05, hedtke wrote: > Dear Forum, > > is there a way to compute log_a b in floating point arithmetic in GAP? > > In the Forum Archive I found two solutions, but they didn't work: > 1) there is a function LOG_FLOAT, but when I used it, GAP crashed. LOG_FLOAT is undocumented function (so it is not guaranteed to work as such in future releases, but a hint could be seen from here: gap> LOG_FLOAT; function( float ) ... end - its argument must be a float, e.g. gap> a:=LOG_FLOAT(Float(8)); 2.07944 gap> b:=LOG_FLOAT(Float(2)); 0.693147 gap> c:=a/b; 3 gap> IsFloat(c); true Note that c is also a float. > 2) there was a file "decimal.g" on ftp.math.rwth-aachen.de which may do what I want, but the FTP server is not available. This may be a problem with DNS rather than with the FTP server - it seems available for me now. Anyway, this is probably this code for GAP 3.4.4 mirrored in Aachen: ftp://ftp.gap-system.org/pub/gap/gap-3.4.4/deposit/gap/decimal.g For GAP 4, there is a package FUtil by Frank L?beck, partially based on decimal.g: http://www.mth.rwth-aachen.de/~Frank.Luebeck/gap/FUtil/index.html Hope this helps, Alexander From gordon at maths.uwa.edu.au Sun Dec 19 23:25:46 2010 From: gordon at maths.uwa.edu.au (Gordon Royle) Date: Mon, 20 Dec 2010 07:25:46 +0800 Subject: [GAP Forum] cycle index and Polya enumeration In-Reply-To: References: Message-ID: I wish GAP had decent support for polynomials...... This is a bit clunky because I have to use x_1000 for the final variable to sub into the expression... cycleIndex computes the cycle index... say zg = cycleIndex(g); Then do Value(zg, nvars(deg), xvals(deg)) to substitute in the usual "1+x, 1+x^2, 1+x^3 ... " etc... where "deg" is the degree of the group. ############################################################################### # # Calculates the cycle index of a group directly from the conjugacy classes # cycleIndex := function(g) local cl,cs,x,px,term,zg,deg,i; zg := 0; deg := NrMovedPoints(g); cl := ConjugacyClasses(g); for x in cl do px := Representative(x); cs := CycleStructurePerm(px); term := Size(x) * Indeterminate(Rationals,1) ^ (deg - NrMovedPoints(px)); #Print(cs,"-"); for i in [1..deg] do if (IsBound(cs[i])) then term := term * Indeterminate(Rationals,i+1)^cs[i]; fi; od; #Print(term,"\n"); zg := zg + term; od; return zg/Order(g); end; ############################################################################ # Returns a list of the first n indeterminates to sub into the cycle index nvars := function(n) local i, vars; vars := []; for i in [1..n] do Add(vars,Indeterminate(Rationals,i)); od; return vars; end; ############################################################################ # Returns a list of length n, with entries equal to 1+x, 1+x^2 and so on xvals := function(n) local i, vals, x; x := Indeterminate(Rationals,1000); Print(IndeterminateNumberOfLaurentPolynomial(x),"\n"); vals := []; for i in [1..n] do Add(vals,1+x^i); od; return vals; end; On 19/12/2010, at 8:22 PM, Hebert P?rez-Ros?s wrote: > Dear all, > > Does anybody have a GAP function to compute the cycle index of a permutation > group, and perform Polya enumeration? > > Best regards, > > Hebert Perez-Roses > The University of Newcastle, Australia > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From kmorris2 at gmail.com Wed Dec 22 13:40:36 2010 From: kmorris2 at gmail.com (Katie Morrison) Date: Wed, 22 Dec 2010 07:40:36 -0600 Subject: [GAP Forum] Matrices that satisfy MM^T=I or MM^T=\lambda*I Message-ID: I understand that the general orthogonal group that GAP computes is not the group of matrices that satisfy MM^T=I because the GO group they compute actually leaves a different bilinear form fixed than the dot product. But is there an easy way to find the group of matrices that satisfy MM^T=I and or to find the generalized version of this that satisfy MM^T=\lambda*I for some nonzero \lambda \in GF(q)? A brute force search becomes completely unwieldy for matrices larger than 3 by 3, so if I can find some easy way to map from the general orthogonal group that GAP uses or find an efficient algorithm for computing this other group, that would be great. Thanks, Katie Morrison From dima at ntu.edu.sg Wed Dec 22 14:15:46 2010 From: dima at ntu.edu.sg (Asst. Prof. Dmitrii (Dima) Pasechnik) Date: Wed, 22 Dec 2010 22:15:46 +0800 Subject: [GAP Forum] Matrices that satisfy MM^T=I or MM^T=\lambda*I In-Reply-To: References: Message-ID: Dear Katie, MM^T=\lambda*I holds iff \lambda is a square in GF(q), i.e. \lamda=\mu^2, as can be see by taking the determinant of both sides of your equation. Then each M can be obtained as \mu M', for M' in GO(n,GF(q)). Best, Dmitrii On 22 December 2010 21:40, Katie Morrison wrote: > I understand that the general orthogonal group that GAP computes is not the > group of matrices that satisfy MM^T=I because the GO group they compute > actually leaves a different bilinear form fixed than the dot product. But > is there an easy way to find the group of matrices that satisfy MM^T=I and > or to find the generalized version of this that satisfy MM^T=\lambda*I for > some nonzero \lambda \in GF(q)? A brute force search becomes completely > unwieldy for matrices larger than 3 by 3, so if I can find some easy way to > map from the general orthogonal group that GAP uses or find an efficient > algorithm for computing this other group, that would be great. > > Thanks, > Katie Morrison > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Dmitrii Pasechnik ----- DISCLAIMER: Any text following this sentence does not constitute a part of this message, and was added automatically during transmission. CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. Towards A Sustainable Earth: Print Only When Necessary From pcara at vub.ac.be Wed Dec 22 14:17:28 2010 From: pcara at vub.ac.be (Philippe Cara (minitower)) Date: Wed, 22 Dec 2010 15:17:28 +0100 Subject: [GAP Forum] Matrices that satisfy MM^T=I or MM^T=\lambda*I In-Reply-To: References: Message-ID: <20101222151728.031ffb87@gauss> Hello Katie, You might be interested in the 'forms' package wich can be found in the packages section of http://www.gap-system.org Forms is a package, developed by John Bamberg and Jan De Beule. It 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). Best regards, Philippe Cara On Wed, 22 Dec 2010 07:40:36 -0600 Katie Morrison wrote: > I understand that the general orthogonal group that GAP computes is > not the group of matrices that satisfy MM^T=I because the GO group > they compute actually leaves a different bilinear form fixed than the > dot product. But is there an easy way to find the group of matrices > that satisfy MM^T=I and or to find the generalized version of this > that satisfy MM^T=\lambda*I for some nonzero \lambda \in GF(q)? A > brute force search becomes completely unwieldy for matrices larger > than 3 by 3, so if I can find some easy way to map from the general > orthogonal group that GAP uses or find an efficient algorithm for > computing this other group, that would be great. > > Thanks, > Katie Morrison > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From wilson at math.ohio-state.edu Wed Dec 22 14:59:49 2010 From: wilson at math.ohio-state.edu (James Wilson) Date: Wed, 22 Dec 2010 09:59:49 -0500 Subject: [GAP Forum] Matrices that satisfy MM^T=I or MM^T=\lambda*I In-Reply-To: References: Message-ID: <4D121265.3090009@math.ohio-state.edu> Hello Dmitrii and Katie, Something about Dmitrii's argument didn't seem accurate to me. In a finite field of char. not 2, every element is a sum of two squares. E.g. If q=5 then 2 is not a square yet 2=1^2+1^2, also 3 is not a square yet 2^2+2^2=8=3. Etc. So let s be and element in GF(q) and let a and b be elements such that s= a^2 + b^2. Then use M= [ a b ] [ b -a] So M M^t = [ a^2+b^2 0 0 a^2+b^2 ] = (a^2+b^2) I_2 = s I_2 So you can get any scalar. These are usually called "similitudes". Look in Artin's ``Geometric Algebra'' is you want a reference Katie. Hope that helps, James On 12/22/10 9:15 AM, Asst. Prof. Dmitrii (Dima) Pasechnik wrote: > Dear Katie, > MM^T=\lambda*I holds iff \lambda is a square in GF(q), i.e. \lamda=\mu^2, > as can be see by taking the determinant of both sides of your equation. > Then each M can be obtained as \mu M', for M' in GO(n,GF(q)). > Best, > Dmitrii > > On 22 December 2010 21:40, Katie Morrison wrote: >> I understand that the general orthogonal group that GAP computes is not the >> group of matrices that satisfy MM^T=I because the GO group they compute >> actually leaves a different bilinear form fixed than the dot product. But >> is there an easy way to find the group of matrices that satisfy MM^T=I and >> or to find the generalized version of this that satisfy MM^T=\lambda*I for >> some nonzero \lambda \in GF(q)? A brute force search becomes completely >> unwieldy for matrices larger than 3 by 3, so if I can find some easy way to >> map from the general orthogonal group that GAP uses or find an efficient >> algorithm for computing this other group, that would be great. >> >> Thanks, >> Katie Morrison >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > > > -- > Dmitrii Pasechnik > ----- > DISCLAIMER: Any text following this sentence does not constitute a > part of this message, and was added automatically during transmission. > > CONFIDENTIALITY: This email is intended solely for the person(s) named and may be confidential and/or privileged. If you are not the intended recipient, please delete it, notify us and do not copy, use, or disclose its content. Thank you. > > Towards A Sustainable Earth: Print Only When Necessary > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From max at quendi.de Wed Dec 22 15:31:55 2010 From: max at quendi.de (Max Horn) Date: Wed, 22 Dec 2010 16:31:55 +0100 Subject: [GAP Forum] Matrices that satisfy MM^T=I or MM^T=\lambda*I In-Reply-To: References: Message-ID: <91BD26DC-7CDE-45D1-97A6-8C5446048518@quendi.de> Dear Katie Morrison, you can use the "forms" package for that. Use InvariantBilinearForm(GO(n,q)) to get the invariant form GAP uses (if you want to work in char 2, you should use the quadratic form instead). Then you can use various methods of the "forms" package to convert this to a bilinear form object (BilinearFormByMatrix), then get a matrix to conjugate that to a "canonical" form; use the same for your desired target form (in your case, this is defined by the identity matrix), and presto, you get a matrix by which you can conjugate GO(n,q) to the group preserving the default scalar product. Here is an example: gap> n:=5;; q:=9;; G:=GO(n,q);; gap> mat1:=BaseChangeToCanonical(BilinearFormByMatrix(InvariantBilinearForm(G).matrix,GF(q)));; gap> mat2:=BaseChangeToCanonical(BilinearFormByMatrix(IdentityMat(n,GF(q)),GF(q)));; gap> H:=(G^(mat1^-1))^mat2; gap> ForAll(GeneratorsOfGroup(H), g -> IsOne(g*TransposedMat(g))); true Of course in even dimension, you have to different equivalence classes of non-degenerate bilinear forms, so you also need to make sure to pick the right one. Hope that helps, Max Am 22.12.2010 um 14:40 schrieb Katie Morrison: > I understand that the general orthogonal group that GAP computes is not the > group of matrices that satisfy MM^T=I because the GO group they compute > actually leaves a different bilinear form fixed than the dot product. But > is there an easy way to find the group of matrices that satisfy MM^T=I and > or to find the generalized version of this that satisfy MM^T=\lambda*I for > some nonzero \lambda \in GF(q)? A brute force search becomes completely > unwieldy for matrices larger than 3 by 3, so if I can find some easy way to > map from the general orthogonal group that GAP uses or find an efficient > algorithm for computing this other group, that would be great. > > Thanks, > Katie Morrison > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum >