From lijr at lzu.edu.cn Tue Jan 1 01:22:05 2013 From: lijr at lzu.edu.cn (=?GBK?B?wO69qMjZ?=) Date: Tue, 1 Jan 2013 09:22:05 +0800 (CST) Subject: [GAP Forum] find maximal subalgebras of a Lie algebra in GAP Message-ID: Dear Forum, I have a Lie algebra A (the basis of A is given by matrices explicitly). Is there some function in GAP which can compute all subalgebras (in particular, maximal subalgebras of A) in GAP? I searched the manual of GAP, but I am not able to find such functions. Thank you very much. With best wishes, Jianrong. From degraaf at science.unitn.it Tue Jan 1 09:06:45 2013 From: degraaf at science.unitn.it (Willem de Graaf) Date: Tue, 1 Jan 2013 10:06:45 +0100 Subject: [GAP Forum] find maximal subalgebras of a Lie algebra in GAP In-Reply-To: References: Message-ID: Dear Jianrong, In GAP there is no such functionality. The problem is also very difficult in general, as there is an infinite number of subalgebras. Best wishes, Willem de Graaf On Tue, Jan 1, 2013 at 2:22 AM, ??? wrote: > Dear Forum, > > I have a Lie algebra A (the basis of A is given by matrices explicitly). Is there some function in GAP which can compute all subalgebras (in particular, maximal subalgebras of A) in GAP? I searched the manual of GAP, but I am not able to find such functions. Thank you very much. > > With best wishes, > Jianrong. > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From lijr at lzu.edu.cn Tue Jan 1 13:11:23 2013 From: lijr at lzu.edu.cn (=?GBK?B?wO69qMjZ?=) Date: Tue, 1 Jan 2013 21:11:23 +0800 (CST) Subject: [GAP Forum] How to check that whether a matrix over GF(2) is diagonalizable or not using GAP? Message-ID: Dear Forum, How to check that whether a matrix over GF(2) is diagonalizable or not using GAP? Is there some function in GAP which can check that whether a matrix over GF(2) is diagonalizable or not? I only find the function DiagonalizeMatrix in GAP. Thank you very much. With best wishes, Jianrong. From dima at ntu.edu.sg Tue Jan 1 13:55:03 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Tue, 1 Jan 2013 21:55:03 +0800 Subject: [GAP Forum] How to check that whether a matrix over GF(2) is diagonalizable or not using GAP? In-Reply-To: References: Message-ID: Dear Jianrong, In case of GF(2), each diagonalizable square matrix represents a projection. Thus you just need to check whether the matrix is equal to its square. HTH, Dmitrii On 1 January 2013 21:11, ??? wrote: > Dear Forum, > > > How to check that whether a matrix over GF(2) is diagonalizable or not using GAP? Is there some function in GAP which can check that whether a matrix over GF(2) is diagonalizable or not? I only find the function DiagonalizeMatrix in GAP. Thank you very much. > > With best wishes, > Jianrong. > > _______________________________________________ > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From lijr at lzu.edu.cn Tue Jan 1 14:04:07 2013 From: lijr at lzu.edu.cn (=?GBK?B?wO69qMjZ?=) Date: Tue, 1 Jan 2013 22:04:07 +0800 (CST) Subject: [GAP Forum] multiplication of Lie objects in GAP Message-ID: <3f7f65.43c6f.13bf66d2a12.Coremail.lijr@lzu.edu.cn> Dear Forum, I have a Lie algebra A whose basis is given by matrices explicitly. When I create the algebra A, the matrices in the basis of A are denoted by LieObject... Let x, y in the basis of A. It seems that x*y is the same as [x, y]. How could I compute the usual multiplication of x and y? Thank you very much. With best wishes, Jianrong. From alexk at mcs.st-andrews.ac.uk Thu Jan 3 12:32:20 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 3 Jan 2013 12:32:20 +0000 Subject: [GAP Forum] Running GAP commnads from a file In-Reply-To: References: <693e31b2.3f35d.13bd954fef6.Webtop.14@optonline.net> Message-ID: <62FECC18-877B-4264-A76F-E16753958A53@mcs.st-andrews.ac.uk> Dear Forum, dear Dmitrii, On 27 Dec 2012, at 03:21, Dmitrii (Dima) Pasechnik wrote: ... > Do you mean to say that after Read(); you evaluate A at the GAP prompt and don't see > gap> A; > 3628800 > > but see > gap> A; > Variable: 'A' must have a value > > If the latter, it looks as if your file actually didn't get read. > Please try to modify your file as follows: > > A:=Factorial( 10 ); > B:=Factorial( 20 ); > Print(A); > > Then a successful Read() will also result in 10! being printed. > If this does not happen, > post your GAP version and Windows version (not sure if GAP is tested, or even meant to work, on Windows 8) here. Just to confirm that GAP 4.5.7 works on Windows 8. Moreover, my alternative GAP Installer for Windows installed GAP there without difficulties and even created shortcuts in the Start screen (which replaces the Start menu in Windows 8). Best wishes, Alexander From alexk at mcs.st-andrews.ac.uk Thu Jan 3 15:37:54 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 3 Jan 2013 15:37:54 +0000 Subject: [GAP Forum] GAP vs PARI/GP In-Reply-To: References: Message-ID: <38A48C16-33C3-4EAF-9ED7-E9FD46E46562@mcs.st-andrews.ac.uk> On 16 Dec 2012, at 00:10, Pi wrote: > Hello > > How do you compare this two free programs: PARI/GP and GAP? > > regards Hello, To get an overview of GAP, you may have a look at the Preface from the Reference manual http://www.gap-system.org/Manuals/doc/ref/chap1.html and also at http://www.gap-system.org/Manuals/doc/ref/chap0.html for the table of contents. Probably similar materials may be found at PARI/GP page http://pari.math.u-bordeaux.fr/ - for example, the list of areas from http://pari.math.u-bordeaux.fr/dochtml/html.stable/ - maybe someone may point out to a better source for PARI/GP. If you have some particular computations in mind and would like to check whether they are doable in GAP, please just ask. Also, there is a GAP package Alnuth providing an interface from GAP to some functions from PARI/GP. Hope this helps, Alexander From lijr at lzu.edu.cn Fri Jan 4 09:10:24 2013 From: lijr at lzu.edu.cn (=?GBK?B?wO69qMjZ?=) Date: Fri, 4 Jan 2013 17:10:24 +0800 (CST) Subject: [GAP Forum] How to determine that a vector is in a vector space or not? Message-ID: <100283c.45e79.13c04d35475.Coremail.lijr@lzu.edu.cn> Dear Forum, Let v be a vector and V a vector space. Is there some function in GAP which can determine that v is in V or not? I search the manual of GAP but did not find one. Thank you very much. With best wishes, Jianrong. From lijr at lzu.edu.cn Sun Jan 6 13:52:32 2013 From: lijr at lzu.edu.cn (=?GBK?B?wO69qMjZ?=) Date: Sun, 6 Jan 2013 21:52:32 +0800 (CST) Subject: [GAP Forum] Coefficients in GAP Message-ID: <1033a08.47d99.13c10225ae3.Coremail.lijr@lzu.edu.cn> Dear Forum, I would like to compute coefficients of a vector in a vector space V with respect to some basis B. The command in GAP is Coefficients(B, v); If B is given by a list, then it seems that it doesn't work. For example, Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[2]], Basis(B)[4]*Basis(A)[3]) will have errors. Here B is a subspace of the vector space A. A consists of matrices. The codes are in the end of the email. How should I correct Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[2]], Basis(B)[4]*Basis(A)[3])? Thank you very much. With best wishes, Jianrong. for i in complement do for k in [1..9] do number:=1; for l in [Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[i]] do if Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[i]], Basis(B)[k]*l)=fail then number:=0; fi; od; od; if number=1 then Add(new_indices_in_LminusOne, i); fi; od; From max at quendi.de Sun Jan 6 18:10:28 2013 From: max at quendi.de (Max Horn) Date: Sun, 6 Jan 2013 19:10:28 +0100 Subject: [GAP Forum] How to determine that a vector is in a vector space or not? In-Reply-To: <100283c.45e79.13c04d35475.Coremail.lijr@lzu.edu.cn> References: <100283c.45e79.13c04d35475.Coremail.lijr@lzu.edu.cn> Message-ID: Dear Jianrong, On 04.01.2013, at 10:10, ??? wrote: > Dear Forum, > > Let v be a vector and V a vector space. Is there some function in GAP which can determine that v is in V or not? I search the manual of GAP but did not find one. Thank you very much. If a is a vector and V a vectorspace, you can simply write a in V to get a boolean true/false value indicating what you want. For example: gap> V:=VectorSpace(GF(3), [ [1,0,0,0], [0,1,0,1], [1,-1,0,0] ] * Z(3)^0); gap> [1,0,0,1] * Z(3)^0 in V; true gap> [1,0,1,0] * Z(3)^0 in V; false Hope that helps, Max From max at quendi.de Sun Jan 6 18:42:01 2013 From: max at quendi.de (Max Horn) Date: Sun, 6 Jan 2013 19:42:01 +0100 Subject: [GAP Forum] Coefficients in GAP In-Reply-To: <1033a08.47d99.13c10225ae3.Coremail.lijr@lzu.edu.cn> References: <1033a08.47d99.13c10225ae3.Coremail.lijr@lzu.edu.cn> Message-ID: Dear Jianrong, On 06.01.2013, at 14:52, ??? wrote: > Dear Forum, > > I would like to compute coefficients of a vector in a vector space V with respect to some basis B. > The command in GAP is Coefficients(B, v); > > If B is given by a list, then it seems that it doesn't work. Indeed, because as the documentation of Coefficients states, B must be a basis -- and a "basis" here is a special GAP object, which is more than just a list of basis vectors. One of the reasons for this is that for an arbitrary list of vectors, such as yours, it is not at all clear whether it actually forms a basis of the space spanned by those vectors, i.e. if they are linearly independent. > For example, Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[2]], Basis(B)[4]*Basis(A)[3]) will have errors. Here B is a subspace of the vector space A. A consists of matrices. The codes are in the end of the email. How should I correct Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[2]], Basis(B)[4]*Basis(A)[3])? Thank you very much. This look as if you want to form a new basis by taking a subset of the existing Basis(B). Here is a sketch of how this could look like. # Set F to your base field, e.g. GF(3^2) F := ...; # Take first 9 basis vectors of B plus second basis vector of A vecs := Concatenation( Basis(B){[1..9]}, Basis(A){[2]} ); # Compute a basis of the spanned vector space: bas := ImmutableBasis( MutableBasis( F, vecs ) ); # Optionally, check whether "vecs" really formed a basis. if Length(vecs) <> Length(bas) then Error("vectors do not form a basis" fi; # Finally, attempt to rewrite a matrix using this basis Coefficients( bas, Basis(B)[4]*Basis(A)[3] ) But looking at your example code, and considering your previous question, it seems that perhaps all you want to do is to check whether some vector is contained in the span of some other vectors. Moreover, your code seems to contain a mistake (it sets number:=1 inside the loop over k, but tests it only after that loop; hence, only the result of the last loop iteration has any effect). Supposing all this, you could try something like the following (here I assumed you wanted to set and test "number" outside the k-loop; if the correct thing for you problem is to check "number" on each iteration of that loop, of course you'll have to move things around accordingly): for i in complement do vecs := Concatenation( Basis(B){[1..9]}, Basis(A){[i]} ); sub := VectorSpace( F, vecs ); number := true; for k in [1..9] do for l in vecs do if not Basis(B)[k] * l in sub then number:=false; fi; od; od; if number=true then Add(new_indices_in_LminusOne, i); fi; od; The code can actually be simplified a lot more, e.g. by using ForAny or ForAll; and more so if, for example, your space B is actually 9-dimensional. Hope that helps, Max > > With best wishes, > Jianrong. > > > > for i in complement do > for k in [1..9] do > number:=1; > for l in [Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[i]] do > if Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[i]], Basis(B)[k]*l)=fail then number:=0; fi; > od; > od; > if number=1 then Add(new_indices_in_LminusOne, i); fi; > od; > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From lijr at lzu.edu.cn Mon Jan 7 03:08:30 2013 From: lijr at lzu.edu.cn (=?utf-8?B?5p2O5bu66I2j?=) Date: Mon, 7 Jan 2013 11:08:30 +0800 (CST) Subject: [GAP Forum] [SPAM] Re: Coefficients in GAP In-Reply-To: <5ED6DDE9-4C63-4F27-AA1D-6F3DC83EC3D8@quendi.de> References: <5ED6DDE9-4C63-4F27-AA1D-6F3DC83EC3D8@quendi.de> <1033a08.47d99.13c10225ae3.Coremail.lijr@lzu.edu.cn> Message-ID: <8692d.48590.13c12fb163c.Coremail.lijr@lzu.edu.cn> Dear Max, Thank you very much for your help. I will try again. With best wishes, Jianrong. > -----????----- > ???: "Max Horn" > ????: 2013?1?7? ??? > ???: "???" > ??: > ??: [SPAM] Re: [GAP Forum] Coefficients in GAP > > Dear Jianrong, > > > On 06.01.2013, at 14:52, ??? wrote: > > > Dear Forum, > > > > I would like to compute coefficients of a vector in a vector space V with respect to some basis B. > > The command in GAP is Coefficients(B, v); > > > > If B is given by a list, then it seems that it doesn't work. > > Indeed, because as the documentation of Coefficients states, B must be a basis -- and a "basis" here is a special GAP object, which is more than just a list of basis vectors. > > One of the reasons for this is that for an arbitrary list of vectors, such as yours, it is not at all clear whether it actually forms a basis of the space spanned by those vectors, i.e. if they are linearly independent. > > > > For example, Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[2]], Basis(B)[4]*Basis(A)[3]) will have errors. Here B is a subspace of the vector space A. A consists of matrices. The codes are in the end of the email. How should I correct Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[2]], Basis(B)[4]*Basis(A)[3])? Thank you very much. > > This look as if you want to form a new basis by taking a subset of the existing Basis(B). Here is a sketch of how this could look like. > > # Set F to your base field, e.g. GF(3^2) > F := ...; > > # Take first 9 basis vectors of B plus second basis vector of A > vecs := Concatenation( Basis(B){[1..9]}, Basis(A){[2]} ); > > # Compute a basis of the spanned vector space: > bas := ImmutableBasis( MutableBasis( F, vecs ) ); > > # Optionally, check whether "vecs" really formed a basis. > if Length(vecs) <> Length(bas) then > Error("vectors do not form a basis" > fi; > > # Finally, attempt to rewrite a matrix using this basis > Coefficients( bas, Basis(B)[4]*Basis(A)[3] ) > > > But looking at your example code, and considering your previous question, it seems that perhaps all you want to do is to check whether some vector is contained in the span of some other vectors. Moreover, your code seems to contain a mistake (it sets number:=1 inside the loop over k, but tests it only after that loop; hence, only the result of the last loop iteration has any effect). Supposing all this, you could try something like the following (here I assumed you wanted to set and test "number" outside the k-loop; if the correct thing for you problem is to check "number" on each iteration of that loop, of course you'll have to move things around accordingly): > > for i in complement do > vecs := Concatenation( Basis(B){[1..9]}, Basis(A){[i]} ); > sub := VectorSpace( F, vecs ); > number := true; > for k in [1..9] do > for l in vecs do > if not Basis(B)[k] * l in sub then > number:=false; > fi; > od; > od; > if number=true then Add(new_indices_in_LminusOne, i); fi; > od; > > > The code can actually be simplified a lot more, e.g. by using ForAny or ForAll; and more so if, for example, your space B is actually 9-dimensional. > > > Hope that helps, > Max > > > > > > With best wishes, > > Jianrong. > > > > > > > > for i in complement do > > for k in [1..9] do > > number:=1; > > for l in [Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[i]] do > > if Coefficients([Basis(B)[1], Basis(B)[2], Basis(B)[3], Basis(B)[4], Basis(B)[5], Basis(B)[6], Basis(B)[7], Basis(B)[8], Basis(B)[9], Basis(A)[i]], Basis(B)[k]*l)=fail then number:=0; fi; > > od; > > od; > > if number=1 then Add(new_indices_in_LminusOne, i); fi; > > od; > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > From ciobotaru.mircea at gmail.com Tue Jan 8 12:00:56 2013 From: ciobotaru.mircea at gmail.com (Ciobotaru Mircea) Date: Tue, 8 Jan 2013 14:00:56 +0200 Subject: [GAP Forum] pkg Message-ID: where ist pkg for install GAP4R5/pkg ?? http://picasaweb.google.com/ciobotaru.mircea http://SEMINEU.sunphoto.ro http://semineu.sunphoto.ro/design_seminee mob 0744 804 754 0745 462 970 fix 0264 411 536 ] From gaehler at math.uni-bielefeld.de Thu Jan 10 14:49:44 2013 From: gaehler at math.uni-bielefeld.de (Franz Gaehler) Date: Thu, 10 Jan 2013 15:49:44 +0100 Subject: [GAP Forum] Cryst and CrystCat packages In-Reply-To: References: Message-ID: <20130110144944.GA18072@math.uni-bielefeld.de> Dear Barry Monson, sorry for the late reply. > I have a question about the Cryst and CrystCat packages in Gap. Is > it possible to classify a given (and legitimate) > AffineCrystGroupOnRight G according to standard nomenclature? > > Of course, I have a 4-dimensional example (whose point group is > SymmetricGroup(4)). I would like to know where it fits into the > Brown...Zassenhaus classification. On the other hand, since this is > really just for my own curiosity, I don't much want to have to read > that book more carefully. It is a bit daunting. > > I understand my G quite well. Besides the faithful affine > representation I have a nice presentation and a further geometric > interpretation. G is the so-called monodromy group of the pyramid > over an apeirogon (infinite sided polygon). Cryst provides a function ConjugatorSpaceGroups, which requires the package Carat to be installed however. It returns a conjugating affine transformation if two space groups are equivalent, or fail otherwise. With this, you can loop over the space group catalogue in CrystCat and find the right one. In order to make it not too inefficient, one should skip entire classes of groups as early as possible. I have attached such a function below. As the original catalogue consists of left-acting space groups, my function takes the transpose of a right-acting space group, and compares it to the left-acting ones from the catalogue. SpaceGroupTypeBBNWZ := function( S ) local S1, d, P, c, q, G, z, s, S2; if IsAffineCrystGroupOnRight( S ) then S1 := TransposedMatrixGroup(S); elif IsAffineCrystGroupOnLeft( S ) S1 := S; else Error( "S must be an AffineCrystGroup" ); fi; d := DimensionOfMatrixGroup( S1 ) - 1; if not d in [2..4] then return fail; fi; P := PointGroup( StandardAffineCrystGroup( S1 ) ); for c in [1 .. NrCrystalSystems( d )] do for q in [1 .. NrQClassesCrystalSystem( d, c )] do G := MatGroupZClass( d, c, q, 1 ); if Size( P ) <> Size( G ) then continue; fi; if fail = ConjugatorQClass( P, G ) then continue; fi; for z in [1 .. NrZClassesQClass( d, c, q )] do G := MatGroupZClass( d, c, q, z ); if fail = RepresentativeAction(GL(d,Integers), P, G) then continue; fi; for s in [1 .. NrSpaceGroupTypesZClass( d, c, q, z )] do S2 := SpaceGroupOnLeftBBNWZ( d, c, q, z, s ); if fail <> ConjugatorSpaceGroups( S1, S2 ) then return [d, c, q, z, s]; fi; od; od; od; od; return fail; end; With best regards, Franz G?hler _____________________________________________________________________________ Dr. Franz G?hler Phone +49 521 / 106 3876 Faculty of Mathematics Fax +49 521 / 106 153876 University of Bielefeld Email gaehler at math.uni-bielefeld.de D-33615 Bielefeld http://www.math.uni-bielefeld.de/~gaehler/ From marek at mitros.org Sat Jan 12 20:23:19 2013 From: marek at mitros.org (Marek Mitros) Date: Sat, 12 Jan 2013 21:23:19 +0100 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 Message-ID: Hi, What is the quickest way to diagonalize symmetric matrix 248x248 with integral entries. I run Eigenvectors(Rationals, m) but it run long time on my PC. The matrix is the Gram matrix of Thompson Smith lattice in dimension 248. See page: http://www.math.rwth-aachen.de/~Gabriele.Nebe/LATTICES/TH.html I would like to obtain the lattice generators or alternatively orthogonal representation of Thompson sporadic group. Regards, Marek From mathieu.dutour at gmail.com Sat Jan 12 21:01:24 2013 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Sat, 12 Jan 2013 22:01:24 +0100 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 In-Reply-To: References: Message-ID: Maybe you can try to use real arithmetic for diagonalization using a Fortran code that implement Jacobi method. Otherwise, I am not sure if such a diagonalization makes sense. Such gram matrix are defined up to arithmetic equivalence A ---> PAP^T with P an integral matrix of determinant +-1. The matrix on Nebe's website is just one matrix in the whole equivalence class and the eigenvalues will be different if you choose another matrix in the equivalence class. Mathieu On Sat, Jan 12, 2013 at 9:23 PM, Marek Mitros wrote: > Hi, > > What is the quickest way to diagonalize symmetric matrix 248x248 with > integral entries. I run Eigenvectors(Rationals, m) but it run long > time on my PC. The matrix is the Gram matrix of Thompson Smith lattice > in dimension 248. See page: > http://www.math.rwth-aachen.de/~Gabriele.Nebe/LATTICES/TH.html > > I would like to obtain the lattice generators or alternatively > orthogonal representation of Thompson sporadic group. > > Regards, > Marek > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dima at ntu.edu.sg Sun Jan 13 06:28:57 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Sun, 13 Jan 2013 14:28:57 +0800 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 In-Reply-To: References: Message-ID: Dear Marek, On 13 January 2013 04:23, Marek Mitros wrote: > Hi, > > What is the quickest way to diagonalize symmetric matrix 248x248 with > integral entries. I run Eigenvectors(Rationals, m) but it run long > time on my PC. the eigenvalues (and, therefore, eigenvectors) need not be rational. To achieve this, you might need to extend the field of rationals. HTH, Dmitrii > The matrix is the Gram matrix of Thompson Smith lattice > in dimension 248. See page: > http://www.math.rwth-aachen.de/~Gabriele.Nebe/LATTICES/TH.html > > I would like to obtain the lattice generators or alternatively > orthogonal representation of Thompson sporadic group. > > Regards, > Marek > > _______________________________________________ > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From marek at mitros.org Sun Jan 13 10:39:59 2013 From: marek at mitros.org (Marek Mitros) Date: Sun, 13 Jan 2013 11:39:59 +0100 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 In-Reply-To: References: Message-ID: In general you are right. In this case I've got information from G. Nebe, that matrix is diagonalizable over rationals. So orthogonal representation of Th group would have rational entries. Regards, Marek 13-01-2013 07:29, "Dmitrii (Dima) Pasechnik" napisa?(a): > Dear Marek, > > On 13 January 2013 04:23, Marek Mitros wrote: > > Hi, > > > > What is the quickest way to diagonalize symmetric matrix 248x248 with > > integral entries. I run Eigenvectors(Rationals, m) but it run long > > time on my PC. > the eigenvalues (and, therefore, eigenvectors) need not be rational. > To achieve this, you might need to extend the field of rationals. > > HTH, > Dmitrii > > > The matrix is the Gram matrix of Thompson Smith lattice > > in dimension 248. See page: > > http://www.math.rwth-aachen.de/~Gabriele.Nebe/LATTICES/TH.html > > > > I would like to obtain the lattice generators or alternatively > > orthogonal representation of Thompson sporadic group. > > > > Regards, > > Marek > > > > _______________________________________________ > > 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. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > From Bill.Allombert at math.u-bordeaux1.fr Sun Jan 13 12:16:41 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Sun, 13 Jan 2013 13:16:41 +0100 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 In-Reply-To: References: Message-ID: <20130113121641.GF8968@yellowpig> On Sun, Jan 13, 2013 at 11:39:59AM +0100, Marek Mitros wrote: > In general you are right. In this case I've got information from G. Nebe, > that matrix is diagonalizable over rationals. So orthogonal representation > of Th group would have rational entries. With PARI/GP, I found that the eigenvalues are: [238 230 228 220 218 216 214 212 210 208 206 204 202 200 198 196 194 192 190 188 186 184 182 180 178 176 174 172 170 168 166 160 158 156 24] with multiplicities [1 3 2 6 2 4 7 3 6 3 5 5 5 5 2 5 3 9 3 3 2 2 3 2 1 2 3 4 2 1 1 1 1 1 140] Maybe this will allow you to complete the computation with gap. Cheers, Bill. From Bill.Allombert at math.u-bordeaux1.fr Sun Jan 13 12:54:16 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Sun, 13 Jan 2013 13:54:16 +0100 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 In-Reply-To: <20130113121641.GF8968@yellowpig> References: <20130113121641.GF8968@yellowpig> Message-ID: <20130113125416.GH8968@yellowpig> On Sun, Jan 13, 2013 at 01:16:41PM +0100, Bill Allombert wrote: > On Sun, Jan 13, 2013 at 11:39:59AM +0100, Marek Mitros wrote: > > In general you are right. In this case I've got information from G. Nebe, > > that matrix is diagonalizable over rationals. So orthogonal representation > > of Th group would have rational entries. > > With PARI/GP, I found that the eigenvalues are: > [238 230 228 220 218 216 214 212 210 208 206 204 202 200 198 196 194 192 190 188 186 184 182 180 > 178 176 174 172 170 168 166 160 158 156 24] > with multiplicities > [1 3 2 6 2 4 7 3 6 3 5 5 5 5 2 5 3 9 3 3 2 2 3 2 1 2 3 4 2 1 1 1 1 1 140] Bah, obviously this is garbage, I did not input the matrix correctly. Is it possible to dowload the matrix without doing a big copy-paste ? Cheers, Bill. From dima at ntu.edu.sg Sun Jan 13 13:50:50 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Sun, 13 Jan 2013 21:50:50 +0800 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 In-Reply-To: <20130113125416.GH8968@yellowpig> References: <20130113121641.GF8968@yellowpig> <20130113125416.GH8968@yellowpig> Message-ID: Dmitrii Pasechnik On 13 January 2013 20:54, Bill Allombert wrote: > On Sun, Jan 13, 2013 at 01:16:41PM +0100, Bill Allombert wrote: >> On Sun, Jan 13, 2013 at 11:39:59AM +0100, Marek Mitros wrote: >> > In general you are right. In this case I've got information from G. Nebe, >> > that matrix is diagonalizable over rationals. So orthogonal representation >> > of Th group would have rational entries. >> >> With PARI/GP, I found that the eigenvalues are: >> [238 230 228 220 218 216 214 212 210 208 206 204 202 200 198 196 194 192 190 188 186 184 182 180 >> 178 176 174 172 170 168 166 160 158 156 24] >> with multiplicities >> [1 3 2 6 2 4 7 3 6 3 5 5 5 5 2 5 3 9 3 3 2 2 3 2 1 2 3 4 2 1 1 1 1 1 140] > > Bah, obviously this is garbage, I did not input the matrix correctly. > Is it possible to dowload the matrix without doing a big copy-paste ? save the html file, then edit it... HTH, Dima > > Cheers, > Bill. > > _______________________________________________ > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From marek at mitros.org Tue Jan 15 09:35:28 2013 From: marek at mitros.org (Marek Mitros) Date: Tue, 15 Jan 2013 10:35:28 +0100 Subject: [GAP Forum] Diagonalize of symmetric matrix 248x248 In-Reply-To: References: Message-ID: Hello again, I would like to thank you all the people who answered on my post. Thanks to Gabrielle Nebe I was able to obtain orthogonal representation of Th group. This makes me happy and I am able to continue my research in this group. My method was wrong. You do not need to look for eigenvectors of Gram matrix in order to do orthogonalization. Prof. Nebe has sent me the magic matrix using which I obtained orthogonal generators from the linear ones present on lattice catalogue web page. Best regards, Marek Mitros On 1/12/13, Mathieu Dutour wrote: > Maybe you can try to use real arithmetic for diagonalization using a > Fortran code that implement Jacobi method. > > Otherwise, I am not sure if such a diagonalization makes sense. > Such gram matrix are defined up to arithmetic equivalence > A ---> PAP^T with P an integral matrix of determinant +-1. > The matrix on Nebe's website is just one matrix in the whole equivalence > class and the eigenvalues will be different if you choose another matrix in > the equivalence class. > > Mathieu > > > > On Sat, Jan 12, 2013 at 9:23 PM, Marek Mitros wrote: > >> Hi, >> >> What is the quickest way to diagonalize symmetric matrix 248x248 with >> integral entries. I run Eigenvectors(Rationals, m) but it run long >> time on my PC. The matrix is the Gram matrix of Thompson Smith lattice >> in dimension 248. See page: >> http://www.math.rwth-aachen.de/~Gabriele.Nebe/LATTICES/TH.html >> >> I would like to obtain the lattice generators or alternatively >> orthogonal representation of Thompson sporadic group. >> >> Regards, >> Marek >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum >> > From group.compute at gmail.com Thu Jan 17 07:52:21 2013 From: group.compute at gmail.com (A L) Date: Thu, 17 Jan 2013 01:52:21 -0600 Subject: [GAP Forum] efficient hamming distance computation Message-ID: Hello, For a project, I need to compute the minimal Hamming distance between a fixed permutation and a (large) permutation group. What is the "correct" way to do this in GAP? I am looking for the most efficient method, both for the Hamming distance computation between individual elements, as well as ways to avoid brute-force comparison with each element in the group (perhaps utilizing information about the group's structure). Any help or pointers/references would be appreciated. I am new to GAP and have tried my best to wade through the extensive documentation. From dima at ntu.edu.sg Thu Jan 17 10:52:10 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Thu, 17 Jan 2013 18:52:10 +0800 Subject: [GAP Forum] efficient hamming distance computation In-Reply-To: References: Message-ID: On 17 January 2013 15:52, A L wrote: > Hello, > > For a project, I need to compute the minimal Hamming distance between a > fixed permutation and a (large) permutation group. it would be good to know how large the group can be, and what is its degree n. > What is the "correct" > way to do this in GAP? I am looking for the most efficient method, both for > the Hamming distance computation between individual elements, as well as > ways to avoid brute-force comparison with each element in the group > (perhaps utilizing information about the group's structure). Note that if H is your group and g your permutation, then the Hamming distance d(H,g) between H and g equals d(H,HgH), for HgH the double coset of H in , or in S_n, does not matter. (This holds as d(f,g)=d(hf,hg)=d(hfh',hgh') for any f,h,h' in H.) So you might begin by trying to find a "nicer" element in Hg. E.g. you might want to find such an element with maximum (or just large) number of fixed points. Then the pointwise stabilizer of these points in H will contain the closest to g element, as far as I can see. Another point of view might be useful if you can construct the set of double cosets of H in S_n. Then you can create a graph structure on them using transpositions: H is connected to HtH for a transposition t not in H (and so for any g in HtH one has d(H,g)=2, for g in Htt'H one would have d(H,g)=3 or 4,... ), etc. Perhaps there are even better methods for your problem: indeed, computing d(,) seems to be an extension of a procedure to check whether g is in H, and this is studied very extensively. Seems to be a natural and interesting problem, IMHO! HTH, Dmitrii > > Any help or pointers/references would be appreciated. I am new to GAP and > have tried my best to wade through the extensive documentation. > _______________________________________________ > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From group.compute at gmail.com Thu Jan 17 17:50:14 2013 From: group.compute at gmail.com (A L) Date: Thu, 17 Jan 2013 11:50:14 -0600 Subject: [GAP Forum] efficient hamming distance computation In-Reply-To: References: Message-ID: Thanks for the enthusiastic response, Dmitrii. I have tried to respond in the body of your email, below. I also wanted to point out that I am (somewhat) familiar with the theoretical literature related to this problem, and I am mostly interested in learning more about the specific implementation in GAP. For instance, if the most efficient way to compute d(a,b) in GAP is to compute the fixed points of ab^-1, which efficient functions should I call to perform this computation? On Thu, Jan 17, 2013 at 4:52 AM, Dmitrii (Dima) Pasechnik wrote: > On 17 January 2013 15:52, A L wrote: > > Hello, > > > > For a project, I need to compute the minimal Hamming distance between a > > fixed permutation and a (large) permutation group. > it would be good to know how large the group can be, and what is its > degree n. > > Let me be a little more specific. At the moment, I am looking at the families of groups PGL(2,q) where q ~ 50, so let's say n ~ 100k. > > > What is the "correct" > > way to do this in GAP? I am looking for the most efficient method, both > for > > the Hamming distance computation between individual elements, as well as > > ways to avoid brute-force comparison with each element in the group > > (perhaps utilizing information about the group's structure). > > Note that if H is your group and g your permutation, then the Hamming > distance d(H,g) between H and g equals d(H,HgH), for HgH the double > coset of H in , or in S_n, does not matter. > (This holds as d(f,g)=d(hf,hg)=d(hfh',hgh') for any f,h,h' in H.) > Can you clarify what you mean in the section starting here: > So you might begin by trying to find a "nicer" element in Hg. > E.g. you might want to find such an element with maximum (or just > large) number of fixed points. Then the pointwise stabilizer of these > points in H will contain the closest to g element, as far as I can > see. > and ending here. Another point of view might be useful if you can construct the set of > double cosets of H in S_n. Then you can create a graph structure on > them using transpositions: H is connected to HtH for a transposition t > not in H (and so for any g in HtH one has d(H,g)=2, for g in Htt'H one > would have d(H,g)=3 or 4,... ), etc. > > Perhaps there are even better methods for your problem: indeed, > computing d(,) seems to be an extension of a procedure to check > whether g is in H, and this is studied very extensively. > Which (specific) references do you have in mind? > Seems to be a natural and interesting problem, IMHO! > > HTH, > Dmitrii > > > > > > Any help or pointers/references would be appreciated. I am new to GAP and > > have tried my best to wade through the extensive documentation. > > _______________________________________________ > > 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. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > From nagyg at math.u-szeged.hu Thu Jan 17 19:01:18 2013 From: nagyg at math.u-szeged.hu (Nagy Gabor) Date: Thu, 17 Jan 2013 20:01:18 +0100 Subject: [GAP Forum] efficient hamming distance computation In-Reply-To: References: Message-ID: <50F84A7E.20907@math.u-szeged.hu> Hi, I am used to do a lot of calculation with distances of permutations. According to me, NrMovedPoints(a/b) is very efficient to compute d(a,b). More difficult is to find the element b of G which is "closest" to a. I would do it rather straightforward. G:=PGL(2,53); Size(G); closest:=function(G,a) local md,x,b; md:=NrMovedPoints(G); b:=""; for x in G do if NrMovedPoints(x/a)NrMovedPoints(a/u))); I hope this helps. Bye, Gabor On 01/17/2013 08:52 AM, A L wrote: > Hello, > > For a project, I need to compute the minimal Hamming distance between a > fixed permutation and a (large) permutation group. What is the "correct" > way to do this in GAP? I am looking for the most efficient method, both for > the Hamming distance computation between individual elements, as well as > ways to avoid brute-force comparison with each element in the group > (perhaps utilizing information about the group's structure). > > Any help or pointers/references would be appreciated. I am new to GAP and > have tried my best to wade through the extensive documentation. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From degraaf at science.unitn.it Thu Jan 17 21:24:29 2013 From: degraaf at science.unitn.it (Willem de Graaf) Date: Thu, 17 Jan 2013 22:24:29 +0100 Subject: [GAP Forum] naming convention for basis of highest weight modules In-Reply-To: <1355986153.39583.YahooMailNeo@web121202.mail.ne1.yahoo.com> References: <1355986153.39583.YahooMailNeo@web121202.mail.ne1.yahoo.com> Message-ID: Dear R.N. Tsai, You asked about the way the basis elements of a highest weight module are printed. This is described in the manual section: 64.14-4 IsWeightRepElement. A basis vector is printed as mon*v0. Here 'v0' is the highest weight vector and 'mon' is a monomial in the root vectors corresponding to the negative roots (sometimes called lowering operators). Example: gap> L:= SimpleLieAlgebra("A", 2, Rationals);; gap> V:= HighestWeightModule( L, [1,1] );; gap> v0:=Basis(V)[1]; 1*v0 gap> y:= ChevalleyBasis(L)[2];; gap> y[1]^(y[2]^v0); y1*y2*v0 If you have questions about this, then please ask. Best wishes, Willem de Graaf On Thu, Dec 20, 2012 at 7:49 AM, R.N. Tsai wrote: > Dear gap-forum, > > Is the naming convention for the basis of highest weight modules described anywhere? > > For example : > > gap>L:=SimpleLieAlgebra("A",2,Rationals);; > gap>M1:=HighestWeightModule(L,[1,0]);; > gap>B1:=Basis(M1);; > gap>M2:=TensorProductOfAlgebraModules(M1,M1);; > gap>B2:=Basis(M2);; > > gap> BasisVectors(B1); > [ 1*v0, y1*v0, y3*v0 ] > gap> BasisVectors(B2); > [ 1*(1*v01*v0), 1*(1*v0y1*v0), 1*(1*v0y3*v0), 1*(y1*v01*v0), 1*(y1*v0y1*v0), 1*(y1*v0y3*v0), > 1*(y3*v01*v0), 1*(y3*v0y1*v0), 1*(y3*v0y3*v0) ] > > 1*v0,y1*v0,y3*v0 seems an odd choice without knowing where it came from. > > Thanks, > r.n. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From w_becker at hotmail.com Mon Jan 21 23:07:25 2013 From: w_becker at hotmail.com (Walter Becker) Date: Mon, 21 Jan 2013 14:07:25 -0900 Subject: [GAP Forum] correspondence betrween Small group lib and Hall Senior tables Message-ID: Gap Forum I know there exists a table listing the correspondence for the groups of order 2^n for n less than or equal to 6 given in the Hall-Senior Tables and the corresponding group number in the Small Group Library. Could you direct me to an on-line source for this table ---or send me one via e-mail ? Walter Becker From mbg.nimda at gmail.com Mon Jan 21 22:54:02 2013 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Mon, 21 Jan 2013 23:54:02 +0100 Subject: [GAP Forum] Fwd: Message-ID: <50fdd522.c71a700a.5488.3ae5@mx.google.com> http://www.illuminazioneconled.it/7robnn.php From mbg.nimda at gmail.com Mon Jan 21 22:55:00 2013 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Mon, 21 Jan 2013 23:55:00 +0100 Subject: [GAP Forum] Fwd: Message-ID: <50fdd55e.637b980a.055f.ffff96cd@mx.google.com> http://www.illuminazioneconled.it/7robnn.php From suskudar at gmail.com Tue Jan 22 00:05:50 2013 From: suskudar at gmail.com (sumeyra uskudar) Date: Tue, 22 Jan 2013 02:05:50 +0200 Subject: [GAP Forum] Fwd: hall-senior number vs small group id In-Reply-To: <4F8E3342.8050104@auckland.ac.nz> References: <4F8E3342.8050104@auckland.ac.nz> Message-ID: ---------- Forwarded message ---------- From: Eamonn O'Brien Date: 2012/4/18 Subject: Re: [GAP Forum] hall-senior number vs small group id To: forum at gap-system.org Cc: sumeyra uskudar Dear Forum: Attached is the correspondence between Hall-Senior identifiers for the groups of order dividing 64 and the corresponding SmallGroup identifiers. I determined this in the 1980s. HallSeniorToSmallGroup[n][x] returns the SmallGroup id of the H-S group (2^n)#x. gap> HallSeniorToSmallGroup[6][187]**; 245 SmallGroupToHallSenior[m][y] returns the HallSenior id of the SmallGroup (2^m)#y. gap> SmallGroupToHallSenior[6][245]**; 187 Best wishes. Eamonn # Given a SmallGroup id of a group of order 2^n, print # SmallGroupToHallSenior[n][x] to obtain the Hall-Senior number of the group. # Given a Hall-Senior number y of a group of order 2^n, print # HallSeniorToSmallGroup[n][y] to obtain the SmallGroup id of the group. SmallGroupToHallSenior := [ [ 1 ], [ 2, 1 ], [ 3, 2, 4, 5, 1 ], [ 5, 3, 9, 10, 4, 11, 12, 13, 14, 2, 6, 7, 8, 1 ], [ 7, 18, 5, 19, 20, 46, 47, 48, 27, 28, 31, 21, 30, 29, 32, 6, 22, 49, 50, 51, 3, 11, 12, 16, 14, 15, 33, 36, 37, 38, 39, 40, 41, 34, 35, 4, 13, 17, 23, 24, 25, 26, 44, 45, 2, 8, 9, 10, 42, 43, 1 ], [ 11, 8, 38, 131, 132, 62, 63, 237, 238, 239, 240, 234, 235, 236, 65, 64, 37, 180, 181, 60, 59, 61, 128, 129, 130, 9, 39, 182, 40, 133, 66, 250, 251, 252, 253, 254, 255, 138, 139, 142, 248, 247, 249, 41, 67, 246, 140, 141, 143, 10, 42, 265, 266, 267, 5, 22, 30, 28, 29, 81, 83, 89, 90, 93, 82, 86, 84, 92, 91, 88, 85, 87, 144, 147, 146, 145, 150, 151, 149, 148, 152, 153, 6, 23, 31, 32, 24, 94, 96, 123, 126, 124, 125, 127, 47, 48, 53, 114, 113, 115, 51, 120, 25, 95, 97, 50, 49, 54, 116, 52, 121, 33, 98, 102, 34, 99, 100, 55, 56, 57, 118, 119, 117, 58, 122, 35, 101, 201, 203, 217, 202, 204, 218, 261, 263, 262, 264, 259, 260, 205, 206, 208, 211, 219, 220, 196, 195, 197, 229, 228, 230, 257, 256, 258, 207, 210, 209, 212, 221, 222, 213, 214, 223, 215, 216, 224, 193, 194, 200, 232, 231, 233, 189, 188, 192, 198, 225, 226, 191, 199, 190, 227, 7, 26, 36, 134, 135, 136, 137, 244, 245, 3, 15, 16, 20, 18, 19, 27, 106, 108, 107, 68, 71, 72, 73, 77, 74, 75, 76, 80, 69, 70, 78, 79, 169, 170, 172, 171, 175, 177, 176, 179, 178, 173, 174, 154, 157, 160, 159, 155, 158, 163, 167, 164, 161, 166, 168, 162, 156, 165, 184, 183, 185, 186, 187, 4, 17, 21, 109, 43, 44, 45, 46, 110, 111, 112, 241, 242, 243, 2, 12, 13, 14, 103, 104, 105, 1 ] ]; HallSeniorToSmallGroup := [ [ 1 ], [ 2, 1 ], [ 5, 2, 1, 3, 4 ], [ 14, 10, 2, 5, 1, 11, 12, 13, 3, 4, 6, 7, 8, 9 ], [ 51, 45, 21, 36, 3, 16, 1, 46, 47, 48, 22, 23, 37, 25, 26, 24, 38, 2, 4, 5, 12, 17, 39, 40, 41, 42, 9, 10, 14, 13, 11, 15, 27, 34, 35, 28, 29, 30, 31, 32, 33, 49, 50, 43, 44, 6, 7, 8, 18, 19, 20 ], [ 267, 260, 192, 246, 55, 83, 183, 2, 26, 50, 1, 261, 262, 263, 193, 194, 247, 196, 197, 195, 248, 56, 84, 87, 103, 184, 198, 58, 59, 57, 85, 86, 112, 115, 126, 185, 17, 3, 27, 29, 44, 51, 250, 251, 252, 253, 95, 96, 107, 106, 101, 110, 97, 108, 118, 119, 120, 124, 21, 20, 22, 6, 7, 16, 15, 31, 45, 202, 211, 212, 203, 204, 205, 207, 208, 209, 206, 213, 214, 210, 60, 65, 61, 67, 71, 66, 72, 70, 62, 63, 69, 68, 64, 88, 104, 89, 105, 113, 116, 117, 127, 114, 264, 265, 266, 199, 201, 200, 249, 254, 255, 256, 99, 98, 100, 109, 123, 121, 122, 102, 111, 125, 90, 92, 93, 91, 94, 23, 24, 25, 4, 5, 30, 186, 187, 188, 189, 38, 39, 47, 48, 40, 49, 73, 76, 75, 74, 80, 79, 77, 78, 81, 82, 226, 230, 239, 227, 231, 229, 228, 235, 238, 232, 234, 240, 236, 233, 237, 215, 216, 218, 217, 224, 225, 219, 221, 220, 223, 222, 18, 19, 28, 242, 241, 243, 244, 245, 174, 173, 181, 179, 175, 167, 168, 147, 146, 148, 176, 180, 169, 128, 131, 129, 132, 140, 141, 155, 142, 157, 156, 143, 158, 161, 162, 164, 165, 130, 133, 144, 145, 159, 160, 163, 166, 177, 178, 182, 150, 149, 151, 171, 170, 172, 12, 13, 14, 8, 9, 10, 11, 257, 258, 259, 190, 191, 46, 42, 41, 43, 32, 33, 34, 35, 36, 37, 153, 152, 154, 138, 139, 134, 136, 135, 137, 52, 53, 54 ] ]; -- *S?meyra Bedir* -------------- next part -------------- # Given a SmallGroup id of a group of order 2^n, print # SmallGroupToHallSenior[n][x] to obtain the Hall-Senior number of the group. # Given a Hall-Senior number y of a group of order 2^n, print # HallSeniorToSmallGroup[n][y] to obtain the SmallGroup id of the group. SmallGroupToHallSenior := [ [ 1 ], [ 2, 1 ], [ 3, 2, 4, 5, 1 ], [ 5, 3, 9, 10, 4, 11, 12, 13, 14, 2, 6, 7, 8, 1 ], [ 7, 18, 5, 19, 20, 46, 47, 48, 27, 28, 31, 21, 30, 29, 32, 6, 22, 49, 50, 51, 3, 11, 12, 16, 14, 15, 33, 36, 37, 38, 39, 40, 41, 34, 35, 4, 13, 17, 23, 24, 25, 26, 44, 45, 2, 8, 9, 10, 42, 43, 1 ], [ 11, 8, 38, 131, 132, 62, 63, 237, 238, 239, 240, 234, 235, 236, 65, 64, 37, 180, 181, 60, 59, 61, 128, 129, 130, 9, 39, 182, 40, 133, 66, 250, 251, 252, 253, 254, 255, 138, 139, 142, 248, 247, 249, 41, 67, 246, 140, 141, 143, 10, 42, 265, 266, 267, 5, 22, 30, 28, 29, 81, 83, 89, 90, 93, 82, 86, 84, 92, 91, 88, 85, 87, 144, 147, 146, 145, 150, 151, 149, 148, 152, 153, 6, 23, 31, 32, 24, 94, 96, 123, 126, 124, 125, 127, 47, 48, 53, 114, 113, 115, 51, 120, 25, 95, 97, 50, 49, 54, 116, 52, 121, 33, 98, 102, 34, 99, 100, 55, 56, 57, 118, 119, 117, 58, 122, 35, 101, 201, 203, 217, 202, 204, 218, 261, 263, 262, 264, 259, 260, 205, 206, 208, 211, 219, 220, 196, 195, 197, 229, 228, 230, 257, 256, 258, 207, 210, 209, 212, 221, 222, 213, 214, 223, 215, 216, 224, 193, 194, 200, 232, 231, 233, 189, 188, 192, 198, 225, 226, 191, 199, 190, 227, 7, 26, 36, 134, 135, 136, 137, 244, 245, 3, 15, 16, 20, 18, 19, 27, 106, 108, 107, 68, 71, 72, 73, 77, 74, 75, 76, 80, 69, 70, 78, 79, 169, 170, 172, 171, 175, 177, 176, 179, 178, 173, 174, 154, 157, 160, 159, 155, 158, 163, 167, 164, 161, 166, 168, 162, 156, 165, 184, 183, 185, 186, 187, 4, 17, 21, 109, 43, 44, 45, 46, 110, 111, 112, 241, 242, 243, 2, 12, 13, 14, 103, 104, 105, 1 ] ]; HallSeniorToSmallGroup := [ [ 1 ], [ 2, 1 ], [ 5, 2, 1, 3, 4 ], [ 14, 10, 2, 5, 1, 11, 12, 13, 3, 4, 6, 7, 8, 9 ], [ 51, 45, 21, 36, 3, 16, 1, 46, 47, 48, 22, 23, 37, 25, 26, 24, 38, 2, 4, 5, 12, 17, 39, 40, 41, 42, 9, 10, 14, 13, 11, 15, 27, 34, 35, 28, 29, 30, 31, 32, 33, 49, 50, 43, 44, 6, 7, 8, 18, 19, 20 ], [ 267, 260, 192, 246, 55, 83, 183, 2, 26, 50, 1, 261, 262, 263, 193, 194, 247, 196, 197, 195, 248, 56, 84, 87, 103, 184, 198, 58, 59, 57, 85, 86, 112, 115, 126, 185, 17, 3, 27, 29, 44, 51, 250, 251, 252, 253, 95, 96, 107, 106, 101, 110, 97, 108, 118, 119, 120, 124, 21, 20, 22, 6, 7, 16, 15, 31, 45, 202, 211, 212, 203, 204, 205, 207, 208, 209, 206, 213, 214, 210, 60, 65, 61, 67, 71, 66, 72, 70, 62, 63, 69, 68, 64, 88, 104, 89, 105, 113, 116, 117, 127, 114, 264, 265, 266, 199, 201, 200, 249, 254, 255, 256, 99, 98, 100, 109, 123, 121, 122, 102, 111, 125, 90, 92, 93, 91, 94, 23, 24, 25, 4, 5, 30, 186, 187, 188, 189, 38, 39, 47, 48, 40, 49, 73, 76, 75, 74, 80, 79, 77, 78, 81, 82, 226, 230, 239, 227, 231, 229, 228, 235, 238, 232, 234, 240, 236, 233, 237, 215, 216, 218, 217, 224, 225, 219, 221, 220, 223, 222, 18, 19, 28, 242, 241, 243, 244, 245, 174, 173, 181, 179, 175, 167, 168, 147, 146, 148, 176, 180, 169, 128, 131, 129, 132, 140, 141, 155, 142, 157, 156, 143, 158, 161, 162, 164, 165, 130, 133, 144, 145, 159, 160, 163, 166, 177, 178, 182, 150, 149, 151, 171, 170, 172, 12, 13, 14, 8, 9, 10, 11, 257, 258, 259, 190, 191, 46, 42, 41, 43, 32, 33, 34, 35, 36, 37, 153, 152, 154, 138, 139, 134, 136, 135, 137, 52, 53, 54 ] ]; From w_becker at hotmail.com Thu Jan 24 02:43:50 2013 From: w_becker at hotmail.com (Walter Becker) Date: Wed, 23 Jan 2013 17:43:50 -0900 Subject: [GAP Forum] diagonalization of a matrix Message-ID: I am not sure if this is an appropriate question for the gap-forum but it might be an interesting math question anyway. The following four by four matrix reperesents the action of an order five element on the elementary abelian group of order 11^4. Call the following matrix e: [ 7 10 4 1] [ 5 1 9 7] [ 8 9 4 9] [ 9 8 8 5] One reads this action as follows: a^e*a^(-7)*b^(-10}*c^(-4)*d^(-1) = b^e*a^(-5)*b^(-1)*c^(-9)*d^(-7)= etc for c^e and d^e. The group generated by (a,b,c,,d,e) and with this action is equivalent (ie isomorphic) to one in which the action by an order 5 matrix takes the form: a^e*a^(-x)=b^e*b^(-x)=c^e*c^(-y)=d^e*d^)-z)=1 where x=3, y=3^2, and z=3^3 mod(11). This correspondence was found by asking for groups with the presentation in the form a^e*a^(-x)-b^e*b^(-y)=c^e*c^(-z)=d^e*d^(-w)=1. Four cases of this type were found for the above given matrix. One knows that these exponents must be chosen from the set of numbers 1,3,4,5,9. If a matrix is a real symmetric (or hermitian) matrix then one knows how to diagonalize it ---find its eigenvalues and eigenvectors and then the matrix of eigenvectors will enable one to get the diagonal form. Does there exist a corresponding construction for a general matrix over a finite field ? Note here that even though the initial matrix is not symmetric it is equivalent to a diagonal matrix as far as the group is concerned. From nagyg at math.u-szeged.hu Mon Jan 28 11:08:56 2013 From: nagyg at math.u-szeged.hu (Nagy Gabor) Date: Mon, 28 Jan 2013 12:08:56 +0100 Subject: [GAP Forum] Filter by family Message-ID: <51065C48.7090809@math.u-szeged.hu> Dear Forum, I have a fixed monoid M. All the elements of M have the same family Fam. I would like to construct a filter "IsElementOfM" which returns true if and only if the object is in M. Is this feasible? Thanks in advance, Gabor From alexk at mcs.st-andrews.ac.uk Mon Jan 28 16:30:01 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 28 Jan 2013 16:30:01 +0000 Subject: [GAP Forum] Compiling GAP code in a Windows environment In-Reply-To: References: Message-ID: <4E9784E6-1A22-49CE-A44C-3E4C99C8F48A@mcs.st-andrews.ac.uk> Dear David, I've noticed that this question remains unanswered in the Forum. I'm not even sure that compiling GAP code was ever possible under Windows. Anyhow, as http://www.gap-system.org/Manuals//doc/changes/chap2.html says, "... we no longer recommend using the GAP compiler gac to compile GAP code to C, and may withdraw it in future releases. Compiling GAP code only ever gave a substantial speedup for rather specific types of calculation, and much more benefit can usually be achieved quite easily by writing a small number of key functions in C and loading them into the kernel as described in LoadDynamicModule (Reference: LoadDynamicModule). The gac script will remain available as a convenient way of compiling such kernel modules from C." The latter way is used by some packages whose Windows binaries are supplied with GAP (EDIM, orb, Browse, io and cvec), though their development is happening under Linux, and Windows binaries are compiled on a Windows machine with a full Cygwin installation. You may look at those packages, if you would be interested in going that way. Best regards, Alexander On 13 Nov 2012, at 07:59, David Harden wrote: > I have GAP installed on my Windows machine. I am interested in doing a > computation which makes use of a long list (of permutations on 32 points) > and repeating the same operations many times over, so I think compiling my > code can give me a substantial speed-up. How do I compile? > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From khersham.lim at mpi-hd.mpg.de Fri Feb 1 11:33:03 2013 From: khersham.lim at mpi-hd.mpg.de (Kher Sham Lim) Date: Fri, 01 Feb 2013 12:33:03 +0100 Subject: [GAP Forum] Finding certain subgroups from very large group In-Reply-To: <510BA69C.5070800@mpi-hd.mpg.de> References: <510BA69C.5070800@mpi-hd.mpg.de> Message-ID: <510BA7EF.4050904@mpi-hd.mpg.de> Dear GAP forum I have a very large group to study, say G (it is an automorphism group of a small group). G has order of 10 million and I am interested in knowing whether a certain known group, say H is a subgroup in G. To find H is impossible in GAP, as GAP tries to calculate all the subgroups and this process exceeds my computer's memory. Is there another command or algorithm in GAP to compute subgroup of specific order only, or at least limit the subgroup order? I used SONATA to obtain the subgroups by the way. Thanks in advanced. Sincerely Kher Sham Lim From alexk at mcs.st-andrews.ac.uk Fri Feb 1 11:50:18 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 1 Feb 2013 11:50:18 +0000 Subject: [GAP Forum] Finding certain subgroups from very large group In-Reply-To: <510BA7EF.4050904@mpi-hd.mpg.de> References: <510BA69C.5070800@mpi-hd.mpg.de> <510BA7EF.4050904@mpi-hd.mpg.de> Message-ID: <0D967CBF-7B02-4552-8B34-36D376D5F084@mcs.st-andrews.ac.uk> Dear Kher Sham Lim, Thank you for your question. In fact, the very first hint is contained in the documentation of 'AllSubgroups' from the manual of the SONATA package: For a finite group G AllSubgroups returns a list of all subgroups of G, intended primarily for use in class for small examples. This list will quickly get very long and in general use of ConjugacyClassesSubgroups (39.19-3) is recommended Further hints may be found in the GAP F.A.Q. at http://www.gap-system.org/Faq/faq.html#7.7 - for convenience, that text is also pasted below: --------- 7.7: How do I get the subgroups of my group? Everything said for elements holds even more so for subgroups: You probably want only representatives of the conjugacy classes or even just of subgroups of a given size. For groups of moderate size (up to 10^4/10^5, this depends a bit on the group structure) the commands LatticeSubgroups or ConjugacyClassesSubgroups will compute representatives of all subgroups up to conjugacy. If the group gets bigger, however, this will either run out of space or take too long to be feasible. In this case it is likely that you are only interested in certain types of subgroups. Try to use the restricting conditions to reduce the calculation (for example p-subgroups can be found inside a Sylow subgroup). GAP commands that might come useful to obtain specific subgroups are for example NormalSubgroups,SylowSubgroup, HallSubgroup, or MaximalSubgroupClassReps. ---------- Hope this helps. There may be better suggestions, if more details would be known about the groups in question. Best wishes, Alexander On 1 Feb 2013, at 11:33, Kher Sham Lim wrote: > Dear GAP forum > > I have a very large group to study, say G (it is an automorphism group of a small group). G has order of 10 million and I am interested in knowing whether a certain known group, say H is a subgroup in G. To find H is impossible in GAP, as GAP tries to calculate all the subgroups and this process exceeds my computer's memory. Is there another command or algorithm in GAP to compute subgroup of specific order only, or at least limit the subgroup order? I used SONATA to obtain the subgroups by the way. Thanks in advanced. > > Sincerely > > Kher Sham Lim > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Sven.Reichard at tu-dresden.de Fri Feb 1 11:57:06 2013 From: Sven.Reichard at tu-dresden.de (Sven Reichard) Date: Fri, 01 Feb 2013 12:57:06 +0100 Subject: [GAP Forum] Finding certain subgroups from very large group In-Reply-To: <510BA7EF.4050904@mpi-hd.mpg.de> References: <510BA69C.5070800@mpi-hd.mpg.de> <510BA7EF.4050904@mpi-hd.mpg.de> Message-ID: <510BAD92.3000109@tu-dresden.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 What do we know about the structure of H? Sven Reichard. Am 01.02.2013 12:33, schrieb Kher Sham Lim: > Dear GAP forum > > I have a very large group to study, say G (it is an automorphism > group of a small group). G has order of 10 million and I am > interested in knowing whether a certain known group, say H is a > subgroup in G. To find H is impossible in GAP, as GAP tries to > calculate all the subgroups and this process exceeds my computer's > memory. Is there another command or algorithm in GAP to compute > subgroup of specific order only, or at least limit the subgroup > order? I used SONATA to obtain the subgroups by the way. Thanks in > advanced. > > Sincerely > > Kher Sham Lim _______________________________________________ Forum > mailing list Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEVAwUBUQutkWFjB3Gki4XVAQLMzwf9ECFtMZXBYqRzdAS8J1s7NnIafTbef9G3 +wP2T0omEYRaKyRRsCnyJHq8ff9nCNU6M7M0jShZYfI0bG6o6yO10NGo5WKP6by/ Gx6Yak872WtZ9PxzvX2EOGCkRFWWI9WsHvFnG2l03Vz3Ev0+GVZRQDimZA+KL2T3 TAMHGfwLH3E3yHxrxirPWJwv+eovVljZ9eoOV4KDczdBpdFIC33LQ+SbsICEFhp5 A9WUVAUo3vDfylkTLTVIz90PUlndD9YczahUqnOEr2pdlQVXjIOtt58CrH+JRqUo r+ifKB1cjikKzctK8VQlAONM5+eC9RvK28WEAwmoqISA5VbiijKVUQ== =bybU -----END PGP SIGNATURE----- From sl4 at st-andrews.ac.uk Fri Feb 1 12:09:04 2013 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Fri, 1 Feb 2013 12:09:04 +0000 Subject: [GAP Forum] Finding certain subgroups from very large group In-Reply-To: <093121d5cf284410ac80fcfb90968b62@UOS-DUN-CAS5.st-andrews.ac.uk> References: <510BA69C.5070800@mpi-hd.mpg.de> <093121d5cf284410ac80fcfb90968b62@UOS-DUN-CAS5.st-andrews.ac.uk> Message-ID: Dear Kher Sham Lim, I assume you actually want to know if G has a subgroup isomorphic to H. If so, the command you want is IsomorphicSubgroups(G,H). This is enormously more efficient than simply listing all [conjugacy classes of] subgroups of G in most cases. It might also be helpful to first replace G by an isomorphic permutation group (using IsomorphismPermGroup). All of these commands are documented in the reference manual (equivalently in the on-line help). Steve On 1 Feb 2013, at 11:33, Kher Sham Lim wrote: > Dear GAP forum > > I have a very large group to study, say G (it is an automorphism group > of a small group). G has order of 10 million and I am interested in > knowing whether a certain known group, say H is a subgroup in G. To find > H is impossible in GAP, as GAP tries to calculate all the subgroups and > this process exceeds my computer's memory. Is there another command or > algorithm in GAP to compute subgroup of specific order only, or at least > limit the subgroup order? I used SONATA to obtain the subgroups by the > way. Thanks in advanced. > > Sincerely > > Kher Sham Lim > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From johannes.hahn at uni-jena.de Fri Feb 1 14:38:08 2013 From: johannes.hahn at uni-jena.de (Johannes Hahn) Date: Fri, 01 Feb 2013 15:38:08 +0100 Subject: [GAP Forum] Modules over general and not so general algebras Message-ID: <510BD350.3070301@uni-jena.de> Hi everyone. Is there an elegant way to implement (finite-dimensional) modules over my favorite algebra? My algebra is finite dimensional and I would GAP tell this if it needs to know, but I don't want to spell out an explicit basis and structure constants for the algebra. (More to the point: I work with Hecke algebras and they get way to big for this, if the Coxeter group is big, say E_7, E_8) I do not actually need the algebra, I just want to do some computations with the matrices of the representation. There seems no way to define an algebra by generators and relations because GAP seemingly wants to do some calculations and of course this goes wrong in the general case and even in my special case GAP doesn't know that there are normalforms for the elements of my algebra etc. (And I cannot find a way to tell GAP this) The next best thing would be to just forget the relations for a moment and think of the modules as algebra morphisms from the free algebra on the (small) set of generators into a full matrix algebra. If you have that, one could implement a filter that checks the defining relations of my favorite algebra for such morphisms manually. GAP knows free algebras and it knows matrix algebras and it has an operation for defining algebra morphisms by their images, but interestingly, even this does not work. If I just try to get the morphism Q \to Q, x \mapsto 1, y\mapsto 1 doing this: > F:=FreeAssociativeAlgebraWithOne(Rationals,2); > f := AlgebraHomomorphismByImages(F,FullMatrixAlgebra(Rationals,1), GeneratorsOfAlgebraWithOne(F),[ [[1]], [[1]] ]); then GAP enters an infinite loop for some reason. This behaviour is completely mysterious to me. Why on earth would GAP even consider to do *any* computation in that situation? There is exactly nothing else to know about a general algebra morphism on a free algebra other than the data that already has been given. The only thing to do here is to take the input data, wrap it into an object, set some filters to true and return that object. Why does GAP try to compute anything here instead of just giving me my morphism so I can start working with it? Should there be a compelling reason for GAP to behave this way (although I really can't think of any...), then my question immediatly changes into: What is an elegant way to implement matrix representation of Hecke algebras without having to tell GAP an explicit basis and structure constants for the algebra? Right now I'm just working with plain records to store information about the representation but this seems very inelegant to me. There are no "real" objects, no types, no possibility for method-selection based on additional information... (and I can't figure out how to implement Hecke-Matrix-Representation objects for myself... I'm not sure yet if GAP really behaves differently than the manual claims or if I'm just to stupid to read the manual correctly.) Best wishes Johannes Hahn. From jmichel at math.jussieu.fr Fri Feb 1 14:53:36 2013 From: jmichel at math.jussieu.fr (Jean MICHEL) Date: Fri, 1 Feb 2013 15:53:36 +0100 Subject: [GAP Forum] Modules over general and not so general algebras In-Reply-To: <510BD350.3070301@uni-jena.de> References: <510BD350.3070301@uni-jena.de> Message-ID: <20130201145335.GA6430@math.jussieu.fr> On Fri, Feb 01, 2013 at 03:38:08PM +0100, Johannes Hahn wrote: > Is there an elegant way to implement (finite-dimensional) modules over my > favorite algebra? My algebra is finite dimensional and I would GAP tell > this if it needs to know, but I don't want to spell out an explicit basis > and structure constants for the algebra. (More to the point: I work with > Hecke algebras and they get way to big for this, if the Coxeter group is > big, say E_7, E_8) > > I do not actually need the algebra, I just want to do some computations > with the matrices of the representation. There seems no way to define an > algebra by generators and relations because GAP seemingly wants to do some > calculations and of course this goes wrong in the general case and even in > my special case GAP doesn't know that there are normalforms for the > elements of my algebra etc. (And I cannot find a way to tell GAP this) Matrices for all irreducible representations of the Hecke algebras of finite Coxeter group are implemented in the GAP3 package CHEVIE. There is also an implementation of various bases of these algebras. See www.math.jussieu.fr/~jmichel/chevie ------------------------------------------------------------------------------ Jean MICHEL, Groupes et representations, IMJ-PRG UMR7586 tel.(33)157279144 Bureau 639 Bat. Sophie Germain Case 7012 - 75205 PARIS Cedex 13 From khersham.lim at mpi-hd.mpg.de Fri Feb 1 15:44:27 2013 From: khersham.lim at mpi-hd.mpg.de (Kher Sham Lim) Date: Fri, 01 Feb 2013 16:44:27 +0100 Subject: [GAP Forum] Finding certain subgroups from very large group In-Reply-To: References: <510BA69C.5070800@mpi-hd.mpg.de> <093121d5cf284410ac80fcfb90968b62@UOS-DUN-CAS5.st-andrews.ac.uk> Message-ID: <510BE2DB.7000606@mpi-hd.mpg.de> Dear Stephen, Thanks, the command IsomorphicSubgroups(G,H) does exactly what I need. Best regards, Kher Sham On 02/01/2013 01:09 PM, Stephen Linton wrote: > Dear Kher Sham Lim, > > I assume you actually want to know if G has a subgroup isomorphic to H. > If so, the command you want is IsomorphicSubgroups(G,H). > > This is enormously more efficient than simply listing all [conjugacy classes of] subgroups of G in most cases. > > It might also be helpful to first replace G by an isomorphic permutation group (using IsomorphismPermGroup). > > All of these commands are documented in the reference manual (equivalently in the on-line help). > > Steve > > On 1 Feb 2013, at 11:33, Kher Sham Lim wrote: > >> Dear GAP forum >> >> I have a very large group to study, say G (it is an automorphism group >> of a small group). G has order of 10 million and I am interested in >> knowing whether a certain known group, say H is a subgroup in G. To find >> H is impossible in GAP, as GAP tries to calculate all the subgroups and >> this process exceeds my computer's memory. Is there another command or >> algorithm in GAP to compute subgroup of specific order only, or at least >> limit the subgroup order? I used SONATA to obtain the subgroups by the >> way. Thanks in advanced. >> >> Sincerely >> >> Kher Sham Lim >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From denisetorrao at hotmail.com Mon Feb 4 11:38:28 2013 From: denisetorrao at hotmail.com (=?iso-8859-1?B?RGVuaXNlIFRvcnLjbw==?=) Date: Mon, 4 Feb 2013 11:38:28 +0000 Subject: [GAP Forum] list of list Message-ID: Hello, my name is Denise and I'm starting to work in GAP. I'm trying to compute a simple program, but I'm with some dificulty, because I implement a cycle for, and my values of the list change. The program is the following: algoritmo14:=function(p,D,c) local soma, soma2, aux, aux3,i,A,x; A:=[];A[1]:=[];x:=[]; for j in [1..p-1] do A[1][j]:=0;od;A[1][p]:=c; for i in [1..p-1] do x[i]:=0;od;x[p]:=c; i:=p-1; soma:=0; while (i>0) do for aux in [i+1..p] do soma:=soma+D[aux]*x[aux]; od; if (soma >= D[i]) then x[i]:=x[i]+1; x[p]:=soma-D[i]; for aux3 in [i+1..p-1] do x[aux3]:=0; od;Print("A1-> ",A,"\n"); Add(A,x);Print("A2-> ",A,"\n"); i:=p-1; else i:=i-1; fi; soma:=0;od; return A;end; My problem is with the list A, that changes, and in the final all it's elements (except for the first one) are equal. Can someone help me? I guess is something very trivial, but as I said before, I'm taking my first steps with GAP, so I still have a lot of dificulties with this program. Very very thanks, Denise Torr?o From sl4 at st-andrews.ac.uk Mon Feb 4 12:10:34 2013 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Mon, 4 Feb 2013 12:10:34 +0000 Subject: [GAP Forum] list of list In-Reply-To: <839dafcc26e04851a0e6f48ebcaedf3e@UOS-DUN-CAS3.st-andrews.ac.uk> References: <839dafcc26e04851a0e6f48ebcaedf3e@UOS-DUN-CAS3.st-andrews.ac.uk> Message-ID: Dear GAP Forum, On 4 Feb 2013, at 11:38, Denise Torr?o wrote: > > Hello, my name is Denise and I'm starting to work in GAP. I'm trying to compute a simple program, but I'm with some dificulty, because I implement a cycle for, and my values of the list change. The program is the following: > algoritmo14:=function(p,D,c) > local soma, soma2, aux, aux3,i,A,x; > A:=[];A[1]:=[];x:=[]; > for j in [1..p-1] do A[1][j]:=0;od;A[1][p]:=c; > > for i in [1..p-1] do x[i]:=0;od;x[p]:=c; > i:=p-1; > soma:=0; > while (i>0) do for aux in [i+1..p] do soma:=soma+D[aux]*x[aux]; od; if (soma >= D[i]) then x[i]:=x[i]+1; x[p]:=soma-D[i]; > for aux3 in [i+1..p-1] do x[aux3]:=0; od;Print("A1-> ",A,"\n"); > Add(A,x);Print("A2-> ",A,"\n"); i:=p-1; else i:=i-1; fi; soma:=0;od; > > return A;end; > My problem is with the list A, that changes, and in the final all it's elements (except for the first one) are equal. Can someone help me? I guess is something very trivial, but as I said before, I'm taking my first steps with GAP, so I still have a lot of dificulties with this program. > Very very thanks, > Denise Torr?o I think the problem is the statement "Add(A,x)". This DOES NOT make a copy of x. A simple example is gap> l := [1]; [ 1 ] gap> m := []; [ ] gap> Add(m,l); gap> l[1] := 2; 2 gap> m; [ [ 2 ] ] gap> Here m[1] and l are THE SAME list and changes to that list can be seen through both routes. What you probably want is Add(A, ShallowCopy(x)); which does make a copy. Steve From hatlam at gmail.com Wed Feb 6 06:52:25 2013 From: hatlam at gmail.com (Ha T. Lam) Date: Wed, 6 Feb 2013 01:52:25 -0500 Subject: [GAP Forum] Coefficients of basis elements for Galois field Message-ID: Dear GAP forum, I built a Galois field over F2 with irreducible polynomial f x:=Indeterminate(GF(2), "x"); > x f:=x^22+x^21+x^20+x^17+x^14+x^9+x^5+x+Z(2)^0; > x^22+x^21+x^20+x^17+x^14+x^9+x^5+x+Z(2)^0 gf:=GF(2,f); > Field( [ a ] ) BasisVectors(Basis(gf)); > [ !Z(2)^0, a, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9, a^10, a^11, a^12, a^13, a^14, a^15, a^16, a^17, a^18, a^19, a^20, a^21 ] I'm trying to get the basis elements as polynomials, in particular, I want their coefficients, but I'm not sure how to do this. My guess is that since they are all powers of the primitive root, if I know the coefficients representing the primitive root, I will be able to compute their coefficients. The next thing I tried was to extract the primitive root: PrimitiveRoot(gf); but I get the message "Error, no method found!" I'm not sure what to try next, do you have any advise? Best regards, Ha T. Lam From hulpke at me.com Wed Feb 6 14:42:54 2013 From: hulpke at me.com (Alexander Hulpke) Date: Wed, 06 Feb 2013 07:42:54 -0700 Subject: [GAP Forum] Coefficients of basis elements for Galois field In-Reply-To: References: Message-ID: Dear Forum, On Feb 5, 2013, at 11:52 PM, Ha T. Lam wrote: > I built a Galois field over F2 with irreducible polynomial f > > x:=Indeterminate(GF(2), "x"); >> x > f:=x^22+x^21+x^20+x^17+x^14+x^9+x^5+x+Z(2)^0; >> x^22+x^21+x^20+x^17+x^14+x^9+x^5+x+Z(2)^0 > gf:=GF(2,f); >> Field( [ a ] ) > BasisVectors(Basis(gf)); >> [ !Z(2)^0, a, a^2, a^3, a^4, a^5, a^6, a^7, a^8, a^9, a^10, a^11, a^12, > a^13, a^14, a^15, a^16, a^17, a^18, a^19, a^20, a^21 ] > > I'm trying to get the basis elements as polynomials, in particular, I want > their coefficients, but I'm not sure how to do this. My guess is that since > they are all powers of the primitive root, if I know the coefficients > representing the primitive root, I will be able to compute their > coefficients. The next thing I tried was to extract the primitive root: This function is called PrimitiveElement in GAP: gap> a:=PrimitiveElement(gf); a To see how elements of gf are represented as polynomials, you need to look at an elements internal representation: gap> IsAlgBFRep(a^0); true gap> IsAlgBFRep(a^1); false If it is in IsAlgBFRep (base field), then elm![1] (note the exclamation mark)returns the element of the base field: gap> z:=a^0; !Z(2)^0 gap> z![1]; Z(2)^0 If it is in IsAlgExtRep, z![1] returns the coefficient vector of the polynomial representing the element. gap> z:=a^5+a+Z(2); a^5+a+Z(2)^0 gap> IsAlgExtRep(z); true gap> z![1]; gap> Print(z![1]); [ Z(2)^0, Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), Z(2)^0, 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2), 0*Z(2) ] I believe this is the data you were looking for. Best wishes, Alexander Hulpke From s.witzel at gmx.net Thu Feb 7 15:34:07 2013 From: s.witzel at gmx.net (Stefan Witzel) Date: Thu, 07 Feb 2013 16:34:07 +0100 Subject: [GAP Forum] ConjugacyClasses Message-ID: <20130207153407.310280@gmx.net> Hi gap forum, can anyone explain the following behavior to me (saying that PSL(3,2) has to distinct conjugacy classes that are conjugate)? vec1:=[1,0,0]*Z(2)^0;; sl:=SL(3,2);; orb:=Orbit(sl,vec1,OnLines);; act:=ActionHomomorphism(sl,orb,OnLines);; psl:=Image(act);; ConjugacyClasses(psl); [ ()^G, (3,4)(6,7)^G, (2,3,5,4)(6,7)^G, (2,3,6)(4,7,5)^G, (1,2,3,4,7,5,6)^G, (1,2,3,5,6,7,4)^G ] g:=Representative(ConjugacyClasses(psl)[5]);; h:=Representative(ConjugacyClasses(psl)[6]);; c:=(2,6,4)(3,5,7);; c*g^(-1)*c^(-1)=h; true IsSubgroup(psl,Group(c)); true I guess one could as well use PSL(3,2) out of the box but that gives a different permutation presentation and I didn't want to work out c anew. I also know that PSL(3,2)=SL(3,2)=GL(3,2) etc., but that's not the point of the question. (I do not know what would be the right way to say "IsElement(psl,c)" in the end, so I would be interested in that.) Thanks for the help! Best regards, Stefan P.S.: In case you are wondering, I'm using GAP version 4.4.12. From stefan at mcs.st-and.ac.uk Thu Feb 7 15:47:46 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Thu, 7 Feb 2013 15:47:46 -0000 (UTC) Subject: [GAP Forum] ConjugacyClasses In-Reply-To: <20130207153407.310280@gmx.net> References: <20130207153407.310280@gmx.net> Message-ID: On Thu, February 7, 2013 3:34 pm, Stefan Witzel wrote: > can anyone explain the following behavior to me (saying that PSL(3,2) has to distinct > conjugacy classes that are conjugate)? > > vec1:=[1,0,0]*Z(2)^0;; > sl:=SL(3,2);; > orb:=Orbit(sl,vec1,OnLines);; > act:=ActionHomomorphism(sl,orb,OnLines);; > psl:=Image(act);; > ConjugacyClasses(psl); > > [ ()^G, (3,4)(6,7)^G, (2,3,5,4)(6,7)^G, (2,3,6)(4,7,5)^G, (1,2,3,4,7,5,6)^G, > (1,2,3,5,6,7,4)^G ] > > g:=Representative(ConjugacyClasses(psl)[5]);; > h:=Representative(ConjugacyClasses(psl)[6]);; > c:=(2,6,4)(3,5,7);; > c*g^(-1)*c^(-1)=h; > > true > > IsSubgroup(psl,Group(c)); > > true The point is that the 6th conjugacy class in the list consists of the inverses of the elements of the 5th conjugacy class (in particular the elements in these classes are not conjugate to their inverses): gap> ccl := ConjugacyClasses(psl); [ ()^G, (3,4)(6,7)^G, (2,3,5,4)(6,7)^G, (2,3,6)(4,7,5)^G, (1,2,3,4,7,5,6)^G, (1,2,3,5,6,7,4)^G ] gap> Set(AsList(ccl[6])) = Set(List(AsList(ccl[5]),g->g^-1)); true gap> IsConjugate(psl,Representative(ccl[5]),Representative(ccl[6])); false gap> IsConjugate(psl,Representative(ccl[5]),Representative(ccl[6])^-1); true Hope this helps, Stefan Kohl From member at linkedin.com Fri Feb 8 04:07:56 2013 From: member at linkedin.com (Mohammad sarwar via LinkedIn) Date: Fri, 8 Feb 2013 04:07:56 +0000 (UTC) Subject: [GAP Forum] Join my network on LinkedIn Message-ID: <632497681.15328845.1360296476634.JavaMail.app@ela4-app2322.prod> LinkedIn ------------ Mohammad sarwar requested to add you as a connection on LinkedIn: ------------------------------------------ seyed sadegh, I'd like to add you to my professional network on LinkedIn. - Mohammad Accept invitation from Mohammad sarwar http://www.linkedin.com/e/-tcyca4-hcwteevk-m/LuyDInEhG62yDjpkna1srHJVA3WJD4oXPkn_Wux/blk/I273440496_140/e39SrCAJoS5vrCAJoyRJtCVFnSRJrScJr6RBfnhv9ClRsDgZp6lQs6lzoQ5AomZIpn8_c3gNnPoVd30Qd3cTcAALtQpooDFUdQgLd3kNc3AUc3oVc34LrCBxbOYWrSlI/eml-comm_invm-b-in_ac-inv28/?hs=false&tok=2LijXuYjzTY5A1 View profile of Mohammad sarwar http://www.linkedin.com/e/-tcyca4-hcwteevk-m/rso/53482925/lTp1/name/143378654_I273440496_140/?hs=false&tok=1BWYYmDZ_TY5A1 ------------------------------------------ You are receiving Invitation emails. This email was intended for seyed sadegh salehi amiri. Learn why this is included: http://www.linkedin.com/e/-tcyca4-hcwteevk-m/plh/http%3A%2F%2Fhelp%2Elinkedin%2Ecom%2Fapp%2Fanswers%2Fdetail%2Fa_id%2F4788/-GXI/?hs=false&tok=07bKxJ8wLTY5A1 (c) 2012, LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. From gordon.royle at uwa.edu.au Fri Feb 8 09:10:44 2013 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Fri, 8 Feb 2013 17:10:44 +0800 Subject: [GAP Forum] Strange output Message-ID: I have a simple program that uses SmallestImageSet to find the lex least representative of orbits of a graph on k-sets. The output has suddenly started to look odd, in that in among all the "regular" sets, there are sets that print out with a strange syntax [ 1, 5, 51 ] [ 1, 6 .. 11 ] [ 1, 6, 12 ] The set [ 1, 6 .. 11 ] is equal to [1, 6, 11] but why does it print this way? Thanks Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From stefan at mcs.st-and.ac.uk Fri Feb 8 10:10:25 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Fri, 8 Feb 2013 10:10:25 -0000 (UTC) Subject: [GAP Forum] Strange output In-Reply-To: References: Message-ID: On Fri, February 8, 2013 9:10 am, Gordon Royle wrote: > I have a simple program that uses SmallestImageSet to find the lex least representative > of orbits of a graph on k-sets. > > The output has suddenly started to look odd, in that in among all the "regular" sets, > there are sets that print out with a strange syntax > > > [ 1, 5, 51 ] > [ 1, 6 .. 11 ] > [ 1, 6, 12 ] > > The set [ 1, 6 .. 11 ] is equal to [1, 6, 11] but why does it print this way? The second list prints in this way because it is in `IsRangeRep' (as opposed to `IsPlistRep'), and neither short ranges are automatically converted to `IsPlistRep' nor the output routine deals with that special case. We have: gap> l1 := [ 1, 6 .. 11 ]; [ 1, 6 .. 11 ] gap> l2 := [ 1, 6, 11 ]; [ 1, 6, 11 ] gap> l1=l2; true gap> IsPlistRep(l1); false gap> IsPlistRep(l2); true gap> IsRangeRep(l1); true gap> IsRangeRep(l2); false gap> TNUM_OBJ(l1); [ 64, "list (range,ssort)" ] gap> TNUM_OBJ(l2); [ 54, "list (plain,cyc)" ] gap> MemoryUsage(l1); # saves already a tiny bit of memory 28 gap> MemoryUsage(l2); 32 gap> l3 := [1,6..1000001]; [ 1, 6 .. 1000001 ] gap> MemoryUsage(l3); # for longer ranges, more memory is saved 28 gap> MemoryUsage(AsSet(l3)); 800024 If there is a real need, I guess at least the output routine could be adjusted as to print [ 1, 6, 11 ] rather than [ 1, 6 .. 11 ]. Best regards, Stefan From alexk at mcs.st-andrews.ac.uk Fri Feb 8 12:20:09 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 8 Feb 2013 12:20:09 +0000 Subject: [GAP Forum] GAP 4.6.2 release announcement Message-ID: Dear GAP Forum, We have just released the next major release, GAP 4.6.2, which is available now for download from the GAP website http://www.gap-system.org and is also available via alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives You may access the overview of changes in GAP 4.6.2 by entering '?Changes between GAP 4.5 and GAP 4.6' in GAP 4.6.2, or view it online at http://www.gap-system.org/Manuals/doc/changes/chap2.html#X8175857F79C8AD8E In addition to improved and extended functionality and fixed bugs, GAP 4.6.2 contains 106 GAP packages, whereas at the time of the first public release of GAP 4.5 there were 99 packages redistributed with GAP. We encourage all users to upgrade to GAP 4.6.2. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we are regularly updating the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From alexk at mcs.st-andrews.ac.uk Fri Feb 8 12:25:01 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 8 Feb 2013 12:25:01 +0000 Subject: [GAP Forum] multiplication of Lie objects in GAP In-Reply-To: <3f7f65.43c6f.13bf66d2a12.Coremail.lijr@lzu.edu.cn> References: <3f7f65.43c6f.13bf66d2a12.Coremail.lijr@lzu.edu.cn> Message-ID: <22AB3E68-EEA4-4E89-8349-8EA7FD9F53EF@mcs.st-andrews.ac.uk> Dear Jianrong, GAP 4.6.2 which was just announced in the GAP Forum, has a new attribute 'UnderlyingRingElement'. If x and y are Lie objects, then the 'usual' multiplication may be computed with UnderlyingRingElement(x)*UnderlyingRingElement(y) (note that the result will NOT be a Lie object). Hope this helps, Alexander On 1 Jan 2013, at 14:04, ??? wrote: > Dear Forum, > > I have a Lie algebra A whose basis is given by matrices explicitly. When I create the algebra A, the matrices in the basis of A are denoted by LieObject... Let x, y in the basis of A. It seems that x*y is the same as [x, y]. How could I compute the usual multiplication of x and y? Thank you very much. > > With best wishes, > Jianrong. From gordon.royle at uwa.edu.au Sun Feb 10 02:52:02 2013 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Sun, 10 Feb 2013 10:52:02 +0800 Subject: [GAP Forum] Strange output In-Reply-To: References: Message-ID: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au> Well, thanks for the feedback, but I remain somewhat confused? Firstly, why does GAP unilaterally choose to change the format .. .the program is simply a recursive program with a single Print statement, and yet the output changes format , and then changes back again, without me asking it to... [ 1, 5, 51 ] [ 1, 6 .. 11 ] [ 1, 6, 12 ] Secondly, why is 6 .. 11 the "range representation" for 6, 11 In most languages that support it, the ".." means "everything from the first to the last (or perhaps the first to the last-minus-one)" Actually, it means the same in GAP too: gap> for x in [6 .. 11] do > Print(x," "); > od; 6 7 8 9 10 11 So, naively I would expect [1, 6 .. 11] to be a fancy way of saying [1, 6, 7, 8, 9, 10, 11] But it's not: gap> for x in [1, 6 .. 11] do > Print(x," "); > od; 1 6 11 It seems dangerous to me to have the expression a .. b mean something different to (a) other uses in the same language, (b) mathematical usage and (c ) other programming languages. Thirdly, why has this happened RIGHT NOW, when I've been using this program for years without ever seeing anything like this before? Thanks again Gordon Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From dima at ntu.edu.sg Sun Feb 10 04:58:39 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Sun, 10 Feb 2013 12:58:39 +0800 Subject: [GAP Forum] Strange output In-Reply-To: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au> References: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au> Message-ID: On 10 February 2013 10:52, Gordon Royle wrote: > Well, thanks for the feedback, but I remain somewhat confused? I think this is definitely a bug, and must be fixed ASAP... Best, Dima > > Firstly, why does GAP unilaterally choose to change the format .. .the program is simply a recursive program with a single Print statement, and yet the output changes format , and then changes back again, without me asking it to... > > [ 1, 5, 51 ] > [ 1, 6 .. 11 ] > [ 1, 6, 12 ] > > > > > Secondly, why is > > 6 .. 11 > > the "range representation" for > > 6, 11 > > In most languages that support it, the ".." means "everything from the first to the last (or perhaps the first to the last-minus-one)" > > > Actually, it means the same in GAP too: > > gap> for x in [6 .. 11] do >> Print(x," "); >> od; > 6 7 8 9 10 11 > > So, naively I would expect > > [1, 6 .. 11] > > to be a fancy way of saying > > [1, 6, 7, 8, 9, 10, 11] > > > But it's not: > > gap> for x in [1, 6 .. 11] do >> Print(x," "); >> od; > 1 6 11 > > > It seems dangerous to me to have the expression a .. b mean something different to (a) other uses in the same language, (b) mathematical usage and (c ) other programming languages. > > > Thirdly, why has this happened RIGHT NOW, when I've been using this program for years without ever seeing anything like this before? > > > Thanks again > > Gordon > > > > Professor Gordon Royle > School of Mathematics and Statistics > University of Western Australia > Gordon.Royle at uwa.edu.au > > > > > > > > > > > > > > _______________________________________________ > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From laurent.bartholdi at gmail.com Sun Feb 10 06:25:37 2013 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Sun, 10 Feb 2013 07:25:37 +0100 Subject: [GAP Forum] [Devel] Strange output In-Reply-To: References: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au> Message-ID: The [a, b .. c] in GAP means { a, b, 2b-a, ..., a+i(b-a), ..., c } in mathematics. GAP is not exactly a programming language; there are *objects* and their *representations*, and GAP is allowed to change a representation to another one in case it's provably more efficient (i.e. there are more or faster algorithms for it). Hope this helps, Laurent On Sun, Feb 10, 2013 at 5:58 AM, Dmitrii (Dima) Pasechnik wrote: > On 10 February 2013 10:52, Gordon Royle wrote: > > Well, thanks for the feedback, but I remain somewhat confused? > > I think this is definitely a bug, and must be fixed ASAP... > > Best, > Dima > > > > > Firstly, why does GAP unilaterally choose to change the format .. .the > program is simply a recursive program with a single Print statement, and > yet the output changes format , and then changes back again, without me > asking it to... > > > > [ 1, 5, 51 ] > > [ 1, 6 .. 11 ] > > [ 1, 6, 12 ] > > > > > > > > > > Secondly, why is > > > > 6 .. 11 > > > > the "range representation" for > > > > 6, 11 > > > > In most languages that support it, the ".." means "everything from the > first to the last (or perhaps the first to the last-minus-one)" > > > > > > Actually, it means the same in GAP too: > > > > gap> for x in [6 .. 11] do > >> Print(x," "); > >> od; > > 6 7 8 9 10 11 > > > > So, naively I would expect > > > > [1, 6 .. 11] > > > > to be a fancy way of saying > > > > [1, 6, 7, 8, 9, 10, 11] > > > > > > But it's not: > > > > gap> for x in [1, 6 .. 11] do > >> Print(x," "); > >> od; > > 1 6 11 > > > > > > It seems dangerous to me to have the expression a .. b mean something > different to (a) other uses in the same language, (b) mathematical usage > and (c ) other programming languages. > > > > > > Thirdly, why has this happened RIGHT NOW, when I've been using this > program for years without ever seeing anything like this before? > > > > > > Thanks again > > > > Gordon > > > > > > > > Professor Gordon Royle > > School of Mathematics and Statistics > > University of Western Australia > > Gordon.Royle at uwa.edu.au > > > > > > > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > > 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. > > Towards A Sustainable Earth:Print Only When Necessary.Thank you. > > _______________________________________________ > Devel mailing list > Devel at gap-system.org > http://mail.gap-system.org/mailman/listinfo/devel > -- Prof. Dr. Laurent Bartholdi \ laurent.bartholdigmailcom G.-A. Universit?t zu G?ttingen \ Phone: +49 551 39 7826 Bunsenstra?e 3-5 \ Secr: +49 551 39 7752 D-37073 G?ttingen, Germany \ Fax: +49 551 39 22674 From sl4 at st-andrews.ac.uk Sun Feb 10 08:30:51 2013 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Sun, 10 Feb 2013 08:30:51 +0000 Subject: [GAP Forum] Strange output In-Reply-To: References: Message-ID: Hi Gordon, Could you let me have your programme so I can look into this? In terms of correctness, though, this is not a bug. The range [1,6..11] which has length 3 offset 1 and step 5 is equal to the plain list [1,6,11]. GAP range notation only makes sense with the brackets and the three entry notation [a,b..c] implies a step of b-a. b..c does not mean anything outside brackets. As Laurent says, GAP in general, is allowed to, and benefits by being able to, choose what representation to return a result in, so long as the result is correct according to the documentation. If there isn't a good performance reason, though, then this is needless complication, so I'll look into it. Steve On 8 Feb 2013, at 09:10, Gordon Royle wrote: > I have a simple program that uses SmallestImageSet to find the lex least representative of orbits of a graph on k-sets. > > The output has suddenly started to look odd, in that in among all the "regular" sets, there are sets that print out with a strange syntax > > > [ 1, 5, 51 ] > [ 1, 6 .. 11 ] > [ 1, 6, 12 ] > > The set [ 1, 6 .. 11 ] is equal to [1, 6, 11] but why does it print this way? > > Thanks > > Gordon > > Professor Gordon Royle > School of Mathematics and Statistics > University of Western Australia > Gordon.Royle at uwa.edu.au > > > > > > > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Sun Feb 10 11:25:14 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Sun, 10 Feb 2013 19:25:14 +0800 Subject: [GAP Forum] [Devel] Strange output In-Reply-To: References: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au> Message-ID: On 10 February 2013 14:25, Laurent Bartholdi wrote: > The [a, b .. c] in GAP means { a, b, 2b-a, ..., a+i(b-a), ..., c } in > mathematics. I've been using GAP for 20 years, and I never saw or heard about this one. Sorry. IMHO it is confusing, counter-intuitive, goes against well-established practices in other programming languages and CAS's, etc... I can probably list a dozen programming languages / CAS's, where such lists (or/and loops) are constructed by the triple of parameters ("beginning","end","step"), in this order. May I humbly propose syntax [a .. c, b-a] instead? Best, Dmitrii > > GAP is not exactly a programming language; there are *objects* and their > *representations*, and GAP is allowed to change a representation to another > one in case it's provably more efficient (i.e. there are more or faster > algorithms for it). > > Hope this helps, > Laurent > > > On Sun, Feb 10, 2013 at 5:58 AM, Dmitrii (Dima) Pasechnik > wrote: >> >> On 10 February 2013 10:52, Gordon Royle wrote: >> > Well, thanks for the feedback, but I remain somewhat confused? >> >> I think this is definitely a bug, and must be fixed ASAP... >> >> Best, >> Dima >> >> > >> > Firstly, why does GAP unilaterally choose to change the format .. .the >> > program is simply a recursive program with a single Print statement, and yet >> > the output changes format , and then changes back again, without me asking >> > it to... >> > >> > [ 1, 5, 51 ] >> > [ 1, 6 .. 11 ] >> > [ 1, 6, 12 ] >> > >> > >> > >> > >> > Secondly, why is >> > >> > 6 .. 11 >> > >> > the "range representation" for >> > >> > 6, 11 >> > >> > In most languages that support it, the ".." means "everything from the >> > first to the last (or perhaps the first to the last-minus-one)" >> > >> > >> > Actually, it means the same in GAP too: >> > >> > gap> for x in [6 .. 11] do >> >> Print(x," "); >> >> od; >> > 6 7 8 9 10 11 >> > >> > So, naively I would expect >> > >> > [1, 6 .. 11] >> > >> > to be a fancy way of saying >> > >> > [1, 6, 7, 8, 9, 10, 11] >> > >> > >> > But it's not: >> > >> > gap> for x in [1, 6 .. 11] do >> >> Print(x," "); >> >> od; >> > 1 6 11 >> > >> > >> > It seems dangerous to me to have the expression a .. b mean something >> > different to (a) other uses in the same language, (b) mathematical usage and >> > (c ) other programming languages. >> > >> > >> > Thirdly, why has this happened RIGHT NOW, when I've been using this >> > program for years without ever seeing anything like this before? >> > >> > >> > Thanks again >> > >> > Gordon >> > >> > >> > >> > Professor Gordon Royle >> > School of Mathematics and Statistics >> > University of Western Australia >> > Gordon.Royle at uwa.edu.au >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > >> > _______________________________________________ >> > 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. >> >> Towards A Sustainable Earth:Print Only When Necessary.Thank you. >> >> _______________________________________________ >> Devel mailing list >> Devel at gap-system.org >> http://mail.gap-system.org/mailman/listinfo/devel > > > > > -- > Prof. Dr. Laurent Bartholdi \ laurent.bartholdigmailcom > G.-A. Universit?t zu G?ttingen \ Phone: +49 551 39 7826 > Bunsenstra?e 3-5 \ Secr: +49 551 39 7752 > D-37073 G?ttingen, Germany \ Fax: +49 551 39 22674 From Bill.Allombert at math.u-bordeaux1.fr Sun Feb 10 12:11:46 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Sun, 10 Feb 2013 13:11:46 +0100 Subject: [GAP Forum] [Devel] Strange output In-Reply-To: References: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au> Message-ID: <20130210121146.GD7044@yellowpig> On Sun, Feb 10, 2013 at 07:25:14PM +0800, Dmitrii (Dima) Pasechnik wrote: > On 10 February 2013 14:25, Laurent Bartholdi > wrote: > > The [a, b .. c] in GAP means { a, b, 2b-a, ..., a+i(b-a), ..., c } in > > mathematics. > > I've been using GAP for 20 years, and I never saw or heard about this > one. Sorry. > IMHO it is confusing, counter-intuitive, goes against well-established practices > in other programming languages and CAS's, etc... > > I can probably list a dozen programming languages / CAS's, where such > lists (or/and loops) are constructed by the triple of parameters > ("beginning","end","step"), in this order. Haskell works like GAP too: [1,3..11] give [1,3,5,7,9,11] Cheers, Bill. From dima at ntu.edu.sg Sun Feb 10 12:49:11 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Sun, 10 Feb 2013 20:49:11 +0800 Subject: [GAP Forum] [Devel] Strange output In-Reply-To: <20130210121146.GD7044@yellowpig> References: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au> <20130210121146.GD7044@yellowpig> Message-ID: On 10 February 2013 20:11, Bill Allombert wrote: > On Sun, Feb 10, 2013 at 07:25:14PM +0800, Dmitrii (Dima) Pasechnik wrote: >> On 10 February 2013 14:25, Laurent Bartholdi >> wrote: >> > The [a, b .. c] in GAP means { a, b, 2b-a, ..., a+i(b-a), ..., c } in >> > mathematics. >> >> I've been using GAP for 20 years, and I never saw or heard about this >> one. Sorry. >> IMHO it is confusing, counter-intuitive, goes against well-established practices >> in other programming languages and CAS's, etc... >> >> I can probably list a dozen programming languages / CAS's, where such >> lists (or/and loops) are constructed by the triple of parameters >> ("beginning","end","step"), in this order. > > Haskell works like GAP too: [1,3..11] give [1,3,5,7,9,11] not quite: gap> [1,3..16]; Error, Range: - (15) must be divisible by (2) not in any function at line 1 of *stdin* (Using a recent Haskell (ghci)): Prelude> [1,3..16] [1,3,5,7,9,11,13,15] (why - must be divisible by in GAP is another good question). Anyway, syntactically Haskell is much closer to "usual" mathematical notation than GAP. While it would be great if GAP had many more Haskell features, it's too far from it... Best, Dima > > Cheers, > Bill. 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From roberto.radina at tiscali.it Sun Feb 10 19:48:43 2013 From: roberto.radina at tiscali.it (=?iso-8859-1?Q?Roberto_R=E0dina?=) Date: Sun, 10 Feb 2013 20:48:43 +0100 Subject: [GAP Forum] [Devel] Strange output References: <7A1A9969-4819-4917-B7A4-B00470AC62F6@uwa.edu.au><20130210121146.GD7044@yellowpig> Message-ID: > gap> [1,3..16]; > Error, Range: - (15) must be divisible by (2) > not in any function at line 1 of *stdin* > (why - must be divisible by in GAP is another > good question). because when in a math book I see 1+3+...+n and n=9 I think it means 1+3+5+7+9, when n=8 I think there is an error somewhere From jjm at mcs.st-and.ac.uk Tue Feb 12 12:41:34 2013 From: jjm at mcs.st-and.ac.uk (John McDermott) Date: Tue, 12 Feb 2013 12:41:34 +0000 Subject: [GAP Forum] Computational Group Theory: LMS-EPSRC Short Course Message-ID: Dear Forum, this summer from 29 July to 2 August as part of the LMS-EPSRC Short Instructional Course series, the University of St Andrews will host a short course in Computational Group Theory. The courses in this series aim to provide training for postgraduate students in core areas of mathematics. They are also open to postdocs and those working in industry. The course is timed to happen in the week before Groups St Andrews 2013, in St Andrews (http://www.groupsstandrews.org/2013/). Some brief details about the course are appended below but please see the course website at http://www-circa.mcs.st-and.ac.uk/cgt2013 for more information and links to the appropriate part of the LMS website for registration. John. 29 July - 2 August 2013: LMS-EPSRC Short Course Computational Group Theory, St. Andrews The course will consist of the following lecture series: Permutation Groups (Alexander Hulpke, Colorado State University) Soluble Groups and p-Groups (Bettina Eick, Technische Universit?t Braunschweig) Matrix Groups/Constructive Recognition (Derek Holt, University of Warwick) Finitely Presented Groups (Max Neunh?ffer, University of St Andrews) These lecture courses will be supplemented by tutorial sessions. Organisers: J. McDermott, A. Miguel, M. Neunh?ffer, A. Konovalov Application Deadline: 17 June 2013 -- John McDermott Scientific Officer Centre for Interdisciplinary Research in Computational Algebra School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX SCOTLAND (Room 330, Mathematical Institute) tel +44 1334 463813 mob +44 7941 507531 The University of St Andrews is committed to sustainable practices and the preservation of the environment. Please do not print this email unless absolutely necessary. The University of St Andrews is a charity registered in Scotland : No SC013532 From tendshumba at yahoo.com Thu Feb 14 09:28:14 2013 From: tendshumba at yahoo.com (tendai shumba) Date: Thu, 14 Feb 2013 01:28:14 -0800 (PST) Subject: [GAP Forum] Computational Group Theory: LMS-EPSRC Short Course In-Reply-To: References: Message-ID: <1360834094.54989.YahooMailNeo@web162104.mail.bf1.yahoo.com> ________________________________ From: John McDermott To: "Forum at mail.gap-system.org" Sent: Tuesday, February 12, 2013 2:41 PM Subject: [GAP Forum] Computational Group Theory: LMS-EPSRC Short Course Dear Forum, this summer from 29 July to 2 August as part of the LMS-EPSRC Short Instructional Course series, the University of St Andrews will host a short course in Computational Group Theory. The courses in this series aim to provide training for postgraduate students in core areas of mathematics. They are also open to postdocs and those working in industry. The course is timed to happen in the week before Groups St Andrews 2013, in St Andrews (http://www.groupsstandrews.org/2013/). Some brief details about the course are appended below but please see the course website at http://www-circa.mcs.st-and.ac.uk/cgt2013 for more information and links to the appropriate part of the LMS website for registration. John. 29 July - 2 August 2013: LMS-EPSRC Short Course Computational Group Theory, St. Andrews The course will consist of the following lecture series: Permutation Groups (Alexander Hulpke, Colorado State University) Soluble Groups and p-Groups (Bettina Eick, Technische Universit?t Braunschweig) Matrix Groups/Constructive Recognition (Derek Holt, University of Warwick) Finitely Presented Groups (Max Neunh?ffer, University of St Andrews) These lecture courses will be supplemented by tutorial sessions. Organisers: J. McDermott, A. Miguel, M. Neunh?ffer, A. Konovalov Application Deadline: 17 June 2013 -- John McDermott Scientific Officer Centre for Interdisciplinary Research in Computational Algebra School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX SCOTLAND (Room 330, Mathematical Institute) tel +44 1334 463813 mob +44 7941 507531 The University of St Andrews is committed to sustainable practices and the preservation of the environment. Please do not print this email unless absolutely necessary. The University of St Andrews is a charity registered in Scotland : No SC013532 _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From stefanosaivazidis at gmail.com Thu Feb 14 16:56:55 2013 From: stefanosaivazidis at gmail.com (Stefanos Aivazidis) Date: Thu, 14 Feb 2013 16:56:55 +0000 Subject: [GAP Forum] Construction of a group Message-ID: Dear Forum, I wish to construct a family of groups parametrised by a variable n, to be specified by the user. Let me describe the steps: 0) Specify a value for n, 1) construct the finite field F=F_q with q=2^(2n+1) elements, 2) construct the automorphism f of F mapping each element x to x^(2^a), where a=n+1, 3) define an operation * on FxF (as a set) via the rule: (x,y)*(x',y')=(x+x',y+y'+xf(x')), where the operations on the right-hand-side are those of the underlying field F, Now P=(FxF,*) is a group, but I don't know if I can assure GAP this is the case. Perhaps I can ask her to test this somehow (GAP is a woman in my world). 4) assuming that GAP now knows P is a group, define the semi-direct product S=P]C, where C is the multiplicative group of F and acts on P (via automorphisms) by the rule:c.(x,y)=(cx,cf(c)y), where f is as in 2) and concatenation on the right-hand-side is just multiplication in F. To give some motivation for the above construction, P thus constructed is the Sylow 2-subgroup of Sz(q), while S is its normaliser in Sz(q). Of course I can access both P and S via P:=SylowSubgroup(Sz(q),2) and S:=Normaliser(Sz(q),P) respectively, but I would prefer to work with P and S constructed as per the above "algorithm". The reason is that I mainly want to count subgroups and conjugacy classes of subgroups of P and S for (at least) n=4, since for smaller values of n, the order of C is a prime (thus C uninteresting), but GAP is unable to handle this in terms of memory. I have serious doubts that constructing P and S as above will be more memory-efficient than the permutation representation already in Sz(IsPermGroup,q), but I can't decide this issue in advance. If it is indeed non-trivial to decide beforehand, I would appreciate any help in how to write the code for the construction as explained above. Many thanks, Stefanos From e.obrien at auckland.ac.nz Fri Feb 15 08:43:03 2013 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Fri, 15 Feb 2013 21:43:03 +1300 Subject: [GAP Forum] Akos Seress (1958-2013) Message-ID: <511DF517.7040300@auckland.ac.nz> Dear Friends, We have learned with great sadness that Akos Seress passed away Wednesday evening, February 13, in Columbus, Ohio. Akos was an outstanding mathematician, author of a book on algorithmic group theory and over a hundred papers on asymptotic and algorithmic group theory and combinatorics. He was an invited speaker at the 2006 International Congress of Mathematicians in Madrid. In addition to his theoretical work, he was a major contributor to the GAP computational algebra system. He was an indefatigable architect of bridges between the computational group theory and the theory of computing communities. Born in Budapest on November 24, 1958, Akos studied mathematics at Eotvos University, Budapest where he began publishing in combinatorics while an undergraduate. He completed his Ph.D. at the Ohio State University under Dijen Ray-Chaudhury. Subsequently he entered the field of algorithmic group theory in a series of joint papers with Babai and Luks on the complexity of permutation group algorithms and wrote the definitive monograph on the subject. He continued with a series of important papers on the statistical theory of finite simple groups with Bill Kantor and others; this line of work contributed to a recent definitive result on the complexity of algorithms for matrix groups over finite fields by Akos and coauthors. He has also extensively contributed to the asymptotic theory of permutation groups, vertex-transitive graphs, extremal combinatorics, and the theory of designs. Motivated by the theoretical results on algorithms for permutation groups, Akos pioneered the implementation of these algorithms in the GAP computational algebra system. Developed in the 1990s, with the cooperation and support of the Aachen group, Akos's packages delivered, for the first time, practical performance backed up by theoretical analysis. His modular design and black-box techniques allow an easy adaptation to other representations; his work is widely used today as infrastructure both for permutation groups and for matrix groups. More recently Akos and Max Neunhoeffer have developed efficient implementations of a suite of algorithms for matrix groups. Akos has been a tireless builder of communities, his own work and example demonstrating the bridge between the "red-hats," those who create "paper-algorithms" with proven asymptotic performance guarantees, and the "green-hats," the computational group theorists who demand working code to study the stucture of concrete groups. Akos, along with Bill Kantor, has been a chief organizer of a series of meetings that brought these two communities together. Akos spent most of his professional career at the Ohio State University, with extended visits to the University of Western Australia. He died at the age of 54 of renal cell carcinoma, a particularly aggressive form of cancer, diagnosed only six months ago. The disease struck him at the height of his creative powers. His paper "Construction of 2-Closed M-Representations" received the Distinguished paper award at ISSAC 2012 (Intl. Symp. on Symbolic and Algebraic Manipulation) and was hailed as "a groundbreaking work" that "marks a turning point in Majorana Theory." His most recent work, with Harald Helfgott, under publication in the Annals of Mathematics, gives a long-sought bound on the diameter of the alternating and symmetric groups and represents a tour de force in the study of the geometry of finite simple groups. Akos has been a most generous friend, colleague, and mentor. His passing will be felt deeply by all around the globe whose lives he touched and whose careers he enriched. Our hearts go out to his wife Sherry and his son Laszlo. -- Laszlo Babai and Eamonn O'Brien From rahul.kitture at gmail.com Fri Feb 15 09:02:05 2013 From: rahul.kitture at gmail.com (rahul kitture) Date: Fri, 15 Feb 2013 14:32:05 +0530 Subject: [GAP Forum] Product of Subgroups in a Group Message-ID: Given two subgroups $H$ and $K$ of a finite group (say Symmetric/ Alternating Group), how do we compute the product $HK$ in the group? I couldn't find anything from Help or topics in online library. Also, given finite number of square (invertible) matrices over a finite field, how do we get the (multiplicative) group, generated by them? (The command "GroupWithGenerators(); " does not work with the elements(generators) to be matrices. -- Rahul D. Kitture Senior Research Fellow (CSIR), Bhaskaracharya Pratishthana, (Research Institute for Mathematics) www.bprim.org Pune: 411 004 (India)*. * From Sven.Reichard at tu-dresden.de Fri Feb 15 09:35:50 2013 From: Sven.Reichard at tu-dresden.de (Sven Reichard) Date: Fri, 15 Feb 2013 10:35:50 +0100 Subject: [GAP Forum] Product of Subgroups in a Group In-Reply-To: References: Message-ID: <511E0176.5020107@tu-dresden.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 15.02.2013 10:02, schrieb rahul kitture: > Given two subgroups $H$ and $K$ of a finite group (say Symmetric/ > Alternating Group), how do we compute the product $HK$ in the > group? I couldn't find anything from Help or topics in online > library. This may not be the most elegant way, but gap> Group(Concatenation(List([H,K], GeneratorsOfGroup)), Identity(H)); should do the trick. > Also, given finite number of square (invertible) matrices over a > finite field, how do we get the (multiplicative) group, generated > by them? (The command "GroupWithGenerators(); " does not work with > the elements(generators) to be matrices. > Works for me. gap> GL(3, GF(2)); SL(3,2) gap> List([1..3], x -> Random(last)); [ , , ] gap> Group(last); gap> GroupWithGenerators(last2); gap> last=last2; true Are the entries of your matrices elements of the finite field? If not, multiply the matrices by One(field). HTH Sven Reichard -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEVAwUBUR4BdmFjB3Gki4XVAQLFEggAlJmqyz7renijLE4RJnSgnctPxrtZtOq/ F9AradxaWZFP0BGKOqSUSE0TOLc0lextSs48h53gffQOGZfOhnQyjn1krx9aZBdz vkJ7XbcVBV7IrKvgWQK37TaesxYlHZKn5ac1Ub+o0uEyfJ76OmDDIGvTyjHFDSZm QsBS2S3bJxYTR0eyC/7YA5V6p6uz8TQxolDtmZEqVD6tEOSqZYOGQnEZnnUGrEK5 c7VbUn9UcaHPOM58oWOFZQFbCc5V+NHqxJ8/riepy+oTzhTe+JiSPXuZRkQn4RAo /Mo1Eo1+33eVSl1ul6zpCPCezNQFNqMzrdKyzow/akcq4uWb9xErfg== =VVZt -----END PGP SIGNATURE----- From sandeepr.murthy at gmail.com Fri Feb 15 13:27:15 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Fri, 15 Feb 2013 13:27:15 +0000 Subject: [GAP Forum] Product of Subgroups in a Group In-Reply-To: <511E0176.5020107@tu-dresden.de> References: <511E0176.5020107@tu-dresden.de> Message-ID: <511E37B3.8060903@gmail.com> Hi, If H, K are subgroups of G then ListX( H, K, PROD ) will return a (mutable) list of the elements of the set HK in G. Sincerely, Sandeep. Sven Reichard wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Am 15.02.2013 10:02, schrieb rahul kitture: >> Given two subgroups $H$ and $K$ of a finite group (say Symmetric/ >> Alternating Group), how do we compute the product $HK$ in the >> group? I couldn't find anything from Help or topics in online >> library. > > This may not be the most elegant way, but > gap> Group(Concatenation(List([H,K], GeneratorsOfGroup)), Identity(H)); > should do the trick. > >> Also, given finite number of square (invertible) matrices over a >> finite field, how do we get the (multiplicative) group, generated >> by them? (The command "GroupWithGenerators(); " does not work with >> the elements(generators) to be matrices. >> > Works for me. > > gap> GL(3, GF(2)); > SL(3,2) > gap> List([1..3], x -> Random(last)); > [,, > ] > gap> Group(last); > > gap> GroupWithGenerators(last2); > > gap> last=last2; > true > > Are the entries of your matrices elements of the finite field? If not, > multiply the matrices by One(field). > > HTH > Sven Reichard > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.5 (GNU/Linux) > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQEVAwUBUR4BdmFjB3Gki4XVAQLFEggAlJmqyz7renijLE4RJnSgnctPxrtZtOq/ > F9AradxaWZFP0BGKOqSUSE0TOLc0lextSs48h53gffQOGZfOhnQyjn1krx9aZBdz > vkJ7XbcVBV7IrKvgWQK37TaesxYlHZKn5ac1Ub+o0uEyfJ76OmDDIGvTyjHFDSZm > QsBS2S3bJxYTR0eyC/7YA5V6p6uz8TQxolDtmZEqVD6tEOSqZYOGQnEZnnUGrEK5 > c7VbUn9UcaHPOM58oWOFZQFbCc5V+NHqxJ8/riepy+oTzhTe+JiSPXuZRkQn4RAo > /Mo1Eo1+33eVSl1ul6zpCPCezNQFNqMzrdKyzow/akcq4uWb9xErfg== > =VVZt > -----END PGP SIGNATURE----- > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From burkhard at hoefling.name Fri Feb 15 14:10:17 2013 From: burkhard at hoefling.name (=?iso-8859-1?Q?Burkhard_H=F6fling?=) Date: Fri, 15 Feb 2013 15:10:17 +0100 Subject: [GAP Forum] Product of Subgroups in a Group In-Reply-To: <511E0176.5020107@tu-dresden.de> References: <511E0176.5020107@tu-dresden.de> Message-ID: <05B25004-DA47-457E-8D22-17C52138C9B3@hoefling.name> On 2013-02-15, at 10:35 , Sven Reichard wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Am 15.02.2013 10:02, schrieb rahul kitture: >> Given two subgroups $H$ and $K$ of a finite group (say Symmetric/ >> Alternating Group), how do we compute the product $HK$ in the >> group? I couldn't find anything from Help or topics in online >> library. > > This may not be the most elegant way, but > gap> Group(Concatenation(List([H,K], GeneratorsOfGroup)), Identity(H)); > should do the trick. This gives the subgroup generated by H and K but not, in general, the set HK. If you know that HK is a subgroup, then this will work. ClosureGroup (H,K) might be a bit more efficient. On 2013-02-15, at 14:27 , Sandeep Murthy wrote: > Hi, > > If H, K are subgroups of G then > > ListX( H, K, PROD ) > > will return a (mutable) list of > the elements > of the set HK in > G. But note that the list will have duplicates if H and K don't intersect trivially. I would suggest DoubleCoset (H, One(H), K) to represent HK more efficiently. You can turn the double coset into a list via AsList/ AsSSortedList. Cheers Burkhard. From sandeepr.murthy at gmail.com Fri Feb 15 14:47:52 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Fri, 15 Feb 2013 14:47:52 +0000 Subject: [GAP Forum] Product of Subgroups in a Group In-Reply-To: <05B25004-DA47-457E-8D22-17C52138C9B3@hoefling.name> References: <511E0176.5020107@tu-dresden.de> <05B25004-DA47-457E-8D22-17C52138C9B3@hoefling.name> Message-ID: <511E4A98.6030608@gmail.com> the duplicates can be removed using Unique( ListX( H, K, PROD ) ). Seems fairly quick, but maybe for large products DoubleCoset (H, One(H), K), suggested by Burkhard, is quicker. Sincerely, Sandeep. Burkhard H?fling wrote: > On 2013-02-15, at 10:35 , Sven Reichard wrote: > >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> Am 15.02.2013 10:02, schrieb rahul kitture: >>> Given two subgroups $H$ and $K$ of a finite group (say Symmetric/ >>> Alternating Group), how do we compute the product $HK$ in the >>> group? I couldn't find anything from Help or topics in online >>> library. >> This may not be the most elegant way, but >> gap> Group(Concatenation(List([H,K], GeneratorsOfGroup)), Identity(H)); >> should do the trick. > > > This gives the subgroup generated by H and K but not, in general, the set HK. If you know that HK is a subgroup, then this will work. ClosureGroup (H,K) might be a bit more efficient. > > On 2013-02-15, at 14:27 , Sandeep Murthy wrote: > >> Hi, >> >> If H, K are subgroups of G then >> >> ListX( H, K, PROD ) >> >> will return a (mutable) list of >> the elements >> of the set HK in >> G. > > But note that the list will have duplicates if H and K don't intersect trivially. > > I would suggest DoubleCoset (H, One(H), K) to represent HK more efficiently. You can turn the double coset into a list via AsList/ AsSSortedList. > > Cheers > > Burkhard. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From benjamin.sambale at gmail.com Fri Feb 15 15:51:14 2013 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Fri, 15 Feb 2013 16:51:14 +0100 Subject: [GAP Forum] Product of Subgroups in a Group In-Reply-To: <511E4A98.6030608@gmail.com> References: <511E0176.5020107@tu-dresden.de> <05B25004-DA47-457E-8D22-17C52138C9B3@hoefling.name> <511E4A98.6030608@gmail.com> Message-ID: <511E5972.1090000@gmail.com> See also SetX(H,K,PROD) Benjamin Am 15.02.2013 15:47, schrieb Sandeep Murthy: > the duplicates can be removed using > > Unique( ListX( H, K, PROD ) ). > > Seems fairly quick, but maybe for large products > DoubleCoset (H, One(H), K), suggested by Burkhard, > is quicker. > > Sincerely, Sandeep. > > Burkhard H?fling wrote: >> On 2013-02-15, at 10:35 , Sven Reichard >> wrote: >> >>> -----BEGIN PGP SIGNED MESSAGE----- >>> Hash: SHA1 >>> >>> Am 15.02.2013 10:02, schrieb rahul kitture: >>>> Given two subgroups $H$ and $K$ of a finite group (say Symmetric/ >>>> Alternating Group), how do we compute the product $HK$ in the >>>> group? I couldn't find anything from Help or topics in online >>>> library. >>> This may not be the most elegant way, but >>> gap> Group(Concatenation(List([H,K], GeneratorsOfGroup)), >>> Identity(H)); >>> should do the trick. >> >> >> This gives the subgroup generated by H and K but not, in general, the >> set HK. If you know that HK is a subgroup, then this will work. >> ClosureGroup (H,K) might be a bit more efficient. >> >> On 2013-02-15, at 14:27 , Sandeep Murthy >> wrote: >> >>> Hi, >>> >>> If H, K are subgroups of G then >>> >>> ListX( H, K, PROD ) >>> >>> will return a (mutable) list of >>> the elements >>> of the set HK in >>> G. >> >> But note that the list will have duplicates if H and K don't >> intersect trivially. >> >> I would suggest DoubleCoset (H, One(H), K) to represent HK more >> efficiently. You can turn the double coset into a list via AsList/ >> AsSSortedList. >> >> Cheers >> >> Burkhard. >> >> _______________________________________________ >> 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 williamdemeo at gmail.com Fri Feb 15 17:22:07 2013 From: williamdemeo at gmail.com (William DeMeo) Date: Fri, 15 Feb 2013 12:22:07 -0500 Subject: [GAP Forum] Product of Subgroups in a Group In-Reply-To: <511E5972.1090000@gmail.com> References: <511E0176.5020107@tu-dresden.de> <05B25004-DA47-457E-8D22-17C52138C9B3@hoefling.name> <511E4A98.6030608@gmail.com> <511E5972.1090000@gmail.com> Message-ID: See also the thread "complex product of two groups" in the forum archive: http://mail.gap-system.org/pipermail/forum/2012/thread.html#3628 Cheers, William On Fri, Feb 15, 2013 at 10:51 AM, Benjamin Sambale wrote: > See also SetX(H,K,PROD) > > Benjamin > > Am 15.02.2013 15:47, schrieb Sandeep Murthy: > >> the duplicates can be removed using >> >> Unique( ListX( H, K, PROD ) ). >> >> Seems fairly quick, but maybe for large products >> DoubleCoset (H, One(H), K), suggested by Burkhard, >> is quicker. >> >> Sincerely, Sandeep. >> >> Burkhard H?fling wrote: >>> >>> On 2013-02-15, at 10:35 , Sven Reichard >>> wrote: >>> >>>> -----BEGIN PGP SIGNED MESSAGE----- >>>> Hash: SHA1 >>>> >>>> Am 15.02.2013 10:02, schrieb rahul kitture: >>>>> >>>>> Given two subgroups $H$ and $K$ of a finite group (say Symmetric/ >>>>> Alternating Group), how do we compute the product $HK$ in the >>>>> group? I couldn't find anything from Help or topics in online >>>>> library. >>>> >>>> This may not be the most elegant way, but >>>> gap> Group(Concatenation(List([H,K], GeneratorsOfGroup)), Identity(H)); >>>> should do the trick. >>> >>> >>> >>> This gives the subgroup generated by H and K but not, in general, the set >>> HK. If you know that HK is a subgroup, then this will work. ClosureGroup >>> (H,K) might be a bit more efficient. >>> >>> On 2013-02-15, at 14:27 , Sandeep Murthy >>> wrote: >>> >>>> Hi, >>>> >>>> If H, K are subgroups of G then >>>> >>>> ListX( H, K, PROD ) >>>> >>>> will return a (mutable) list of >>>> the elements >>>> of the set HK in >>>> G. >>> >>> >>> But note that the list will have duplicates if H and K don't intersect >>> trivially. >>> >>> I would suggest DoubleCoset (H, One(H), K) to represent HK more >>> efficiently. You can turn the double coset into a list via AsList/ >>> AsSSortedList. >>> >>> Cheers >>> >>> Burkhard. >>> >>> _______________________________________________ >>> 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 sandeepr.murthy at gmail.com Sat Feb 16 17:51:21 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Sat, 16 Feb 2013 17:51:21 +0000 Subject: [GAP Forum] Algebras Message-ID: <511FC719.9010604@gmail.com> Hi, 1. I can't make sense of the following result on GAP: gap> IsAlgebraWithOne( MatAlgebra( Rationals, 1 ) ); true gap> IsAlgebraWithOne( MatAlgebra( Rationals, 2 ) ); true gap> IsAlgebraWithOne( DirectSumOfAlgebras( MatAlgebra( Rationals, 1 ), MatAlgebra( Rationals, 2 ) ) ); false Surely the result should also be an algebra with one. 2. Is there a way to test for isomorphism between two algebras indirectly, in the same way as for groups (i.e. IsomorphismGroups( G, H ))? Sincerely, Sandeep. From max at quendi.de Wed Feb 20 14:08:57 2013 From: max at quendi.de (Max Horn) Date: Wed, 20 Feb 2013 15:08:57 +0100 Subject: [GAP Forum] Construction of a group In-Reply-To: References: Message-ID: <0491335A-91B5-453D-8316-B1EF87FA233E@quendi.de> Dear Stefanos, you asked about constructing the (normalizer of) the 2-Sylow subgroup of the Suzuki groups without first constructing the Suzuki groups. Moreover, you expressed interest in counting their (classes of) subgroups. I will try to address both below. On 14.02.2013, at 17:56, Stefanos Aivazidis wrote: > Dear Forum, > > I wish to construct a family of groups parametrised by a variable n, to be > specified by the user. Let me describe the steps: > > 0) Specify a value for n, > > 1) construct the finite field F=F_q with q=2^(2n+1) elements, > > 2) construct the automorphism f of F mapping each element x to x^(2^a), > where a=n+1, Let's record what we have so far: n := 4; # later you mention n=4, but other values work, too q := 2^(2*n+1); F := GF(q); a := n+1; f := x -> x^(2^a); > > 3) define an operation * on FxF (as a set) via the rule: > (x,y)*(x',y')=(x+x',y+y'+xf(x')), where the operations on the > right-hand-side are those of the underlying field F, > > Now P=(FxF,*) is a group, but I don't know if I can assure GAP this is the > case. Perhaps I can ask her to test this somehow (GAP is a woman in my > world). The above group (the root group of a Moufang set in my world ;-) is a p-group, hence polycyclic. And thus a natural way to construct it is as a pc group (or, in my case, as a "pcp group", which is what the "polycyclic" package for GAP provides). For large p-groups, permutation representations (at least as computed by GAP) tend to have huge degree and working with them quickly becomes problematic. But pc presentations don't suffer from that problem (they have other computation drawbacks, though). Anyway, let's first collect some basic observations about this product: (a) (0,y)*(0,y') = (0,y+y') => 0xF is a subgroup isomorphic to (F,+) (b) (x,0)*(0,y') = (x,y') = (0,y')*(0,x) => 0xF is in fact central. (c) (x,0)*(x',0) = (x+x', xf(x')) => the factor group FxF/0xF is abelian. (d) (x,0)^2 = (0,xf(x)) => the relative order of (x,0) is 2 (e) (x,0)^-1 = (x,xf(x)) (f) (x,0)^(x',0) = (x',0)^-1*(x,0)*(x',0) = (x',x'f(x'))*(x+x', xf(x')) = (x, x'f(x+x')+x'f(x')+xf(x')) = (x, x'f(x)+xf(x')) The last two relations tell us how conjugation between element of Fx0 looks like. Next, choose a basis b_1,...b_{2n+1} of F viewed as GF(2)-vector space, and let x_1,...,x_{2n+1} be the corresponding basis of Fx0, and let y_1,...,y_{2n+1} be the corresponding basis of 0xF. We are now equipped with everything to construct a polycyclic presentation for the group P. But wait, you want more: > > 4) assuming that GAP now knows P is a group, define the semi-direct product > S=P]C, where C is the multiplicative group of F and acts on P (via > automorphisms) by the rule:c.(x,y)=(cx,cf(c)y), where f is as in 2) and > concatenation on the right-hand-side is just multiplication in F. We could try to construct P first and then use GAP's SemidirectProduct(), but that would be very expensive, and in fact, unnecessary. After all, the unit group F^* of F is cyclic (in particular, poly-cyclic ;-) and Z(q) is a generator for it in GAP. Semidirect products of finite polycyclic groups are again finite polycyclic. So let's get busy: LoadPackage("polycyclic"); b:=Basis(F); # Helper taking a pair (x,y) in FxF and, using the basis b, mapping it to a # generator-exponent vector. F_to_genexp := function(x,y) local ge, k; ge:=[]; x := Coefficients(b,x); y := Coefficients(b,y); for k in [1..2*n+1] do if not IsZero(x[k]) then Append(ge, [k+1, IntFFE(x[k])]); fi; od; for k in [1..2*n+1] do if not IsZero(y[k]) then Append(ge, [k+2*n+2, IntFFE(y[k])]); fi; od; return ge; end; # We need 1 + 2*dim(F) = 4*n+3 generators coll:=FromTheLeftCollector(1 + 4*n+2); # First comes the generator of the cyclic group F^*. # It has order |F|-1, and acts as you described. SetRelativeOrder(coll, 1, Size(F)-1); for j in [1..2*n+1] do # action on x_j exp := F_to_genexp( Z(q)*b[j], Zero(F) ); SetConjugate(coll, j+1, 1, exp); # action on y_j exp := F_to_genexp( Zero(F), Z(q)*f(Z(q))*b[j] ); SetConjugate(coll, j+2*n+2, 1, exp); od; # Next, the "upper" part Fx0: x_i acts on x_j non-trivially, # but centralizes the y_k (since the default is that a generator # centralizes another, we don't need to tell GAP what y_k^x_i is) for i in [1..2*n+1] do # relative order of x_i is 2, and (x,0)^2=(0,xf(x)) SetRelativeOrder(coll, i+1, 2); exp := F_to_genexp(Zero(F), b[i] * f(b[i])); SetPower(coll, i+1, exp); # (x_j,0)^(x_i,0) = ... for j in [i+1..2*n+1] do exp := F_to_genexp(b[j], b[i] * f(b[j]) + b[j] * f(b[i])); SetConjugate(coll, j+1, i+1, exp); od; od; # Finally the "lower" and central part 0xF for i in [2*n+2..4*n+2] do SetRelativeOrder(coll, i+1, 2); od; # Now we can construct the group S S := PcpGroupByCollector(coll); #S := PcpGroupByCollectorNC(coll); # For large n this is faster by skipping checks # P is the subgroup of S on the generators 2 .. 4*n+3: P := Subgroup(S,GeneratorsOfGroup(S){[2..4*n+3]}); # And C is generated by the first generator C := Subgroup(S,[S.1]); > > To give some motivation for the above construction, P thus constructed is > the Sylow 2-subgroup of Sz(q), while S is its normaliser in Sz(q). Of > course I can access both P and S via P:=SylowSubgroup(Sz(q),2) and > S:=Normaliser(Sz(q),P) respectively, but I would prefer to work with P and > S constructed as per the above "algorithm". The reason is that I mainly > want to count subgroups and conjugacy classes of subgroups of P and S for > (at least) n=4, since for smaller values of n, the order of C is a prime > (thus C uninteresting), but GAP is unable to handle this in terms of memory. > > I have serious doubts that constructing P and S as above will be more > memory-efficient than the permutation representation already in > Sz(IsPermGroup,q), but I can't decide this issue in advance. The polycyclic presentation constructed above should be a lot more efficient. However, constructing all (classes of) subgroup is still a difficult business, as there simply are so many of them, at least for P. After all, 0xY is a central elementary abelian subgroup of order q = 2^(2*n+1). For n=4 it has size 2^9=512; and each subspace corresponds to a normal subgroup of P. But there are 8283458 subspaces, each yielding a subgroup conjugacy class in P. The situation should be somewhat better in S, at least in the sense that there are fewer conjugacy classes (e.g. all 1-dimensional subspaces of 0xY are conjugate in S; in general, . Similarly, the factor group P/0xY has 8283458 normal subgroups. Each lifts to at least one conjugacy class in P. In other words, GAP will have to compute in excess of 16 million subgroups, together with their normalizers, and will have to store them all in memory. Hence I do not expect ConjugacyClassesSubgroups(P) or ConjugacyClassesSubgroups(S) to work "out of the box", no matter how you present P and S to GAP. But if you just want to take specific subgroups and look at them to, say you want to compute their normalizes, check if a few of them are conjugate etc., the above can still be helpful. If you truly want to count the (classes of) subgroups, and indeed only need the count, then it might still be possible to achieve that by taking the special structure of the group into account. The first thing I would try: For each subgroup A of P/0xY, identify all subgroups U of P for which U/0xY = A holds. The fact that the map F\to F : c \mapsto c f(c) is bijective and non-linear, plus that we have (x,y)^2 = (0,xf(x)), should help with that. And of course if you work inside S (where you have fewer conjugacy classes overall, I guess), things should get a bit better, too. Hope that helps, Max > > If it is indeed non-trivial to decide beforehand, I would appreciate any > help in how to write the code for the construction as explained above. > > Many thanks, > Stefanos > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From max at quendi.de Wed Feb 20 14:23:50 2013 From: max at quendi.de (Max Horn) Date: Wed, 20 Feb 2013 15:23:50 +0100 Subject: [GAP Forum] Algebras In-Reply-To: <511FC719.9010604@gmail.com> References: <511FC719.9010604@gmail.com> Message-ID: <55D68BDE-ED41-44D7-B40C-E88848413EBD@quendi.de> Dear Sandeep, let me try to address your first question. On 16.02.2013, at 18:51, Sandeep Murthy wrote: > Hi, > > 1. I can't make sense of the following result on GAP: > > gap> IsAlgebraWithOne( MatAlgebra( Rationals, 1 ) ); > true > gap> IsAlgebraWithOne( MatAlgebra( Rationals, 2 ) ); > true > gap> IsAlgebraWithOne( DirectSumOfAlgebras( MatAlgebra( Rationals, 1 ), MatAlgebra( Rationals, 2 ) ) ); > false > > Surely the result should also be an algebra with one. Not quite. This (admittedly irritating) behavior is due to the fact that IsAlgebraWithOne does not really check whether its argument is an "algebra with an identity element". Rather, it checks whether its argument has the *type* AlgebraWithOne, e.g. was created using the constructor AlgebraWithOne() as opposed to Algebra(). Perhaps thinking of it in terms of (mathematical) categories helps: The real numbers certainly are objects in both the category of real associate algebras, and its subcategory of real associative algebras with identity. Or perhaps think of the difference between a topological space, and a pointed topological space, where single out one specific point. Here is another, perhaps even more succinct GAP example to emphasis this point: gap> F:=GF(2);;g:=IdentityMat(4,F);; gap> IsAlgebra(Algebra(F,[g])); true gap> IsAlgebraWithOne(Algebra(F,[g])); false gap> IsAlgebra(AlgebraWithOne(F,[g])); true gap> IsAlgebraWithOne(AlgebraWithOne(F,[g])); true The problem in your example is that DirectSumOfAlgebras is defined in the category of algebras, not of algebras-with-one. You have to coerce the result into an algebra with one: gap> alg := DirectSumOfAlgebras( MatAlgebra( Rationals, 1 ), MatAlgebra( Rationals, 2 ) ); gap> IsAlgebraWithOne(alg); false gap> alg := AsAlgebraWithOne(Rationals,alg); gap> IsAlgebraWithOne(alg); true Perhaps there should be a DirectSumOfAlgebrasWithOne, or perhaps DirectSumOfAlgebras should simply be enhanced to check if its arguments all are algebras with one, and if so, carry this information through... Best regards, Max From max at quendi.de Wed Feb 20 15:06:25 2013 From: max at quendi.de (Max Horn) Date: Wed, 20 Feb 2013 16:06:25 +0100 Subject: [GAP Forum] Modules over general and not so general algebras In-Reply-To: <510BD350.3070301@uni-jena.de> References: <510BD350.3070301@uni-jena.de> Message-ID: <8B0EEC18-9ADE-4FED-89FF-28A1518C7893@quendi.de> Dear Johannes, On 01.02.2013, at 15:38, Johannes Hahn wrote: > Hi everyone. > > Is there an elegant way to implement (finite-dimensional) modules over my favorite algebra? My algebra is finite dimensional and I would GAP tell this if it needs to know, but I don't want to spell out an explicit basis and structure constants for the algebra. (More to the point: I work with Hecke algebras and they get way to big for this, if the Coxeter group is big, say E_7, E_8) > > I do not actually need the algebra, I just want to do some computations with the matrices of the representation. There seems no way to define an algebra by generators and relations because GAP seemingly wants to do some calculations and of course this goes wrong in the general case and even in my special case GAP doesn't know that there are normalforms for the elements of my algebra etc. (And I cannot find a way to tell GAP this) If you know how to compute normal forms for your algebras effectively, you could implement your own algebra(-with-one) type and teach GAP about that. But I am not sure if that is really what you wanted to hear ;-).. > > The next best thing would be to just forget the relations for a moment and think of the modules as algebra morphisms from the free algebra on the (small) set of generators into a full matrix algebra. If you have that, one could implement a filter that checks the defining relations of my favorite algebra for such morphisms manually. > GAP knows free algebras and it knows matrix algebras and it has an operation for defining algebra morphisms by their images, but interestingly, even this does not work. > > If I just try to get the morphism Q \to Q, x \mapsto 1, y\mapsto 1 doing this: > > F:=FreeAssociativeAlgebraWithOne(Rationals,2); > > > f := AlgebraHomomorphismByImages(F,FullMatrixAlgebra(Rationals,1), GeneratorsOfAlgebraWithOne(F),[ [[1]], [[1]] ]); > then GAP enters an infinite loop for some reason. The reason is that it wants to verify that what you specified there is really an algebra homomorphism (which is sensible), but it then attempts to compute a "nice" presentation of the algebra F as a module... which is of course not sensible, as that module would be infinite dimensional. So I'd consider this a bug, or perhaps a missing feature. This is essentially due to the fact that GAP is lacking a lot of (sometimes even relatively basic) functionality when it comes to algebras other than those defined by a structure constant table (sct). :-(. One can avoid this by using the NC variant: gap> f := AlgebraHomomorphismByImagesNC(F,FullMatrixAlgebra(Rationals,1), GeneratorsOfAlgebraWithOne(F),[ [[1]], [[1]] ]); [ (1)*x.1, (1)*x.2 ] -> [ [ [ 1 ] ], [ [ 1 ] ] ] But that doesn't quite help, as it still does not know how to actually compute the image. The following code snippet should fix this. Also note that you may actually want to use AlgebraWithOneHomomorphismByImagesNC (see also my other email to Sandeep for more about that), InstallMethod( ImagesRepresentative, FamSourceEqFamElm, [ IsAlgebraHomomorphism, IsElementOfFreeMagmaRing ], function( hom, elm ) local mgi; mgi := MappingGeneratorsImages(hom); return MappedExpressionForElementOfFreeAssociativeAlgebra( elm, mgi[1], mgi[2] ); end ); But note that this is a hack: It does not verify that the generators you specified when defining the homomorphism are indeed the canonical generators (returned by GeneratorsOfAlgebraWithOne()) of F. But with some work, it should be possible to enhance GAP to use something like that above. I'll log a feature request for this all in the GAP tracker. > This behaviour is completely mysterious to me. Why on earth would GAP even consider to do *any* computation in that situation? There is exactly nothing else to know about a general algebra morphism on a free algebra other than the data that already has been given. The only thing to do here is to take the input data, wrap it into an object, set some filters to true and return that object. > Why does GAP try to compute anything here instead of just giving me my morphism so I can start working with it? Well, because GAP is just a dumb computer program, and nobody has so far taught it about this particular property of free algebras and morphisms from them... in other words: because nobody implemented this so far... ;-). But I do agree that this is irritating and somewhat frustrating. In fact, I have been bitten by similar problems before. BTW, in a somewhat tangential note: It would be nice if e.g. the GBNP package (which provides non-commutative Groebner basis computations) could be enhanced as to install suitable methods for fp rings / algebras -- with GBNP, it is actually possible to compute bases of fp algebras in many cases, and compute with them without providing structure constant tables -- except that doing so produces highly unreadable code, because no methods for things like \+, \* etc. are installed :-(. > > Should there be a compelling reason for GAP to behave this way (although I really can't think of any...), then my question immediatly changes into: What is an elegant way to implement matrix representation of Hecke algebras without having to tell GAP an explicit basis and structure constants for the algebra? > > Right now I'm just working with plain records to store information about the representation but this seems very inelegant to me. There are no "real" objects, no types, no possibility for method-selection based on additional information... (and I can't figure out how to implement Hecke-Matrix-Representation objects for myself... I'm not sure yet if GAP really behaves differently than the manual claims or if I'm just to stupid to read the manual correctly.) If the manual truly claims that the above should work, then this is a mistake in the manual, and should be corrected (until such functionality is actually implemented, at least). Any pointers to such incorrect or at least misleading parts of the manual would be greatly appreciated! Cheers, Max From cotton at alum.mit.edu Sat Feb 23 19:02:20 2013 From: cotton at alum.mit.edu (Cotton Seed) Date: Sat, 23 Feb 2013 14:02:20 -0500 Subject: [GAP Forum] sorted index of group element Message-ID: Is there way to get the sorted index of a group element? More specifically, let G be a group, and g an element of G. Is there a function that will give me the index i so that MagmaElement(G,i) = g? Thanks! Best, Cotton From alexk at mcs.st-andrews.ac.uk Sun Feb 24 20:38:44 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sun, 24 Feb 2013 20:38:44 +0000 Subject: [GAP Forum] sorted index of group element In-Reply-To: References: Message-ID: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> On 23 Feb 2013, at 19:02, Cotton Seed wrote: > Is there way to get the sorted index of a group element? More > specifically, let G be a group, and g an element of G. Is there a function > that will give me the index i so that MagmaElement(G,i) = g? Thanks! > > Best, > Cotton Dear Cotton, Let me first start with a hint how the source code of the MagmaElement function may be explored to find an answer, and then suggest a more efficient approach. First, looking at the code of MagmaElement function - this may be done by typing `ViewSource(MagmaElement);' in GAP - you may spot the call to AsSSortedList: InstallGlobalFunction( MagmaElement, function( M, i ) M:= AsSSortedList( M ); if Length( M ) < i then return fail; else return M[i]; fi; end ); Thus, MagmaElement returns the i-th element of AsSSortedList(M), where the latter contains all elements of M in strictly sorted order, w.r.t. the canonical ordering defined on M (depending on the type of M). Therefore, the index in which you're interested will be returned by Position( AsSSortedList( G ), g ) For example, gap> G:=SmallGroup(8,3); gap> g:=Random(G); f1*f3 gap> s:=AsSSortedList(G);; gap> Position(s,g); 6 gap> MagmaElement(G,6); f1*f3 gap> MagmaElement(G,6)=g; true Creating the list of all elements may not be very efficient, especially when the group is very large. However, if the method for `Enumerator' exists for such a group (see `?Enumerator), then there is another approach. Enumerator(G) need not to store its elements explicitly, but it knows how to determine the i-th element and the position of a given object. For example, this works: gap> S:=SymmetricGroup(50); Sym( [ 1 .. 50 ] ) gap> g:=Random(S); (1,40,16,24,8,21,19,39,20,12,28,6)(2,5,49,3,45,4,30,25,13,11,47,44,36,9,50,43, 18,32)(7,46,22,15,35,41)(10,14,48,26,17)(23,42,33,29,37,38,27) gap> enum:=Enumerator(S); gap> pos:=Position(enum,g); 19748951512546719853008099372809900742253637283670495935197327991 gap> enum[pos]=g; true while AsSSortedList(S) will run out of memory. There are methods for enumerators of various types of algebraic structures defined in the GAP library. Please note that the order in which MagmaElement and Enumerator will sort elements of a domain sometimes may be different: the one for MagmaElement is determined by the '\<' relation defined on the domain, while the one for Enumerator depends on the algorithm used to enumerate elements of a domain of some particular type. For example, gap> F:=FreeGroup("a","b"); gap> AssignGeneratorVariables(F); #I Assigned the global variables [ a, b ] gap> G:=F/[a^32,b^2,b^-1*a*b*a]; gap> First([1..Size(G)],i -> not MagmaElement(G,i)=Enumerator(G)[i]); 3 gap> MagmaElement(G,3); b gap> Enumerator(G)[3]; a^-1 However, in most applications it is not the particular order that matters, but the ability to determine the position of an element in the fixed list of elements, and to retrieve the i-th element of that list. Hope this helps, Alexander From roberto.radina at tiscali.it Mon Feb 25 17:09:08 2013 From: roberto.radina at tiscali.it (=?iso-8859-1?Q?Roberto_R=E0dina?=) Date: Mon, 25 Feb 2013 18:09:08 +0100 Subject: [GAP Forum] md5 sum needed Message-ID: Dear forum, I need md5 or sha1 sums of gap4r6p2_2013_02_02-01_00-win.zip for a check. It is the file for installing the last version of GAP. Can someone post it here? From alexk at mcs.st-andrews.ac.uk Mon Feb 25 18:51:24 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 25 Feb 2013 18:51:24 +0000 Subject: [GAP Forum] md5 sum needed In-Reply-To: References: Message-ID: <46F12B85-B660-478B-B1AE-E11E6021FF04@mcs.st-andrews.ac.uk> Dear Roberto, On 25 Feb 2013, at 17:09, Roberto R?dina wrote: > Dear forum, > I need md5 or sha1 sums of gap4r6p2_2013_02_02-01_00-win.zip for a check. > It is the file for installing the last version of GAP. > Can someone post it here? > Here it is: /ftp/pub/gap/gap46/win.zip > md5sum gap4r6p2_2013_02_02-01_00-win.zip 0c5d44f306f3013d1da7f22a0cc37398 gap4r6p2_2013_02_02-01_00-win.zip Also, if you wish to use the Windows installer from http://www.gap-system.org/ukrgap/wininst/ then its checksum is here: /ftp/pub/gap/windowsinstaller > md5sum gap4r6p2_2013_02_02-01_00.exe 64ac87c35de7c2da562643db9ec7112c gap4r6p2_2013_02_02-01_00.exe Best wishes, Alexander From vipul at math.uchicago.edu Mon Feb 25 20:16:30 2013 From: vipul at math.uchicago.edu (Vipul Naik) Date: Mon, 25 Feb 2013 14:16:30 -0600 Subject: [GAP Forum] sorted index of group element In-Reply-To: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> References: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> Message-ID: <20130225201630.GA20677@math.uchicago.edu> Hi, I'm not able to run ViewSource on GAP -- it does not recognize the command. I'm using GAP 4.5.6. Vipul * Quoting Alexander Konovalov who at 2013-02-24 20:38:44+0000 (Sun) wrote > > On 23 Feb 2013, at 19:02, Cotton Seed wrote: > > > Is there way to get the sorted index of a group element? More > > specifically, let G be a group, and g an element of G. Is there a function > > that will give me the index i so that MagmaElement(G,i) = g? Thanks! > > > > Best, > > Cotton > > > Dear Cotton, > > Let me first start with a hint how the source code of the MagmaElement > function may be explored to find an answer, and then suggest a more > efficient approach. > > First, looking at the code of MagmaElement function - this may be done by > typing `ViewSource(MagmaElement);' in GAP - you may spot the call to > AsSSortedList: > > InstallGlobalFunction( MagmaElement, function( M, i ) > M:= AsSSortedList( M ); > if Length( M ) < i then > return fail; > else > return M[i]; > fi; > end ); > > Thus, MagmaElement returns the i-th element of AsSSortedList(M), where > the latter contains all elements of M in strictly sorted order, w.r.t. > the canonical ordering defined on M (depending on the type of M). > Therefore, the index in which you're interested will be returned by > > Position( AsSSortedList( G ), g ) > > For example, > > gap> G:=SmallGroup(8,3); > > gap> g:=Random(G); > f1*f3 > gap> s:=AsSSortedList(G);; > gap> Position(s,g); > 6 > gap> MagmaElement(G,6); > f1*f3 > gap> MagmaElement(G,6)=g; > true > > Creating the list of all elements may not be very efficient, especially > when the group is very large. However, if the method for `Enumerator' > exists for such a group (see `?Enumerator), then there is another > approach. Enumerator(G) need not to store its elements explicitly, > but it knows how to determine the i-th element and the position of a > given object. For example, this works: > > gap> S:=SymmetricGroup(50); > Sym( [ 1 .. 50 ] ) > gap> g:=Random(S); > (1,40,16,24,8,21,19,39,20,12,28,6)(2,5,49,3,45,4,30,25,13,11,47,44,36,9,50,43, > 18,32)(7,46,22,15,35,41)(10,14,48,26,17)(23,42,33,29,37,38,27) > gap> enum:=Enumerator(S); > > gap> pos:=Position(enum,g); > 19748951512546719853008099372809900742253637283670495935197327991 > gap> enum[pos]=g; > true > > while AsSSortedList(S) will run out of memory. There are methods for > enumerators of various types of algebraic structures defined in the > GAP library. > > Please note that the order in which MagmaElement and Enumerator will > sort elements of a domain sometimes may be different: the one for > MagmaElement is determined by the '\<' relation defined on the domain, > while the one for Enumerator depends on the algorithm used to enumerate > elements of a domain of some particular type. For example, > > gap> F:=FreeGroup("a","b"); > > gap> AssignGeneratorVariables(F); > #I Assigned the global variables [ a, b ] > gap> G:=F/[a^32,b^2,b^-1*a*b*a]; > > gap> First([1..Size(G)],i -> not MagmaElement(G,i)=Enumerator(G)[i]); > 3 > gap> MagmaElement(G,3); > b > gap> Enumerator(G)[3]; > a^-1 > > However, in most applications it is not the particular order that matters, > but the ability to determine the position of an element in the fixed > list of elements, and to retrieve the i-th element of that list. > > Hope this helps, > Alexander > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sandeepr.murthy at gmail.com Mon Feb 25 20:23:28 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Mon, 25 Feb 2013 20:23:28 +0000 Subject: [GAP Forum] sorted index of group element In-Reply-To: <20130225201630.GA20677@math.uchicago.edu> References: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> <20130225201630.GA20677@math.uchicago.edu> Message-ID: <512BC840.5030500@gmail.com> Hi, Perhaps PageSource( func ) is the function that is relevant here. The PageSource method, which accepts a function name, will display its source code in a page-view: gap> PageSource( MagmaElement ); Showing source in /Applications/GAP/gap4r5/lib/grptbl.gi (from line 162) ############################################################################# ## #F MagmaElement( , ) . . . . . . . . . . -th element of magma ## InstallGlobalFunction( MagmaElement, function( M, i ) M:= AsSSortedList( M ); if Length( M ) < i then return fail; else return M[i]; fi; end ); ############################################################################# ## #F MagmaByMultiplicationTableCreator( , ) ## InstallGlobalFunction( MagmaByMultiplicationTableCreator, function( A, domconst ) local F, # the family of objects n, # dimension of `A' range, # the range `[ 1 .. n ]' elms, # sorted list of elements M; # the magma, result # Check that `A' is a valid multiplication table. if IsMatrix( A ) then n:= Length( A ); -- page, next line, back,

back line, quit -- Sincerely, Sandeep. Vipul Naik wrote: > Hi, > > I'm not able to run ViewSource on GAP -- it does not recognize the command. > > I'm using GAP 4.5.6. > > Vipul > > * Quoting Alexander Konovalov who at 2013-02-24 20:38:44+0000 (Sun) wrote >> On 23 Feb 2013, at 19:02, Cotton Seed wrote: >> >>> Is there way to get the sorted index of a group element? More >>> specifically, let G be a group, and g an element of G. Is there a function >>> that will give me the index i so that MagmaElement(G,i) = g? Thanks! >>> >>> Best, >>> Cotton >> >> Dear Cotton, >> >> Let me first start with a hint how the source code of the MagmaElement >> function may be explored to find an answer, and then suggest a more >> efficient approach. >> >> First, looking at the code of MagmaElement function - this may be done by >> typing `ViewSource(MagmaElement);' in GAP - you may spot the call to >> AsSSortedList: >> >> InstallGlobalFunction( MagmaElement, function( M, i ) >> M:= AsSSortedList( M ); >> if Length( M )< i then >> return fail; >> else >> return M[i]; >> fi; >> end ); >> >> Thus, MagmaElement returns the i-th element of AsSSortedList(M), where >> the latter contains all elements of M in strictly sorted order, w.r.t. >> the canonical ordering defined on M (depending on the type of M). >> Therefore, the index in which you're interested will be returned by >> >> Position( AsSSortedList( G ), g ) >> >> For example, >> >> gap> G:=SmallGroup(8,3); >> >> gap> g:=Random(G); >> f1*f3 >> gap> s:=AsSSortedList(G);; >> gap> Position(s,g); >> 6 >> gap> MagmaElement(G,6); >> f1*f3 >> gap> MagmaElement(G,6)=g; >> true >> >> Creating the list of all elements may not be very efficient, especially >> when the group is very large. However, if the method for `Enumerator' >> exists for such a group (see `?Enumerator), then there is another >> approach. Enumerator(G) need not to store its elements explicitly, >> but it knows how to determine the i-th element and the position of a >> given object. For example, this works: >> >> gap> S:=SymmetricGroup(50); >> Sym( [ 1 .. 50 ] ) >> gap> g:=Random(S); >> (1,40,16,24,8,21,19,39,20,12,28,6)(2,5,49,3,45,4,30,25,13,11,47,44,36,9,50,43, >> 18,32)(7,46,22,15,35,41)(10,14,48,26,17)(23,42,33,29,37,38,27) >> gap> enum:=Enumerator(S); >> >> gap> pos:=Position(enum,g); >> 19748951512546719853008099372809900742253637283670495935197327991 >> gap> enum[pos]=g; >> true >> >> while AsSSortedList(S) will run out of memory. There are methods for >> enumerators of various types of algebraic structures defined in the >> GAP library. >> >> Please note that the order in which MagmaElement and Enumerator will >> sort elements of a domain sometimes may be different: the one for >> MagmaElement is determined by the '\<' relation defined on the domain, >> while the one for Enumerator depends on the algorithm used to enumerate >> elements of a domain of some particular type. For example, >> >> gap> F:=FreeGroup("a","b"); >> >> gap> AssignGeneratorVariables(F); >> #I Assigned the global variables [ a, b ] >> gap> G:=F/[a^32,b^2,b^-1*a*b*a]; >> >> gap> First([1..Size(G)],i -> not MagmaElement(G,i)=Enumerator(G)[i]); >> 3 >> gap> MagmaElement(G,3); >> b >> gap> Enumerator(G)[3]; >> a^-1 >> >> However, in most applications it is not the particular order that matters, >> but the ability to determine the position of an element in the fixed >> list of elements, and to retrieve the i-th element of that list. >> >> Hope this helps, >> Alexander >> >> >> _______________________________________________ >> 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 sandeepr.murthy at gmail.com Mon Feb 25 20:38:21 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Mon, 25 Feb 2013 20:38:21 +0000 Subject: [GAP Forum] sorted index of group element In-Reply-To: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> References: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> Message-ID: <512BCBBD.10200@gmail.com> Hi, If you wish to search for indices of group elements, which are available via a sorted list using Elements( group ), then, I think PositionSorted( sortedlist, elm ) would be a faster way. Here's an example for finding (1,2,3,4,5,6,7,8) in SymmetricGroup( 8 ): PositionSorted( Elements( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) ); 5914 gap> time; 31 Position( AsSortedList( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) ); 5914 gap> time; 386 Elements( group ) is sorted, and PositionSorted will use binary search to find the element index, whereas Position can only use linear search. Sincerely, Sandeep. Alexander Konovalov wrote: > On 23 Feb 2013, at 19:02, Cotton Seed wrote: > >> Is there way to get the sorted index of a group element? More >> specifically, let G be a group, and g an element of G. Is there a function >> that will give me the index i so that MagmaElement(G,i) = g? Thanks! >> >> Best, >> Cotton > > > Dear Cotton, > > Let me first start with a hint how the source code of the MagmaElement > function may be explored to find an answer, and then suggest a more > efficient approach. > > First, looking at the code of MagmaElement function - this may be done by > typing `ViewSource(MagmaElement);' in GAP - you may spot the call to > AsSSortedList: > > InstallGlobalFunction( MagmaElement, function( M, i ) > M:= AsSSortedList( M ); > if Length( M )< i then > return fail; > else > return M[i]; > fi; > end ); > > Thus, MagmaElement returns the i-th element of AsSSortedList(M), where > the latter contains all elements of M in strictly sorted order, w.r.t. > the canonical ordering defined on M (depending on the type of M). > Therefore, the index in which you're interested will be returned by > > Position( AsSSortedList( G ), g ) > > For example, > > gap> G:=SmallGroup(8,3); > > gap> g:=Random(G); > f1*f3 > gap> s:=AsSSortedList(G);; > gap> Position(s,g); > 6 > gap> MagmaElement(G,6); > f1*f3 > gap> MagmaElement(G,6)=g; > true > > Creating the list of all elements may not be very efficient, especially > when the group is very large. However, if the method for `Enumerator' > exists for such a group (see `?Enumerator), then there is another > approach. Enumerator(G) need not to store its elements explicitly, > but it knows how to determine the i-th element and the position of a > given object. For example, this works: > > gap> S:=SymmetricGroup(50); > Sym( [ 1 .. 50 ] ) > gap> g:=Random(S); > (1,40,16,24,8,21,19,39,20,12,28,6)(2,5,49,3,45,4,30,25,13,11,47,44,36,9,50,43, > 18,32)(7,46,22,15,35,41)(10,14,48,26,17)(23,42,33,29,37,38,27) > gap> enum:=Enumerator(S); > > gap> pos:=Position(enum,g); > 19748951512546719853008099372809900742253637283670495935197327991 > gap> enum[pos]=g; > true > > while AsSSortedList(S) will run out of memory. There are methods for > enumerators of various types of algebraic structures defined in the > GAP library. > > Please note that the order in which MagmaElement and Enumerator will > sort elements of a domain sometimes may be different: the one for > MagmaElement is determined by the '\<' relation defined on the domain, > while the one for Enumerator depends on the algorithm used to enumerate > elements of a domain of some particular type. For example, > > gap> F:=FreeGroup("a","b"); > > gap> AssignGeneratorVariables(F); > #I Assigned the global variables [ a, b ] > gap> G:=F/[a^32,b^2,b^-1*a*b*a]; > > gap> First([1..Size(G)],i -> not MagmaElement(G,i)=Enumerator(G)[i]); > 3 > gap> MagmaElement(G,3); > b > gap> Enumerator(G)[3]; > a^-1 > > However, in most applications it is not the particular order that matters, > but the ability to determine the position of an element in the fixed > list of elements, and to retrieve the i-th element of that list. > > Hope this helps, > Alexander > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Mon Feb 25 21:40:31 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 25 Feb 2013 21:40:31 +0000 Subject: [GAP Forum] sorted index of group element In-Reply-To: <512BCBBD.10200@gmail.com> References: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> <512BCBBD.10200@gmail.com> Message-ID: <31E9F968-AA93-4DDC-9177-6D104E592782@mcs.st-andrews.ac.uk> Thanks for the remark about PositionSorted, Sandeep. However, I think in this example the difference is not coming from PositionSorted vs Position, but from AsSSortedList vs AsSortedList: gap> PositionSorted( AsSSortedList( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) );time; 5914 26 gap> PositionSorted( AsSortedList( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) );time; 5914 371 gap> Position( AsSSortedList( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) );time; 5914 25 gap> Position( AsSortedList( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) );time; 5914 402 First, Elements is an outdated synonym for `AsSSortedList': gap> Print(Elements); function ( coll ) Info( InfoPerformance, 2, "`Elements' is an outdated synonym for `AsSSortedList'" ); Info( InfoPerformance, 2, "If sortedness is not required, `AsList' might be much faster!" ); return AsSSortedList( coll ); end Second, it is AsSortedList which takes most of the time in your example: gap> AsSortedList( SymmetricGroup( 8 ) );;time; 362 gap> AsSSortedList( SymmetricGroup( 8 ) );;time; 24 The manual indeed says that "PositionSorted" uses binary search, whereas Position can in general use only linear search", however, in the case which we have now, Position is 'cleverer' that advised and it recognises that the argument is sorted. The remaining question is: why AsSortedList takes much longer than AsSSortedList? The former calls SortedList which returns a new mutable and dense list: gap> Print(ApplicableMethod(AsSortedList, [ SymmetricGroup( 8 ) ])); function ( l ) local s; s := SortedList( l ); MakeImmutable( s ); return s; end Exploring the call stack further, you will also see calls to List and Sort, and then finally Enumerator will be called to enumerate elements of the group. Copying data etc. will take some time, while the latter method uses an immediate approach: gap> Print(ApplicableMethod(AsSSortedList, [ SymmetricGroup( 8 ) ])); function ( G ) return ElementsStabChain( StabChainMutable( G ) ); end gap> Best, Alexander On 25 Feb 2013, at 20:38, Sandeep Murthy wrote: > Hi, > > If you wish to search for indices of group elements, > which are available via a sorted list using Elements( group ), > then, I think PositionSorted( sortedlist, elm ) would be > a faster way. Here's an example for finding (1,2,3,4,5,6,7,8) > in SymmetricGroup( 8 ): > > PositionSorted( Elements( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) ); > 5914 > gap> time; > 31 > Position( AsSortedList( SymmetricGroup( 8 ) ), (1,2,3,4,5,6,7,8) ); > 5914 > gap> time; > 386 > > Elements( group ) is sorted, and PositionSorted will use binary > search to find the element index, whereas Position can only use > linear search. > > Sincerely, Sandeep. > > > > > Alexander Konovalov wrote: >> On 23 Feb 2013, at 19:02, Cotton Seed wrote: >> >>> Is there way to get the sorted index of a group element? More >>> specifically, let G be a group, and g an element of G. Is there a function >>> that will give me the index i so that MagmaElement(G,i) = g? Thanks! >>> >>> Best, >>> Cotton >> >> >> Dear Cotton, >> >> Let me first start with a hint how the source code of the MagmaElement >> function may be explored to find an answer, and then suggest a more >> efficient approach. >> >> First, looking at the code of MagmaElement function - this may be done by >> typing `ViewSource(MagmaElement);' in GAP - you may spot the call to >> AsSSortedList: >> >> InstallGlobalFunction( MagmaElement, function( M, i ) >> M:= AsSSortedList( M ); >> if Length( M )< i then >> return fail; >> else >> return M[i]; >> fi; >> end ); >> >> Thus, MagmaElement returns the i-th element of AsSSortedList(M), where >> the latter contains all elements of M in strictly sorted order, w.r.t. >> the canonical ordering defined on M (depending on the type of M). >> Therefore, the index in which you're interested will be returned by >> >> Position( AsSSortedList( G ), g ) >> >> For example, >> >> gap> G:=SmallGroup(8,3); >> >> gap> g:=Random(G); >> f1*f3 >> gap> s:=AsSSortedList(G);; >> gap> Position(s,g); >> 6 >> gap> MagmaElement(G,6); >> f1*f3 >> gap> MagmaElement(G,6)=g; >> true >> >> Creating the list of all elements may not be very efficient, especially >> when the group is very large. However, if the method for `Enumerator' >> exists for such a group (see `?Enumerator), then there is another >> approach. Enumerator(G) need not to store its elements explicitly, >> but it knows how to determine the i-th element and the position of a >> given object. For example, this works: >> >> gap> S:=SymmetricGroup(50); >> Sym( [ 1 .. 50 ] ) >> gap> g:=Random(S); >> (1,40,16,24,8,21,19,39,20,12,28,6)(2,5,49,3,45,4,30,25,13,11,47,44,36,9,50,43, >> 18,32)(7,46,22,15,35,41)(10,14,48,26,17)(23,42,33,29,37,38,27) >> gap> enum:=Enumerator(S); >> >> gap> pos:=Position(enum,g); >> 19748951512546719853008099372809900742253637283670495935197327991 >> gap> enum[pos]=g; >> true >> >> while AsSSortedList(S) will run out of memory. There are methods for >> enumerators of various types of algebraic structures defined in the >> GAP library. >> >> Please note that the order in which MagmaElement and Enumerator will >> sort elements of a domain sometimes may be different: the one for >> MagmaElement is determined by the '\<' relation defined on the domain, >> while the one for Enumerator depends on the algorithm used to enumerate >> elements of a domain of some particular type. For example, >> >> gap> F:=FreeGroup("a","b"); >> >> gap> AssignGeneratorVariables(F); >> #I Assigned the global variables [ a, b ] >> gap> G:=F/[a^32,b^2,b^-1*a*b*a]; >> >> gap> First([1..Size(G)],i -> not MagmaElement(G,i)=Enumerator(G)[i]); >> 3 >> gap> MagmaElement(G,3); >> b >> gap> Enumerator(G)[3]; >> a^-1 >> >> However, in most applications it is not the particular order that matters, >> but the ability to determine the position of an element in the fixed >> list of elements, and to retrieve the i-th element of that list. >> >> Hope this helps, >> Alexander >> >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum From sandeepr.murthy at gmail.com Mon Feb 25 21:42:17 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Mon, 25 Feb 2013 21:42:17 +0000 Subject: [GAP Forum] sorted index of group element In-Reply-To: <20130225212901.GA23932@math.uchicago.edu> References: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> <20130225201630.GA20677@math.uchicago.edu> <512BC840.5030500@gmail.com> <20130225212901.GA23932@math.uchicago.edu> Message-ID: <512BDAB9.4030105@gmail.com> Hi, I don't think there is a built-in GAP function called ViewSource, it must be user-defined/compiled. gap> FilenameFunc( ViewSource ); Error, Variable: 'ViewSource' must have a value not in any function at line 28 of *stdin* The kernel should be read-only, so I guess that is why PageSource does not work for kernel functions. Sincerely, Sandeep. Vipul Naik wrote: > Thank you to both Sandeep Murthy and Alexander Konovalov. PageSource > does not seem to work for many functions that GAP calls kernel > functions (such as IsNormal). Does ViewSource work for these, or is > there no way to view the source code for these? > > Vipul > > * Quoting Alexander Konovalov who at 2013-02-25 20:36:13+0000 (Mon) wrote >> yes, thanks for correcting this. I actually have ViewSource defined >> in my local gaprc file since pre-PageSource times (and actually opens >> the file for editing, not for viewing). PageSource is the name to use >> - sorry for giving a hint in the wrong direction :) >> >> Best wishes, >> Alex >> >> >> On 25 Feb 2013, at 20:23, Sandeep Murthy wrote: >> >>> Hi, >>> >>> Perhaps PageSource( func ) is the function that is >>> relevant here. >>> >>> The PageSource method, which accepts a function name, >>> will display its source code in a page-view: >>> >>> gap> PageSource( MagmaElement ); >>> Showing source in /Applications/GAP/gap4r5/lib/grptbl.gi (from line 162) >>> >>> ############################################################################# >>> ## >>> #F MagmaElement(, ) . . . . . . . . . .-th element of magma >>> ## >>> InstallGlobalFunction( MagmaElement, function( M, i ) >>> M:= AsSSortedList( M ); >>> if Length( M )< i then >>> return fail; >>> else >>> return M[i]; >>> fi; >>> end ); >>> >>> >>> ############################################################################# >>> ## >>> #F MagmaByMultiplicationTableCreator(, ) >>> ## >>> InstallGlobalFunction( MagmaByMultiplicationTableCreator, >>> function( A, domconst ) >>> local F, # the family of objects >>> n, # dimension of `A' >>> range, # the range `[ 1 .. n ]' >>> elms, # sorted list of elements >>> M; # the magma, result >>> >>> # Check that `A' is a valid multiplication table. >>> if IsMatrix( A ) then >>> n:= Length( A ); >>> -- page, next line, back,

back line, quit -- >>> >>> Sincerely, Sandeep. >>> >>> >>> Vipul Naik wrote: >>>> Hi, >>>> >>>> I'm not able to run ViewSource on GAP -- it does not recognize the command. >>>> >>>> I'm using GAP 4.5.6. >>>> >>>> Vipul >>>> >>>> * Quoting Alexander Konovalov who at 2013-02-24 20:38:44+0000 (Sun) wrote >>>>> On 23 Feb 2013, at 19:02, Cotton Seed wrote: >>>>> >>>>>> Is there way to get the sorted index of a group element? More >>>>>> specifically, let G be a group, and g an element of G. Is there a function >>>>>> that will give me the index i so that MagmaElement(G,i) = g? Thanks! >>>>>> >>>>>> Best, >>>>>> Cotton >>>>> Dear Cotton, >>>>> >>>>> Let me first start with a hint how the source code of the MagmaElement >>>>> function may be explored to find an answer, and then suggest a more >>>>> efficient approach. >>>>> >>>>> First, looking at the code of MagmaElement function - this may be done by >>>>> typing `ViewSource(MagmaElement);' in GAP - you may spot the call to >>>>> AsSSortedList: >>>>> >>>>> InstallGlobalFunction( MagmaElement, function( M, i ) >>>>> M:= AsSSortedList( M ); >>>>> if Length( M )< i then >>>>> return fail; >>>>> else >>>>> return M[i]; >>>>> fi; >>>>> end ); >>>>> >>>>> Thus, MagmaElement returns the i-th element of AsSSortedList(M), where >>>>> the latter contains all elements of M in strictly sorted order, w.r.t. >>>>> the canonical ordering defined on M (depending on the type of M). >>>>> Therefore, the index in which you're interested will be returned by >>>>> >>>>> Position( AsSSortedList( G ), g ) >>>>> >>>>> For example, >>>>> >>>>> gap> G:=SmallGroup(8,3); >>>>> >>>>> gap> g:=Random(G); >>>>> f1*f3 >>>>> gap> s:=AsSSortedList(G);; >>>>> gap> Position(s,g); >>>>> 6 >>>>> gap> MagmaElement(G,6); >>>>> f1*f3 >>>>> gap> MagmaElement(G,6)=g; >>>>> true >>>>> >>>>> Creating the list of all elements may not be very efficient, especially >>>>> when the group is very large. However, if the method for `Enumerator' >>>>> exists for such a group (see `?Enumerator), then there is another >>>>> approach. Enumerator(G) need not to store its elements explicitly, >>>>> but it knows how to determine the i-th element and the position of a >>>>> given object. For example, this works: >>>>> >>>>> gap> S:=SymmetricGroup(50); >>>>> Sym( [ 1 .. 50 ] ) >>>>> gap> g:=Random(S); >>>>> (1,40,16,24,8,21,19,39,20,12,28,6)(2,5,49,3,45,4,30,25,13,11,47,44,36,9,50,43, >>>>> 18,32)(7,46,22,15,35,41)(10,14,48,26,17)(23,42,33,29,37,38,27) >>>>> gap> enum:=Enumerator(S); >>>>> >>>>> gap> pos:=Position(enum,g); >>>>> 19748951512546719853008099372809900742253637283670495935197327991 >>>>> gap> enum[pos]=g; >>>>> true >>>>> >>>>> while AsSSortedList(S) will run out of memory. There are methods for >>>>> enumerators of various types of algebraic structures defined in the >>>>> GAP library. >>>>> >>>>> Please note that the order in which MagmaElement and Enumerator will >>>>> sort elements of a domain sometimes may be different: the one for >>>>> MagmaElement is determined by the '\<' relation defined on the domain, >>>>> while the one for Enumerator depends on the algorithm used to enumerate >>>>> elements of a domain of some particular type. For example, >>>>> >>>>> gap> F:=FreeGroup("a","b"); >>>>> >>>>> gap> AssignGeneratorVariables(F); >>>>> #I Assigned the global variables [ a, b ] >>>>> gap> G:=F/[a^32,b^2,b^-1*a*b*a]; >>>>> >>>>> gap> First([1..Size(G)],i -> not MagmaElement(G,i)=Enumerator(G)[i]); >>>>> 3 >>>>> gap> MagmaElement(G,3); >>>>> b >>>>> gap> Enumerator(G)[3]; >>>>> a^-1 >>>>> >>>>> However, in most applications it is not the particular order that matters, >>>>> but the ability to determine the position of an element in the fixed >>>>> list of elements, and to retrieve the i-th element of that list. >>>>> >>>>> Hope this helps, >>>>> Alexander >>>>> >>>>> >>>>> _______________________________________________ >>>>> 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 alexk at mcs.st-andrews.ac.uk Mon Feb 25 21:50:19 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 25 Feb 2013 21:50:19 +0000 Subject: [GAP Forum] sorted index of group element In-Reply-To: <512BDAB9.4030105@gmail.com> References: <06E94901-BCB5-43A8-A2F8-09A1260C0134@mcs.st-andrews.ac.uk> <20130225201630.GA20677@math.uchicago.edu> <512BC840.5030500@gmail.com> <20130225212901.GA23932@math.uchicago.edu> <512BDAB9.4030105@gmail.com> Message-ID: <05E14407-398B-45CA-81B6-491664E83FE6@mcs.st-andrews.ac.uk> On 25 Feb 2013, at 21:42, Sandeep Murthy wrote: > Hi, > > I don't think there is a built-in GAP function called ViewSource, it must be user-defined/compiled. Yes, sorry, I gave the wrong name by mistake (I had it defined locally in my gaprc file with slightly different behaviour, since I was using it before PageSource was introduced in the released version of the system). Please use 'PageSource' instead. > > gap> FilenameFunc( ViewSource ); > Error, Variable: 'ViewSource' must have a value > not in any function at line 28 of *stdin* > > The kernel should be read-only, so I guess that is why PageSource does not work for kernel functions. The argument of PageSource must be a function, while IsNormal is an operation. This is how it works: gap> IsNormal; gap> ApplicableMethod(IsNormal, [ SymmetricGroup( 8 ), AlternatingGroup(8) ]); function( super, sub ) ... end gap> PageSource(last); Showing source in /Users/alexk/gap4r6p2/lib/domain.gd (from line 429) APPEND_LIST_INTR( str, name ); APPEND_LIST_INTR( str, "InParent" ); InstallMethod( func, str, [ superreq, subreq ], function( super, sub ) local value; if HasParent( sub ) and IsIdenticalObj( super, Parent( sub ) ) then value:= attr( sub ); else value:= oper( super, sub ); fi; return value; end ); # Install the method for the attribute that calls the operation. str:= "method that calls the two-argument operation "; APPEND_LIST_INTR( str, name ); APPEND_LIST_INTR( str, "Op" ); InstallMethod( attr, str, [ subreq and HasParent ], D -> oper( Parent( D ), D ) ); end ); The manual have more examples: This shows the file containing the source code of the function or method func in a pager (see Pager (2.4-1)). The display starts at a line shortly before the code of func. This function works if FilenameFunc(func) returns the name of a proper file. In that case this filename and the position of the function definition are also printed. Otherwise the function indicates that the source is not available (for example this happens for functions which are implemented in the GAP C-kernel). Usage examples: met := ApplicableMethod(\^, [(1,2),2743527]); PageSource(met); PageSource(Combinations); ct:=CharacterTable(Group((1,2,3))); met := ApplicableMethod(Size,[ct]); PageSource(met); HTH, Alex > > Vipul Naik wrote: >> Thank you to both Sandeep Murthy and Alexander Konovalov. PageSource >> does not seem to work for many functions that GAP calls kernel >> functions (such as IsNormal). Does ViewSource work for these, or is >> there no way to view the source code for these? >> >> Vipul >> >> * Quoting Alexander Konovalov who at 2013-02-25 20:36:13+0000 (Mon) wrote >>> yes, thanks for correcting this. I actually have ViewSource defined >>> in my local gaprc file since pre-PageSource times (and actually opens >>> the file for editing, not for viewing). PageSource is the name to use >>> - sorry for giving a hint in the wrong direction :) >>> >>> Best wishes, >>> Alex >>> >>> >>> On 25 Feb 2013, at 20:23, Sandeep Murthy wrote: >>> >>>> Hi, >>>> >>>> Perhaps PageSource( func ) is the function that is >>>> relevant here. >>>> >>>> The PageSource method, which accepts a function name, >>>> will display its source code in a page-view: >>>> >>>> gap> PageSource( MagmaElement ); >>>> Showing source in /Applications/GAP/gap4r5/lib/grptbl.gi (from line 162) >>>> >>>> ############################################################################# >>>> ## >>>> #F MagmaElement(, ) . . . . . . . . . .-th element of magma >>>> ## >>>> InstallGlobalFunction( MagmaElement, function( M, i ) >>>> M:= AsSSortedList( M ); >>>> if Length( M )< i then >>>> return fail; >>>> else >>>> return M[i]; >>>> fi; >>>> end ); >>>> >>>> >>>> ############################################################################# >>>> ## >>>> #F MagmaByMultiplicationTableCreator(, ) >>>> ## >>>> InstallGlobalFunction( MagmaByMultiplicationTableCreator, >>>> function( A, domconst ) >>>> local F, # the family of objects >>>> n, # dimension of `A' >>>> range, # the range `[ 1 .. n ]' >>>> elms, # sorted list of elements >>>> M; # the magma, result >>>> >>>> # Check that `A' is a valid multiplication table. >>>> if IsMatrix( A ) then >>>> n:= Length( A ); >>>> -- page, next line, back,

back line, quit -- >>>> >>>> Sincerely, Sandeep. >>>> >>>> >>>> Vipul Naik wrote: >>>>> Hi, >>>>> >>>>> I'm not able to run ViewSource on GAP -- it does not recognize the command. >>>>> >>>>> I'm using GAP 4.5.6. >>>>> >>>>> Vipul >>>>> >>>>> * Quoting Alexander Konovalov who at 2013-02-24 20:38:44+0000 (Sun) wrote >>>>>> On 23 Feb 2013, at 19:02, Cotton Seed wrote: >>>>>> >>>>>>> Is there way to get the sorted index of a group element? More >>>>>>> specifically, let G be a group, and g an element of G. Is there a function >>>>>>> that will give me the index i so that MagmaElement(G,i) = g? Thanks! >>>>>>> >>>>>>> Best, >>>>>>> Cotton >>>>>> Dear Cotton, >>>>>> >>>>>> Let me first start with a hint how the source code of the MagmaElement >>>>>> function may be explored to find an answer, and then suggest a more >>>>>> efficient approach. >>>>>> >>>>>> First, looking at the code of MagmaElement function - this may be done by >>>>>> typing `ViewSource(MagmaElement);' in GAP - you may spot the call to >>>>>> AsSSortedList: >>>>>> >>>>>> InstallGlobalFunction( MagmaElement, function( M, i ) >>>>>> M:= AsSSortedList( M ); >>>>>> if Length( M )< i then >>>>>> return fail; >>>>>> else >>>>>> return M[i]; >>>>>> fi; >>>>>> end ); >>>>>> >>>>>> Thus, MagmaElement returns the i-th element of AsSSortedList(M), where >>>>>> the latter contains all elements of M in strictly sorted order, w.r.t. >>>>>> the canonical ordering defined on M (depending on the type of M). >>>>>> Therefore, the index in which you're interested will be returned by >>>>>> >>>>>> Position( AsSSortedList( G ), g ) >>>>>> >>>>>> For example, >>>>>> >>>>>> gap> G:=SmallGroup(8,3); >>>>>> >>>>>> gap> g:=Random(G); >>>>>> f1*f3 >>>>>> gap> s:=AsSSortedList(G);; >>>>>> gap> Position(s,g); >>>>>> 6 >>>>>> gap> MagmaElement(G,6); >>>>>> f1*f3 >>>>>> gap> MagmaElement(G,6)=g; >>>>>> true >>>>>> >>>>>> Creating the list of all elements may not be very efficient, especially >>>>>> when the group is very large. However, if the method for `Enumerator' >>>>>> exists for such a group (see `?Enumerator), then there is another >>>>>> approach. Enumerator(G) need not to store its elements explicitly, >>>>>> but it knows how to determine the i-th element and the position of a >>>>>> given object. For example, this works: >>>>>> >>>>>> gap> S:=SymmetricGroup(50); >>>>>> Sym( [ 1 .. 50 ] ) >>>>>> gap> g:=Random(S); >>>>>> (1,40,16,24,8,21,19,39,20,12,28,6)(2,5,49,3,45,4,30,25,13,11,47,44,36,9,50,43, >>>>>> 18,32)(7,46,22,15,35,41)(10,14,48,26,17)(23,42,33,29,37,38,27) >>>>>> gap> enum:=Enumerator(S); >>>>>> >>>>>> gap> pos:=Position(enum,g); >>>>>> 19748951512546719853008099372809900742253637283670495935197327991 >>>>>> gap> enum[pos]=g; >>>>>> true >>>>>> >>>>>> while AsSSortedList(S) will run out of memory. There are methods for >>>>>> enumerators of various types of algebraic structures defined in the >>>>>> GAP library. >>>>>> >>>>>> Please note that the order in which MagmaElement and Enumerator will >>>>>> sort elements of a domain sometimes may be different: the one for >>>>>> MagmaElement is determined by the '\<' relation defined on the domain, >>>>>> while the one for Enumerator depends on the algorithm used to enumerate >>>>>> elements of a domain of some particular type. For example, >>>>>> >>>>>> gap> F:=FreeGroup("a","b"); >>>>>> >>>>>> gap> AssignGeneratorVariables(F); >>>>>> #I Assigned the global variables [ a, b ] >>>>>> gap> G:=F/[a^32,b^2,b^-1*a*b*a]; >>>>>> >>>>>> gap> First([1..Size(G)],i -> not MagmaElement(G,i)=Enumerator(G)[i]); >>>>>> 3 >>>>>> gap> MagmaElement(G,3); >>>>>> b >>>>>> gap> Enumerator(G)[3]; >>>>>> a^-1 >>>>>> >>>>>> However, in most applications it is not the particular order that matters, >>>>>> but the ability to determine the position of an element in the fixed >>>>>> list of elements, and to retrieve the i-th element of that list. >>>>>> >>>>>> Hope this helps, >>>>>> Alexander >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> 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 fuat.erdem at metu.edu.tr Mon Feb 25 18:56:15 2013 From: fuat.erdem at metu.edu.tr (Fuat Erdem) Date: Mon, 25 Feb 2013 20:56:15 +0200 Subject: [GAP Forum] md5 sum needed In-Reply-To: References: Message-ID: <20130225205615.106744dhr66o4o9b@horde.metu.edu.tr> Dear Roberto, I have double checked mine and they are as follows: md5: 0c5d44f306f3013d1da7f22a0cc37398 sha1: 836a7de6d2ddbb4c4f1e67e17561576ea718a0bb I would be pleased to know if they agree with yours. Best regards, Fuat. Alinti Roberto R?dina > Dear forum, > I need md5 or sha1 sums of gap4r6p2_2013_02_02-01_00-win.zip for a > check. It is the file for installing the last version of GAP. > Can someone post it here? _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > ____ Fuat Erdem Department of Mathematics Middle East Technical University, Ankara, Turkey Office: Z-37 Phone: 0090 312 210 5386 URL: http://www.metu.edu.tr/~efuat/ From a.j.t.al-juburie at newcastle.ac.uk Mon Feb 25 20:03:55 2013 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Mon, 25 Feb 2013 20:03:55 +0000 Subject: [GAP Forum] Presentation Message-ID: <5CA877F40086AF4BA25CA7791864174403B4F2@EXMBCT01.campus.ncl.ac.uk> Dear Forum, I got by using GAP two presentations for the automorphism of group of the free Abelian group of rank n. . However, I ask if there is any way in GAP to let me know if these two presentations are isomorphic. I would be appreciated if you could help me in this matter. Best Regards, Abdulsatar From roberto.radina at tiscali.it Tue Feb 26 13:30:22 2013 From: roberto.radina at tiscali.it (=?iso-8859-9?Q?Roberto_R=E0dina?=) Date: Tue, 26 Feb 2013 14:30:22 +0100 Subject: [GAP Forum] md5 sum needed References: <20130225205615.106744dhr66o4o9b@horde.metu.edu.tr> Message-ID: <5601D961A7C1483AB32E7D878345D561@carnia> > md5: 0c5d44f306f3013d1da7f22a0cc37398 > sha1: 836a7de6d2ddbb4c4f1e67e17561576ea718a0bb > > I would be pleased to know if they agree with yours. yes, they (both) agree! From hebert.perez at gmail.com Tue Feb 26 15:14:36 2013 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Tue, 26 Feb 2013 16:14:36 +0100 Subject: [GAP Forum] Presentation In-Reply-To: <5CA877F40086AF4BA25CA7791864174403B4F2@EXMBCT01.campus.ncl.ac.uk> References: <5CA877F40086AF4BA25CA7791864174403B4F2@EXMBCT01.campus.ncl.ac.uk> Message-ID: Dear Abdulsatar, I do not quite understand your question. I suppose that you want to know whether the two groups specified by both presentations are isomorphic. But you say that both presentations are of the same group, namely the automorphism group of the free Abelian group of rank n. If that is so, then obviously both groups are isomorphic, since they are the same group !! On the other hand, if you want to know, for two arbitrary presentations P_1 and P_2, whether the corresponding groups G_1 and G_2 are isomorphic, then it is impossible in general. This is one of the three problems stated by Max Dehn in 1911, which turned out to be unsolvable. The other two are the word problem and the conjugacy problem. It is possible, however, to solve the problem for some special classes of presentations. I hope this answers your questions. Best regards, Hebert Perez-Roses The University of Lleida, Spain 2013/2/25 Abdulsatar Al-Juburie : > Dear Forum, > > I got by using GAP two presentations for the automorphism of group of the free Abelian group of rank n. . However, I ask if there is any way in GAP to let me know if these two presentations are isomorphic. > > I would be appreciated if you could help me in this matter. > > Best Regards, > > Abdulsatar > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Tue Feb 26 15:46:39 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 26 Feb 2013 08:46:39 -0700 Subject: [GAP Forum] Presentation In-Reply-To: <5CA877F40086AF4BA25CA7791864174403B4F2@EXMBCT01.campus.ncl.ac.uk> References: <5CA877F40086AF4BA25CA7791864174403B4F2@EXMBCT01.campus.ncl.ac.uk> Message-ID: <16CE0C07-9D5E-4EA8-95CB-F37552FD30C6@math.colostate.edu> Dear Forum, Dear Abulsatar, > I got by using GAP two presentations for the automorphism of group of the free Abelian group of rank n. . However, I ask if there is any way in GAP to let me know if these two presentations are isomorphic. In the generic case of testing for such isomorphism the best computational approach I am aware of is: @incollection {MR1200282, AUTHOR = {Holt, D. F. and Rees, Sarah}, TITLE = {Testing for isomorphism between finitely presented groups}, BOOKTITLE = {Groups, combinatorics \& geometry ({D}urham, 1990)}, SERIES = {London Math. Soc. Lecture Note Ser.}, VOLUME = {165}, PAGES = {459--475}, PUBLISHER = {Cambridge Univ. Press}, ADDRESS = {Cambridge}, YEAR = {1992}, MRCLASS = {20F05 (20-04)}, MRNUMBER = {1200282 (94a:20051)}, MRREVIEWER = {Colin M. Campbell}, DOI = {10.1017/CBO9780511629259.040}, URL = {http://dx.doi.org/10.1017/CBO9780511629259.040}, } (As you are in Newcastle I suppose you know this already.) This is not built into GAP as one turn-key routine, but some of the underlying functionality is there that could help building such a routine. In your case however you have a particular group. I would try to find isomorphisms from both presentations to a representation as matrices in Z^{n x n} first. This will give you a guess for an isomorphism. Then (assuming that the groups are G= and H= and phi:G->H is the guessed isomorphism) form a new group X= where phi(g1) is the word in the h1 that gives the image. If phi indeed is a isomorphism, you can use Tietze transformations to eliminate either all g's or all h's from the presentation and end up with the presentations for H and G respectively. (It might be easier for one direction to use phi^-1 instead to define what the h's are in terms of the g's.) Best, Alexander -- 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 nik9kr at gmail.com Wed Feb 27 13:55:39 2013 From: nik9kr at gmail.com (NIK NIK) Date: Wed, 27 Feb 2013 17:55:39 +0400 Subject: [GAP Forum] mistake with Union Message-ID: Dear forum I 've find mistake with Union. ++++++++++++++++++++++++++++++++++++++++++++++ gap> r := [ [ 2 ], [ ], [ 1, 3 ], [ 4 ] ]; [ [ 2 ], [ ], [ 1, 3 ], [ 4 ] ] gap> Union( r{[]} ); [ ] gap>st:= Union( r{[1,3]} ); [ 1 .. 3 ] ++++++++++++++++++++++++++++++++++++++++++++++ But I need the all elements in list st:=[1,2,3]. This mistake makes many troubles in package "Automata". ++++++++++++++++++++++++++++++++++++++++++++++ gap> Display(rb1); | 1 2 3 4 ----------------------------------------- a | [ 2 ] [ 1, 3 ] [ 4 ] b | [ 3 ] [ 1 ] [ 2, 4 ] Initial states: [ 1, 3 ] Accepting state: [ 1 ] gap> ddrb1:=NFAtoDFA(rb1); #I Determinized 4 to 5 < deterministic automaton on 2 letters with 5 states > gap> Display(ddrb1); | 1 2 3 4 5 -------------------- a | 2 2 1 2 5 b | 3 4 5 3 5 Initial state: [ 1 ] Accepting states: [ 1, 2, 4 ] +++++++++++++++++++++++++++++++++++++++++++++++ Thank you. Nikolai Krainyukov From mdelgado at fc.up.pt Wed Feb 27 18:59:15 2013 From: mdelgado at fc.up.pt (Manuel Delgado) Date: Wed, 27 Feb 2013 18:59:15 +0000 Subject: [GAP Forum] mistake with Union In-Reply-To: References: Message-ID: <512E5783.7040908@fc.up.pt> Dear Nikolai, As the results in your message are those that I would expect, I am perhaps missing something. If this is the case, please let me know. Unless I am mistaken, the "union" produces and displays the correct result. Note that gap> [1..3]=[1,2,3]; true Assuming that the function MinimalizedAut works correctly, the automata rb1 and ddrb1 are equivalent: gap> rb1=Automaton("nondet",4,2,[[[2],[],[1,3],[4]],[[3],[1],[],[2,4]]],[1,3],[1]);; gap> min := MinimalizedAut(rb1); < deterministic automaton on 2 letters with 4 states > gap> Display(min); | 1 2 3 4 ----------------- a | 2 4 3 4 b | 3 1 3 2 Initial state: [ 2 ] Accepting states: [ 2, 4 ] gap> gap> ddrb1 := NFAtoDFA(rb1); < deterministic automaton on 2 letters with 5 states > gap> mind := MinimalizedAut(ddrb1); < deterministic automaton on 2 letters with 4 states > gap> Display(mind); | 1 2 3 4 ----------------- a | 2 4 3 4 b | 3 1 3 2 Initial state: [ 2 ] Accepting states: [ 2, 4 ] gap> The way the deterministic automaton is computed from the non deterministic one is perhaps different from the one you would expect, but, as far as I can remember, it is exactly as described in the automata package manual (which refers the power set construction and points to a report easily obtainable from the internet.) Hope this helps. Best, Manuel Delgado On 02/27/2013 01:55 PM, NIK NIK wrote: > Dear forum > > I 've find mistake with Union. > ++++++++++++++++++++++++++++++++++++++++++++++ > gap> r := [ [ 2 ], [ ], [ 1, 3 ], [ 4 ] ]; > [ [ 2 ], [ ], [ 1, 3 ], [ 4 ] ] > gap> Union( r{[]} ); > [ ] > gap>st:= Union( r{[1,3]} ); > [ 1 .. 3 ] > ++++++++++++++++++++++++++++++++++++++++++++++ > > But I need the all elements in list st:=[1,2,3]. > > This mistake makes many troubles in package "Automata". > ++++++++++++++++++++++++++++++++++++++++++++++ > gap> Display(rb1); > | 1 2 3 4 > ----------------------------------------- > a | [ 2 ] [ 1, 3 ] [ 4 ] > b | [ 3 ] [ 1 ] [ 2, 4 ] > Initial states: [ 1, 3 ] > Accepting state: [ 1 ] > gap> ddrb1:=NFAtoDFA(rb1); > #I Determinized 4 to 5 > < deterministic automaton on 2 letters with 5 states > > gap> Display(ddrb1); > | 1 2 3 4 5 > -------------------- > a | 2 2 1 2 5 > b | 3 4 5 3 5 > Initial state: [ 1 ] > Accepting states: [ 1, 2, 4 ] > +++++++++++++++++++++++++++++++++++++++++++++++ > > > Thank you. > Nikolai Krainyukov > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From e.obrien at auckland.ac.nz Fri Mar 1 00:11:47 2013 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Fri, 01 Mar 2013 13:11:47 +1300 Subject: [GAP Forum] Second announcement: Workshop at Braunschweig, May 21-24 Message-ID: <512FF243.3050601@auckland.ac.nz> Dear Colleagues: We will run a workshop entitled "Questions, Algorithms, and Computations in Abstract Group Theory", at the University of Braunschweig from May 21-24, 2013. Our aim is to combine researchers from the areas of group theory, computer science and algebraic geometry to obtain new advances in the algorithmic theory of abstract groups. More details about the workshop, including the list of speakers, can be found at http://www.icm.tu-bs.de/ag_algebra/ws-qac Best wishes. Eamonn O'Brien From roberto.radina at tiscali.it Tue Mar 12 20:27:37 2013 From: roberto.radina at tiscali.it (=?iso-8859-1?Q?Roberto_R=E0dina?=) Date: Tue, 12 Mar 2013 21:27:37 +0100 Subject: [GAP Forum] command line option -N Message-ID: Dear forum, the manual says: "So if you have installed GAP yourself then you should think about creating a workspace file immediately after you have started GAP with the command line option -N," "Certain Boolean options (-b, -q, -e, -r, -A, -D, -M, -N, -T, -X, -Y) toggle the current value" but the point is: what is the effect of the -N option? My workspace was created without it but it seems to work... From alexk at mcs.st-andrews.ac.uk Tue Mar 12 21:20:12 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 12 Mar 2013 21:20:12 +0000 Subject: [GAP Forum] command line option -N In-Reply-To: References: Message-ID: Dear Roberto, On 12 Mar 2013, at 20:27, Roberto R?dina wrote: > Dear forum, > > the manual says: > > "So if you have installed GAP yourself then you should think about creating > a workspace file immediately after you have started GAP with the command > line option -N," > > "Certain Boolean options (-b, -q, -e, -r, -A, -D, -M, -N, -T, -X, -Y) toggle > the current value" > > but the point is: what is the effect of the -N option? My workspace was > created without it but it seems to work... The -N option was used in GAP 4.4 to suppress the reading of any existing completion files. The mechanism of using completion files has been withdrawn since GAP 4.5, so this option became undocumented. Thanks for pointing out on these relic references to the -N option - we should clean them up. Thus, I suppose that your workspace works fine. Best wishes, Alexander From gordon.royle at uwa.edu.au Wed Mar 13 07:52:30 2013 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Wed, 13 Mar 2013 15:52:30 +0800 Subject: [GAP Forum] Can I safely identify the moved points of PGL(n, 2) with GF(2)^n\0? Message-ID: If I use the groups PGL(n,2) in GAP, then is it guaranteed that the set permuted by this group can be identified in the obvious fashion with GF(2)^n \ 0? What I mean is that it would be natural to assign the non-zero vectors in GF(2)^n\0 to integers in the range {1,2,?,2^n-1} simply by treating a 0/1 vector as the binary representation of an integer. 0000001 -> 1 0000010 -> 2 0000011 -> 3 and so on. >From my experiments, GAP *appears* to behave consistently with this (for example, if I check the stabiliser of [x, y, x ^ y] where x ^ y is bitwise binary XOR, then it is always the correct thing). But can I rely on it? Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From neunhoef at mcs.st-and.ac.uk Wed Mar 13 10:08:32 2013 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Wed, 13 Mar 2013 10:08:32 +0000 Subject: [GAP Forum] Can I safely identify the moved points of PGL(n, 2) with GF(2)^n\0? In-Reply-To: References: Message-ID: <20130313100832.GB32309@mcs.st-and.ac.uk> Dear Gordon, as far as I know the documentation does not guarantee this. However, here is a way to guarantee some identification using the orb package (here for n=8 by way of example): gap> g := GL(IsMatrixGroup,8,2); SL(8,2) gap> v := ShallowCopy(Zero(GF(2)^8)); gap> v[1] := Z(2); Z(2)^0 gap> o := Orb(g,v,OnLines,rec( storenumbers := true )); gap> Enumerate(o); gap> permgens := ActionOnOrbit(o,GeneratorsOfGroup(g));; It does not give you exactly the numbering you want but on the other hand o[i] gives you quickly the i-th vector and Position(o,v) for a vector v uses a hash table and thus gives you the number of a vector in constant time. Best regards, Max On Wed, Mar 13, 2013 at 03:52:30PM +0800, Gordon Royle wrote: > If I use the groups > > PGL(n,2) > > in GAP, then is it guaranteed that the set permuted by this group can be identified in the obvious fashion with GF(2)^n \ 0? > > What I mean is that it would be natural to assign the non-zero vectors in GF(2)^n\0 to integers in the range {1,2,?,2^n-1} simply by treating a 0/1 vector as the binary representation of an integer. > > 0000001 -> 1 > 0000010 -> 2 > 0000011 -> 3 > > and so on. > > >>From my experiments, GAP *appears* to behave consistently with this (for example, if I check the stabiliser of [x, y, x ^ y] where x ^ y is bitwise binary XOR, then it is always the correct thing). > > But can I rely on it? > > > > > Professor Gordon Royle > School of Mathematics and Statistics > University of Western Australia > Gordon.Royle at uwa.edu.au > > > > > > > > > > > > > > _______________________________________________ > 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 ciobotaru.mircea at gmail.com Wed Mar 13 18:42:12 2013 From: ciobotaru.mircea at gmail.com (Ciobotaru Mircea) Date: Wed, 13 Mar 2013 20:42:12 +0200 Subject: [GAP Forum] gap in ubuntu Message-ID: whith Gdebi ,the lists librari from gap not work!! whatis problems??? -- web : http://picasaweb.google.com/ciobotaru.mircea web :http://SEMINEU.sunphoto.ro web :http;//piatracubica.sunphoto.ro facebook : Piatra Cubica Cluj SKYPE: bazalt104 YAHOO:bazalt104 celular +40 744 804 754 fix 0264 411 536 ] From A.Egri-Nagy at herts.ac.uk Wed Mar 13 22:46:56 2013 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Thu, 14 Mar 2013 09:46:56 +1100 Subject: [GAP Forum] gap in ubuntu In-Reply-To: References: Message-ID: Dear Ciobotaru, Ubuntu repositories contain an old version of GAP. It is lot better to stick with the recommended installation method: download the archive and compile GAP from sources. http://www.gap-system.org/Download/index.html I hope this helps... best wishes, Attila On Thu, Mar 14, 2013 at 5:42 AM, Ciobotaru Mircea < ciobotaru.mircea at gmail.com> wrote: > whith Gdebi ,the lists librari from gap not work!! whatis problems??? > > -- > web : http://picasaweb.google.com/ciobotaru.mircea > web :http://SEMINEU.sunphoto.ro > web :http;//piatracubica.sunphoto.ro > facebook : Piatra Cubica Cluj > SKYPE: bazalt104 > YAHOO:bazalt104 > > celular +40 744 804 754 fix 0264 411 536 > > > > > > > > > > ] > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From sarwarvu at gmail.com Fri Mar 15 12:04:01 2013 From: sarwarvu at gmail.com (sarwarvu at gmail.com) Date: Fri, 15 Mar 2013 12:04:01 +0000 Subject: [GAP Forum] sarwarvu@gmail.com wants to follow you. Accept? Message-ID: <0.0.2DC.A48.1CE21752E77D118.1E2F@mail5.infoaxe.net> Hi, sarwarvu at gmail.com wants to follow you. ****** Is sarwarvu at gmail.com you friend? ****** If Yes please follow the link below: http://invites.infoaxe.net/signup_e.html?fullname=&email=forum at mail.gap-system.org&invitername=Muhammad&inviterid=15030613&userid=0&token=0&emailmasterid=72f2a626-600c-420b-92c9-8b98b03fd80e&uie=0&src=txt_yes If No please follow the link below: http://invites.infoaxe.net/signup_e_no.html?fullname=&email=forum at mail.gap-system.org&invitername=Muhammad&inviterid=15030613&userid=0&token=0&emailmasterid=72f2a626-600c-420b-92c9-8b98b03fd80e&uie=0&src=txt_no Follow the link below to unsubscribe from all emails from Flipora, 440 N.Wolfe Rd MS #153, Sunnyvale, CA. 94085 http://invites.infoaxe.net/unsubscribe.jsp?email=forum at mail.gap-system.org&iid=72f2a626-600c-420b-92c9-8b98b03fd80e&src=txt From kroeker at uni-math.gwdg.de Mon Mar 18 13:36:08 2013 From: kroeker at uni-math.gwdg.de (=?utf-8?B?Ikpha29iIEtyw7ZrZXIi?=) Date: Mon, 18 Mar 2013 14:36:08 +0100 Subject: [GAP Forum] Spam follow request from info@infoaxe.net? Message-ID: Hello, it seems info at infoaxe.net sends follower requests to the gap forum users (at least to me). Please be alerted! Jakob From jjm at mcs.st-and.ac.uk Mon Mar 18 14:36:13 2013 From: jjm at mcs.st-and.ac.uk (John McDermott) Date: Mon, 18 Mar 2013 14:36:13 +0000 Subject: [GAP Forum] Spam follow request from info@infoaxe.net? In-Reply-To: References: Message-ID: <869176F3-4631-419D-9555-BFC5DEE1D3E6@mcs.st-andrews.ac.uk> Dear Jakob, dear Forum, On 18 Mar 2013, at 13:36, Jakob Kr?ker wrote: > Hello, > > > it seems info at infoaxe.net sends follower requests to the gap forum users > (at least to me). Please be alerted! Yes, this mail was sent to the entire Forum. I apologise for the spam, which got through because it came from a registered user's address. That user has been placed on moderation and we have added a filter which we hope will catch other abuses from this infoaxe domain. Best wishes, John > > > > Jakob > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- John McDermott Scientific Officer Centre for Interdisciplinary Research in Computational Algebra School of Computer Science University of St Andrews From msorouhesh at gmail.com Tue Mar 19 17:13:32 2013 From: msorouhesh at gmail.com (Mohammad Reza Sorouhesh) Date: Tue, 19 Mar 2013 21:43:32 +0430 Subject: [GAP Forum] A Subgroup of S_4 and isomorphic with Z_2 x Z_2 Message-ID: Dear forum, May I ask you how can I have the subgroup of S_4 which is isomorphic with Z_2 X Z_2. I know that the Cayley's Theorem guaranties this event. Best Wishes M.R.Sorouhesh From williamdemeo at gmail.com Tue Mar 19 19:26:52 2013 From: williamdemeo at gmail.com (William DeMeo) Date: Tue, 19 Mar 2013 15:26:52 -0400 Subject: [GAP Forum] A Subgroup of S_4 and isomorphic with Z_2 x Z_2 In-Reply-To: References: Message-ID: There's probably a nicer way, but you could do gap> g:=SymmetricGroup(4); gap> ccsg:=ConjugacyClassesSubgroups(g); gap> V:=Representative(ccsg[5]); gap> StructureDescription(V); "C2 x C2" Cheers, William -- William DeMeo Department of Mathematics University of South Carolina http://williamdemeo.wordpress.com mobile:808-298-4874 office:803-777-7510 On Tue, Mar 19, 2013 at 1:13 PM, Mohammad Reza Sorouhesh wrote: > Dear forum, > > May I ask you how can I have the subgroup of S_4 which is isomorphic with > Z_2 X Z_2. I know that the Cayley's Theorem guaranties this event. > > Best Wishes > > M.R.Sorouhesh > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Bill.Allombert at math.u-bordeaux1.fr Tue Mar 19 19:44:28 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Tue, 19 Mar 2013 20:44:28 +0100 Subject: [GAP Forum] A Subgroup of S_4 and isomorphic with Z_2 x Z_2 In-Reply-To: References: Message-ID: <20130319194428.GA29129@yellowpig> On Tue, Mar 19, 2013 at 09:43:32PM +0430, Mohammad Reza Sorouhesh wrote: > Dear forum, > > May I ask you how can I have the subgroup of S_4 which is isomorphic with > Z_2 X Z_2. I know that the Cayley's Theorem guaranties this event. Cayley theorem give you an explicit map from Z_2 X Z_2 to S_4, you just need to compute its image. This is quite easy to do by hand. Cheers, Bill. From mckay at encs.concordia.ca Tue Mar 19 23:57:30 2013 From: mckay at encs.concordia.ca (John McKay) Date: Tue, 19 Mar 2013 19:57:30 -0400 (EDT) Subject: [GAP Forum] A Subgroup of S_4 and isomorphic with Z_2 x Z_2 In-Reply-To: References: Message-ID: No-one has mentioned that here are two classes of C2 x C2 in S4. They are: transiive V4 = wich is a normal subgroup of S4, and intransitive V4 = which is not. [Remark: Is Klein's V4 transitive, intransitive or abstract?] John McKay === On Tue, 19 Mar 2013, William DeMeo wrote: > There's probably a nicer way, but you could do > > gap> g:=SymmetricGroup(4); > gap> ccsg:=ConjugacyClassesSubgroups(g); > gap> V:=Representative(ccsg[5]); > gap> StructureDescription(V); > "C2 x C2" > > Cheers, > William > > > -- > William DeMeo > Department of Mathematics > University of South Carolina > http://williamdemeo.wordpress.com > mobile:808-298-4874 office:803-777-7510 > > > > > On Tue, Mar 19, 2013 at 1:13 PM, Mohammad Reza Sorouhesh > wrote: > > Dear forum, > > > > May I ask you how can I have the subgroup of S_4 which is isomorphic with > > Z_2 X Z_2. I know that the Cayley's Theorem guaranties this event. > > > > Best Wishes > > > > M.R.Sorouhesh > > _______________________________________________ > > 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 joachim.neubueser at t-online.de Wed Mar 20 16:18:32 2013 From: joachim.neubueser at t-online.de (=?ISO-8859-15?Q?Joachim_Neub=FCser?=) Date: Wed, 20 Mar 2013 17:18:32 +0100 Subject: [GAP Forum] suggestion re S4 etc Message-ID: <5149E158.5080302@t-online.de> Dear Forum members, The recent discussion of the question about subgroups of the symmetric group S4 that are isomorphic to the direct product of two cyclic groups of oder 2 prompts me to remind that for a detailed understanding of the subgroup structure of smaller groups GAP provides the package XGAP which allows a graphical depiction of the subgroup lattice or parts thereof and the switching from the graphical description to further group theoretical investigation of the subgroups displayed. The XGAP manual gives several examples of the use of XGAP even in cases where the complete subgroup lattice is far too big to be displayed. In the case of S4 you can nicely see what John McKay pointed out and in fact can get a good understanding of how this all works. Have fun with XGAP! Joachim Neub?ser From alexk at mcs.st-andrews.ac.uk Thu Mar 21 13:43:57 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 21 Mar 2013 13:43:57 +0000 Subject: [GAP Forum] GAP 4.6.3 release announcement Message-ID: <92A5F352-4C80-4A6B-88C3-98B617E1C32D@mcs.st-andrews.ac.uk> Dear GAP Forum, We have just released the next minor release, GAP 4.6.3, which is now available for download from the GAP website http://www.gap-system.org and eventually will be also available via alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives You may access the overview of changes in GAP 4.6.3 by entering '?Changes between GAP 4.5 and GAP 4.6' in GAP 4.6.3 and scrolling till the end of the chapter, or view it online at http://www.gap-system.org/Manuals/doc/changes/chap2.html#X7C2A78667F08A971 In addition to the improved functionality and fixed bugs in the core GAP system, GAP 4.6.3 distribution includes the new package SpynSim by L. Maas, which contains Brauer tables of Schur covers of symmetric and alternating groups and provides some related functionalities. Other packages that are updated since the previous GAP 4.6.2 release are listed below: ================================================ Package name | Version | Date ------------------------------------------------ CRISP | 1.3.6 | 13/03/2013 CTblLib | 1.2.2 | 07/03/2013 Float | 0.5.9 | 17/03/2013 Gauss | 2013.03.07 | 07/03/2013 gpd | 1.19 | 11/03/2013 GradedModules | 2013.02.07 | 07/02/2013 GradedRingForHomalg | 2013.08.07 | 07/08/2013 HAP | 1.10.10.2 | 05/03/2013 HomalgToCAS | 2013.02.22 | 22/02/2013 MatricesForHomalg | 2013.02.24 | 24/02/2013 Modules | 2013.02.10 | 10/02/2013 Polycyclic | 2.11 | 07/03/2013 PolymakeInterface | 2013.03.06 | 06/03/2013 RingsForHomalg | 2013.02.25 | 25/02/2013 ================================================ We encourage all users to upgrade to GAP 4.6.3. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we are regularly updating the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From alexk at mcs.st-andrews.ac.uk Thu Mar 21 14:25:03 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 21 Mar 2013 14:25:03 +0000 Subject: [GAP Forum] irreducible representations of the dihedral group D10 over GF(4) In-Reply-To: References: Message-ID: On 12 Jul 2012, at 17:58, Neha Makhijani wrote: > Can somebody please clarify as to why I am not able to get the irreducible > representations of the dihedral group over GF(4)?? > > IrreducibleRepresentations(DihedralGroup(10),GF(2^2)); > List Element: must be a positive integer (not a boolean) > > Thanks! > > Neha Dear Neha, Sorry it took longer than we expected to fix this. Just released GAP 4.6.3 provides the default method for AbsoluteIrreducibleModules as a temporary workaround for the problem which may cause returning wrong results or producing an error when being called for a non-prime field. As a result, your example now works: gap> IrreducibleRepresentations(DihedralGroup(10),GF(2^2)); [ [ f1, f2 ] -> [ [ [ Z(2)^0 ] ], [ [ Z(2)^0 ] ] ], [ f1, f2 ] -> [ [ [ Z(2^2), Z(2)^0 ], [ Z(2^2), Z(2^2) ] ], [ [ 0*Z(2), Z(2)^0 ], [ Z(2)^0, Z(2^2) ] ] ], [ f1, f2 ] -> [ [ [ Z(2^2)^2, Z(2^2)^2 ], [ Z(2)^0, Z(2^2)^2 ] ], [ [ Z(2^2)^2, Z(2)^0 ], [ Z(2)^0, 0*Z(2) ] ] ] ] Best wishes, Alexander From alexk at mcs.st-andrews.ac.uk Thu Mar 21 14:27:30 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 21 Mar 2013 14:27:30 +0000 Subject: [GAP Forum] AbsoluteIrreducibleModules error In-Reply-To: References: Message-ID: <47F70B2C-18CF-43C9-B89C-4C70104C632F@mcs.st-andrews.ac.uk> Dear Anvita, Thank you for reporting this bug. The same fix which I've just mentioned in the previous posting to the forum also fixes this problem. Best wishes, Alexander On 11 Dec 2012, at 07:03, Anvita wrote: > Dear Forum, > > According to the Manual, the command AbsoluteIrreducibleModules(G, F, dim) > returns a list of all absolutely irreducible modules of G over the > field F in dimension dim. > However, it seems to produce an error if the field F is not prime. > > C:=CyclicGroup(3); > AbsoluteIrreducibleModules(C,GF(4),1); > > Error, List Element: [1] must have an assigned value in > ... > > Certainly, the modules in this example are easy to find by hand, but I > first came about > this error when trying to compute a more complicated and meaningful example. > > Thank you, > Anvita > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Thu Mar 21 14:29:40 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 21 Mar 2013 14:29:40 +0000 Subject: [GAP Forum] Irreducible representation of dihedral group D20 over GF(8) In-Reply-To: References: Message-ID: P.S. This computation now works too in GAP 4.6.3 and Image(phi2,b)^2 returns an identity matrix. Thanks for reporting this bug! Best wishes, Alexander On 10 Dec 2012, at 22:04, Neha Wadhwani wrote: > Hi > > I am not able to understand if the following is actually a well defined > homomorphism! > > *G:=DihedralGroup(20);* > > > *b:=G.1*G.2;* > f1*f2 > > *b^2;* > of ... > > *phi:=IrreducibleRepresentations(G,GF(8));* > [ Pcgs([ f1, f2, f3 ]) -> [ [ [ Z(2)^0 ] ], [ [ Z(2)^0 ] ], [ [ Z(2)^0 ] ] > ], > Pcgs([ f1, f2, f3 ]) -> > [ [ [ Z(2)^0, 0*Z(2), Z(2^3), Z(2)^0 ], [ 0*Z(2), Z(2)^0, Z(2^3)^6, > Z(2^3)^3 ], [ 0*Z(2), 0*Z(2), Z(2^3), Z(2^3)^3 ], > [ 0*Z(2), 0*Z(2), Z(2^3)^2, Z(2)^0 ] ], > [ [ Z(2^3)^6, Z(2^3)^5, Z(2^3)^6, Z(2^3) ], > [ Z(2^3)^4, Z(2^3), Z(2)^0, Z(2^3)^5 ], > [ Z(2^3)^2, Z(2^3)^6, Z(2^3)^3, Z(2^3)^4 ], > [ Z(2^3)^5, Z(2)^0, Z(2^3)^3, Z(2^3)^6 ] ], > [ [ Z(2^3)^2, Z(2^3)^4, Z(2^3), 0*Z(2) ], > [ Z(2^3)^3, Z(2^3), 0*Z(2), Z(2^3) ], > [ Z(2^3), Z(2^3), Z(2^3)^3, Z(2^3)^5 ], > [ Z(2)^0, 0*Z(2), Z(2^3)^4, Z(2^3)^2 ] ] ] ] > > *phi2:=phi[2];;* > * > * > *Image(phi2,b)^2;* > [ [ Z(2^3)^6, Z(2^3)^3, 0*Z(2), 0*Z(2) ], > [ Z(2^3)^2, Z(2^3)^4, 0*Z(2), 0*Z(2) ], > [ Z(2^3)^4, Z(2^3)^3, Z(2^3), Z(2^3)^6 ], > [ Z(2^3)^2, Z(2^3)^6, Z(2^3)^5, Z(2^3)^5 ] ] > *which is not an identity matrix..* > * > * > *Please let me know if I am going wrong....* > * > * > *Thanks!* > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Fri Mar 22 08:36:47 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 22 Mar 2013 08:36:47 +0000 Subject: [GAP Forum] International Workshop "Parallel programming in GAP" Message-ID: <569480AB-7EEB-46EB-A2D5-ED0C7E0EE5A4@mcs.st-andrews.ac.uk> International Workshop "Parallel programming in GAP" August 18th-24th, 2013, University of St Andrews, Scotland http://www.gap-system.org/hpcgap2013/ The workshop is organised by the Centre of Interdisciplinary Research in Computational Algebra of the University of St Andrews. It is supported by the EPSRC project "HPC-GAP: High Performance Computational Algebra and Discrete Mathematics": http://www-circa.mcs.st-and.ac.uk/hpcgap.php In this project we are reengineering the GAP system to take advantage of computer architectures suitable for parallel computations. The workshop is organised to present the results of the project to the GAP community, and we invite everyone who is interested in parallel programming in GAP. Developers of GAP and authors of GAP packages are particularly welcome, since your contribution will be important to eventually transform the HPC-GAP version of the system into the next mainstream release. The workshop will comprise of lectures and tutorials given by the participants of the HPC-GAP project, and case studies sessions where we intend to look at some particular GAP packages and estimate main tasks needed to adapt them to HPC-GAP. We plan to allow enough time to work in small groups and have informal discussions about HPC-GAP and GAP development in general. Schedule: - August 18th (Sunday): Arrival day - August 19th-23th (Monday-Friday): Workshop - August 24th (Saturday): Departure day Registration and accommodation: The organisers will provide a limited number of B&B places in McIntosh Hall ( http://www.st-andrews.ac.uk/accommodation/ug/residences/mcintosh/ ). These will be provided free of charge and will be allocated on a first come - first served basis, so early registration is advised. If there will be larger demand for accommodation, we will help you to find another place to stay and will partially contribute towards the costs of your accommodation. We regret that there is no support available for daily expenses and travel. To register, please send your contact details to organisers by email to hpcgap2013 at gap-system.org Deadlines: - for the full registration: July 15th 2013 - for the non-residential registration: August 5th 2013 Organisers: - Steve Linton - Reimer Behrends - Vladimir Janjic - Alexander Konovalov - John McDermott - Angela Miguel - Max Neunh?ffer --- Note that other events in St Andrews in 2013 include: * Groups St Andrews 2013: 3rd-11th August http://www.groupsstandrews.org/2013/ * Computational Group Theory (LMS/EPSRC Short Instructional Course): 29th July-2nd August http://www-circa.mcs.st-and.ac.uk/cgt2013/ From robert.bailey at ryerson.ca Fri Mar 22 18:24:10 2013 From: robert.bailey at ryerson.ca (Robert Bailey) Date: Fri, 22 Mar 2013 14:24:10 -0400 Subject: [GAP Forum] Reading strongly regular graphs into GAP Message-ID: <1363976650.1613.159.camel@mathadmin-desktop> Dear Forum, This is perhaps not strictly a GAP question, but anyway.... I've been working on some computations in GAP (using the GRAPE and other packages), testing certain properties of distance-regular and strongly regular graphs. (I can go into more detail if necessary--but the SetOrbit package of Pech and Reichard has been especially useful.) There is an online catalogue of strongly regular graphs on Ted Spence's webpage: http://www.maths.gla.ac.uk/~es/srgraphs.php The graphs are given by their adjacency matrices; however, as given these matrices are not immediately readable by GAP. Does anyone know of an easy way to convert them into the right format (i.e. adding the commas and brackets)? For cases where there are a small number of graphs, I've been able to do search/replace in a text editor to add the commas, then add the brackets manually---but this isn't really feasible when there are 32,548 matrices of size 36x36. Thanks, Robert Bailey. -- Dr. Robert Bailey Department of Mathematics Ryerson University 350 Victoria St. Toronto, Ontario M5B 2K3 Canada Office: EPH 442B Telephone: +1 416-979-5000 x2874 Web: www.math.ryerson.ca/~rbailey From mathieu.dutour at gmail.com Fri Mar 22 18:53:37 2013 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Fri, 22 Mar 2013 19:53:37 +0100 Subject: [GAP Forum] Reading strongly regular graphs into GAP In-Reply-To: <1363976650.1613.159.camel@mathadmin-desktop> References: <1363976650.1613.159.camel@mathadmin-desktop> Message-ID: The basic strategy in that case is that you write a perl script that reads as input the file from Spence web page and then write as output in a format that GAP can read. You can of course use Python or any other language that has good text capabilities. Mathieu On Fri, Mar 22, 2013 at 7:24 PM, Robert Bailey wrote: > Dear Forum, > > This is perhaps not strictly a GAP question, but anyway.... > > I've been working on some computations in GAP (using the GRAPE and other > packages), testing certain properties of distance-regular and strongly > regular graphs. (I can go into more detail if necessary--but the > SetOrbit package of Pech and Reichard has been especially useful.) > > There is an online catalogue of strongly regular graphs on Ted Spence's > webpage: > http://www.maths.gla.ac.uk/~es/srgraphs.php > > The graphs are given by their adjacency matrices; however, as given > these matrices are not immediately readable by GAP. Does anyone know of > an easy way to convert them into the right format (i.e. adding the > commas and brackets)? For cases where there are a small number of > graphs, I've been able to do search/replace in a text editor to add the > commas, then add the brackets manually---but this isn't really feasible > when there are 32,548 matrices of size 36x36. > > Thanks, > Robert Bailey. > > -- > Dr. Robert Bailey > Department of Mathematics > Ryerson University > 350 Victoria St. > Toronto, Ontario M5B 2K3 > Canada > > Office: EPH 442B > Telephone: +1 416-979-5000 x2874 > Web: www.math.ryerson.ca/~rbailey > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From hulpke at math.colostate.edu Fri Mar 22 19:13:37 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 22 Mar 2013 13:13:37 -0600 Subject: [GAP Forum] Reading strongly regular graphs into GAP In-Reply-To: <1363976650.1613.159.camel@mathadmin-desktop> References: <1363976650.1613.159.camel@mathadmin-desktop> Message-ID: <11C76D8B-7228-4E14-AB83-BCDFFD11AD6C@math.colostate.edu> Dear Forum, Dear Robert Bailey, > This is perhaps not strictly a GAP question, but anyway.... > > I've been working on some computations in GAP (using the GRAPE and other > packages), testing certain properties of distance-regular and strongly > [...] > > The graphs are given by their adjacency matrices; however, as given > these matrices are not immediately readable by GAP. Does anyone know of > an easy way to convert them into the right format As Mathieu Dutour already wrote, the classical method is to coax your favorite P-named language (Perl, Python) to parse these matrices so that you get a valid GAP input file. However you can also read in the file line by line to GAP and write a small routine to parse the data. Personally (with the bias that I know GAP far better than Perl or Python) I find this easier. For example the appended program can be used to read in the lists of adjacency matrices as given on this web page, the function call a:=ReadMatrixList("PathTofilename");; returns a list of the adjacency matrices over Q. (You can probably take it from there.) At the moment the function assumes single digits but it should be easy to adapt to more complicated formats. (This function ought to work also under Windows, but as usual you need to be careful how to specify the path.) I hope this is of help, Alexander Hulpke # the promised function ReadMatrixList:=function(file) local l,f,m,row; l:=[]; f:=InputTextFile(file); m:=fail; while not IsEndOfStream(f) do row:=ReadLine(f); if row<>fail then row:=Chomp(row); # remove CR,LF row:=Filtered(row,x->x<>' '); # remove blanks if Length(row)=0 then # new matrix if m<>fail and Length(m)>0 then Add(l,m);fi; m:=[]; elif IsSubset(DIGITS,row) then # new row row:=List(row,x->Int([x])); Add(m,row); else Print("#I ",row,"\n"); # non parsed row fi; fi; od; CloseStream(f); if m<>fail and Length(m)>0 then Add(l,m);fi; return l; 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 robert.bailey at ryerson.ca Fri Mar 22 19:15:43 2013 From: robert.bailey at ryerson.ca (Robert Bailey) Date: Fri, 22 Mar 2013 15:15:43 -0400 Subject: [GAP Forum] Reading strongly regular graphs into GAP In-Reply-To: References: <1363976650.1613.159.camel@mathadmin-desktop> Message-ID: Thanks for the reply. I suspected that this might be the answer--the problem is I have no knowledge of perl or Python or such languages. What I was hoping was that someone might have a suitable piece of code lying around already..... Thanks again, Robert. ----- Original Message ----- From: Mathieu Dutour Date: Friday, March 22, 2013 2:53 pm Subject: Re: [GAP Forum] Reading strongly regular graphs into GAP To: Robert Bailey Cc: GAP forum > The basic strategy in that case is that you write a perl > script that reads as input the file from Spence web page > and then write as output in a format that GAP can read. > > You can of course use Python or any other language that > has good text capabilities. > > Mathieu > > > On Fri, Mar 22, 2013 at 7:24 PM, Robert Bailey wrote: > > > Dear Forum, > > > > This is perhaps not strictly a GAP question, but anyway.... > > > > I've been working on some computations in GAP (using the GRAPE and > other > > packages), testing certain properties of distance-regular and strongly > > regular graphs. (I can go into more detail if necessary--but the > > SetOrbit package of Pech and Reichard has been especially useful.) > > > > There is an online catalogue of strongly regular graphs on Ted Spence's > > webpage: > > http://www.maths.gla.ac.uk/~es/srgraphs.php > > > > The graphs are given by their adjacency matrices; however, as given > > these matrices are not immediately readable by GAP. Does anyone > know of > > an easy way to convert them into the right format (i.e. adding the > > commas and brackets)? For cases where there are a small number of > > graphs, I've been able to do search/replace in a text editor to add > the > > commas, then add the brackets manually---but this isn't really feasible > > when there are 32,548 matrices of size 36x36. > > > > Thanks, > > Robert Bailey. > > > > -- > > Dr. Robert Bailey > > Department of Mathematics > > Ryerson University > > 350 Victoria St. > > Toronto, Ontario M5B 2K3 > > Canada > > > > Office: EPH 442B > > Telephone: +1 416-979-5000 x2874 > > Web: www.math.ryerson.ca/~rbailey > > > > > > _______________________________________________ > > Forum mailing list > > Forum at mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > From robert.bailey at ryerson.ca Fri Mar 22 19:19:39 2013 From: robert.bailey at ryerson.ca (Robert Bailey) Date: Fri, 22 Mar 2013 15:19:39 -0400 Subject: [GAP Forum] Reading strongly regular graphs into GAP In-Reply-To: References: <1363976650.1613.159.camel@mathadmin-desktop> Message-ID: > What I was hoping was that someone might have a suitable piece of > code lying around already..... > .....like the one Alexander Hulpke just provided. Apologies for the cross-posting. > -- > Dr. Robert Bailey > Department of Mathematics > Ryerson University > 350 Victoria St. > Toronto, Ontario M5B 2K3 > Canada > > Office: EPH 442B > Telephone: +1 416-979-5000 x2874 > Web: www.math.ryerson.ca/~rbailey > From max at quendi.de Fri Mar 22 19:25:43 2013 From: max at quendi.de (Max Horn) Date: Fri, 22 Mar 2013 20:25:43 +0100 Subject: [GAP Forum] Reading strongly regular graphs into GAP In-Reply-To: References: <1363976650.1613.159.camel@mathadmin-desktop> Message-ID: On 22.03.2013, at 19:53, Mathieu Dutour wrote: > The basic strategy in that case is that you write a perl > script that reads as input the file from Spence web page > and then write as output in a format that GAP can read. > > You can of course use Python or any other language that > has good text capabilities. Actually, it would be rather easy to read the files with GAP itself, there is no need to involve Perl or Python. The adjacency matrices just consist of a Indeed, if you wanted to be really fancy, you could even write a GAP program which downloads those files directly from the website (e.g. using the IO packages). Although that would probably overkill for this purpose ;-). Here is an example for parsing one of the files (the one named 64-18-2-6): adj_mats := []; stream := InputTextFile("64-18-2-6"); # Read first line, containing data like # dim = 64, degree = 18, lambda = 2, mu = 6 # We could parse it, but to keep things simple, let's just skip it and the empty # line after it. ReadLine(stream); ReadLine(stream); # Now start parsing while not IsEndOfStream(stream) do # Read in next matrix adj := []; while not IsEndOfStream(stream) do line := Chomp(ReadLine(stream)); if line = fail or IsEmpty(line) then if not IsEmpty(adj) then Add(adj_mats, adj); fi; break; fi; if not ForAll(line, x -> x in "01") then break; # "garbage", e.g. a line with text fi; Add(adj, List(line, x -> Position("01", x)-1)); od; od; CloseStream(stream); Cheers, Max From ljj198123 at 126.com Sun Mar 24 06:43:18 2013 From: ljj198123 at 126.com (=?GBK?B?wfW9qL78?=) Date: Sun, 24 Mar 2013 14:43:18 +0800 (CST) Subject: [GAP Forum] About maximal normal p'-subgroup In-Reply-To: <5348288.192691249020540921.JavaMail.coremail@bj126app59.126.com> References: <5348288.192691249020540921.JavaMail.coremail@bj126app59.126.com> Message-ID: Dear forum, Let G be a finite group. I would like to know how we can compute the maximal normal p'-subgroup of G in gap. Is there a method to get it? Best wishes Jianjun Liu From resteban at mat.upv.es Sun Mar 24 13:38:39 2013 From: resteban at mat.upv.es (Ramon Esteban-Romero) Date: Sun, 24 Mar 2013 14:38:39 +0100 Subject: [GAP Forum] About maximal normal p'-subgroup In-Reply-To: References: <5348288.192691249020540921.JavaMail.coremail@bj126app59.126.com> Message-ID: <514F01DF.4020102@mat.upv.es> Dear forum, dear Jianjun, One possibility, if there are methods to compute Sylow p-complements (for instance, in soluble groups), is to compute the core of one of these p-complements or Hall p'-subgroups: Core(g, SylowComplement(g,p)); Best wishes, -- Ramon Al 24/03/13 07:43, En/na ??? ha escrit: > > > Dear forum, > > Let G be a finite group. I would like to know how we can compute the maximal normal p'-subgroup of G in gap. > Is there a method to get it? > Best wishes > Jianjun Liu > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Bill.Allombert at math.u-bordeaux1.fr Mon Mar 25 18:23:34 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Mon, 25 Mar 2013 19:23:34 +0100 Subject: [GAP Forum] building new group law from old one Message-ID: <20130325182334.GL23868@yellowpig> Dear GAP forum, Let (G,.) a group such that [G,[G,G]] = 0. I like to define a new group law * such that a*b = ab[a,b]. It can be proven that (G,*) is also a group. What is the nicest way to define (G,*) in GAP ? (I like to check whether (G,.) and (G,*) are isomorphic). Cheers, Bill. From alexk at mcs.st-andrews.ac.uk Mon Mar 25 22:46:15 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 25 Mar 2013 22:46:15 +0000 Subject: [GAP Forum] building new group law from old one In-Reply-To: <20130325182334.GL23868@yellowpig> References: <20130325182334.GL23868@yellowpig> Message-ID: Dear Bill, dear Forum, On 25 Mar 2013, at 18:23, Bill Allombert wrote: > Dear GAP forum, > > Let (G,.) a group such that [G,[G,G]] = 0. > I like to define a new group law * such that > a*b = ab[a,b]. It can be proven that (G,*) is also a group. > > What is the nicest way to define (G,*) in GAP ? > (I like to check whether (G,.) and (G,*) are isomorphic). > > Cheers, > Bill. What about using ArithmeticElementCreator (see ?ArithmeticElementCreator). For example, specify operations as follows: gap> law:=rec( > ElementName:="MyLaw", > One:= a -> One(a), > Multiplication:=function(a,b) return a*b*(a^-1*b^-1*a*b);end, > Inverse:= a -> a^-1, > MathInfo:=IsMultiplicativeElementWithInverse);; gap> wrap:=ArithmeticElementCreator(law); function( x ) ... end Then create a group: gap> G:=DihedralGroup(8); gap> g:=AsList(G); [ of ..., f1, f2, f3, f1*f2, f1*f3, f2*f3, f1*f2*f3 ] Now let's wrap all elements of G into new multiplicative elements and generate a group using all of them (don't know if I can take the same generators; in larger example one can try to do successive closures, if need be): gap> t:=List(g,wrap); [ of ..., f1, f2, f3, f1*f2, f1*f3, f2*f3, f1*f2*f3 ] gap> H:=Group(t); #I default `IsGeneratorsOfMagmaWithInverses' method returns `true' for [ of ..., f1, f2, f3, f1*f2, f1*f3, f2*f3, f1*f2*f3 ] The warning may be ignored. Now we see that in this example H is isomorphic to G: gap> IdGroup(H); [ 8, 3 ] If your groups are very large, maybe a more low level approach would be needed, and isomorphism check will be tricker, but hope that the example above may help. Best wishes, Alexander From L.H.Soicher at qmul.ac.uk Wed Apr 3 12:01:15 2013 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Wed, 3 Apr 2013 12:01:15 +0100 Subject: [GAP Forum] Combinatorics, Algebra, and More. Second announcement. Message-ID: <20130403110115.GA21110@maths.qmul.ac.uk> Dear GAP-Forum, I hope that many of you know Peter Cameron and his many contributions to combinatorics and group theory, including computation, and would be interested in this conference in his honour. Best wishes, Leonard Second announcement: Combinatorics, Algebra, and More: a Conference in Celebration of Peter Cameron 8-10 July 2013 (arrival 7 July, departure 11 July) Queen Mary, University of London, UK See http://www.maths.qmul.ac.uk/~camconf/ for more information and from where you can register, book on-site accommodation, and reserve a place at the conference dinner. * Early-bird reduced rate registration fees end after Thursday April 4th. * Reduced rates for all PhD students. * PhD students based in the UK without official funding for conference attendance should email the conference organisers (camconf at maths.qmul.ac.uk) to request funding for travel and accommodation. * Please forward this announcement to anyone you think may be interested. * Thank you if you have already registered! From pjc at mcs.st-and.ac.uk Mon Apr 1 12:35:04 2013 From: pjc at mcs.st-and.ac.uk (Peter Cameron) Date: Mon, 1 Apr 2013 12:35:04 +0100 Subject: [GAP Forum] O'Nan--Scott type Message-ID: <20130401113504.GA28928@chrystal.mcs.st-andrews.ac.uk> Dear Forum, I have a question about the O'Nan--Scott type of a primitive group; I would appreciate advice. I hope the forum i s the right place to ask this. The GAP function ONanScottType classifies primitive permutation groups into eight types, of which the first is "affine". My view of the O'Nan--Sccott theorem is a bit different. It is, first, a reduction for primitive groups, rather like the reduction from transitive to primitive. Call a primitive group G on Omega "non-basic" if it preserves a Cartesian product structure on Omega, i.e. an identification of Omega with A^B for some sets A,B such that G is identified with a subgroup of Sym(A) wr Sym(B) with the product action. Now a non-basic group is of wreath product or twisted wreath product type, and a basic group of affine, diagonal or almost simple type. Except for a small problem. For example, the group PrimitiveGroup(25,5), the wreath product of D(10) with Sym(2), has ONanScottType(PrimitiveGroup(25,5))="1" (i.e. affine), even though this group is not basic. For applications to synchronization and other things, I need to be able to identify the non-basic groups, and ONanScottType won't do this for affine groups. I would like a function IsBasic, similar to IsPrimitive. It seems to me that there are several possibilities: 1. Perhaps this problem is already solved by some GAP code, or can be easily solved by existing technology. 2. Maybe I could take some of the code for ONanScottType and adapt it. 3. If G is affine then it has the form p^n:H, where H is an irreducible linear group; G is basic if and only if H is primitive (i.e. not in Aschbacher class 2). I could construct the linear group and use matrix group code to test this. 4. Maybe I should just write a bare-hands program to do this. Any thoughts? Peter. From glebsky at cactus.iico.uaslp.mx Mon Apr 8 19:11:47 2013 From: glebsky at cactus.iico.uaslp.mx (glebsky at cactus.iico.uaslp.mx) Date: Mon, 8 Apr 2013 13:11:47 -0500 (CDT) Subject: [GAP Forum] something wrong with NewmanInfinityCriterion? Message-ID: <46080.201.141.124.241.1365444707.squirrel@cactus.iico.uaslp.mx> Well.. It is known that the groups M(a,b,c)= are finite (see for example D.L. Johnson Presentations of groups, Ch.7, exercise 16). (Here a,b,c are natural numbers, x^y=y^(-1)*x*y.) But running GAP (inside SAGE) I have got: sage: f:=FreeGroup("a","b","c"); sage: G:=f/[f.2^-1*f.1*f.2*f.1^-4,f.3^-1*f.2*f.3*f.2^-4,f.1^-1*f.3*f.1*f.3^-4]; sage: AbelianInvariants(G); [ 3, 3, 3 ] sage: NewmanInfinityCriterion(G,3) true Looks wrong? As far as I understand, passing NewmanInfinityCriterion(G,3) meens that G has arbitrary large homomorphic images in 3-groups. It seems to contradict with the following (G is the same as above): sage: G3:=PQuotient(G,3); sage: h3:=EpimorphismQuotientSystem(G3); <3-quotient system of 3-class 4 with 9 generators> [ a, b, c ] -> [ a1, a2, a3 ] sage: G3:=Image(h3) I am new user of the GAP. I starting to play with a GAP inside SAGE, 4.4.2, Lev. From hulpke at math.colostate.edu Mon Apr 8 19:43:19 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 8 Apr 2013 12:43:19 -0600 Subject: [GAP Forum] something wrong with NewmanInfinityCriterion? In-Reply-To: <46080.201.141.124.241.1365444707.squirrel@cactus.iico.uaslp.mx> References: <46080.201.141.124.241.1365444707.squirrel@cactus.iico.uaslp.mx> Message-ID: <9DDE6ECD-A560-4CB4-825C-90AB7D0A11F3@math.colostate.edu> Dear Lev Glebsky, Thank you very much for this bug report. It was prompted by a misprint in a book and will be fixed in the next release of GAP. Regards, Alexander Hulpke On Apr 8, 2013, at 4/8/13 12:11, glebsky at cactus.iico.uaslp.mx wrote: > Well.. It is known that the groups > M(a,b,c)= are finite (see for example > D.L. Johnson Presentations of groups, Ch.7, exercise 16). > (Here a,b,c are natural numbers, x^y=y^(-1)*x*y.) > > But running > GAP (inside SAGE) I have got: > > sage: f:=FreeGroup("a","b","c"); > sage: > G:=f/[f.2^-1*f.1*f.2*f.1^-4,f.3^-1*f.2*f.3*f.2^-4,f.1^-1*f.3*f.1*f.3^-4]; > > > sage: AbelianInvariants(G); > [ 3, 3, 3 ] > sage: NewmanInfinityCriterion(G,3) > true > > Looks wrong? As far as I understand, passing NewmanInfinityCriterion(G,3) > meens that G has arbitrary large homomorphic images in 3-groups. It seems > to contradict with the following (G is the same as above): > > sage: G3:=PQuotient(G,3); > sage: h3:=EpimorphismQuotientSystem(G3); > <3-quotient system of 3-class 4 with 9 generators> > [ a, b, c ] -> [ a1, a2, a3 ] > sage: G3:=Image(h3) > > > I am new user of the GAP. I starting to play with a GAP inside SAGE, 4.4.2, > > Lev. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Bill.Allombert at math.u-bordeaux1.fr Mon Apr 8 19:47:08 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Mon, 8 Apr 2013 20:47:08 +0200 Subject: [GAP Forum] something wrong with NewmanInfinityCriterion? In-Reply-To: <46080.201.141.124.241.1365444707.squirrel@cactus.iico.uaslp.mx> References: <46080.201.141.124.241.1365444707.squirrel@cactus.iico.uaslp.mx> Message-ID: <20130408184708.GA31366@yellowpig> On Mon, Apr 08, 2013 at 01:11:47PM -0500, glebsky at cactus.iico.uaslp.mx wrote: > Well.. It is known that the groups > M(a,b,c)= are finite (see for example > D.L. Johnson Presentations of groups, Ch.7, exercise 16). > (Here a,b,c are natural numbers, x^y=y^(-1)*x*y.) At least M(1,1,1) is infinite. Cheers, Bill. From marek at mitros.org Wed Apr 10 10:42:05 2013 From: marek at mitros.org (Marek Mitros) Date: Wed, 10 Apr 2013 11:42:05 +0200 Subject: [GAP Forum] 3-transposition groups Message-ID: Dear Forum, I have read in wikipedia that there are following 3-transposition groups. See below quote from wikipedia article on "3-transposition groups". I have no problem to obtain in GAP groups SO(1,n,2), Omega(1,n,2), PSU(n,2), Sp(n,2). I can also define Fischer groups Fi22, Fi23, Fi24 using Atlas package. I have only trouble with O+-(2n,3) case. E.g. neither SO(1,6,3) nor Omega (1,6,3) is 3-transposition group. What is the way to define the 3-transposition group defined under case O?, ?(*n*, 3) below. Regards, Marek ---------------------------------- Suppose that *G* is a group that is generated by conjugacy class of 3-transpositions and such that the 2 and 3 cores *O*2(*G*) and *O*3(*G*) are both contained in the center *Z*(*G*) of *G*and the derived group of *G* is perfect. Then Fischer (1971) proved that up to isomorphism *G*/*Z*(*G*) is one of the following groups and *D* is the image of the given conjugacy class: - *G*/*Z*(*G*) is a symmetric group *Sn*, and *D* is the class of transpositions. - *G*/*Z*(*G*) is a symplectic group Sp(2*n*, 2) over the field of order 2, and *D* is the class of transvections - *G*/*Z*(*G*) is a projective special unitary group PSU(*n*, 2), and *D*is the class of transvections - *G*/*Z*(*G*) is an orthogonal group O?(2*n*, 2), and *D* is the class of transvections - *G*/*Z*(*G*) is an index 2 subgroup O?, ?(*n*, 3) of the orthogonal group O?(*n*, 3) generated by the class *D* of reflections of norm ? vectors, where ? and ? can be 1 or -1. - *G*/*Z*(*G*) is one of the three Fischer groupsFi 22, Fi23, Fi24. If the condition that the derived group of *G* is perfect is dropped there are two extra cases: - *G*/*Z*(*G*) is one of two groups containing on orthogonal group O+(8, 2) or O-(8, 3) with index 3. From sam at Math.RWTH-Aachen.De Wed Apr 10 12:52:06 2013 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Wed, 10 Apr 2013 13:52:06 +0200 Subject: [GAP Forum] 3-transposition groups In-Reply-To: References: Message-ID: <20130410115206.GA25943@gemma.math.rwth-aachen.de> Dear Marek, the group GO(+1,6,3) has the structure 2 x PGO(+1,6,3). The group in question is PGO(+1,6,3), which is called L4(3).2_2 in the ATLAS of Finite Groups. In GAP, you can construct the group for example as the permutation group obtained from the projective action of GO(+1,6,3), or as `PrimitiveGroup( 117, 3 )'. The group GO(-1,6,3) has the structure 2.U_4(3).(2^2)_{122}, using ATLAS notation. The group in question is U_4(3).2_2. In GAP, it can be obtained for example as `PrimitiveGroup( 126, 8 )'. All the best, Thomas On Wed, Apr 10, 2013 at 11:42:05AM +0200, Marek Mitros wrote: > Dear Forum, > > I have read in wikipedia that there are following 3-transposition groups. > See below quote from wikipedia article on "3-transposition groups". I have > no problem to obtain in GAP groups SO(1,n,2), Omega(1,n,2), PSU(n,2), > Sp(n,2). I can also define Fischer groups Fi22, Fi23, Fi24 using Atlas > package. I have only trouble with O+-(2n,3) case. E.g. neither SO(1,6,3) > nor Omega (1,6,3) is 3-transposition group. What is the way to define the > 3-transposition group defined under case O?, ?(*n*, 3) below. > > > Regards, > Marek > > ---------------------------------- > > > Suppose that *G* is a group that is generated by conjugacy class of > 3-transpositions and such that the 2 and 3 > cores > *O*2(*G*) and *O*3(*G*) are both contained in the center *Z*(*G*) of > *G*and the derived group of > *G* is perfect. Then Fischer > (1971) > proved that up to isomorphism *G*/*Z*(*G*) is one of the following groups > and *D* is the image of the given conjugacy class: > > - *G*/*Z*(*G*) is a symmetric group *Sn*, and *D* is the class of > transpositions. > - *G*/*Z*(*G*) is a symplectic group Sp(2*n*, 2) over the field of order > 2, and *D* is the class of transvections > - *G*/*Z*(*G*) is a projective special unitary group PSU(*n*, 2), > and *D*is the class of transvections > - *G*/*Z*(*G*) is an orthogonal group O?(2*n*, 2), and *D* is the class > of transvections > - *G*/*Z*(*G*) is an index 2 subgroup O?, ?(*n*, 3) of the orthogonal > group O?(*n*, 3) generated by the class *D* of reflections of norm ? > vectors, where ? and ? can be 1 or -1. > - *G*/*Z*(*G*) is one of the three Fischer > groupsFi > 22, Fi23, Fi24. > > If the condition that the derived group of *G* is perfect is dropped there > are two extra cases: > > - *G*/*Z*(*G*) is one of two groups containing on orthogonal group O+(8, > 2) or O-(8, 3) with index 3. From member at linkedin.com Fri Apr 12 03:26:48 2013 From: member at linkedin.com (Alireza Abdollahi via LinkedIn) Date: Fri, 12 Apr 2013 02:26:48 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <1762105033.5760490.1365733608513.JavaMail.app@ela4-app0134.prod> LinkedIn ------------ Alireza Abdollahi requested to add you as a connection on LinkedIn: ------------------------------------------ Guang, I'd like to include you in my network to share updates and stay in touch. - Alireza Accept invitation from Alireza Abdollahi http://www.linkedin.com/e/m6t9ff-hfeqj0oa-2m/yyKiECF05t8gMi_bE2jdiMBKEidJE6s_/blk/I306777701_140/e39SrCAJoS5vrCAJoyRJtCVFnSRJrScJr6RBfnhv9ClRsDgZp6lQs6lzoQ5AomZIpn8_c3gNnP4MdPsTdPoMcQALiCBcs3h4rQwLcPsVcz0QdP0Qcz4LrCBxbOYWrSlI/eml-comm_invm-b-in_ac-inv28/?hs=false&tok=1E5ExMsX7OkBI1 View profile of Alireza Abdollahi http://www.linkedin.com/e/m6t9ff-hfeqj0oa-2m/rso/225450080/Y6Oa/name/143234312_I306777701_140/?hs=false&tok=0eng-V4FTOkBI1 ------------------------------------------ You are receiving Invitation emails. This email was intended for Guang Rao. Learn why this is included: http://www.linkedin.com/e/m6t9ff-hfeqj0oa-2m/plh/http%3A%2F%2Fhelp%2Elinkedin%2Ecom%2Fapp%2Fanswers%2Fdetail%2Fa_id%2F4788/-GXI/?hs=false&tok=34fc-_qojOkBI1 (c) 2012, LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. From member at linkedin.com Fri Apr 12 03:27:11 2013 From: member at linkedin.com (Alireza Abdollahi via LinkedIn) Date: Fri, 12 Apr 2013 02:27:11 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <21337448.11648058.1365733631243.JavaMail.app@ela4-app0128.prod> LinkedIn ------------ Alireza Abdollahi requested to add you as a connection on LinkedIn: ------------------------------------------ seyed sadegh, I'd like to include you in my network to share updates and stay in touch. - Alireza Accept invitation from Alireza Abdollahi http://www.linkedin.com/e/-tcyca4-hfeqji7n-5j/LuyDInEhG62yDjpkna1srHJVA3WJD4oXPkn_Wux/blk/I306777912_140/e39SrCAJoS5vrCAJoyRJtCVFnSRJrScJr6RBfnhv9ClRsDgZp6lQs6lzoQ5AomZIpn8_c3gNnP8NejsTdPoMcQALmmwQol9opnoLcz0Sc34QdP0Qcz4LrCBxbOYWrSlI/eml-comm_invm-b-in_ac-inv28/?hs=false&tok=2_qJlpvsbPkBI1 View profile of Alireza Abdollahi http://www.linkedin.com/e/-tcyca4-hfeqji7n-5j/rso/225450080/Y6Oa/name/143378654_I306777912_140/?hs=false&tok=07RhFn6uHPkBI1 ------------------------------------------ You are receiving Invitation emails. This email was intended for seyed sadegh salehi amiri. Learn why this is included: http://www.linkedin.com/e/-tcyca4-hfeqji7n-5j/plh/http%3A%2F%2Fhelp%2Elinkedin%2Ecom%2Fapp%2Fanswers%2Fdetail%2Fa_id%2F4788/-GXI/?hs=false&tok=1gFYQY8wjPkBI1 (c) 2012, LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. From graham.ellis at nuigalway.ie Mon Apr 15 17:51:38 2013 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Mon, 15 Apr 2013 17:51:38 +0100 Subject: [GAP Forum] 2-year lectureship at Galway References: <20130410115206.GA25943@gemma.math.rwth-aachen.de> Message-ID: <47C2E007B3E98F4E8BBC7997F007CE13107718CC@EVS1.ac.nuigalway.ie> Applications are invited for appointment as a Lecturer Fixed Term in Mathematics at NUI Galway for the period 1st September 2013 to 31st August 2015. We are looking for someone with interests in an area of algebra, geometry or topology. The application form can be found here: http://www.nuigalway.ie/media/nuigalwayie/content/files/hr/lecturer-fixed-term-mathematics.doc If you'd like further details on the duties of the post please do contact me. Graham e-mail: graham.ellis at nuigalway.ie tel: +353 91 493011 School of Mathematics, Statistics and Applied Mathematics National University of Ireland, Galway http://hamilton.nuigalway.ie From luizrobertomeier at gmail.com Thu Apr 18 12:25:07 2013 From: luizrobertomeier at gmail.com (Luiz Meier) Date: Thu, 18 Apr 2013 08:25:07 -0300 Subject: [GAP Forum] Basic help on output (MultiplicationTable) Message-ID: Hello people, I'm reading and testing the book: Abstract Algebra - An Interactive Approach (Mathematica and GAP) Paulsen (CRC) ISBN: I'm using GAP 4.5.7 inside SAGE 5.8 (in Fedora 17 64bits) also in VirtualBox (Win 7 64bits). OBS.: The book uses the command MultTable (when it was changed to MultiplicationTable command?) Question: When I use the command (just to test): gap> MultiplicationTable([0..9]) in the book I read: +|0 1 2 3 4 5 6 7 8 9 -+---------------------------- 0|0 1 2 3 4 5 6 7 8 9 1|1 2 3 4 5 6 7 8 9 0 2|2 3 4 5 6 7 8 9 0 1 3|3 4 5 6 7 8 9 0 1 2 4|4 5 6 7 8 9 0 1 2 3 5|5 6 7 8 9 0 1 2 3 4 6|6 7 8 9 0 1 2 3 4 5 7|7 8 9 0 1 2 3 4 5 6 8|8 9 0 1 2 3 4 5 6 7 9|9 0 1 2 3 4 5 6 7 8 But instead of it, I get: [ [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 1, 3, 5, 7, 9, fail, fail, fail, fail, fail ], [ 1, 4, 7, 10, fail, fail, fail, fail, fail, fail ], [ 1, 5, 9, fail, fail, fail, fail, fail, fail, fail ], [ 1, 6, fail, fail, fail, fail, fail, fail, fail, fail ], [ 1, 7, fail, fail, fail, fail, fail, fail, fail, fail ], [ 1, 8, fail, fail, fail, fail, fail, fail, fail, fail ], [ 1, 9, fail, fail, fail, fail, fail, fail, fail, fail ], [ 1, 10, fail, fail, fail, fail, fail, fail, fail, fail ] ] What am I doing wrong? Where can I found informations about such simple things to avoid to bore you all? Thank you all in advance. -- *Luiz Roberto Meier* -- From generalrao at hotmail.com Sat Apr 20 15:18:04 2013 From: generalrao at hotmail.com (=?gb2312?B?yMS54w==?=) Date: Sat, 20 Apr 2013 22:18:04 +0800 Subject: [GAP Forum] Command for listing the generators of a given group Message-ID: Dear forum, I am having trouble in finding the command for displaying the generators of a given group. Any help would be appreciated. Regards, Grant From sandeepr.murthy at gmail.com Sat Apr 20 15:26:25 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Sat, 20 Apr 2013 15:26:25 +0100 Subject: [GAP Forum] Command for listing the generators of a given group In-Reply-To: References: Message-ID: Hi The command GeneratorsOfGroup( G ) return a list of generators of a group G. Sandeep On 20 Apr 2013, at 15:18, ?? wrote: > Dear forum, > > I am having trouble in finding the command for displaying the generators of a given group. Any help would be appreciated. > > Regards, > Grant > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From e.obrien at auckland.ac.nz Thu Apr 25 00:21:46 2013 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Thu, 25 Apr 2013 11:21:46 +1200 Subject: [GAP Forum] using nq package in GAP Message-ID: <5178690A.7050601@auckland.ac.nz> Dear Forum: I am attempting to use the "nq"package as part of GAP, Version 4.6.2 of 02-Feb-2013under Linux. It is installed in directory /usr/local/gap/pkg/nq-2.2 The package is compiled and the executable is available. forder% dir bin/x86_64-unknown-linux-gnu-gcc/nq But RequirePackage ("nq") fails. The following seems to be the culprit. gap> path := DirectoriesPackagePrograms( "nq" ); [ dir("/usr/local/gap4r6/pkg/nq-2.4/bin/x86_64-unknown-linux-gnu-gcc-default64\ /") ] Why nq-2.4? The directory is nq-2.2? Any suggestions are welcome. Thanks. Eamonn From alexk at mcs.st-and.ac.uk Thu Apr 25 00:42:00 2013 From: alexk at mcs.st-and.ac.uk (Alexander Konovalov) Date: Thu, 25 Apr 2013 00:42:00 +0100 Subject: [GAP Forum] using nq package in GAP In-Reply-To: <5178690A.7050601@auckland.ac.nz> References: <5178690A.7050601@auckland.ac.nz> Message-ID: Dear Eamonn, nq-2.4 is dated January 12th 2012 and is included in GAP 4.6.2 distribution - please see an overview listing all versions of packages that were included here: http://www.gap-system.org/Releases/4.6.2.html#gap4r6p2_2013_02_02-01_00 One path below has directory 'gap' while the other one - 'gap4r6', maybe that is a problem and gap4r6/pkg/nq-2.4 is not compiled? Best wishes, Alexander On 25 Apr 2013, at 00:21, Eamonn O'Brien wrote: > Dear Forum: > > I am attempting to use the "nq"package as part of > GAP, Version 4.6.2 of 02-Feb-2013under Linux. > > It is installed in directory /usr/local/gap/pkg/nq-2.2 > > The package is compiled and the executable is available. > forder% dir bin/x86_64-unknown-linux-gnu-gcc/nq > > But RequirePackage ("nq") fails. > > The following seems to be the culprit. > > gap> path := DirectoriesPackagePrograms( "nq" ); > [ dir("/usr/local/gap4r6/pkg/nq-2.4/bin/x86_64-unknown-linux-gnu-gcc-default64\ > /") ] > > Why nq-2.4? The directory is nq-2.2? > > Any suggestions are welcome. > > Thanks. > Eamonn > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From fvanhove at cage.UGent.be Fri Apr 26 07:34:38 2013 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Fri, 26 Apr 2013 08:34:38 +0200 Subject: [GAP Forum] GRAPE: maximal cliques of given size? Message-ID: <517A1FFE.2010908@cage.UGent.be> Dear members of the forum, I have a question on cliques in GAP, and on the package GRAPE in particular. I would like to obtain all maximal cliques (up to isomorphism) of a given size k in a graph. CompleteSubgraphsOfGivenSize(graph,k,true); will give me representatives (maybe isomorphic ones) of cliques of size k Cliques(graph, -1,2); will give me representatives (maybe isomorphic ones) of maximal cliques of any size But is there any (efficient) way to obtain the maximal cliques of one fixed size k (I am hoping this would be faster than Cliques(graph,-1,2)) Thanks, Kind regards, Fr?d?ric From member at linkedin.com Fri Apr 26 08:56:30 2013 From: member at linkedin.com (Vo Tam Van) Date: Fri, 26 Apr 2013 07:56:30 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <1338777277.13333781.1366962990705.JavaMail.app@ela4-app0134.prod> LinkedIn ------------ Vo Tam Van requested to add you as a connection on LinkedIn: ------------------------------------------ seyed sadegh, I'd like to add you to my professional network on LinkedIn. - Vo Accept invitation from Vo Tam Van http://www.linkedin.com/e/7twrqs-hfz2gy1n-70/kxWSPPQn1Bk6B_fNFP5PecDCMmxZByj--gSblhW/blk/I315617134_140/e39SrCAJoS5vrCAJoyRJtCVFnSRJrScJr6RBfnhv9ClRsDgZp6lQs6lzoQ5AomZIpn8_c3gNnPgPcjsNdzkNcQALm69Gd74TgAALejsRd3wMejcNcz4LrCBxbOYWrSlI/eml-comm_invm-b-in_ac-inv28/?hs=false&tok=0x_JfXE5HYEBI1 View profile of Vo Tam Van http://www.linkedin.com/e/7twrqs-hfz2gy1n-70/rso/49159283/ABsL/name/143378654_I315617134_140/?hs=false&tok=2aTZkJrGbYEBI1 ------------------------------------------ You are receiving Invitation emails. This email was intended for seyed sadegh salehi amiri. Learn why this is included: http://www.linkedin.com/e/7twrqs-hfz2gy1n-70/plh/http%3A%2F%2Fhelp%2Elinkedin%2Ecom%2Fapp%2Fanswers%2Fdetail%2Fa_id%2F4788/-GXI/?hs=false&tok=0pWk5-lCfYEBI1 (c) 2012, LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. From member at linkedin.com Fri Apr 26 08:56:31 2013 From: member at linkedin.com (Vo Tam Van) Date: Fri, 26 Apr 2013 07:56:31 +0000 (UTC) Subject: [GAP Forum] Invitation to connect on LinkedIn Message-ID: <1281260860.13333823.1366962991476.JavaMail.app@ela4-app0134.prod> LinkedIn ------------ Vo Tam Van requested to add you as a connection on LinkedIn: ------------------------------------------ Guang, I'd like to add you to my professional network on LinkedIn. - Vo Accept invitation from Vo Tam Van http://www.linkedin.com/e/m6t9ff-hfz2gyn2-2m/yyKiECF05t8gMi_bE2jdiMBKEidJE6s_/blk/I315617136_140/e39SrCAJoS5vrCAJoyRJtCVFnSRJrScJr6RBfnhv9ClRsDgZp6lQs6lzoQ5AomZIpn8_c3gNnPoPcjsNdzkNcQALhztvqS5xq3cLdzAUd3wMejcNcz4LrCBxbOYWrSlI/eml-comm_invm-b-in_ac-inv28/?hs=false&tok=2axOh_mWDYEBI1 View profile of Vo Tam Van http://www.linkedin.com/e/m6t9ff-hfz2gyn2-2m/rso/49159283/ABsL/name/143234312_I315617136_140/?hs=false&tok=1PJOknyH7YEBI1 ------------------------------------------ You are receiving Invitation emails. This email was intended for Guang Rao. Learn why this is included: http://www.linkedin.com/e/m6t9ff-hfz2gyn2-2m/plh/http%3A%2F%2Fhelp%2Elinkedin%2Ecom%2Fapp%2Fanswers%2Fdetail%2Fa_id%2F4788/-GXI/?hs=false&tok=0pWk5-lCfYEBI1 (c) 2012, LinkedIn Corporation. 2029 Stierlin Ct, Mountain View, CA 94043, USA. From L.H.Soicher at qmul.ac.uk Fri Apr 26 09:29:36 2013 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Fri, 26 Apr 2013 09:29:36 +0100 Subject: [GAP Forum] GRAPE: maximal cliques of given size? In-Reply-To: <517A1FFE.2010908@cage.UGent.be> References: <517A1FFE.2010908@cage.UGent.be> Message-ID: <20130426082936.GA6943@maths.qmul.ac.uk> Dear Fr?d?ric, Dear GAP-Forum, First, make sure you have the latest version of GRAPE (4.6), and read the documentation for the very flexible function CompleteSubgraphsOfGivenSize (you should also review the documentation for CompleteSubgraphs (a.k.a. Cliques)). In particular: CompleteSubgraphsOfGivenSize( gamma, k, 2, true ); will return a set of gamma.group orbit-representatives of the maximal cliques of size k of the simple graph gamma. If you want to classify the maximal cliques of size k up to the action of the automorphism group of gamma, then you must first make sure that gamma.group is that (full) automorphism group. This can be accomplished via: gamma := NewGroupGraph( AutomorphismGroup(gamma), gamma ); Best wishes, Leonard On Fri, Apr 26, 2013 at 08:34:38AM +0200, Frederic Vanhove wrote: > Dear members of the forum, > > I have a question on cliques in GAP, and on the package GRAPE in particular. > I would like to obtain all maximal cliques (up to isomorphism) of a > given size k in a graph. > > CompleteSubgraphsOfGivenSize(graph,k,true); > will give me representatives (maybe isomorphic ones) of cliques of size k > > Cliques(graph, -1,2); > will give me representatives (maybe isomorphic ones) of maximal cliques > of any size > > But is there any (efficient) way to obtain the maximal cliques of one > fixed size k (I am hoping this would be faster than Cliques(graph,-1,2)) > > Thanks, > Kind regards, > Fr?d?ric > > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hn10 at uakron.edu Sat Apr 27 14:52:56 2013 From: hn10 at uakron.edu (Nguyen,Hung Ngoc) Date: Sat, 27 Apr 2013 09:52:56 -0400 Subject: [GAP Forum] checking subgroups and conjugacy classes In-Reply-To: References: <5178690A.7050601@auckland.ac.nz>, Message-ID: Dear all, The following is beyond my GAP expertise. I appreciate very much if you can help me. Let g:=M_{10}=A_6 . 2_3 - this is the stabilizer of a point in M_{11}. First I want to check whether g is isomorphic to a subgroup of GL(2,19). If the answer is yes, then list the structures of all groups G such that G/(C_{19} * C_{19}) = g where g acts naturally on C_{19} * C_{19}. Here C_{19} is the cyclic group of order 19. For such a group G and a prime p dividing |G|, list the number of p-regular conjugacy classes of G (a class is p-regular if its element order is not divisible by p). Thank you very much, Hung. From hulpke at me.com Sat Apr 27 16:12:55 2013 From: hulpke at me.com (Alexander Hulpke) Date: Sat, 27 Apr 2013 09:12:55 -0600 Subject: [GAP Forum] checking subgroups and conjugacy classes In-Reply-To: References: <5178690A.7050601@auckland.ac.nz> Message-ID: Dear Forum, Dear Hung Nguyen, > \Let g:=M_{10}=A_6 . 2_3 - this is the stabilizer of a point in M_{11}. First I want to check whether g is isomorphic to a subgroup of GL(2,19). If the answer is yes, then list the structures of all groups G such that G/(C_{19} * C_{19}) = g where g acts naturally on C_{19} * C_{19}. Here C_{19} is the cyclic group of order 19. > > For such a group G and a prime p dividing |G|, list the number of p-regular conjugacy classes of G (a class is p-regular if its element order is not divisible by p). There is an old theorem (by Dickson, I believe) that classifies the subgroups of PSL_2(q). The theorem is for example in Huppert's first volume but the book is in my office, so I can't find the exact page. The only simple nonabelian subgroups are the obvious PSL's and A_5. Thus M10 cannot be a subgroup of GL2(19). Ignoring this, in GAP you probably would use h:=GL(2,19); u:=List(ConjugacyClassesSubgroups(h),Representative); to get a list of representatives of all subgroups up to conjugacy, u:=Filtered(u,x->IsomorphismGroups(x,g)<>fail); to find those which are isomorphic to your group g. To classify the extensions abstractly (assuming that by `*' you mean direct product) you would need cohomology for nonsolvable factor groups, which the `cohomolo' package provides. However, given the small size, you also would find such a group (apart from a few obvioud degenerate cases) in the libary of perfect groups. Regards, Alexander Hulpke From harshaarora.2008 at gmail.com Mon Apr 29 12:01:27 2013 From: harshaarora.2008 at gmail.com (Harsha Arora) Date: Mon, 29 Apr 2013 16:31:27 +0530 Subject: [GAP Forum] TO FIND THE CENTER OFUTOMORPHISM OF A GROUP Message-ID: HELLO SIR IWANT HOW CAN I FIND THE AUTOMORPHISM GROUP OF A GROUP AND CENTRAL AUTOMORPHISM GROUP AND THE CENTER F AUTOMORPHISM GROUP. From sandeepr.murthy at gmail.com Mon Apr 29 12:04:58 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Mon, 29 Apr 2013 12:04:58 +0100 Subject: [GAP Forum] TO FIND THE CENTER OFUTOMORPHISM OF A GROUP In-Reply-To: References: Message-ID: <517E53DA.1090706@gmail.com> AutomorphismGroup( G ) will give you the automorphism group of group G. Sandeep. Harsha Arora wrote: > HELLO SIR > IWANT HOW CAN I FIND THE AUTOMORPHISM GROUP OF A GROUP AND CENTRAL > AUTOMORPHISM GROUP AND THE CENTER F AUTOMORPHISM GROUP. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From yashakon at mail.ru Thu Apr 18 19:52:30 2013 From: yashakon at mail.ru (=?UTF-8?B?0K/QutC+0LIg0JrQvtC90L7QvdC+0LI=?=) Date: Thu, 18 Apr 2013 22:52:30 +0400 Subject: [GAP Forum] =?utf-8?q?Problem_with_computing?= Message-ID: <1366311150.54706949@f387.i.mail.ru> Hello! I want to compute the abelianization of the kernel of the map F->G, where F is finitely presented group with generators a_1, ..., a_10 and relations a_1^2=...=a_10^2=e, a_1*a_2*a_3*a_4*a_5=a_6*a_7*a_8*a_9*a_10=e, G is abelian group (Z/2)^4 with basis e_1,...,e_4. The map is given by images a_1->e_1, a_2->e_2, a_3->e_3, a_4->e_4, a_5->e_1*e_2*e*3*e_4, a_6->e_2*e_3*e_4, a_7->e_1*e_3*e_4, a_8->e_1*e_3, a_9->e_2*e_4, a_10->e_3*e_4. ?I realize it by the following code: f:=FreeGroup(10); F:=f/[f.1^2,f.2^2,f.3^2,f.4^2,f.5^2,f.6^2,f.7^2,f.8^2,f.9^f,f.10^2,f.1*f.2*f.3*f.4*f.5,f.6*f.8*f.8*f.9*f.10]; G:=Group((1,2),(3,4),(5,6),(7,8)); hom:=GroupHomomorphismByImages(F,G,[F.1,F.2,F.3,F.4,F.5,F.6,F.7,F.8,F.9,F.10],[(1,2),(3,4),(5,6),(7,8),(1,2)(3,4)(5,6)(7,8),(3,4)(5,6)(7,8),(1,2)(5,6)(7,8),(1,2)(5,6),(3,4)(7,8),(5,6)(7,8)]); iso:=IsomorphismFpGroup(Kernel(hom)); h:=Range(iso); comm:=CommutatorFactorGroup(h); Order(comm); ? But it says, that the order is infinity, but it is obviously impossible, because it is finitely generated subgroup by elements of order 2. Thank you, Yakov Kononov.? From zeinab_foruzanfar at iust.ac.ir Mon Apr 29 15:27:23 2013 From: zeinab_foruzanfar at iust.ac.ir (zeinab foruzanfar) Date: Mon, 29 Apr 2013 17:57:23 +0330 Subject: [GAP Forum] (no subject) Message-ID: Hi. I Want some GAP program to count the number of Sylow $p$-subgroups which pairwise intersect trivially. Also I want to show that if $P$ and $Q$ are two Sylow $p$-subgroups, then the intersection of $P^x$ and $P^y$ is trivial for $x,y \in Q$. Is it possible to send me a program to count these. Thank you Best Regards From marek at mitros.org Fri May 3 17:48:46 2013 From: marek at mitros.org (Marek Mitros) Date: Fri, 3 May 2013 18:48:46 +0200 Subject: [GAP Forum] Sqrt(1+2i) In-Reply-To: References: Message-ID: Dear Forum,Consider following GAP code - see below. It means that square root of unit complex number (1+2i)/Sqrt(5) belongs to cyclotomics CF(40) field. In the code below I use (2+i)/Sqrt(5) but the same is valid for (1+2i)/Sqrt(5).Somobody has answered that Sqrt(1+2i) is not cyclotomics. Maybe it is true, I don't know. For my purpose it is enough to work with unit complex.Regards,Marekx:=Indeterminate(CF(40),"x"); gap> a:=(2+i)/Sqrt(5); 1/5*E(20)+2/5*E(20)^4-2/5*E(20)^8 +1/5*E(20)^9-2/5*E(20)^12-1/5*E(20)^13 +2/5*E(20)^16-1/5*E(20)^17 gap> f:=x*x-a; x^2+(-1/5*E(20)-2/5*E(20)^4+2/5*E(20)^8-1/5*\ E(20)^9+2/5*E(20)^12+1/5*E(20)^13-2/5*E(20)^\ 16+1/5*E(20)^17) gap> sol:=RootsOfPolynomial(CF(40),f); [ 1/5*E(40)^7-2/5*E(40)^13+1/5*E(40)^21 -1/5*E(40)^23-1/5*E(40)^29-2/5*E(40)^31 +2/5*E(40)^37+2/5*E(40)^39, -1/5*E(40)^7+2/5*E(40)^13-1/5*E(40)^21 +1/5*E(40)^23+1/5*E(40)^29+2/5*E(40)^31 -2/5*E(40)^37-2/5*E(40)^39 ] 03-10-2012 14:13, "Marek Mitros" napisa?(a): > Dear Forum Users, > > I need to calculate Sqrt(1+2i) i.e. find the complex number z=a+bi > such that z^2=(1+2i). Using traditional pen and paper I calculated > that a=Sqrt((1+Sqrt(5))/2) and b=Sqrt((Sqrt(5)-1)/2). But how to > express these numbers in GAP ? Is this number cyclotomic or not ? > Using formula for tangent (x/2) = (1-cos(x))/sin(x) I obtain number > c=1+ ((Sqrt(5)-1)/2)*i which is collinear with needed number i.e. have > the same angle. So we have ImaginaryPart(c*(1-2*i))=0. > > Another question I have is how to normalize complex number in GAP. > E.g. I have number c=1+ ((Sqrt(5)-1)/2)*i and I would like to find > number c/|c| i.e. lying on unit circle on complex plane. If the |c|^2 > is rational then I can apply Sqrt. But this does not work for real > cyclotomics. > > Any advice ? > > Regards, > Marek > From alexk at mcs.st-andrews.ac.uk Mon May 6 18:30:57 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 6 May 2013 18:30:57 +0100 Subject: [GAP Forum] GAP 4.6.4 release announcement Message-ID: Dear GAP Forum, This is to announce the release of GAP 4.6.4. You can download GAP 4.6.4 from http://www.gap-system.org/Releases/ The alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives will be updated in due course. The overview of changes in GAP 4.6.4 is given below. New functionality: * New command line option -O was introduced to disable loading obsolete variables. This option may be used, for example, to check that they are not used in a GAP package or one's own GAP code. Fixed bugs which could lead to incorrect results: * Fixed the bug in NewmanInfinityCriterion which may cause returning true instead of false. [Reported by Lev Glebsky] Fixed bugs which could lead to crashes: * Fixed the kernel method for Remove which did not raise an error in case of empty lists, but corrupted the object. The error message in a library method is also improved. [Reported by Roberto R?dina] Fixed bugs that could lead to break loops: * Fixed requirements in a method to multiply a list and an algebraic element. [Reported by Sebastian Gutsche] * Fixed a bug in NaturalCharacter entering a break loop when being called on a homomorphism whose image is not a permutation group. [Reported by Sebastian Gutsche] * Fixed a bug in ExponentsConjugateLayer which occured, for example, in some calls of SubgroupsSolvableGroup [Reported by Ramon Esteban-Romero] * Fixed a problem with displaying function fields, e.g. Field(Indeterminate(Rationals,"x")). [Reported by Jan Willem Knopper] * Fixed two bugs in the code for NaturalHomomorphismByIdeal for polynomial rings. [Reported by Martin Leuner] * Added missing method for String for -infinity. * Fixed the bug with ONanScottType not recognising product action properly in some cases. * The method for SlotUsagePattern for straight line programs had a bug which triggered an error, if the straight line program contained unnecessary steps. You may also access this overview by scrolling till the end of the chapter after entering '?Changes between GAP 4.5 and GAP 4.6' in GAP 4.6.4, or view it online at http://www.gap-system.org/Manuals//doc/changes/chap2.html#X82859C4083F0D7B9 In addition to the improved functionality and fixed bugs in the core GAP system listed above, several packages have been updated since the previous GAP 4.6.3 release: ================================================ Package name | Version | Date ------------------------------------------------ AutoDoc | 2013.01.16 | 16/01/2013 Example | 3.4.3 | 27/03/2013 GradedRingForHomalg | 2013.02.07 | 07/02/2013 MatricesForHomalg | 2013.04.16 | 16/04/2013 Modules | 2013.04.19 | 19/04/2013 OpenMath | 11.1.4 | 27/03/2013 orb | 4.6 | 02/05/2013 RingsForHomalg | 2013.04.19 | 19/04/2013 Smallsemi | 0.6.6 | 24/04/2013 ToolsForHomalg | 2013.04.16 | 16/04/2013 Wedderga | 4.5.4 | 28/03/2013 ================================================ We encourage all users to upgrade to GAP 4.6.4. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we are regularly updating the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From alexander.konovalov at gmail.com Mon May 6 18:32:27 2013 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon, 6 May 2013 18:32:27 +0100 Subject: [GAP Forum] GAP 4.6.4 release announcement Message-ID: <16CE73EC-6C50-444C-9DD6-748F2C4A2993@gmail.com> Dear GAP Forum, This is to announce the release of GAP 4.6.4. You can download GAP 4.6.4 from http://www.gap-system.org/Releases/ The alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives will be updated in due course. The overview of changes in GAP 4.6.4 is given below. New functionality: * New command line option -O was introduced to disable loading obsolete variables. This option may be used, for example, to check that they are not used in a GAP package or one's own GAP code. Fixed bugs which could lead to incorrect results: * Fixed the bug in NewmanInfinityCriterion which may cause returning true instead of false. [Reported by Lev Glebsky] Fixed bugs which could lead to crashes: * Fixed the kernel method for Remove which did not raise an error in case of empty lists, but corrupted the object. The error message in a library method is also improved. [Reported by Roberto R?dina] Fixed bugs that could lead to break loops: * Fixed requirements in a method to multiply a list and an algebraic element. [Reported by Sebastian Gutsche] * Fixed a bug in NaturalCharacter entering a break loop when being called on a homomorphism whose image is not a permutation group. [Reported by Sebastian Gutsche] * Fixed a bug in ExponentsConjugateLayer which occured, for example, in some calls of SubgroupsSolvableGroup [Reported by Ramon Esteban-Romero] * Fixed a problem with displaying function fields, e.g. Field(Indeterminate(Rationals,"x")). [Reported by Jan Willem Knopper] * Fixed two bugs in the code for NaturalHomomorphismByIdeal for polynomial rings. [Reported by Martin Leuner] * Added missing method for String for -infinity. * Fixed the bug with ONanScottType not recognising product action properly in some cases. * The method for SlotUsagePattern for straight line programs had a bug which triggered an error, if the straight line program contained unnecessary steps. You may also access this overview by scrolling till the end of the chapter after entering '?Changes between GAP 4.5 and GAP 4.6' in GAP 4.6.4, or view it online at http://www.gap-system.org/Manuals//doc/changes/chap2.html#X82859C4083F0D7B9 In addition to the improved functionality and fixed bugs in the core GAP system listed above, several packages have been updated since the previous GAP 4.6.3 release: ================================================ Package name | Version | Date ------------------------------------------------ AutoDoc | 2013.01.16 | 16/01/2013 Example | 3.4.3 | 27/03/2013 GradedRingForHomalg | 2013.02.07 | 07/02/2013 MatricesForHomalg | 2013.04.16 | 16/04/2013 Modules | 2013.04.19 | 19/04/2013 OpenMath | 11.1.4 | 27/03/2013 orb | 4.6 | 02/05/2013 RingsForHomalg | 2013.04.19 | 19/04/2013 Smallsemi | 0.6.6 | 24/04/2013 ToolsForHomalg | 2013.04.16 | 16/04/2013 Wedderga | 4.5.4 | 28/03/2013 ================================================ We encourage all users to upgrade to GAP 4.6.4. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we are regularly updating the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From mhxgh at yahoo.com Tue May 7 06:28:57 2013 From: mhxgh at yahoo.com (M.H.GH) Date: Mon, 6 May 2013 22:28:57 -0700 (PDT) Subject: [GAP Forum] Sylow $p$-subgroups which pairwise intersect trivially In-Reply-To: References: Message-ID: <1367904537.87903.YahooMailNeo@web125003.mail.ne1.yahoo.com> I hope that be useful. **************** VP := function( G , p )? local P, N, R, Pi, Pj, i, j, res, szr, SW;? P := SylowSubgroup( G , p ); N := Normalizer( G , P ); R := AsList( RightTransversal( G , N ) ); res := []; szr := Size(R); Print ( "\nUpper Bound = Size( RightCosets( G , Normalizer(G,P) ) ) = " , szr , " ... \n\n" ); for i in [1..szr] do Pi := P^R[i]; SW := 1; for j in [1..szr] do Pj := P^R[j]; if Size( Intersection( Pi , Pj ) ) <> 1 and i<>j then SW := 0; continue; fi; od; if SW = 1 then Add( res , Pi ); #Print( "|res| = " , Size( Set( res ) ) , " ... ?"); fi; od; Print ( "\n\nResult = " , Size( Set( res ) ) , " .\n\n"); return Size( Set( res ) ); end;; ************** ________________________________ From: zeinab foruzanfar To: forum at gap-system.org Sent: Monday, April 29, 2013 6:57 PM Subject: [GAP Forum] (no subject) Hi. I Want some GAP program to count the number of Sylow $p$-subgroups which pairwise intersect trivially. Also I want to show that if $P$ and $Q$ are two Sylow $p$-subgroups, then the intersection of $P^x$ and $P^y$ is trivial for $x,y \in Q$. Is it possible to send me a program to count these. Thank you Best Regards _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From A.C.Aitchison at dpmms.cam.ac.uk Tue May 7 07:12:52 2013 From: A.C.Aitchison at dpmms.cam.ac.uk (Dr Andrew C Aitchison) Date: Tue, 7 May 2013 07:12:52 +0100 (BST) Subject: [GAP Forum] cryst2params in varnames.tst Message-ID: Whilst running testall.g with the newly released Gap 4.6.4 I hit a minor? failure in varnames.tst: ????????? GAP, Version 4.6.4 of 04-May-2013 (free sGPL) ? GAP ? http://www.gap-system.org ????????? Architecture: x86_64-redhat-linux-gnu-gcc-default64 Libs used: gmp, readline Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: AClib 1.2, Alnuth 3.0.0, AutPGrp 1.5, CRISP 1.3.6, Cryst 4.1.11, CrystCat 1.1.6, CTblLib 1.2.2, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IRREDSOL 1.2.1, LAGUNA 3.6.3, Polenta 1.3.1, Polycyclic 2.11, RadiRoot 2.6, ResClasses 3.3.0, Sophus 1.23, SpinSym 1.5, TomLib 1.2.2 Try '?help' for help. See also '?copyright' and '?authors' testing: /usr/gap4r6/tst/varnames.tst ########> Diff in /usr/gap4r6/tst/varnames.tst, line 9: # Input is: Filtered( NamesSystemGVars(), x -> not x in ALL_KEYWORDS() and ( Length(x)=1 or IsLowerAlphaChar(x[1]) ) ); # Expected output: [ "*", "+", "-", ".", "/", "<", "=", "E", "X", "Z", "^", "fail", "infinity", "last", "last2", "last3", "time" ] # But found: [ "*", "+", "-", ".", "/", "<", "=", "E", "X", "Z", "^", "cryst2params", "cryst3params", "cryst4params", "fail", "infinity", "last", "last2", "last3", "time" ] ######## varnames.tst 0 22 Looks like either one of the Cryst package is leaking variables, or the test needs updating ? -- Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge A.C.Aitchison at dpmms.cam.ac.uk http://www.dpmms.cam.ac.uk/~werdna From colva at mcs.st-and.ac.uk Tue May 7 14:08:39 2013 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Tue, 7 May 2013 14:08:39 +0100 Subject: [GAP Forum] Groups St Andrews - Earlybird deadline approaching! Message-ID: <83A01D06-DC9E-4285-9729-B557BB2FD3FF@mcs.st-and.ac.uk> Dear Forum, This is to remind you that Early Bird Discount on registration for Groups St Andrews closes on May 10th. Please see the conference webpages: http://www.groupsstandrews.org/2013/index.shtml Our Principal Speakers are Emmanuel Breuillard, Martin Liebeck, Alan Reid and Karen Vogtmann. In addition, we have Invited One-Hour Speakers Inna Capdebosq, Radha Kessar, Marcus Lohrey, Derek Robinson and Christopher Voll. We welcome submission of articles from all participants for the Conference Proceedings, surveying an area of their expertise. Further information, including the format for submitted papers and the deadline for submission, can be found on the conference webpage. The facility to submit a title and abstract for a talk is also available. You can do this and see the talks that are already submitted via the conference webpages. We hope to see you in August. Colva Roney-Dougal (on behalf of the organising committee) The University of St Andrews is a charity registered in Scotland : No SC013532 From klajok at interia.pl Tue May 7 20:31:02 2013 From: klajok at interia.pl (Daniel Blazewicz) Date: Tue, 07 May 2013 21:31:02 +0200 Subject: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows Message-ID: Hi, I use RootsOfPolynomialAsRadicals from RadiRoot package to compute roots of some simple polynomials of degree 5 and 6. In many cases mentioned method works excellent and produces very nice formulas. However for few specific polynomials it fails with stack overflow error. This is fully deterministic behavior on my environment, e.g. for f(x) = x^6+30*x+93 : ????????? GAP, Version 4.6.2 of 02-Feb-2013 (free software, GPL) ? GAP ? http://www.gap-system.org ????????? Architecture: i686-pc-linux-gnu-gcc-default32 Libs used: gmp, readline Loading the library and packages ... Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.5, Browse 1.8.2, CRISP 1.3.5, Cryst 4.1.11, CrystCat 1.1.6, CTblLib 1.2.1, FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL 1.2.1, LAGUNA 3.6.3, Polenta 1.3.1, Polycyclic 2.10.1, RadiRoot 2.6, ResClasses 3.3.0, Sophus 1.23, TomLib 1.2.2 Try '?help' for help. See also '?copyright' and '?authors' gap> x := Indeterminate( Rationals, "x" );; gap> f := UnivariatePolynomial( Rationals, [93,30,0,0,0,0,1]);; gap> RootsOfPolynomialAsRadicals(f, "latex", "x6_30x_93");; *** at top-level: ...n(),[2,4,3])>=0,fac=lift(nffactor(f,pol)),if( *** ^-------------------- *** nffactor: the PARI stack overflows ! current stack size: 128000000 (122.070 Mbytes) [hint] you can increase GP stack with allocatemem() *** at top-level: for(i=1,#fac[,1],for(j=1,fac[i,2 *** ^-------------------- *** _[,_]: not a matrix. Error, List Element: [1] must have an assigned value in faktoren[1] := lcoeff * faktoren[1]; called from FactorsPolynomialPari( AlgExtEmbeddedPol( H, poly ) ) called from FactorsPolynomialAlgExt( erw.H, CyclotomicPolynomial( Rationals, i ) ) called from RR_RootOfUnity( erw, DegreeOverPrimeField( erw.K ) ) called from CallFuncList( RootsOfPolynomialAsRadicalsNC, arg ) called from ( ) called from read-eval loop at line 3 of *stdin* you can 'return;' after assigning a value brk> Other examples: f(x) = x^6+105*x+237 f(x) = x^6+243*x+513 I don't know how to work around this problem. Tried to increase workspace size but it did not solve the issue. I will be grateful for your help. With regards, Daniel From andreas at mcs.st-and.ac.uk Tue May 7 23:46:11 2013 From: andreas at mcs.st-and.ac.uk (Andreas Distler) Date: Wed, 08 May 2013 00:46:11 +0200 Subject: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows In-Reply-To: References: Message-ID: <51898433.5060902@mcs.st-andrews.ac.uk> Dear Daniel, I cannot reproduce your problem. Which version of PARI/GP are you using? Anyway, you can use the function SetPariStackSize from the Alnuth package to increase the amount of memory PARI/GP will use. The function takes a positive integer as argument specifying the amount of memory in MB. The default value is 128 MB as you may have guessed. It's an oversight that SetPariStackSize is not documented. I will change this in the next version of Alnuth. Thanks for pointing me to this shortcoming. Best wishes, Andreas On 07/05/13 21:31, Daniel Blazewicz wrote: > Hi, > > I use RootsOfPolynomialAsRadicals from RadiRoot package to compute roots of some simple polynomials of degree 5 and 6. In many cases mentioned method works excellent and produces very nice formulas. However for few specific polynomials it fails with stack overflow error. This is fully deterministic behavior on my environment, e.g. for f(x) = x^6+30*x+93 : > > > ????????? GAP, Version 4.6.2 of 02-Feb-2013 (free software, GPL) > ? GAP ? http://www.gap-system.org > ????????? Architecture: i686-pc-linux-gnu-gcc-default32 > Libs used: gmp, readline > Loading the library and packages ... > Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 > Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.5, Browse 1.8.2, CRISP 1.3.5, Cryst 4.1.11, CrystCat 1.1.6, CTblLib 1.2.1, > FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL 1.2.1, LAGUNA 3.6.3, Polenta 1.3.1, Polycyclic 2.10.1, RadiRoot 2.6, > ResClasses 3.3.0, Sophus 1.23, TomLib 1.2.2 > Try '?help' for help. See also '?copyright' and '?authors' > gap> x := Indeterminate( Rationals, "x" );; > gap> f := UnivariatePolynomial( Rationals, [93,30,0,0,0,0,1]);; > gap> RootsOfPolynomialAsRadicals(f, "latex", "x6_30x_93");; > *** at top-level: ...n(),[2,4,3])>=0,fac=lift(nffactor(f,pol)),if( > *** ^-------------------- > *** nffactor: the PARI stack overflows ! > current stack size: 128000000 (122.070 Mbytes) > [hint] you can increase GP stack with allocatemem() > > *** at top-level: for(i=1,#fac[,1],for(j=1,fac[i,2 > *** ^-------------------- > *** _[,_]: not a matrix. > Error, List Element: [1] must have an assigned value in > faktoren[1] := lcoeff * faktoren[1]; called from > FactorsPolynomialPari( AlgExtEmbeddedPol( H, poly ) ) called from > FactorsPolynomialAlgExt( erw.H, CyclotomicPolynomial( Rationals, i ) ) called from > RR_RootOfUnity( erw, DegreeOverPrimeField( erw.K ) ) called from > CallFuncList( RootsOfPolynomialAsRadicalsNC, arg ) called from > ( ) > called from read-eval loop at line 3 of *stdin* > you can 'return;' after assigning a value > brk> > > > Other examples: > f(x) = x^6+105*x+237 > f(x) = x^6+243*x+513 > > I don't know how to work around this problem. Tried to increase workspace size but it did not solve the issue. I will be grateful for your help. > > With regards, > Daniel > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From mckay at encs.concordia.ca Wed May 8 05:08:52 2013 From: mckay at encs.concordia.ca (John McKay) Date: Wed, 8 May 2013 00:08:52 -0400 (EDT) Subject: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows In-Reply-To: <51898433.5060902@mcs.st-andrews.ac.uk> References: <51898433.5060902@mcs.st-andrews.ac.uk> Message-ID: I remark on solving for the radical roots of f(x) in Z[x]? We need all solution (g,h) to f divides g(h(x)) which I call the ideal decompositon problem. This - by Casperson, Ford, & McKay - is in: Casperson, D., Ford, D., McKay, J., Ideal Decompositions and Subfields. J. Symbolic Computation, J.Symb.Comp., 21,133-137, (1996). where we use lattice reduction. Thanks, John McKay On Wed, 8 May 2013, Andreas Distler wrote: > Dear Daniel, > > I cannot reproduce your problem. Which version of PARI/GP are you using? > > Anyway, you can use the function SetPariStackSize from the Alnuth > package to increase the amount of memory PARI/GP will use. The function > takes a positive integer as argument specifying the amount of memory in > MB. The default value is 128 MB as you may have guessed. > > It's an oversight that SetPariStackSize is not documented. I will change > this in the next version of Alnuth. Thanks for pointing me to this > shortcoming. > > Best wishes, > > Andreas > > On 07/05/13 21:31, Daniel Blazewicz wrote: > > Hi, > > > > I use RootsOfPolynomialAsRadicals from RadiRoot package to compute roots of some simple polynomials of degree 5 and 6. In many cases mentioned method works excellent and produces very nice formulas. However for few specific polynomials it fails with stack overflow error. This is fully deterministic behavior on my environment, e.g. for f(x) = x^6+30*x+93 : > > > > > > ????????? GAP, Version 4.6.2 of 02-Feb-2013 (free software, GPL) > > ? GAP ? http://www.gap-system.org > > ????????? Architecture: i686-pc-linux-gnu-gcc-default32 > > Libs used: gmp, readline > > Loading the library and packages ... > > Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 > > Packages: AClib 1.2, Alnuth 3.0.0, AtlasRep 1.5.0, AutPGrp 1.5, Browse 1.8.2, CRISP 1.3.5, Cryst 4.1.11, CrystCat 1.1.6, CTblLib 1.2.1, > > FactInt 1.5.3, FGA 1.2.0, GAPDoc 1.5.1, IO 4.2, IRREDSOL 1.2.1, LAGUNA 3.6.3, Polenta 1.3.1, Polycyclic 2.10.1, RadiRoot 2.6, > > ResClasses 3.3.0, Sophus 1.23, TomLib 1.2.2 > > Try '?help' for help. See also '?copyright' and '?authors' > > gap> x := Indeterminate( Rationals, "x" );; > > gap> f := UnivariatePolynomial( Rationals, [93,30,0,0,0,0,1]);; > > gap> RootsOfPolynomialAsRadicals(f, "latex", "x6_30x_93");; > > *** at top-level: ...n(),[2,4,3])>=0,fac=lift(nffactor(f,pol)),if( > > *** ^-------------------- > > *** nffactor: the PARI stack overflows ! > > current stack size: 128000000 (122.070 Mbytes) > > [hint] you can increase GP stack with allocatemem() > > > > *** at top-level: for(i=1,#fac[,1],for(j=1,fac[i,2 > > *** ^-------------------- > > *** _[,_]: not a matrix. > > Error, List Element: [1] must have an assigned value in > > faktoren[1] := lcoeff * faktoren[1]; called from > > FactorsPolynomialPari( AlgExtEmbeddedPol( H, poly ) ) called from > > FactorsPolynomialAlgExt( erw.H, CyclotomicPolynomial( Rationals, i ) ) called from > > RR_RootOfUnity( erw, DegreeOverPrimeField( erw.K ) ) called from > > CallFuncList( RootsOfPolynomialAsRadicalsNC, arg ) called from > > ( ) > > called from read-eval loop at line 3 of *stdin* > > you can 'return;' after assigning a value > > brk> > > > > > > Other examples: > > f(x) = x^6+105*x+237 > > f(x) = x^6+243*x+513 > > > > I don't know how to work around this problem. Tried to increase workspace size but it did not solve the issue. I will be grateful for your help. > > > > With regards, > > Daniel > > > > _______________________________________________ > > 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 mckay at encs.concordia.ca Wed May 8 06:58:08 2013 From: mckay at encs.concordia.ca (John McKay) Date: Wed, 8 May 2013 01:58:08 -0400 (EDT) Subject: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows In-Reply-To: References: <51898433.5060902@mcs.st-andrews.ac.uk> Message-ID: Your examples of type f:= x^6+ax+b have galois group (use maple) S3 wr S3 of order 72. Solvable 6-ic polynomials are treated by Tom Hagedorn in J.Alg (2000) 233 pp 704-757. Lesser degree polynomials are treated in the book by Dummit & Foote. John From klajok at interia.pl Wed May 8 20:04:01 2013 From: klajok at interia.pl (Daniel Blazewicz) Date: Wed, 08 May 2013 21:04:01 +0200 Subject: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows In-Reply-To: References: <51898433.5060902@mcs.st-andrews.ac.uk> Message-ID: Dear Andreas and John, Many thanks for your answers. I used SetPariStackSize(256) and it helped! My PARI/GP version: GP/PARI CALCULATOR Version 2.5.0 (released) amd64 running linux (x86-64/GMP kernel) 64-bit version compiled: Nov 17 2011, gcc-4.6.2 (Ubuntu/Linaro 4.6.2-2ubuntu1) (readline v6.2 disabled, extended help enabled) Best wishes, Daniel Od: "John McKay" Do: "Andreas Distler" ; Wys?ane: 8:05 ?roda 2013-05-08 Temat: Re: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows > > Your examples of type f:= x^6+ax+b > > have galois group (use maple) S3 wr S3 of order 72. > > Solvable 6-ic polynomials are treated by Tom Hagedorn > > in J.Alg (2000) 233 pp 704-757. > > Lesser degree polynomials are treated in the book by Dummit & Foote. > > John > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From mckay at encs.concordia.ca Thu May 9 08:14:13 2013 From: mckay at encs.concordia.ca (John McKay) Date: Thu, 9 May 2013 03:14:13 -0400 (EDT) Subject: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows In-Reply-To: <51898433.5060902@mcs.st-andrews.ac.uk> References: <51898433.5060902@mcs.st-andrews.ac.uk> Message-ID: Dear all: A solution to the problem: Given f in Z[x], find all g,h such that f divides g(h(x)) is relevant to expressing te roots of f in ems of radicals. This is solved in From suskudar at gmail.com Thu May 9 08:59:55 2013 From: suskudar at gmail.com (sumeyra uskudar) Date: Thu, 9 May 2013 10:59:55 +0300 Subject: [GAP Forum] Thanks! Message-ID: This is a honest appriciation message to all moderators and participants of this forum. Thank you all, For answering patiently even the easiest questions, By simply following this ACTIVE forum, one can easily learn how to use GAP for basic purposes. One of the most important archives I have ever had is this forum archive. Thank you very much! -- *S?meyra Bedir* From suskudar at gmail.com Thu May 9 09:02:41 2013 From: suskudar at gmail.com (sumeyra uskudar) Date: Thu, 9 May 2013 11:02:41 +0300 Subject: [GAP Forum] Thanks! In-Reply-To: References: Message-ID: This is a honest appriciation message to all moderators and participants of this forum. Thank you all, For answering patiently even the easiest questions, By simply following this ACTIVE forum, one can easily learn how to use GAP for basic purposes. One of the most important archives I have ever had is this forum archive. Thank you very much! -- *S?meyra Bedir* -- *S?meyra Bedir* From mathieu.dutour at gmail.com Fri May 10 07:38:36 2013 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Fri, 10 May 2013 08:38:36 +0200 Subject: [GAP Forum] Conjugacy in GLn(Z) Message-ID: I have a set of matrices in GLn(Z) and I want to reduce them by conjugacy. The problem is that the existing tools in GAP seem too slow. Two matrices (but there are many others) that pose me problem now are: g1:= [ [ -1, 0, 0, 0, 0, 0, 0, 0 ], [ 0, -1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 1, 0, -1, 0 ], [ 0, 0, 0, 1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, 1, 0, 0, 1 ], [ 0, 0, -1, 0, 0, 0, 1, 0 ], [ 0, 0, 0, -1, 0, 1, -1, 0 ] ] ; g2:= [ [ 1, 0, 0, 0, 0, 0, 0, 0 ], [ 1, -1, 0, 0, 0, 0, 0, 0 ], [ 0, 0, 1, 0, 0, 0, 0, 0 ], [ 0, 0, 1, -1, 0, 0, 0, 0 ], [ 0, 0, 0, 0, -1, 0, 0, 0 ], [ 0, 0, 0, 0, 0, -1, 0, 0 ], [ 0, 0, 0, 0, 1, 1, 1, 1 ], [ 0, 0, 0, 0, -1, 0, -1, 0 ] ]; Two general strategy are available in GAP 1> Use RepresentativeAction(GL(8, Integers), g1, g2) 2> Use carat by computing the Bravais groups of Gi = BravaisGroup( Group( [gi] ) ), testing for conjugacy, computing the normalizer and then concluding. Both approaches fail for g1 and g2, i.e. take too much time. Of course it is possible to use the eigenvalue -1 of multiplicity 4 to do a reduction, but I have been designing a lot of such special cases algorithm and now I am wondering if there is possibility of improving the general algorithm. In Newman, "Integral matrices" it is mentioned for example that there is a one-to-one correspondence between the conjugacy classes of matrices A in M_n(Z) such that f(A)=0 with f irreducible over Q and the ideal classes of the ring Z[theta] with theta a root of f. Are such methods used in GAP ? But this is of course only one aspect of the problem. For example the matrices [ [0, 1], [1, 0] ] and [ [1, 0], [0,-1]] are not conjugate because the sum of integral eigenspaces form a basis of determinant 2 in the first case and 1 in the second. The enumeration of all sum V1 + V2 of integral spaces with determinant k is equivalent to the enumeration of all double cosets H A K with H = GL(n1,Z) x GL(n2,Z), K = GL(n,Z) and det A = k. Is there a way for achieving this in GAP ? Thanks in advance for any help. Mathieu From Bill.Allombert at math.u-bordeaux1.fr Fri May 10 11:04:18 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Fri, 10 May 2013 12:04:18 +0200 Subject: [GAP Forum] RootsOfPolynomialAsRadicals - nffactor: the PARI stack overflows In-Reply-To: References: <51898433.5060902@mcs.st-andrews.ac.uk> Message-ID: <20130510100418.GA28801@yellowpig> On Wed, May 08, 2013 at 09:04:01PM +0200, Daniel Blazewicz wrote: > Dear Andreas and John, > > Many thanks for your answers. > I used SetPariStackSize(256) and it helped! > > My PARI/GP version: > GP/PARI CALCULATOR Version 2.5.0 (released) > amd64 running linux (x86-64/GMP kernel) 64-bit version > compiled: Nov 17 2011, gcc-4.6.2 (Ubuntu/Linaro 4.6.2-2ubuntu1) > (readline v6.2 disabled, extended help enabled) PARI 2.5.1 and later includes a fix which improve performance and reduce memory usage for this kind of computation. Probably the reason Andreas could not reproduce this. (It is available in Ubuntu versions 12.10 and 13.04. I assume you use 12.04). Cheers, Bill. From waechtjn at studi.informatik.uni-stuttgart.de Fri May 10 12:11:22 2013 From: waechtjn at studi.informatik.uni-stuttgart.de (=?iso-8859-1?Q?Jan_Philipp_W=E4chter?=) Date: Fri, 10 May 2013 13:11:22 +0200 Subject: [GAP Forum] Wreath Product for Monoids Message-ID: <000401ce4d6f$1ac52780$504f7680$@informatik.uni-stuttgart.de> Hi, WreathProduct only accepts groups as arguments. Is there a way to calculate the wreath product of two (finite) monoids? Regards, Jan Philipp From A.Egri-Nagy at herts.ac.uk Fri May 10 13:00:03 2013 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Fri, 10 May 2013 22:00:03 +1000 Subject: [GAP Forum] Wreath Product for Monoids In-Reply-To: <000401ce4d6f$1ac52780$504f7680$@informatik.uni-stuttgart.de> References: <000401ce4d6f$1ac52780$504f7680$@informatik.uni-stuttgart.de> Message-ID: Dear Jan Philip, With the development version of the SgpDec package, https://bitbucket.org/dersu/sgpdec, you can simply do gap> S1 := Semigroup(Transformation([5,4,2,2,2]), Transformation([2,3,4,4,5])); gap> S2 := Semigroup(Transformation([6,5,4,2,2,2]), Transformation([6,2,3,4,4,5])); gap> S1wrS2 := SemigroupWreathProduct(S1,S2); gap> Size(S1wrS2); 9143008 This gives the wreath product represented as the full cascade product, definitions here: http://arxiv.org/abs/1303.0091 However, you already heard the bad news: it is in the development version. Please let me know if you need help to set it up. best, attila On Fri, May 10, 2013 at 9:11 PM, Jan Philipp W?chter wrote: > > Hi, > > WreathProduct only accepts groups as arguments. Is there a way to calculate > the wreath product of two (finite) monoids? > > Regards, > Jan Philipp > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From e.obrien at auckland.ac.nz Fri May 10 20:48:27 2013 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Sat, 11 May 2013 07:48:27 +1200 Subject: [GAP Forum] Final announcement: Workshop at Braunschweig, May 21-24 In-Reply-To: <512FF243.3050601@auckland.ac.nz> References: <512FF243.3050601@auckland.ac.nz> Message-ID: <518D4F0B.4060308@auckland.ac.nz> Dear Colleagues: We will run a workshop entitled "Questions, Algorithms, and Computations in Abstract Group Theory", at the University of Braunschweig from May 21-24. Our aim is to combine researchers from the areas of group theory, computer science and algebraic geometry to obtain new advances in the algorithmic theory of abstract groups. The program for the workshop can be found at http://www.icm.tu-bs.de/ag_algebra/ws-qac Best wishes. Eamonn O'Brien From mhxgh at yahoo.com Sun May 12 05:45:09 2013 From: mhxgh at yahoo.com (M.H.GH) Date: Sat, 11 May 2013 21:45:09 -0700 (PDT) Subject: [GAP Forum] Sylow $p$-subgroups which pairwise intersect trivially In-Reply-To: <1367904537.87903.YahooMailNeo@web125003.mail.ne1.yahoo.com> References: <1367904537.87903.YahooMailNeo@web125003.mail.ne1.yahoo.com> Message-ID: <1368333909.43835.YahooMailNeo@web125004.mail.ne1.yahoo.com> VP := function( G , p )? local P, N, R, Pi, Pj, i, ResultsSet, SizeR, SW;? P := SylowSubgroup( G , p ); N := Normalizer( G , P ); R := AsList( RightTransversal( G , N ) ); ResultsSet := []; SizeR := Size( R ); Print ( "\nUpper Bound = Size( RightCosets( G , Normalizer(G,P) ) ) = " , SizeR , " ... \n\n" ); for i in [1..Size( R )] do Pi := P^R[i]; SW := 1; for Pj in ResultsSet ?do if Size( Intersection( Pi , Pj ) ) <> 1 then SW := 0; continue; fi; od; if SW = 1 then Add( ResultsSet , Pi ); fi; od; Print ( "Result = " , Size( Set( ResultsSet ) ) , " .\n\n"); return Size( Set( ResultsSet ) ); end;; ________________________________ From: zeinab foruzanfar To: forum at gap-system.org Sent: Monday, April 29, 2013 6:57 PM Subject: [GAP Forum] (no subject) Hi. I Want some GAP program to count the number of Sylow $p$-subgroups which pairwise intersect trivially. Also I want to show that if $P$ and $Q$ are two Sylow $p$-subgroups, then the intersection of $P^x$ and $P^y$ is trivial for $x,y \in Q$. Is it possible to send me a program to count these. Thank you Best Regards _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From mhxgh at yahoo.com Sun May 12 06:22:53 2013 From: mhxgh at yahoo.com (M.H.GH) Date: Sat, 11 May 2013 22:22:53 -0700 (PDT) Subject: [GAP Forum] Finding all minimal generators of a group In-Reply-To: <000401ce4d6f$1ac52780$504f7680$@informatik.uni-stuttgart.de> References: <000401ce4d6f$1ac52780$504f7680$@informatik.uni-stuttgart.de> Message-ID: <1368336173.62340.YahooMailNeo@web125004.mail.ne1.yahoo.com> Hi, Is there any way to find?all minimal generators of a group? (Except testing all subset of group elements!) Regards, MH Ghaffari From Jan_Waechter at gmx.de Fri May 10 12:08:01 2013 From: Jan_Waechter at gmx.de (=?iso-8859-1?Q?Jan_Philipp_W=E4chter?=) Date: Fri, 10 May 2013 13:08:01 +0200 Subject: [GAP Forum] Wreath Product for Monoids Message-ID: <000301ce4d6e$a3216860$e9643920$@de> Hi, WreathProduct only accepts groups as arguments. Is there a way to calculate the wreath product of two (finite) monoids? Regards, Jan Philipp From hatlam at gmail.com Mon May 13 11:39:41 2013 From: hatlam at gmail.com (Ha T. Lam) Date: Mon, 13 May 2013 06:39:41 -0400 Subject: [GAP Forum] Curious behavior of IsAlgExtRep Message-ID: Dear GAP forum, I encountered a curious behavior when I tried to use IsAlgExtRep: x:=Indeterminate(GF(2), "x"); f:=x^5+x^3+Z(2)^0; gf:=GF(2,f); prim:=PrimitiveElement(gf); IsAlgExtRep(prim); In the above code, I expected IsAlgExtRep(prim) to return true, but it tells me that it's false instead. If I change the polynomial to: f:=x^17+x^13+x^11+x^10+x^9+x^7+x^6+x^5+x^4+x^2+Z(2)^0, it correctly tells me that IsAlgExtRep(prim) is true. I've tried a few other irreducible polynomial of degree smaller than 17 but they all returned false. Can you explain what's going on for me? Best regards, Ha T. Lam From hulpke at math.colostate.edu Mon May 13 19:55:15 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 13 May 2013 12:55:15 -0600 Subject: [GAP Forum] Curious behavior of IsAlgExtRep In-Reply-To: References: Message-ID: <63F09D95-374F-4D04-8131-CEB9161B6949@math.colostate.edu> Dear Forum, On May 13, 2013, at 5/13/13 4:39, "Ha T. Lam" wrote: > I encountered a curious behavior when I tried to use IsAlgExtRep: > > x:=Indeterminate(GF(2), "x"); > f:=x^5+x^3+Z(2)^0; > gf:=GF(2,f); > prim:=PrimitiveElement(gf); > IsAlgExtRep(prim); > > In the above code, I expected IsAlgExtRep(prim) to return true, but it > tells me that it's false instead. If I change the polynomial to: IsAlgExtRep indicates whether an element is represented internally as element of a formal (quotient of polynomial ring) algebraic extension. Fields of order <=2^16 are represented using Zech logarithms, thus they are not IsAlgExtRep (their representation is `IsInternalRep'). 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 ahulpke at gmail.com Mon May 13 22:29:05 2013 From: ahulpke at gmail.com (Alexander Hulpke) Date: Mon, 13 May 2013 15:29:05 -0600 Subject: [GAP Forum] Conjugacy in GLn(Z) In-Reply-To: References: Message-ID: Dear Forum, Dear Mathieu, > I have a set of matrices in GLn(Z) and I want to reduce them > by conjugacy. The problem is that the existing tools in GAP > seem too slow. [...] > > Two general strategy are available in GAP > 1> Use > RepresentativeAction(GL(8, Integers), g1, g2) This will start an orbit calculation on g1, trying to find g2. Thus not only will it be slow to succeed, it will not terminate if they are not conjugate. > 2> Use carat by computing the Bravais groups > of Gi = BravaisGroup( Group( [gi] ) ), testing > for conjugacy, computing the normalizer and then > concluding. This is probably the best possible with existing code. GAP doesn't really have much built-in for infinite matrix groups, in particular none of the methods you allude to have been implemented for GL over the integers. If you wanted to implement it yourself, http://www.math.uconn.edu/~kconrad/blurbs/gradnumthy/matrixconj.pdf might be a good starting point, but it in the end becomes a problem in number theory and the lack of ideal class functions would be inconvenient. Your best bet might be to see what kind of conjugacy (either over larger ring, or not perfect) you could live with. Sorry! Alexander From hulpke at math.colostate.edu Mon May 13 22:30:21 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 13 May 2013 15:30:21 -0600 Subject: [GAP Forum] Wreath Product for Monoids In-Reply-To: <000301ce4d6e$a3216860$e9643920$@de> References: <000301ce4d6e$a3216860$e9643920$@de> Message-ID: Dear Forum, Dear Jan-Philip W"achter, > WreathProduct only accepts groups as arguments. Is there a way to calculate > the wreath product of two (finite) monoids? The GAP library only provides methods to construct wreath products of (finite) groups. It would be possible to install methods for monoids using InstallOtherMethod, but I am not aware of such code. Your bet bet might be to simply construct the wreath product ``by hand''. Best, Alexander Hulpke From A.Egri-Nagy at herts.ac.uk Mon May 13 22:38:14 2013 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Tue, 14 May 2013 07:38:14 +1000 Subject: [GAP Forum] Wreath Product for Monoids In-Reply-To: References: <000301ce4d6e$a3216860$e9643920$@de> Message-ID: Hi, It seems that my previous answer made it to the Forum archive, but it was not dispatched to Forum members. Here it is: Dear Jan Philip, With the development version of the SgpDec package, https://bitbucket.org/dersu/sgpdec, you can simply do gap> S1 := Semigroup(Transformation([5,4,2,2,2]), Transformation([2,3,4,4,5])); gap> S2 := Semigroup(Transformation([6,5,4,2,2,2]), Transformation([6,2,3,4,4,5])); gap> S1wrS2 := SemigroupWreathProduct(S1,S2); gap> Size(S1wrS2); 9143008 This gives the wreath product represented as the full cascade product, definitions here: http://arxiv.org/abs/1303.0091 However, you already heard the bad news: it is in the development version. Please let me know if you need help to set it up. best, attila On Tue, May 14, 2013 at 7:30 AM, Alexander Hulpke wrote: > > > Dear Forum, Dear Jan-Philip W"achter, > >> WreathProduct only accepts groups as arguments. Is there a way to calculate >> the wreath product of two (finite) monoids? > > The GAP library only provides methods to construct wreath products of (finite) groups. It would be possible to install methods for monoids using InstallOtherMethod, but I am not aware of such code. Your bet bet might be to simply construct the wreath product ``by hand''. > > Best, > > Alexander Hulpke > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Sven.Reichard at tu-dresden.de Fri May 17 09:53:55 2013 From: Sven.Reichard at tu-dresden.de (Sven Reichard) Date: Fri, 17 May 2013 10:53:55 +0200 Subject: [GAP Forum] Fast Orbit Computation for Custom Objects? Message-ID: <5195F023.7090703@tu-dresden.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear Forum, I have the following data: - - A permutation group G; - - a set of objects obj; - - an action function. I would like to get the following: - - The union D of the orbits of obj under G (not necessarily sorted); - - the action H of G on D; - - orbit representatives. What I do is the following: orbits := Orbits(G, obj, action); representatives := List(orbits, Representative); D := Union(orbits); # sorted to accelerate the next step H := Action(G, D, action); This works well when action is a standard action such as OnSetsSets. However, for custom actions this can be very slow, suggesting that different algorithms are used. (In some of my examples, D has a million elements.) Is there a way in GAP4 to accelerate this process, for example by providing hash functions? In GAP3 there existed a solution in the contributed file coco.grp by Thei?en based on work by Faradzev et al. The question is whether there is a better way than porting that file to GAP4. Regards, Sven Reichard. - -- Institut f?r Algebra TU Dresden -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEVAwUBUZXwI2FjB3Gki4XVAQJrDgf+IdzNftD5zutKuXm/7vOWQhSOe6ZdeJ8p N+FWYHgXYuHfHPrXquv/iUzVKRaADu01+enk/T9sYIr6oEorcAO5GS0uh/5yhBSq IqL5jsvkyCbrW3jN8sjGUZanGw5z81cjx5VoigYuaON8VMB8qGMQ6w20B+0XdTss 29YZJZz1r2JMNB/Lfx7iiqHCRalfK1+qnnvimro404H2jc+sjvGH83nh6z3uZLy4 eaDBOaJgI2Uz8Nz3SL2KBEzhQ02Ipem3jEC37izS9Or20zotcog/G3v0uLsy10/G y7mcQ0lfhxH4PwQ1OpTbvFD4WHNQ1riMTmG5qtZgP9d7uymKBssmMA== =JAOJ -----END PGP SIGNATURE----- From A.Egri-Nagy at herts.ac.uk Fri May 17 10:07:11 2013 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Fri, 17 May 2013 19:07:11 +1000 Subject: [GAP Forum] Fast Orbit Computation for Custom Objects? In-Reply-To: <5195F023.7090703@tu-dresden.de> References: <5195F023.7090703@tu-dresden.de> Message-ID: Dear Sven, Most probably the orb package is what you need: http://www.gap-system.org/Packages/orb.html best, attila On Fri, May 17, 2013 at 6:53 PM, Sven Reichard wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Dear Forum, > > I have the following data: > - - A permutation group G; > - - a set of objects obj; > - - an action function. > > I would like to get the following: > - - The union D of the orbits of obj under G (not necessarily sorted); > - - the action H of G on D; > - - orbit representatives. > > What I do is the following: > > orbits := Orbits(G, obj, action); > representatives := List(orbits, Representative); > D := Union(orbits); # sorted to accelerate the next step > H := Action(G, D, action); > > This works well when action is a standard action such as OnSetsSets. > However, for custom actions this can be very slow, suggesting that > different algorithms are used. (In some of my examples, D has a > million elements.) > > Is there a way in GAP4 to accelerate this process, for example by > providing hash functions? In GAP3 there existed a solution in the > contributed file coco.grp by Thei?en based on work by Faradzev et al. > The question is whether there is a better way than porting that file > to GAP4. > > Regards, > Sven Reichard. > > - -- > > Institut f?r Algebra > TU Dresden > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.5 (GNU/Linux) > Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ > > iQEVAwUBUZXwI2FjB3Gki4XVAQJrDgf+IdzNftD5zutKuXm/7vOWQhSOe6ZdeJ8p > N+FWYHgXYuHfHPrXquv/iUzVKRaADu01+enk/T9sYIr6oEorcAO5GS0uh/5yhBSq > IqL5jsvkyCbrW3jN8sjGUZanGw5z81cjx5VoigYuaON8VMB8qGMQ6w20B+0XdTss > 29YZJZz1r2JMNB/Lfx7iiqHCRalfK1+qnnvimro404H2jc+sjvGH83nh6z3uZLy4 > eaDBOaJgI2Uz8Nz3SL2KBEzhQ02Ipem3jEC37izS9Or20zotcog/G3v0uLsy10/G > y7mcQ0lfhxH4PwQ1OpTbvFD4WHNQ1riMTmG5qtZgP9d7uymKBssmMA== > =JAOJ > -----END PGP SIGNATURE----- > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Fri May 17 18:25:02 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 17 May 2013 11:25:02 -0600 Subject: [GAP Forum] Fast Orbit Computation for Custom Objects? In-Reply-To: <5195F023.7090703@tu-dresden.de> References: <5195F023.7090703@tu-dresden.de> Message-ID: Dear Forum, Dear Sven, > I have the following data: > - - A permutation group G; > - - a set of objects obj; > - - an action function. > > I would like to get the following: > - - The union D of the orbits of obj under G (not necessarily sorted); > - - the action H of G on D; > - - orbit representatives. > > What I do is the following: > > orbits := Orbits(G, obj, action); > representatives := List(orbits, Representative); > D := Union(orbits); # sorted to accelerate the next step > H := Action(G, D, action); > > This works well when action is a standard action such as OnSetsSets. > However, for custom actions this can be very slow, suggesting that > different algorithms are used. (In some of my examples, D has a > million elements.) For `Orbits' and `Action' there aren't really different algorithms used, but performance is crucially impacted by the methods available for recording the orbit elements. This is likely where you are seeing the slowdown. Also, by first computing orbits, joining and then computing the action, you are doing the same work twice. In certain situations `SparseActionHomomorphism' might help you do this, but frankly I found that if is near impossible to define a universal optimal orbit/action routine and (given the simplicity of the code) you might be better off to code a bespoke version, modeled on the code for `SparseActionHomomorphism'. The basic operations (and time sinks) for group actions are essentially the book keeping for the orbit elements found so far (and seed elements still to treat). To unify different approaches, GAP uses its dictionary data type. Very roughly the following things happen: (This is in the code for `NewDictionary' in lib/dict.gi. - If no domain (set containing all orbits) is given GAP calls `DomainForAction' to try to construct one. A typical case would be a matrix group acting on vectors where the generic domain is the row space. - If a domain exists (was given or determined in the previous step) and this domain is a `IsQuickPositionList' (finding an element is faster than binary search) or a list known to be sorted and elements can be compared cheaply by < (indicated by `CanEasilySortElements'), and the domain has not more than 2^22 elements (avoiding too long bit lists if the domain is too large) the dictionary uses `Position'. Possibly the `Enumerator' of the domain is chosen for `Position'. - GAP calls `SparseIntKey(domain,seed)'. If this returns a function, it is taken as hash function, and a hash dictionary is used. - Otherwise if the seed fulfills `CanEasilySortElements', the dictionary uses a sorted list of elements (binary search). - Otherwise just a list is used with linear search by `=' only. This means, if you act on your ``own' objects, your preference of interventions to make the code faster is the following (always if possible): 1. If you can enumerate all elements cheaply, create a domain object that provides this enumeration via \[\] and `\Position' 2. Implement a method for `SparseIntKey' that returns a hash key function. 3. If you can implement a \< comparison method for your objects. install a method for `CanEasilySortElements' that returns `true' for these. I realize that if your objects are complicated (say you are acting on chains of subgroups) all of this is hard, but a cheap test for whether an orbit element was found already is at the heart of any orbits/action computation. > Is there a way in GAP4 to accelerate this process, for example by > providing hash functions? In GAP3 there existed a solution in the > contributed file coco.grp by Thei?en based on work by Faradzev et al. > The question is whether there is a better way than porting that file > to GAP4. Basically all of the functionality in this file is superseded by this dictionary setup. If you want help, please let me know what kinds of objects you are working with, in particular how they are represented. Alexander -- 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 Sven.Reichard at mailbox.tu-dresden.de Sat May 18 08:29:51 2013 From: Sven.Reichard at mailbox.tu-dresden.de (Sven Reichard) Date: Sat, 18 May 2013 07:29:51 +0000 Subject: [GAP Forum] Fast Orbit Computation for Custom Objects? In-Reply-To: References: <5195F023.7090703@tu-dresden.de> Message-ID: <20130518072951.Horde.aQHosGaXyz2NtUjHTIyDHA2@mail.zih.tu-dresden.de> Dear Alexander, thank you for your thorough answer. My objects aren't terribly complicated. They are partitions of [1..n] (for some fixed n) that have some classes marked as "special". They are local to a search algorithm, so their representation can be easily changed. Currently I represent them as records with two components - the partition itself as a set of sets, and the subset of special classes. From your remarks I gather that I would be better off with an ordered list (of length 2) of sets of sets. For further background: Some partitions are "stable", and I can compute - at considerable cost - the coarsest stable refinement for a given partition. The set of stable partitions is invariant under some subgroup G of SymmetricGroup(n). Now I would like to enumerate all stable partitions up to isomorphism under G. This is related to the enumeration of Schur rings. In the search objects the partition is the coarsest stable partition containing the given special classes. Cheers, Sven. Zitat von Alexander Hulpke : > Dear Forum, Dear Sven, > >> I have the following data: >> - - A permutation group G; >> - - a set of objects obj; >> - - an action function. >> >> I would like to get the following: >> - - The union D of the orbits of obj under G (not necessarily sorted); >> - - the action H of G on D; >> - - orbit representatives. >> >> What I do is the following: >> >> orbits := Orbits(G, obj, action); >> representatives := List(orbits, Representative); >> D := Union(orbits); # sorted to accelerate the next step >> H := Action(G, D, action); >> >> This works well when action is a standard action such as OnSetsSets. >> However, for custom actions this can be very slow, suggesting that >> different algorithms are used. (In some of my examples, D has a >> million elements.) > > For `Orbits' and `Action' there aren't really different algorithms > used, but performance is crucially impacted by the methods available > for recording the orbit elements. This is likely where you are > seeing the slowdown. > Also, by first computing orbits, joining and then computing the > action, you are doing the same work twice. In certain situations > `SparseActionHomomorphism' might help you do this, but frankly I > found that if is near impossible to define a universal optimal > orbit/action routine and (given the simplicity of the code) you > might be better off to code a bespoke version, modeled on the code > for `SparseActionHomomorphism'. > > The basic operations (and time sinks) for group actions are > essentially the book keeping for the orbit elements found so far > (and seed elements still to treat). To unify different approaches, > GAP uses its dictionary data type. Very roughly the following things > happen: (This is in the code for `NewDictionary' in lib/dict.gi. > > - If no domain (set containing all orbits) is given GAP calls > `DomainForAction' to try to construct one. A typical case would be a > matrix group acting on vectors where the generic domain is the row > space. > > - If a domain exists (was given or determined in the previous step) > and this domain is a `IsQuickPositionList' (finding an element is > faster than binary search) or a list known to be sorted and elements > can be compared cheaply by < (indicated by `CanEasilySortElements'), > and the domain has not more than 2^22 elements (avoiding too long > bit lists if the domain is too large) the dictionary uses > `Position'. Possibly the `Enumerator' of the domain is chosen for > `Position'. > > - GAP calls `SparseIntKey(domain,seed)'. If this returns a function, > it is taken as hash function, and a hash dictionary is used. > > - Otherwise if the seed fulfills `CanEasilySortElements', the > dictionary uses a sorted list of elements (binary search). > > - Otherwise just a list is used with linear search by `=' only. > > This means, if you act on your ``own' objects, your preference of > interventions to make the code faster is the following (always if > possible): > > 1. If you can enumerate all elements cheaply, create a domain object > that provides this enumeration via \[\] and `\Position' > > 2. Implement a method for `SparseIntKey' that returns a hash key function. > > 3. If you can implement a \< comparison method for your objects. > install a method for `CanEasilySortElements' that returns `true' for > these. > > I realize that if your objects are complicated (say you are acting > on chains of subgroups) all of this is hard, but a cheap test for > whether an orbit element was found already is at the heart of any > orbits/action computation. > >> Is there a way in GAP4 to accelerate this process, for example by >> providing hash functions? In GAP3 there existed a solution in the >> contributed file coco.grp by Thei?en based on work by Faradzev et al. >> The question is whether there is a better way than porting that file >> to GAP4. > > Basically all of the functionality in this file is superseded by > this dictionary setup. > > If you want help, please let me know what kinds of objects you are > working with, in particular how they are represented. > > Alexander > > -- 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 jdm3 at st-and.ac.uk Sat May 18 18:48:04 2013 From: jdm3 at st-and.ac.uk (James Mitchell) Date: Sat, 18 May 2013 18:48:04 +0100 Subject: [GAP Forum] Fast Orbit Computation for Custom Objects? In-Reply-To: <4437d77f446143949d7d4a595686cd32@UOS-DUN-CAS2.st-andrews.ac.uk> References: <5195F023.7090703@tu-dresden.de> <4437d77f446143949d7d4a595686cd32@UOS-DUN-CAS2.st-andrews.ac.uk> Message-ID: Dear Sven, I would second Attila's suggestion to use the Orb package. Orb contains generic orbit algorithms, and implementations for hash tables. If I were try to find an orbit of a partition with special classes under a group I would probably represent the partition as a flat list of integers: [[1,2],[3,4,6],[5]] where [1,2] and [5] are special becomes [1,1,2,2,3,2,1,0,1] (the value in the i-th position, i=1..6, is class that i belongs to and position j+6 is 1 if the j-th class is special and 0 if it is not (j=1..3)). Then you can compute the orbit by doing: o:=Orb(G, [1,1,2,2,3,2,1,0,1], MyAction, rec(forflatplainlists:=true)); Enumerate(o); where G is your group, [1,1,2,2,3,2,1,0,1] is your partition, MyAction is the action of G on partitions with special classes, and the final argument is a record which can be used to pass options to Orb. In this case, forflatplainlists:=true tells Orb that the points in the orbit you are trying to calculate are flat plain lists (lists containing no subobjects) and Orb knows how to hash such objects efficiently. Doing this you can take advantage of all the functionality of the Orb package, including hash functions and so on, without having to write your own code beyond the function MyAction. In particular, you can probably get this to work, with good performance, in a relatively short amount of time. I'd be happy to help if you have any further queries, or if something I've written is unclear. Regards, James On 18 May 2013 08:29, Sven Reichard wrote: > Dear Alexander, > > thank you for your thorough answer. My objects aren't terribly > complicated. They are partitions of [1..n] (for some fixed n) that > have some classes marked as "special". They are local to a search > algorithm, so their representation can be easily changed. Currently I > represent them as records with two components - the partition itself > as a set of sets, and the subset of special classes. From your remarks > I gather that I would be better off with an ordered list (of length 2) > of sets of sets. > > For further background: Some partitions are "stable", and I can > compute - at considerable cost - the coarsest stable refinement for a > given partition. The set of stable partitions is invariant under some > subgroup G of SymmetricGroup(n). Now I would like to enumerate all > stable partitions up to isomorphism under G. This is related to the > enumeration of Schur rings. In the search objects the partition is the > coarsest stable partition containing the given special classes. > > Cheers, > Sven. > > Zitat von Alexander Hulpke : > >> Dear Forum, Dear Sven, >> >>> I have the following data: >>> - - A permutation group G; >>> - - a set of objects obj; >>> - - an action function. >>> >>> I would like to get the following: >>> - - The union D of the orbits of obj under G (not necessarily sorted); >>> - - the action H of G on D; >>> - - orbit representatives. >>> >>> What I do is the following: >>> >>> orbits := Orbits(G, obj, action); >>> representatives := List(orbits, Representative); >>> D := Union(orbits); # sorted to accelerate the next step >>> H := Action(G, D, action); >>> >>> This works well when action is a standard action such as OnSetsSets. >>> However, for custom actions this can be very slow, suggesting that >>> different algorithms are used. (In some of my examples, D has a >>> million elements.) >> >> For `Orbits' and `Action' there aren't really different algorithms >> used, but performance is crucially impacted by the methods available >> for recording the orbit elements. This is likely where you are >> seeing the slowdown. >> Also, by first computing orbits, joining and then computing the >> action, you are doing the same work twice. In certain situations >> `SparseActionHomomorphism' might help you do this, but frankly I >> found that if is near impossible to define a universal optimal >> orbit/action routine and (given the simplicity of the code) you >> might be better off to code a bespoke version, modeled on the code >> for `SparseActionHomomorphism'. >> >> The basic operations (and time sinks) for group actions are >> essentially the book keeping for the orbit elements found so far >> (and seed elements still to treat). To unify different approaches, >> GAP uses its dictionary data type. Very roughly the following things >> happen: (This is in the code for `NewDictionary' in lib/dict.gi. >> >> - If no domain (set containing all orbits) is given GAP calls >> `DomainForAction' to try to construct one. A typical case would be a >> matrix group acting on vectors where the generic domain is the row >> space. >> >> - If a domain exists (was given or determined in the previous step) >> and this domain is a `IsQuickPositionList' (finding an element is >> faster than binary search) or a list known to be sorted and elements >> can be compared cheaply by < (indicated by `CanEasilySortElements'), >> and the domain has not more than 2^22 elements (avoiding too long >> bit lists if the domain is too large) the dictionary uses >> `Position'. Possibly the `Enumerator' of the domain is chosen for >> `Position'. >> >> - GAP calls `SparseIntKey(domain,seed)'. If this returns a function, >> it is taken as hash function, and a hash dictionary is used. >> >> - Otherwise if the seed fulfills `CanEasilySortElements', the >> dictionary uses a sorted list of elements (binary search). >> >> - Otherwise just a list is used with linear search by `=' only. >> >> This means, if you act on your ``own' objects, your preference of >> interventions to make the code faster is the following (always if >> possible): >> >> 1. If you can enumerate all elements cheaply, create a domain object >> that provides this enumeration via \[\] and `\Position' >> >> 2. Implement a method for `SparseIntKey' that returns a hash key function. >> >> 3. If you can implement a \< comparison method for your objects. >> install a method for `CanEasilySortElements' that returns `true' for >> these. >> >> I realize that if your objects are complicated (say you are acting >> on chains of subgroups) all of this is hard, but a cheap test for >> whether an orbit element was found already is at the heart of any >> orbits/action computation. >> >>> Is there a way in GAP4 to accelerate this process, for example by >>> providing hash functions? In GAP3 there existed a solution in the >>> contributed file coco.grp by Thei?en based on work by Faradzev et al. >>> The question is whether there is a better way than porting that file >>> to GAP4. >> >> Basically all of the functionality in this file is superseded by >> this dictionary setup. >> >> If you want help, please let me know what kinds of objects you are >> working with, in particular how they are represented. >> >> Alexander >> >> -- 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 -- James Mitchell tinyurl.com/jdmitchell The University of St Andrews is a charity registered in Scotland : No SC013532 From kozmos1986 at gmail.com Sun May 26 17:50:50 2013 From: kozmos1986 at gmail.com (kozmos kozmos) Date: Sun, 26 May 2013 19:50:50 +0300 Subject: [GAP Forum] memory allocation in GAP Message-ID: Hi, I tried to use the -a memory and -a memory commands but they are not working please tell me how these commands are exactly used From alexk at mcs.st-andrews.ac.uk Mon May 27 10:19:15 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 27 May 2013 10:19:15 +0100 Subject: [GAP Forum] International Workshop "Parallel programming in GAP" Message-ID: <561D569B-E50D-48FA-B6EF-2CAFB9D6074F@mcs.st-andrews.ac.uk> This is a reminder that registration deadlines are July 15th 2013 for the full registration, and August 5th 2013 if you don't need an accommodation. Apologies if you receive this more than once. * * * International Workshop "Parallel programming in GAP" August 18th-24th, 2013, University of St Andrews, Scotland http://www.gap-system.org/hpcgap2013/ The workshop is organised by the Centre of Interdisciplinary Research in Computational Algebra of the University of St Andrews. It is supported by the EPSRC project "HPC-GAP: High Performance Computational Algebra and Discrete Mathematics": http://www-circa.mcs.st-and.ac.uk/hpcgap.php In this project we are reengineering the GAP system to take advantage of computer architectures suitable for parallel computations. The workshop is organised to present the results of the project to the GAP community, and we invite everyone who is interested in parallel programming in GAP. Developers of GAP and authors of GAP packages are particularly welcome, since your contribution will be important to eventually transform the HPC-GAP version of the system into the next mainstream release. The workshop will comprise of lectures and tutorials given by the participants of the HPC-GAP project, and case studies sessions where we intend to look at some particular GAP packages and estimate main tasks needed to adapt them to HPC-GAP. We plan to allow enough time to work in small groups and have informal discussions about HPC-GAP and GAP development in general. Schedule: - August 18th (Sunday): Arrival day - August 19th-23th (Monday-Friday): Workshop - August 24th (Saturday): Departure day Registration and accommodation: The organisers will provide a limited number of B&B places in McIntosh Hall . These will be provided free of charge and will be allocated on a first come - first served basis, so early registration is advised. If there will be larger demand for accommodation, we will help you to find another place to stay and will partially contribute towards the costs of your accommodation. We regret that there is no support available for daily expenses and travel. To register, please send your contact details to organisers by email to hpcgap2013 at gap-system.org Deadlines: - for the full registration: July 15th 2013 - for the non-residential registration: August 5th 2013 Organisers: - Steve Linton - Reimer Behrends - Vladimir Janjic - Alexander Konovalov - John McDermott - Angela Miguel - Max Neunh?ffer From msorouhesh at gmail.com Thu May 30 14:19:08 2013 From: msorouhesh at gmail.com (Mohammad Reza Sorouhesh) Date: Thu, 30 May 2013 17:49:08 +0430 Subject: [GAP Forum] (no subject) Message-ID: Dear Forum, Here is my question on MathSE [http://math.stackexchange.com/q/406425/8581]. I think, I should not bring up the question there so please have a look at it. The main point I am looking for is "Is there any codes in GAP in which if we are given a finite group inside a semigroup, as Clifford cited, then we can find the similar finite group to it? " Thanks for the time you give me and Best From jjm at mcs.st-and.ac.uk Fri May 31 14:44:04 2013 From: jjm at mcs.st-and.ac.uk (John McDermott) Date: Fri, 31 May 2013 14:44:04 +0100 Subject: [GAP Forum] Last chance: LMS/EPSRC Short Course in Computational Group Theory Message-ID: <69911F67-A993-4D2A-9236-03CC74DF5462@mcs.st-andrews.ac.uk> Dear all, a reminder about the following: LMS/EPSRC Short Instructional Course in Computational Group Theory St Andrews, July 29th to August 2nd 2013 LMS/EPSRC Short Courses aim to provide training for postgraduate students in core areas of mathematics. There will be four mini-series of lectures as follows Permutation Groups Alexander Hulpke (Colorado State University) Soluble Groups and p-groups Bettina Eick (Technische Universit?t Braunschweig) Matrix Groups/Constructive Recognition Derek Holt (University of Warwick) Finitely Presented Groups Max Neunh?ffer (University of St Andrews) along with two specialist lectures and extensive laboratory time, primarily using GAP (http://www.gap-system.org). The deadline for applications for places on this course is Monday 17th of June. However we have already had a good many applications and the number of available places (more particularly the amount of available accommodation) is limited. See the course website - http://www-circa.mcs.st-and.ac.uk/cgt2013/index.shtml - for full details and a link to the LMS pages for applications. John McDermott, for the organisers. -- John McDermott Scientific Officer Centre for Interdisciplinary Research in Computational Algebra School of Computer Science University of St Andrews North Haugh, St Andrews, Fife KY16 9SX SCOTLAND The University of St Andrews is committed to sustainable practices and the preservation of the environment. Please do not print this email unless absolutely necessary. The University of St Andrews is a charity registered in Scotland : No SC013532 From harshaarora.2008 at gmail.com Mon Jun 3 15:34:02 2013 From: harshaarora.2008 at gmail.com (Harsha Arora) Date: Mon, 3 Jun 2013 20:04:02 +0530 Subject: [GAP Forum] semi direct product Message-ID: Hello sir I want to know the syntax of semidirect product. How can i know wih small group id the group is direct or aemi direct product of ts subgroups From lonpencs at qq.com Wed Jun 5 16:08:48 2013 From: lonpencs at qq.com (=?ISO-8859-1?B?Rmxpc3BoeQ==?=) Date: Wed, 5 Jun 2013 23:08:48 +0800 Subject: [GAP Forum] cyclotomic number Message-ID: Dear gap developers, Could I convert cyclotomic number into complex number using gap? yours, Peng Long From alexk at mcs.st-and.ac.uk Tue Jun 11 20:31:56 2013 From: alexk at mcs.st-and.ac.uk (Alexander Konovalov) Date: Tue, 11 Jun 2013 20:31:56 +0100 Subject: [GAP Forum] cyclotomic number In-Reply-To: References: Message-ID: <60AFF8D2-39EE-4983-8B22-508E7E3C9CCF@mcs.st-andrews.ac.uk> On 5 Jun 2013, at 16:08, Flisphy wrote: > Dear gap developers, > > Could I convert cyclotomic number into complex number using gap? > > yours, > > Peng Long Dear Peng Long, cyclotomic numbers *are* complex numbers - I guess what you may have in mind is getting a floating-point approximation of the real and imaginary parts of a cyclotomic number. This can be achieved using the GAP package Float by Laurent Bartholdi: see http://laurentbartholdi.github.io/float/chap0.html For example, gap> LoadPackage("float"); Loading FLOAT 0.5.10 ... true gap> SetFloats(MPC); gap> Float(E(6)); .5e0+.866025e0? gap> x:=E(3)+E(5)^2; -E(15)-E(15)^2-E(15)^8-2*E(15)^11-E(15)^14 gap> y:=Float(x); -.130902e1+.145381e1? gap> Norm(y); .382709e1 gap> RealPart(y); -.130902e1 gap> ImaginaryPart(y); .145381e1 gap> ComplexConjugate(y); -.130902e1-.145381e1? See the documentation for the Float package for installation requirements and further details. In particular, I am not aware of Float being usable under Windows. Hope this helps, Alexander From colva at mcs.st-and.ac.uk Fri Jun 14 15:15:20 2013 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Fri, 14 Jun 2013 15:15:20 +0100 Subject: [GAP Forum] Groups St Andrews 2013: deadlines approaching Message-ID: <823355B3-4362-4952-9D88-EB2BAFC7D9BC@mcs.st-and.ac.uk> Dear Colleagues This is a brief update on preparations for Groups St Andrews 2013. The website has been substantially updated, and now contains an outline academic programme, as well as much more information about the social programme. There's also travel information, and much else besides. Please see http://www.groupsstandrews.org/2013/index.shtml. Various conference deadlines are approaching! - 30th June is the deadline for submitting an abstract for a contributed talk. - 1st July is the deadline for submitting an article to the Proceedings. - 12th July is the deadline for booking accommodation via the University of St Andrews. We look forward to seeing you all in St Andrews in August The Organisers The University of St Andrews is a charity registered in Scotland : No SC013532 From katie.nil85 at gmail.com Sat Jun 15 00:43:03 2013 From: katie.nil85 at gmail.com (Katie Nilsson) Date: Fri, 14 Jun 2013 16:43:03 -0700 Subject: [GAP Forum] A problem to generate output within a loop Message-ID: Hi, I want to list the following information for all non-abelian group of order 24. I want their structure, conjugacy classes, orders of the elements of the conjugacy classes and irreduicble characters. I wrote this program, but it is not working! the loop create nothing!!! l := AllSmallGroups(24);; List(l,StructureDescription);; A:=Filtered(l, x->IsAbelian(x)=false); Length(A); for i in [1..Length(A)] do A[i]; Cl:=ConjugacyClasses(A[i]); RCl:=List(Cl, x->Representative(x)); Ocl:=List(RCl, x->Order(x)); irr:=Irr(A[i]); od; Can someone tell me what's wrong? and how can i do it? to me seems for loop just can run from start to end and at the end can store the result of the last loop! thanks Katie From nikos.ap at gmail.com Sat Jun 15 01:44:38 2013 From: nikos.ap at gmail.com (Nikos Apostolakis) Date: Fri, 14 Jun 2013 20:44:38 -0400 Subject: [GAP Forum] A problem to generate output within a loop In-Reply-To: References: Message-ID: If I understand correctly what you're trying to do, you want to do something like: l := AllSmallGroups(24); Ds := List(l,StructureDescription); A:=Filtered(l, x->IsAbelian(x)=false); Cl := List( A, ConjugacyClasses); RCl := List( Cl, Representative); OCl := List( RCl, Order); irr := List( A, Irr); Hope this Helps, Nikos On Fri, Jun 14, 2013 at 7:43 PM, Katie Nilsson wrote: > Hi, > I want to list the following information for all non-abelian group of order > 24. I want their structure, conjugacy classes, orders of the elements of > the conjugacy classes and irreduicble characters. > I wrote this program, but it is not working! the loop create nothing!!! > > l := AllSmallGroups(24);; List(l,StructureDescription);; A:=Filtered(l, > x->IsAbelian(x)=false); > > Length(A); > > for i in [1..Length(A)] do > > A[i]; > > Cl:=ConjugacyClasses(A[i]); > > RCl:=List(Cl, x->Representative(x)); > > Ocl:=List(RCl, x->Order(x)); > > irr:=Irr(A[i]); > od; > > Can someone tell me what's wrong? and how can i do it? > to me seems for loop just can run from start to end and at the end can > store the result of the last loop! > > thanks > Katie > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From arbautjc at gmail.com Sun Jun 16 21:48:02 2013 From: arbautjc at gmail.com (Jean-Claude Arbaut) Date: Sun, 16 Jun 2013 22:48:02 +0200 Subject: [GAP Forum] Idempotents modulo N Message-ID: Hello GAP users, GAP can compute idempotents, like this : a := Idempotents(MatrixAlgebra(Integers mod 3, 2)); List(a, x -> x*x - x); For Integers mod n, it also works, but it's not very fast. However, it's a fairly easy task, using chinese remainder theorem, and if n = p1^k1 * ... * ps^ks, then there are 2^s solutions. Here is a program to compute them, in case it can be useful. IdempotentsMod := function(n) local a, m, s, r; m := List(Collected(FactorsInt(n)), v -> v[1]^v[2]); s := Length(m); a := []; for r in IteratorOfTuples([0, 1], s) do Add(a, ChineseRem(m, r)); od; Sort(a); return List(a, x -> ZmodnZObj(x, n)); end; For example : n := 2000000; Idempotents(Integers mod n); IdempotentsMod(n) = last; Length(IdempotentsMod(Factorial(50))); Jean-Claude Arbaut From vale02002 at yahoo.com Sun Jun 16 21:50:52 2013 From: vale02002 at yahoo.com (hossein akhlaghi) Date: Sun, 16 Jun 2013 13:50:52 -0700 (PDT) Subject: [GAP Forum] FW: hossein akhlaghi Message-ID: <1371415852.61457.YahooMailNeo@web164602.mail.gq1.yahoo.com> hello! http://www.mebel-cn.com/honqiit/ozbsn/tvajs/ghksf.html hossein akhlaghi From magidin at member.ams.org Mon Jun 17 17:31:19 2013 From: magidin at member.ams.org (Arturo Magidin) Date: Mon, 17 Jun 2013 11:31:19 -0500 (CDT) Subject: [GAP Forum] Computing a nonabelian tensor square Message-ID: Dear GAP Forum, I'm not very familiar with the sundry methods for computing the nonabelian tensor square using GAP, or for testing its structural properties. I need a quick computation and I'm hoping someone can point me to the right direction for doing so. Specifically, I'd like to check the following (full disclosure: it has to do with a paper I'm refereeing): Let Z be the infinite cyclic group, and let G be the semidirect product of Z with itself, with Z acting nontrivially; that is, G = < x,y | x^y = x^{-1} > I would like to check whether the nonabelian tensor square of G has torsion, and to confirm that the nonabelian tensor square of G/Z(G) does in fact have torsion. (G/Z(G) is the infinite dihedral group, as Z(G) = ). Thank you, Arturo From menger at math.binghamton.edu Mon Jun 17 21:07:27 2013 From: menger at math.binghamton.edu (Luise Kappe) Date: Mon, 17 Jun 2013 16:07:27 -0400 (EDT) Subject: [GAP Forum] Computing a nonabelian tensor square In-Reply-To: References: Message-ID: Arturo, Your question is completely answered by Theorem 4.4 in the paper "Infinite metacyclic groups and their non-abelian tensor squares" by J.R.Beuerle and L.-C.Kappe, Proceedings Edinburgh Mathematical Society (2000) 43, 651-662. The non-abelian tensor square of G is isomorphic to C_4 x C_2 x C_0 x C_0, and the non-abelian tensor square of G/Z(G) is isomorphic to C_2 x C_2 x C_2 x C_0. Hope that helps, LCK On Mon, 17 Jun 2013, Arturo Magidin wrote: > Dear GAP Forum, > > I'm not very familiar with the sundry methods for computing the nonabelian > tensor square using GAP, or for testing its structural properties. I need a > quick computation and I'm hoping someone can point me to the right direction > for doing so. > > Specifically, I'd like to check the following (full disclosure: it has to do > with a paper I'm refereeing): > > Let Z be the infinite cyclic group, and let G be the semidirect product of Z > with itself, with Z acting nontrivially; that is, > > G = < x,y | x^y = x^{-1} > > > I would like to check whether the nonabelian tensor square of G has torsion, > and to confirm that the nonabelian tensor square of G/Z(G) does in fact have > torsion. (G/Z(G) is the infinite dihedral group, as Z(G) = ). > > Thank you, > > Arturo > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > > From beick at tu-bs.de Tue Jun 18 07:19:44 2013 From: beick at tu-bs.de (Bettina Eick) Date: Tue, 18 Jun 2013 08:19:44 +0200 (CEST) Subject: [GAP Forum] Computing a nonabelian tensor square In-Reply-To: References: Message-ID: Dear Arturo, > Let Z be the infinite cyclic group, and let G be the semidirect product of Z > with itself, with Z acting nontrivially; that is, > > G = < x,y | x^y = x^{-1} > > > I would like to check whether the nonabelian tensor square of G has torsion, > and to confirm that the nonabelian tensor square of G/Z(G) does in fact have > torsion. (G/Z(G) is the infinite dihedral group, as Z(G) = ). This can be done as follows: # create G as group with power-conjugate presentation gap> c := FromTheLeftCollector(2); <> gap> SetConjugate(c, 2, 1, [2,-1]); gap> UpdatePolycyclicCollector(c); gap> G := PcpGroupByCollector(c); Pcp-group with orders [ 0, 0 ] # compute the non-abelian tensor square gap> H := NonAbelianTensorSquare(G); Pcp-group with orders [ 0, 0, 2, 4 ] gap> TH := TorsionSubgroup(H); Pcp-group with orders [ 2, 4 ] gap> Size(TH); 8 # one can also investigate H further gap> IsAbelian(H); true gap> AbelianInvariants(H); [ 0, 0, 2, 4 ] # and one can do a similar computation with G/Center(G) gap> K := G/Center(G); Pcp-group with orders [ 2, 0 ] gap> L := NonAbelianTensorSquare(K); Pcp-group with orders [ 0, 2, 2, 2 ] gap> IsAbelian(L); true gap> AbelianInvariants(L); [ 0, 2, 2, 2 ] Best wishes, Bettina From arbautjc at gmail.com Tue Jun 18 11:17:40 2013 From: arbautjc at gmail.com (Jean-Claude Arbaut) Date: Tue, 18 Jun 2013 12:17:40 +0200 Subject: [GAP Forum] Factoring Mersenne numbers Message-ID: Hello, While I was playing with FactorsInt and FactInt, I was quite impressed by FactorsInt(2^467 - 1); FactorsInt(2^919 - 1); 467 and 919 are prime. The factors found are quite large: 58 decimal digits for the first, and 126 for the other. These are not the largest factors, but the second largest, and I would have expected the task to be harder. I'm almost sure they are not "cached", since factorization can take hours for other Mersenne numbers, even with much smaller factors (M604 seems to be harder for GAP, with a second-largest factor of "only" 32 digits). On the other hand, Yafu takes much more time to factor these two numbers. Of course, factorization speed depends on the method used, the choice of parameters... and luck (some numbers will be better broken with the right combination of parameters I bet). Now, is this only luck, or is there some good reason for GAP (algorithm better suited to Mersenne numbers ?) to find these factors so fast ? Best regards, Jean-Claude Arbaut From stefan at mcs.st-and.ac.uk Tue Jun 18 14:00:45 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 18 Jun 2013 14:00:45 +0100 (BST) Subject: [GAP Forum] Factoring Mersenne numbers In-Reply-To: References: Message-ID: Dear Forum, Jean-Claude Arbaut wrote: > While I was playing with FactorsInt and FactInt, I was quite impressed by > > FactorsInt(2^467 - 1); > > FactorsInt(2^919 - 1); > > 467 and 919 are prime. The factors found are quite large: 58 decimal digits > for > the first, and 126 for the other. These are not the largest factors, but > the second largest, > and I would have expected the task to be harder. > I'm almost sure they are not "cached", since factorization can take hours > for other > Mersenne numbers, even with much smaller factors (M604 seems to be harder > for GAP, with a second-largest factor of "only" 32 digits). > > On the other hand, Yafu takes much more time to factor these two numbers. > Of course, factorization speed depends on the method used, the choice of > parameters... and luck (some numbers will be better broken with the right > combination of parameters I bet). > > Now, is this only luck, or is there some good reason for GAP (algorithm > better suited to Mersenne numbers ?) to find these factors so fast ? The integer factorization routine implemented in the FactInt package makes use of a combination of various factoring methods. These include: - Trial division, - Database lookup, - Caches (single factors and complete factorizations), - Various tricks for special cases, - Pollard Rho, - Pollard p-1 / Williams' p+1, - ECM (Elliptic Curves Method) and - MPQS (Multiple Polynomial Quadratic Sieve) For Mersenne numbers (or more generally, for numbers of the form a^b +/- 1 for small a and b), it uses Richard P. Brent's Factor Tables (http://maths-people.anu.edu.au/~brent/factors.html). The copy shipped together with FactInt has been updated for the last time on June 16, 2011. The issue with 2^604-1 is simply that the database does not contain the factor 130530323901899210670077, which therefore needs to be found by doing 'actual work' (I tried it on my Laptop, and the factor was found by ECM in about half a minute). Best regards, Stefan Kohl From arbautjc at gmail.com Tue Jun 18 16:06:08 2013 From: arbautjc at gmail.com (Jean-Claude Arbaut) Date: Tue, 18 Jun 2013 17:06:08 +0200 Subject: [GAP Forum] Factoring Mersenne numbers In-Reply-To: References: Message-ID: Thanks ! So there is indeed a table of factors... I know some of the factorization methods cited, but I wasn't aware of this optimization. Jean-Claude Arbaut 2013/6/18 Stefan Kohl > Dear Forum, > > Jean-Claude Arbaut wrote: > > While I was playing with FactorsInt and FactInt, I was quite impressed by > > > > FactorsInt(2^467 - 1); > > > > FactorsInt(2^919 - 1); > > > > 467 and 919 are prime. The factors found are quite large: 58 decimal > digits > > for > > the first, and 126 for the other. These are not the largest factors, but > > the second largest, > > and I would have expected the task to be harder. > > I'm almost sure they are not "cached", since factorization can take hours > > for other > > Mersenne numbers, even with much smaller factors (M604 seems to be harder > > for GAP, with a second-largest factor of "only" 32 digits). > > > > On the other hand, Yafu takes much more time to factor these two numbers. > > Of course, factorization speed depends on the method used, the choice of > > parameters... and luck (some numbers will be better broken with the right > > combination of parameters I bet). > > > > Now, is this only luck, or is there some good reason for GAP (algorithm > > better suited to Mersenne numbers ?) to find these factors so fast ? > > The integer factorization routine implemented in the FactInt package > makes use of a combination of various factoring methods. These include: > > - Trial division, > - Database lookup, > - Caches (single factors and complete factorizations), > - Various tricks for special cases, > - Pollard Rho, > - Pollard p-1 / Williams' p+1, > - ECM (Elliptic Curves Method) and > - MPQS (Multiple Polynomial Quadratic Sieve) > > For Mersenne numbers (or more generally, for numbers of the form a^b +/- 1 > for small a and b), it uses Richard P. Brent's Factor Tables > (http://maths-people.anu.edu.au/~brent/factors.html). The copy shipped > together with FactInt has been updated for the last time on June 16, 2011. > > The issue with 2^604-1 is simply that the database does not contain > the factor 130530323901899210670077, which therefore needs to be found > by doing 'actual work' (I tried it on my Laptop, and the factor was found > by ECM in about half a minute). > > Best regards, > > Stefan Kohl > > > From Nick.Gill at open.ac.uk Fri Jun 21 16:31:50 2013 From: Nick.Gill at open.ac.uk (Nick.Gill) Date: Fri, 21 Jun 2013 16:31:50 +0100 Subject: [GAP Forum] Converting lists of groups into direct products Message-ID: <60667691F130CD418BD0D4FC512EF91217B5B1728F@SALCEYCMS1.open.ac.uk> Hello GAP-forum, I'm new to the group, so not familiar with the protocol. Forgive me if I'm asking a stupid question and/or omitting vital information... I have a list of groups - grouplist - and two lists of elements - elist1, elist2 - such that, for each index i, elist1[i] and elist2[i] are members of grouplist[i]. Now I use the command D:= DirectProduct(grouplist) Here's what I want to do next: (1) I would like to convert elist1, elist2 into a format where GAP recognises them as members of D, i.e. I want to convert them from being lists into tuples. (2) Find the subgroup of D generated by elist1 and elist2. It's (1) that I'm having trouble with - how do I do it?! The groups in grouplist, incidentally, are either permutation groups or quotients of the free group on 2 letters. I don't know if this fact is important... All replies appreciated. Warning: I'm extremely ignorant at GAP so have limited capacity to understand complicated responses! Nick -- The Open University is incorporated by Royal Charter (RC 000391), an exempt charity in England & Wales and a charity registered in Scotland (SC 038302). From max at quendi.de Sun Jun 23 08:02:30 2013 From: max at quendi.de (Max Horn) Date: Sun, 23 Jun 2013 09:02:30 +0200 Subject: [GAP Forum] Converting lists of groups into direct products In-Reply-To: <60667691F130CD418BD0D4FC512EF91217B5B1728F@SALCEYCMS1.open.ac.uk> References: <60667691F130CD418BD0D4FC512EF91217B5B1728F@SALCEYCMS1.open.ac.uk> Message-ID: <1CFF91D7-5A29-4EB7-BD19-BC19343FB70E@quendi.de> Dear Nick, On 21.06.2013, at 17:31, Nick.Gill wrote: > Hello GAP-forum, > > I'm new to the group, so not familiar with the protocol. Forgive me if I'm asking a stupid question and/or omitting vital information... > > I have a list of groups - grouplist - and two lists of elements - elist1, elist2 - such that, for each index i, elist1[i] and elist2[i] are members of grouplist[i]. > > Now I use the command > D:= DirectProduct(grouplist) > Here's what I want to do next: > (1) I would like to convert elist1, elist2 into a format where GAP recognises them as members of D, i.e. I want to convert them from being lists into tuples. The official way is to use the embedding homomorphisms. Here is a brief example: gap> g:=Group((1,2,3),(1,2));; gap> h:=Group((1,2,3,4,5));; gap> d:=DirectProduct(g,h); Group([ (1,2,3), (1,2), (4,5,6,7,8) ]) gap> list := [ (1,2), (1,5,4,3,2) ]; gap> e1:=Embedding(d,1); 1st embedding into Group([ (1,2,3), (1,2), (4,5,6,7,8) ]) gap> e2:=Embedding(d,2); 2nd embedding into Group([ (1,2,3), (1,2), (4,5,6,7,8) ]) gap> x := list[1]^e1 * list[2]^e2; (1,2)(4,8,7,6,5) This has the advantage of working regardless of how the direct product of your groups is implemented -- as a set of tuples, as a permutation group, a polycyclic group, a finitely presented group or otherwise. You talk about "tuples". Well, GAP only uses "tuples" to represent elements of direct products if it doesn't know a "better" way (as is the case in the example above). This usually only is the case when you form the direct product of groups of different types, such as the direct product of a permutation group with a finitely presented groups; since you mention that below, I assume you are doing that. In this situation, there is a different, (undocumented!) way to indeed convert a list of group elements into a "tuple" element, which might be more convenient in your situation: using DirectProductElement. This could look as follows: gap> G:=SymmetricGroup(4); Sym( [ 1 .. 4 ] ) gap> F:=FreeGroup(2); gap> H:=F/[ F.1^2, F.2^2 ]; gap> H:=F/[ F.1^2, F.2^2 ]; gap> D:=DirectProduct(G,H); gap> elist1:=[G.1, H.1]; [ (1,2,3,4), f1 ] gap> elist2:=[G.2, H.2]; [ (1,2), f2 ] gap> g1:=DirectProductElement(elist1); DirectProductElement( [ (1,2,3,4), f1 ] ) gap> g2:=DirectProductElement(elist2); DirectProductElement( [ (1,2), f2 ] ) Note that this is undocumented, and thus could change in future versions of GAP (but for a one-time computation, that doesn't matter, of course). Moreover, the code using Embedding also would work in this context, e.g. like this: gap> g1:=Product(List([1,2], i->elist1[i]^Embedding(D,i))); DirectProductElement( [ (1,2,3,4), f1 ] ) > (2) Find the subgroup of D generated by elist1 and elist2. > > It's (1) that I'm having trouble with - how do I do it?! > > The groups in grouplist, incidentally, are either permutation groups or quotients of the free group on 2 letters. I don't know if this fact is important... Out of completeness, and continuing the example from above: gap> K:=Subgroup(D, [g1, g2]); However, if the factors of the direct product are indeed of different type, as above, then the resulting group object will be of limited use, and computations with it may be much less efficient than theoretically possible, since not that much work went into making computations with such groups efficient. So depending on what exactly you want to do with that subgroup, it might be more effective to first convert the factors of your direct product into groups of the same type, before computing the direct product and working with it. > > All replies appreciated. Warning: I'm extremely ignorant at GAP so have limited capacity to understand complicated responses! I hope the above was clear enough, but if not, please do not hesitate to ask for clarifications or further examples. Cheers, Max From msorouhesh at gmail.com Wed Jun 26 09:20:47 2013 From: msorouhesh at gmail.com (Mohammad Reza Sorouhesh) Date: Wed, 26 Jun 2013 12:50:47 +0430 Subject: [GAP Forum] Simplifying the resulted elements in a Free group Message-ID: Dear Forum, Consider you define a certain free group with,"g:=FreeGroup (...)" as we usually do. Sometimes, we call the elements by "Element(g)" as well to examine the elements for some purposes. GAP gives them all like "a*b^2" or something like this. GAP neither write them as for example "ab^2" (by omitting the *) nor simplify the elements which can be simplified regarding to Free group relations. For example if we have (a*b)^3=1 in the relations of Free group, we still have "a^3*b*a*b" in output. Sometimes, we consider GAP to simplify this element regard to that relation by writhing it as a^ib^j for proper positive integers i and j. Any help will be appreciated. Thanks for the time you give me, M.R.Sorouhesh From rrburns at cox.net Thu Jun 27 22:52:14 2013 From: rrburns at cox.net (Sopsku) Date: Thu, 27 Jun 2013 21:52:14 +0000 (UTC) Subject: [GAP Forum] =?utf-8?q?How_do_I_study_fields_like_ZN=5BX=7D/=3Cpol?= =?utf-8?q?y=3E_in_GAP?= Message-ID: Dear Forum, I am new to GAP and trying hard to come up to speed with all the GAP documentation. In particular I can't figure out which functions are available to set up and solve the following (rather simple) problem: Consider the a finite field over n elements over a polynomial, for example, the field Z_2[X]/. Find the elements and give the addition and multiplication tables. (I have no problem solving this "by hand" (or using Mathematica), but I can't seem to figure how to get the job done in GAP) Thank you for any specific solution or even pointers to the GAP functions that I should be using. Sopsku From rrburns at cox.net Thu Jun 27 23:51:33 2013 From: rrburns at cox.net (Sopsku) Date: Thu, 27 Jun 2013 22:51:33 +0000 (UTC) Subject: [GAP Forum] Basic help on output (MultiplicationTable) References: Message-ID: Luiz Meier writes: > > Hello people, > > I'm reading and testing the book: > > Abstract Algebra - An Interactive Approach (Mathematica and GAP) Paulsen > (CRC) ISBN: > > OBS.: The book uses the command MultTable (when it was changed to > MultiplicationTable command?) > What am I doing wrong? Where can I found informations about such simple > things to avoid to bore you all? Thank you all in advance. > I believe your problem may rest with the fact that there is a file of functions for this book and MultTable is one of Paulsen's fuctions and not a GAP function. Sopsu From Sven.Reichard at tu-dresden.de Fri Jun 28 13:59:41 2013 From: Sven.Reichard at tu-dresden.de (Sven Reichard) Date: Fri, 28 Jun 2013 14:59:41 +0200 Subject: [GAP Forum] How do I study fields like ZN[X}/ in GAP In-Reply-To: References: Message-ID: <51CD88BD.9040009@tu-dresden.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 27.06.2013 23:52, schrieb Sopsku: > Dear Forum, > > I am new to GAP and trying hard to come up to speed with all the > GAP documentation. > > In particular I can't figure out which functions are available to > set up and solve the following (rather simple) problem: > > Consider the a finite field over n elements over a polynomial, for > example, the field Z_2[X]/. Find the elements and give the > addition and multiplication tables. > > (I have no problem solving this "by hand" (or using Mathematica), > but I can't seem to figure how to get the job done in GAP) > > Thank you for any specific solution or even pointers to the GAP > functions that I should be using. Sopsku > Dear Sopsku, here's one possibility. Probably there are more elegant ways. gap> x := Indeterminate(GF(2), "x"); x gap> r := PolynomialRing(GF(2)); GF(2)[x] gap> p := x^2+x+1; x^2+x+Z(2)^0 gap> i := Ideal(r, [p]); gap> quotient := r/i; gap> Size(last); 4 gap> # addition table gap> PrintArray(List(quotient, x -> List(quotient, y -> x+y))); [ [ 0*(1), (x), (1), (1)+(x) ], [ (x), 0*(1), (1)+(x), (1) ], [ (1), (1)+(x), 0*(1), (x) ], [ (1)+(x), (1), (x), 0*(1) ] ] gap> # multiplication table gap> PrintArray(List(quotient, x -> List(quotient, y -> x*y))); [ [ 0*(1), 0*(1), 0*(1), 0*(1) ], [ 0*(1), (1)+(x), (x), (1) ], [ 0*(1), (x), (1), (1)+(x) ], [ 0*(1), (1), (1)+(x), (x) ] ] Cheers, Sven Reichard. - -- Institut f?r Algebra TU Dresden -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEVAwUBUc2IvWFjB3Gki4XVAQKvVAf+MHPvsJ8Emavx2AObOlUiEFW7icsjU+gw UwNGF8W6dU9P8emlRTn4EKweeuvZngET19Q4JhDw+AeAXfaRtG67ZMTBB7grvtlL Fsx6pmT/QJ+iG2AjYD4wzJlxic+HqQOenrRyQmePXPFLpq6UXI8eKNaaD4cz5Fx3 ixl8H61iTzceD0PiUg1renFEQOO4TWS83WC22MRfU837Pb240V2dMXluIC8r8v++ iVcOLAQY+r+mowQHh4RaeOmzyzVT7UB1lPt1lPhFPtAkyIcbfr66LnD8Bs/7nxnt EF80eA2G2uemNdx/RFEhwXbdMGHd4omac3kQjBbXm02REDZyCOLfpQ== =UTEw -----END PGP SIGNATURE----- From rrburns at cox.net Sun Jun 30 21:28:27 2013 From: rrburns at cox.net (Sopsku) Date: Sun, 30 Jun 2013 20:28:27 +0000 (UTC) Subject: [GAP Forum] =?utf-8?b?V2hhdCBkb2VzICA8WyBbIDEsIDEgXSBdfGIqYV4t?= =?utf-8?q?1=3E_mean?= Message-ID: Dear Forum, I am continuing my struggle to learn a bit about GAP. I formed the octahedral group using three elements (altho this is not important to to questions). I asked GAP for gap> asg:=AllSubgroups(g);; ## Look at the elements for one of these subgroups gap> Elements(asg[24]); [ , a*c^-1, <[ [ 1, 1 ] ]|b*a^-1>, c^-1*b, <[ [ 2, 1 ] ]|c*a^-1>, c*b^-1 ] I do not understand the notation, such as, <[ [ 1, 1 ] ]|b*a^-1> I have tried searching through the GAP manuals and some tutorials with no luck is seeing anything expect the rather obvious which is defined in the manuals. Thank you for any help! Sopsku From ahulpke at gmail.com Mon Jul 1 15:06:14 2013 From: ahulpke at gmail.com (Alexander Hulpke) Date: Mon, 1 Jul 2013 08:06:14 -0600 Subject: [GAP Forum] What does <[ [ 1, 1 ] ]|b*a^-1> mean In-Reply-To: References: Message-ID: Dear Forum, On Jun 30, 2013 asked: > octahedral group using three elements (altho this is not important to to > questions). I asked GAP for > gap> asg:=AllSubgroups(g);; > ## Look at the elements for one of these subgroups > gap> Elements(asg[24]); > [ , a*c^-1, <[ [ 1, 1 ] ]|b*a^-1>, c^-1*b, > <[ [ 2, 1 ] ]|c*a^-1>, c*b^-1 ] > > I do not understand the notation, such as, <[ [ 1, 1 ] ]|b*a^-1> This is the element b*a, stored via a straight line program. (This representation happens as the calculation of subgroups uses some nontrivial homomorphisms, for larger groups it saves memory.) These elements behave fr all practical purposes just like the normal words in finitely presented groups. Regards, Alexander Hulpke From rrburns at cox.net Mon Jul 1 16:34:58 2013 From: rrburns at cox.net (Sopsku) Date: Mon, 1 Jul 2013 15:34:58 +0000 (UTC) Subject: [GAP Forum] =?utf-8?b?V2hhdCBkb2VzICA8WyBbIDEsIDEgXSBdfGIqYV4t?= =?utf-8?q?1=3E_mean?= References: Message-ID: Alexander Hulpke writes: > > I do not understand the notation, such as, <[ [ 1, 1 ] ]|b*a^-1> > > This is the element b*a, stored via a straight line program. ... > Alexander Hulpke I still do not understand how to decode b*a from <[ [ 1, 1 ] ]|b*a^-1>. Sorry for my denseness! Sopsku From ghorbani1002 at yahoo.com Thu Jul 11 08:22:35 2013 From: ghorbani1002 at yahoo.com (Ebrahim Ghorbani) Date: Thu, 11 Jul 2013 00:22:35 -0700 (PDT) Subject: [GAP Forum] Partitions and orbits of automorphism groups Message-ID: <1373527355.6993.YahooMailBasic@web162802.mail.bf1.yahoo.com> Dear Forum, I have a partition of the vertex set of a vertex-transitive graph G. I guess that this partition are the orbit partition of some subgroup of Aut(G). Is there any way to find out this? Thanks, Ebrahim From matan at svgalib.org Thu Jul 11 08:43:25 2013 From: matan at svgalib.org (Matan Ziv-Av) Date: Thu, 11 Jul 2013 10:43:25 +0300 (IDT) Subject: [GAP Forum] Partitions and orbits of automorphism groups In-Reply-To: <1373527355.6993.YahooMailBasic@web162802.mail.bf1.yahoo.com> References: <1373527355.6993.YahooMailBasic@web162802.mail.bf1.yahoo.com> Message-ID: On Thu, 11 Jul 2013, Ebrahim Ghorbani wrote: > Dear Forum, > > I have a partition of the vertex set of a vertex-transitive graph G. > I guess that this partition are the orbit partition of some subgroup of Aut(G). > Is there any way to find out this? Find the stabilizer (as a tuple of sets) of the partition in Aut(G). If the orbits of any subgroup gives this partition, then the stabilizer also does. -- Matan Ziv-Av. matan at svgalib.org From Sven.Reichard at tu-dresden.de Thu Jul 11 08:51:46 2013 From: Sven.Reichard at tu-dresden.de (Sven Reichard) Date: Thu, 11 Jul 2013 09:51:46 +0200 Subject: [GAP Forum] Partitions and orbits of automorphism groups In-Reply-To: <1373527355.6993.YahooMailBasic@web162802.mail.bf1.yahoo.com> References: <1373527355.6993.YahooMailBasic@web162802.mail.bf1.yahoo.com> Message-ID: <51DE6412.8010406@tu-dresden.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 11.07.2013 09:22, schrieb Ebrahim Ghorbani: > Dear Forum, > > I have a partition of the vertex set of a vertex-transitive graph > G. I guess that this partition are the orbit partition of some > subgroup of Aut(G). Is there any way to find out this? > > Thanks, Ebrahim > > _______________________________________________ Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > Dear Ebrahim, say the partition is P. If it is the orbit partition of some group of automorphisms, then in particular it is the orbit partition of its own stabilizer in the full group Aut(G). Thus, if P is given as a set of sets, we can simply test as follows: gap> stab := Stabilizer(Aut(G), P, OnSetsSets); gap> Length(P) = Length(Orbits(stab, [1..G.order])); (We just compare the lengths so we don't have to sort the orbits.) Hope this helps, Sven. - -- Sven Reichard Institut f?r Algebra TU Dresden -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEVAwUBUd5kEmFjB3Gki4XVAQKPaAf/YlogMdZlgQ1H5rntibCFa/x/xLrTPVF7 994ml4dZEHsORWftMpbbXeeCux5APUCaoTc0hKdU1vZx7wJYcUjwqCF8L5HW96vm LsP1CNfDmDFKiXSrGN9bTp0DrGhNNf4ALrGeivz2wl6NKssvhLeeYMr2hW/ljySe OS3P6diNj6pgErbMhCAPi51S7z7Mg4ross2VsS6udzSIjGVSQrT75cqDtDpxWRDl adB5ljderR8lj2Vr9w5YqtFvOLxLjqdZGIDT+wdlB8IPmTZAYFEj6CN9DbSAKVVw wp0yQ858tVJ12bXSrQLR1gWtflBQS6Tml3nglWS82FsC/RKl5WWfsg== =xRcS -----END PGP SIGNATURE----- From Sven.Reichard at tu-dresden.de Thu Jul 11 08:54:07 2013 From: Sven.Reichard at tu-dresden.de (Sven Reichard) Date: Thu, 11 Jul 2013 09:54:07 +0200 Subject: [GAP Forum] Partitions and orbits of automorphism groups In-Reply-To: References: <1373527355.6993.YahooMailBasic@web162802.mail.bf1.yahoo.com> Message-ID: <51DE649F.4070200@tu-dresden.de> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 11.07.2013 09:43, schrieb Matan Ziv-Av: > On Thu, 11 Jul 2013, Ebrahim Ghorbani wrote: > >> Dear Forum, >> >> I have a partition of the vertex set of a vertex-transitive graph >> G. I guess that this partition are the orbit partition of some >> subgroup of Aut(G). Is there any way to find out this? > > Find the stabilizer (as a tuple of sets) of the partition in > Aut(G). If the orbits of any subgroup gives this partition, then > the stabilizer also does. > > Of course Matan is right; we need to consider tuples of sets, not sets of sets as I said earlier. Sven. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEVAwUBUd5kn2FjB3Gki4XVAQK9hQf/STfL04nAzZQFXU9PO2C0Z50UT0hQGuVF zmzwb6Es9c0Fjgk2WqtE+9hz5v8/7VVKnud/D+ZsVfg+NuWxBttmd3I2ErYX8na4 X0mcAdpZ9bK1mgzvDBCC4W724nXGk24dNpMCj73N1MTSDe4KlB60zMpIRtwAUD6i Keg1fXvt8xtSKfsuoGB77JU2XfrqWAY3nGMsk85WEnSLn7m7SR+MOv4JWsJlChik BTvoLuKUCbZDWtq+cHu9HFB7Tf0eZ5B+AuNluM3WLdSbPt7ZCCNcVlZZEaUpf2Si wsf5ONVYc8VM+UBHgFHnq35wO6hw+G22swCJPyBC6EABpDNI6GK9mQ== =P00o -----END PGP SIGNATURE----- From L.H.Soicher at qmul.ac.uk Thu Jul 11 16:47:29 2013 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Thu, 11 Jul 2013 16:47:29 +0100 (BST) Subject: [GAP Forum] Partitions and orbits of automorphism groups In-Reply-To: <51DE649F.4070200@tu-dresden.de> Message-ID: <337661218.719618.1373557649814.JavaMail.root@planck.maths.qmul.ac.uk> Dear GAP-Forum, Note that you can use the GRAPE function AutGroupGraph (which calls nauty) to determine directly the stabiliser of an ordered partition of the vertices of a graph in the automorphism group of that graph. See the documentation for AutGroupGraph. For example: gap> LoadPackage("grape"); true gap> J:=JohnsonGraph(4,2); rec( adjacencies := [ [ 2, 3, 4, 5 ] ], group := Group([ (1,4,6,3)(2,5), (2,4)(3,5) ]), isGraph := true, isSimple := true, names := [ [ 1, 2 ], [ 1, 3 ], [ 1, 4 ], [ 2, 3 ], [ 2, 4 ], [ 3, 4 ] ], order := 6, representatives := [ 1 ], schreierVector := [ -1, 2, 1, 1, 1, 1 ] ) gap> H:=AutGroupGraph(J,[[1],[6],[2,5],[3,4]]); Group([ (3,4), (2,5) ]) gap> Size(H); 4 gap> Orbits(H,[1..J.order]); [ [ 1 ], [ 2, 5 ], [ 3, 4 ], [ 6 ] ] Regards, Leonard ----- Original Message ----- From: "Sven Reichard" To: forum at gap-system.org Sent: Thursday, 11 July, 2013 8:54:07 AM Subject: Re: [GAP Forum] Partitions and orbits of automorphism groups -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Am 11.07.2013 09:43, schrieb Matan Ziv-Av: > On Thu, 11 Jul 2013, Ebrahim Ghorbani wrote: > >> Dear Forum, >> >> I have a partition of the vertex set of a vertex-transitive graph >> G. I guess that this partition are the orbit partition of some >> subgroup of Aut(G). Is there any way to find out this? > > Find the stabilizer (as a tuple of sets) of the partition in > Aut(G). If the orbits of any subgroup gives this partition, then > the stabilizer also does. > > Of course Matan is right; we need to consider tuples of sets, not sets of sets as I said earlier. Sven. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.5 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQEVAwUBUd5kn2FjB3Gki4XVAQK9hQf/STfL04nAzZQFXU9PO2C0Z50UT0hQGuVF zmzwb6Es9c0Fjgk2WqtE+9hz5v8/7VVKnud/D+ZsVfg+NuWxBttmd3I2ErYX8na4 X0mcAdpZ9bK1mgzvDBCC4W724nXGk24dNpMCj73N1MTSDe4KlB60zMpIRtwAUD6i Keg1fXvt8xtSKfsuoGB77JU2XfrqWAY3nGMsk85WEnSLn7m7SR+MOv4JWsJlChik BTvoLuKUCbZDWtq+cHu9HFB7Tf0eZ5B+AuNluM3WLdSbPt7ZCCNcVlZZEaUpf2Si wsf5ONVYc8VM+UBHgFHnq35wO6hw+G22swCJPyBC6EABpDNI6GK9mQ== =P00o -----END PGP SIGNATURE----- _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From stefanosaivazidis at gmail.com Fri Jul 12 22:58:55 2013 From: stefanosaivazidis at gmail.com (Stefanos Aivazidis) Date: Fri, 12 Jul 2013 22:58:55 +0100 Subject: [GAP Forum] Order of elements in a group and their statistics Message-ID: Dear forum, I have the following (rather naive) question to ask: what is the most efficient way to find the spectrum of a finite group G, and compute for each integer in the spectrum the number of elements with given order? An integer d lies in the spectrum of G iff there exists at least one g in G such that o(g)=d. The algorithm, I imagine, should proceed along these lines: 1) define the group G, 2) compute the set of divisors of |G| and store this as a list L, 3) refine L (by excluding those divisors of |G| which do not appear as element orders) to obtain the spectrum of G and store this in a new list L', 4) compute how many elements of G have order d, for each d in L' Your thoughts on how to make this precise algorithmically would be much appreciated. Also, is it possible to produce a graph with the statistics found by the main programme? Many thanks in advance. Best wishes, Stefanos From vkicefire at gmail.com Fri Jul 12 23:14:58 2013 From: vkicefire at gmail.com (Vee Kay) Date: Fri, 12 Jul 2013 23:14:58 +0100 Subject: [GAP Forum] Order of elements in a group and their statistics In-Reply-To: References: Message-ID: <51E07FE2.3080101@gmail.com> On 12/07/13 22:58, Stefanos Aivazidis wrote: > Dear forum, > > I have the following (rather naive) question to ask: what is the > most efficient way to find the spectrum of a finite group G, and > compute for each integer in the spectrum the number of elements with > given order? An integer d lies in the spectrum of G iff there exists > at least one g in G such that o(g)=d. The algorithm, I imagine, should > proceed along these lines: > > 1) define the group G, > 2) compute the set of divisors of |G| and store this as a list L, > 3) refine L (by excluding those divisors of |G| which do not > appear as element orders) to obtain the spectrum of G and > store this in a new list L', > 4) compute how many elements of G have order d, for each d in L' > > Your thoughts on how to make this precise algorithmically would > be much appreciated. Also, is it possible to produce a graph with > the statistics found by the main programme? > > Many thanks in advance. > > Best wishes, > Stefanos > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum Are steps 2 and 3 necessary then? I would imagine something like, i) define the group G ii) for each element in G, compute its order. add it to the spectrum (if not already there) and increment by one the number of times it appears (in a separate list presumably). Don't know if there'd be a more efficient way to do this. VK From shahmaths_problem at hotmail.com Sat Jul 13 07:40:07 2013 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Sat, 13 Jul 2013 11:40:07 +0500 Subject: [GAP Forum] Order of elements in a group and their statistics In-Reply-To: References: Message-ID: Dear Stefanos, Imitating and modifying a function "orderFrequency" of Alexander Hulpke, your function of spectrum should be as follows. spectrum:= function(g) local h,w; w:= []; w:= h -> Set(Elements(h), Order); return w(g); end; See also the following application of the function gap> s3:=SymmetricGroup(IsPermGroup,3); Sym( [ 1 .. 3 ] ) gap> s7:=SymmetricGroup(IsPermGroup,7); Sym( [ 1 .. 7 ] ) gap> spectrum(s3); [ 1, 2, 3 ] gap> spectrum(s7); [ 1, 2, 3, 4, 5, 6, 7, 10, 12 ] Hopes this helps, Muhammad Shah > Date: Fri, 12 Jul 2013 22:58:55 +0100 > From: stefanosaivazidis at gmail.com > To: forum at gap-system.org > Subject: [GAP Forum] Order of elements in a group and their statistics > > Dear forum, > > I have the following (rather naive) question to ask: what is the > most efficient way to find the spectrum of a finite group G, and > compute for each integer in the spectrum the number of elements with > given order? An integer d lies in the spectrum of G iff there exists > at least one g in G such that o(g)=d. The algorithm, I imagine, should > proceed along these lines: > > 1) define the group G, > 2) compute the set of divisors of |G| and store this as a list L, > 3) refine L (by excluding those divisors of |G| which do not > appear as element orders) to obtain the spectrum of G and > store this in a new list L', > 4) compute how many elements of G have order d, for each d in L' > > Your thoughts on how to make this precise algorithmically would > be much appreciated. Also, is it possible to produce a graph with > the statistics found by the main programme? > > Many thanks in advance. > > Best wishes, > Stefanos > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From stefan at mcs.st-and.ac.uk Sat Jul 13 11:45:44 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Sat, 13 Jul 2013 11:45:44 +0100 (BST) Subject: [GAP Forum] Order of elements in a group and their statistics In-Reply-To: References: Message-ID: Stefanos Aivazidis wrote: > I have the following (rather naive) question to ask: what is the > most efficient way to find the spectrum of a finite group G, and > compute for each integer in the spectrum the number of elements with > given order? An integer d lies in the spectrum of G iff there exists > at least one g in G such that o(g)=d. The algorithm, I imagine, should > proceed along these lines: > > 1) define the group G, > 2) compute the set of divisors of |G| and store this as a list L, > 3) refine L (by excluding those divisors of |G| which do not > appear as element orders) to obtain the spectrum of G and > store this in a new list L', > 4) compute how many elements of G have order d, for each d in L' > > Your thoughts on how to make this precise algorithmically would > be much appreciated. The following function should do what you want: OrderStatistics := function ( G ) local ccl; ccl := List(ConjugacyClasses(G),cl->[Order(Representative(cl)),Size(cl)]); return List(Set(TransposedMat(ccl)[1]), d->[d,Sum(List(Filtered(ccl,cl->cl[1]=d),cl->cl[2]))]); end; For example: gap> OrderStatistics(AlternatingGroup(20)); [ [ 1, 1 ], [ 2, 11798364735 ], [ 3, 3044269834280 ], [ 4, 147223414987200 ], [ 5, 189239120970624 ], [ 6, 4300403589581400 ], [ 7, 34479959558400 ], [ 8, 6979977625420800 ], [ 9, 8470676211379200 ], [ 10, 16976210865344640 ], [ 11, 609493248000 ], [ 12, 65698234614230400 ], [ 13, 37132204032000 ], [ 14, 8807580134496000 ], [ 15, 61842055316670720 ], [ 16, 76028187755520000 ], [ 17, 23851980472320000 ], [ 18, 81549282342528000 ], [ 19, 128047474114560000 ], [ 20, 22125275344972800 ], [ 21, 3030432354892800 ], [ 22, 806359567104000 ], [ 24, 54379597079808000 ], [ 26, 3898881423360000 ], [ 28, 26584005786624000 ], [ 30, 64123306600953600 ], [ 33, 3515557054464000 ], [ 35, 6125354900121600 ], [ 36, 22808456326656000 ], [ 39, 12996271411200000 ], [ 40, 22301601741619200 ], [ 42, 69870172724352000 ], [ 44, 11519422387200000 ], [ 45, 11488703927500800 ], [ 51, 47703960944640000 ], [ 52, 23393288540160000 ], [ 55, 1843107581952000 ], [ 56, 14481559572480000 ], [ 60, 40248008530329600 ], [ 63, 14481559572480000 ], [ 65, 18714630832128000 ], [ 66, 23038844774400000 ], [ 70, 17920929970944000 ], [ 72, 16895152834560000 ], [ 77, 15798064988160000 ], [ 78, 7797762846720000 ], [ 84, 12671364625920000 ], [ 90, 3379030566912000 ], [ 91, 26735186903040000 ], [ 99, 24574767759360000 ], [ 105, 4441011602227200 ], [ 110, 5529322745856000 ], [ 120, 20274183401472000 ], [ 126, 4827186524160000 ], [ 132, 9215537909760000 ], [ 140, 6516701807616000 ], [ 165, 14744860655616000 ], [ 168, 7240779786240000 ], [ 180, 6758061133824000 ], [ 210, 8688935743488000 ] ] > Also, is it possible to produce a graph with > the statistics found by the main programme? What kind of graph do you wish to produce from the data? Best regards, Stefan Kohl From colva at mcs.st-and.ac.uk Mon Jul 15 15:38:05 2013 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Mon, 15 Jul 2013 15:38:05 +0100 Subject: [GAP Forum] Groups St Andrews, Final deadlines Message-ID: <27672ED2-65E9-4619-8128-F59940EFB715@mcs.st-and.ac.uk> Dear Colleagues The final deadline for booking university accommodation at Groups St Andrews has been extended to 5pm (BST) this WEDNESDAY, 17TH JULY. It will still be possible to register after that, but accommodation options in town may be very limited. We have also extended the deadline for submitting an abstract for a contributed talk to this FRIDAY, 19TH JULY. The conference website is here: http://www.groupsstandrews.org/2013/index.shtml Further details about the conference are at the end of this message. Best wishes The Organisers (Colin Campbell, Max Neunhoeffer, Martyn Quick, Edmund Robertson and Colva Roney-Dougal) ************* Principal Speakers: Emmanuel Breuillard: Approximate groups Martin Liebeck: Width questions for simple groups Alan Reid: Profinite properties of discrete groups Karen Vogtmann: Out(F_n), GL(n,Z) and everything in between: automorphism groups of right-angled Artin groups One Hour Speakers: Radha Kessar: Finiteness conjectures in modular representation theory Markus Lohrey: Rational subsets in groups Derek Robinson: Recent Results on Generalized Baumslag-Solitar Groups Christopher Voll: Zeta functions of groups and rings: recent developments Over 100 contributed talks so far! In addition, there will be an extensive social programme, including an excursion to Falkland Palace, a Musical Evening, and much more. The University of St Andrews is a charity registered in Scotland : No SC013532 From L.H.Soicher at qmul.ac.uk Thu Jul 25 15:52:19 2013 From: L.H.Soicher at qmul.ac.uk (Leonard Soicher) Date: Thu, 25 Jul 2013 15:52:19 +0100 (BST) Subject: [GAP Forum] Mathematics PhD studentships at Queen Mary Message-ID: <1523183474.736648.1374763938990.JavaMail.root@planck.maths.qmul.ac.uk> The School of Mathematical Sciences at Queen Mary, Univesity of London has three studentships available (with some restrictions) for PhD students starting this autumn, 2013. Details on these studentships are available at: http://www.maths.qmul.ac.uk/projects-and-research-themes/projects-and-research-themes In particular, I would be very happy for an experienced GAP user to apply to do my suggested project "Graph colouring exploiting symmetry". The deadline for applications is August 12. All qualified candidates are encouraged to apply! Leonard Soicher From alexander.konovalov at gmail.com Fri Jul 26 12:35:49 2013 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Fri, 26 Jul 2013 12:35:49 +0100 Subject: [GAP Forum] GAP 4.6.5 release announcement Message-ID: <53AB6019-1073-4B94-8654-707A95E4D826@gmail.com> Dear GAP Forum, This is to announce the release of GAP 4.6.5. You can download GAP 4.6.5 from http://www.gap-system.org/Releases/ The alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives will be updated in due course. The overview of changes in GAP 4.6.5 is given below. Improved functionality: * TraceMethods and UntraceMethods now better check their arguments and provide a sensible error message if being called without arguments. Also, both variants of calling them are now documented. * Library methods for Sortex are now replaced by faster ones using the kernel SortParallel functionality instead of making expensive zipped lists. Fixed bugs which could lead to incorrect results: * IntHexString wrongly produced a large integer when there were too many leading zeros. [Reported by Joe Bohanon] Fixed bugs that could lead to break loops: * A bug that may occur in some cases while calling TransitiveIdentification. [Reported by Izumi Miyamoto] * The new code for semidirect products of permutation groups, introduced in GAP 4.6, had a bug which was causing problems for Projection. [Reported by Graham Ellis] In addition to the improved functionality and fixed bugs in the core GAP system, the following packages have been updated since the previous GAP 4.6.4 release: AutoDoc, CRISP, EDIM, Float, HAP, hecke, IRREDSOL, Modules, NumericalSgps and Smallsemi. We encourage all users to upgrade to GAP 4.6.5. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. Please note that we regularly update the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We intend to use the Forum to announce updates of the core GAP system and only of some packages which may fix serious issues or have major influence on GAP. Wishing you fun and success using GAP, The GAP Group From sandeepr.murthy at gmail.com Fri Jul 26 21:14:49 2013 From: sandeepr.murthy at gmail.com (Sandeep Murthy) Date: Fri, 26 Jul 2013 21:14:49 +0100 Subject: [GAP Forum] GAP 4.6.5 release announcement In-Reply-To: <53AB6019-1073-4B94-8654-707A95E4D826@gmail.com> References: <53AB6019-1073-4B94-8654-707A95E4D826@gmail.com> Message-ID: <51F2D8B9.2090507@gmail.com> Hi, I currently have 4.6.4, but want to upgrade to 4.6.5. Will there be an update soon to the BOB tool for 4.6.5? Sandeep. Alexander Konovalov wrote: > Dear GAP Forum, > > This is to announce the release of GAP 4.6.5. > > You can download GAP 4.6.5 from > > http://www.gap-system.org/Releases/ > > The alternative GAP distributions listed at > > http://www.gap-system.org/Download/#alternatives > > will be updated in due course. > > The overview of changes in GAP 4.6.5 is given below. > > Improved functionality: > > * TraceMethods and UntraceMethods now better check their arguments > and provide a sensible error message if being called without > arguments. Also, both variants of calling them are now documented. > > * Library methods for Sortex are now replaced by faster ones using > the kernel SortParallel functionality instead of making expensive > zipped lists. > > Fixed bugs which could lead to incorrect results: > > * IntHexString wrongly produced a large integer when there were too > many leading zeros. [Reported by Joe Bohanon] > > Fixed bugs that could lead to break loops: > > * A bug that may occur in some cases while calling > TransitiveIdentification. [Reported by Izumi Miyamoto] > > * The new code for semidirect products of permutation groups, > introduced in GAP 4.6, had a bug which was causing problems for > Projection. [Reported by Graham Ellis] > > In addition to the improved functionality and fixed bugs in the > core GAP system, the following packages have been updated since > the previous GAP 4.6.4 release: AutoDoc, CRISP, EDIM, Float, > HAP, hecke, IRREDSOL, Modules, NumericalSgps and Smallsemi. > > We encourage all users to upgrade to GAP 4.6.5. If you need any > help or would like to report any problems, please do not hesitate > to contact us at support at gap-system.org. > > Please note that we regularly update the GAP distribution to include > new versions of GAP packages, but we may not announce each of them > to the Forum. We intend to use the Forum to announce updates of the > core GAP system and only of some packages which may fix serious > issues or have major influence on GAP. > > > Wishing you fun and success using GAP, > The GAP Group > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From neunhoef at mcs.st-and.ac.uk Fri Jul 26 21:17:44 2013 From: neunhoef at mcs.st-and.ac.uk (Max Neunhoeffer) Date: Fri, 26 Jul 2013 21:17:44 +0100 Subject: [GAP Forum] GAP 4.6.5 release announcement In-Reply-To: <51F2D8B9.2090507@gmail.com> References: <53AB6019-1073-4B94-8654-707A95E4D826@gmail.com> <51F2D8B9.2090507@gmail.com> Message-ID: <20130726201744.GA11181@mcs.st-and.ac.uk> Hi Sandeep, I will try to provide this as soon as possible but these days are quite busy for me therefore I cannot promise a time at this stage. Cheers, Max. On Fri, Jul 26, 2013 at 09:14:49PM +0100, Sandeep Murthy wrote: > Hi, > > I currently have 4.6.4, but want to upgrade to 4.6.5. Will there be > an update soon to the BOB tool for 4.6.5? > > Sandeep. > > > > Alexander Konovalov wrote: > >Dear GAP Forum, > > > >This is to announce the release of GAP 4.6.5. > > > >You can download GAP 4.6.5 from > > > > http://www.gap-system.org/Releases/ > > > >The alternative GAP distributions listed at > > > > http://www.gap-system.org/Download/#alternatives > > > >will be updated in due course. > > > >The overview of changes in GAP 4.6.5 is given below. > > > >Improved functionality: > > > >* TraceMethods and UntraceMethods now better check their arguments > > and provide a sensible error message if being called without > > arguments. Also, both variants of calling them are now documented. > > > >* Library methods for Sortex are now replaced by faster ones using > > the kernel SortParallel functionality instead of making expensive > > zipped lists. > > > >Fixed bugs which could lead to incorrect results: > > > >* IntHexString wrongly produced a large integer when there were too > > many leading zeros. [Reported by Joe Bohanon] > > > >Fixed bugs that could lead to break loops: > > > >* A bug that may occur in some cases while calling > > TransitiveIdentification. [Reported by Izumi Miyamoto] > > > >* The new code for semidirect products of permutation groups, > > introduced in GAP 4.6, had a bug which was causing problems for > > Projection. [Reported by Graham Ellis] > > > >In addition to the improved functionality and fixed bugs in the > >core GAP system, the following packages have been updated since > >the previous GAP 4.6.4 release: AutoDoc, CRISP, EDIM, Float, > >HAP, hecke, IRREDSOL, Modules, NumericalSgps and Smallsemi. > > > >We encourage all users to upgrade to GAP 4.6.5. If you need any > >help or would like to report any problems, please do not hesitate > >to contact us at support at gap-system.org. > > > >Please note that we regularly update the GAP distribution to include > >new versions of GAP packages, but we may not announce each of them > >to the Forum. We intend to use the Forum to announce updates of the > >core GAP system and only of some packages which may fix serious > >issues or have major influence on GAP. > > > > > >Wishing you fun and success using GAP, > >The GAP Group > > > > > >_______________________________________________ > >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 jnsebastian at hotmail.com Mon Jul 29 16:34:31 2013 From: jnsebastian at hotmail.com (cbazz ..U8) Date: Mon, 29 Jul 2013 10:34:31 -0500 Subject: [GAP Forum] =?utf-8?q?ayuda_y_soporte_t=C3=A9cnico_-_Help_and_Sup?= =?utf-8?q?port?= In-Reply-To: References: Message-ID: Primero quiero reconocer la importancia de GAP en la matem?tica su ayuda y su gran beneficio para estudiantes y docentes. Soy un estudiante de Licenciatura en Matem?ticas de la Universidad de Nari?o en Colombia. Mi intencion es mejorar mi proyecto de grado acerca de las bases de Gr?bner presentando algunos algoritmos con ayuda de este importante programa. Solicito ayuda acerca de la siguiente inquietud. ?Es posible llamar a una funci?n hecha por mi en GAP desde otro ordenador? es decir ?Se puede registrar funciones y utilizarlas en la realizaci?n de otros algoritmos?Para un mejor interpretacion presento el siguiente ejemplo.En GAP existen muchas funciones de algoritmos algebraicos para utilizarlos por ejemplo calculo del cociente y residuo de dos polonomios por medio de la funci?n QuotientRemainder, de la misma manera yo necesito utilizar una funcion que yo realize para utilizarlo en la realizaci?n de otros algoritmos como la anterior funcion anterior. Espero su ayuda y por su colaboraci?n anticipo sinceros agradecimientos. Muchas Gracias Sebastian OviedoLicenciatura en Matem?ticasUniversidad de Nari?o - Colombia First I want to acknowledge the importance of GAP in mathematics your help and your great benefit to students and teachers. I am a student of Bachelor of Mathematics from the University of Nari?o in Colombia. My intention is to improve my graduation project about Gr?bner bases presenting some algorithms using this important program. Request help on the following concern.Is it possible to call a function in GAP made ??by me from another computer? ie Is it possible to register functions and use them in the performance of other algorithms?For better interpretation present the following example.In GAP there are many functions of algebraic algorithms to use for example calculating the quotient and remainder of two polonomios through QuotientRemainder function, in the same way I need to use a function that I Realize for use in the performance of other algorithms as above previous function.I hope your help and advance collaboration sincere thanks. many Thanks Sebastian OviedoBachelor of MathematicsUniversity of Nari?o - Colombia From hebert.perez at gmail.com Tue Jul 30 08:50:21 2013 From: hebert.perez at gmail.com (=?ISO-8859-1?B?SGViZXJ0IFDpcmV6LVJvc+lz?=) Date: Tue, 30 Jul 2013 09:50:21 +0200 Subject: [GAP Forum] =?iso-8859-1?q?ayuda_y_soporte_t=E9cnico_-_Help_and_S?= =?iso-8859-1?q?upport?= In-Reply-To: References: Message-ID: As far as I know, you cannot use a GAP function outside GAP, but let the experts say the last word :-) El 29 de julio de 2013 17:34, cbazz ..U8 escribi?: > > > > > Primero quiero reconocer la importancia de GAP en la matem?tica su ayuda y > su gran beneficio para estudiantes y docentes. Soy un estudiante de > Licenciatura en Matem?ticas de la Universidad de Nari?o en Colombia. Mi > intencion es mejorar mi proyecto de grado acerca de las bases de Gr?bner > presentando algunos algoritmos con ayuda de este importante programa. > Solicito ayuda acerca de la siguiente inquietud. ?Es posible llamar a una > funci?n hecha por mi en GAP desde otro ordenador? es decir ?Se puede > registrar funciones y utilizarlas en la realizaci?n de otros > algoritmos?Para un mejor interpretacion presento el siguiente ejemplo.En > GAP existen muchas funciones de algoritmos algebraicos para utilizarlos por > ejemplo calculo del cociente y residuo de dos polonomios por medio de la > funci?n QuotientRemainder, de la misma manera yo necesito utilizar una > funcion que yo realize para utilizarlo en la realizaci?n de otros > algoritmos como la anterior funcion anterior. Espero su ayuda y por su > colaboraci?n anticipo sinceros agradecimientos. > Muchas Gracias > Sebastian OviedoLicenciatura en Matem?ticasUniversidad de Nari?o - Colombia > > First I want to acknowledge the importance of GAP in mathematics your help > and your great benefit to students and teachers. I am a student of Bachelor > of Mathematics from the University of Nari?o in Colombia. My intention is > to improve my graduation project about Gr?bner bases presenting some > algorithms using this important program. Request help on the following > concern.Is it possible to call a function in GAP made by me from another > computer? ie Is it possible to register functions and use them in the > performance of other algorithms?For better interpretation present the > following example.In GAP there are many functions of algebraic algorithms > to use for example calculating the quotient and remainder of two polonomios > through QuotientRemainder function, in the same way I need to use a > function that I Realize for use in the performance of other algorithms as > above previous function.I hope your help and advance collaboration sincere > thanks. > many Thanks > Sebastian OviedoBachelor of MathematicsUniversity of Nari?o - Colombia > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From dima at ntu.edu.sg Tue Jul 30 12:30:28 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Tue, 30 Jul 2013 12:30:28 +0100 Subject: [GAP Forum] =?utf-8?q?ayuda_y_soporte_t=C3=A9cnico_-_Help_and_Sup?= =?utf-8?q?port?= In-Reply-To: References: Message-ID: 2013/7/30 Hebert P?rez-Ros?s : > As far as I know, you cannot use a GAP function outside GAP, but let the > experts say the last word :-) with Sage's libGAP, you can call GAP functions (well, you might need to write a bit of code to deal with particular functions). This works not only within Sage, but also without Sage. See https://bitbucket.org/vbraun/libgap/overview and test subdirectory in https://bitbucket.org/vbraun/libgap/src for an example of calling GAP from C. HTH, Dmitrii 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From alexk at mcs.st-andrews.ac.uk Tue Jul 30 12:38:21 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 30 Jul 2013 12:38:21 +0100 Subject: [GAP Forum] =?iso-8859-1?q?ayuda_y_soporte_t=E9cnico_-_Help_and_S?= =?iso-8859-1?q?upport?= In-Reply-To: References: Message-ID: <84C98BD7-5532-4F09-B002-9B0C54DF1A57@mcs.st-andrews.ac.uk> With GAP SCSCP package (http://www.cs.st-andrews.ac.uk/~alexk/scscp/) GAP functions may be exported for remote procedure calls by any SCSCP-compliant client which may be other computer algebra system or another software - see http://www.symcomp.org/ for systems that may connect and for APIs to develop own applications. I am not sure if the original question was about this, though - could it be about saving GAP function to a file to read it on another computer? Best wishes, Alexander On 30 Jul 2013, at 08:50, Hebert P?rez-Ros?s wrote: > As far as I know, you cannot use a GAP function outside GAP, but let the > experts say the last word :-) > > > El 29 de julio de 2013 17:34, cbazz ..U8 escribi?: > >> >> >> >> >> Primero quiero reconocer la importancia de GAP en la matem?tica su ayuda y >> su gran beneficio para estudiantes y docentes. Soy un estudiante de >> Licenciatura en Matem?ticas de la Universidad de Nari?o en Colombia. Mi >> intencion es mejorar mi proyecto de grado acerca de las bases de Gr?bner >> presentando algunos algoritmos con ayuda de este importante programa. >> Solicito ayuda acerca de la siguiente inquietud. ?Es posible llamar a una >> funci?n hecha por mi en GAP desde otro ordenador? es decir ?Se puede >> registrar funciones y utilizarlas en la realizaci?n de otros >> algoritmos?Para un mejor interpretacion presento el siguiente ejemplo.En >> GAP existen muchas funciones de algoritmos algebraicos para utilizarlos por >> ejemplo calculo del cociente y residuo de dos polonomios por medio de la >> funci?n QuotientRemainder, de la misma manera yo necesito utilizar una >> funcion que yo realize para utilizarlo en la realizaci?n de otros >> algoritmos como la anterior funcion anterior. Espero su ayuda y por su >> colaboraci?n anticipo sinceros agradecimientos. >> Muchas Gracias >> Sebastian OviedoLicenciatura en Matem?ticasUniversidad de Nari?o - Colombia >> >> First I want to acknowledge the importance of GAP in mathematics your help >> and your great benefit to students and teachers. I am a student of Bachelor >> of Mathematics from the University of Nari?o in Colombia. My intention is >> to improve my graduation project about Gr?bner bases presenting some >> algorithms using this important program. Request help on the following >> concern.Is it possible to call a function in GAP made by me from another >> computer? ie Is it possible to register functions and use them in the >> performance of other algorithms?For better interpretation present the >> following example.In GAP there are many functions of algebraic algorithms >> to use for example calculating the quotient and remainder of two polonomios >> through QuotientRemainder function, in the same way I need to use a >> function that I Realize for use in the performance of other algorithms as >> above previous function.I hope your help and advance collaboration sincere >> thanks. >> many Thanks >> Sebastian OviedoBachelor of MathematicsUniversity of Nari?o - Colombia >> _______________________________________________ >> 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 m288.zarei at gmail.com Wed Jul 31 15:38:19 2013 From: m288.zarei at gmail.com (Masomeh Zarei) Date: Wed, 31 Jul 2013 19:08:19 +0430 Subject: [GAP Forum] centralizer of a group Message-ID: Dear All, I am interested in computing the centralizer of a subgroup H of G=O(n, R) in O(n, R) (the orthogonal group). I would be thankful if you let me know whether I can do the computation while I have the orthogonal group over an infinite field. From mbg.nimda at gmail.com Wed Jul 31 19:34:04 2013 From: mbg.nimda at gmail.com (Mbg Nimda) Date: Wed, 31 Jul 2013 20:34:04 +0200 Subject: [GAP Forum] Van Kampen theoriem for the Klein bottle applied to fp groups Message-ID: Hello forum members, I hope someone can point me out what is missing in the following: I divide the Klein bottle into two Moebius strips that intersect on a tubular neighbourhood that is homotopically equivalent to S^1. The embedding of this loop is a^2 in one Moebius strip and b^2 in the other, where a and b are the homotopy equivalent loops of each Moebius strip respectively (the border of a Moebius strip retracts to twice the "middle circle" of the strip). So the Van Kampen theorem says that the fundamental group is the fp group with generators a and b and relator a^2*b^-2. Now I looked up the funcamental group of the Klein bottle on Google and found that the litterature declares the fundamental group to have the relator a*b *a^-1*b (due to how opposite sides on a square are identified) . So initially I thought I was wrong but when frolicking around with these two relators I found the following: a*b *a^-1*b = 1 implies a*b*a^-2a*b. So if I put u:=a*b and v :=a then the last equation becomes u*v^-2*u = 1 or u^2*v^-2, so the two presentations are equivalent. I found this relationship totally by good luck, but I wonder if there could have been a way using Gap to establish an isomorphism between those two groups? Regards, Marc Bogaerts From hulpke at me.com Thu Aug 1 09:37:46 2013 From: hulpke at me.com (Alexander Hulpke) Date: Thu, 01 Aug 2013 09:37:46 +0100 Subject: [GAP Forum] centralizer of a group In-Reply-To: References: Message-ID: Dear Forum, Masomeh Zarei wrote: > I am interested in computing the centralizer of a subgroup H of G=O(n, R) > in O(n, R) (the orthogonal group). I would be thankful if you let me know > whether I can do the computation while I have the orthogonal group over an > infinite field. The facilities for matrix groups over infinite fields are currently rather limited; in particular there is basically nothing for infinite matrix groups. Thus I'm not aware of any tool that would let you do such a calculation, though with normal form theory you are likely to be able to write down concrete centralizers by hand. Regards, Alexander Hulpke From magfild at yahoo.com Thu Aug 1 11:13:54 2013 From: magfild at yahoo.com (Magfild Bunyasi) Date: Thu, 1 Aug 2013 03:13:54 -0700 (PDT) Subject: [GAP Forum] Subdegrees Message-ID: <1375352034.69972.YahooMailNeo@web122303.mail.ne1.yahoo.com> Hi Forum, I would like to determine ranks and subdegrees of PSL(2,q) acting on the cosets of its cyclic group of order (q-1)/k where k is gcd(2,q-1). Somebody to bail me out of this please. Thanks in advance. Magero Fidelius From A.Egri-Nagy at herts.ac.uk Thu Aug 1 11:38:18 2013 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Thu, 1 Aug 2013 20:38:18 +1000 Subject: [GAP Forum] GAP on ARM Message-ID: Dear Forum, Just for fun... ;) http://compsemi.wordpress.com/2013/08/01/gap-on-the-pi/ best, @ From Bill.Allombert at math.u-bordeaux.fr Thu Aug 1 13:15:22 2013 From: Bill.Allombert at math.u-bordeaux.fr (Bill Allombert) Date: Thu, 1 Aug 2013 14:15:22 +0200 Subject: [GAP Forum] GAP on ARM In-Reply-To: References: Message-ID: <20130801121521.GA28640@pari.math.u-bordeaux1.fr> On Thu, Aug 01, 2013 at 08:38:18PM +1000, Attila Egri-Nagy wrote: > Dear Forum, > > Just for fun... ;) > > http://compsemi.wordpress.com/2013/08/01/gap-on-the-pi/ Well, Debian provides GAP binaries for a dozen platforms, and I regularly test gap on a PlayStation 3, a Raspberry Pi, an IBM s390 mainframe, etc. Cheers, Bill. From a.j.t.al-juburie at newcastle.ac.uk Thu Aug 1 20:10:11 2013 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Thu, 1 Aug 2013 19:10:11 +0000 Subject: [GAP Forum] Help please Message-ID: <5CA877F40086AF4BA25CA7791864174404B917@EXMBDB01.campus.ncl.ac.uk> Dear All, I am struggling with the following error: gap> B:=AutGrpOfPCG([1,2,3,4,5],[[1,2],[1,3],[2,3],[4,5],[3,4]]); Error, Variable: 'starcomp' must have an assigned value in R1 := starcomp( V, E ); called from ( ) called from read-eval loop at line 17 of *stdin* you can 'return;' after assigning a value ********** My script is: ************* AutGrpOfPCG:=function(V,E) # the main program local R1,starcomp,St; # Declaration list Read("d:/runprogram/starcomp.txt"); # reading another function (starcomp) written in a separate text file R1:=starcomp(V,E); # calling the starcomp function St:=R1[1]; return[St]; end; The input to the function is: B:=AutGrpOfPCG([1,2,3,4,5],[[1,2],[1,3],[2,3],[4,5],[3,4]]); If I remove the "starcomp" from the local declaration list, the code is working but with the following warning message: Syntax error: warning: unbound global variable R1:=starcomp(V,E); Any idea and/or help are more than appreciated Regards, Abdulsatar From A.Egri-Nagy at herts.ac.uk Fri Aug 2 01:23:27 2013 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Fri, 2 Aug 2013 10:23:27 +1000 Subject: [GAP Forum] GAP on ARM In-Reply-To: <20130801121521.GA28640@pari.math.u-bordeaux1.fr> References: <20130801121521.GA28640@pari.math.u-bordeaux1.fr> Message-ID: Dear Bill, It is very good news about the testing on different platforms! I am aware of the Debian packages, but unfortunately I need newer versions of GAP. What is the reason for packaging the older version for Debian? Thanks! @ On Thu, Aug 1, 2013 at 10:15 PM, Bill Allombert wrote: > On Thu, Aug 01, 2013 at 08:38:18PM +1000, Attila Egri-Nagy wrote: >> Dear Forum, >> >> Just for fun... ;) >> >> http://compsemi.wordpress.com/2013/08/01/gap-on-the-pi/ > > Well, Debian provides GAP binaries for a dozen platforms, and I regularly test gap > on a PlayStation 3, a Raspberry Pi, an IBM s390 mainframe, etc. > > Cheers, > Bill. From shahmaths_problem at hotmail.com Fri Aug 2 02:48:55 2013 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Fri, 2 Aug 2013 06:48:55 +0500 Subject: [GAP Forum] Help please In-Reply-To: <5CA877F40086AF4BA25CA7791864174404B917@EXMBDB01.campus.ncl.ac.uk> References: <5CA877F40086AF4BA25CA7791864174404B917@EXMBDB01.campus.ncl.ac.uk> Message-ID: Dear Abdulsatar, Experts will give better answer but I think the problem is with the path of the file you are intended to read. Keep the file in "bin"(Only for convenience) and then use the path in Read command. It should be something like Read("/cygdrive/C/gap4r6/bin/starcomp"); Good luck, Muhammad Shah > From: a.j.t.al-juburie at newcastle.ac.uk > To: forum at gap-system.org > Date: Thu, 1 Aug 2013 19:10:11 +0000 > Subject: [GAP Forum] Help please > > Dear All, > > > I am struggling with the following error: > > > gap> B:=AutGrpOfPCG([1,2,3,4,5],[[1,2],[1,3],[2,3],[4,5],[3,4]]); > Error, Variable: 'starcomp' must have an assigned value in > R1 := starcomp( V, E ); called from > ( ) > called from read-eval loop at line 17 of *stdin* > you can 'return;' after assigning a value > > > ********** > My script is: > ************* > > AutGrpOfPCG:=function(V,E) # the main program > > local R1,starcomp,St; # Declaration list > > Read("d:/runprogram/starcomp.txt"); # reading another function (starcomp) written in a separate text file > > R1:=starcomp(V,E); # calling the starcomp function > > St:=R1[1]; > return[St]; > > end; > > > The input to the function is: > > B:=AutGrpOfPCG([1,2,3,4,5],[[1,2],[1,3],[2,3],[4,5],[3,4]]); > > > > If I remove the "starcomp" from the local declaration list, the code is working but with the following warning message: > > Syntax error: warning: unbound global variable > R1:=starcomp(V,E); > > Any idea and/or help are more than appreciated > > > Regards, > > > Abdulsatar > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Fri Aug 2 10:43:19 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 2 Aug 2013 10:43:19 +0100 Subject: [GAP Forum] Help please In-Reply-To: <5CA877F40086AF4BA25CA7791864174404B917@EXMBDB01.campus.ncl.ac.uk> References: <5CA877F40086AF4BA25CA7791864174404B917@EXMBDB01.campus.ncl.ac.uk> Message-ID: <8B8D1154-9947-48B0-B156-2AF91087CED1@mcs.st-andrews.ac.uk> Dear Abdulsatar, I suggest to do the following two changes: 1) move the line Read("d:/runprogram/starcomp.txt"); above defining the function AutGrpOfPCG in your script 2) remove 'starcomp' from 'local ...' in AutGrpOfPCG since it is defined elsewhere. Hope this will help, Alexander On 1 Aug 2013, at 20:10, Abdulsatar Al-Juburie wrote: > Dear All, > > > I am struggling with the following error: > > > gap> B:=AutGrpOfPCG([1,2,3,4,5],[[1,2],[1,3],[2,3],[4,5],[3,4]]); > Error, Variable: 'starcomp' must have an assigned value in > R1 := starcomp( V, E ); called from > ( ) > called from read-eval loop at line 17 of *stdin* > you can 'return;' after assigning a value > > > ********** > My script is: > ************* > > AutGrpOfPCG:=function(V,E) # the main program > > local R1,starcomp,St; # Declaration list > > Read("d:/runprogram/starcomp.txt"); # reading another function (starcomp) written in a separate text file > > R1:=starcomp(V,E); # calling the starcomp function > > St:=R1[1]; > return[St]; > > end; > > > The input to the function is: > > B:=AutGrpOfPCG([1,2,3,4,5],[[1,2],[1,3],[2,3],[4,5],[3,4]]); > > > > If I remove the "starcomp" from the local declaration list, the code is working but with the following warning message: > > Syntax error: warning: unbound global variable > R1:=starcomp(V,E); > > Any idea and/or help are more than appreciated > > > Regards, > > > Abdulsatar > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at me.com Fri Aug 2 11:50:10 2013 From: hulpke at me.com (Alexander Hulpke) Date: Fri, 02 Aug 2013 11:50:10 +0100 Subject: [GAP Forum] Van Kampen theoriem for the Klein bottle applied to fp groups In-Reply-To: References: Message-ID: <9EA6FEEF-F294-4E4A-8190-22FB0A723A32@me.com> Dear Forum, Marc Bogaerts asked: > So initially I thought I was wrong but when frolicking around with these > two relators I found the following: > a*b *a^-1*b = 1 implies a*b*a^-2a*b. So if I put u:=a*b and v :=a then the > last equation becomes > u*v^-2*u = 1 or u^2*v^-2, so the two presentations are equivalent. > I found this relationship totally by good luck, but I wonder if there could > have been a way > using Gap to establish an isomorphism between those two groups? Beyond the trivial (using guided Tietze transformations where you supply the rewriting) there is no method in GAP that would automatically find such an isomorphism. The paper Holt, D.F.; Rees, Sarah Testing for isomorphism between finitely presented groups. (English) Liebeck, Martin (ed.) et al., Groups, combinatorics and geometry. Proceedings of the L.M.S. Durham symposium, held July 5-15, 1990 in Durham, UK. Cambridge: Cambridge University Press. Lond. Math. Soc. Lect. Note Ser. 165, 459-475 (1992). describes such an algorithm which has been implemented in a system `QUOTPIC', but it is not available in GAP. I am not sure about current availability of an implementation. Best, Alexander Hulpke From dima at ntu.edu.sg Fri Aug 2 12:45:16 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Fri, 2 Aug 2013 12:45:16 +0100 Subject: [GAP Forum] GAP on ARM In-Reply-To: References: <20130801121521.GA28640@pari.math.u-bordeaux1.fr> Message-ID: On 2 August 2013 01:23, Attila Egri-Nagy wrote: > Dear Bill, > > It is very good news about the testing on different platforms! > > I am aware of the Debian packages, but unfortunately I need newer > versions of GAP. What is the reason for packaging the older version > for Debian? Debian is known to be slow in updating things. Perhaps Bill can make an unofficial .deb repo with up to date GAP packages available. Just in case, Dima > > Thanks! > @ > > On Thu, Aug 1, 2013 at 10:15 PM, Bill Allombert > wrote: >> On Thu, Aug 01, 2013 at 08:38:18PM +1000, Attila Egri-Nagy wrote: >>> Dear Forum, >>> >>> Just for fun... ;) >>> >>> http://compsemi.wordpress.com/2013/08/01/gap-on-the-pi/ >> >> Well, Debian provides GAP binaries for a dozen platforms, and I regularly test gap >> on a PlayStation 3, a Raspberry Pi, an IBM s390 mainframe, etc. >> >> Cheers, >> Bill. > > _______________________________________________ > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From Bill.Allombert at math.u-bordeaux1.fr Fri Aug 2 13:10:10 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Fri, 2 Aug 2013 14:10:10 +0200 Subject: [GAP Forum] GAP on ARM In-Reply-To: References: <20130801121521.GA28640@pari.math.u-bordeaux1.fr> Message-ID: <20130802121010.GA9462@yellowpig> On Fri, Aug 02, 2013 at 10:23:27AM +1000, Attila Egri-Nagy wrote: > Dear Bill, > > It is very good news about the testing on different platforms! > > I am aware of the Debian packages, but unfortunately I need newer > versions of GAP. What is the reason for packaging the older version > for Debian? Indeed, I am working on upgrading the packages to gap 4r6p5. Unfortunately GAP 4r5 was released one week after the Debian freeze for wheezy. Cheers, Bill. From alexk at mcs.st-andrews.ac.uk Sun Aug 4 21:54:05 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Sun, 4 Aug 2013 21:54:05 +0100 Subject: [GAP Forum] GAP on ARM In-Reply-To: References: Message-ID: <49D06878-7F96-464D-ABB6-CCE0B1795BCC@mcs.st-andrews.ac.uk> Thanks for the link, Attila, - interesting to know that! Now, if you could compile the IO package, you may use SCSCP package to sent remote procedure calls from Raspberry Pi to GAP SCSCP servers, for example, when you want to get the result faster than you are able to compute it locally. Best wishes, Alexander On 1 Aug 2013, at 11:38, Attila Egri-Nagy wrote: > Dear Forum, > > Just for fun... ;) > > http://compsemi.wordpress.com/2013/08/01/gap-on-the-pi/ > > best, > @ > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From benjamin.sambale at gmail.com Wed Aug 7 12:30:26 2013 From: benjamin.sambale at gmail.com (Benjamin) Date: Wed, 07 Aug 2013 13:30:26 +0200 Subject: [GAP Forum] minimal members with respect to inclusion Message-ID: <52022FD2.50901@gmail.com> Dear GAP users, suppose we have a list M of lists of integers. Is there a command which computes the set of minimal members of M with respect to inclusion? Of course I could implement such a function, but it would certainly not be very fast. Thanks, Benjamin From alexk at mcs.st-andrews.ac.uk Thu Aug 8 20:44:11 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 8 Aug 2013 20:44:11 +0100 Subject: [GAP Forum] minimal members with respect to inclusion In-Reply-To: <52022FD2.50901@gmail.com> References: <52022FD2.50901@gmail.com> Message-ID: Dear Benjamin, Could you please tell more details about elements of M? Are they lists of integers, or are they actually sets of integers (sorted, dense, no duplicates)? Are they immutable? What are the sizes of data sets with which you're operating? Thanks, Alexander On 7 Aug 2013, at 12:30, Benjamin wrote: > Dear GAP users, > > suppose we have a list M of lists of integers. Is there a command which computes the set of minimal members of M with respect to inclusion? Of course I could implement such a function, but it would certainly not be very fast. > > Thanks, > Benjamin > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From ahulpke at gmail.com Thu Aug 8 23:18:36 2013 From: ahulpke at gmail.com (Alexander Hulpke) Date: Thu, 8 Aug 2013 23:18:36 +0100 Subject: [GAP Forum] What does <[ [ 1, 1 ] ]|b*a^-1> mean In-Reply-To: References: Message-ID: Since someone pointed out to me that my initial reply to this only was prvately, while the question was sent to the forum: b*a was a misprint, I meant of course b*a^-1. Alexander From benjamin.sambale at gmail.com Fri Aug 9 09:12:20 2013 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Fri, 09 Aug 2013 10:12:20 +0200 Subject: [GAP Forum] minimal members with respect to inclusion In-Reply-To: References: <52022FD2.50901@gmail.com> Message-ID: <5204A464.7050904@gmail.com> Dear Alexander, yes, M is a list of sets. Imagine for example a "large" subset of Combinations([1..30]). Moreover, M and its elements are mutable. Meanwhile, I circumvented the problem. However, I guess it would be nice to have such a function nevertheless. Best wishes, Benjamin Am 08.08.2013 21:44, schrieb Alexander Konovalov: > Dear Benjamin, > > Could you please tell more details about elements of M? Are they > lists of integers, or are they actually sets of integers (sorted, > dense, no duplicates)? Are they immutable? What are the sizes of > data sets with which you're operating? > > Thanks, > Alexander > > > On 7 Aug 2013, at 12:30, Benjamin wrote: > >> Dear GAP users, >> >> suppose we have a list M of lists of integers. Is there a command which computes the set of minimal members of M with respect to inclusion? Of course I could implement such a function, but it would certainly not be very fast. >> >> Thanks, >> Benjamin >> >> _______________________________________________ >> Forum mailing list >> Forum at mail.gap-system.org >> http://mail.gap-system.org/mailman/listinfo/forum > From bernhard.boehmler at googlemail.com Sat Aug 10 16:18:45 2013 From: bernhard.boehmler at googlemail.com (Bernhard Boehmler) Date: Sat, 10 Aug 2013 17:18:45 +0200 Subject: [GAP Forum] Computing with projective A-modules of a finite dimensional k-algebra A Message-ID: Dear GAP Forum, I have the following problem(s): I made some computations in GAP and I now have an "algebra-with-one" R as a subalgebra of a full matrix algebra. Moreover, I have five orthogonal primitive idempotents e_1,...,e_5, which sum up to the identity element of R. Now, I would like to let GAP calculate some things concerning the projective right R-modules P_1 and P_2,..., where P_1 = e_1 * R (and P_2=e_2 * R and so on). I would like to test, whether P_i and P_j are isomorphic as R-modules for i unequal to j. I also would like to compute the algebras e_i R e_j for all i and j. I can access the generators (as matrices) of the algebra R and I know e_1,...,e_5 =... (as matrices). Unfortunately, I wasn't able to find out, how to define P_1 in GAP as a row module (I would like GAP to look at P_1 as an R-module (R as an algebra) - is trying to insert P_1 as a row module the right way of procedure?). I also would like to compute the radical of P_1 and factor it out. I, therefore, would we very thankful, if anybody could give me a hint, given only the "algebra with one" R as a GAP object, how to implement P_1, P_2, P_1/rad(P_1) and P_2/rad(P_2), the regular module R_R, and so on, as modules and do calculations with them. Thank you very much. Yours sincerely, Bernhard Boehmler From stefano.simonucci at tin.it Sat Aug 10 17:05:59 2013 From: stefano.simonucci at tin.it (Stefano Simonucci) Date: Sat, 10 Aug 2013 18:05:59 +0200 Subject: [GAP Forum] Casimir operator of a Lie algebra Message-ID: <520664E7.1010105@tin.it> Dear GAP Forum, I have the following problem, i.e. to find the Casimir's operators of the Lie ALgebra SO(n) and SU(n). But I realized that it isn't possible to find the center of an Universal Enveloping Algebra with GAP. For example: gap> L:= SimpleLieAlgebra( "A", 1, Rationals ); gap> UL:= UniversalEnvelopingAlgebra( L ); gap> Center(UL); Error, this case will eventually be handled by the Vector Enumerator which is not available yet called from OperationAlgebraHomomorphism( A, [ [ Zero( A ) ] ], OnRight ) called from IsomorphismMatrixFLMLOR( A ) called from IsFiniteDimensional( A ) 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 Do you know another method. Thanks Stefano From rrburns at cox.net Mon Aug 12 23:09:10 2013 From: rrburns at cox.net (Sopsku) Date: Mon, 12 Aug 2013 22:09:10 +0000 (UTC) Subject: [GAP Forum] extrat the numical values in a permutation Message-ID: Hi, Given a permutation, say p:=(1,3)(5,8,6) how can I extract the numerical values to say perhaps a list like [[1,3],[5,8,6]] or otherwise access them? Thanks for any help, Sopsku From hatlam at gmail.com Tue Aug 13 08:59:38 2013 From: hatlam at gmail.com (Ha T. Lam) Date: Tue, 13 Aug 2013 03:59:38 -0400 Subject: [GAP Forum] Reading group elements from CSV file Message-ID: Dear GAP forum, I saved the output of some computation as a csv file consisting of group elements, like so: a,b,c g2,g1^2,g1^-1*g2*g3^-2 Now I want to read these elements back and use them as group elements for the group g:=DihedralGroup(8). I used ReadCSV(filename). First I realized that group elements need to be referred to as g.1, g.2, etc. An easy search and replace with my text editor took care of that, so now my csv file looks like: a,b,c g.2,g.1^2,g.1^-1*g.2*g.3^-2 But what I get back is actually a list of records consisting of strings, not actually group elements. How do I evaluate these strings so that GAP knows that I'm referring to the group elements instead? Thank you for your help. Ha T. Lam From dima at ntu.edu.sg Tue Aug 13 14:10:53 2013 From: dima at ntu.edu.sg (Dmitrii (Dima) Pasechnik) Date: Tue, 13 Aug 2013 14:10:53 +0100 Subject: [GAP Forum] Reading group elements from CSV file In-Reply-To: References: Message-ID: On 13 August 2013 08:59, Ha T. Lam wrote: > Dear GAP forum, > > I saved the output of some computation as a csv file consisting of group > elements, like so: > > a,b,c > g2,g1^2,g1^-1*g2*g3^-2 > > Now I want to read these elements back and use them as group elements for > the group g:=DihedralGroup(8). I used ReadCSV(filename). First I realized > that group elements need to be referred to as g.1, g.2, etc. An easy search > and replace with my text editor took care of that, so now my csv file looks > like: > > a,b,c > g.2,g.1^2,g.1^-1*g.2*g.3^-2 > > But what I get back is actually a list of records consisting of strings, > not actually group elements. How do I evaluate these strings so that GAP > knows that I'm referring to the group elements instead? There is the EvalString function that lets you evaluate GAP expressions which are built up as strings. Hope this helps, Dmitrii > > Thank you for your help. > > Ha T. Lam > _______________________________________________ > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From a.j.t.al-juburie at newcastle.ac.uk Mon Aug 12 20:50:12 2013 From: a.j.t.al-juburie at newcastle.ac.uk (Abdulsatar Al-Juburie) Date: Mon, 12 Aug 2013 19:50:12 +0000 Subject: [GAP Forum] Help please Message-ID: <5CA877F40086AF4BA25CA7791864174404BA9F@EXMBDB01.campus.ncl.ac.uk> Dear All, In the following small code when I try to print Y , I found that Y is changed , but I did change just on Y1. Is there any way to print Y Without any change. f:=function(L) local i,j,Y,Y1; Y:=L; Y1:=L; Y1[1][1]:=90; Y1[2][1]:=90; Print(" ","\n"); Print("\ Y =",Y); Print(" ","\n"); Print("\ Y1=",Y1); Print(" ","\n"); end; The input to the function is: f([ [ 0, 21, 31, 41 ], [ 1, 0, 21, 31 ], [ 0, 0, 0, 21 ], [ 0, 0, 0, 0 ] ]); Result of print is: Y =[ [ 90, 21, 31, 41 ], [ 90, 0, 21, 31 ], [ 0, 0, 0, 21 ], [ 0, 0, 0, 0 ] ] Y1=[ [ 90, 21, 31, 41 ], [ 90, 0, 21, 31 ], [ 0, 0, 0, 21 ], [ 0, 0, 0, 0 ] ] Any idea and/or help are more than appreciated Regards, Abdulsatar From robert.bailey at ryerson.ca Wed Aug 14 15:51:42 2013 From: robert.bailey at ryerson.ca (Robert Bailey) Date: Wed, 14 Aug 2013 10:51:42 -0400 Subject: [GAP Forum] Help please In-Reply-To: <5CA877F40086AF4BA25CA7791864174404BA9F@EXMBDB01.campus.ncl.ac.uk> References: <5CA877F40086AF4BA25CA7791864174404BA9F@EXMBDB01.campus.ncl.ac.uk> Message-ID: <5378C72B5ADC4C48BB6A64216FCDDBB4@RFBCompaq2> Dear Abdulsatar, When you assign Y and Y1 to be equal to L, GAP will (internally) treat all three as the same object. Thus when you change Y1, it will also change L and Y in the same way. To create duplicates of L, you need the "StructuralCopy" command: Y:=StructuralCopy(L); Y1:=StructuralCopy(L); which will create Y and Y1 as separate objects identical to L. Regards, Robert Bailey. -----Original Message----- From: Abdulsatar Al-Juburie Sent: Monday, August 12, 2013 3:50 PM To: 'forum at mail.gap-system.org' Subject: [GAP Forum] Help please Dear All, In the following small code when I try to print Y , I found that Y is changed , but I did change just on Y1. Is there any way to print Y Without any change. f:=function(L) local i,j,Y,Y1; Y:=L; Y1:=L; Y1[1][1]:=90; Y1[2][1]:=90; Print(" ","\n"); Print("\ Y =",Y); Print(" ","\n"); Print("\ Y1=",Y1); Print(" ","\n"); end; The input to the function is: f([ [ 0, 21, 31, 41 ], [ 1, 0, 21, 31 ], [ 0, 0, 0, 21 ], [ 0, 0, 0, 0 ] ]); Result of print is: Y =[ [ 90, 21, 31, 41 ], [ 90, 0, 21, 31 ], [ 0, 0, 0, 21 ], [ 0, 0, 0, 0 ] ] Y1=[ [ 90, 21, 31, 41 ], [ 90, 0, 21, 31 ], [ 0, 0, 0, 21 ], [ 0, 0, 0, 0 ] ] Any idea and/or help are more than appreciated Regards, Abdulsatar _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From shahmaths_problem at hotmail.com Tue Aug 20 12:24:54 2013 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Tue, 20 Aug 2013 16:24:54 +0500 Subject: [GAP Forum] [group-pub-forum] 3-net In-Reply-To: <1376983828.95920.YahooMailNeo@web121802.mail.ne1.yahoo.com> References: <1376983828.95920.YahooMailNeo@web121802.mail.ne1.yahoo.com> Message-ID: Dear Arun, Excellent GAP codes for 3-web written by Dr. Petr are available at http://web.cs.du.edu/~petr/gap_routines.html (3-Webs and basic operations on 3-Webs) and for a nice visualization of 3-web see the paper of H. I. Erdorgan (A QUASI-GROUP ASSOCIATED WITH THE WEB FORMED BY THREE PENCILS OF CIRCLES WHICH BELONG TO THE SAME BIJNDLE). Regards, Muhammad Shah Date: Tue, 20 Aug 2013 00:30:28 -0700 From: amukti2000 at yahoo.com To: group-pub-forum at lists.maths.bath.ac.uk Subject: [group-pub-forum] 3-net Dear Pubbers, I am not able to visualize a 3-net of order 3. Taking three mutually disjoint sets of non-intersecting lines , every line should pass through 3 points and every point should lie on exactly one line of each class. Can anybody give an example with a diagram ? Thanking you in advance.ArunIndia Dr. Arun Muktibodh From mmarco at unizar.es Tue Aug 20 12:50:04 2013 From: mmarco at unizar.es (Miguel Angel Marco Buzunariz) Date: Tue, 20 Aug 2013 13:50:04 +0200 Subject: [GAP Forum] [group-pub-forum] 3-net In-Reply-To: References: <1376983828.95920.YahooMailNeo@web121802.mail.ne1.yahoo.com> Message-ID: <22953149.XcgpkV5n5j@neumann> With that definition, a 3-net is the same as a latin square. The rows are the lines of one pencil. The columns are the lines of the second pencil. And the set of all the entries with the same number are the lines of the thirthd pencil. The points would be the entries of the square. Also, you can construct them geometrically over an affine plane... but not over the reals. It can be done over finite fields. El Martes, 20 de agosto de 2013 16:24:54 muhammad shah escribi?: > Dear Arun, > Excellent GAP codes for 3-web written by Dr. Petr are available at > http://web.cs.du.edu/~petr/gap_routines.html > (3-Webs and basic operations on 3-Webs) > and for a nice visualization of 3-web see the paper of > H. I. Erdorgan (A QUASI-GROUP ASSOCIATED WITH THE WEB > FORMED BY THREE PENCILS OF CIRCLES WHICH > BELONG TO THE SAME BIJNDLE). > Regards, > Muhammad Shah > > Date: Tue, 20 Aug 2013 00:30:28 -0700 > From: amukti2000 at yahoo.com > To: group-pub-forum at lists.maths.bath.ac.uk > Subject: [group-pub-forum] 3-net > > Dear Pubbers, I am not able to visualize a 3-net of order 3. Taking three mutually disjoint sets of non-intersecting lines , every line should pass through 3 points and every point should lie on exactly one line of each class. Can anybody give an example with a diagram ? Thanking you in advance.ArunIndia Dr. Arun Muktibodh > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From rrburns at cox.net Mon Aug 26 03:54:23 2013 From: rrburns at cox.net (Sopsku) Date: Mon, 26 Aug 2013 02:54:23 +0000 (UTC) Subject: [GAP Forum] Reduced Multiplication Message-ID: Hi all, I have some small confusion about reduced multiplication that I would like to clear up. Suppose I have: gap> d4:=DihedralGroup(IsFpGroup,4);; gap> r:=d4.1;;s:=d4.2;; gap> SetReducedMultiplication(d4); Then gap> r^2; OK - now suppose I look at gap> rel:=RelatorsOfFpGroup(d4); [ r^2, s^2, s^-1*r*s*r ] rel does not reduce and I guess that makes sense as I would want to see the the relations not . Now if I cut and paste gap> [ r^2, s^2, s^-1*r*s*r ]; [ , , ] Is there an function that I can apply to rel to force the reduced multiplication without the cut and paste? I tried copies and tests like gap> rel[1]=Identity(d4); false but even this does not do the reduction before the test. Thanks for any comments Ron From sl4 at st-andrews.ac.uk Mon Aug 26 09:33:03 2013 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Mon, 26 Aug 2013 09:33:03 +0100 Subject: [GAP Forum] Reduced Multiplication In-Reply-To: References: Message-ID: <44E7A18E-E733-4BC6-A20E-63FFB768AE34@st-andrews.ac.uk> Dear Sopsku, What you need to be aware of here is that the relators of a finitely-presented group are NOT elements of the group. They are elements of the underlying free group. So after your commands below we see gap> rel[1] in d4; false gap> rel[1] in FreeGroupOfFpGroup(d4); true One way of connecting them is to make the natural quotient homomorphism: gap> phi := GroupHomomorphismByImages(f,d4,GeneratorsOfGroup(f),GeneratorsOfGroup(d4)); [ r, s ] -> [ r, s ] gap> List(rel, x->Image(phi,x)); [ , , ] gap> This is a bit confusing here because the generators of the free group print as "r" and "s" as do the generators of the finitely-presented group, but th global variables r and s hold the generators of the fp group. Steve On 26 Aug 2013, at 03:54, Sopsku wrote: > Hi all, > I have some small confusion about reduced multiplication that I would like > to clear up. Suppose I have: > > gap> d4:=DihedralGroup(IsFpGroup,4);; > gap> r:=d4.1;;s:=d4.2;; > gap> SetReducedMultiplication(d4); > > Then > > gap> r^2; > > > OK - now suppose I look at > > gap> rel:=RelatorsOfFpGroup(d4); > [ r^2, s^2, s^-1*r*s*r ] > > rel does not reduce and I guess that makes sense as I would want to see the > the relations not . Now if I cut and paste > > gap> [ r^2, s^2, s^-1*r*s*r ]; > [ , , ] > > Is there an function that I can apply to rel to force the reduced > multiplication without the cut and paste? > > I tried copies and tests like > > gap> rel[1]=Identity(d4); > false > > but even this does not do the reduction before the test. > > Thanks for any comments > Ron > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From pjc at mcs.st-and.ac.uk Tue Aug 27 11:06:58 2013 From: pjc at mcs.st-and.ac.uk (pjc at mcs.st-and.ac.uk) Date: Tue, 27 Aug 2013 11:06:58 +0100 (BST) Subject: [GAP Forum] Numbering of primitive groups Message-ID: Dear Forum, Akos Seress, in Bull. London Math. Soc. 29 (1997), 697-704, listed all the (finitely many) primitive groups which have no regular orbit on the power set of their domain. He listed them by GAP number and ATLAS name. Sad to say, the GAP numbering seems to have changed since then. For example, Akos thought PrimitiveGroup(16,19) is 2^4.A_7, whereas GAP now thinks this group is 2^4.A_5. I have two questions: 1. Does anyone have a list correlating the old and new numbers? I think that, from the ATLAS names, I can recover what he meant, but it would be nice to have a check. 2. Is there any way that we can draw the group-theory community's attention to this, perhaps with an updated list? Peter. From ahulpke at gmail.com Tue Aug 27 16:12:38 2013 From: ahulpke at gmail.com (Alexander Hulpke) Date: Tue, 27 Aug 2013 09:12:38 -0600 Subject: [GAP Forum] Numbering of primitive groups In-Reply-To: References: Message-ID: Dear Peter, Dear Forum, > Akos Seress, in Bull. London Math. Soc. 29 (1997), 697-704, listed all the > (finitely many) primitive groups which have no regular orbit on the power > set of their domain. He listed them by GAP number and ATLAS name. > > Sad to say, the GAP numbering seems to have changed since then. For > example, Akos thought PrimitiveGroup(16,19) is 2^4.A_7, whereas GAP now > thinks this group is 2^4.A_5. > > I have two questions: > 1. Does anyone have a list correlating the old and new numbers? I think > that, from the ATLAS names, I can recover what he meant, but it would be > nice to have a check. From the publication date and the citation in the paper I presume that Akos' list was done using GAP3. I append a renumbering of the groups that gives for degrees up to 50 the *new* number for each group. (I believe the reason for renumbering had to do with storing primitive groups in cohorts according to the ONan-Scott Theorem, but I might be remembering wrongly.) For example in this list, entry 16,19 is 20, i.e. the group formerly numbered 16,19 is nor 16,20. The reverse permutation is available in GAP via the function SimsNo, that when applied to a primitive group return the old index. E.g.: gap> SimsNo(PrimitiveGroup(16,20)); 19 as expected. Best, Alexander > > 2. Is there any way that we can draw the group-theory community's > attention to this, perhaps with an updated list? > > Peter. > [ [ ], [ 1 ], [ 1, 2 ], [ 1, 2 ], [ 1, 2, 3, 4, 5 ], [ 1, 2, 3, 4 ], [ 1, 2, 3, 4, 5, 6, 7 ], [ 1, 2, 4, 5, 3, 6, 7 ], [ 1, 2, 4, 3, 5, 6, 7, 8, 9, 10, 11 ], [ 1, 2, 3, 5, 4, 6, 7, 8, 9 ], [ 1, 2, 3, 4, 5, 6, 7, 8 ], [ 3, 4, 1, 2, 5, 6 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], [ 1, 2, 3, 4 ], [ 2, 3, 1, 4, 5, 6 ], [ 1, 2, 3, 4, 5, 6, 8, 7, 19, 9, 15, 10, 18, 13, 14, 12, 17, 16, 20, 11, 21, 22 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 1, 2, 3, 4 ], [ 1, 2, 3, 4, 5, 6, 7, 8 ], [ 1, 2, 3, 4 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], [ 1, 2, 3, 4 ], [ 1, 2, 3, 4, 5, 6, 7 ], [ 2, 3, 1, 4, 5 ], [ 1, 3, 2, 5, 6, 4, 9, 8, 7, 10, 11, 13, 15, 14, 12, 16, 18, 17, 19, 20, 21, 23, 22, 24, 25, 26, 27, 28 ], [ 1, 3, 2, 4, 5, 6, 7 ], [ 1, 2, 3, 5, 4, 6, 7, 8, 9, 12, 13, 10, 11, 14, 15 ], [ 1, 2, 3, 4, 9, 5, 10, 7, 11, 8, 12, 6, 13, 14 ], [ 1, 2, 3, 4, 5, 6, 7, 8 ], [ 1, 2, 3, 4 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], [ 1, 2, 4, 5, 3, 6, 7 ], [ 1, 2, 3, 4 ], [ 1, 2 ], [ 3, 4, 1, 2, 5, 6 ], [ 1, 4, 3, 5, 2, 6, 17, 7, 19, 18, 8, 20, 9, 11, 13, 12, 15, 14, 16, 10, 21, 22 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 ], [ 1, 2, 3, 4 ], [ 1, 2 ], [ 1, 3, 2, 4, 5, 6, 7, 8 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 1, 2, 3, 4 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ], [ 1, 2, 3, 4 ], [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], [ 1, 2 ], [ 1, 2, 3, 4, 5, 6 ], [ 1, 2, 3, 4 ], [ 1, 2, 5, 4, 3, 6, 8, 7, 11, 10, 9, 12, 15, 16, 18, 17, 13, 14, 19, 20, 21, 25, 22, 23, 24, 27, 26, 28, 29, 30, 31, 32, 34, 33, 35, 36, 37, 38, 39, 40 ], [ 3, 6, 4, 5, 1, 7, 2, 8, 9 ] ] From fvanhove at cage.UGent.be Thu Aug 29 12:47:45 2013 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Thu, 29 Aug 2013 13:47:45 +0200 Subject: [GAP Forum] Orbits under conjugation by elements of centralizer Message-ID: <521F34E1.4020801@cage.UGent.be> Dear members of the forum, I am considering a group G and a subset S. If H denotes the centralizer of S in G, how can I consider the action on S under conjugation by elements of H? For instance, how could I obtain the corresponding partition of S into orbits? The command ConjugacyClasses considers the action of the full group on itself. Many thanks, Kind regards, Fr?d?ric From fvanhove at cage.UGent.be Thu Aug 29 12:47:45 2013 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Thu, 29 Aug 2013 13:47:45 +0200 Subject: [GAP Forum] Orbits under conjugation by elements of centralizer Message-ID: <521F34E1.4020801@cage.UGent.be> Dear members of the forum, I am considering a group G and a subset S. If H denotes the centralizer of S in G, how can I consider the action on S under conjugation by elements of H? For instance, how could I obtain the corresponding partition of S into orbits? The command ConjugacyClasses considers the action of the full group on itself. Many thanks, Kind regards, Fr?d?ric From shahmaths_problem at hotmail.com Tue Aug 20 12:12:26 2013 From: shahmaths_problem at hotmail.com (muhammad shah) Date: Tue, 20 Aug 2013 16:12:26 +0500 Subject: [GAP Forum] [group-pub-forum] 3-net In-Reply-To: <1376983828.95920.YahooMailNeo@web121802.mail.ne1.yahoo.com> References: <1376983828.95920.YahooMailNeo@web121802.mail.ne1.yahoo.com> Message-ID: Dear Arun, Excellent GAP codes for 3-web written by Dr. Petr are available at http://web.cs.du.edu/~petr/gap_routines.html (3-Webs and basic operations on 3-Webs) and for a beautiful visualization of 3-web see the attached paper of H. I. Erdorgan Regards, Muhammad Shah Date: Tue, 20 Aug 2013 00:30:28 -0700 From: amukti2000 at yahoo.com To: group-pub-forum at lists.maths.bath.ac.uk Subject: [group-pub-forum] 3-net Dear Pubbers, I am not able to visualize a 3-net of order 3. Taking three mutually disjoint sets of non-intersecting lines , every line should pass through 3 points and every point should lie on exactly one line of each class. Can anybody give an example with a diagram ? Thanking you in advance.ArunIndia Dr. Arun Muktibodh From john.bamberg at uwa.edu.au Thu Aug 29 13:47:15 2013 From: john.bamberg at uwa.edu.au (John Bamberg) Date: Thu, 29 Aug 2013 20:47:15 +0800 Subject: [GAP Forum] Orbits under conjugation by elements of centralizer In-Reply-To: <521F34E1.4020801@cage.UGent.be> References: <521F34E1.4020801@cage.UGent.be> Message-ID: <1F172630-FA78-42D9-98B8-D35AE94457B7@uwa.edu.au> Hi Fr?d?ric, Could you clarify your question? Wouldn't H fix every element of S by conjugation? (Do you mean "normaliser"?) Cheers, John. On 29/08/2013, at 7:47 PM, Frederic Vanhove wrote: > Dear members of the forum, > > I am considering a group G and a subset S. If H denotes the centralizer > of S in G, how can I consider the action on S under conjugation by > elements of H? > > For instance, how could I obtain the corresponding partition of S into > orbits? > > The command ConjugacyClasses considers the action of the full group on > itself. > > Many thanks, > Kind regards, > Fr?d?ric > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From jaredwarner4 at gmail.com Fri Sep 6 01:32:24 2013 From: jaredwarner4 at gmail.com (Jared Warner) Date: Thu, 5 Sep 2013 17:32:24 -0700 Subject: [GAP Forum] Elementary abelian p-subgroups Message-ID: Dear GAP forum, I'm interested in studying the Quillen Complex of a finite group G, which is the lattice of elementary abelian p-subgroups of G. Magma has a command ElementaryAbelianSubgroups which does exactly what I want, but I'd like to do this with GAP (to avoid paying for Magma). Specifically, given a finite group G I'd like to know: 1. The number of conjugacy classes of elementary abelian p-subgroups of a certain rank 2. The number of subgroups in each such conjugacy class 3. A set of generators of a representative from each such conjugacy class I'm aware of ConjugacyClassesSubgroups, but I'd like to my command return a list of representatives of elementary abelian p-subgroups, not all subgroups. Also, I'd like to avoid working with ConjugacyClassesSubgroups if possible, because it seems like a lot of wasted time and memory to compute the whole subgroup lattice when I'm only interested in a small portion of it. Thanks for any help! Jared From graham.ellis at nuigalway.ie Fri Sep 6 10:24:08 2013 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Fri, 6 Sep 2013 09:24:08 +0000 Subject: [GAP Forum] Elementary abelian p-subgroups In-Reply-To: References: Message-ID: Dear GAP forum, I too would like to know how best to access the elementary abelian p-subgroups of a finite group G. Attached is an implementation of the Quillen Complex which uses ConjugacyClassesSubgroups. As Jared mentions, this is a very inefficient approach. ------------------------------------------------------------------------ gap> G:=SmallGroup(64,134);; gap> Q:=QuillenComplex(G,2); Simplicial complex of dimension 2. gap> Homology(Q,0); [ 0 ] gap> Homology(Q,1); [ ] gap> Homology(Q,2); [ ] gap> Q!.nrSimplices(2); #The number of 2-simplices 168 gap> Q!.simplices(2,168); #The last 2-simplex [ Group([ f6, f2, f3*f4*f5 ]), Group([ f2, f3*f4*f5*f6 ]), Group([ f2*f3*f4*f5*f6 ]) ] ------------------------------------------------------------------------ Graham School of Mathematics, Statistics & Applied Mathematics National University of Ireland, Galway University Road, Galway Ireland http://hamilton.nuigalway.ie tel: 091 493011 ________________________________________ From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on behalf of Jared Warner [jaredwarner4 at gmail.com] Sent: Friday, September 06, 2013 1:32 AM To: forum at gap-system.org Subject: [GAP Forum] Elementary abelian p-subgroups Dear GAP forum, I'm interested in studying the Quillen Complex of a finite group G, which is the lattice of elementary abelian p-subgroups of G. Magma has a command ElementaryAbelianSubgroups which does exactly what I want, but I'd like to do this with GAP (to avoid paying for Magma). Specifically, given a finite group G I'd like to know: 1. The number of conjugacy classes of elementary abelian p-subgroups of a certain rank 2. The number of subgroups in each such conjugacy class 3. A set of generators of a representative from each such conjugacy class I'm aware of ConjugacyClassesSubgroups, but I'd like to my command return a list of representatives of elementary abelian p-subgroups, not all subgroups. Also, I'd like to avoid working with ConjugacyClassesSubgroups if possible, because it seems like a lot of wasted time and memory to compute the whole subgroup lattice when I'm only interested in a small portion of it. Thanks for any help! Jared _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From mathieu.dutour at gmail.com Fri Sep 6 13:04:45 2013 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Fri, 6 Sep 2013 14:04:45 +0200 Subject: [GAP Forum] Elementary abelian p-subgroups In-Reply-To: References: Message-ID: Well, I think that this can be programmed easily: 1> we simply need to consider one Sylow p-group. 2> the ConjugacyClassesSubgroups is an iterative algorithm starting from a small group and expanding it. Maybe we can adapt by starting with conjugacy classes in G of order p and adding commuting elements. The real challenge, I would say is whether or not the full list of elementary p-subgroup is stored in memory. If yes, then memory will be limiting. If not, then the difficulty will be in programming with only the knowledge of the conjugacy classes. Mathieu On Fri, Sep 6, 2013 at 11:24 AM, Ellis, Grahamj wrote: > Dear GAP forum, > > I too would like to know how best to access the elementary abelian > p-subgroups of a finite group G. Attached is an implementation of the > Quillen Complex which uses ConjugacyClassesSubgroups. As Jared mentions, > this is a very inefficient approach. > > ------------------------------------------------------------------------ > gap> G:=SmallGroup(64,134);; > gap> Q:=QuillenComplex(G,2); > Simplicial complex of dimension 2. > > gap> Homology(Q,0); > [ 0 ] > gap> Homology(Q,1); > [ ] > gap> Homology(Q,2); > [ ] > gap> Q!.nrSimplices(2); #The number of 2-simplices > 168 > gap> Q!.simplices(2,168); #The last 2-simplex > [ Group([ f6, f2, f3*f4*f5 ]), Group([ f2, f3*f4*f5*f6 ]), > Group([ f2*f3*f4*f5*f6 ]) ] > ------------------------------------------------------------------------ > > > Graham > > School of Mathematics, Statistics & Applied Mathematics > National University of Ireland, Galway > University Road, > Galway > Ireland > > http://hamilton.nuigalway.ie > tel: 091 493011 > ________________________________________ > From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on > behalf of Jared Warner [jaredwarner4 at gmail.com] > Sent: Friday, September 06, 2013 1:32 AM > To: forum at gap-system.org > Subject: [GAP Forum] Elementary abelian p-subgroups > > Dear GAP forum, > > I'm interested in studying the Quillen Complex of a finite group G, which > is the lattice of elementary abelian p-subgroups of G. Magma has a command > ElementaryAbelianSubgroups which does exactly what I want, but I'd like to > do this with GAP (to avoid paying for Magma). > > Specifically, given a finite group G I'd like to know: > > 1. The number of conjugacy classes of elementary abelian p-subgroups of a > certain rank > > 2. The number of subgroups in each such conjugacy class > > 3. A set of generators of a representative from each such conjugacy class > > I'm aware of ConjugacyClassesSubgroups, but I'd like to my command return a > list of representatives of elementary abelian p-subgroups, not all > subgroups. > > Also, I'd like to avoid working with ConjugacyClassesSubgroups if possible, > because it seems like a lot of wasted time and memory to compute the whole > subgroup lattice when I'm only interested in a small portion of it. > > Thanks for any help! > > Jared > _______________________________________________ > 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 sl4 at st-andrews.ac.uk Fri Sep 6 13:07:50 2013 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Fri, 6 Sep 2013 13:07:50 +0100 Subject: [GAP Forum] Elementary abelian p-subgroups In-Reply-To: References: Message-ID: I believe that ConjugacyClassesSubgroups(LatticeByCyclicExtension(g, IsElementaryAbelian, true)); Does what you want. Steve On 6 Sep 2013, at 10:24, "Ellis, Grahamj" wrote: > Dear GAP forum, > > I too would like to know how best to access the elementary abelian p-subgroups of a finite group G. Attached is an implementation of the Quillen Complex which uses ConjugacyClassesSubgroups. As Jared mentions, this is a very inefficient approach. > > ------------------------------------------------------------------------ > gap> G:=SmallGroup(64,134);; > gap> Q:=QuillenComplex(G,2); > Simplicial complex of dimension 2. > > gap> Homology(Q,0); > [ 0 ] > gap> Homology(Q,1); > [ ] > gap> Homology(Q,2); > [ ] > gap> Q!.nrSimplices(2); #The number of 2-simplices > 168 > gap> Q!.simplices(2,168); #The last 2-simplex > [ Group([ f6, f2, f3*f4*f5 ]), Group([ f2, f3*f4*f5*f6 ]), > Group([ f2*f3*f4*f5*f6 ]) ] > ------------------------------------------------------------------------ > > > Graham > > School of Mathematics, Statistics & Applied Mathematics > National University of Ireland, Galway > University Road, > Galway > Ireland > > http://hamilton.nuigalway.ie > tel: 091 493011 > ________________________________________ > From: forum-bounces at gap-system.org [forum-bounces at gap-system.org] on behalf of Jared Warner [jaredwarner4 at gmail.com] > Sent: Friday, September 06, 2013 1:32 AM > To: forum at gap-system.org > Subject: [GAP Forum] Elementary abelian p-subgroups > > Dear GAP forum, > > I'm interested in studying the Quillen Complex of a finite group G, which > is the lattice of elementary abelian p-subgroups of G. Magma has a command > ElementaryAbelianSubgroups which does exactly what I want, but I'd like to > do this with GAP (to avoid paying for Magma). > > Specifically, given a finite group G I'd like to know: > > 1. The number of conjugacy classes of elementary abelian p-subgroups of a > certain rank > > 2. The number of subgroups in each such conjugacy class > > 3. A set of generators of a representative from each such conjugacy class > > I'm aware of ConjugacyClassesSubgroups, but I'd like to my command return a > list of representatives of elementary abelian p-subgroups, not all > subgroups. > > Also, I'd like to avoid working with ConjugacyClassesSubgroups if possible, > because it seems like a lot of wasted time and memory to compute the whole > subgroup lattice when I'm only interested in a small portion of it. > > Thanks for any help! > > Jared > _______________________________________________ > 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 hulpke at math.colostate.edu Fri Sep 6 20:08:49 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 6 Sep 2013 13:08:49 -0600 Subject: [GAP Forum] Elementary abelian p-subgroups In-Reply-To: References: Message-ID: <166CCC5F-9889-448A-B99E-3F1036412D0A@math.colostate.edu> Dear Forum, Dear Jared Warner, [From a private email I happen to know that the groups are typically certain classical groups]. > I'm interested in studying the Quillen Complex of a finite group G, which > is the lattice of elementary abelian p-subgroups of G. Magma has a command > ElementaryAbelianSubgroups which does exactly what I want, but I'd like to > do this with GAP (to avoid paying for Magma). There are a couple of remarks here. Yes, GAP does not have this specific function, but [I have no access to the Magma Source code to check] I suspect that the magma code simply does the same calculation as a full lattice, just discarding subgroups in the process if they can never lead to elementary abelian subgroups. GAP has some hooks for this kind of discarding, however the interface is somewhat awkward, in part since it is difficult to decide which kinds of subgroups would turn out to be the popular ones to be used. Furthermore (as we do provide the full source code) it would be possible to simply copy the appropriate function and to insert test that will do the same kind of discarding. However doing so likely will require at least some basic knowledge of the algorithms involved. To get some further reduction it seems to be worth to me (assuming there are comparatively few such subgroups -- I'm sure anyone sufficiently malicious could construct examples in which this strategy turns out bad) to work [As Mathieu suggested] in Sylow subgroups first and fuse the found elementary abelian subgroups first under the normalizer (as this is cheaper) and then under conjugation by the whole group. Then the groups in question are solvable and the underlying algorithm for subgroups of a solvable group allows for a hook for discarding. (This algorithm is different than the cyclic extension which Steve mentioned explicitly, and Mathieu mentioned implicitly, in that it descends, not ascends. My reason for doing so is that I fear that an ascending building process will get choked in subgroup conjugacy tests in the case of larger elementary abelian normal subgroups.) Also at the moment it is beneficial in GAP to work in an isomorphic permutation group instead of a matrix group. I have coded this strategy rather naively in GAP in the following function (taking the group and a prime, and returning a list of conjugacy classes of elementary abelian subgroups). Clearly there are many places for optimization, but maybe it is of help. (Also you are likely to run this only finitely many times, depending on how finite this might be good enough for the job at hand.) I also would be curious to hear of examples you wanted to run this on in which it still performs substandard. Best, Alexander Hulpke #filter function NonelabUnconsider:=function(c,a,n,b,m) return HasElementaryAbelianFactorGroup(a,n) and # a may not act on b (as n does not act, otherwise the group obtained # will not be abelian) (ForAll(GeneratorsOfGroup(a),x->ForAll(GeneratorsOfGroup(b),y->IsOne(Comm(x,y)))) or IsAbelian(n)); end; Elabsub:=function(G,p) local n,s,u,c,i,hom,pc; if IsMatrixGroup(G) then hom:=IsomorphismPermGroup(G); G:=Image(hom,G); else hom:=fail; fi; s:=SylowSubgroup(G,p); s:=Omega(s,p,1); # elements of order p n:=Normalizer(G,s); if not IsSolvableGroup(n) then # TODO: Better larger solvable subgroup pc:=NaturalHomomorphismByNormalSubgroupNC(n,s); n:=PreImage(pc,RadicalGroup(Image(pc))); fi; pc:=IsomorphismSpecialPcGroup(n); s:=Image(pc,s); u:=SubgroupsSolvableGroup(Image(pc),rec(groups:=[s], consider:=NonelabUnconsider)); u:=Filtered(u,x->IsElementaryAbelian(x) and IsSubset(s,x)); u:=List(u,x->PreImage(pc,x)); Info(InfoLattice,1,Length(u)," subgroup classes in normalizer, fuse!"); u:=SubgroupsOrbitsAndNormalizers(G,u,false); c:=[]; for i in u do s:=ConjugacyClassSubgroups(G,i.representative); SetStabilizerOfExternalSet(s,i.normalizer); Add(c,s); od; if hom<>fail then u:=[]; for i in c do s:=ConjugacyClassSubgroups(Source(hom),PreImage(hom,Representative(i))); # transfer normalizer data SetStabilizerOfExternalSet(s,PreImage(hom,StabilizerOfExternalSet(i))); SetSize(s,Size(i)); Add(u,s); od; c:=u; fi; return c; end; From neginyavari67 at yahoo.com Sun Sep 8 13:23:42 2013 From: neginyavari67 at yahoo.com (Negin Yavari) Date: Sun, 8 Sep 2013 13:23:42 +0100 (BST) Subject: [GAP Forum] How to load Cohomolo package Message-ID: <1378643022.26708.YahooMailNeo@web171902.mail.ir2.yahoo.com> Dear? GAP Forum, I would like to work with package Cohomolo. But when I type LoadPackage("Cohomolo"); the answer in GAP is "fail". I would appreciate if you help me to load this package. Bests, Tina PS. I am elementary in Linux and actually I do not know how I can load packages in this system. From D.F.Holt at warwick.ac.uk Mon Sep 9 09:07:13 2013 From: D.F.Holt at warwick.ac.uk (Holt, Derek) Date: Mon, 9 Sep 2013 08:07:13 +0000 Subject: [GAP Forum] How to load Cohomolo package In-Reply-To: <1378643022.26708.YahooMailNeo@web171902.mail.ir2.yahoo.com> References: <1378643022.26708.YahooMailNeo@web171902.mail.ir2.yahoo.com> Message-ID: Dear Tina, GAP Forum, As explained in the README file, before you can load the Cohomolo package from within GAP, (assuming you are using linux or cygwin), you have to open a terminal and go into the pkg/cohomolo GAP directory, and then type first /bin/sh ./configure path and then make If that all works OK, then you can start GAP, and LoadPackage("Cohomolo"); should return true. Good luck! Derek Holt. _______________________________________ From: forum-bounces at gap-system.org on behalf of Negin Yavari Sent: 08 September 2013 13:23 To: forum at gap-system.org Subject: [GAP Forum] How to load Cohomolo package Dear GAP Forum, I would like to work with package Cohomolo. But when I type LoadPackage("Cohomolo"); the answer in GAP is "fail". I would appreciate if you help me to load this package. Bests, Tina PS. I am elementary in Linux and actually I do not know how I can load packages in this system. _______________________________________________ Forum mailing list Forum at mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From lvluyen at gmail.com Wed Sep 11 16:21:45 2013 From: lvluyen at gmail.com (Le Van Luyen) Date: Wed, 11 Sep 2013 16:21:45 +0100 Subject: [GAP Forum] Create a list of functions in GAP Message-ID: Dear all, I want to create a list of functions in GAP and I have used the following code lines: gap> F:=[]; gap> for i in [1..5] do > F[i]:=function( n) > return n+i; > end; > od; I expect the result will be: F[1](1)=2; F[2](1)=3; F[3](1)=4 But, In GAP gap>F[1](1); 6 gap>F[2](1); 6 gap>F[3](1); 6 It looks like all functions of list A are the same. Could you give me a way to create a list of functions like that? Thank you very much. Bests, Luyen From rm43 at evansville.edu Wed Sep 11 17:34:58 2013 From: rm43 at evansville.edu (Robert Morse) Date: Wed, 11 Sep 2013 11:34:58 -0500 Subject: [GAP Forum] Create a list of functions in GAP In-Reply-To: References: Message-ID: The value of the variable i is not bound at function definition. Rather, whatever i 's value at function execution is what is used. After the loop the variable i has the value 5. Hence calling each instance F[i] returns the same value. You can accomplish what you want by writing a function that creates the function (binding the value i): factory := function(i) return function(n) return n+i; end; end; gap> F:=[]; gap> for i in [1..5] do > F[i]:=factory(i); > od; Then gap>F[1](1); 2 gap>F[2](1); 3 gap>F[3](1); 4 Gives what you want. Robert F. Morse On Wed, Sep 11, 2013 at 10:21 AM, Le Van Luyen wrote: > Dear all, > > I want to create a list of functions in GAP and I have used the following > code lines: > > gap> F:=[]; > gap> for i in [1..5] do >> F[i]:=function( n) >> return n+i; >> end; >> od; > > I expect the result will be: F[1](1)=2; F[2](1)=3; F[3](1)=4 > > But, In GAP > > gap>F[1](1); > 6 > gap>F[2](1); > 6 > gap>F[3](1); > 6 > > It looks like all functions of list A are the same. > > Could you give me a way to create a list of functions like that? > > Thank you very much. > > Bests, > > Luyen > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From bensums at gmail.com Wed Sep 11 20:51:15 2013 From: bensums at gmail.com (Ben Summers) Date: Wed, 11 Sep 2013 20:51:15 +0100 Subject: [GAP Forum] Create a list of functions in GAP In-Reply-To: References: Message-ID: F := List([1..5], i -> (n -> n + i)); On 11 September 2013 16:21, Le Van Luyen wrote: > Dear all, > > I want to create a list of functions in GAP and I have used the following > code lines: > > gap> F:=[]; > gap> for i in [1..5] do > > F[i]:=function( n) > > return n+i; > > end; > > od; > > I expect the result will be: F[1](1)=2; F[2](1)=3; F[3](1)=4 > > But, In GAP > > gap>F[1](1); > 6 > gap>F[2](1); > 6 > gap>F[3](1); > 6 > > It looks like all functions of list A are the same. > > Could you give me a way to create a list of functions like that? > > Thank you very much. > > Bests, > > Luyen > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From Bill.Allombert at math.u-bordeaux1.fr Wed Sep 11 21:10:56 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Wed, 11 Sep 2013 22:10:56 +0200 Subject: [GAP Forum] Create a list of functions in GAP In-Reply-To: References: Message-ID: <20130911201056.GE11112@yellowpig> On Wed, Sep 11, 2013 at 11:34:58AM -0500, Robert Morse wrote: > The value of the variable i is not bound at function definition. > Rather, whatever i 's value at function execution is what is used. Please excuse my curiosity as someone who wrote some computer algebra system interpretor. Are you saying that i is a global variable which is dynamicaly scoped ? > After the loop the variable i has the value 5. Hence calling each > instance F[i] returns the same value. > > You can accomplish what you want by writing a function that creates > the function (binding the value i): > > factory := function(i) return function(n) return n+i; end; end; and there i is function parameter which is lexicaly scoped, and functions are closed over lexicaly scoped variable ? Cheers, Bill. From rm43 at evansville.edu Wed Sep 11 22:35:51 2013 From: rm43 at evansville.edu (Robert Morse) Date: Wed, 11 Sep 2013 16:35:51 -0500 Subject: [GAP Forum] Create a list of functions in GAP In-Reply-To: <20130911201056.GE11112@yellowpig> References: <20130911201056.GE11112@yellowpig> Message-ID: All free variables in a GAP function have a static binding within its lexicographical closure. In the original program the same i is a free variable in each function and the lexicographical closure is global name space. Hence any modification of i changes all the function definitions. factory := function(i) local f; f := function(n) return n+i; end; i:=5; return f; end; The lexicographical closure of the variable i is the factory function definition. Since i is free in f and the last assignment is within the lexicographical closure of i we have changed the function definition. f1 := factory(1); f2:=factory(2); f1(1) ---> returns 6 f2(1) ---> returns 6 In the example I gave before and F := List([1..5], i -> (n -> n + i)); we lose access to the lexicographic scope of i and the values are fixed as desired. Robert F. Morse On Wed, Sep 11, 2013 at 3:10 PM, Bill Allombert wrote: > On Wed, Sep 11, 2013 at 11:34:58AM -0500, Robert Morse wrote: >> The value of the variable i is not bound at function definition. >> Rather, whatever i 's value at function execution is what is used. > > Please excuse my curiosity as someone who wrote some computer algebra system > interpretor. > Are you saying that i is a global variable which is dynamicaly scoped ? > >> After the loop the variable i has the value 5. Hence calling each >> instance F[i] returns the same value. >> >> You can accomplish what you want by writing a function that creates >> the function (binding the value i): >> >> factory := function(i) return function(n) return n+i; end; end; > > and there i is function parameter which is lexicaly scoped, > and functions are closed over lexicaly scoped variable ? > > Cheers, > Bill. > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From Gallagher.Fergal at itsligo.ie Thu Sep 12 11:58:16 2013 From: Gallagher.Fergal at itsligo.ie (Fergal Gallagher) Date: Thu, 12 Sep 2013 11:58:16 +0100 Subject: [GAP Forum] units of group algebras Message-ID: <283998A06653F84BA510A6DBD1E4B2E5576481565C@coolboy.campus.itsligo.ie> Hi guys, I want to check the structure of the unit groups of certain finite group algebras. I am new to GAP and have tried the manual but it is very complicated even for the most basic task. ie. find the unit group of F2^2C2xC4 for example. Any help? Fergal Gallagher From alexk at mcs.st-andrews.ac.uk Thu Sep 12 12:07:38 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 12 Sep 2013 12:07:38 +0100 Subject: [GAP Forum] units of group algebras In-Reply-To: <283998A06653F84BA510A6DBD1E4B2E5576481565C@coolboy.campus.itsligo.ie> References: <283998A06653F84BA510A6DBD1E4B2E5576481565C@coolboy.campus.itsligo.ie> Message-ID: Dear Fergal, if you have a p-group and a field of p elements, then NormalizedUnitGroup and PcNormalizedUnitGroup from the LAGUNA package will help: gap> KG := GroupRing( GF( 2 ), DihedralGroup( 16 ) ); gap> V := NormalizedUnitGroup( KG ); gap> u := GeneratorsOfGroup( V )[4]; (Z(2)^0)*f1+(Z(2)^0)*f2+(Z(2)^0)*f1*f2 gap> W := PcNormalizedUnitGroup( KG ); gap> w := GeneratorsOfGroup( W )[4]; f4 For other cases I'm afraid that straightforward calculations will allow to deal only with small examples. Best wishes, Alexander On 12 Sep 2013, at 11:58, Fergal Gallagher wrote: > Hi guys, > > I want to check the structure of the unit groups of certain finite group algebras. > > I am new to GAP and have tried the manual but it is very complicated even for the most basic task. ie. find the unit group of F2^2C2xC4 for example. > > Any help? > > Fergal Gallagher > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From saqaas12 at gmail.com Mon Sep 16 11:06:36 2013 From: saqaas12 at gmail.com (Aasma Shaheen) Date: Mon, 16 Sep 2013 10:06:36 -0000 Subject: [GAP Forum] Fwd: Message-ID: <5236d826.e969b40a.0d1c.ffffcbe5@mx.google.com> http://www.uasgadvisors.com/u1zw9c.php From yassine_guer at hotmail.fr Thu Sep 19 20:05:27 2013 From: yassine_guer at hotmail.fr (yassine Guerboussa) Date: Thu, 19 Sep 2013 20:05:27 +0100 Subject: [GAP Forum] Non-left n-Engel elements in a group Message-ID: Dear GAP Forum, I will be pleased if one can help in writing a program such that, For a group $G$ (usually, a small group in GAP library), it computes the subgroup generatedby the elements that are not left n-Engel, for some fixed n. Recall that an element $a$ in $G$ is left n-Engel if it satisfies the identity$[x,a,...,a]=1$, where $a$ occurs $n$ times (the commutator is left normed). Thanks in advance.Best,Yassine Guerboussa From williamdemeo at gmail.com Thu Sep 19 20:45:13 2013 From: williamdemeo at gmail.com (William DeMeo) Date: Thu, 19 Sep 2013 15:45:13 -0400 Subject: [GAP Forum] Workshop on Computational Universal Algebra Message-ID: Dear Forum, I realize it is short notice, but perhaps some people on the GAP forum might be interested in the workshop described below. I apologize to anyone who is receiving this notice more than once. Sincerely, William Dear Colleagues, We are pleased to invite you to a Workshop on Computational Universal Algebra. This one day workshop will be held on Friday, October 4 (the day before the AMS Southeastern Sectional Meeting), at the University of Louisville, from 9:30am to 6pm. Featured Speakers Ralph Freese (University of Hawaii) -- Using the UACalc. Alexander Hulpke (Colorado State University) -- Finding Subgroups. Peter Jipsen (Chapman University) -- Finite ordered algebraic structures. Matthew Valeriote (McMaster University) -- Testing for certain idempotent Maltsev conditions. The aim of the workshop is to give researchers and graduate students an opportunity to spend some time with and learn from experts in computing for algebra research. The schedule of talks and other details can be found at the workshop website, but here is the essential information for your reference: Title: Workshop on Computational Universal Algebra Date: Friday, October 4, 2013 (9:30am--6pm) Location: Natural Sciences Bldg, Rm 212D, University of Louisville, Louisville, KY Website: http://universalalgebra.org Thank you for your interest. We hope to see you in October! Sincerely, The Organizers -- William DeMeo Department of Mathematics University of South Carolina 1523 Greene Street Columbia, SC 29208 http://williamdemeo.org -- -- Ralph Freese Department of Mathematics University of Hawaii 2565 McCarthy Mall Honolulu, HI 96822 http://math.hawaii.edu/~ralph -- From stefan at mcs.st-and.ac.uk Thu Sep 19 21:14:45 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Thu, 19 Sep 2013 21:14:45 +0100 (BST) Subject: [GAP Forum] Non-left n-Engel elements in a group In-Reply-To: References: Message-ID: On Thu, September 19, 2013 8:05 pm, yassine Guerboussa wrote: > I will be pleased if one can help in writing a program such that, > For a group $G$ (usually, a small group in GAP library), it computes the subgroup > generatedby the elements that are not left n-Engel, for some fixed n. > Recall that an element $a$ in $G$ is left n-Engel if it satisfies the > identity$[x,a,...,a]=1$, where $a$ occurs $n$ times (the commutator is left normed). I think the following should serve the purpose, as long as your groups are small: SubgroupGeneratedByElementsWhichAreNotLeftnEngel := function ( G, n ) local elms, gens, H; elms := AsList(G); gens := Filtered(elms, a->ForAny(elms,x->not IsOne(LeftNormedComm( Concatenation([x],ListWithIdenticalEntries(n,a)))))); H := Group(gens,One(G)); return H; end; Hope this helps, Stefan Kohl ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From fvanhove at cage.UGent.be Fri Sep 20 09:30:01 2013 From: fvanhove at cage.UGent.be (Frederic Vanhove) Date: Fri, 20 Sep 2013 17:30:01 +0900 Subject: [GAP Forum] Checking if permutation action has self-paired orbitals Message-ID: <523C0789.5060208@cage.UGent.be> Dear forum, suppose you have a group acting on a set. The orbitals are the orbits on ordered pairs of elements of that set, and their number can be computed in GAP using RankAction(groupname,setname); But I would like to know if these orbitals are self-paired, i.e. that (x1,x2) and (x2,x1) are always in the same orbit. What is the easiest way to check this? More generally, I would like to check if the permutation character is at least multiplicity-free. Many thanks, Kind regards, Fr?d?ric From sam at Math.RWTH-Aachen.De Fri Sep 20 11:20:36 2013 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Fri, 20 Sep 2013 12:20:36 +0200 Subject: [GAP Forum] Checking if permutation action has self-paired orbitals In-Reply-To: <523C0789.5060208@cage.UGent.be> References: <523C0789.5060208@cage.UGent.be> Message-ID: <20130920102036.GB7711@gemma.math.rwth-aachen.de> Dear Frederic, you wrote to the GAP Forum > suppose you have a group acting on a set. The orbitals are the > orbits on ordered pairs of elements of that set, and their number > can be computed in GAP using > RankAction(groupname,setname); > > But I would like to know if these orbitals are self-paired, i.e. > that (x1,x2) and (x2,x1) are always in the same orbit. > What is the easiest way to check this? > > More generally, I would like to check if the permutation character > is at least multiplicity-free. In general, the question whether two pairs are in the same orbit can be checked with 'RepresentativeAction'. Here is an example: gap> g:= SymmetricGroup( 3 );; gap> RepresentativeAction( g, [ 1, 2 ], [ 1, 3 ], OnPairs ); (2,3) gap> RepresentativeAction( g, [ 1, 1 ], [ 1, 3 ], OnPairs ); fail For that, you need representatives of the orbitals. If your group acts transitively then you can get them from orbit representatives of a point stabilizer. (See the GAP Reference Manual for more details.) Concerning the question about the permutation character of the action, one can compute this character explicitly, and if one knows the irreducible characters of the group then also the decomposition of the permutation character into irreducibles can be computed. However, if the groups in question are large then this is perhaps not the best approach; if the character tables of these groups are available in GAP's library of character tables then it might be possible to decide questions about transitive permutation characters with purely character theoretic methods. For relevant GAP functions, see section ``Possible Permutation Characters'' in the GAP Reference Manual. For some examples, see http://www.math.rwth-aachen.de/~Thomas.Breuer/ctbllib/htm/ctblpope.htm All the best, Thomas On Fri, Sep 20, 2013 at 05:30:01PM +0900, Frederic Vanhove wrote: > Dear forum, > > suppose you have a group acting on a set. The orbitals are the > orbits on ordered pairs of elements of that set, and their number > can be computed in GAP using > RankAction(groupname,setname); > > But I would like to know if these orbitals are self-paired, i.e. > that (x1,x2) and (x2,x1) are always in the same orbit. > What is the easiest way to check this? > > More generally, I would like to check if the permutation character > is at least multiplicity-free. > > Many thanks, > Kind regards, > Fr?d?ric From robert.bailey at ryerson.ca Fri Sep 20 12:17:09 2013 From: robert.bailey at ryerson.ca (Robert Bailey) Date: Fri, 20 Sep 2013 09:17:09 -0200 Subject: [GAP Forum] Checking if permutation action has self-paired orbitals In-Reply-To: <523C0789.5060208@cage.UGent.be> References: <523C0789.5060208@cage.UGent.be> Message-ID: Dear Fr?d?ric, You may also be able to approach your problem by thinking of it in terms of coherent configurations and/or association schemes (an area which is unfortunately a terminological minefield), for which there are some useful GAP functions available. The first is the "Elementary functions for association schemes on GAP" of Hanaki: see http://math.shinshu-u.ac.jp/~hanaki/as/gap/association_scheme.gap Also, Peter Cameron has some relevant GAP functions on his webpage, which work especially well for CCs obtained from permutation groups: see http://www.maths.qmul.ac.uk/~pjc/gapprogs.html For instance, Peter's programs include a function for testing if a group is generously transitive, i.e. every orbital is self-paired. I hope this is of some use to you! Regards, Robert. ----- Original Message ----- From: Frederic Vanhove Date: Friday, September 20, 2013 6:02 am Subject: [GAP Forum] Checking if permutation action has self-paired orbitals To: "forum at gap-system.org" > Dear forum, > > suppose you have a group acting on a set. The orbitals are the orbits > > on ordered pairs of elements of that set, and their number > can be computed in GAP using > RankAction(groupname,setname); > > But I would like to know if these orbitals are self-paired, i.e. that > > (x1,x2) and (x2,x1) are always in the same orbit. > What is the easiest way to check this? > > More generally, I would like to check if the permutation character is > at > least multiplicity-free. > > Many thanks, > Kind regards, > Fr?d?ric > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From dima at ntu.edu.sg Fri Sep 20 14:51:32 2013 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Fri, 20 Sep 2013 21:51:32 +0800 Subject: [GAP Forum] Checking if permutation action has self-paired orbitals In-Reply-To: References: <523C0789.5060208@cage.UGent.be> Message-ID: <20130920135132.GA40301@nash.ntu.edu.sg> Dear forum, On Fri, Sep 20, 2013 at 07:17:09PM +0800, Robert Bailey wrote: > Dear Fr?d?ric, > > You may also be able to approach your problem by thinking of it in terms of coherent configurations and/or association schemes (an area which is unfortunately a terminological minefield), for which there are some useful GAP functions available. The first is the "Elementary functions for association schemes on GAP" of Hanaki: see > http://math.shinshu-u.ac.jp/~hanaki/as/gap/association_scheme.gap > > Also, Peter Cameron has some relevant GAP functions on his webpage, which work especially well for CCs obtained from permutation groups: see > http://www.maths.qmul.ac.uk/~pjc/gapprogs.html > > For instance, Peter's programs include a function for testing if a group is generously transitive, i.e. every orbital is self-paired. it is trivial to read the corresponding information off the output of GRAPE's OrbitalGraphColadjMats (which works for transitive groups only, but for intransitive groups you always have non-self-paired orbitals and the representation is not multiplicity-free). E.g. gap> LoadPackage("grape"); gap> g:=PrimitiveGroup(7,3);; gap> m:=OrbitalGraphColadjMats(g);; gap> Display(m[2]); [ [ 0, 3, 0 ], [ 0, 1, 2 ], [ 1, 1, 1 ] ] shows that the 2nd orbital is not self-paired, as an orbital with the collapsed adjacency matrix A is self-paired iff there exists k such that A[1][k]*A[k][1] is non-0, and the 1st of the matrices in the output of OrbitalGraphColadjMats is always the identity matrix. Also, gap> m[2]*m[3]=m[3]*m[2]; true shows that the representation is multiplicity-free (for this holds iff the collapsed adjacency matrices commute). Hope this helps, Dmitrii > > I hope this is of some use to you! > > Regards, > Robert. > > ----- Original Message ----- > From: Frederic Vanhove > Date: Friday, September 20, 2013 6:02 am > Subject: [GAP Forum] Checking if permutation action has self-paired orbitals > To: "forum at gap-system.org" > > > > Dear forum, > > > > suppose you have a group acting on a set. The orbitals are the orbits > > > > on ordered pairs of elements of that set, and their number > > can be computed in GAP using > > RankAction(groupname,setname); > > > > But I would like to know if these orbitals are self-paired, i.e. that > > > > (x1,x2) and (x2,x1) are always in the same orbit. > > What is the easiest way to check this? > > > > More generally, I would like to check if the permutation character is > > at > > least multiplicity-free. > > > > Many thanks, > > Kind regards, > > Fr?d?ric > > > > _______________________________________________ > > 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. Towards A Sustainable Earth:Print Only When Necessary.Thank you. From rrburns at cox.net Sat Sep 21 23:38:47 2013 From: rrburns at cox.net (Sopsku) Date: Sat, 21 Sep 2013 22:38:47 +0000 (UTC) Subject: [GAP Forum] S4 isomorphic to semi-direct product of V4 and S3 Message-ID: Dear Forum, I am continuing my struggle with trying to learn GAP and group theory at the same time. I am looking at a problem set where it asks to show that S4 is isomorphic to the semi-direct product of V4 (i.e. C2xC2) and S3. I cannot seem to form this semi-direct product. [i.e. I cannot find elements in the AutomorphismGroup that match up with the order of the group in order to find the GroupHomomorphismbyImages as I have done for simpler examples such as A4 isomorphic to semi-direct product of C3 and V4] How do I use GAP to form the semi-direct product S3 and V4. Thank you for your help. Ron From benjamin.sambale at gmail.com Sun Sep 22 08:49:06 2013 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Sun, 22 Sep 2013 09:49:06 +0200 Subject: [GAP Forum] S4 isomorphic to semi-direct product of V4 and S3 In-Reply-To: References: Message-ID: <523EA0F2.60306@gmail.com> Hi Ron, you need to take the whole automorphism group: V:=AbelianGroup([2,2]); A:=AutomorphismGroup(V); G:=SemidirectProduct(A,V); StructureDescription(G); #gives S4 StructureDescription(A); #gives S3 Best wishes, Benjamin Am 22.09.2013 00:38, schrieb Sopsku: > Dear Forum, > > I am continuing my struggle with trying to learn GAP and group theory at the > same time. > > I am looking at a problem set where it asks to show that S4 is isomorphic to > the semi-direct product of V4 (i.e. C2xC2) and S3. I cannot seem to form > this semi-direct product. [i.e. I cannot find elements in the > AutomorphismGroup that match up with the order of the group in order to find > the GroupHomomorphismbyImages as I have done for simpler examples such as A4 > isomorphic to semi-direct product of C3 and V4] > > How do I use GAP to form the semi-direct product S3 and V4. > > Thank you for your help. > Ron > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From rostamihojjat at yahoo.com Sat Sep 28 09:15:05 2013 From: rostamihojjat at yahoo.com (hojjat Rostami) Date: Sat, 28 Sep 2013 01:15:05 -0700 (PDT) Subject: [GAP Forum] program for computing noncommuting elements of groups Message-ID: <1380356105.52890.YahooMailNeo@web126102.mail.ne1.yahoo.com> Dear GAP Forum I would like to compute the maximal set of ?pairwise non commuting elements in a finite groups. Of course i can find the following program which work through ?a grahp but i do not understand how it work. I will be more grateful for any help or comments. best regards LoadPackage("grape"); N:=function(a,b) return(IsAbelian(Group(a,b))); end; NonCommutingGraph:=function(g) local k, x, y; k:=Graph(g,Difference(g,Center(g)),OnPoints,function(x,y) return N(x,y)=false;end); return k; end; clique:=function(x) local G1,G2; G1:=NonCommutingGraph(x); G2:=ComplementGraph(G1); return Size(IndependentSet(G2)); end; CliqueNumber:=function(x) local c, t, M; c:=clique(x); while c>0 do t:=c; M:=CompleteSubgraphsOfGivenSize(NonCommutingGraph(x),c+1,0); c:=Size(M); if c=0 then???? return(t); fi; od; end;? From lkmp02 at gmail.com Tue Sep 24 11:31:19 2013 From: lkmp02 at gmail.com (Laxmi Kant Mishra) Date: Tue, 24 Sep 2013 16:01:19 +0530 Subject: [GAP Forum] How to define own group action in GAP? Message-ID: Dear forum, I have a group and a set. I wish to define an action the group on the set in my own way and wish to calculate its orbits and stabilizers. Is it possible? What is process? with regards, -- Laxmi Kant Mishra Department of Mathematics University of Allahabad Allahabad From hulpke at math.colostate.edu Mon Sep 30 16:36:58 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Mon, 30 Sep 2013 09:36:58 -0600 Subject: [GAP Forum] How to define own group action in GAP? In-Reply-To: References: Message-ID: Dear Forum, On Sep 24, 2013, at 9/24/13 4:31, Laxmi Kant Mishra wrote: > Dear forum, > I have a group and a set. I wish to define an action the group on the set > in my own way and wish to calculate its orbits and stabilizers. Is it > possible? What is process? Basically you would have to write a function that implements your action. The manual chapter on group actions http://www.gap-system.org/Manuals/doc/ref/chap41.html describes this. Please note that for any user-defined action the cost (memory and run time) of a stabilizer calculation is roughly proportional to the stabilizer index. Regards, Alexander Hulpke From markvs at gmail.com Tue Oct 1 14:08:05 2013 From: markvs at gmail.com (Mark Sapir) Date: Tue, 1 Oct 2013 08:08:05 -0500 Subject: [GAP Forum] How much memory is needed? Message-ID: I am going to buy a computer to run GAP. The main thing I am interested in are group presentations, Groebner bases and other memory-eating tasks. If anybody on the form has experience of running GAP on a computer with large RAM, can you answer whether 512 Gb is much better than 128 Gb. That is have you had problems that are solved by a computer with bigger RAM and not solved by a computer with smaller RAM? Mark Sapir From tesleft at hotmail.com Sun Sep 29 03:13:42 2013 From: tesleft at hotmail.com (Lee Martin CCNP) Date: Sun, 29 Sep 2013 10:13:42 +0800 Subject: [GAP Forum] How to set the ring for szy computation in homalg in gap system Message-ID: How to set the ring for szy computation in homalg in gap systemZZ := HomalgRing(); H := HomalgMatrix("[1,x^2+y, x*y-y*z, 0, 0 \ 0, x*z-y, z-x, 0, 0 \ 0, 0, 0, x^2+y, x*y-y*z \ 1, 0, 0, x*z-y, z-x]", 4, 5, ZZ);Regards,Martin From Dmitrii.Pasechnik at cs.ox.ac.uk Tue Oct 1 14:42:54 2013 From: Dmitrii.Pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Tue, 1 Oct 2013 14:42:54 +0100 Subject: [GAP Forum] How much memory is needed? In-Reply-To: References: Message-ID: <20131001134254.GB30981@cs.ox.ac.uk> Dear Mark, On Tue, Oct 01, 2013 at 08:08:05AM -0500, Mark Sapir wrote: > I am going to buy a computer to run GAP. The main thing I am > interested in are group presentations, Groebner bases and other > memory-eating tasks. If anybody on the form has experience of running > GAP on a computer with large RAM, can you answer whether 512 Gb is > much better than 128 Gb. That is have you had problems that are solved > by a computer with bigger RAM and not solved by a computer with > smaller RAM? last century we had to resolve to using a computer with 512Mb (not Gb!) of RAM to solve some particularly nasty coset enumeration. (cf. http://zbmath.org/?q=an:0954.51005) I guess that 512Gb is quite a lot - you'd need a lot of time to fill that much RAM with cosets. (Unless of course you are going to run many suchb computations at the same time) For Groebner bases you probably won't be using GAP's own implementation, for there are much faster ones available. Best, Dima > > Mark Sapir > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Tue Oct 1 17:21:46 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Tue, 1 Oct 2013 10:21:46 -0600 Subject: [GAP Forum] How much memory is needed? In-Reply-To: References: Message-ID: <53BCB477-D745-4FFD-9242-D6C1793326F0@math.colostate.edu> Dear Mark, I have had problems where a computer with bigger RAM has helped, though frankly if I had not had that larger computer I probably would have been able to do with a somewhat smaller machine and splitting up the job. In the end the benefit of more memory is somewhat logarithmic, if you give 512GB a 10, then 128GB is a 9 or 9.5. As far as ordering a computer, I think the question is of the tradeoff what you would have to forgo if buying the larger machine (at the funding level I have, 512GB would be too high a tradeoff; you are probably better funded) and whether you already have calculations that you know failed at 128GB. However, frankly, again my experience with (say) coset enumeration is that if it did not terminate in Memory x the chance to terminate in memory 2x is somewhere 5% or less, so a factor of 4 in memory is really only buying you a better success chance of 20% or less on these kinds of calculations. Particularly concerning the calculations I expect you will be doing, also be aware that GAPs built-in Coset enumeration, knuth-bendix and groebner bases are far less powerful than the standalone c-programs and that there are packages that provide interfaces to ACE, KBMAG and singular. Also often calculations tend to run for a long time and our system administrator wanted to reboot machines for safety updates -- I am now using DMTCP (http://dmtcp.sourceforge.net) to be able to save a running jobs to disk and to restart it after the machine reboot. Best, Alexander From mohamed.barakat at rwth-aachen.de Tue Oct 1 18:18:35 2013 From: mohamed.barakat at rwth-aachen.de (Mohamed Barakat) Date: Tue, 01 Oct 2013 19:18:35 +0200 Subject: [GAP Forum] How to set the ring for szy computation in homalg in gap system In-Reply-To: References: Message-ID: <9DF13861-E706-4702-9ADB-8B5A41B6FD06@rwth-aachen.de> Hello Martin, > How to set the ring for szy computation in homalg in gap systemZZ := HomalgRing(); > H := HomalgMatrix("[1,x^2+y, x*y-y*z, 0, 0 \ > 0, x*z-y, z-x, 0, 0 \ > 0, 0, 0, x^2+y, x*y-y*z \ > 1, 0, 0, x*z-y, z-x]", 4, 5, ZZ);Regards,Martin There was a line missing in my previous email. Best regards, Mohamed gap> LoadPackage( "GradedRingForHomalg" ); true gap> ZZ := HomalgRingOfIntegersInSingular( ); Z gap> R := ZZ * "x,y,z"; Z[x,y,z] gap> H := HomalgMatrix("[1,x^2+y, x*y-y*z, 0, 0, \ > 0, x*z-y, z-x, 0, 0, \ > 0, 0, 0, x^2+y, x*y-y*z, \ > 1, 0, 0, x*z-y, z-x]", 4, 5, R); gap> SyzygiesOfColumns( H ); gap> Display( last ); x^2*y*z-x*y*z^2+x^3-x*y^2-x^2*z+y^2*z+x*y-y*z, -x+z, -x*z+y, -x*y+y*z, x^2+y From alexk at mcs.st-andrews.ac.uk Tue Oct 1 20:19:11 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 1 Oct 2013 20:19:11 +0100 Subject: [GAP Forum] program for computing noncommuting elements of groups In-Reply-To: <1380356105.52890.YahooMailNeo@web126102.mail.ne1.yahoo.com> References: <1380356105.52890.YahooMailNeo@web126102.mail.ne1.yahoo.com> Message-ID: Dear hojjat Rostami, On 28 Sep 2013, at 09:15, hojjat Rostami wrote: > Dear GAP Forum > I would like to compute the maximal set of pairwise non commuting elements in a finite groups. > Of course i can find the following program which work through a grahp but i do not understand how it work. > I will be more grateful for any help or comments. I think this question might be easier answered if you could be more specific. If you could post better formatted and more readable code (separate functions by blank lines, use indentation) and use comments to explain what the code is doing and where exactly do you need Forum's help in explaining it, that may be very helpful. If you have found this program and there are author contact details there, it may be also useful to ask the author directly. One last remark: > best regards > > LoadPackage("grape"); > N:=function(a,b) > return(IsAbelian(Group(a,b))); > end; In this function, you create a group given by two generators a and b and then check if it is abelian - it would be more efficient just to check that a*b = b*a. Hope this helps, Alexander > NonCommutingGraph:=function(g) > local k, x, y; > k:=Graph(g,Difference(g,Center(g)),OnPoints,function(x,y) return > N(x,y)=false;end); > return k; > end; > clique:=function(x) > local G1,G2; > G1:=NonCommutingGraph(x); > G2:=ComplementGraph(G1); > return Size(IndependentSet(G2)); > end; > CliqueNumber:=function(x) > local c, t, M; > c:=clique(x); > while c>0 do > t:=c; > M:=CompleteSubgraphsOfGivenSize(NonCommutingGraph(x),c+1,0); > c:=Size(M); > if c=0 then return(t); fi; > od; > end; > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From anvita21 at gmail.com Wed Oct 2 10:54:05 2013 From: anvita21 at gmail.com (Anvita) Date: Wed, 2 Oct 2013 16:54:05 +0700 Subject: [GAP Forum] A possibly wrong output in MeatAxe Message-ID: Dear Forum, I am suspecting that GAP's function for finding composition factors of a MeatAxe module could be producing an incorrect answer in the following example which counts the multiplicities of composition factors of the regular module for A_5 over its splitting field GF(4). According to the theory, A_5 has a unique irreducible module of defect 0 which has dimension 4 and therefore must occur with multiplicity 4, but the function returns 3. A:=AlternatingGroup(5); G:=Action(A,A); gg:=GeneratorsOfGroup(GG); reg:=List(gg,g->PermutationMat(g,60,GF(4))); M:=GModuleByMats(reg,GF(4)); com:=MTX.CollectedFactors(M);; List(com,t->[MTX.Dimension(t[1]),t[2]]); # [ [ 1, 16 ], [ 2, 8 ], [ 2, 8 ], [ 4, 3 ] ] Here is a similar calculation in Magma which is more in line with the theory. A:=AlternatingGroup(5); _,G:=CosetAction(A,sub); M:=PermutationModule(G,GF(4)); ConstituentsWithMultiplicities(M); [ , , , ] [ 4, 1, 2, 3, 1, 2, 1, 3, 4, 1, 3, 2, 1, 2, 1, 3, 1, 2, 3, 1, 4, 1, 2, 2, 1, 3, 3, 4, 1, 2, 1, 3 ] Anvita From sl4 at st-andrews.ac.uk Wed Oct 2 12:40:26 2013 From: sl4 at st-andrews.ac.uk (Stephen Linton) Date: Wed, 2 Oct 2013 12:40:26 +0100 Subject: [GAP Forum] How much memory is needed? In-Reply-To: References: Message-ID: Hi Mark, I can confirm that GAP will run successfully on a computer of that size. We have a couple of 512GB RAM machines and I've used all of that in some single GAP computations. You may need to use some non-standard options at compile time or run time to get this to work though -- we can advise you at the time if necessary. I have a few caveats though: 1. Not all the algorithms in GAP and the software it uses through packages, like ACE and KBMAG are really "tuned" for this much data, so you may run into things that slow down more than they need to. Again, we may be able to advise or assist. 2. Most machines with this much memory have what is called a NUMA architecture -- the memory is divided between the processors and they are not really designed for one processor to access all the memory in a random way. This may mean things suddenly slowing down by a factor of two or three when you use more than about 25% of your memory. 3. In my, entirely unsystematic, experience, there are not THAT many problems that can be solved in 512GB that cannot be solved in 128. There will be some, but unless you have a predictable need for the memory, to hold matrices or something, there may not be so many. Of course your mileage may vary. Steve On 1 Oct 2013, at 14:08, Mark Sapir wrote: > I am going to buy a computer to run GAP. The main thing I am > interested in are group presentations, Groebner bases and other > memory-eating tasks. If anybody on the form has experience of running > GAP on a computer with large RAM, can you answer whether 512 Gb is > much better than 128 Gb. That is have you had problems that are solved > by a computer with bigger RAM and not solved by a computer with > smaller RAM? > > Mark Sapir > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From hulpke at math.colostate.edu Wed Oct 2 15:46:55 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 2 Oct 2013 08:46:55 -0600 Subject: [GAP Forum] A possibly wrong output in MeatAxe In-Reply-To: References: Message-ID: Dear Forum, ``Anvita'' wrote: > I am suspecting that GAP's function for finding composition factors > of a MeatAxe module could be producing an incorrect answer in the > following example which counts the multiplicities of composition factors > of the regular module for A_5 over its splitting field GF(4). No, what is happening in the calculation is that you don't construct the regular action, but the conjugation action of A on itself. (The default action is `OnPoints' which corresponds to the ^ operator.) > > A:=AlternatingGroup(5); > G:=Action(A,A); If you use GG:=Action(A,A,OnRight); > gg:=GeneratorsOfGroup(GG); > reg:=List(gg,g->PermutationMat(g,60,GF(4))); > M:=GModuleByMats(reg,GF(4)); > com:=MTX.CollectedFactors(M);; > List(com,t->[MTX.Dimension(t[1]),t[2]]); you get dimensions [ [ 1, 12 ], [ 2, 8 ], [ 2, 8 ], [ 4, 4 ] ] which I believe agrees with what some other system calculates. Regards, Alexander Hulpke From mark.evan.flanagan at gmail.com Tue Oct 8 20:57:00 2013 From: mark.evan.flanagan at gmail.com (Mark Flanagan) Date: Tue, 8 Oct 2013 15:57:00 -0400 Subject: [GAP Forum] Problem with ParGap and ParList Message-ID: Hello everyone, Hopefully issues with ParGap are on-topic for the GAP forum. Running ParGap with open mpi. ParList works with a simple function loaded into ParGap with ParRead, eg ParList([1..10],testfunc) when testfunc:= function(x) return x+x; end;; is used, but in more complicated use cases, ParList(producehoms(3),loopofhom) does not work: gap> ParList(producehoms(3),loopofhom); Error, Variable: 'f1' must have a value Error, List Assignment: must be a list with the same length as (14\ ) in result{range} := tmp; called from ( ) called from read-eval loop at line 3 of *stdin* you can replace via 'return ;' brk> Error, Variable: 'f1' must have a value producehoms(3) makes a list of homomorphisms and loopofhom is a function, and f1 is a generator of a group loaded in with ParRead. List(producehoms(3),loopofhom) works as expected on master, and it seems like ParRead worked because SendRecvMsg("List(producehoms(3),loopofhom)",1); produces the expected output. Any thoughts on why ParList isn't working right? Would it just be easier to parallelize my code manually, rather than relying on ParList? Any advice is appreciated. Mark From alexk at mcs.st-andrews.ac.uk Wed Oct 9 12:54:32 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Wed, 9 Oct 2013 12:54:32 +0100 Subject: [GAP Forum] Problem with ParGap and ParList In-Reply-To: References: Message-ID: <48514B31-FC53-45DF-885F-DC9F22A5D567@mcs.st-andrews.ac.uk> Dear Mark, On 8 Oct 2013, at 20:57, Mark Flanagan wrote: > Hello everyone, > > Hopefully issues with ParGap are on-topic for the GAP forum. > > Running ParGap with open mpi. ParList works with a simple function > loaded into ParGap with ParRead, eg ParList([1..10],testfunc) when > > testfunc:= function(x) return x+x; end;; > > is used, but in more complicated use cases, > ParList(producehoms(3),loopofhom) does not work: > > gap> ParList(producehoms(3),loopofhom); > Error, Variable: 'f1' must have a value > Error, List Assignment: must be a list with the same length as > (14\ > ) in > result{range} := tmp; called from > ( ) > called from read-eval loop at line 3 of *stdin* > you can replace via 'return ;' > brk> Error, Variable: 'f1' must have a value > > producehoms(3) makes a list of homomorphisms and loopofhom is a > function, and f1 is a generator of a group loaded in with ParRead. > List(producehoms(3),loopofhom) works as expected on master, and it > seems like ParRead worked because > > SendRecvMsg("List(producehoms(3),loopofhom)",1); > > produces the expected output. > > Any thoughts on why ParList isn't working right? Would it just be > easier to parallelize my code manually, rather than relying on > ParList? Any advice is appreciated. > > Mark I think this is not a problem in ParGap: one can easily reproduce an instance of the same problem without ParGap: gap> F:=FreeGroup("f1","f2"); gap> f1; Error, Variable: 'f1' must have a value not in any function at line 2 of *stdin* This happens because there is no variable in GAP named 'f1'. Instead, you can access generators of the group like here: gap> F.1; f1 Alternatively, you may call 'AssignGeneratorVariables': gap> AssignGeneratorVariables(F); #I Assigned the global variables [ f1, f2 ] gap> f1; f1 but then remember to call it each time you define a new group with the same letter denoting generators, otherwise f1 may still point to a generator of the former group. Hope this helps, Alexander From johannes.hahn at uni-jena.de Wed Oct 9 16:20:28 2013 From: johannes.hahn at uni-jena.de (Johannes Hahn) Date: Wed, 09 Oct 2013 17:20:28 +0200 Subject: [GAP Forum] Implementing automatic inheritance of features Message-ID: <5255743C.2030304@uni-jena.de> Hi everyone. Is there a mechanism in GAP that allows one to declare that certain new features are inherited by associated objects in a certain way? As an example: Let's say I want to implement a category for ordered groups. Is there a way to tell GAP that subgroups of a ordered group are also ordered with the same ordering? greetings Johannes Hahn. From sdliuy001 at 163.com Thu Oct 10 08:55:28 2013 From: sdliuy001 at 163.com (Yang Liu) Date: Thu, 10 Oct 2013 15:55:28 +0800 (CST) Subject: [GAP Forum] some question about compute the order of centralizer Message-ID: <4e53994.22705.141a15d003d.Coremail.sdliuy001@163.com> Dear Forum, Let F be a finite field of order p and V be a vector space over F of dimension n. Choose a,b belong to GL(n,F) and G=, the group generated by a and b. Then V may be viewed as an F[G]-module. For any element v of V, how to compute the order of the centralizer of v in G ? Best wishes, Yang Liu. From sam at Math.RWTH-Aachen.De Thu Oct 10 15:27:42 2013 From: sam at Math.RWTH-Aachen.De (Thomas Breuer) Date: Thu, 10 Oct 2013 16:27:42 +0200 Subject: [GAP Forum] Implementing automatic inheritance of features In-Reply-To: <5255743C.2030304@uni-jena.de> References: <5255743C.2030304@uni-jena.de> Message-ID: <20131010142742.GA6017@gemma.math.rwth-aachen.de> Dear Johannes, GAP provides a standard mechanism for deriving information about an object from known information about another object, see Section ``Relations Between Domains'' of the GAP Reference Manual. For example, if `g' is a group object and a subgroup is created via `Subgroup( g, ... )' then certain properties and attributes which are set (or not set) in `g' are used to derive certain properties and attributes of the subgroup object --think of `IsFinite' for `g' implying `IsFinite' for the subgroup. This transfer of information happens only upon creation of the subgroup (or one has to call the relevant function explicitly), that is, the subgroup does not automatically benefit from information about `g' that is obtained later in the GAP session. If I understand your question right then you are asking for ``static'' information which is already known when the subgroups are created, so perhaps this mechanism is of interest. If also ``dynamic inheritance'' of information is needed then more involved code is necessary. Mohamed has implemented something like this in his GAP packages. All the best, Thomas On Wed, Oct 09, 2013 at 05:20:28PM +0200, Johannes Hahn wrote: > Hi everyone. > > Is there a mechanism in GAP that allows one to declare that certain > new features are inherited by associated objects in a certain way? > As an example: Let's say I want to implement a category for ordered > groups. Is there a way to tell GAP that subgroups of a ordered group > are also ordered with the same ordering? > > greetings > Johannes Hahn. From rrburns at cox.net Thu Oct 10 18:19:55 2013 From: rrburns at cox.net (Sopsku) Date: Thu, 10 Oct 2013 17:19:55 +0000 (UTC) Subject: [GAP Forum] Projection for Semidirect Product Message-ID: Dear forum, I am having some difficulty understanding projections and semidirect products. I think I understand Projection for a Direct Product: f:= FreeGroup("a");; a:=f.1;; g := f/[a^4];; a:=g.1;; ## C4 f:= FreeGroup("b");; b:=f.1;; h := f/[b^2];; b:=h.1;; ## C2 ## form d:=DirectProduct(h,g); ## write elements of d terms of [e_h,e_g] p1:=Projection(d,1); p2:=Projection(d,2); List(Elements(d),x->[Image(p1,x),Image(p2,x)]); Now I would like to do soemthing similar for a semidirect product group, e.g a:=AutomorphismGroup(g); s:=SemidirectProduct(a,g); but now Projection(s,1); fails. Can I use the GAP Projections to do a decomposition similar to the direct product example above? Thank you for any help. From hulpke at math.colostate.edu Thu Oct 10 18:32:06 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 10 Oct 2013 11:32:06 -0600 Subject: [GAP Forum] Projection for Semidirect Product In-Reply-To: References: Message-ID: Dear Forum, On Oct 10, 2013, at 10/10/13 11:19, Sopsku wrote: > Dear forum, > > I am having some difficulty understanding projections and semidirect products. > Now I would like to do soemthing similar for a semidirect product group, e.g > > a:=AutomorphismGroup(g); > s:=SemidirectProduct(a,g); > > but now > Projection(s,1); > fails. > > Can I use the GAP Projections to do a decomposition similar to the direct > product example above? According to the manual, for a semidirect product N:S Projection(s) returns the projection onto S, there is no projection onto N which is a group homomorphism (and thus no numeric parameter to Projection). If you want to get an N-part of a product element g, you could divide off the canonical representative for the projection image, for example: PreImagesRepresentative(Embedding(s,1), g/Image(Embedding(s,2),Image(Projection(s),g)); Regards, Alexander Hulpke From rrburns at cox.net Thu Oct 10 20:44:05 2013 From: rrburns at cox.net (Sopsku) Date: Thu, 10 Oct 2013 19:44:05 +0000 (UTC) Subject: [GAP Forum] Projection for Semidirect Product References: Message-ID: Alexander Hulpke writes: > > > Dear Forum, > > On Oct 10, 2013, at 10/10/13 11:19, Sopsku wrote: > > > Dear forum, > > > > I am having some difficulty understanding projections and semidirect products. > > Now I would like to do soemthing similar for a semidirect product group, e.g > > > > a:=AutomorphismGroup(g); > > s:=SemidirectProduct(a,g); > > > > but now > > Projection(s,1); > > fails. > > > > Can I use the GAP Projections to do a decomposition similar to the direct > > product example above? > > According to the manual, for a semidirect product N:S > Projection(s) > returns the projection onto S, there is no projection onto N which is a group homomorphism (and thus no > numeric parameter to Projection). > > If you want to get an N-part of a product element g, you could divide off the canonical representative for the > projection image, for example: > > PreImagesRepresentative(Embedding(s,1), g/Image(Embedding(s,2),Image(Projection(s),g)); > > Regards, > > Alexander Hulpke > Sorry for being so dense, but I do not fully understand the command and it fails so I am not quite sure what Prof. Hulple intended. I did try the following: npart1:=function(elm) return Image(e1,Image(p,elm))^p; end; npart2:=function(elm) return PreImagesRepresentative(e2,elm/Image(e1,Image(p,elm))); end; PrintArray(List(Elements(S),e->[npart1(e),npart2(e)])); Which is more or less what I think I am looking for. Is this kind of what Prof. Hulpke intended. Again thank you for any help or comments. Ron From hulpke at math.colostate.edu Thu Oct 10 21:05:59 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 10 Oct 2013 14:05:59 -0600 Subject: [GAP Forum] Projection for Semidirect Product In-Reply-To: References: Message-ID: On Oct 10, 2013, at 10/10/13 1:44, Sopsku wrote: > > Sorry for being so dense, but I do not fully understand the command and it Indeed, it should have been (swapped indices 1,2) PreImagesRepresentative(Embedding(s,2), r/Image(Embedding(s,1),Image(Projection(s),r)); > fails so I am not quite sure what Prof. Hulpke intended. I did try the > following: Assuming your setup is: gap> g:=Group((1,2,3,4,5)); Group([ (1,2,3,4,5) ]) gap> a:=AutomorphismGroup(g); gap> s:=SemidirectProduct(a,g); gap> p:=Projection(s); [ f1, f2, f3 ] -> [ [ (1,2,3,4,5) ] -> [ (1,3,5,2,4) ], [ (1,2,3,4,5) ] -> [ (1,5,4,3,2) ], IdentityMapping( Group([ (1,2,3,4, 5) ]) ) ] gap> e1:=Embedding(s,1); CompositionMapping( [ f1, f2 ] -> [ f1, f2 ], CompositionMapping( Pcgs( [ (1,2,4,3), (1,4)(2,3) ]) -> [ f1, f2 ], ) ) gap> e2:=Embedding(s,2); [ (1,2,3,4,5) ] -> [ f3 ] > npart1:=function(elm) > return Image(e1,Image(p,elm))^p; > end; > > npart2:=function(elm) > return PreImagesRepresentative(e2,elm/Image(e1,Image(p,elm))); > end; > > PrintArray(List(Elements(S),e->[npart1(e),npart2(e)])); > > Which is more or less what I think I am looking for. Is this kind of what > Prof. Hulpke intended. Yes, though your function npart1 does nothing else but just computing Image(p,elm) Best, Alexander Hulpke > > Again thank you for any help or comments. > Ron > > > > > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From szgycs at szemerja-szasz.hu Fri Oct 11 10:41:33 2013 From: szgycs at szemerja-szasz.hu (szgycs at szemerja-szasz.hu) Date: Fri, 11 Oct 2013 11:41:33 +0200 Subject: [GAP Forum] GAP and PHP Message-ID: How can I exchange data between GAP and PHP? From mathieu.dutour at gmail.com Fri Oct 11 10:55:04 2013 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Fri, 11 Oct 2013 11:55:04 +0200 Subject: [GAP Forum] GAP and PHP In-Reply-To: References: Message-ID: There are two conceivable solutions: 1) write a GAP program from the PHP and do the output in the GAP program. Read the output from the GAP program. Procedure for run gap.sh < prog.g So, one computation corresponds to one GAP session. 2) Again use text files and use a system with have both of them running continuously on some infinite loop. After one text file "F" is created, create a second one "F.finish" indicating that F is finished and can be processed. Those are elementary ways, you have also the streams as possibility. But I would advise first for simple strategies before going for more complex harder to debug ones. Mathieu On Fri, Oct 11, 2013 at 11:41 AM, wrote: > How can I exchange data between GAP and PHP? > > ______________________________**_________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/**mailman/listinfo/forum > From caj21 at st-andrews.ac.uk Fri Oct 11 13:48:41 2013 From: caj21 at st-andrews.ac.uk (Chris Jefferson) Date: Fri, 11 Oct 2013 13:48:41 +0100 Subject: [GAP Forum] GAP and PHP In-Reply-To: References: Message-ID: <5257F3A9.4010205@st-andrews.ac.uk> On 11/10/13 10:41, szgycs at szemerja-szasz.hu wrote: > How can I exchange data between GAP and PHP? I would look at the SCSCP library. For simple transfers, this is not too hard if you can generate and read XML and communicate over a network (which I imagine is fairly easy in PHP, although I have never used it). Chris From sebastian.gutsche at rwth-aachen.de Fri Oct 11 14:45:34 2013 From: sebastian.gutsche at rwth-aachen.de (Sebastian Gutsche) Date: Fri, 11 Oct 2013 15:45:34 +0200 Subject: [GAP Forum] Implementing automatic inheritance of features Message-ID: <525800FE.4060804@rwth-aachen.de> Dear Johannes, a while ago, I implemented so-called todo-lists in the ToolsForHomalg package, which can propagate knowledge (in form of attributes and properties) between mathematically related objects (being a subobject is a special case). The basic idea is to attach certain tasks to an object, which are triggered once a property or an attribute get set (and acquire certain values). So they behave like immediate methods, but are much more flexible (dynamic inheritance). These todo-lists might be a solution for you. Please see the attachment for a commented example. Just copy both files to a directory and follow the file example.gi line by line for a demo. Also, there is the possibility to follow how a propagated property was set, i.e., building a proof. But this is still very beta, since the proof-tree usually grows too large. An example of a package that uses todo-lists outside of the homalg project is Martin Leuner's alcove: https://github.com/martin-leuner/alcove If you need any help please feel free to contact us. Best wishes, Sebastian -------------- next part -------------- ## Reads some definitions. Please look at that file first. Read( "example_definitions.gi" ); ## We first create a group and a subgroup. G := CreateOrderedGroup( ); H := CreateOrderedSubgroup( ); ## Now we create a todo-list entry, which looks up ## if G has an ordering, and then sets the ordering ## of H to the same object. entry := ToDoListEntry( [ [ G, "Ordering" ] ], H, "Ordering", [ Ordering, G ] ); ## Please read this as follows: ## First argument is a list of preconditions. ## Here the two element list means that the todo-list ## looks up if the attribute Ordering is set. ## If this is the case, it sets the Ordering ( 3th argument ) of ## H (2nd argument) to the ordering of G. This is provided by the last ## argument, which is a list. The first entry is a function, at this time ## applied to the rest of the list. We then get the ordering, which is already known, ## and set the ordering of H to it. ## The next step "activates" the entry. AddToToDoList( entry ); ## This should be false HasOrdering( H ); SetOrdering( G, "lex" ); ## Now the background magic happens, and the ordering of H is set to the same thing. Ordering( H ); ## The todo-lists are capable of even more things, for example launching a function. G2 := CreateOrderedGroup( ); entry := ToDoListEntry( [ [ G2, "Ordering" ] ], function( ) Print( "Hello world!\n" ); end ); AddToToDoList( entry ); SetOrdering( G2, "lex" ); ## The passed function is now launched once the attribute is set. ## We also provide the functionality to create todo-list entries by so ## called blueprints. These install todo-list entries for every created object ## in a category. ToDoListEntryBlueprint( IsOrderedGroup, [ [ ToDoList_this_object, "Ordering", "lex" ] ], [ function() Print( "Yay, I have an order!\n" ); end ] ); ## Now every new object should have a todo-list entry. G3 := CreateOrderedGroup( ); SetOrdering( G3, "lex" ); -------------- next part -------------- LoadPackage( "ToolsForHomalg" ); ## Define types etc. for ordered groups DeclareCategory( "IsOrderedGroup", IsObject ); DeclareCategory( "IsOrderedSubgroup", IsOrderedGroup ); DeclareRepresentation( "IsOrderedGroupRep", IsOrderedGroup and IsAttributeStoringRep, [ ] ); DeclareRepresentation( "IsOrderedSubgroupRep", IsOrderedSubgroup and IsAttributeStoringRep, [ ] ); BindGlobal( "TheFamilyOfOrderedGroups", NewFamily( "TheFamilyOfOrderedGroups" ) ); BindGlobal( "TheTypeOfOrderedGroups", NewType( TheFamilyOfOrderedGroups, IsOrderedGroupRep ) ); BindGlobal( "TheTypeOfOrderedSubgroups", NewType( TheFamilyOfOrderedGroups, IsOrderedSubgroupRep ) ); ## Please note that this is not meant to work in any case. ## Its just a demo. We might need constructors for objects. DeclareOperation( "CreateOrderedGroup", [ ] ); InstallMethod( CreateOrderedGroup, [ ], function( ) local group; group := rec(); Objectify( TheTypeOfOrderedGroups, group ); return group; end ); ## Creating a subgroup. ## Please note that there is currently no connection ## to the containing group. We will do this later by using todo-lists. ## One might solve this in a different manner. DeclareOperation( "CreateOrderedSubgroup", [ ] ); InstallMethod( CreateOrderedSubgroup, [ ], function( ) local group; group := rec(); Objectify( TheTypeOfOrderedSubgroups, group ); return group; end ); ## The attribute we want to share between group and subgroup, ## or better propagate from group to subgroup DeclareAttribute( "Ordering", IsOrderedGroup ); From mark.evan.flanagan at gmail.com Fri Oct 11 15:43:27 2013 From: mark.evan.flanagan at gmail.com (Mark Flanagan) Date: Fri, 11 Oct 2013 10:43:27 -0400 Subject: [GAP Forum] Problem with ParGap and ParList In-Reply-To: <48514B31-FC53-45DF-885F-DC9F22A5D567@mcs.st-andrews.ac.uk> References: <48514B31-FC53-45DF-885F-DC9F22A5D567@mcs.st-andrews.ac.uk> Message-ID: That fixed it! I'm still a bit confused because there was no trouble running this code using gap (not pargap) and nowhere in my code do I explicitly reference the variable 'f1'. Thanks! Best, Mark Dear Mark, On 8 Oct 2013, at 20:57, Mark Flanagan wrote: > Hello everyone, > > Hopefully issues with ParGap are on-topic for the GAP forum. > > Running ParGap with open mpi. ParList works with a simple function > loaded into ParGap with ParRead, eg ParList([1..10],testfunc) when > > testfunc:= function(x) return x+x; end;; > > is used, but in more complicated use cases, > ParList(producehoms(3),loopofhom) does not work: > > gap> ParList(producehoms(3),loopofhom); > Error, Variable: 'f1' must have a value > Error, List Assignment: must be a list with the same length as > (14\ > ) in > result{range} := tmp; called from > ( ) > called from read-eval loop at line 3 of *stdin* > you can replace via 'return ;' > brk> Error, Variable: 'f1' must have a value > > producehoms(3) makes a list of homomorphisms and loopofhom is a > function, and f1 is a generator of a group loaded in with ParRead. > List(producehoms(3),loopofhom) works as expected on master, and it > seems like ParRead worked because > > SendRecvMsg("List(producehoms(3),loopofhom)",1); > > produces the expected output. > > Any thoughts on why ParList isn't working right? Would it just be > easier to parallelize my code manually, rather than relying on > ParList? Any advice is appreciated. > > Mark I think this is not a problem in ParGap: one can easily reproduce an instance of the same problem without ParGap: gap> F:=FreeGroup("f1","f2"); gap> f1; Error, Variable: 'f1' must have a value not in any function at line 2 of *stdin* This happens because there is no variable in GAP named 'f1'. Instead, you can access generators of the group like here: gap> F.1; f1 Alternatively, you may call 'AssignGeneratorVariables': gap> AssignGeneratorVariables(F); #I Assigned the global variables [ f1, f2 ] gap> f1; f1 but then remember to call it each time you define a new group with the same letter denoting generators, otherwise f1 may still point to a generator of the former group. Hope this helps, Alexander From hulpke at math.colostate.edu Fri Oct 11 19:06:11 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Fri, 11 Oct 2013 12:06:11 -0600 Subject: [GAP Forum] Problem with ParGap and ParList In-Reply-To: References: <48514B31-FC53-45DF-885F-DC9F22A5D567@mcs.st-andrews.ac.uk> Message-ID: On Oct 11, 2013, at 10/11/13 8:43, Mark Flanagan wrote: > That fixed it! I'm still a bit confused because there was no trouble > running this code using gap (not pargap) and nowhere in my code do I > explicitly reference the variable 'f1'. The problem comes up in the communication between processes: ParGAP sends objects to a slave process by printing it into a string and sending this string for evaluation to the other machine. At this point the evaluation of `f1' happens, even if your code does not do so (but sends group elements to the other machine). Regards, Alexander Hulpke > > Thanks! > > Best, > Mark > Dear Mark, > > On 8 Oct 2013, at 20:57, Mark Flanagan wrote: > >> Hello everyone, >> >> Hopefully issues with ParGap are on-topic for the GAP forum. >> >> Running ParGap with open mpi. ParList works with a simple function >> loaded into ParGap with ParRead, eg ParList([1..10],testfunc) when >> >> testfunc:= function(x) return x+x; end;; >> >> is used, but in more complicated use cases, >> ParList(producehoms(3),loopofhom) does not work: >> >> gap> ParList(producehoms(3),loopofhom); >> Error, Variable: 'f1' must have a value >> Error, List Assignment: must be a list with the same length as >> (14\ >> ) in >> result{range} := tmp; called from >> ( ) >> called from read-eval loop at line 3 of *stdin* >> you can replace via 'return ;' >> brk> Error, Variable: 'f1' must have a value >> >> producehoms(3) makes a list of homomorphisms and loopofhom is a >> function, and f1 is a generator of a group loaded in with ParRead. >> List(producehoms(3),loopofhom) works as expected on master, and it >> seems like ParRead worked because >> >> SendRecvMsg("List(producehoms(3),loopofhom)",1); >> >> produces the expected output. >> >> Any thoughts on why ParList isn't working right? Would it just be >> easier to parallelize my code manually, rather than relying on >> ParList? Any advice is appreciated. >> >> Mark > > I think this is not a problem in ParGap: one can easily reproduce > an instance of the same problem without ParGap: > > gap> F:=FreeGroup("f1","f2"); > > gap> f1; > Error, Variable: 'f1' must have a value > not in any function at line 2 of *stdin* > > This happens because there is no variable in GAP named 'f1'. > Instead, you can access generators of the group like here: > > gap> F.1; > f1 > > Alternatively, you may call 'AssignGeneratorVariables': > > gap> AssignGeneratorVariables(F); > #I Assigned the global variables [ f1, f2 ] > gap> f1; > f1 > > but then remember to call it each time you define a new > group with the same letter denoting generators, otherwise > f1 may still point to a generator of the former group. > > Hope this helps, > Alexander > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From szgycs at szemerja-szasz.hu Sat Oct 12 14:51:54 2013 From: szgycs at szemerja-szasz.hu (szgycs at szemerja-szasz.hu) Date: Sat, 12 Oct 2013 15:51:54 +0200 Subject: [GAP Forum] =?utf-8?q?InputTextFile_string_input_as_Permutation?= =?utf-8?q?=3F?= Message-ID: Permutation is not a string, but input from InputTextFile is a string. How can I transform a string to a permutation? From matan at svgalib.org Sat Oct 12 15:13:08 2013 From: matan at svgalib.org (Matan Ziv-Av) Date: Sat, 12 Oct 2013 17:13:08 +0300 (IDT) Subject: [GAP Forum] InputTextFile string input as Permutation? In-Reply-To: References: Message-ID: On Sat, 12 Oct 2013, szgycs at szemerja-szasz.hu wrote: > Permutation is not a string, but input from InputTextFile is a string. How > can I transform a string to a permutation? There is the function EvalString(). I have a function for this purpose: ReadAsExpression:=function(n) local f,e; f:=InputTextFile(n); e:=ReadAll(f); CloseStream(f); return EvalString(e); end; -- Matan Ziv-Av. matan at svgalib.org From dmitrii.pasechnik at cs.ox.ac.uk Sat Oct 12 21:46:48 2013 From: dmitrii.pasechnik at cs.ox.ac.uk (Dmitrii Pasechnik) Date: Sat, 12 Oct 2013 21:46:48 +0100 Subject: [GAP Forum] InputTextFile string input as Permutation? In-Reply-To: References: Message-ID: <20131012204648.GA7542@cs.ox.ac.uk> On Sat, Oct 12, 2013 at 03:51:54PM +0200, szgycs at szemerja-szasz.hu wrote: > Permutation is not a string, but input from InputTextFile is a > string. How can I transform a string to a permutation? Do you really need to use InputTextFile()? It is often easier to generate proper GAP input and use Read(). Just in case, Dmitrii From mathpn59 at yahoo.com Sat Oct 12 22:44:50 2013 From: mathpn59 at yahoo.com (Takjk Taj) Date: Sat, 12 Oct 2013 14:44:50 -0700 (PDT) Subject: [GAP Forum] Finding free presentation of a group Message-ID: <1381614290.91336.YahooMailNeo@web163605.mail.gq1.yahoo.com> Dear Gap?forum, For a finite group G, let G\cong F/R for a free group F. If N is a normal subgroup of G. How we can find the normal subgroup S of F by GAP such that N\cong S/R? Any suggestions are welcome. Yours, Takjk From matliumh at gmail.com Wed Oct 16 07:40:02 2013 From: matliumh at gmail.com (Minghui Liu) Date: Wed, 16 Oct 2013 14:40:02 +0800 Subject: [GAP Forum] Urgently Seeking for Help in Calculating the Abelian Invariants of a Group with GAP Message-ID: Dear Sir/Madam, I am a beginner of GAP and would like to use this program to determine the structure of some groups. Here is the group I am interested in : Let K_3 be the group generated by three elements a, b, c subject to the relation that every simple commutator with repeated generators is equal to 1. (For example, [[[a, c], b], c] = 1.) Now let A_3 be the subgroup of K_3 generated by abc, [a, b][b, c][a, c], [[a, b], c] and [[a, c], b] and I would like to determine the structure of abelianization of A_3. Here is my code: F3:=FreeGroup("a","b","c"); B3:=[Comm(Comm(F3.1,F3.2),F3.1),Comm(Comm(F3.1,F3.2),F3.2),Comm(Comm(F3.2,F3.3),F3.2),Comm(Comm(F3.2,F3.3),F3.3),Comm(Comm(F3.1,F3.3),F3.1),Comm(Comm(F3.1,F3.3),F3.3),Comm(Comm(Comm(F3.1,F3.2),F3.3),F3.1),Comm(Comm(Comm(F3.1,F3.3),F3.2),F3.1),Comm(Comm(Comm(F3.2,F3.1),F3.3),F3.1),Comm(Comm(Comm(F3.2,F3.3),F3.1),F3.1),Comm(Comm(Comm(F3.3,F3.1),F3.2),F3.1),Comm(Comm(Comm(F3.3,F3.2),F3.1),F3.1),Comm(Comm(Comm(F3.1,F3.2),F3.3),F3.2),Comm(Comm(Comm(F3.1,F3.3),F3.2),F3.2),Comm(Comm(Comm(F3.2,F3.1),F3.3),F3.2),Comm(Comm(Comm(F3.2,F3.3),F3.1),F3.2),Comm(Comm(Comm(F3.3,F3.1),F3.2),F3.2),Comm(Comm(Comm(F3.3,F3.2),F3.1),F3.2),Comm(Comm(Comm(F3.1,F3.2),F3.3),F3.3),Comm(Comm(Comm(F3.1,F3.3),F3.2),F3.3),Comm(Comm(Comm(F3.2,F3.1),F3.3),F3.3),Comm(Comm(Comm(F3.2,F3.3),F3.1),F3.3),Comm(Comm(Comm(F3.3,F3.1),F3.2),F3.3),Comm(Comm(Comm(F3.3,F3.2),F3.1),F3.3),]; K3:=F3/B3; a:=K3.1; b:=K3.2; c:=K3.3; A3:=Subgroup(K3,[a*b*c,Comm(a,b)*Comm(a,c)*Comm(b,c),Comm(Comm(a,b),c), Comm(Comm(a,c),b)]); But when I run the command AbelianInvariants(A3), the following error message appeared: Error, the coset enumeration has defined more than 4096000 cosets called from TCENUM.CosetTableFromGensAndRels( fgens, grels, fsgens ) called from CosetTableFromGensAndRels( fgens, grels, fsgens ) called from TryCosetTableInWholeGroup( H ) called from CosetTableInWholeGroup( H ) called from RelatorMatrixAbelianizedSubgroupRrs( G, H ) called from ... at line 66 of *stdin* type 'return;' if you want to continue with a new limit of 8192000 cosets, type 'quit;' if you want to quit the coset enumeration, type 'maxlimit := 0; return;' in order to continue without a limit I thought it was because my groups are too complicated for GAP and thus I tried a much simpler version of groups: F2:=FreeGroup("a","b"); B2:=[Comm(Comm(F2.1,F2.2),F2.1),Comm(Comm(F2.1,F2.2),F2.2)]; K2:=F2/B2; A2:=Subgroup(K2,[K2.1*K2.2,Comm(K2.1,K2.2)]) * * When I run the command AbelianInvariants(A2), the same error message appeared. As I urgently need to do these calculations, any assistance/advice will be greatly appreciated. By the way, this is the first time that I write to this forum; please forgive me if there is anything improper in my question. Many thanks and best regards, MH From hulpke at math.colostate.edu Wed Oct 16 17:23:27 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Wed, 16 Oct 2013 10:23:27 -0600 Subject: [GAP Forum] Urgently Seeking for Help in Calculating the Abelian Invariants of a Group with GAP In-Reply-To: References: Message-ID: Dear Forum, Dear Minghui Liu, > > I thought it was because my groups are too complicated for GAP and thus I > tried a much simpler version of groups: > > F2:=FreeGroup("a","b"); > B2:=[Comm(Comm(F2.1,F2.2),F2.1),Comm(Comm(F2.1,F2.2),F2.2)]; > K2:=F2/B2; > A2:=Subgroup(K2,[K2.1*K2.2,Comm(K2.1,K2.2)]) > * > * > When I run the command AbelianInvariants(A2), the same error message > appeared. The algorithm for abelian invariants of a subgroup constructs a coset table and rewrites relators. In your case A2 has infinite index in K2, so this will not terminate. I am not aware of any algorithm that would deal with such situations automatically. What might be of help is to look at subgroups of finite index, containing A2. For example: gap> pq:=EpimorphismPGroup(K2,2,10);Size(Image(pq)); [ a, b ] -> [ a1, a2 ] 536870912 gap> A3:=PreImage(pq,Image(pq,A2)); Group() gap> AbelianInvariants(A3); [ 0, 0, 1024 ] gap> pq:=EpimorphismPGroup(K2,3,5);Size(Image(pq)); [ a, b ] -> [ a1, a2 ] 4782969 gap> A3:=PreImage(pq,Image(pq,A2)); Group() gap> AbelianInvariants(A3); [ 0, 0, 243 ] gap> pq:=EpimorphismPGroup(K2,5,3);Size(Image(pq)); [ a, b ] -> [ a1, a2 ] 390625 gap> A3:=PreImage(pq,Image(pq,A2)); Group() gap> Index(K2,A3); 125 gap> AbelianInvariants(A3); [ 0, 0, 125 ] from which I would naively guess that the invariants of A2 might be [0,0,0], but this is certainly no proof. Best, Alexander Hulpke From lvluyen at gmail.com Thu Oct 17 16:42:52 2013 From: lvluyen at gmail.com (Le Van Luyen) Date: Thu, 17 Oct 2013 16:42:52 +0100 Subject: [GAP Forum] Does there exist an isomorphism such that... Message-ID: Let G be a group with the order of Aut(G) very big. Example: gap>G:=SmallGroup(256,56092);; gap> AutomorphismGroup(G); We suppose that s,t: G->G are group homomorphisms. In GAP, Could you tell me a way to know whether there exists a group isomorphism f:G->G such that fs=tf? Thank you very much, Bests, Luyen From hulpke at math.colostate.edu Thu Oct 17 17:35:00 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 17 Oct 2013 10:35:00 -0600 Subject: [GAP Forum] Does there exist an isomorphism such that... In-Reply-To: References: Message-ID: Dear Forum, On Oct 17, 2013, at 10/17/13 9:42, Le Van Luyen wrote: > Let G be a group with the order of Aut(G) very big. > > Example: > gap>G:=SmallGroup(256,56092);; > gap> AutomorphismGroup(G); > > > We suppose that s,t: G->G are group homomorphisms. > In GAP, Could you tell me a way to know whether there exists a group > isomorphism f:G->G such that fs=tf? I would try to first find, by having the automorphism group act on subgroups, an automorphism e, such that ker(s)=ker(t)^e and that Image(s)=Image(t)^e. After that we can assume WLOG that s and t have same kernel and image, and Aut(G) is reduced to the stabilizer A of these two subgroups. Now you can look at these maps as isomorphism between G/ker(s) and Image(s). Go into the direct product of G/ker(s) with Image(s). For generators g1,g2,... of G/ker(s) you can represent s by the list of pairs (g1,g1^s),(g2,g2^s),... and t ditto. Under the induced action of A on this direct product you now want to map the one list of pairs to the other. How to do this best in practice might depend on the orders of kernel and image, feel free to send me an example for s and t and I'll have a look. 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 mathpn59 at yahoo.com Thu Oct 17 22:52:04 2013 From: mathpn59 at yahoo.com (Takjk Taj) Date: Thu, 17 Oct 2013 14:52:04 -0700 (PDT) Subject: [GAP Forum] help In-Reply-To: <1382044099.72841.YahooMailNeo@web163605.mail.gq1.yahoo.com> References: <1381614290.91336.YahooMailNeo@web163605.mail.gq1.yahoo.com> <1382044099.72841.YahooMailNeo@web163605.mail.gq1.yahoo.com> Message-ID: <1382046724.5254.YahooMailNeo@web163601.mail.gq1.yahoo.com> Dear Gap?forum, For a finite group G, let G\cong F/R for a free group F. If N is a normal subgroup of G. How we can find the normal subgroup S of F by GAP such that N\cong S/R? Any suggestions are welcome. Yours, Takjk From hulpke at math.colostate.edu Thu Oct 17 22:59:22 2013 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu, 17 Oct 2013 15:59:22 -0600 Subject: [GAP Forum] Finding free presentation of a group In-Reply-To: <1381614290.91336.YahooMailNeo@web163605.mail.gq1.yahoo.com> References: <1381614290.91336.YahooMailNeo@web163605.mail.gq1.yahoo.com> Message-ID: <302CBC19-1FAC-463C-A9B0-496455A5B1C8@math.colostate.edu> Dear Forum, On Oct 12, 2013, at 10/12/13 3:44, Takjk Taj wrote: > Dear Gap forum, > > For a finite group G, let G\cong F/R for a free group F. If N is a normal subgroup of G. How we can find the normal subgroup S of F by GAP such that N\cong S/R? If phi is a homomorphism from F to G (likely constructed as GroupHomomorphismByImages on the generators), take PreImage(Phi,N) Regards, Alexander Hulpke From tendshumba at yahoo.com Sun Oct 20 13:02:24 2013 From: tendshumba at yahoo.com (Tendshumba) Date: Sun, 20 Oct 2013 14:02:24 +0200 Subject: [GAP Forum] (no subject) Message-ID: I would like to have the permutation description of a collection of group elements {g1,g2,...,g_m} acting on the Cosets G/U_i where you have a descending chain G=U_0>U_1>...U_n-1>U_n=H for each i=1,...,n , n the order of G.How can I achieve this? Tendai? Sent from Samsung Mobile From tendshumba at yahoo.com Sun Oct 20 13:20:51 2013 From: tendshumba at yahoo.com (Tendshumba) Date: Sun, 20 Oct 2013 14:20:51 +0200 Subject: [GAP Forum] (no subject) Message-ID: I would like get the description of the action of the action of a collection { g_1,..,g_m} of elements of a group G of order n on the Cosets G/U_i for each i=1 ,...,n by right multiplication given a descending chain G=U_0>U_1>...>U_n-1>U_n=H of subgroups . How can i achieve this ? Tendai? ? Sent from Samsung Mobile From matliumh at gmail.com Mon Oct 21 16:33:59 2013 From: matliumh at gmail.com (Minghui Liu) Date: Mon, 21 Oct 2013 23:33:59 +0800 Subject: [GAP Forum] Responding Time (Group Homomorphisms by Images) Message-ID: Dear Sir/Madam, I am trying to use GAP to construct group homomorphisms. In fact, I have a list of groups K_n, each K_n is generated by n elements x_1, ... x_n subject to some relations where n is at least 2. Now I want to construct group homomorphisms f_{n,k} from K_n to K_{n-1} defined by f_{n,k}(x_1) = x_1, ..., f_{n,k}(x_{k-1}) = x_{k-1}, f_{n,k}(x_k) = e, f_{n,k}(x_{k+1}) = x_{k}, ..., f_{n,k}(x_n) = x_{n-1}. For example, f_{3,1} from K_3 to K_2 maps x_1 to e, x_2 to x_1 and x_3 to x_2; f_{3,2} from K_3 to K_2 maps x_1 to x_1, x_2 to e and x_3 to x_2; f_{3,3} from K_3 to K_2 maps x_1 to x_1, x_2 to x_2 and x_3 to e. Now I am interested in studying the intersection of ker(f_{n, k}), where n is some fixed integer and k runs from 1 to n. When I put my question to GAP, I have used the following commands: F2:=FreeGroup("a","b"); B2:=[Comm(Comm(F2.1,F2.2),F2.1),Comm(Comm(F2.1,F2.2),F2.2)]; K2:=F2/B2; F3:=FreeGroup("a","b","c"); B3:=[Comm(Comm(F3.1,F3.2),F3.1),Comm(Comm(F3.1,F3.2),F3.2), Comm(Comm(F3.1,F3.3),F3.1),Comm(Comm(F3.1,F3.3),F3.3), Comm(Comm(F3.2,F3.1),F3.2),Comm(Comm(F3.2,F3.1),F3.1), Comm(Comm(F3.2,F3.3),F3.2),Comm(Comm(F3.2,F3.3),F3.3), Comm(Comm(F3.3,F3.1),F3.3),Comm(Comm(F3.3,F3.1),F3.1), Comm(Comm(F3.3,F3.2),F3.3),Comm(Comm(F3.3,F3.2),F3.2), Comm(Comm(Comm(F3.1,F3.2),F3.3),F3.1), Comm(Comm(Comm(F3.1,F3.2),F3.3),F3.2), Comm(Comm(Comm(F3.1,F3.2),F3.3),F3.3), Comm(Comm(Comm(F3.1,F3.3),F3.2),F3.1), Comm(Comm(Comm(F3.1,F3.3),F3.2),F3.2), Comm(Comm(Comm(F3.1,F3.3),F3.2),F3.3), Comm(Comm(Comm(F3.2,F3.1),F3.3),F3.1), Comm(Comm(Comm(F3.2,F3.1),F3.3),F3.2), Comm(Comm(Comm(F3.2,F3.1),F3.3),F3.3), Comm(Comm(Comm(F3.2,F3.3),F3.1),F3.1), Comm(Comm(Comm(F3.2,F3.3),F3.1),F3.2), Comm(Comm(Comm(F3.2,F3.3),F3.1),F3.3), Comm(Comm(Comm(F3.3,F3.1),F3.2),F3.1), Comm(Comm(Comm(F3.3,F3.1),F3.2),F3.2), Comm(Comm(Comm(F3.3,F3.1),F3.2),F3.3), Comm(Comm(Comm(F3.3,F3.2),F3.1),F3.1), Comm(Comm(Comm(F3.3,F3.2),F3.1),F3.2), Comm(Comm(Comm(F3.3,F3.2),F3.1),F3.3)]; K3:=F3/B3; f321:=GroupHomomorphismByImages(K3,K2,[K3.1,K3.2,K3.3],[One(K2),K2.1,K2.2]); Then it takes like forever for my GAP to respond. Thus it seems hopeless to deal with the cases where n is 4 or larger. Just in case that you need this information, I am running GAP4.6.5 on my six-year-old computer. Any comments or suggestions? Your assistance will be greatly appreciated. By the way, after hitting "Enter" how can we roughly know how long it would take for GAP to respond? From my experience sometimes it could be a few minutes and sometimes it does not respond after about one hour and I choose to terminate it. If I know it would respond in say two hours I probably can wait; but what if it takes dozens or hundreds of hours? Best regards, Minghui From aliasar at gazi.edu.tr Wed Oct 23 10:00:13 2013 From: aliasar at gazi.edu.tr (Ali Osman ASAR) Date: Wed, 23 Oct 2013 12:00:13 +0300 (EEST) Subject: [GAP Forum] (no subject) Message-ID: <1046585706.633278.1382518813615.JavaMail.root@gazi.edu.tr> Dear GAP Foum, I have a simple problem which I cannot overcome. I do not know how to save , where to save a GAP work. I would be grateful if someone could?explain this by a? short example.?(In GAP there is an example gap>a:=1; gap>Saveworkspace("savefile");true gap>quit. What is the value of "savefile" here? Sincerely yours A.O.Asar From zeinab_foruzanfar at iust.ac.ir Sat Oct 19 10:52:03 2013 From: zeinab_foruzanfar at iust.ac.ir (zeinab foruzanfar) Date: Sat, 19 Oct 2013 13:22:03 +0330 Subject: [GAP Forum] disjoint cycle decompositions Message-ID: Hi I want a command in GAP to show the cycle structure of elements of a Group in their disjoint cycle decompositions. For instance the Symmetric group S_3 has 3 cycles of length 2 and 2 cycles of length 3.Generraly I want to see the elements of a group in their disjoint cycle decompositions. Thanks From urvashi131 at gmail.com Tue Oct 22 17:06:18 2013 From: urvashi131 at gmail.com (Urvashi Sharma) Date: Tue, 22 Oct 2013 21:36:18 +0530 Subject: [GAP Forum] Program to find central automorphisms Message-ID: <000001cecf40$a76761f0$f63625d0$@com> Dear Sir/Madam I am Mahak Sharma, a research scholar at Thapar University(Patiala),India working on automorphisms of finite p-groups. I am using GAP and I want to know how to find central automorphisms of a finite p-group in GAP. Please send the program for the same in GAP. Best Regards Mahak Sharma Research Scholar School of Mathematics and Computer Applications Thapar University,Patiala(Punjab) India From rrburns at cox.net Thu Oct 24 02:07:03 2013 From: rrburns at cox.net (Sopsku) Date: Thu, 24 Oct 2013 01:07:03 +0000 (UTC) Subject: [GAP Forum] D8 as a product of Q=D8/Center and its Center Message-ID: Dear Forum I am tryng to use GAP to "reconstruct" the group D8 as some sort of product of its quotient group Q=D8/Center(D8) and its Center(D8). gap> D8:=DihedralGroup(8); # or however best defined for this gap> ZD8:=Center(D8); Group([ f3 ]) gap> Q:=D8/ZD8; Group([ f1, f2, of ... ]) gap> StructureDescription(Q); "C2 x C2" I know it can't be direct product. I reorganized the Cayley Graph for D8 by grouping the cosets as nodes and and looking at the lines connecting the nodes. They cross and so a direct product will not do it. Verify this: gap> d:=DirectProduct(Q,ZD8); gap> StructureDescription(d); "C2 x C2 x C2" Not a direct product. See if I can make a semidirect product gap> A:=AutomorphismGroup(ZD8); gap> List(A,Order); [ 1 ] I don't see how to match up any orders and proceed from here. I would appreciate any help as how to use GAP functionality to construct this product Thank you for any help. Ron From A.Egri-Nagy at herts.ac.uk Thu Oct 24 02:18:57 2013 From: A.Egri-Nagy at herts.ac.uk (Attila Egri-Nagy) Date: Thu, 24 Oct 2013 12:18:57 +1100 Subject: [GAP Forum] D8 as a product of Q=D8/Center and its Center Message-ID: Dear Ron, Using the SgpDec pacakge (sgpdec.sf.net) you can construct subgroups of the wreath product (called cascade products). See Example 5 in http://arxiv.org/abs/1303.0091. The package is still in development, so please let me know if you need help installing/using it. best wishes, Attila On Thu, Oct 24, 2013 at 12:07 PM, Sopsku wrote: > Dear Forum > > I am tryng to use GAP to "reconstruct" the group D8 as some sort of product > of its quotient group Q=D8/Center(D8) and its Center(D8). > > gap> D8:=DihedralGroup(8); # or however best defined for this > > gap> ZD8:=Center(D8); > Group([ f3 ]) > gap> Q:=D8/ZD8; > Group([ f1, f2, of ... ]) > gap> StructureDescription(Q); > "C2 x C2" > > I know it can't be direct product. I reorganized the Cayley Graph for D8 by > grouping the cosets as nodes and and looking at the lines connecting the > nodes. They cross and so a direct product will not do it. Verify this: > > gap> d:=DirectProduct(Q,ZD8); > > gap> StructureDescription(d); > "C2 x C2 x C2" > > Not a direct product. See if I can make a semidirect product > > gap> A:=AutomorphismGroup(ZD8); > > gap> List(A,Order); > [ 1 ] > > I don't see how to match up any orders and proceed from here. > > I would appreciate any help as how to use GAP functionality to construct > this product Thank you for any help. > Ron > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Thu Oct 24 10:30:26 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 24 Oct 2013 10:30:26 +0100 Subject: [GAP Forum] (no subject) In-Reply-To: <1046585706.633278.1382518813615.JavaMail.root@gazi.edu.tr> References: <1046585706.633278.1382518813615.JavaMail.root@gazi.edu.tr> Message-ID: Dear Ali Osman, Please see http://www.gap-system.org/Faq/faq.html#5.4 about LogTo and SaveWorkspace. These two commands are quite different, and the usage depends on whether do you want to save the input and output or the full state of your GAP session. Saving a workspace, one will not be able to read it later in a different version of GAP, while LogTo produces just a text file with the history of inputs and outputs. Hope this helps, Alexander On 23 Oct 2013, at 10:00, Ali Osman ASAR wrote: > > > Dear GAP Foum, > I have a simple problem which I cannot overcome. I do not know how to save , where to save a GAP work. I would be grateful if someone could explain this by a short example. (In GAP there is an example gap>a:=1; gap>Saveworkspace("savefile");true gap>quit. What is the value of "savefile" here? > Sincerely yours > A.O.Asar From rrburns at cox.net Thu Oct 24 21:25:37 2013 From: rrburns at cox.net (Sopsku) Date: Thu, 24 Oct 2013 20:25:37 +0000 (UTC) Subject: [GAP Forum] D8 as a product of Q=D8/Center and its Center References: Message-ID: Sopsku writes: > > Dear Forum > > I am tryng to use GAP to "reconstruct" the group D8 as some sort of product > of its quotient group Q=D8/Center(D8) and its Center(D8). > > gap> D8:=DihedralGroup(8); # or however best defined for this > > gap> ZD8:=Center(D8); > Group([ f3 ]) > gap> Q:=D8/ZD8; > Group([ f1, f2, of ... ]) > gap> StructureDescription(Q); > "C2 x C2" > > I know it can't be direct product. I reorganized the Cayley Graph for D8 by > grouping the cosets as nodes and and looking at the lines connecting the > nodes. They cross and so a direct product will not do it. Verify this: > > gap> d:=DirectProduct(Q,ZD8); > > gap> StructureDescription(d); > "C2 x C2 x C2" > > Not a direct product. See if I can make a semidirect product > > gap> A:=AutomorphismGroup(ZD8); > > gap> List(A,Order); > [ 1 ] > > I don't see how to match up any orders and proceed from here. > > I would appreciate any help as how to use GAP functionality to construct > this product Thank you for any help. > Ron > Dear Forum, In my original pointing I made a mistake in stating the I could not "reconstruct" the group D8 as some sort of product of its quotient group Q=D8/Center(D8) and its Center(D8). In fact (since Q iso C2XC2 and Center(D8) iso C2) this is simply done as follows: gap> C2 := Group( (1,2) );; gap> C2xC2 := Group( (1,3)(2,4), (1,2)(3,4) );; gap> gap> A:=AutomorphismGroup(C2xC2);; gap> L:=Elements(A);; gap> List(L,Order); [ 1, 2, 2, 3, 3, 2 ] gap> phi:=GroupHomomorphismByImages(C2,A,[C2.1],[L[2]]); [ (1,2) ] -> [ [ (1,3)(2,4), (1,2)(3,4) ] -> [ (1,4)(2,3), (1,2)(3,4) ] ] gap> s:=SemidirectProduct(C2,phi,C2xC2); Group([ (3,4)(5,6), (3,5)(4,6), (1,2)(5,6) ]) gap> StructureDescription(s); "D8" Which is what I wanted to see. As pointed out to me by Attila Egri-Nagy I can also construct D8 as a wreath product from my C2's gap> w:=WreathProduct(C2, C2); Group([ (1,2), (3,4), (1,3)(2,4) ]) gap> StructureDescription(w); "D8" but this does not show D8/Center(D8) X Center(D8) as explicitly as the semidirect product shows it. I apologize for the mistake in my original posting and thank you all for your consideration. Ron From bernhard.boehmler at googlemail.com Sun Oct 27 17:56:18 2013 From: bernhard.boehmler at googlemail.com (Bernhard Boehmler) Date: Sun, 27 Oct 2013 18:56:18 +0100 Subject: [GAP Forum] Question concerning the GAP package qpa and injective modules of quotients of path algebras Message-ID: Dear GAP forum, I would like to test with the qpa package (qpa=quivers and path algebras), whether a projective A-module is isomorphic to the dual of another projective module (as modules). Here, A=kQ/I is a quotient of a path algebra by an admissible ideal I. I have projective A-modules P_1 and P_2 and its dual I_2:=DualOfModule(P_2), but when I use the command IsomorphicModules(P_1,I_2), I get an error massage, because I_2 is not an A-module, but an A^op ? module. Therefore, I would like to ask, if anybody knows, how to circumvent this problem. Thank you very much. Kind regards, Bernhard From lijr07 at gmail.com Wed Oct 30 11:04:28 2013 From: lijr07 at gmail.com (Jianrong Li) Date: Wed, 30 Oct 2013 13:04:28 +0200 Subject: [GAP Forum] represent elements of Weyl groups or affine Weyl groups in terms of matrics Message-ID: Dear Forum, Let s_1, ..., s_n be simple reflections. w=s_{i_1}...s_{i_k} be an element of Weyl group. Is there some function in GAP which can produce the matrix expression of w? Thank you very much. Best wishes, Jianrong. From tendshumba at yahoo.com Fri Nov 1 12:10:34 2013 From: tendshumba at yahoo.com (tendai shumba) Date: Fri, 1 Nov 2013 05:10:34 -0700 (PDT) Subject: [GAP Forum] Binary code generating function Message-ID: <1383307834.65147.YahooMailNeo@web140104.mail.bf1.yahoo.com> Dear Forum I am trying to generate binary codes ?given a basis. I found :? CodeGenBy:=function(codebasis) return Subspace(GF(2)^Length(codebasis[1]),codebasis) works but it done not work? for the empty basis codebasis:=[]; How can I make this to work? Tendai Shumba From oyvind.solberg at math.ntnu.no Mon Nov 4 07:46:34 2013 From: oyvind.solberg at math.ntnu.no (Oeyvind Solberg) Date: Mon, 4 Nov 2013 07:46:34 +0000 (UTC) Subject: [GAP Forum] Question concerning the GAP package qpa and injective modules of quotients of path algebras References: Message-ID: Bernhard Boehmler writes: > > Dear GAP forum, > > I would like to test with the qpa package (qpa=quivers and path algebras), > whether a projective A-module is isomorphic to the dual of another > projective module (as modules). > > Here, A=kQ/I is a quotient of a path algebra by an admissible ideal I. > > I have projective A-modules P_1 and P_2 and its dual > I_2:=DualOfModule(P_2), but > > when I use the command IsomorphicModules(P_1,I_2), I get an error massage, > because I_2 is not an A-module, but an A^op ? module. > > Therefore, I would like to ask, if anybody knows, how to circumvent this > problem. > > Thank you very much. > > Kind regards, > > Bernhard > Dear Bernhard and the GAP Forum, The vector space duality will induce a duality from mod A to mod A^op. Even if A and A^op are isomorphic, A and A^op will be different objects in GAP. So if you want to compare an (indecomposable) projective module and its dual, one has to construct the indecomposable projective modules over A^op, and then apply the duality. This can also be done directly with the command IndecInjectiveModules(). Alternatively, to check that a projective module is isomorphic to the dual of some projective module, this is the same as asking if the projective module also is injective. An example with a Nakayama algebra with four indecomposable projectives: gap> A := NakayamaAlgebra(Rationals, [3,3,3,3]); ]/ ]>, (4 generators)>> gap> P := IndecProjectiveModules(A); [ <[ 1, 1, 1, 0 ]>, <[ 0, 1, 1, 1 ]>, <[ 1, 0, 1, 1 ]>, <[ 1, 1, 0, 1 ]> ] gap> Aop := OppositeAlgebra(A); ]/ ]>, (4 generators)>> gap> Pop := IndecProjectiveModules(Aop); [ <[ 1, 0, 1, 1 ]>, <[ 1, 1, 0, 1 ]>, <[ 1, 1, 1, 0 ]>, <[ 0, 1, 1, 1 ]> ] gap> DPop := List(Pop, p -> DualOfModule(p)); [ <[ 1, 0, 1, 1 ]>, <[ 1, 1, 0, 1 ]>, <[ 1, 1, 1, 0 ]>, <[ 0, 1, 1, 1 ]> ] gap> IsomorphicModules(P[1], DPop[1]); false gap> IsomorphicModules(P[1], DPop[2]); false gap> IsomorphicModules(P[1], DPop[3]); true gap> IsomorphicModules(P[1], DPop[4]); false gap> # or alternatively gap> IsInjectiveModule(P[1]); true Best regards, Oeyvind. From caj21 at st-andrews.ac.uk Sun Nov 10 19:54:30 2013 From: caj21 at st-andrews.ac.uk (Chris Jefferson) Date: Sun, 10 Nov 2013 19:54:30 +0000 Subject: [GAP Forum] Naming of Primitive Groups Message-ID: <527FE476.8080506@st-andrews.ac.uk> After trying to track down some strange behavior in a program, I was surprised to find the names of the first two primitive groups of size 10: gap> PrimitiveGroup(10, 1); A(5) gap> PrimitiveGroup(10, 2); S(5) These are, unsurprisingly, the same names as: gap> PrimitiveGroup(5,4); A(5) gap> PrimitiveGroup(5,5); S(5) Out of curiosity, are these groups related in some non-obvious way, and is there any reason the names of the primitive groups are not unique? Chris From colva at mcs.st-and.ac.uk Sun Nov 10 20:37:55 2013 From: colva at mcs.st-and.ac.uk (Colva Roney-Dougal) Date: Sun, 10 Nov 2013 20:37:55 +0000 Subject: [GAP Forum] Naming of Primitive Groups In-Reply-To: <527FE476.8080506@st-andrews.ac.uk> References: <527FE476.8080506@st-andrews.ac.uk> Message-ID: Hi Chris They are isomorphic groups, so they have the same name. In both cases they?re the alternating and symmetric groups on 5 points; the ones of degree 5 are the natural action, the ones of degree 10 are the actions on unordered pairs. In general any group has multiple primitive actions. Best wishes Colva On 10 Nov 2013, at 19:54, Chris Jefferson wrote: > After trying to track down some strange behavior in a program, I was surprised to find the names of the first two primitive groups of size 10: > > gap> PrimitiveGroup(10, 1); > A(5) > gap> PrimitiveGroup(10, 2); > S(5) > > These are, unsurprisingly, the same names as: > > gap> PrimitiveGroup(5,4); > A(5) > gap> PrimitiveGroup(5,5); > S(5) > > Out of curiosity, are these groups related in some non-obvious way, and is there any reason the names of the primitive groups are not unique? > > Chris > > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From sreedevimk at gmail.com Sat Oct 26 19:03:15 2013 From: sreedevimk at gmail.com (Sreedevi Muthukumar) Date: Sat, 26 Oct 2013 18:03:15 -0000 Subject: [GAP Forum] Issue with "Read" function - in GAP Message-ID: Dear All, I'm a new GAP user and a student, I'm working with Grape package in GAP to learn about graphs. I tried to execute a "xxx.g" file using "Read" function as given below in two methods. Please kindly check the methods I have tried and guide me to correct this problem. *Method 1: * As Read("Path/filename.g"); function is used to read and execute set of commands in GAP. I created a file named "Symm_Star_3.g" to create a cayley graph. *Symm_Star_3.g* C := CayleyGraph(SymmetricGroup(3),[(1,2),(1,3)]); Diameter(C); After executing the Read function I got the below error message. gap> Read("C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g"); Error, Variable: 'CayleyGraph' must have a value not in any function at line 1 of C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g *As CayleyGraph command is present in grape package , I invoked the grape package as follows,then executed the .g file* gap> LoadPackage("grape"); ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? Loading GRAPE 4.6.1 (GRaph Algorithms using PErmutation groups) by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/ ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? true gap> Read("C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g"); gap> Now after invoking the grape package and then executing the Read function, is not producing any output as shown above. *Method 2:* I tried to invoke the package directly from the .g file as follows. *Symm_Star_3.g* * * LoadPackage("grape"); C := CayleyGraph(SymmetricGroup(3),[(1,2),(1,3)]); Diameter(C); Now executing the Read function , is just invoking the package and not executing the other commands in the .g file. gap> Read("C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g"); ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? Loading GRAPE 4.6.1 (GRaph Algorithms using PErmutation groups) by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/ ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? gap> Please guide me to correct this issue and help me to use "Read" function , to read a file with set of graph commands, after invoking Grape package. Thanking you, Sree Devi. From sreedevimk at gmail.com Thu Oct 31 03:12:02 2013 From: sreedevimk at gmail.com (Sreedevi Muthukumar) Date: Wed, 30 Oct 2013 22:12:02 -0500 Subject: [GAP Forum] New GAP user - have few queries. Message-ID: Dear All, I'm a new GAP user and a student. I have few queries in GAP systems software. Could someone please point me to some links or documents or packages available in GAP to perform the below computations in GAP. ( 1) I'm looking for a way to use GAP to analyze simple cayley graphs like Cycles,Toroids,Binary hypercube and Cayley graphs for matrix groups. How to use GAP to do these computations. (2) Is there a way to give the output of GAP computations to a graphic package to visually draw cayley graphs. Thank you. Sincerely, Sree Devi. From caj21 at st-andrews.ac.uk Sun Nov 10 22:29:55 2013 From: caj21 at st-andrews.ac.uk (Chris Jefferson) Date: Sun, 10 Nov 2013 22:29:55 +0000 Subject: [GAP Forum] Issue with "Read" function - in GAP In-Reply-To: References: Message-ID: <528008E3.5050207@st-andrews.ac.uk> The short answer is, your code is working as (I think) you expect, except when you call 'Read', GAP does not print out results after every statement, like it does in interactive mode. So, you have to have a 'LoadPackage("grape")' either at the start of your .g file, or interactively (or both, it doesn't matter if you load a package twice). GAP has read your file and run all the commands, you can see this by typing 'C' after your Read, like this: gap> Read("C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g"); gap> C; rec( adjacencies := [ [ 3, 6 ] ], group := Group([ (1,4,5)(2,3,6), (1,3)(2,4)(5,6) ]), isGraph := true, isSimple := true, names := [ (), (2,3), (1,2), (1,2,3), (1,3,2), (1,3) ], order := 6, representatives := [ 1 ], schreierVector := [ -1, 2, 2, 1, 1, 1 ] ) If you want output from a file you read, then use the Print statement. For example, changing your file to: LoadPackage("grape"); C := CayleyGraph(SymmetricGroup(3),[(1,2),(1,3)]); Print("The Diameter is:", Diameter(C), "\n"); Gives me the output: ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? Loading GRAPE 4.6.1 (GRaph Algorithms using PErmutation groups) by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/ ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? The Diameter is:3 (The "\n" in the 'Print' Statement is a term used in many languages for "start a new line") On 26/10/13 19:03, Sreedevi Muthukumar wrote: > Dear All, > > I'm a new GAP user and a student, I'm working with Grape package in GAP to > learn about graphs. > > I tried to execute a "xxx.g" file using "Read" function as given below in > two methods. > > Please kindly check the methods I have tried and guide me to correct this > problem. > > > *Method 1: * > > As Read("Path/filename.g"); function is used to read and execute set of > commands in GAP. > > I created a file named "Symm_Star_3.g" to create a cayley graph. > > *Symm_Star_3.g* > C := CayleyGraph(SymmetricGroup(3),[(1,2),(1,3)]); > Diameter(C); > > After executing the Read function I got the below error message. > > gap> > Read("C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g"); > Error, Variable: 'CayleyGraph' must have a value > not in any function at line 1 of > C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g > > *As CayleyGraph command is present in grape package , I invoked the grape > package as follows,then executed the .g file* > > gap> LoadPackage("grape"); > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? > Loading GRAPE 4.6.1 (GRaph Algorithms using PErmutation groups) > by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). > Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/ > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? > true > > gap> > Read("C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g"); > gap> > > Now after invoking the grape package and then executing the Read function, > is not producing any output as shown above. > > *Method 2:* > > I tried to invoke the package directly from the .g file as follows. > > *Symm_Star_3.g* > * > * > LoadPackage("grape"); > C := CayleyGraph(SymmetricGroup(3),[(1,2),(1,3)]); > Diameter(C); > > > Now executing the Read function , is just invoking the package and not > executing the other commands in the .g file. > > gap> > Read("C:/Users/Home/Desktop/Collage/Independent_Studies/Programs/Symm_Star_3.g"); > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? > Loading GRAPE 4.6.1 (GRaph Algorithms using PErmutation groups) > by Leonard H. Soicher (http://www.maths.qmul.ac.uk/~leonard/). > Homepage: http://www.maths.qmul.ac.uk/~leonard/grape/ > ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? > gap> > > > Please guide me to correct this issue and help me to use "Read" function , > to read a file with set of graph commands, after invoking Grape package. > > Thanking you, > Sree Devi. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From lijr07 at gmail.com Mon Nov 11 08:52:03 2013 From: lijr07 at gmail.com (Jianrong Li) Date: Mon, 11 Nov 2013 10:52:03 +0200 Subject: [GAP Forum] compute orbits Message-ID: Dear all, I am a new GAP user. I have a group generated by two elements e1, e2. e1, e2 acts on a set U of lower triangular matrices in some way. Is there some function in GAP that can compute the orbits of e1, e2? Thank you very much. Best wishes, Jianrong. From bernhard.boehmler at googlemail.com Mon Nov 11 13:26:13 2013 From: bernhard.boehmler at googlemail.com (Bernhard Boehmler) Date: Mon, 11 Nov 2013 14:26:13 +0100 Subject: [GAP Forum] Compute Direct sum M:=M_1\oplus M_2 of modules and End(M) with GAP Message-ID: Dear GAP forum, I am interested in computing End_A (M) for a finitely generated A-Module M. Here, A is a finitely generated Algebra (which should not be assumed to be necessarily an elementary algebra). I tried the following example (thereby restricting the considerations to a group algebra, which is in this special case an elementary algebra): After having typed k:=GF(3);; G:=CyclicGroup(3);; R:=GroupRing(k,G);; f:=IsomorphismMatrixAlgebra(R);; kG:=Image(f);; in GAP, I would like to enter the kG-module M:=(kG) \oplus (k) and compute End_{kG} (M) as a subalgebra of a full matrix algebra with the aid of the GAP package MeatAxe (or other GAP-packages), but, unfortunately, I wasn't able to find out, how to do that. Therefore, I would be very thankful, if somebody was able to explain, how to do this. Thank you very much for your help. Kind regards, Bernhard Boehmler From nehamakhijani at gmail.com Tue Nov 12 16:11:44 2013 From: nehamakhijani at gmail.com (Neha Makhijani) Date: Tue, 12 Nov 2013 11:11:44 -0500 Subject: [GAP Forum] Query - Character Table PSL(2,8) mod 2 Message-ID: How do I access the Brauer table of PSL(2,8) mod 2 using GAP? Thanks! Neha From Bill.Allombert at math.u-bordeaux1.fr Tue Nov 12 17:13:09 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Tue, 12 Nov 2013 18:13:09 +0100 Subject: [GAP Forum] Query - Character Table PSL(2,8) mod 2 In-Reply-To: References: Message-ID: <20131112171309.GE8572@yellowpig> On Tue, Nov 12, 2013 at 11:11:44AM -0500, Neha Makhijani wrote: > How do I access the Brauer table of PSL(2,8) mod 2 using GAP? T:= CharacterTable("L2(8)") mod 2; Display(T); Cheers, Bill. From nehamakhijani at gmail.com Tue Nov 12 17:19:11 2013 From: nehamakhijani at gmail.com (Neha Makhijani) Date: Tue, 12 Nov 2013 12:19:11 -0500 Subject: [GAP Forum] Query - Character Table PSL(2,8) mod 2 In-Reply-To: <20131112171309.GE8572@yellowpig> References: <20131112171309.GE8572@yellowpig> Message-ID: thanks! On Tue, Nov 12, 2013 at 12:13 PM, Bill Allombert < Bill.Allombert at math.u-bordeaux1.fr> wrote: > On Tue, Nov 12, 2013 at 11:11:44AM -0500, Neha Makhijani wrote: > > How do I access the Brauer table of PSL(2,8) mod 2 using GAP? > > T:= CharacterTable("L2(8)") mod 2; > Display(T); > > Cheers, > Bill. > From liveat1892 at gmail.com Thu Nov 14 21:26:26 2013 From: liveat1892 at gmail.com (sam johnson) Date: Thu, 14 Nov 2013 23:26:26 +0200 Subject: [GAP Forum] Need Help with first gap code Message-ID: Hey guys I'm new to this forum and i need help with my code. My code should basically return the position of the maximum element in the list which is quite easy the problem that it keeps giving me the following message and I'm sure the logic of the code is correct. Code: whereismax := function(L) local x, maxpos; maxpos := 0; for x in [1..Size(L)-1]do if L[x] > L[maxpos] then maxpos := x; fi; od; return maxpos; end; Error message: Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `[]' on 2 arguments called from Size( L ) called from ( ) called from read-eval loop at line 40 of *stdin* From benjamin.sambale at gmail.com Thu Nov 14 21:40:35 2013 From: benjamin.sambale at gmail.com (Benjamin Sambale) Date: Thu, 14 Nov 2013 22:40:35 +0100 Subject: [GAP Forum] Need Help with first gap code In-Reply-To: References: Message-ID: <52854353.8020307@gmail.com> A short answer: lists start with 1 in GAP, i.e. L[0] is not allowed. Best, Benjamin Am 14.11.2013 22:26, schrieb sam johnson: > Hey guys I'm new to this forum and i need help with my code. My code should > basically return the position of the maximum element in the list which is > quite easy the problem that it keeps giving me the following message and > I'm sure the logic of the code is correct. > > Code: > whereismax := function(L) > local x, maxpos; > maxpos := 0; > for x in [1..Size(L)-1]do > if L[x] > L[maxpos] then > maxpos := x; > fi; > od; > return maxpos; > end; > > > Error message: > Error, no method found! For debugging hints type ?Recovery from > NoMethodFound > Error, no 1st choice method found for `[]' on 2 arguments called from > Size( L ) called from > ( ) > called from read-eval loop at line 40 of *stdin* > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From liveat1892 at gmail.com Fri Nov 15 00:15:27 2013 From: liveat1892 at gmail.com (sam johnson) Date: Fri, 15 Nov 2013 02:15:27 +0200 Subject: [GAP Forum] Ascending selection sort algorithm ERROR Message-ID: Hey guys... I'm trying to write the code for and ascending order selection sort algorithm and every time I try to read the function that I implemented, GAP would just stop working no error messages no nothing so it's difficult to determine the source of error. I need somone to tell me whre did I go wrong with my code. code: *sortAscending := function(L)* * local x, i, max, hold;* * i := Size(L)-1;* * while i > 0 do* * max := L[i];* * x := i ; * * while x > 0 do* * if L[x] > max then* * max := L[x];* * fi;* * od;* * hold := max;* * max := L[i];* * L[i] := hold;* * i := i -1;* * od;* * return L;* *end; * From gordon.royle at uwa.edu.au Fri Nov 15 00:23:52 2013 From: gordon.royle at uwa.edu.au (Gordon Royle) Date: Fri, 15 Nov 2013 08:23:52 +0800 Subject: [GAP Forum] Ascending selection sort algorithm ERROR In-Reply-To: References: Message-ID: <59635B20-F5E7-48A0-B3D1-85198DC28A9B@uwa.edu.au> This part is an infinite loop because x is not changed. Anyway, surely you should just use Gap's sorting functionality. On 15/11/2013, at 8:15 AM, sam johnson > wrote: * while x > 0 do* * if L[x] > max then* * max := L[x];* * fi;* * od;* Professor Gordon Royle School of Mathematics and Statistics University of Western Australia Gordon.Royle at uwa.edu.au From usopppp at gmail.com Tue Nov 19 12:56:47 2013 From: usopppp at gmail.com (=?KOI8-R?B?98zBxMnNydIg+8nSz8vJyg==?=) Date: Tue, 19 Nov 2013 16:56:47 +0400 Subject: [GAP Forum] groups comparison Message-ID: I'm using cryst and crystcat packages and i want to compare two groups g:=SpaceGroupIT(3,75); gGens:=GeneratorsOfGroup(g); gGens2:=[gGens[2], gGens[3], gGens[4], gGens[5]] a:=Group(gGens); b:=Group(gGens2); I know, that they are the same groups, because gGens[2]*gGens[2]=gGens[1] how can i check it OR how can i find all relations between generators (in this case there is another one: gGens[2]^-1*gGens[3]*gGens[2]=gGens[4] ) From stefan at mcs.st-and.ac.uk Tue Nov 19 13:34:21 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 19 Nov 2013 13:34:21 -0000 (UTC) Subject: [GAP Forum] groups comparison In-Reply-To: References: Message-ID: On Tue, November 19, 2013 12:56 pm, ???????? ??????? wrote: > I'm using cryst and crystcat packages and i want to compare two groups > g:=SpaceGroupIT(3,75); > gGens:=GeneratorsOfGroup(g); > gGens2:=[gGens[2], gGens[3], gGens[4], gGens[5]] > a:=Group(gGens); > b:=Group(gGens2); > > I know, that they are the same groups, because gGens[2]*gGens[2]=gGens[1] > > how can i check it OR how can i find all relations between generators (in > this case there is another one: gGens[2]^-1*gGens[3]*gGens[2]=gGens[4] ) Unfortunately, at present the checks "a = b;" and "gGens[1] in b;" fail due to a lack of available methods for your group: gap> a = b; Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `Enumerator' on 1 arguments called from Enumerator( D ) called from [ ... ] gap> gGens[1] in b; Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 3rd choice method found for `Enumerator' on 1 arguments called from Enumerator( D ) called from [ ... ] However what you can do is the following: gap> First(b,g->g=gGens[1]); [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ] Since the result is not "fail", this tells you that gGens[1] is an element of b. Note that this may require some package -- try RCWA if it otherwise doesn't work for you. Hope this helps, Stefan Kohl From hulpke at me.com Tue Nov 19 14:29:52 2013 From: hulpke at me.com (Alexander Hulpke) Date: Tue, 19 Nov 2013 07:29:52 -0700 Subject: [GAP Forum] groups comparison In-Reply-To: References: Message-ID: <96EC82F2-361E-4467-8787-496CC0131E3A@me.com> On Nov 19, 2013, at 6:34 AM, Stefan Kohl wrote: > Unfortunately, at present the checks "a = b;" and "gGens[1] in b;" > fail due to a lack of available methods for your group: > > gap> gGens[1] in b; > Error, no method found! For debugging hints type ?Recovery from NoMethodFound > Error, no 3rd choice method found for `Enumerator' on 1 arguments called from > Enumerator( D ) called from > [ ... ] > > However what you can do is the following: > > gap> First(b,g->g=gGens[1]); > [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ] I would not recommend use of such one-sided methods for infinite groups. If gGens[1] is not in b, but b is infinite (as the space groups are) this will never terminate. What one could do (but currently is not implemented) is to first test membership in the (finite) point group quotient and then test membership in the translation group by linear algebra. Best, Alexander Hulpke From liveat1892 at gmail.com Tue Nov 19 18:39:57 2013 From: liveat1892 at gmail.com (sam johnson) Date: Tue, 19 Nov 2013 20:39:57 +0200 Subject: [GAP Forum] Extended Euclid Algorithm Need HELP Message-ID: Hey guys ... I'm writing two algorithms for the extended euclidean algorithm ( iterative & recursive). The iterative version works just fine except that it gives false results for negative input. How can I modify? code: extEuclid := function(a,b) local x, y, u, v,m,n,r,q; x:=0; y:=1; u:=1; v:=0; while a>0 or a<0 do q := QuoInt(b,a); r := b mod a; m := x - u*q; n := y - v*q; b := a; a := r; x := u; y := v; u := m; v := n; od; return [x,y]; end; Now, regarding the recursive version I understand the logic but i have a problem in implementing it (can't solve errors) code: extEuclidRecursive := function(a,b) local q, x, y, r; if b = 0 then return [1,0]; fi; q := QuoInt(b,a); r := b mod a; [x,y] := extEuclidRecursive(b,r); return [x - q*y, y]; end; I would appreciate it if the response was sooner rather than later. Thank you for your time. From haidaryouness at ymail.com Tue Nov 19 19:35:23 2013 From: haidaryouness at ymail.com (Haidar Youness) Date: Tue, 19 Nov 2013 11:35:23 -0800 (PST) Subject: [GAP Forum] First GAP program Message-ID: <1384889723.30520.YahooMailNeo@web160902.mail.bf1.yahoo.com> Hi... My name is Jay and I'm new to this forum. And I'm writing my first GAP code; Basically I'm trying to find the number of a times a number "p" can be divided by a prime number "n" such that "p|n" is an integer. The program seems pretty trivial but every time it executes it keeps giving me zero regardless of the input. If somebody can just tell me where i went wrong with my code. Thank you. The code is as folows: PowerofpDividingn := function(p,n) ? ? ? ?local x, count, ans; ? ? ? ?count :=0; ? ? ? ?for x in [1..p] do ? ? ? ? ? ? ans := p/n; ? ? ? ? ? ? if ans in Integers then ? ? ? ? ? ? ? ?count := count ?+ 1; ? ? ? ? ? ? fi; ? ? ? ? ? ? p := ans;? ? ? ? ?od; ? ? return count; end; From stefan at mcs.st-and.ac.uk Tue Nov 19 19:44:03 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 19 Nov 2013 19:44:03 -0000 (UTC) Subject: [GAP Forum] Extended Euclid Algorithm Need HELP In-Reply-To: References: Message-ID: Sam Johnson asked: > Hey guys ... I'm writing two algorithms for the extended euclidean > algorithm ( iterative & recursive). The iterative version works just fine > except that it gives false results for negative input. How can I modify? The GAP Library already contains such function -- it is called Gcdex. So there is no need to write your own code for this! Hope this helps, Stefan Kohl > code: > > extEuclid := function(a,b) > > local x, y, u, v,m,n,r,q; > x:=0; > y:=1; > u:=1; > v:=0; > while a>0 or a<0 do > q := QuoInt(b,a); > r := b mod a; > m := x - u*q; > n := y - v*q; > b := a; > a := r; > x := u; > y := v; > u := m; > v := n; > od; > return [x,y]; > end; > > Now, regarding the recursive version I understand the logic but i have a > problem in implementing it (can't solve errors) > > code: > > extEuclidRecursive := function(a,b) > local q, x, y, r; > if b = 0 then > return [1,0]; > fi; > q := QuoInt(b,a); > r := b mod a; > [x,y] := extEuclidRecursive(b,r); > return [x - q*y, y]; > end; > > > I would appreciate it if the response was sooner rather than later. Thank > you for your time. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From stefan at mcs.st-and.ac.uk Tue Nov 19 19:53:50 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Tue, 19 Nov 2013 19:53:50 -0000 (UTC) Subject: [GAP Forum] First GAP program In-Reply-To: <1384889723.30520.YahooMailNeo@web160902.mail.bf1.yahoo.com> References: <1384889723.30520.YahooMailNeo@web160902.mail.bf1.yahoo.com> Message-ID: Haidar Youness asked: > Hi... My name is Jay and I'm new to this forum. And I'm writing my first GAP code; > Basically I'm trying to find the number of a times a number "p" can be divided by a > prime number "n" such that "p|n" is an integer. The program seems pretty trivial but > every time it executes it keeps giving me zero regardless of the input. If somebody can > just tell me where i went wrong with my code. Thank you. You can write your function as follows: PowerofpDividingn := function ( n, p ) local k; if IsZero(p) then return fail; fi; if IsZero(n) then return infinity; fi; k := 0; while IsZero(n mod p) do n := n/p; k := k + 1; od; return k; end; Hope this helps, Stefan Kohl > PowerofpDividingn := function(p,n) > > ? ? ? ?local x, count, ans; > ? ? ? ?count :=0; > > ? ? ? ?for x in [1..p] do > ? ? ? ? ? ? ans := p/n; > ? ? ? ? ? ? if ans in Integers then > ? ? ? ? ? ? ? ?count := count ?+ 1; > ? ? ? ? ? ? fi; > ? ? ? ? ? ? p := ans;? > ? ? ? ?od; > ? ? return count; > end; > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From caj21 at st-andrews.ac.uk Tue Nov 19 20:06:19 2013 From: caj21 at st-andrews.ac.uk (Chris Jefferson) Date: Tue, 19 Nov 2013 20:06:19 +0000 Subject: [GAP Forum] First GAP program In-Reply-To: <1384889723.30520.YahooMailNeo@web160902.mail.bf1.yahoo.com> References: <1384889723.30520.YahooMailNeo@web160902.mail.bf1.yahoo.com> Message-ID: <528BC4BB.3030006@st-andrews.ac.uk> On 19/11/13 19:35, Haidar Youness wrote: > Hi... My name is Jay and I'm new to this forum. And I'm writing my first GAP code; Basically I'm trying to find the number of a times a number "p" can be divided by a prime number "n" such that "p|n" is an integer. The program seems pretty trivial but every time it executes it keeps giving me zero regardless of the input. If somebody can just tell me where i went wrong with my code. Thank you. The code is as folows: > > > PowerofpDividingn := function(p,n) > > local x, count, ans; > count :=0; > > for x in [1..p] do > ans := p/n; > if ans in Integers then > count := count + 1; > fi; > p := ans; > od; > return count; > end; Ignoring the fact that your program isn't very efficient, it also seems to work fine for me: gap> PowerofpDividingn(12,2); 2 gap> PowerofpDividingn(108,3); 3 Could you give us the version of GAP you are using, and a full file which uses, and tests, your function, for sanity checking? Chris From neginyavari67 at yahoo.com Thu Nov 28 09:13:47 2013 From: neginyavari67 at yahoo.com (Negin Yavari) Date: Thu, 28 Nov 2013 09:13:47 +0000 (GMT) Subject: [GAP Forum] Introducing a 2-Frobenius group Message-ID: <1385630027.99263.YahooMailNeo@web171902.mail.ir2.yahoo.com> Dear Forum, ? ??? According to the following text, I would like to introduce the group G in GAP: ? ? "In the general linear group GL(4,2) and also in GL(4,3) there exists a Frobenius group E:=K : C of order 20 such that K acts fixed-point-freely on corresponding natural modules V_1 and V_2. Now?if we take G:=(V_1 \times V_2) . E with the natural action of E on direct factors, then G is a 2-Frobenius group. ? ? ? ? Thanks alot in advance, Negin? From hatlam at gmail.com Tue Dec 3 22:52:15 2013 From: hatlam at gmail.com (Ha T. Lam) Date: Tue, 3 Dec 2013 17:52:15 -0500 Subject: [GAP Forum] Heisenberg group from the Polycyclic package Message-ID: Dear GAP forum, I'm doing some computations with Heisenberg group and I'm using the method HeisenbergPcpGroup(n) from the Polycyclic package. According to the manual, I should get a Heisenberg group of 2n generators with Hirsch length 3n. I do: gap> HeisenbergPcpGroup(3); Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0 ] The Hirsch length here is 7, not 9. Is this a mistake in the manual? Can you give me some reference of how these groups are generated by this package? Thank you for your help. Ha T. Lam From beick at tu-bs.de Wed Dec 4 07:51:56 2013 From: beick at tu-bs.de (Bettina Eick) Date: Wed, 4 Dec 2013 08:51:56 +0100 (CET) Subject: [GAP Forum] Heisenberg group from the Polycyclic package In-Reply-To: References: Message-ID: Dear Ha T. Lam, > I'm doing some computations with Heisenberg group and I'm using the method > HeisenbergPcpGroup(n) from the Polycyclic package. According to the manual, > I should get a Heisenberg group of 2n generators with Hirsch length 3n. I > do: > > gap> HeisenbergPcpGroup(3); > Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0 ] > > The Hirsch length here is 7, not 9. Is this a mistake in the manual? Can > you give me some reference of how these groups are generated by this > package? It is indeed a mistake in the manual. The function HeisenbergPcpGroup(m) returns the Heisenberg group on 2m generators; this has Hirsch length 2m+1. To see some more details on how these groups are generated, you can do gap> Print(HeisenbergPcpGroup); function ( m ) local FLT, i; FLT := FromTheLeftCollector( 2 * m + 1 ); for i in [ 1 .. m ] do SetConjugate( FLT, m + i, i, [ m + i, 1, 2 * m + 1, 1 ] ); od; UpdatePolycyclicCollector( FLT ); return PcpGroupByCollectorNC( FLT ); end Thus HeisenbergPcpGroup(m) returns a group on 2m+1 polycyclic generators g_1, ..., g_{2m+1} with conjugate relations g_{m+i}^g_i = g_{m+i} g_{2m+1} for 1 <= i <= m Best wishes, Bettina From ulviye.cinar at metu.edu.tr Wed Nov 27 12:19:49 2013 From: ulviye.cinar at metu.edu.tr (=?windows-1254?B?Qvz+cmEgx/1uYXI=?=) Date: Wed, 27 Nov 2013 12:19:49 +0000 Subject: [GAP Forum] conjugate elements Message-ID: Hi, I want to find all elements of a group that makes two specific elements ( that is I know they are conjugate by an element) conjugate? Is there such an algorithm? I found the algorithm RepresentativeAction(g,x,y) which gives only one element that makes x and y conjugate. Can I find all such elements? Thank you, Busra Guven From stefan at mcs.st-and.ac.uk Fri Dec 6 11:35:02 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Fri, 6 Dec 2013 11:35:02 -0000 (UTC) Subject: [GAP Forum] conjugate elements In-Reply-To: References: Message-ID: Dear Busra Guven, > I want to find all elements of a group that makes two specific elements > ( that is I know they are conjugate by an element) conjugate? > Is there such an algorithm? > I found the algorithm RepresentativeAction(g,x,y) which gives only one > element that makes x and y conjugate. Can I find all such elements? Given a finite group G and elements g and h of G, the following function returns a list of all elements x of G such that g^x = h: AllConjugators := function ( G, g, h ) return AsList(RightCoset(Centralizer(G,g),RepresentativeAction(G,g,h))); end; For example you can do the following: gap> G := SymmetricGroup(8);; gap> l := AllConjugators(G,(1,2,3,4,5)(6,7,8),(1,2,3)(4,5,6,7,8)); [ (1,4,7,2,5,8,3,6), (1,8,3,5,7,2,4,6), (1,4,7)(2,5,8)(3,6), (1,7,2,8,3,4,5,6), (1,8,2,4,6,3,5,7), (1,4,7,3,6,2,5,8), (1,6)(2,7)(3,8), (1,7)(2,8)(3,4,5,6), (1,8)(2,4,6)(3,5,7), (1,5,4,8,3,7,2,6), (1,6,3,8,2,7), (1,7,3,4,5,6,2,8), (1,5,4,8,2,6,3,7), (1,6,2,7,3,8), (1,5,4,8)(2,6)(3,7) ] gap> List(l,g->(1,2,3,4,5)(6,7,8)^g); [ (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8), (1,2,3)(4,5,6,7,8) ] Hope this helps, Stefan Kohl ----------------------------------------------------------------------------- http://www.gap-system.org/DevelopersPages/StefanKohl/ ----------------------------------------------------------------------------- From alexk at mcs.st-andrews.ac.uk Fri Dec 6 16:03:02 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Fri, 6 Dec 2013 16:03:02 +0000 Subject: [GAP Forum] GAP 4.7.2 release announcement Message-ID: Dear GAP Forum, We are glad to announce the next major release, GAP 4.7.2, which is now available for download at http://www.gap-system.org/Releases/ For an overview of changes introduced in GAP 4.7.2, including improved and extended functionality, fixed bugs, 8 new and many substantially updated packages, enter '?Changes between GAP 4.6 and GAP 4.7' in GAP 4.7.2 or see http://www.gap-system.org/Manuals/doc/changes/chap2.html Among the alternative GAP distributions listed at http://www.gap-system.org/Download/#alternatives BOB and the Windows installer already provide GAP 4.7.2, while the rsync-based Linux binary distribution will be updated shortly. Note that the URL of BOB has changed to http://neunhoef.github.io/bob/ We encourage all users to upgrade to GAP 4.7.2. If you need any help or would like to report any problems, please do not hesitate to contact us at support at gap-system.org. As a general remark, please note that we are regularly updating the GAP distribution to include new versions of GAP packages, but we may not announce each of them to the Forum. We use the Forum to announce updates of the core GAP system, but we announce package updates there in general only if they are really major or if they fix serious issues. Wishing you fun and success using GAP, The GAP Group From mail at gbeyerle.de Sun Dec 8 22:43:01 2013 From: mail at gbeyerle.de (Georg Beyerle) Date: Sun, 08 Dec 2013 23:43:01 +0100 Subject: [GAP Forum] Root system of semi-simple Lie algebra G2 Message-ID: <52A4F5F5.8010909@gbeyerle.de> Hello, the following table of structure constants (see below) appears to define a semi-simple Lie algebra. However, the call to RootSystem() fails: GAPInfo.Version = 4.6.4 GAPInfo.Architecture = i586-suse-linux-gnu-gcc-default32 Dimension( L ) = 14 SemiSimpleType( L ) : G2 Determinant( KillingMatrix( Basis( L ))) = 9618527719784448 CartanSubalgebra( L ) = Algebra( Rationals, [ v.1, v.8 ] ) #I the Cartan subalgebra of in not split RootSystem( L ) = fail What am I missing? Thanks Georg Print( "GAPInfo.Version = ", GAPInfo.Version, "\n" ); Print( "GAPInfo.Architecture = ", GAPInfo.Architecture, "\n" ); SetInfoLevel( InfoAlgebra , 2 ); T:= EmptySCTable( 14, 0, "antisymmetric" );; SetEntrySCTable( T, 1, 2, [ -1 , 3 , -1 , 10 ] );; SetEntrySCTable( T, 1, 3, [ 1 , 2 , 1 , 9 ] );; SetEntrySCTable( T, 1, 4, [ 1 , 5 , -1 , 12 ] );; SetEntrySCTable( T, 1, 5, [ -1 , 4 , -1 , 11 ] );; SetEntrySCTable( T, 1, 6, [ 1 , 14 ] );; SetEntrySCTable( T, 1, 7, [ 1 , 6 , 1 , 13 ] );; SetEntrySCTable( T, 1, 9, [ 1 , 10 ] );; SetEntrySCTable( T, 1, 10, [ -1 , 9 ] );; SetEntrySCTable( T, 1, 11, [ 1 , 12 ] );; SetEntrySCTable( T, 1, 12, [ -1 , 11 ] );; SetEntrySCTable( T, 1, 13, [ 1 , 14 ] );; SetEntrySCTable( T, 1, 14, [ -2 , 6 , -2 , 13 ] );; SetEntrySCTable( T, 2, 3, [ -1 , 1 , -1 , 8 ] );; SetEntrySCTable( T, 2, 4, [ -1 , 6 , -1 , 13 ] );; SetEntrySCTable( T, 2, 5, [ -1 , 7 , -1 , 14 ] );; SetEntrySCTable( T, 2, 6, [ -1 , 11 ] );; SetEntrySCTable( T, 2, 7, [ 1 , 5 , -1 , 12 ] );; SetEntrySCTable( T, 2, 8, [ -1 , 10 ] );; SetEntrySCTable( T, 2, 10, [ 1 , 8 ] );; SetEntrySCTable( T, 2, 11, [ 1 , 6 ] );; SetEntrySCTable( T, 2, 12, [ 1 , 7 , 1 , 14 ] );; SetEntrySCTable( T, 2, 13, [ 1 , 4 , 1 , 11 ] );; SetEntrySCTable( T, 2, 14, [ 1 , 5 , -1 , 12 ] );; SetEntrySCTable( T, 3, 4, [ -1 , 7 ] );; SetEntrySCTable( T, 3, 5, [ -2 , 6 ] );; SetEntrySCTable( T, 3, 6, [ 2 , 5 ] );; SetEntrySCTable( T, 3, 7, [ 1 , 4 ] );; SetEntrySCTable( T, 3, 8, [ 1 , 9 ] );; SetEntrySCTable( T, 3, 9, [ -1 , 8 ] );; SetEntrySCTable( T, 3, 11, [ 1 , 7 , 1 , 14 ] );; SetEntrySCTable( T, 3, 12, [ -1 , 6 ] );; SetEntrySCTable( T, 3, 13, [ -1 , 5 ] );; SetEntrySCTable( T, 3, 14, [ -1 , 4 , -1 , 11 ] );; SetEntrySCTable( T, 4, 5, [ -1 , 8 ] );; SetEntrySCTable( T, 4, 6, [ 1 , 9 ] );; SetEntrySCTable( T, 4, 7, [ -2 , 3 , -2 , 10 ] );; SetEntrySCTable( T, 4, 8, [ 1 , 5 ] );; SetEntrySCTable( T, 4, 9, [ -1 , 6 ] );; SetEntrySCTable( T, 4, 10, [ 1 , 7 ] );; SetEntrySCTable( T, 4, 12, [ -1 , 1 , -1 , 8 ] );; SetEntrySCTable( T, 4, 13, [ -1 , 2 , -1 , 9 ] );; SetEntrySCTable( T, 4, 14, [ 1 , 3 , 1 , 10 ] );; SetEntrySCTable( T, 5, 6, [ -2 , 3 ] );; SetEntrySCTable( T, 5, 7, [ 1 , 9 ] );; SetEntrySCTable( T, 5, 8, [ -1 , 4 ] );; SetEntrySCTable( T, 5, 9, [ -1 , 7 ] );; SetEntrySCTable( T, 5, 10, [ -1 , 6 ] );; SetEntrySCTable( T, 5, 11, [ -1 , 1 , -1 , 8 ] );; SetEntrySCTable( T, 5, 13, [ 1 , 3 ] );; SetEntrySCTable( T, 5, 14, [ -1 , 2 , -1 , 9 ] );; SetEntrySCTable( T, 6, 7, [ 1 , 8 ] );; SetEntrySCTable( T, 6, 8, [ -1 , 7 ] );; SetEntrySCTable( T, 6, 9, [ 1 , 4 ] );; SetEntrySCTable( T, 6, 10, [ 1 , 5 ] );; SetEntrySCTable( T, 6, 11, [ -1 , 2 ] );; SetEntrySCTable( T, 6, 12, [ 1 , 3 ] );; SetEntrySCTable( T, 6, 14, [ 1 , 1 ] );; SetEntrySCTable( T, 7, 8, [ 1 , 6 ] );; SetEntrySCTable( T, 7, 9, [ 1 , 5 ] );; SetEntrySCTable( T, 7, 10, [ -1 , 4 ] );; SetEntrySCTable( T, 7, 11, [ -1 , 3 , -1 , 10 ] );; SetEntrySCTable( T, 7, 12, [ -1 , 2 , -1 , 9 ] );; SetEntrySCTable( T, 7, 13, [ 1 , 1 , 1 , 8 ] );; SetEntrySCTable( T, 8, 9, [ -2 , 10 ] );; SetEntrySCTable( T, 8, 10, [ 2 , 9 ] );; SetEntrySCTable( T, 8, 11, [ 1 , 12 ] );; SetEntrySCTable( T, 8, 12, [ -1 , 11 ] );; SetEntrySCTable( T, 8, 13, [ -1 , 7 , -1 , 14 ] );; SetEntrySCTable( T, 8, 14, [ 1 , 6 , 1 , 13 ] );; SetEntrySCTable( T, 9, 10, [ -2 , 8 ] );; SetEntrySCTable( T, 9, 11, [ -1 , 6 , -1 , 13 ] );; SetEntrySCTable( T, 9, 12, [ -1 , 14 ] );; SetEntrySCTable( T, 9, 13, [ 1 , 4 , 1 , 11 ] );; SetEntrySCTable( T, 9, 14, [ 1 , 12 ] );; SetEntrySCTable( T, 10, 11, [ -1 , 14 ] );; SetEntrySCTable( T, 10, 12, [ 1 , 6 , 1 , 13 ] );; SetEntrySCTable( T, 10, 13, [ 1 , 5 , -1 , 12 ] );; SetEntrySCTable( T, 10, 14, [ 1 , 11 ] );; SetEntrySCTable( T, 11, 12, [ 2 , 1 , 2 , 8 ] );; SetEntrySCTable( T, 11, 13, [ -1 , 2 , -1 , 9 ] );; SetEntrySCTable( T, 11, 14, [ -1 , 10 ] );; SetEntrySCTable( T, 12, 13, [ 1 , 3 , 1 , 10 ] );; SetEntrySCTable( T, 12, 14, [ -1 , 9 ] );; SetEntrySCTable( T, 13, 14, [ 1 , 1 ] );; L := LieAlgebraByStructureConstants( Rationals, T ); Print( "Dimension( L ) = ", Dimension( L ), "\n" ); typ := SemiSimpleType( L ); Print( "SemiSimpleType( L ) : ", typ, "\n" ); detKM := Determinant( KillingMatrix( Basis( L ))); Print( "Determinant( KillingMatrix( Basis( L ))) = ", detKM, "\n" ); H := CartanSubalgebra( L ); Print( "CartanSubalgebra( L ) = ", H, "\n" ); R := RootSystem( L ); Print( "RootSystem( L ) = ", R, "\n" ); From degraaf at science.unitn.it Mon Dec 9 21:03:45 2013 From: degraaf at science.unitn.it (Willem de Graaf) Date: Mon, 9 Dec 2013 22:03:45 +0100 Subject: [GAP Forum] Root system of semi-simple Lie algebra G2 In-Reply-To: <52A4F5F5.8010909@gbeyerle.de> References: <52A4F5F5.8010909@gbeyerle.de> Message-ID: Dear Georg, The problem is that the Cartan subalgebra that has been computed is not split over the rationals. It is split over Q(i). However, GAP does not take advantage of that. Recently we have written a package, called corelg, which does manage to compute the root system in this case (http://www.science.unitn.it/~corelg/): gap> L := LieAlgebraByStructureConstants( CF(4), T ); gap> RootSystem(L); Best wishes, Willem de Graaf On Sun, Dec 8, 2013 at 11:43 PM, Georg Beyerle wrote: > Hello, > > the following table of structure constants (see below) appears to define > a semi-simple Lie algebra. However, the call to RootSystem() fails: > > GAPInfo.Version = 4.6.4 > GAPInfo.Architecture = i586-suse-linux-gnu-gcc-default32 > Dimension( L ) = 14 > SemiSimpleType( L ) : G2 > Determinant( KillingMatrix( Basis( L ))) = 9618527719784448 > CartanSubalgebra( L ) = Algebra( Rationals, [ v.1, v.8 ] ) > #I the Cartan subalgebra of in not split > RootSystem( L ) = fail > > What am I missing? > > Thanks > Georg > > > Print( "GAPInfo.Version = ", GAPInfo.Version, "\n" ); > Print( "GAPInfo.Architecture = ", GAPInfo.Architecture, "\n" ); > SetInfoLevel( InfoAlgebra , 2 ); > T:= EmptySCTable( 14, 0, "antisymmetric" );; > SetEntrySCTable( T, 1, 2, [ -1 , 3 , -1 , 10 ] );; > SetEntrySCTable( T, 1, 3, [ 1 , 2 , 1 , 9 ] );; > SetEntrySCTable( T, 1, 4, [ 1 , 5 , -1 , 12 ] );; > SetEntrySCTable( T, 1, 5, [ -1 , 4 , -1 , 11 ] );; > SetEntrySCTable( T, 1, 6, [ 1 , 14 ] );; > SetEntrySCTable( T, 1, 7, [ 1 , 6 , 1 , 13 ] );; > SetEntrySCTable( T, 1, 9, [ 1 , 10 ] );; > SetEntrySCTable( T, 1, 10, [ -1 , 9 ] );; > SetEntrySCTable( T, 1, 11, [ 1 , 12 ] );; > SetEntrySCTable( T, 1, 12, [ -1 , 11 ] );; > SetEntrySCTable( T, 1, 13, [ 1 , 14 ] );; > SetEntrySCTable( T, 1, 14, [ -2 , 6 , -2 , 13 ] );; > SetEntrySCTable( T, 2, 3, [ -1 , 1 , -1 , 8 ] );; > SetEntrySCTable( T, 2, 4, [ -1 , 6 , -1 , 13 ] );; > SetEntrySCTable( T, 2, 5, [ -1 , 7 , -1 , 14 ] );; > SetEntrySCTable( T, 2, 6, [ -1 , 11 ] );; > SetEntrySCTable( T, 2, 7, [ 1 , 5 , -1 , 12 ] );; > SetEntrySCTable( T, 2, 8, [ -1 , 10 ] );; > SetEntrySCTable( T, 2, 10, [ 1 , 8 ] );; > SetEntrySCTable( T, 2, 11, [ 1 , 6 ] );; > SetEntrySCTable( T, 2, 12, [ 1 , 7 , 1 , 14 ] );; > SetEntrySCTable( T, 2, 13, [ 1 , 4 , 1 , 11 ] );; > SetEntrySCTable( T, 2, 14, [ 1 , 5 , -1 , 12 ] );; > SetEntrySCTable( T, 3, 4, [ -1 , 7 ] );; > SetEntrySCTable( T, 3, 5, [ -2 , 6 ] );; > SetEntrySCTable( T, 3, 6, [ 2 , 5 ] );; > SetEntrySCTable( T, 3, 7, [ 1 , 4 ] );; > SetEntrySCTable( T, 3, 8, [ 1 , 9 ] );; > SetEntrySCTable( T, 3, 9, [ -1 , 8 ] );; > SetEntrySCTable( T, 3, 11, [ 1 , 7 , 1 , 14 ] );; > SetEntrySCTable( T, 3, 12, [ -1 , 6 ] );; > SetEntrySCTable( T, 3, 13, [ -1 , 5 ] );; > SetEntrySCTable( T, 3, 14, [ -1 , 4 , -1 , 11 ] );; > SetEntrySCTable( T, 4, 5, [ -1 , 8 ] );; > SetEntrySCTable( T, 4, 6, [ 1 , 9 ] );; > SetEntrySCTable( T, 4, 7, [ -2 , 3 , -2 , 10 ] );; > SetEntrySCTable( T, 4, 8, [ 1 , 5 ] );; > SetEntrySCTable( T, 4, 9, [ -1 , 6 ] );; > SetEntrySCTable( T, 4, 10, [ 1 , 7 ] );; > SetEntrySCTable( T, 4, 12, [ -1 , 1 , -1 , 8 ] );; > SetEntrySCTable( T, 4, 13, [ -1 , 2 , -1 , 9 ] );; > SetEntrySCTable( T, 4, 14, [ 1 , 3 , 1 , 10 ] );; > SetEntrySCTable( T, 5, 6, [ -2 , 3 ] );; > SetEntrySCTable( T, 5, 7, [ 1 , 9 ] );; > SetEntrySCTable( T, 5, 8, [ -1 , 4 ] );; > SetEntrySCTable( T, 5, 9, [ -1 , 7 ] );; > SetEntrySCTable( T, 5, 10, [ -1 , 6 ] );; > SetEntrySCTable( T, 5, 11, [ -1 , 1 , -1 , 8 ] );; > SetEntrySCTable( T, 5, 13, [ 1 , 3 ] );; > SetEntrySCTable( T, 5, 14, [ -1 , 2 , -1 , 9 ] );; > SetEntrySCTable( T, 6, 7, [ 1 , 8 ] );; > SetEntrySCTable( T, 6, 8, [ -1 , 7 ] );; > SetEntrySCTable( T, 6, 9, [ 1 , 4 ] );; > SetEntrySCTable( T, 6, 10, [ 1 , 5 ] );; > SetEntrySCTable( T, 6, 11, [ -1 , 2 ] );; > SetEntrySCTable( T, 6, 12, [ 1 , 3 ] );; > SetEntrySCTable( T, 6, 14, [ 1 , 1 ] );; > SetEntrySCTable( T, 7, 8, [ 1 , 6 ] );; > SetEntrySCTable( T, 7, 9, [ 1 , 5 ] );; > SetEntrySCTable( T, 7, 10, [ -1 , 4 ] );; > SetEntrySCTable( T, 7, 11, [ -1 , 3 , -1 , 10 ] );; > SetEntrySCTable( T, 7, 12, [ -1 , 2 , -1 , 9 ] );; > SetEntrySCTable( T, 7, 13, [ 1 , 1 , 1 , 8 ] );; > SetEntrySCTable( T, 8, 9, [ -2 , 10 ] );; > SetEntrySCTable( T, 8, 10, [ 2 , 9 ] );; > SetEntrySCTable( T, 8, 11, [ 1 , 12 ] );; > SetEntrySCTable( T, 8, 12, [ -1 , 11 ] );; > SetEntrySCTable( T, 8, 13, [ -1 , 7 , -1 , 14 ] );; > SetEntrySCTable( T, 8, 14, [ 1 , 6 , 1 , 13 ] );; > SetEntrySCTable( T, 9, 10, [ -2 , 8 ] );; > SetEntrySCTable( T, 9, 11, [ -1 , 6 , -1 , 13 ] );; > SetEntrySCTable( T, 9, 12, [ -1 , 14 ] );; > SetEntrySCTable( T, 9, 13, [ 1 , 4 , 1 , 11 ] );; > SetEntrySCTable( T, 9, 14, [ 1 , 12 ] );; > SetEntrySCTable( T, 10, 11, [ -1 , 14 ] );; > SetEntrySCTable( T, 10, 12, [ 1 , 6 , 1 , 13 ] );; > SetEntrySCTable( T, 10, 13, [ 1 , 5 , -1 , 12 ] );; > SetEntrySCTable( T, 10, 14, [ 1 , 11 ] );; > SetEntrySCTable( T, 11, 12, [ 2 , 1 , 2 , 8 ] );; > SetEntrySCTable( T, 11, 13, [ -1 , 2 , -1 , 9 ] );; > SetEntrySCTable( T, 11, 14, [ -1 , 10 ] );; > SetEntrySCTable( T, 12, 13, [ 1 , 3 , 1 , 10 ] );; > SetEntrySCTable( T, 12, 14, [ -1 , 9 ] );; > SetEntrySCTable( T, 13, 14, [ 1 , 1 ] );; > > L := LieAlgebraByStructureConstants( Rationals, T ); > Print( "Dimension( L ) = ", Dimension( L ), "\n" ); > typ := SemiSimpleType( L ); > Print( "SemiSimpleType( L ) : ", typ, "\n" ); > detKM := Determinant( KillingMatrix( Basis( L ))); > Print( "Determinant( KillingMatrix( Basis( L ))) = ", detKM, "\n" ); > H := CartanSubalgebra( L ); > Print( "CartanSubalgebra( L ) = ", H, "\n" ); > R := RootSystem( L ); > Print( "RootSystem( L ) = ", R, "\n" ); > > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From alexk at mcs.st-andrews.ac.uk Mon Dec 9 21:43:33 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Mon, 9 Dec 2013 21:43:33 +0000 Subject: [GAP Forum] Root system of semi-simple Lie algebra G2 In-Reply-To: References: <52A4F5F5.8010909@gbeyerle.de> Message-ID: <6D38814C-986E-4BE2-910E-EC7A3C1BBAA0@mcs.st-andrews.ac.uk> Dear Georg and all, Just to add that CoReLG and three other packages extending GAP's functionality for Lie algebras, namely LieRing, LiePRing and SLA, are included in GAP 4.7.2 distribution which was announced on Friday, and I'd like to encourage you to get CoReLG via upgrading to GAP 4.7.2 instead of trying to install it under GAP 4.6.4 which is dated May 2013. Best wishes Alexander On 9 Dec 2013, at 21:03, Willem de Graaf wrote: > Dear Georg, > > The problem is that the Cartan subalgebra that has been computed is not > split over the rationals. It is split over Q(i). > However, GAP does not take advantage of that. Recently we have written > a package, called corelg, which does manage to compute the root system > in this case (http://www.science.unitn.it/~corelg/): > > gap> L := LieAlgebraByStructureConstants( CF(4), T ); > > gap> RootSystem(L); > > > Best wishes, > > Willem de Graaf > > > On Sun, Dec 8, 2013 at 11:43 PM, Georg Beyerle wrote: > >> Hello, >> >> the following table of structure constants (see below) appears to define >> a semi-simple Lie algebra. However, the call to RootSystem() fails: >> >> GAPInfo.Version = 4.6.4 >> GAPInfo.Architecture = i586-suse-linux-gnu-gcc-default32 >> Dimension( L ) = 14 >> SemiSimpleType( L ) : G2 >> Determinant( KillingMatrix( Basis( L ))) = 9618527719784448 >> CartanSubalgebra( L ) = Algebra( Rationals, [ v.1, v.8 ] ) >> #I the Cartan subalgebra of in not split >> RootSystem( L ) = fail >> >> What am I missing? >> >> Thanks >> Georg >> >> >> Print( "GAPInfo.Version = ", GAPInfo.Version, "\n" ); >> Print( "GAPInfo.Architecture = ", GAPInfo.Architecture, "\n" ); >> SetInfoLevel( InfoAlgebra , 2 ); >> T:= EmptySCTable( 14, 0, "antisymmetric" );; >> SetEntrySCTable( T, 1, 2, [ -1 , 3 , -1 , 10 ] );; >> SetEntrySCTable( T, 1, 3, [ 1 , 2 , 1 , 9 ] );; >> SetEntrySCTable( T, 1, 4, [ 1 , 5 , -1 , 12 ] );; >> SetEntrySCTable( T, 1, 5, [ -1 , 4 , -1 , 11 ] );; >> SetEntrySCTable( T, 1, 6, [ 1 , 14 ] );; >> SetEntrySCTable( T, 1, 7, [ 1 , 6 , 1 , 13 ] );; >> SetEntrySCTable( T, 1, 9, [ 1 , 10 ] );; >> SetEntrySCTable( T, 1, 10, [ -1 , 9 ] );; >> SetEntrySCTable( T, 1, 11, [ 1 , 12 ] );; >> SetEntrySCTable( T, 1, 12, [ -1 , 11 ] );; >> SetEntrySCTable( T, 1, 13, [ 1 , 14 ] );; >> SetEntrySCTable( T, 1, 14, [ -2 , 6 , -2 , 13 ] );; >> SetEntrySCTable( T, 2, 3, [ -1 , 1 , -1 , 8 ] );; >> SetEntrySCTable( T, 2, 4, [ -1 , 6 , -1 , 13 ] );; >> SetEntrySCTable( T, 2, 5, [ -1 , 7 , -1 , 14 ] );; >> SetEntrySCTable( T, 2, 6, [ -1 , 11 ] );; >> SetEntrySCTable( T, 2, 7, [ 1 , 5 , -1 , 12 ] );; >> SetEntrySCTable( T, 2, 8, [ -1 , 10 ] );; >> SetEntrySCTable( T, 2, 10, [ 1 , 8 ] );; >> SetEntrySCTable( T, 2, 11, [ 1 , 6 ] );; >> SetEntrySCTable( T, 2, 12, [ 1 , 7 , 1 , 14 ] );; >> SetEntrySCTable( T, 2, 13, [ 1 , 4 , 1 , 11 ] );; >> SetEntrySCTable( T, 2, 14, [ 1 , 5 , -1 , 12 ] );; >> SetEntrySCTable( T, 3, 4, [ -1 , 7 ] );; >> SetEntrySCTable( T, 3, 5, [ -2 , 6 ] );; >> SetEntrySCTable( T, 3, 6, [ 2 , 5 ] );; >> SetEntrySCTable( T, 3, 7, [ 1 , 4 ] );; >> SetEntrySCTable( T, 3, 8, [ 1 , 9 ] );; >> SetEntrySCTable( T, 3, 9, [ -1 , 8 ] );; >> SetEntrySCTable( T, 3, 11, [ 1 , 7 , 1 , 14 ] );; >> SetEntrySCTable( T, 3, 12, [ -1 , 6 ] );; >> SetEntrySCTable( T, 3, 13, [ -1 , 5 ] );; >> SetEntrySCTable( T, 3, 14, [ -1 , 4 , -1 , 11 ] );; >> SetEntrySCTable( T, 4, 5, [ -1 , 8 ] );; >> SetEntrySCTable( T, 4, 6, [ 1 , 9 ] );; >> SetEntrySCTable( T, 4, 7, [ -2 , 3 , -2 , 10 ] );; >> SetEntrySCTable( T, 4, 8, [ 1 , 5 ] );; >> SetEntrySCTable( T, 4, 9, [ -1 , 6 ] );; >> SetEntrySCTable( T, 4, 10, [ 1 , 7 ] );; >> SetEntrySCTable( T, 4, 12, [ -1 , 1 , -1 , 8 ] );; >> SetEntrySCTable( T, 4, 13, [ -1 , 2 , -1 , 9 ] );; >> SetEntrySCTable( T, 4, 14, [ 1 , 3 , 1 , 10 ] );; >> SetEntrySCTable( T, 5, 6, [ -2 , 3 ] );; >> SetEntrySCTable( T, 5, 7, [ 1 , 9 ] );; >> SetEntrySCTable( T, 5, 8, [ -1 , 4 ] );; >> SetEntrySCTable( T, 5, 9, [ -1 , 7 ] );; >> SetEntrySCTable( T, 5, 10, [ -1 , 6 ] );; >> SetEntrySCTable( T, 5, 11, [ -1 , 1 , -1 , 8 ] );; >> SetEntrySCTable( T, 5, 13, [ 1 , 3 ] );; >> SetEntrySCTable( T, 5, 14, [ -1 , 2 , -1 , 9 ] );; >> SetEntrySCTable( T, 6, 7, [ 1 , 8 ] );; >> SetEntrySCTable( T, 6, 8, [ -1 , 7 ] );; >> SetEntrySCTable( T, 6, 9, [ 1 , 4 ] );; >> SetEntrySCTable( T, 6, 10, [ 1 , 5 ] );; >> SetEntrySCTable( T, 6, 11, [ -1 , 2 ] );; >> SetEntrySCTable( T, 6, 12, [ 1 , 3 ] );; >> SetEntrySCTable( T, 6, 14, [ 1 , 1 ] );; >> SetEntrySCTable( T, 7, 8, [ 1 , 6 ] );; >> SetEntrySCTable( T, 7, 9, [ 1 , 5 ] );; >> SetEntrySCTable( T, 7, 10, [ -1 , 4 ] );; >> SetEntrySCTable( T, 7, 11, [ -1 , 3 , -1 , 10 ] );; >> SetEntrySCTable( T, 7, 12, [ -1 , 2 , -1 , 9 ] );; >> SetEntrySCTable( T, 7, 13, [ 1 , 1 , 1 , 8 ] );; >> SetEntrySCTable( T, 8, 9, [ -2 , 10 ] );; >> SetEntrySCTable( T, 8, 10, [ 2 , 9 ] );; >> SetEntrySCTable( T, 8, 11, [ 1 , 12 ] );; >> SetEntrySCTable( T, 8, 12, [ -1 , 11 ] );; >> SetEntrySCTable( T, 8, 13, [ -1 , 7 , -1 , 14 ] );; >> SetEntrySCTable( T, 8, 14, [ 1 , 6 , 1 , 13 ] );; >> SetEntrySCTable( T, 9, 10, [ -2 , 8 ] );; >> SetEntrySCTable( T, 9, 11, [ -1 , 6 , -1 , 13 ] );; >> SetEntrySCTable( T, 9, 12, [ -1 , 14 ] );; >> SetEntrySCTable( T, 9, 13, [ 1 , 4 , 1 , 11 ] );; >> SetEntrySCTable( T, 9, 14, [ 1 , 12 ] );; >> SetEntrySCTable( T, 10, 11, [ -1 , 14 ] );; >> SetEntrySCTable( T, 10, 12, [ 1 , 6 , 1 , 13 ] );; >> SetEntrySCTable( T, 10, 13, [ 1 , 5 , -1 , 12 ] );; >> SetEntrySCTable( T, 10, 14, [ 1 , 11 ] );; >> SetEntrySCTable( T, 11, 12, [ 2 , 1 , 2 , 8 ] );; >> SetEntrySCTable( T, 11, 13, [ -1 , 2 , -1 , 9 ] );; >> SetEntrySCTable( T, 11, 14, [ -1 , 10 ] );; >> SetEntrySCTable( T, 12, 13, [ 1 , 3 , 1 , 10 ] );; >> SetEntrySCTable( T, 12, 14, [ -1 , 9 ] );; >> SetEntrySCTable( T, 13, 14, [ 1 , 1 ] );; >> >> L := LieAlgebraByStructureConstants( Rationals, T ); >> Print( "Dimension( L ) = ", Dimension( L ), "\n" ); >> typ := SemiSimpleType( L ); >> Print( "SemiSimpleType( L ) : ", typ, "\n" ); >> detKM := Determinant( KillingMatrix( Basis( L ))); >> Print( "Determinant( KillingMatrix( Basis( L ))) = ", detKM, "\n" ); >> H := CartanSubalgebra( L ); >> Print( "CartanSubalgebra( L ) = ", H, "\n" ); >> R := RootSystem( L ); >> Print( "RootSystem( L ) = ", R, "\n" ); >> >> _______________________________________________ >> 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 eyesha313 at gmail.com Thu Dec 12 18:38:36 2013 From: eyesha313 at gmail.com (Eye_sha Khan) Date: Thu, 12 Dec 2013 23:38:36 +0500 Subject: [GAP Forum] question Message-ID: we have to find the order of the group.we have permutation [ (1,3,6),(2,4,12),(7),(8,9,10),(11),(0,5, ?)] second permutation is [(0, ?,12),(1,11,6),(2,5,4),(3),(7,10,8),(9)] and third permutation is [(0, ?),(1,12),(2,6),(7,11),(3,4),(5),(8),(9,10)] ;but we cannot write any symbol for infinity in Gap;please tell us which symbol we should write in GAP; regards From mathieu.dutour at gmail.com Thu Dec 12 21:38:03 2013 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Thu, 12 Dec 2013 22:38:03 +0100 Subject: [GAP Forum] question In-Reply-To: References: Message-ID: What you should do is number the N elements you are permuting on from 1 to N. So, in your case: 0 ----> 1 1 -----> 2 . . . 12 -----> 13 Infinity ------> 14. That way you can use existing Gap commands. That translation business is absolutely necessary in order to use GAP. Mathieu On Thursday, December 12, 2013, Eye_sha Khan wrote: > we have to find the order of the group.we have permutation [ > (1,3,6),(2,4,12),(7),(8,9,10),(11),(0,5, ?)] second permutation is > [(0, ?,12),(1,11,6),(2,5,4),(3),(7,10,8),(9)] > and third permutation is [(0, ?),(1,12),(2,6),(7,11),(3,4),(5),(8),(9,10)] > ;but we cannot write any symbol for infinity in Gap;please tell us which > symbol we should write in GAP; > regards > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From mnarde01 at mail.bbk.ac.uk Fri Dec 13 11:31:30 2013 From: mnarde01 at mail.bbk.ac.uk (Michele Nardella) Date: Fri, 13 Dec 2013 11:31:30 +0000 Subject: [GAP Forum] Group Actions In GAP Message-ID: Dear Subscribers to the GAP Forum, I am an undergraduate student and taking my first class in Group Theory. I would like to obtain a) the permutation cycles of the faces of a truncated octahedron induced by the action of its rotation group (S_4); and b) the orbits of its faces; To generate S_4 in GAP is the easiest part. By I do not know, how to specify the domain, \Omega, and \mu which is defined to be "a function compatible with the group arithmetic." ( http://www.gap-system.org/Manuals/doc/ref/chap41.html). Since a truncated octahedron is made of 8 regular hexagons and 6 squares, would I be correct in specifying the domain as gap>dom:=[[1,2,3,4,5,6,7,8],[9,10,11,12,13,14]]; where 1..8 are the labels of the hexagonal faces and 9..14 are the label of the squared faces? Concerning the method \mu, GAP manual specifies many different options ranging from paragraph 41.2-1 to 41.2-15. I have no idea which one apply to my case. Would you be so kind to give to me an hint? Moreover, I will really appreciate if you can suggest to me some reference so that I can understand a good portion of the other methods with the constraint that I am an undergraduate student Thank you very much, Michele From Bill.Allombert at math.u-bordeaux1.fr Fri Dec 13 12:14:53 2013 From: Bill.Allombert at math.u-bordeaux1.fr (Bill Allombert) Date: Fri, 13 Dec 2013 13:14:53 +0100 Subject: [GAP Forum] Group Actions In GAP In-Reply-To: References: Message-ID: <20131213121453.GF22267@yellowpig> On Fri, Dec 13, 2013 at 11:31:30AM +0000, Michele Nardella wrote: > Dear Subscribers to the GAP Forum, > > I am an undergraduate student and taking my first class in Group Theory. > I would like to obtain > a) the permutation cycles of the faces of a truncated octahedron induced by > the action of its rotation group (S_4); and > b) the orbits of its faces; > > To generate S_4 in GAP is the easiest part. > By I do not know, how to specify the domain, \Omega, and \mu which is > defined to be "a function compatible with the group arithmetic." ( > http://www.gap-system.org/Manuals/doc/ref/chap41.html). I really suggest you do the computation by hand, and then to do it using GAP when you have a clear picture of the concept involved. S_4 is a small group, so the computation is easy. Cheers, Bill. From vlad at vladikoff.com Mon Dec 16 22:34:59 2013 From: vlad at vladikoff.com (vlad at vladikoff.com) Date: Mon, 16 Dec 2013 16:34:59 -0600 Subject: [GAP Forum] Speed up loading, minimize workspace file Message-ID: Hello, I'm looking for a way to speed up GAP loading. How can I do this? Or how can I minimize my workspace file? I'm assuming that unloading certain packages and components might help, but I'm not sure how to do that. Should I just move them out of the `pkg` directory? Thanks! Vlad. From alexk at mcs.st-andrews.ac.uk Tue Dec 17 13:10:26 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Tue, 17 Dec 2013 13:10:26 +0000 Subject: [GAP Forum] Speed up loading, minimize workspace file In-Reply-To: References: Message-ID: <58E3C491-A269-4BB6-8136-F9FD58BF16BB@mcs.st-andrews.ac.uk> Hello Vlad, On 16 Dec 2013, at 22:34, vlad at vladikoff.com wrote: > Hello, > > I'm looking for a way to speed up GAP loading. > How can I do this? Or how can I minimize my workspace file? Using the workspace is the recommended way to speed it up. On my machine, the workspace created with the BOB installer ( http://neunhoef.github.io/bob/ ) occupies 38 MB for 32-bit mode and 67 MB for 64-bit mode. Are you interested in squeezing it even further? Is this a network installation, or slow machine, or anything else which motivates your question? > I'm assuming that unloading certain packages and components might help, but I'm not sure how to do that. Should I just move them out of the `pkg` directory? Those packages which are not loaded at startup, they do not make big use of the workspace (only meta-data will be loaded). Also, some packages are required to run GAP, and some extend it significantly, and some depend on others, so one should be careful. It's easy to break the system without any significant gain in loading time. Hope this helps Alexander From l18981040 at gmail.com Thu Dec 19 13:53:55 2013 From: l18981040 at gmail.com (Chiang-En Chen) Date: Thu, 19 Dec 2013 21:53:55 +0800 Subject: [GAP Forum] The command "IsIdentical" can not work. Message-ID: My GAP version is 4.6.5. When I performed the command "IsIdentical( 1, 1 );" (this is an example in the section 27.10 of the manual ), it can not work. The information of error is gap> IsIdentical( 1, 1 ); Error, Variable: 'IsIdentical' must have a value not in any function at line 1 of *stdin* Thank for reading. From mathieu.dutour at gmail.com Thu Dec 19 13:58:21 2013 From: mathieu.dutour at gmail.com (Mathieu Dutour) Date: Thu, 19 Dec 2013 14:58:21 +0100 Subject: [GAP Forum] The command "IsIdentical" can not work. In-Reply-To: References: Message-ID: Well, the function "IsIdentical" simply does not exist. GAP is a functional language. The function themselves are variables. But if you want you have: gap> IsIdenticalObj(1,1); true or gap> 1=1; true I am not sure of the difference between both. Mathieu On Thu, Dec 19, 2013 at 2:53 PM, Chiang-En Chen wrote: > My GAP version is 4.6.5. When I performed the command "IsIdentical( 1, 1 > );" (this is an example in the section 27.10 of the manual ), it can not > work. The information of error is > > gap> IsIdentical( 1, 1 ); > Error, Variable: 'IsIdentical' must have a value > not in any function at line 1 of *stdin* > > Thank for reading. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From stefan at mcs.st-and.ac.uk Thu Dec 19 15:22:57 2013 From: stefan at mcs.st-and.ac.uk (Stefan Kohl) Date: Thu, 19 Dec 2013 15:22:57 -0000 (UTC) Subject: [GAP Forum] The command "IsIdentical" can not work. In-Reply-To: References: Message-ID: On Thu, December 19, 2013 1:58 pm, Mathieu Dutour wrote: > Well, the function "IsIdentical" simply does not exist. > GAP is a functional language. The function themselves > are variables. > > But if you want you have: > gap> IsIdenticalObj(1,1); > true > > or > gap> 1=1; > true > > I am not sure of the difference between both. The difference between "=" and "IsIdenticalObj" is just the one between "equal" and "the same", where "the same" is understood as "referring to the same bytes in memory". -- For example: gap> list1 := [1,2,3];; gap> list2 := list1;; gap> IsIdenticalObj(list1,list2); true gap> list1[2] := 17; 17 gap> list2; # changing list1 changed list2 as well, since it is THE SAME object [ 1, 17, 3 ] gap> list2 := ShallowCopy(list1); # make a copy, i.e. create another equal object [ 1, 17, 3 ] gap> list1 = list2; # list1 and list2 are still equal ... true gap> IsIdenticalObj(list1,list2); # ... but no longer identical false gap> list1[2] := 50; # now changing list1 does not change list2 50 gap> list2; [ 1, 17, 3 ] Hope this helps, Stefan Kohl > On Thu, Dec 19, 2013 at 2:53 PM, Chiang-En Chen wrote: > >> My GAP version is 4.6.5. When I performed the command "IsIdentical( 1, 1 >> );" (this is an example in the section 27.10 of the manual ), it can not >> work. The information of error is >> >> gap> IsIdentical( 1, 1 ); >> Error, Variable: 'IsIdentical' must have a value >> not in any function at line 1 of *stdin* >> >> Thank for reading. >> _______________________________________________ >> 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 roberto.radina at tiscali.it Thu Dec 19 17:39:56 2013 From: roberto.radina at tiscali.it (=?iso-8859-1?Q?Roberto_R=E0dina?=) Date: Thu, 19 Dec 2013 18:39:56 +0100 Subject: [GAP Forum] Speed up loading, minimize workspace file References: Message-ID: <998B3D79765846CEB1F8DA0CA3E80333@carnia> > I'm looking for a way to speed up GAP loading. > How can I do this? Or how can I minimize my workspace file? On my (old) machine, GAP472, with a 38 MB workspace, starts in 15 seconds the first time I load it. And in only 2 seconds if I "quit;"and reload it again because, I suppose, it is chached in RAM. If I reload GAP with a DIFFERENT workspace, the time is again 2 seconds, so the time to load the workspace is about 0 seconds. So minimize the workspace will not help. If I start GAP with a workspace but without the "-l" option, it starts in 5 seconds (three times faster) the first time and still 2 seconds on reloads. I don't know what changes without the "-l" option. Surely the online help (e.g.: gap> ?group) does not work. Times may vary +/- 50%, I reported mean times. Roberto From alexk at mcs.st-andrews.ac.uk Thu Dec 19 18:35:41 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 19 Dec 2013 18:35:41 +0000 Subject: [GAP Forum] The command "IsIdentical" can not work. In-Reply-To: References: Message-ID: <41BE1ACE-475F-4B3A-8A33-9AD549CCB97E@mcs.st-andrews.ac.uk> In GAP 4.6.5 section 27.10 is "Obtaining LaTeX Representations of Objects" and it has no such example. OTOH, IsIdenticalObj is documented there in Section 12.5-1 IsIdenticalObj - just to make it sure that you're looking at the right manual, to avoid further controversies. Best wishes Alexander On 19 Dec 2013, at 13:53, Chiang-En Chen wrote: > My GAP version is 4.6.5. When I performed the command "IsIdentical( 1, 1 > );" (this is an example in the section 27.10 of the manual ), it can not > work. The information of error is > > gap> IsIdentical( 1, 1 ); > Error, Variable: 'IsIdentical' must have a value > not in any function at line 1 of *stdin* > > Thank for reading. > _______________________________________________ > Forum mailing list > Forum at mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexk at mcs.st-andrews.ac.uk Thu Dec 19 20:27:35 2013 From: alexk at mcs.st-andrews.ac.uk (Alexander Konovalov) Date: Thu, 19 Dec 2013 20:27:35 +0000 Subject: [GAP Forum] The command "IsIdentical" can not work. In-Reply-To: <41BE1ACE-475F-4B3A-8A33-9AD549CCB97E@mcs.st-andrews.ac.uk> References: <41BE1ACE-475F-4B3A-8A33-9AD549CCB97E@mcs.st-andrews.ac.uk> Message-ID: <70A258CF-8BC9-4360-B2C9-C39CC5813A13@mcs.st-andrews.ac.uk> P.S. I've just checked what google returns for "IsIdentical( 1, 1 );" and the 1st hit is http://www.gap-system.org/Gap3/Manual3/C027S010.htm and at the bottom of the page it is stated that this is GAP 3.4.4, April 1997 so this is likely where the question comes from. You might be interested to look at http://www.gap-system.org/Faq/faq.html#3.2 "Where do I find a manual?" from GAP F.A.Q. The manual is supplied with the system, and is a part of your installation. You may search in it very efficiently from the GAP command line. Try, for example, to enter ?SetHelpViewer to see how this works and to read about further customisation dependently on which format you'd prefer. Hope this helps Alexander On 19 Dec 2013, at 18:35, Alexander Konovalov wrote: > In GAP 4.6.5 section 27.10 is "Obtaining LaTeX Representations of Objects" > and it has no such example. OTOH, IsIdenticalObj is documented there in > Section 12.5-1 IsIdenticalObj - just to make it sure that you're looking > at the right manual, to avoid further controversies. > > Best wishes > Alexander > > > > > > On 19 Dec 2013, at 13:53, Chiang-En Chen wrote: > >> My GAP version is 4.6.5. When I performed the command "IsIdentical( 1, 1 >> );" (this is an example in the section 27.10 of the manual ), it can not >> work. The information of error is >> >> gap> IsIdentical( 1, 1 ); >> Error, Variable: 'IsIdentical' must have a value >> not in any function at line 1 of *stdin* >> >> Thank for reading. >> _______________________________________________ >> 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