From wdjoyner at gmail.com Mon Jan 1 15:10:27 2007 From: wdjoyner at gmail.com (David Joyner) Date: Mon Jan 1 14:22:49 2007 Subject: [GAP Forum] GAP www items (Jan 2007) Message-ID: <45992463.30402@gmail.com> Hello all and Happy New Year! Some recent updates to the GAP www site: 1. New packages: IO (provides bindings for GAP to the lower levels of Input/Output functionality in the C library) by Max Neunhoeffer 2. Recently updated packages: Circle (provides functionality to compute in the adjoint groups of associative rings) by Alexander Konovalov and Panagiotis Soules Design (for constructing, classifying, partitioning and studying block designs) by Leonard H. Soicher LieAlgDB (provides access to some classifications of small-dimensional Lie algebras) by Willem De Graaf and Csaba Schneider radiroot (can compute and display an expression by radicals for the roots of a solvable, rational polynomial) by Andreas Distler RDS (provides functions for finding relative difference sets in non-abelian finite groups by complete enumeration - especially those defining projective planes) by Marc Roeder UnitLib (library of normalized unit groups of modular group algebras of finite p-groups over the field of p elements for all finite p-groups of order not greater than 128) by Alexander Konovalov and Elena Yakimenko Wedderga (provides Wedderburn decomposition tools for any group algebra) by Angel Del Rio Mateos, Aurora Olivieri, Alexander Konovalov, Gabriela Olteanu, Osnel Broche Cristo Package authors only: 1. I'd like to remind package authors, if I may, to please consider adding to their package a file which describes the history or changes to their package. An excellent example is DESIGN, which includes this information in the README file: http://www.gap-system.org/Manuals/pkg/design/README.design 2. I'd also like to ask package authors, if I may, to please consider adding to their package a file which describes the distribution license of their package. Again, an excellent example of a GAP package which does this is DESIGN, which includes this information in the README file. It may also do in a file called COPYING or LICENSE. An excellent example of a license to use is the GPL (http://www.gnu.org/licenses/), which is used by GAP. Thanks for your consideration! - David Joyner From holmespe at for.mat.bham.ac.uk Mon Jan 8 10:33:07 2007 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Mon Jan 8 10:33:26 2007 Subject: [GAP Forum] van Kampen diagrams Message-ID: Dear Group Pub Forum, I have been told to send this to everyone I can think of. Any ideas on it are welcome. Beth ---------- Forwarded message ---------- Date: Mon, 8 Jan 2007 08:26:37 +0000 From: Richard Parker To: Beth Holmes Subject: The central problem Let P be a polyhedral ball which topologically is a sphere, and where precisely three faces meet at every vertex. For each face with n sides, define the "curvature" of that face to be 6-n, so a pentagon has curvature 1, an octagon has curvature -2 and so on. The faces do not need to be regular. Euler's formula, F + V = E + 2, implies that the total curvature over the whole of P is 12. A "patch" of f faces is a subset of the faces of P that has no holes in it. Technically it is simply connected. I need to prove or disprove the following result. For every such P there is a sequence of patches, each containing one more face than the previous, such that the sum of the curvature of all the faces in each patch is greater than zero. In other words we can build P one face at a time such that the curvature of the patch we have made so far is always positive. This result has huge implications for an algorithm for finitely presented groups. P is a van Kampen diagram, and I want to know whether a short relator with a long proof can be built up relator by relator looking only at sensible things along the way. From bob.heffernan at gmail.com Mon Jan 8 11:33:01 2007 From: bob.heffernan at gmail.com (Robert Heffernan) Date: Mon Jan 8 11:33:45 2007 Subject: [GAP Forum] isoclinism In-Reply-To: <4587E323.2020502@gmail.com> References: <6d9a83e90611150556r56f72a0rdfbe977b94878912@mail.gmail.com> <4587E323.2020502@gmail.com> Message-ID: <6d9a83e90701080333y611c52b3x444563ae46fa0a9b@mail.gmail.com> On 12/19/06, David Joyner wrote: > Sorry for the long delay (final exams, etc). As you probably guessed, > the short answer appears to be that at the moment GAP does not > have the command you want. I personally know nothing about isoclinism > but Joachim Neubueser was kind enough to send me some information which > I'll pass on to you: Thank you for your email. FYI, In "The Groups of Order 128" (Journal of Algebra 129, 1990) James, Newman and O'Brien describe an algorithm to determine if two arbitrary p-groups are isoclinic. To my knowledge this has not been implemented in any publicly-available algebra system. The implementation of such an algorithm (or even the brute-force approach outlined by Joachim) is peripheral enough to my interests that I can't really spare the time to implement it (I'm not sure I have the necessary expertise anyway). However, it would be a worthwhile and interesting project for *somebody*, I think. Bob From dima at ntu.edu.sg Mon Jan 8 13:56:46 2007 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Mon Jan 8 13:54:54 2007 Subject: [GAP Forum] van Kampen diagrams In-Reply-To: Message-ID: This seems to be related to shellability of polytopes, see e.g. G.M.Ziegler's book "Lectures on polytopes" on this topic. (I presume that "topologically a sphere" means that we deal with a 3-connected planar graph. Then by Steinitz thm it comes from a 3-polytope) The "sequence of patches" is then a shelling of the polytope. Shellings of polytopes always exist. The extra condition on curvature makes the problem seemingly nontrivial. Perhaps some "statistics" on possible distributions of shapes of faces in 3-polytopes might help - but I'm not an expert on this. HTH, -- Dima Pasechnik http://www.ntu.edu.sg/home/dima/ On 1/8/07 6:33 PM, "Petra Holmes" wrote: > Dear Group Pub Forum, > > I have been told to send this to everyone I can think of. Any ideas on it > are welcome. > > Beth > > ---------- Forwarded message ---------- > Date: Mon, 8 Jan 2007 08:26:37 +0000 > From: Richard Parker > To: Beth Holmes > Subject: The central problem > > > Let P be a polyhedral ball which topologically is a sphere, > and where precisely three faces meet at every vertex. > > For each face with n sides, define the "curvature" of that > face to be 6-n, so a pentagon has curvature 1, an octagon > has curvature -2 and so on. The faces do not need to be > regular. > > Euler's formula, F + V = E + 2, implies that the total curvature > over the whole of P is 12. > > A "patch" of f faces is a subset of the faces of P that has > no holes in it. Technically it is simply connected. > > I need to prove or disprove the following result. > > For every such P there is a sequence of patches, each containing > one more face than the previous, such that the sum of the curvature > of all the faces in each patch is greater than zero. In other words > we can build P one face at a time such that the curvature of the > patch we have made so far is always positive. > > This result has huge implications for an algorithm for finitely > presented groups. P is a van Kampen diagram, and I want to know > whether a short relator with a long proof can be built up relator > by relator looking only at sensible things along the way. From holmespe at for.mat.bham.ac.uk Mon Jan 8 17:41:08 2007 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Mon Jan 8 17:41:35 2007 Subject: [GAP Forum] van Kampen diagrams In-Reply-To: <1118.132.199.103.149.1168264083.squirrel@webmail.ph-bw.de> References: <1118.132.199.103.149.1168264083.squirrel@webmail.ph-bw.de> Message-ID: Stephan, Thank you for your reply. But our question is whether a face exists that you can start building the patch from, not whether all faces can be the starting place. Beth On Mon, 8 Jan 2007, Stephan Rosebrock wrote: > Dear Group Pub Forum, > > this cannot be true since you could start building your patch > with an octagon which hast negative curvature already. > > Best wishes > Stephan Rosebrock > > > >> From chris.chalk1 at ntlworld.com Mon Jan 8 23:36:01 2007 From: chris.chalk1 at ntlworld.com (chris chalk) Date: Mon Jan 8 23:36:47 2007 Subject: [GAP Forum] van Kampen diagrams References: Message-ID: <000f01c7337d$c34906a0$0200a8c0@cchalk> Beth, thanks for this lovely question. Its got a strong 4-color theorem flavour about it. So how about this as an approach? Consider the dual D of the spherical VK diagram. So faces become vertices and the 3 degree vertices become triangles and we have a triangulation of the sphere, where, from Euler, the average degree of the vertices of D must be < 6. Your question is then, is it always possible somehow to enumerate or order the vertices of D so that in this 'ordering' I) each vertex is connected to its predecessor/successor by an edge of D, and II) the average degree of the vertices of every initial subset of this ordering is < 6. eg if the degrees of vertices of an 'ordering' begin as (5,6,6,5,7,6,...) then this satisfies this 'ordering condition' (so far at least), but if they begin (5,6,6,7,5,6,..) then they don't. So here's a sketch of a start of a possible proof....!?? Following the 4 Colour Thm proof, assume there exist one or more spherical diagrams which don't allow this 'ordering' of vertices. Choose one, M, which has the smallest number of vertices. Now pick any vertex V of degree 5 or less in M. There then exists a maximal connected planar subdiagram S of M containing V in its interior, such that all other interior vertices of S are of degree 6 or less. For example it could be that V is connected to another vertex W of degree 5 but that all the other (6?) vertices connected to V and W have degree > 6. In this case S would a 6 sided subdiagram of M. We can then shrink this subdiagram to a point or vertex to form a spherical diagram M' with fewer vertices than M for which, by assumption, an 'ordering' of the vertices exist. eg S, above would shrink to a vertex of degree 6 and M' would have 2 fewer vertices than M. Could it be that from the 'ordering' of M' we could construct an 'ordering' of the larger diagram M and so derive a contradiction to the assumption that no such 'ordering' exists.? Its of course possible that S wraps round the sphere and so isn't planar then cant just shrink S to a vertex without forming two spheres - maybe it isn't necessary to let vertices of degrees 6 belong to S.... I hope this might be of some help. regards Chris ----- Original Message ----- From: "Petra Holmes" To: Sent: Monday, January 08, 2007 10:33 AM Subject: [GAP Forum] van Kampen diagrams > Dear Group Pub Forum, > > I have been told to send this to everyone I can think of. Any ideas on it > are welcome. > > Beth > > ---------- Forwarded message ---------- > Date: Mon, 8 Jan 2007 08:26:37 +0000 > From: Richard Parker > To: Beth Holmes > Subject: The central problem > > > Let P be a polyhedral ball which topologically is a sphere, > and where precisely three faces meet at every vertex. > > For each face with n sides, define the "curvature" of that > face to be 6-n, so a pentagon has curvature 1, an octagon > has curvature -2 and so on. The faces do not need to be > regular. > > Euler's formula, F + V = E + 2, implies that the total curvature > over the whole of P is 12. > > A "patch" of f faces is a subset of the faces of P that has > no holes in it. Technically it is simply connected. > > I need to prove or disprove the following result. > > For every such P there is a sequence of patches, each containing > one more face than the previous, such that the sum of the curvature > of all the faces in each patch is greater than zero. In other words > we can build P one face at a time such that the curvature of the > patch we have made so far is always positive. > > This result has huge implications for an algorithm for finitely > presented groups. P is a van Kampen diagram, and I want to know > whether a short relator with a long proof can be built up relator > by relator looking only at sensible things along the way. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > From holmespe at for.mat.bham.ac.uk Tue Jan 9 07:58:01 2007 From: holmespe at for.mat.bham.ac.uk (Petra Holmes) Date: Tue Jan 9 07:58:23 2007 Subject: [GAP Forum] van Kampen diagrams (fwd) Message-ID: Just to say that our question is answered by this nice counterexample from David Hobby: ---------- Forwarded message ---------- Date: Mon, 08 Jan 2007 14:12:43 -0500 From: David Hobby To: Petra Holmes Subject: Re: [GAP Forum] van Kampen diagrams Petra-- May we have a precise definition of "polyhedral ball", just for clarification? I've got a counterexample, but it's not what most people would call a polyhedron. It is, however, derived in an obvious way from a planar graph, which is what van Kampen diagrams seem to be. Is it legal for two faces to touch at more than one shared edge? If so, my counterexample consists of something that can be visualized as the globe, with a 15-gon covering almost all the Northern hemisphere, another one covering almost all the Southern hemisphere, and a ring of 5 "diamonds" going along the equator. Each diamond looks like this, where up is North: . /|\ _________./ | \._______________ \ | / \|/ . (This mess can only be deciphered if you have the spacing set the right way in ASCII mode. Sorry!) Then the two 15-gons touch at 5 separate edges, running along the equator between the 5 diamonds. (Each diamond is made of two triangles which share a north-south edge, in case my diagram didn't work.) Nice problem. ---David From joachim.s at web.de Wed Jan 10 19:32:44 2007 From: joachim.s at web.de (Joachim Schittenhelm) Date: Wed Jan 10 19:33:29 2007 Subject: [GAP Forum] matrix-conjugation problem. matrices given in numbers Message-ID: <45A53F5C.9080108@web.de> Hi members, i got an equation Problem. given: 4 matrices X_1,G_1, X_2, G_2 in GL(n,q) needed: matrix Y (<>0), so that X_i is the conjugation of G_i by Y matrices X_i, G_i are given like this: [[2,0],[0,1]] entries are numbers modulo q is this somehow solvable in GAP? Greetings Joachim From jack at ms.uky.edu Wed Jan 10 23:00:18 2007 From: jack at ms.uky.edu (Jack Schmidt) Date: Wed Jan 10 23:01:27 2007 Subject: [GAP Forum] matrix-conjugation problem. matrices given in numbers In-Reply-To: <45A53F5C.9080108@web.de> References: <45A53F5C.9080108@web.de> Message-ID: <45A57002.8050307@ms.uky.edu> You can use RepresentativeAction to find an element Y that does the conjugation. Here is a sample GAP session that chooses some random X_i and G_i in GL(2,5), asks GAP to find a Y that conjugates them, and then checks that GAP did what you think it should. gap> h:=GL(2,5); GL(2,5) gap> x:=[PseudoRandom(h),PseudoRandom(h)]; [ [ [ Z(5)^3, 0*Z(5) ], [ Z(5)^0, Z(5)^0 ] ], [ [ Z(5)^2, 0*Z(5) ], [ Z(5)^2, Z(5)^3 ] ] ] gap> g:=OnTuples(x,PseudoRandom(h)); [ [ [ Z(5), Z(5)^3 ], [ Z(5), Z(5) ] ], [ [ Z(5)^3, 0*Z(5) ], [ Z(5), Z(5)^2 ] ] ] gap> y:=RepresentativeAction(h, x, g, OnTuples); [ [ Z(5)^3, Z(5)^2 ], [ Z(5)^0, Z(5)^0 ] ] gap> y^-1 * x[1] * y = g[1]; true gap> y^-1 * x[2] * y = g[2]; true If your matrices are given as integer matrices, be sure to multiply them by the appropriate finite field matrix to turn them into finite field matrices: gap> myx := [[2,0],[0,1]]; [ [ 2, 0 ], [ 0, 1 ] ] gap> x1 := myx*One(h); [ [ Z(5), 0*Z(5) ], [ 0*Z(5), Z(5)^0 ] ] You can convert the answer back to a more familiar form using the Display command as well: gap> Display(y); 3 4 1 1 If q=p^n is a proper prime power, then elements will be displayed as powers of a primitive element with minimal polynomial ConwayPolynomial(p,n) For large examples, you may wish to find Y_1 (using basically the same procedure) first for X_1 and G_1, then try the cosets of the centralizer of X_1 to find Y=C*Y_1, where C is in the centralizer of X_1 and X_2^C = G* = G_2^(Y_1^-1). The following took about 20 seconds (and the previous method took longer than a few minutes, so was canceled): gap> h:=GL(2,251); GL(2,251) gap> x:=[PseudoRandom(h),PseudoRandom(h)]; [ [ [ Z(251)^64, Z(251)^48 ], [ Z(251)^207, Z(251)^25 ] ], [ [ Z(251)^62, Z(251)^201 ], [ Z(251)^60, Z(251)^36 ] ] ] gap> g:=OnTuples(x,PseudoRandom(h)); [ [ [ Z(251)^219, Z(251)^62 ], [ Z(251)^207, Z(251)^90 ] ], [ [ Z(251)^161, Z(251)^190 ], [ Z(251)^149, Z(251)^245 ] ] ] gap> y1:=RepresentativeAction(h, x[1], g[1] ); [ [ Z(251)^0, Z(251)^17 ], [ 0*Z(251), Z(251)^0 ] ] gap> hc:=Centralizer(h, x[1]); gap> c:=RepresentativeAction(hc, x[2], g[2]^(y1^-1) ); [ [ Z(251)^187, Z(251)^91 ], [ Z(251)^0, Z(251)^92 ] ] gap> y:=c*y1; [ [ Z(251)^187, Z(251)^98 ], [ Z(251)^0, Z(251)^69 ] ] gap> y^-1 * x[1] * y = g[1]; true gap> y^-1 * x[2] * y = g[2]; true Joachim Schittenhelm wrote: > Hi members, > > i got an equation Problem. > > given: > 4 matrices X_1,G_1, X_2, G_2 in GL(n,q) > > needed: > matrix Y (<>0), so that X_i is the conjugation of G_i by Y > > matrices X_i, G_i are given like this: > [[2,0],[0,1]] > entries are numbers modulo q > > is this somehow solvable in GAP? > > > Greetings > > Joachim From emailme at ianmcloughlin.com Tue Jan 16 16:10:01 2007 From: emailme at ianmcloughlin.com (Ian McLoughlin) Date: Tue Jan 16 16:10:29 2007 Subject: [GAP Forum] Direct Product Message-ID: <9d5eef600701160810g8dd6ddegf9faea159d76b4e2@mail.gmail.com> Hi, I'm having a problem with creating a listing of the direct product of two groups. They are... 1) The cyclic group(C2) of order 2: < h | h^2 = 1 > and 2) The dihedral group(D12) of order 12: < a , b | a^2 = 1 , b^6 = 1 , ab = ba^(-1) >. What I need is a listing of the elements of C2 x D12(in a list) in the order that I want.... [ 1 , b , b^2 , ... , b^5 , a , ab , ab^2 , ... , ab^5 , h , hb , hb^2 , ... , hb^5 , hab , hab^2 , hab^5 ]. When I try to use DirectProduct and the Image(Embedding(GDirect,1),b); technique in other posts to this forum about direct products, I get an error. What i tried was.... h := GeneratorsOfGroup( GCyclic )[1] ; a := GeneratorsOfGroup( GDihedral )[1] ; b := GeneratorsOfGroup( GDihedral )[2] ; with GCyclic := CyclicGroup( 2 ) ; GDihedral := DihedralGroup( 12 ) ; . Thanks, Ian -- Ian McLoughlin emailme@ianmcloughlin.com From alexander.konovalov at gmail.com Tue Jan 16 17:00:14 2007 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Tue Jan 16 17:01:17 2007 Subject: [GAP Forum] Direct Product In-Reply-To: <9d5eef600701160810g8dd6ddegf9faea159d76b4e2@mail.gmail.com> References: <9d5eef600701160810g8dd6ddegf9faea159d76b4e2@mail.gmail.com> Message-ID: Dear Ian, I was trying to reproduce your computations, and, if I was following your way correctly, then Image(Embedding(GDirect,1),b); will not work because b belongs to the dihedral group of order 12 which is the 2nd factor of the direct product, not the 1st one. Thus, to embed b into the direct product, you need to use gap> Image(Embedding(GDirect,2),b); See my working example below: gap> GCyclic := CyclicGroup( 2 ) ;; gap> GDihedral := DihedralGroup( 12 ) ;; gap> GDirect := DirectProduct(GCyclic,GDihedral);; gap> h := GeneratorsOfGroup( GCyclic )[1] ; f1 gap> a := GeneratorsOfGroup( GDihedral )[1] ; f1 gap> b := GeneratorsOfGroup( GDihedral )[2] ; f2 gap> Image(Embedding(GDirect,1),h); f1 gap> Image(Embedding(GDirect,2),a); f2 gap> Image(Embedding(GDirect,2),b); f3 Hope it helps, and please do not hesitate to ask further questions. Best wishes, Alexander On 16 Jan 2007, at 16:10, Ian McLoughlin wrote: > Hi, > > I'm having a problem with creating a listing of the direct product > of two > groups. They are... > > 1) The cyclic group(C2) of order 2: < h | h^2 = 1 > and > 2) The dihedral group(D12) of order 12: < a , b | a^2 = 1 , b^6 > = 1 , ab > = ba^(-1) >. > > What I need is a listing of the elements of C2 x D12(in a list) in > the order > that I want.... > > [ 1 , b , b^2 , ... , b^5 , a , ab , ab^2 , ... , ab^5 , h , hb , > hb^2 , ... > , hb^5 , hab , hab^2 , hab^5 ]. > > When I try to use DirectProduct and the Image(Embedding(GDirect,1),b); > technique in other posts to this forum about direct products, I get an > error. What i tried was.... > > > h := GeneratorsOfGroup( GCyclic )[1] ; > a := GeneratorsOfGroup( GDihedral )[1] ; > b := GeneratorsOfGroup( GDihedral )[2] ; > > with > > GCyclic := CyclicGroup( 2 ) ; > GDihedral := DihedralGroup( 12 ) ; > > . > > Thanks, > Ian From Dursun.Bulutoglu at afit.edu Wed Jan 17 00:32:42 2007 From: Dursun.Bulutoglu at afit.edu (Bulutoglu Dursun A Civ AFIT/ENC) Date: Wed Jan 17 00:33:07 2007 Subject: [GAP Forum] Retrieving coefficients of linear equations Message-ID: <039A0DCC3D66EE4AB9AF11E119287F15035E5212@ms-afit-04.afit.edu> Dear Gap Forum, I was wondering how I can extract the coefficients of a multivariate polynomial (in my case it is a linear polynomial) and put them in a list. I wrote the code below and would like to extract the coefficients of the variables x_1,x_2,...x_10 in A8 into a list where the first element is the coefficient of x_1 the second element is the coefficient of x_2 and the last element is the constant (or the first element is the constant, the second element is the coefficient of x_1 the third element is the coefficient of x_2 and so on... Thanks in advance. Dursun. m:=10; N:=20; aa:=PolynomialRing(Rationals,[1..20]); mm:=IndeterminatesOfPolynomialRing(aa); ccf:=(2*([1..10]-5)-1); mm8:=List(ccf, x->x^8)*mm{[1..10]}; mm6:=List(ccf, x->x^6)*mm{[1..10]}; mm4:=List(ccf, x->x^4)*mm{[1..10]}; A4:=(mm4-N^2*(m-1)*(3*(m-1)-2))/(24); A6:=(mm6-N^2*(15*(m-1)*(m-2)^2+(m-1))-(360*(m-1)-960)*A4)/720; A8:=(mm8-(20160*(m-1)-80640)*A6-(5040*(m-1)^2-30240*(m-1)+48384)*A4 -N^2*(105*(m-1)^4-420*(m-1)^3+588*(m-1)^2-272*(m-1)))/40320; From anvita21 at usa.com Wed Jan 17 02:01:29 2007 From: anvita21 at usa.com (Anvita) Date: Wed Jan 17 02:01:56 2007 Subject: [GAP Forum] A question on semidirect products Message-ID: <20070117020129.E36F623F06E@ws3-4.us4.outblaze.com> Dear forum, I am trying to construct in GAP the natural semidirect product of SL(2,4) and the underlying vector space GF(4)^2 and then get hold of the normal elementary abelian 2-group *inside* the product. Here is what I get. -------------------------------------------- gap> S:=SL(2,4); SL(2,4) gap> V:=GF(4)^2; ( GF(2^2)^2 ) gap> SV:=SemidirectProduct(S,V); gap> VV:=Image(Embedding(SV,2),V);; gap> IsNormal(SV,VV); false -------------------------------------------- Why isn't VV normal in SV? Thank you Anvita -- ___________________________________________________ Search for products and services at: http://search.mail.com From hulpke at mac.com Wed Jan 17 16:52:20 2007 From: hulpke at mac.com (Alexander Hulpke) Date: Wed Jan 17 16:53:01 2007 Subject: [GAP Forum] A question on semidirect products In-Reply-To: <20070117020129.E36F623F06E@ws3-4.us4.outblaze.com> References: <20070117020129.E36F623F06E@ws3-4.us4.outblaze.com> Message-ID: Dear GAP Forum, On Jan 16, 2007, at 7:01 PM, anvita21 wrote: > I am trying to construct in GAP the natural semidirect product > of SL(2,4) and the underlying vector space GF(4)^2 and then > Why isn't VV normal in SV? Thank you for reporting this bug. The current code forms a wrong embedding if the underlying field is not a prime field. (It returns in your example GF(2)^2 and not GF(4)^2 -- thus the subgroup is not normal. This will be corrected in the next bugfix. Best wishes, Alexander Hulpke From Frank.Luebeck at math.rwth-aachen.de Thu Jan 18 08:37:42 2007 From: Frank.Luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Thu Jan 18 08:38:54 2007 Subject: [GAP Forum] Retrieving coefficients of linear equations In-Reply-To: <039A0DCC3D66EE4AB9AF11E119287F15035E5212@ms-afit-04.afit.edu> References: <039A0DCC3D66EE4AB9AF11E119287F15035E5212@ms-afit-04.afit.edu> Message-ID: <20070118083742.GA29914@math.rwth-aachen.de> Dear Dursun, dear Forum, On Tue, Jan 16, 2007 at 07:32:42PM -0500, Bulutoglu Dursun A Civ AFIT/ENC wrote: > I was wondering how I can extract the coefficients of a multivariate > polynomial (in my case it is a linear polynomial) and put them in a > list. GAP has an operation 'ExtRepPolynomialRatFun' and a function 'PolynomialByExtRep' which you can use. You find the details in the GAP online help: gap> ?The Defining Attributes of Rational Functions gap> ?ExtRepPolynomialRatFun gap> ?PolynomialByExtRep > m:=10; > N:=20; > aa:=PolynomialRing(Rationals,[1..20]); > mm:=IndeterminatesOfPolynomialRing(aa); > ccf:=(2*([1..10]-5)-1); > > mm8:=List(ccf, x->x^8)*mm{[1..10]}; > mm6:=List(ccf, x->x^6)*mm{[1..10]}; > mm4:=List(ccf, x->x^4)*mm{[1..10]}; > > A4:=(mm4-N^2*(m-1)*(3*(m-1)-2))/(24); > > A6:=(mm6-N^2*(15*(m-1)*(m-2)^2+(m-1))-(360*(m-1)-960)*A4)/720; > > A8:=(mm8-(20160*(m-1)-80640)*A6-(5040*(m-1)^2-30240*(m-1)+48384)*A4 > -N^2*(105*(m-1)^4-420*(m-1)^3+588*(m-1)^2-272*(m-1)))/40320; In this example you can use: gap> A8; 121743/896*x_1+26411/384*x_2+114125/2688*x_3+7983/896*x_4+365/2688*x_5+365/268\ 8*x_6+7983/896*x_7+114125/2688*x_8+26411/384*x_9+121743/896*x_10-266775/56 gap> cA8 := ExtRepPolynomialRatFun(A8); [ [ ], -266775/56, [ 10, 1 ], 121743/896, [ 9, 1 ], 26411/384, [ 8, 1 ], 114125/2688, [ 7, 1 ], 7983/896, [ 6, 1 ], 365/2688, [ 5, 1 ], 365/2688, [ 4, 1 ], 7983/896, [ 3, 1 ], 114125/2688, [ 2, 1 ], 26411/384, [ 1, 1 ], 121743/896 ] gap> fam := RationalFunctionsFamily(FamilyObj(1));; gap> check := PolynomialByExtRep(fam, cA8); 121743/896*x_1+26411/384*x_2+114125/2688*x_3+7983/896*x_4+365/2688*x_5+365/268\ 8*x_6+7983/896*x_7+114125/2688*x_8+26411/384*x_9+121743/896*x_10-266775/56 gap> check = A8; true With best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From ally at dcs.gla.ac.uk Mon Jan 22 14:22:44 2007 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Mon Jan 22 14:23:04 2007 Subject: [GAP Forum] Complexity questions Message-ID: <58577CAC1C0FB34DAA24FA9DC76613F101773302@ex1.ad.dcs.gla.ac.uk> Hi all I'd like to know the worst case complexity for a number of algorithms which GAP implements. Can anyone direct me to a good reference, or provide answers? - AllBlocks(G) - IsomorphicSubgroups(G,H) (I know this one is pretty bad!) - ActionHomomorphism (G,B,OnSets) (where B is a block system for G) - NormalSubgroups(G) (where G is a finite permutation group and H<=G) Also (not really a GAP question, I know) -- is there a worst-case result on how many distinct block systems a transitive group admits, given that G has degree n? Thanks Alastair From ara at zurich.csail.mit.edu Tue Jan 23 05:15:04 2007 From: ara at zurich.csail.mit.edu (Allan Adler) Date: Tue Jan 23 05:19:19 2007 Subject: [GAP Forum] standards for documenting GAP source code Message-ID: I've started reading some of the C source code for GAP 3 (yes, I know there is a more recent GAP; I'll get to it eventually) and so far I'm impressed by the excellence of the commenting of the source code. I'd just like to know whether there are any explicitly formalized standards that are for documenting the GAP source code. If so, I'd like to read them so that I can try to adopt some of them in my own programs. -- Ignorantly, Allan Adler * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. From ara at zurich.csail.mit.edu Tue Jan 23 05:25:31 2007 From: ara at zurich.csail.mit.edu (Allan Adler) Date: Tue Jan 23 05:29:20 2007 Subject: [GAP Forum] size of permutation groups Message-ID: I'm using Gap 3 on a PC running RH 7.1 Linux. Using it, I took a couple of permutations on a little over 100 objects and had no trouble, after waiting long enough, getting Gap 3 to confirm that they generated the entire symmetric group. I tried the same thing with some permutations on several hundred objects and, after 5 hours of waiting for Gap 3 to compute the order of the group, I gave up and stopped the program. What I'd like to know is the following: (1) How large can n be for me to do stuff like this with the symmetric group on n objects and expect the program to run to completion? (2) It is frustrating to wait a long time for a program to run and to have no idea how far it is getting. Is there some way to get the program to tell me a little about its progress while it is figuring out the order of the group generated by the given permutations? One other advantage of such feedback is that it might tell me something that might let me find a proof that I get the full symmetric group. I have nothing against Gap 4, I just haven't installed it yet. One reason I'm not in a hurry is that Gap 3 is doing a good job so far. Another is that I'm not absolutely sure that the programs that run on Gap 3 will also run on Gap 4, and I'm not prepared to rewrite them at the moment. But I'll get to it. Anyway, people here probably don't want to support Gap 3 any more, so it's perfectly all right with me if you pretend that I said I was using Gap 4 and answer the questions for Gap 4 instead. -- Ignorantly, Allan Adler * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. From sal at cs.st-and.ac.uk Wed Jan 24 12:30:12 2007 From: sal at cs.st-and.ac.uk (Steve Linton) Date: Wed Jan 24 12:30:35 2007 Subject: [GAP Forum] standards for documenting GAP source code In-Reply-To: References: Message-ID: <20070124123012.3d6df245@caolila> Dear GAP Forum, On Tue, 23 Jan 2007 00:15:04 -0500 Allan Adler wrote: > > I've started reading some of the C source code for GAP 3 (yes, I know > there is a more recent GAP; I'll get to it eventually) and so far I'm > impressed by the excellence of the commenting of the source code. I'd > just like to know whether there are any explicitly formalized standards > that are for documenting the GAP source code. If so, I'd like to read > them so that I can try to adopt some of them in my own programs. > The short answer is no. The source code documentation reflects the excellent practice of the initial authors of GAP 3, mainly Martin Schoenert, and was carried into the older parts of GAP 4, but, to my knowledge, was never codified. Some later additions are less well commented, but we try to follow the general pattern. Some of the commenting in the GAP4 library code (mainly .gd files) is automatically inserted into the manuals during the build process, so follows the rules of our manual formats. Steve Linton -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From kohl at mathematik.uni-stuttgart.de Wed Jan 24 13:19:08 2007 From: kohl at mathematik.uni-stuttgart.de (Stefan Kohl) Date: Wed Jan 24 13:19:32 2007 Subject: [GAP Forum] size of permutation groups In-Reply-To: References: Message-ID: <45B75CCC.5060502@mathematik.uni-stuttgart.de> Dear Forum, Allan Adler wrote: > I'm using Gap 3 on a PC running RH 7.1 Linux. Using it, I took a couple > of permutations on a little over 100 objects and had no trouble, after > waiting long enough, getting Gap 3 to confirm that they generated the > entire symmetric group. I tried the same thing with some permutations > on several hundred objects and, after 5 hours of waiting for Gap 3 to > compute the order of the group, I gave up and stopped the program. > > What I'd like to know is the following: > (1) How large can n be for me to do stuff like this with the symmetric > group on n objects and expect the program to run to completion? In GAP 4, there is an operation `IsNaturalSymmetricGroup', which does this for degrees until up into the millions. For degree 100000 and two random generators, it takes just about 3 seconds for me. There is also a similar operation `IsNaturalAlternatingGroup' which checks whether the argument is a natural alternating group. Both checks are algorithmically `easy'. The GAP implementation follows the description given in Section 10.2 of Akos Seress, Permutation group algorithms. Cambridge Tracts in Mathematics, 152. Cambridge University Press, 2003. Easy-to-check criteria for deciding whether given permutations generate the full symmetric group can also be found in John D. Dixon and Brian Mortimer, Permutation Groups, Graduate Texts in Mathematics, 163. Springer-Verlag, 1996. After having used `IsNaturalSymmetricGroup' or `IsNaturalAlternatingGroup', GAP can often choose better methods for subsequent computations with the same group. Hope this helps, Stefan Kohl --------------------------------------------------------------------------- http://www.cip.mathematik.uni-stuttgart.de/~kohlsn/ --------------------------------------------------------------------------- From ara at zurich.csail.mit.edu Thu Jan 25 12:48:57 2007 From: ara at zurich.csail.mit.edu (Allan Adler) Date: Thu Jan 25 12:49:59 2007 Subject: [GAP Forum] size of permutation groups Message-ID: Thanks for telling me about IsNaturalPermutationGroup. To try it out, I installed Gap4 and tested it on the examples I had already tried with Gap3. It did them, but no faster. The way I did it with Gap3 was to define the group g by giving it the explicit permutations of List([1..n]) that generate g and then by telling Gap to evaluate Size(g) to see whether I got n!. I decided to check the source code for IsNaturalPermutationGroup to see whether part of the algorithm involves first computing the size of the group and it appears that it does. Therefore, IsNaturalPermutationGroup can't improve on what I was already doing. I realize that there might be some misunderstanding: any subgroup h of the permutation group on n objects is a permutation group and IsNaturalPermutationGroup is intended to detect whether h is isomorphic to a permutation group on possibly fewer than n objects. Therefore, it might well be, as Stefan said, that Gap was able to decide in 3 seconds that a group of permutations on millions of objects is a natural permutation group, but that natural permutation group might have been on a much smaller number of objects than n. How long would it have taken to realize that a group on millions of objects is the full symmetric group on all those millions of objects? Here is what I think might be more useful for my purposes: let x1,...xr be permutations on List([1..n]), let g be the group they generate. I want to be able to decide whether g is the full group of n! permutations on List([1..n]). First, one needs a routine that decides whether g acts transitively on List([1..n]) without actually computing the whole group or its order. If it doesn't act transitively, it isn't the full symmetric group. If it does act transitively, let h be the subgroup of g that fixes the last number n, viewed as a group of permutations on List([1..n-1]). Then one needs a routine that will take x1,...,xr and n and which will return an explicit set of generators of h, again without computing all of h or its order. Then by induction one tests whether g is n-point transitive. This procedure also makes it possible to examine the generators of h at any stage of the induction, which might also facilitate constructing proofs when computation fails. I don't know how efficiently one can compute the generators of h. Maybe it is harder than computing the order of g. Also, I haven't looked at the source code for Size(g). For all I know, it uses a variant of the method I just described. In that case, I just have to modify the code for Size(g) to make it print out information about h as it proceeds. Of course, if it turns out not to be the full symmetric group on List([1..n]), I'll want to know what it really is, but I'll cross that bridge when I come to it. At the moment, I'm convinced that the class of examples I'm looking at will always generate the full symmetric group on List([1..n]) and I just need a way to verify it in a number of cases. -- Ignorantly, Allan Adler * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. From sal at cs.st-and.ac.uk Thu Jan 25 14:29:29 2007 From: sal at cs.st-and.ac.uk (Steve Linton) Date: Thu Jan 25 14:29:55 2007 Subject: [GAP Forum] size of permutation groups In-Reply-To: References: Message-ID: <20070125142929.72fc4e52@caolila> Dear Allan, IsNaturalSymmetricGroup checks the given group acts as Sn on the set of points it moves. All its work is basically done in the function PermgpContainsAn, which is as follows: gap> Print(PermgpContainsAn); function ( g ) local dom, n, mine, root, d, k, b, m, l, lh; dom := MovedPoints( g ); n := Length( dom ); if not IsTransitive( g, dom ) then return false; fi; if DoSnAnGiantTest( g, dom, 1 ) = true then return true; fi; if not IsPrimitive( g, dom ) then return false; fi; if n > 10 then mine := Minimum( List( Collected( Factors( n ) ), function ( i ) return i[2]; end ) ); for m in [ 1 .. mine ] do root := RootInt( n, m ); if root ^ m = n then if m > 1 then d := PermNatAnTestDetect( g, root, m, 1 ); if d <> fail then Info( InfoGroup, 3, "Detected ", root, ",", m, ",", 1, "\n" ); return d; fi; fi; for l in [ 2 .. RootInt( 2 * root, 2 ) + 1 ] do lh := Int( l / 2 ) + 1; k := 2; b := Binomial( l, k ); while b < root and k < lh do k := k + 1; b := Binomial( l, k ); od; if b = root then d := PermNatAnTestDetect( g, l, m, k ); if d <> fail then Info( InfoGroup, 3, "Detected ", l, ",", m, ",", k, "\n" ); return d; fi; fi; od; fi; od; fi; if DoSnAnGiantTest( g, dom, 2 ) = true then return true; fi; return Size( g ) >= Factorial( n ) / 2; endg First this checks transitivity, which is easily done in linear time from just the generators of g. Next it calls DoSnAnGiantTest which is a randomized algorithm that searches for certain configurations of elements which are common in Sn or An and suffice to prove that any transitive group containing them must be Sn or An in natural action. If that fails, it checks for primitivity, which takes worst-case quadratic time. If the group is not primitive it is not Sn or An. I'm not sure what the next group of tests are, although they do appear to involve iterative computation of point stabilizers. If the group passes these, the randomized algorithm is called again, to try harder in case we were just unlucky and only as a very last resort is the size computed. On my laptop this took 12 seconds for two random permutations of a million points. Steve On Thu, 25 Jan 2007 07:48:57 -0500 Allan Adler wrote: > > Thanks for telling me about IsNaturalPermutationGroup. To try it out, > I installed Gap4 and tested it on the examples I had already tried with > Gap3. It did them, but no faster. The way I did it with Gap3 was to > define the group g by giving it the explicit permutations of List([1..n]) > that generate g and then by telling Gap to evaluate Size(g) to see whether > I got n!. I decided to check the source code for IsNaturalPermutationGroup > to see whether part of the algorithm involves first computing the size of > the group and it appears that it does. Therefore, IsNaturalPermutationGroup > can't improve on what I was already doing. > > I realize that there might be some misunderstanding: any subgroup h of the > permutation group on n objects is a permutation group and > IsNaturalPermutationGroup is intended to detect whether h is isomorphic > to a permutation group on possibly fewer than n objects. Therefore, it might > well be, as Stefan said, that Gap was able to decide in 3 seconds that a > group of permutations on millions of objects is a natural permutation group, > but that natural permutation group might have been on a much smaller number > of objects than n. How long would it have taken to realize that a group > on millions of objects is the full symmetric group on all those millions > of objects? > > Here is what I think might be more useful for my purposes: let x1,...xr be > permutations on List([1..n]), let g be the group they generate. I want to be > able to decide whether g is the full group of n! permutations on List([1..n]). > First, one needs a routine that decides whether g acts transitively on > List([1..n]) without actually computing the whole group or its order. If it > doesn't act transitively, it isn't the full symmetric group. If it does act > transitively, let h be the subgroup of g that fixes the last number n, > viewed as a group of permutations on List([1..n-1]). Then one needs a routine > that will take x1,...,xr and n and which will return an explicit set of > generators of h, again without computing all of h or its order. Then by > induction one tests whether g is n-point transitive. This procedure also > makes it possible to examine the generators of h at any stage of the > induction, which might also facilitate constructing proofs when > computation fails. > > I don't know how efficiently one can compute the generators of h. Maybe it > is harder than computing the order of g. Also, I haven't looked at the > source code for Size(g). For all I know, it uses a variant of the method > I just described. In that case, I just have to modify the code for Size(g) > to make it print out information about h as it proceeds. > > Of course, if it turns out not to be the full symmetric group on List([1..n]), > I'll want to know what it really is, but I'll cross that bridge when I come > to it. At the moment, I'm convinced that the class of examples I'm looking at > will always generate the full symmetric group on List([1..n]) and I just > need a way to verify it in a number of cases. > -- > Ignorantly, > Allan Adler > * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and > * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From ara at zurich.csail.mit.edu Thu Jan 25 15:00:53 2007 From: ara at zurich.csail.mit.edu (Allan Adler) Date: Thu Jan 25 15:01:27 2007 Subject: [GAP Forum] size of permutation groups Message-ID: Maybe I should say what my examples are. In section 1.3.3 of Knuth's Art of Computer programming, Knuth mentions an unusual correspondence. One takes a permutation p on n letters, as a list of n values, the i-th value being p(i). E.g., consider 1435276. This has the cycle decomposition (1)(245)(3)(67). We rearrange the cycle decomposition so that each cycle begins with its smallest element and so that the cycles are listed in decreasing order of their first elements: (67)(3)(245)(1). Knuth then observes that one can safely remove the parentheses, since one can figure out where they were: 6732451. Furthermore, without the parentheses, it describes another permutation. So, basically, Knuth has defined a bijection from the symmetric group on n objects to itself. Denote that bijection K. I computed its orbits for a few values of n. On the other hand, let * denote the bijection of the symmetric group to itself which sends each permutation to its inverse. There are other nice bijections to play with, but I'm just starting with K and *. For n=3, K and * generate a group of order 72 on 6 = 3! objects. For n=4 and n=5 they generate the full symmetric group of order n!! on n! objects. It is natural to speculate that this holds for all n > 3. I was computing examples and couldn't compute past n=5. I wrote K and * as permutations on List([1..Factorial(n)]) using a C program I had written. Then I fed them to Gap3. Maybe it is convenient to work directly in Gap. Anyway, if someone would like to compute more examples, I'd be interested in their results. I've written to Knuth to see if he has a reference for K. I've never seen it before. Maybe my speculation above is already someone's theorem? Steve Linton wrote: >On my laptop this took 12 seconds for two random permutations of a million >points. If your laptop can handle Group(K,*) for n up to 9 or 10, maybe I should offer to buy your laptop. :) -- Ignorantly, Allan Adler * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. From dima at ntu.edu.sg Thu Jan 25 15:25:12 2007 From: dima at ntu.edu.sg (Dima Pasechnik) Date: Thu Jan 25 15:25:33 2007 Subject: [GAP Forum] size of permutation groups In-Reply-To: References: Message-ID: <1169738712.5584.20.camel@localhost> Alan, By far the fastest practical way to check if you got S_n is to find few (pseudo)random elements, and compute their orders. When doing this, it's important not to trigger a computation of the strong stab. chain. Here is a snippet from my old GAP files : # q is a group gprimes:=function(q) local ra, i; ra:=[]; for i in [1..500] do ra:=Union(FactorsInt(Order(PseudoRandom(q))),ra); od; return ra; end; Roughly speaking, the primes occurring will provide a fingerprint matching S_n. I can't recall who invented this simple trick. HTH, Dmitrii From jack at ms.uky.edu Thu Jan 25 16:23:17 2007 From: jack at ms.uky.edu (Jack Schmidt) Date: Thu Jan 25 16:23:39 2007 Subject: [GAP Forum] size of permutation groups In-Reply-To: References: Message-ID: <45B8D975.20608@ms.uky.edu> You should have no trouble with n=5,6,7,8,9. Here is some code which constructs the permutations K and * on n! and checks if they generate the symmetric group of size (n!)!. The code below runs in about one minute. K:=function(perm,dom) return PermList(Concatenation(Reversed(Cycles(perm,dom)))); end;; for n in [3..9] do Sn:=AsSet(SymmetricGroup(n)); Kn:=PermListList(Sn,List(Sn,p->K(p,[1..n]))); In:=PermListList(Sn,List(Sn,INV)); Hn:=Group(Kn,In); Print(n,": ",IsNaturalSymmetricGroup(Hn),"\n"); od; Outputs: 3: false 4: true 5: true 6: false 7: false 8: false 9: false n=10 is also false, but took more in the 5 minute range. 3-8 is a few seconds, and 3-9 is about a minute. These are on an 1.5ghz pc. Allan Adler wrote: > Maybe I should say what my examples are. In section 1.3.3 of Knuth's > Art of Computer programming, Knuth mentions an unusual correspondence. > One takes a permutation p on n letters, as a list of n values, the i-th > value being p(i). E.g., consider 1435276. This has the cycle decomposition > (1)(245)(3)(67). We rearrange the cycle decomposition so that each cycle > begins with its smallest element and so that the cycles are listed in > decreasing order of their first elements: (67)(3)(245)(1). Knuth then > observes that one can safely remove the parentheses, since one can figure > out where they were: 6732451. Furthermore, without the parentheses, it > describes another permutation. So, basically, Knuth has defined a > bijection from the symmetric group on n objects to itself. Denote > that bijection K. I computed its orbits for a few values of n. On the > other hand, let * denote the bijection of the symmetric group to itself > which sends each permutation to its inverse. There are other nice > bijections to play with, but I'm just starting with K and *. For n=3, > K and * generate a group of order 72 on 6 = 3! objects. For n=4 and n=5 > they generate the full symmetric group of order n!! on n! objects. It is > natural to speculate that this holds for all n > 3. I was computing > examples and couldn't compute past n=5. > > I wrote K and * as permutations on List([1..Factorial(n)]) using a > C program I had written. Then I fed them to Gap3. Maybe it is convenient > to work directly in Gap. Anyway, if someone would like to compute more > examples, I'd be interested in their results. > > I've written to Knuth to see if he has a reference for K. I've never seen > it before. Maybe my speculation above is already someone's theorem? > > Steve Linton wrote: >> On my laptop this took 12 seconds for two random permutations of a million >> points. > > If your laptop can handle Group(K,*) for n up to 9 or 10, maybe I should > offer to buy your laptop. :) From ara at zurich.csail.mit.edu Sun Jan 28 01:12:20 2007 From: ara at zurich.csail.mit.edu (Allan Adler) Date: Sun Jan 28 01:13:00 2007 Subject: [GAP Forum] size of permutation groups Message-ID: Jack Schmidt wrote: >You should have no trouble with n=5,6,7,8,9. Here is some code which >constructs the permutations K and * on n! and checks if they generate >the symmetric group of size (n!)!. The code below runs in about one minute. [snip] >Outputs: >3: false >4: true >5: true >6: false >7: false >8: false >9: false >n=10 is also false, but took more in the 5 minute range. 3-8 is a few >seconds, and 3-9 is about a minute. These are on an 1.5ghz pc. Thanks for computing this. The most powerful machine I have is an old HP Pavilion with 192MB ram (+400 MB swap space) and running at about 530 MHz. I ran your code and, for n=3,4,5, it ran in about the same time that my code had run. For n=6, I let it run for about 8 hours and, when I checked on it, the program had crashed for lack of system resources. I did, however, run Dima Pasechnik's code and it quickly indicated that for n=6 one probably doesn't get the full symmetric group. At any rate, now I'd like to know what groups one does get, but it is pretty clear that I'm not equipped to work on it, for lack of suitable computer facilities, and I can't afford to buy better ones. So, if someone does figure out more about these groups, I hope they will let me know about them. -- Allan Adler * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. From jack at ms.uky.edu Sun Jan 28 03:12:00 2007 From: jack at ms.uky.edu (Jack Schmidt) Date: Sun Jan 28 03:12:33 2007 Subject: [GAP Forum] size of permutation groups In-Reply-To: References: Message-ID: <45BC1480.1080403@ms.uky.edu> Just a quick note: Stephen Kohl pointed out that the groups are alternating groups for n=6..9, and IsNaturalAlternatingGroup shows they are full alternating groups on n! points for n=6..10. The probability of two random permutations generating a permutation group other than An or Sn is quite low, so it is not too surprising to get such a large group. Allan Adler wrote: > At any rate, now I'd like to know what groups one does get, but it is > pretty clear that I'm not equipped to work on it, for lack of suitable > computer facilities, and I can't afford to buy better ones. So, if someone > does figure out more about these groups, I hope they will let me know > about them. From dn2447 at yahoo.com Sun Jan 28 19:23:19 2007 From: dn2447 at yahoo.com (D N) Date: Sun Jan 28 19:23:48 2007 Subject: [GAP Forum] Characters Message-ID: <443386.41664.qm@web37401.mail.mud.yahoo.com> Dear GAP Forum, I hope you will excuse me for posting the following non-GAP-related question: Let G be a finite group and let V be a complex finite dimensional representation of G with character \chi. Let Ker(\chi) = {g \in G | \chi(g) = deg(\chi)} and let |Ker(\chi)| = {g \in G | |\chi(g)| = deg(\chi)}. It is well know that the above two sets are equal to the sets {g \in G | g acts as identity on V}, {g \in G | g acts by a scalar on V}, respectively. Now let H be a normal subgroup of G. Then the set of irreducible character \chi of G such that H < Ker(\chi) is in one-to-one correspondence with irreducible characters of the quotient group G/H. My question is: what can be said about the set of irreducible characters \chi of G such that H < |Ker(\chi)|? What is H is abelian? Best regards, D. Naidu --------------------------------- Want to start your own business? Learn how on Yahoo! Small Business. From mfrincu at info.uvt.ro Mon Jan 29 13:14:19 2007 From: mfrincu at info.uvt.ro (mfrincu@info.uvt.ro) Date: Mon Jan 29 13:15:44 2007 Subject: [GAP Forum] Displaying the list of GAP available functions Message-ID: <20070129151419.26a3uj774sgc80k8@webmail.info.uvt.ro> Hello, I've been trying to find an answer to a problem for some time now, but I can't seem to find the answer. The problem is that I have to obtain the list of available functions in GAP, from within GAP.By available functions I mean all the functions loaded be default when GAP is started (default and defined in user packages with auto-load). Also a list with all the packages would be ok. Could anyone help me in this matter? Thanks in advance, Marc Frincu. From Frank.Luebeck at math.rwth-aachen.de Mon Jan 29 15:45:58 2007 From: Frank.Luebeck at math.rwth-aachen.de (Frank =?iso-8859-1?Q?L=FCbeck?=) Date: Mon Jan 29 15:46:18 2007 Subject: [GAP Forum] Displaying the list of GAP available functions In-Reply-To: <20070129151419.26a3uj774sgc80k8@webmail.info.uvt.ro> References: <20070129151419.26a3uj774sgc80k8@webmail.info.uvt.ro> Message-ID: <20070129154558.GE15717@math.rwth-aachen.de> On Mon, Jan 29, 2007 at 03:14:19PM +0200, mfrincu@info.uvt.ro wrote: > I've been trying to find an answer to a problem for some time now, but > I can't seem to find the answer. > The problem is that I have to obtain the list of available functions > in GAP, from within GAP.By available functions I mean all the > functions loaded be default when GAP is started (default and defined > in user packages with auto-load). Also a list with all the packages > would be ok. > Could anyone help me in this matter? Dear Marc, dear Forum, See the section ?More About Global Variables in the GAP online help. For example: gap> NamesUserGVars(); gives you a list of names of global variables created after loading the library. Or gap> Filtered(NamesSystemGVars(), > str-> IsBoundGlobal(str) and IsFunction(ValueGlobal(str))); gives you the names of global variables bound to functions during loading of the library. Currently, you can get the names of packages (normalized to lower case) found in the package paths with: gap> RecFields(GAPInfo.PackagesInfo); But this is not (yet?) documented. With best regards, Frank -- /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// \\\ 52062 Aachen, Germany \\\ /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ From mfrincu at info.uvt.ro Tue Jan 30 12:25:30 2007 From: mfrincu at info.uvt.ro (mfrincu@info.uvt.ro) Date: Tue Jan 30 12:26:34 2007 Subject: [GAP Forum] Displaying the list of GAP available functions In-Reply-To: <20070129154558.GE15717@math.rwth-aachen.de> References: <20070129151419.26a3uj774sgc80k8@webmail.info.uvt.ro> <20070129154558.GE15717@math.rwth-aachen.de> Message-ID: <20070130142530.jd3fu0i3vo048k04@webmail.info.uvt.ro> Thanks for your answers. It works but I have one more problem. Not all the results (when using: Filtered(NamesSystemGVars(), str-> IsBoundGlobal(str) and IsFunction(ValueGlobal(str)));) are functions. I also get results like []:=, or {}:= or operations which I do not need. Is there any way to further filter the results? I tried to find an answer and for that I transmited to GAP each element in the returned list : gap>element[1]; and if it was a function I get a response like: function(args...) ... end; Otherwise I get : operation... or other messages. Knowing this I thought that it might be best to check for this feedbacl message in a function... but I couldn't get it to work. The thing is I would need this to be done in a function (I need an automatic mechanism to go through all the results and choose only function). Sorry if I ask silly questions but I am quite new in Gap programming. Best regards, Marc Frincu. Quoting Frank L?beck : > On Mon, Jan 29, 2007 at 03:14:19PM +0200, mfrincu@info.uvt.ro wrote: >> I've been trying to find an answer to a problem for some time now, but >> I can't seem to find the answer. >> The problem is that I have to obtain the list of available functions >> in GAP, from within GAP.By available functions I mean all the >> functions loaded be default when GAP is started (default and defined >> in user packages with auto-load). Also a list with all the packages >> would be ok. >> Could anyone help me in this matter? > > Dear Marc, dear Forum, > > See the section > > ?More About Global Variables > > in the GAP online help. > > For example: > > gap> NamesUserGVars(); > > gives you a list of names of global variables created after loading > the library. Or > > gap> Filtered(NamesSystemGVars(), >> str-> IsBoundGlobal(str) and IsFunction(ValueGlobal(str))); > > gives you the names of global variables bound to functions during loading > of the library. > > Currently, you can get the names of packages (normalized to lower case) found > in the package paths with: > > gap> RecFields(GAPInfo.PackagesInfo); > > But this is not (yet?) documented. > > With best regards, > > Frank > > -- > /// Dr. Frank L?beck, Lehrstuhl D f?r Mathematik, Templergraben 64, /// > \\\ 52062 Aachen, Germany \\\ > /// E-mail: Frank.Luebeck@Math.RWTH-Aachen.De /// > \\\ WWW: http://www.math.rwth-aachen.de/~Frank.Luebeck/ \\\ > > From mfrincu at info.uvt.ro Tue Jan 30 16:18:56 2007 From: mfrincu at info.uvt.ro (mfrincu@info.uvt.ro) Date: Tue Jan 30 16:19:55 2007 Subject: [GAP Forum] Displaying the list of GAP available functions In-Reply-To: <1ff637850701300555t7a6ebfb1m95f5c950ef10d0bf@mail.gmail.com> References: <20070129151419.26a3uj774sgc80k8@webmail.info.uvt.ro> <20070129154558.GE15717@math.rwth-aachen.de> <20070130142530.jd3fu0i3vo048k04@webmail.info.uvt.ro> <1ff637850701300555t7a6ebfb1m95f5c950ef10d0bf@mail.gmail.com> Message-ID: <20070130181856.rfpjpszscgw4wwc0@webmail.info.uvt.ro> Thank you all for the replies. They have been very useful in solving my problem. I only manage to make it work with "and not IsOperation(ValueGlobal(str))". With String(ValueGlobal(str)){[1..8]}= "function" I get a Error, no method defined and when I look with ShowArguments() I see it comes from [] :( One more thing and I have no more questions: Is there a way to find out the functions in a certain package? I know that there is a way to display a package but a way to see what functions it contains? (Perhaps a raw method of A:=the function list when gap is started with no package; B:=the function list after the package is loaded; C:=B-A ???) Best regards, Marc Frincu Quoting Laurent Bartholdi : > On 1/30/07, mfrincu@info.uvt.ro wrote: >> Thanks for your answers. >> It works but I have one more problem. Not all the results (when using: >> Filtered(NamesSystemGVars(), str-> IsBoundGlobal(str) and >> IsFunction(ValueGlobal(str)));) are functions. I also get results like >> []:=, or {}:= or operations which I do not need. Is there any way to >> further filter the results? > > Well, it seems you replied to your own question :) > > Filtered(NamesSystemGVars(), str-> IsBoundGlobal(str) and > IsFunction(ValueGlobal(str)) and not IsOperation(ValueGlobal(str))); > -- > Laurent Bartholdi \ laurent.bartholdigmailcom > EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 > Station 8 \ Secr?taire: +41 21-6935501 > CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 From mfrincu at info.uvt.ro Tue Jan 30 20:46:25 2007 From: mfrincu at info.uvt.ro (mfrincu@info.uvt.ro) Date: Tue Jan 30 20:47:29 2007 Subject: [GAP Forum] Displaying the list of GAP available functions In-Reply-To: <1ff637850701301021t4c9d054fodea8c898383fe13f@mail.gmail.com> References: <20070129151419.26a3uj774sgc80k8@webmail.info.uvt.ro> <20070129154558.GE15717@math.rwth-aachen.de> <20070130142530.jd3fu0i3vo048k04@webmail.info.uvt.ro> <1ff637850701300555t7a6ebfb1m95f5c950ef10d0bf@mail.gmail.com> <20070130181856.rfpjpszscgw4wwc0@webmail.info.uvt.ro> <1ff637850701301021t4c9d054fodea8c898383fe13f@mail.gmail.com> Message-ID: <20070130224625.083ldb55wwc4808s@webmail.info.uvt.ro> Basicaly what I'm trying to do is this: Expose all the functions/operations(I thought again about it and I think they should also be included) in a registry for example by name and arguments and the package it belongs to. Then from a webservice that acts as a gap wrapper i want to be able to call a certain function with certain parameters. Functions can be added later, so I goes that from time to time a program will check for new appearences. Basically this is it. For now I have the service wrapper and i want to get the available functions, their arguments and parent package. Regards. Marc Frincu. Quoting Laurent Bartholdi : >> One more thing and I have no more questions: > > Don't worry! > >> Is there a way to find out the functions in a certain package? I know >> that there is a way to display a package but a way to see what >> functions it contains? (Perhaps a raw method of A:=the function list >> when gap is started with no package; B:=the function list after the >> package is loaded; C:=B-A ???) > > Yes, that should work. You may also assume that the package installs > functions via DeclareGlobalFunction and InstallGlobalFunction. Then > either use 'grep' to scan through the code, or use > old_DeclareGlobalFunction := DeclareGlobalFunction; > MakeReadWriteGlobal("DeclareGlobalFunction"); > funcs := []; > DeclareGlobalFunction := function(arg) Add(funcs,arg[1]); > CallFuncList(old_DeclareGlobalFunction,arg); end; > > which redefine DeclareGlobalFunction to first store its first argument > in a list "funcs", and then call the original command. > > it seems strange that you want a list of functions without using the > documentation. I assume it's because you want to automate some process > and don't trust the documentation to be up-to-date or easily useable > from within a program. If you're a bit more specific with what you > want to do, we can help you better. > > best, laurent >> >> Best regards, >> Marc Frincu >> >> Quoting Laurent Bartholdi : >> >>> On 1/30/07, mfrincu@info.uvt.ro wrote: >>>> Thanks for your answers. >>>> It works but I have one more problem. Not all the results (when using: >>>> Filtered(NamesSystemGVars(), str-> IsBoundGlobal(str) and >>>> IsFunction(ValueGlobal(str)));) are functions. I also get results like >>>> []:=, or {}:= or operations which I do not need. Is there any way to >>>> further filter the results? >>> >>> Well, it seems you replied to your own question :) >>> >>> Filtered(NamesSystemGVars(), str-> IsBoundGlobal(str) and >>> IsFunction(ValueGlobal(str)) and not IsOperation(ValueGlobal(str))); >>> -- >>> Laurent Bartholdi \ laurent.bartholdigmailcom >>> EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 >>> Station 8 \ Secr?taire: +41 21-6935501 >>> CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 >> >> >> >> > > > -- > Laurent Bartholdi \ laurent.bartholdigmailcom > EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 > Station 8 \ Secr?taire: +41 21-6935501 > CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 From ara at zurich.csail.mit.edu Wed Jan 31 01:40:38 2007 From: ara at zurich.csail.mit.edu (Allan Adler) Date: Wed Jan 31 01:41:14 2007 Subject: [GAP Forum] *A *F *V *T *E Message-ID: As I mentioned in my posting, "standards for documenting gap source code", there are some emacs commands at the end of some of the source files of Gap 3. Their effect is to allow the person reading the file the option of only reading certain lines highlighted with one the incipits listed in the subject line of this message. Here is the code below. I posted to gnu.emacs.help and learned about how this works. What I don't know is what Martin Schoenert used these incipits *A *F *V *T *E to signify. Each presumably tells something about the line it begins in the source code. If you know what each means, please let me know. Thanks. /*************************************************** *E Emacs ................... local emacs variables ** ** Local Variables: ** mode: outline ** outline-regexp: "*A\\|*F\\|*V\\|*T\\|*E" ** fill-column: 73 ** fill-prefix: "** " ** eval: (local-set-key "\t" 'c-indent-command') ** eval: (local-set-key ";" 'electric-c-semi) ** eval: (local-set-key "{" 'electric-c-brace) ** eval: (local-set-key "}" 'electric-c-brace) ** eval: (hide-body) ** End: */ -- Ignorantly, Allan Adler * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. From sal at cs.st-and.ac.uk Wed Jan 31 08:04:34 2007 From: sal at cs.st-and.ac.uk (Steve Linton) Date: Wed Jan 31 08:05:24 2007 Subject: [GAP Forum] *A *F *V *T *E In-Reply-To: References: Message-ID: <20070131080434.4b7e3b51@caolila.cs.st-andrews.ac.uk> These lines are part of the standard block comments that Martin used before each "thing" in the source. Essentially they document what type of thing it is and the rest of the line has outline information on it. *V -- variable *F -- function *E -- end of file *T seems to be used both for declaring types (in the C sense) and for TODO notes *A is unused. Steve On Tue, 30 Jan 2007 20:40:38 -0500 Allan Adler wrote: > > As I mentioned in my posting, "standards for documenting gap source code", > there are some emacs commands at the end of some of the source files of > Gap 3. Their effect is to allow the person reading the file the option > of only reading certain lines highlighted with one the incipits listed > in the subject line of this message. Here is the code below. I posted > to gnu.emacs.help and learned about how this works. What I don't know > is what Martin Schoenert used these incipits *A *F *V *T *E to signify. > Each presumably tells something about the line it begins in the source code. > If you know what each means, please let me know. Thanks. > > /*************************************************** > *E Emacs ................... local emacs variables > ** > ** Local Variables: > ** mode: outline > ** outline-regexp: "*A\\|*F\\|*V\\|*T\\|*E" > ** fill-column: 73 > ** fill-prefix: "** " > ** eval: (local-set-key "\t" 'c-indent-command') > ** eval: (local-set-key ";" 'electric-c-semi) > ** eval: (local-set-key "{" 'electric-c-brace) > ** eval: (local-set-key "}" 'electric-c-brace) > ** eval: (hide-body) > ** End: > */ > > -- > Ignorantly, > Allan Adler > * Disclaimer: I am a guest and *not* a member of the MIT CSAIL. My actions and > * comments do not reflect in any way on MIT. Also, I am nowhere near Boston. > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From thomas.breuer at math.rwth-aachen.de Wed Jan 31 09:43:33 2007 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed Jan 31 09:43:47 2007 Subject: [GAP Forum] *A *F *V *T *E In-Reply-To: References: Message-ID: <20070131094333.GA3030@math.rwth-aachen.de> Dear GAP Forum, Allan Adler wrote > As I mentioned in my posting, "standards for documenting gap source code", > there are some emacs commands at the end of some of the source files of > Gap 3. Their effect is to allow the person reading the file the option > of only reading certain lines highlighted with one the incipits listed > in the subject line of this message. Here is the code below. I posted > to gnu.emacs.help and learned about how this works. What I don't know > is what Martin Schoenert used these incipits *A *F *V *T *E to signify. > Each presumably tells something about the line it begins in the source code. > If you know what each means, please let me know. Thanks. > > /*************************************************** > *E Emacs ................... local emacs variables > ** > ** Local Variables: > ** mode: outline > ** outline-regexp: "*A\\|*F\\|*V\\|*T\\|*E" > ** fill-column: 73 > ** fill-prefix: "** " > ** eval: (local-set-key "\t" 'c-indent-command') > ** eval: (local-set-key ";" 'electric-c-semi) > ** eval: (local-set-key "{" 'electric-c-brace) > ** eval: (local-set-key "}" 'electric-c-brace) > ** eval: (hide-body) > ** End: > */ The abovementioned incipits occur in lines showing definitions of variables. A, F, and V stand for attribute, (plain) function, and global variable (not being a function). T is common for ``To do'' comments but apparently is used also for some type objects in the C files. In GAP library files, the analogous incipits #A, #F, #V, #T occur, and additionally #P, #O, #C, #R, and #M, see section ``Manual Conventions'' in the GAP Reference Manual. Concerning the *E (and #E) incipits, I do NOT recommend to put formatting instructions for Emacs (or for any other editor) into data files: Eventually it is a matter of personal taste how one wants to look at a file, so not the file should control the editor but the editor configuration should contains such rules. Whenever I change a GAP file and notice that such Emacs instructions are contained, I throw them out. Probably this should be done consistently before the next release of GAP. All the best, Thomas From thomas.breuer at math.rwth-aachen.de Wed Jan 31 10:46:26 2007 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed Jan 31 10:48:04 2007 Subject: [GAP Forum] Characters In-Reply-To: <443386.41664.qm@web37401.mail.mud.yahoo.com> References: <443386.41664.qm@web37401.mail.mud.yahoo.com> Message-ID: <20070131104626.GB3030@math.rwth-aachen.de> Dear GAP Forum, D. Naidu wrote > I hope you will excuse me for posting the following non-GAP-related question: > > Let G be a finite group and let V be a complex finite dimensional representation of G with character \chi. > > Let Ker(\chi) = {g \in G | \chi(g) = deg(\chi)} and let > |Ker(\chi)| = {g \in G | |\chi(g)| = deg(\chi)}. > > It is well know that the above two sets are equal to the sets > {g \in G | g acts as identity on V}, > {g \in G | g acts by a scalar on V}, respectively. > > Now let H be a normal subgroup of G. > > Then the set of irreducible character \chi of G such that H < Ker(\chi) > is in one-to-one correspondence with irreducible characters of the > quotient group G/H. > > My question is: what can be said about the set of irreducible characters > \chi of G such that H < |Ker(\chi)|? > What is H is abelian? The set $\{ g \in G | |\chi(g)| = \chi(1) \}$ is usually called the centre of $\chi$, and denoted by $Z(\chi)$. For a normal subgroup $H$ of $G$, we have the equality \[ \{ \chi \in Irr(G) | H \subseteq Z(\chi) \} = \{ \chi \in Irr(G) | [G,H] \subseteq \ker(\chi) \} , \] where $[A,B]$ denotes the commutator subgroup of the groups $A$, and $B$, i.e., the group generated by the commutators $a^{-1} b^{-1} a b$ with $a \in A, b \in B$. So the set of characters in question is in bijection with the irreducible characters of $G/[G,H]$, which is the largest central extension of $G/H$ that occurs in $G$, i.e., the largest factor group $F$ of $G$ such that the kernel of the natural epimorphism from $F$ onto $G/H$ is central in $F$. All the best, Thomas From ras_rezaei at yahoo.com Fri Feb 2 21:29:50 2007 From: ras_rezaei at yahoo.com (rashid rezaei) Date: Fri Feb 2 21:30:26 2007 Subject: [GAP Forum] question Message-ID: <13397.30090.qm@web36814.mail.mud.yahoo.com> Dear gap forum, I have two questions as following: Let G be a compact group (i) Let f(x)= \mu(C_G(x)) where \mu is Haar measure. Is f a continuous function? (ii) Let f(x)= \chi_a(x,y) where y \in G and a={(x,y) \in G^2 | xy=yx }. Is f a continuous function? I will be more grateful for any known results or references. Best regards, R. Rezaei Send instant messages to your online friends http://uk.messenger.yahoo.com From sal at cs.st-and.ac.uk Sun Feb 4 20:30:21 2007 From: sal at cs.st-and.ac.uk (Steve Linton) Date: Sun Feb 4 20:30:52 2007 Subject: [GAP Forum] Complexity questions In-Reply-To: <58577CAC1C0FB34DAA24FA9DC76613F101773302@ex1.ad.dcs.gla.ac.uk> References: <58577CAC1C0FB34DAA24FA9DC76613F101773302@ex1.ad.dcs.gla.ac.uk> Message-ID: <20070204203021.33024f8e@caolila> Dear GAP Forum, On Mon, 22 Jan 2007 14:22:44 -0000 "Alastair Donaldson" wrote with some complexity questions. I have some partial answers: > > I'd like to know the worst case complexity for a number of algorithms which GAP implements. Can anyone direct me to a good reference, or provide answers? > > - AllBlocks(G) The time to find all minimal block systems is O(n^2 log*(n)) (where log* is the inverse Ackerman function). There are nasty cases where the number of non-minimal block systems is huge, though. For instance the regular representation of the elementary abelian group of order 64 has 2823 block systems. > - IsomorphicSubgroups(G,H) (I know this one is pretty bad!) A trivial bound is |H|^rank(G) (rank G is size of shortest generating set of G). I don't know if anything better can be said in general. > - ActionHomomorphism (G,B,OnSets) (where B is a block system for G) This takes essentially no time (maybe O(n)). Computing the image of an element of G under the homomorphism takes O(|B|). > - NormalSubgroups(G) > Again the elementary abelian group is a bad case with huge numbers of normal subgroups. I don't know if anything sensible can be said in other cases. > (where G is a finite permutation group and H<=G) > > Also (not really a GAP question, I know) -- is there a worst-case result on how many distinct block systems a transitive group admits, given that G has degree n? > The elementary abelian group of order 2^r acting on 2^r points has a block system for every proper subspace of GF(2)^r. This is sequence A006116 in the On-line encyclopedia of integer sequences. I don't have a formula for the growth, but it's faster than exponential. Steve -- Steve Linton School of Computer Science & Centre for Interdisciplinary Research in Computational Algebra University of St Andrews Tel +44 (1334) 463269 http://www.cs.st-and.ac.uk/~sal Fax +44 (1334) 463278 From joachim.neubueser at math.rwth-aachen.de Tue Feb 6 10:58:11 2007 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Tue Feb 6 10:58:27 2007 Subject: [GAP Forum] question In-Reply-To: <13397.30090.qm@web36814.mail.mud.yahoo.com> References: <13397.30090.qm@web36814.mail.mud.yahoo.com> Message-ID: <20070206105811.GA14853@math.rwth-aachen.de> Dear Dr. Rezaei On Fri, Feb 02, 2007 at 09:29:50PM +0000, you wrote : > Dear gap forum, > > I have two questions as following: > Let G be a compact group > (i) Let f(x)= \mu(C_G(x)) where \mu is Haar measure. Is f a > continuous function? > (ii) Let f(x)= \chi_a(x,y) where y \in G and a={(x,y) \in G^2 | xy=yx }. > Is f a continuous function? > I will be more grateful for any known results or references. > Best regards, > R. Rezaei Please note that the GAP Forum is meant for questions related to GAP, or at least problems that could be tackled with GAP. Yours however is a purely theoretical question about topological groups, so the GAP Forum is definitely not the right place for it. Please read the page http://www.gap-system.org/Contacts/Forum/forum.html of the GAP website where this is clearly stated and where the following text gives suggestions for better places (with links to these) for your question: ---------------------------------------------------------------------- Other Fora For theoretical questions on groups and related structures we like to point to the Group-Pub-forum in which such questions are answered and discussed by a large community of experts. We provide links to further mathematical fora and to other addresses that we hope to be useful for mathematicians on the page 'To Outside World'. ---------------------------------------------------------------------- Kind regards Joachim Neubueser ------------------------------------- Prof. J.Neubueser LDfM, RWTH Aachen Germany From fridmam at macs.biu.ac.il Sun Feb 11 14:03:22 2007 From: fridmam at macs.biu.ac.il (Michael Fridman) Date: Sun Feb 11 14:03:55 2007 Subject: [GAP Forum] Reidemeister-Schreier Message-ID: Hello everyone! I have a question about the Reidemeister-Schreier method. I know that the function PresentationSubgroupRrs( G, cosettable ) requires a presentation of the group G and the coset-table. I saw that the coset-table is given by a table of permutations. However, in my case, I have only the explicit representatives of the subgroup H in G (so, I have only a representation of G and set of representatives of G/H, and I need to find a presentation of H). is there a function that can covert these representatives to permutations? Or is there another version of PresentationSubgroupRrs? Thanks in advance Michael Friedman From aodabas at ogu.edu.tr Mon Feb 19 12:22:00 2007 From: aodabas at ogu.edu.tr (=?windows-1254?Q?Alper_Odaba=FE?=) Date: Mon Feb 19 12:19:15 2007 Subject: [Gap Forum] Group Hom. and Algebra Hom. Message-ID: <002801c75420$8e3baa30$a8838cc1@ogu229> Let f:A -> A homomorphism with f(a)=0, g:A -> {0} with g(a)=0 and h:{0} -> A with h(0)=0. (A is a Algebra ) there is a error (algebra case) with these functions in GAP 4.4.7. ALGEBRA CASE ---- not working gap> A:=GroupRing(GF(3),CyclicGroup(2)); gap> gA:=GeneratorsOfAlgebra(A); [ (Z(3)^0)* of ..., (Z(3)^0)*f1 ] gap> zA:=Zero(A);; gap> im:=[zA,zA];; gap> f:=AlgebraHomomorphismByImages(A,A,gA,im);; gap> IsSurjective(f); false gap> IsInjective(f); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `SemiEchelonMatTransformation' on 1 argu\ ments called from SemiEchelonMatTransformation( List( mapi[2], function ( x ) return Coefficients( B, x ); end ) ) called from MakePreImagesInfoLinearGeneralMappingByImages( map ); called from IsInjective( AsLeftModuleGeneralMappingByImages( map ) ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> gap> B:=Image(f); gap> g:=AlgebraHomomorphismByImages(A,B,gA,im);; gap> IsSurjective(g); true gap> IsInjective(g); same error with above gap> gB:=GeneratorsOfAlgebra(B); [ of ..., of ... ] gap> h:=AlgebraHomomorphismByImages(B,A,gB,gB); Error, no method found! For debugging hints type ?Recovery from NoMethodFound Error, no 1st choice method found for `SemiEchelonMatTransformation' on 1 argu\ ments called from SemiEchelonMatTransformation( List( mapi[1], function ( x ) return Coefficients( B, x ); end ) ) called from MakeImagesInfoLinearGeneralMappingByImages( map ); called from IsSingleValued( AsLeftModuleGeneralMappingByImages( map ) ) called from IsMapping( hom ) called from ( ) called from read-eval-loop Entering break read-eval-print loop ... you can 'quit;' to quit to outer loop, or you can 'return;' to continue brk> GROUP CASE ---- no problem gap> AA:=Group((1,2,3),(2,3)); Group([ (1,2,3), (2,3) ]) gap> gAA:=GeneratorsOfGroup(AA); [ (1,2,3), (2,3) ] gap> imm:=[(),()]; [ (), () ] gap> ff:=GroupHomomorphismByImages(AA,AA,gAA,imm); [ (1,2,3), (2,3) ] -> [ (), () ] gap> IsSurjective(ff); false gap> IsInjective(ff); false gap> BB:=Image(ff); Group(()) gap> g:=GroupHomomorphismByImages(AA,BB,gAA,imm); [ (1,2,3), (2,3) ] -> [ (), () ] gap> gg:=GroupHomomorphismByImages(AA,BB,gAA,imm); [ (1,2,3), (2,3) ] -> [ (), () ] gap> IsSurjective(gg); true gap> IsInjective(gg); false gap> gBB:=GeneratorsOfGroup(BB); [ (), () ] gap> hh:=GroupHomomorphismByImages(BB,AA,gBB,gBB); [ (), () ] -> [ (), () ] gap> IsSurjective(hh); false gap> IsInjective(hh); true gap> From arikan at gazi.edu.tr Wed Feb 21 12:44:05 2007 From: arikan at gazi.edu.tr (AHMET ARIKAN) Date: Wed Feb 21 12:44:56 2007 Subject: [GAP Forum] 2-groups Message-ID: <000f01c755b5$f972cb80$d005050a@your6c04f3ee65> Dear Forum, It is clear that two p-elements may not generate a p-group. I'm trying to find 2-groups using permutations. Is there a way in GAP to find 2-elements (permutations) x_1, ...,x_n such that Group(x_1,...,x_n) is a 2-group. May this be possible to find 2-elements (permutations) x_1, x_2 such that Group(x_1,x_2) is a 2-group, and x_3 such that Group(x_1,x_2,x_3) is a 2-group, etc? Othewise by trial and error (with IsPGroup) we waste much time. With best wishes, Ahmet Arikan From thomas.breuer at math.rwth-aachen.de Wed Feb 21 13:13:23 2007 From: thomas.breuer at math.rwth-aachen.de (Thomas Breuer) Date: Wed Feb 21 13:13:41 2007 Subject: [Gap Forum] Group Hom. and Algebra Hom. In-Reply-To: <002801c75420$8e3baa30$a8838cc1@ogu229> References: <002801c75420$8e3baa30$a8838cc1@ogu229> Message-ID: <20070221131323.GB4794@math.rwth-aachen.de> Dear GAP Forum, Alper Odabas wrote > Let f:A -> A homomorphism with f(a)=0, g:A -> {0} with g(a)=0 and h:{0} -> A > with h(0)=0. (A is a Algebra ) > [...] > there is a error (algebra case) with these functions in GAP 4.4.7. > [...] > gap> A:=GroupRing(GF(3),CyclicGroup(2)); > > gap> gA:=GeneratorsOfAlgebra(A); > [ (Z(3)^0)* of ..., (Z(3)^0)*f1 ] > gap> zA:=Zero(A);; > gap> im:=[zA,zA];; > gap> f:=AlgebraHomomorphismByImages(A,A,gA,im);; > gap> IsSurjective(f); > false > gap> IsInjective(f); > Error, no method found! For debugging hints type ?Recovery from NoMethodFound There is indeed a problem with linear mappings whose image is trivial. (Also the analogous problem exists for general linear mappings whose preimage is trivial.) This bug will be fixed with the next GAP update. For the moment, the bug can be fixed by reading the file http://www.math.rwth-aachen.de/~Thomas.Breuer/gapfix/fix_vspchom_4_4_9 into the GAP session. Thanks very much for the bug report. All the best, Thomas Breuer From joachim.neubueser at math.rwth-aachen.de Wed Feb 21 17:13:28 2007 From: joachim.neubueser at math.rwth-aachen.de (Joachim Neubueser) Date: Wed Feb 21 17:13:41 2007 Subject: [GAP Forum] Reidemeister-Schreier In-Reply-To: References: Message-ID: <20070221171328.GA15781@math.rwth-aachen.de> Dear Forum, On Sun, Feb 11, 2007 at 04:03:22PM +0200, Michael Fridman wrote to the GAP Forum: > I have a question about the Reidemeister-Schreier method. I know that the > function > PresentationSubgroupRrs( G, cosettable ) requires a presentation of the > group G and the coset-table. I saw that the coset-table is given by a > table of permutations. However, in my case, I have only the explicit > representatives of the subgroup H in G > (so, I have only a representation of G and set of representatives of G/H, > and I need to find a presentation of H). is there a function that can > covert these representatives to permutations? Or is there another version > of PresentationSubgroupRrs? > > Thanks in advance > Michael Friedman In a private letter to M.F. on January 12 I pointed to a Forum letter by Derek Holt of June 7, 2006, in which, as much as I understood, he had answered the same question, pointing out that such an algorithm cannot exist. I asked M. F. if I had misunderstood his question. Since I got no answer, I think that this is not the case, and so here for the sake of closing the case in the Forum: Such an algorithm cannot exist since different, in fact even nonisomorphic, subgroups can have the same transversal (set of coset representatives). The smallest example is given by the dihedral group of order 8 in which the cyclic subgroup C of order 4 and one of the two elementary abelian subgroups of order 4 , say V, both have either of the two cyclic subgroups of order 2 not contained in V as transversals. Kind regards Joachim Neubueser From ally at dcs.gla.ac.uk Fri Feb 23 10:04:13 2007 From: ally at dcs.gla.ac.uk (Alastair Donaldson) Date: Fri Feb 23 10:04:31 2007 Subject: [GAP Forum] Set stabilizer Message-ID: <58577CAC1C0FB34DAA24FA9DC76613F1017733C8@ex1.ad.dcs.gla.ac.uk> Dear Forum Given a group G acting on {1,...,n} and a subset X of {1,...n}, I understand that the algorithm which GAP uses to compute the set-wise stabilizer of X in G is not a polynomial time algorithm (even though it is often quite efficient). However, if I have a subgroup H of G, is it possible to answer the question "is H the set stabilizer of X in G?" in polynomial time? For my specific application it is always the case that H is a subgroup of the set stabilizer, and I want to know if it is actually the whole thing. Thanks, in advance Alastair Donaldson From dima at ntu.edu.sg Fri Feb 23 16:27:07 2007 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Fri Feb 23 16:27:31 2007 Subject: [GAP Forum] Set stabilizer In-Reply-To: <58577CAC1C0FB34DAA24FA9DC76613F1017733C8@ex1.ad.dcs.gla.ac.uk> Message-ID: Alistair, I don't think there any are polynomial-time algorithms for this problem known. Indeed, such an algorithm would allow one to compute the automorphism group of a graph in polynomial time. (Consider G=S_k acting on the set of n=(k choose 2) pairs. A graph is just a subset X of the set of pairs, so the stabilizer of X in G is the automorphism group of the graph) In turn, this would allow a polynomial-time algorithm for graph isomorphism. On the other hand, going to the general case, it is polynomial-time for fixed |X|. Hope this helps. Dima http://www.ntu.edu.sg/home/dima/ On 2/23/07 6:04 PM, "Alastair Donaldson" wrote: > Dear Forum > > Given a group G acting on {1,...,n} and a subset X of {1,...n}, I understand > that the algorithm which GAP uses to compute the set-wise stabilizer of X in G > is not a polynomial time algorithm (even though it is often quite efficient). > > However, if I have a subgroup H of G, is it possible to answer the question > "is H the set stabilizer of X in G?" in polynomial time? > > For my specific application it is always the case that H is a subgroup of the > set stabilizer, and I want to know if it is actually the whole thing. > > Thanks, in advance > > Alastair Donaldson From r_n_tsai at yahoo.com Sat Feb 24 09:54:41 2007 From: r_n_tsai at yahoo.com (R.N. Tsai) Date: Sat Feb 24 09:55:24 2007 Subject: [GAP Forum] decomposing regular representation + (AREP package) Message-ID: <20070224095441.46712.qmail@web34414.mail.mud.yahoo.com> Dear gap forum, I would like to decompose the regular (permutation) representation of some small groups into irreducible representations (over the complexes). That is for finite group G of order |G|, I would like an explicit |G|x|G| matrix F such that F^-1 R(g) F = B(g) R(g) is the regular representation, B(g) is block diagonal. R(g),B(g) and F are all |G|x|G| matrices over complexs. Is there anything in GAP that would facilitate getting such a matrix explicitly? I ran accross a GAP3 package "AREP" but I'm not sure if that has what I need (I didn't read through all its documentation yet); it also doesn't look like it's supported by GAP4 anyway, so it may not be easily usable even if it did. Thanks for your help. R.N. --------------------------------- Expecting? Get great news right away with email Auto-Check. Try the Yahoo! Mail Beta. From dima at ntu.edu.sg Sat Feb 24 15:19:32 2007 From: dima at ntu.edu.sg (Dmitrii Pasechnik) Date: Sat Feb 24 15:19:46 2007 Subject: [GAP Forum] decomposing regular representation + (AREP package) In-Reply-To: <20070224095441.46712.qmail@web34414.mail.mud.yahoo.com> Message-ID: Dear R.N.Tsai, dear forum, the main problem here is to obtain the complete list of irreducible complex representations of G. IMHO computing the latter is a rather nontrivial question for arbitrary finite groups. Once you know such a list, computing F is straightforward. See e.g. Sect. 2.7 of J.-P. Serre, Linear representations of finite groups. Graduate Texts in Mathematics, Vol. 42, Springer, New York, 1977 I have some GAP4 code (that I can make available upon request, although it's not in any kind of polished form) that implements these formulae; we used it in just completed preprint http://www.ntu.edu.sg/home/dima/papers/truss6.pdf where you can also find these formulae from Serre's book. Actually, there it is used to compute a decomposition into irreducibles, and then the centraliser ring, of a finite group representation, so it's a slightly more general problem than yours. Best, Dmitrii http://www.ntu.edu.sg/home/dima/ On 2/24/07 5:54 PM, "R.N. Tsai" wrote: > Dear gap forum, > > I would like to decompose the regular (permutation) representation of > some small groups into irreducible representations (over the complexes). > > That is for finite group G of order |G|, I would like an explicit > |G|x|G| matrix F such that > > F^-1 R(g) F = B(g) > > R(g) is the regular representation, B(g) is block diagonal. > R(g),B(g) and F are all |G|x|G| matrices over complexs. > > Is there anything in GAP that would facilitate getting such a matrix > explicitly? > > I ran accross a GAP3 package "AREP" but I'm not sure if that has what I > need (I didn't read through all its documentation yet); it also doesn't look > like it's supported by GAP4 anyway, so it may not be easily usable even if > it did. > > Thanks for your help. > > R.N. From pueschel at ece.cmu.edu Sat Feb 24 23:48:24 2007 From: pueschel at ece.cmu.edu (Markus Pueschel) Date: Sat Feb 24 23:49:06 2007 Subject: [GAP Forum] decomposing regular representation + (AREP package) In-Reply-To: <20070224095441.46712.qmail@web34414.mail.mud.yahoo.com> References: <20070224095441.46712.qmail@web34414.mail.mud.yahoo.com> Message-ID: <02cb01c7586e$46389a70$38820280@ece.cmu.edu> Hi R.N., I am one of the authors of AREP: http://www.ece.cmu.edu/~smart/arep/arep.html AREP indeed only runs with gap3 but it can do what you want as long as the group is solvable. It can give you F and also a fast algorithm for F, i.e., a factorization of F into a product of structured sparse matrices. Unfortunately, we have no resources to port AREP to gap4 but you could install gap3. Markus > -----Original Message----- > From: forum-bounces@gap-system.org [mailto:forum-bounces@gap-system.org] > On Behalf Of R.N. Tsai > Sent: Saturday, February 24, 2007 4:55 AM > To: GAP > Subject: [GAP Forum] decomposing regular representation + (AREP package) > > Dear gap forum, > > I would like to decompose the regular (permutation) representation of > some small groups into irreducible representations (over the complexes). > > That is for finite group G of order |G|, I would like an explicit > |G|x|G| matrix F such that > > F^-1 R(g) F = B(g) > > R(g) is the regular representation, B(g) is block diagonal. > R(g),B(g) and F are all |G|x|G| matrices over complexs. > > Is there anything in GAP that would facilitate getting such a matrix > explicitly? > > I ran accross a GAP3 package "AREP" but I'm not sure if that has what I > need (I didn't read through all its documentation yet); it also doesn't > look > like it's supported by GAP4 anyway, so it may not be easily usable even if > it did. > > Thanks for your help. > > R.N. > > > --------------------------------- > Expecting? Get great news right away with email Auto-Check. > Try the Yahoo! Mail Beta. > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum From alexander.konovalov at gmail.com Mon Feb 26 11:29:11 2007 From: alexander.konovalov at gmail.com (Alexander Konovalov) Date: Mon Feb 26 11:29:31 2007 Subject: [GAP Forum] 2-groups In-Reply-To: <000f01c755b5$f972cb80$d005050a@your6c04f3ee65> References: <000f01c755b5$f972cb80$d005050a@your6c04f3ee65> Message-ID: <3AF4C87E-49FF-462A-9B75-5BF26341BDFB@gmail.com> Dear Ahmet, > It is clear that two p-elements may not generate a p-group. I'm > trying to find 2-groups using permutations. Is there a way in GAP > to find 2-elements (permutations) x_1, ...,x_n such that Group > (x_1,...,x_n) is a 2-group. May this be possible to find 2-elements > (permutations) x_1, x_2 such that Group(x_1,x_2) is a 2-group, and > x_3 such that Group(x_1,x_2,x_3) is a 2-group, etc? Othewise by > trial and error (with IsPGroup) we waste much time. Dependently on your particular problem, you may find several approaches to be useful. For example, you could find generators of 2-group as permutation groups, using the GAP Small Groups Library in the following way: gap> G:=SmallGroup(8,3); gap> S:=Image(IsomorphismPermGroup(G)); Group([ (1,5)(2,6)(3,8)(4,7), (1,3)(2,4)(5,7)(6,8), (1,2)(3,4)(5,6) (7,8) ]) gap> GeneratorsOfGroup(S); [ (1,5)(2,6)(3,8)(4,7), (1,3)(2,4)(5,7)(6,8), (1,2)(3,4)(5,6)(7,8) ] In many cases the permutation representation constructed by IsomorphismPermGroup is regular, so the group S will act on |G| points. If this is not enough, you can try to reduce the degree of the permutation representation as below: gap> W:=Image(SmallerDegreePermutationRepresentation(S)); Group([ (1,3)(2,4), (3,4), (1,2)(3,4) ]) gap> IdGroup(W); [ 8, 3 ] Note that there are some warnings in the manual regarding the usage of SmallerDegreePermutationRepresentation. Another approach is to look at the Sylow p-subgroups of Sym(n). They are quite well understood and can be easily computed with GAP. You could construct a Sylow 2-subgroup of Sym(n) and then determine subgroups of that, for example: gap> G := SymmetricGroup(20); Sym( [ 1 .. 20 ] ) gap> S := SylowSubgroup(G,2); gap> g := Random(S); (1,3,2,4)(9,14,11,16,10,13,12,15)(17,18)(19,20) gap> h := Random(S); (1,2)(9,12)(10,11)(13,15,14,16)(19,20) gap> U := Subgroup(S, [g,h]); Group([ (1,3,2,4)(9,14,11,16,10,13,12,15)(17,18)(19,20), (1,2)(9,12)(10,11)(13,15,14,16)(19,20) ]) gap> Size(U); 64 Finally, I would like to mention that there is an algorithm by C. Sims which can be used to determine a Sylow p-subgroup of a permutation group. This algorithm builds up the desired group from the bottom and hence the steps of this algorithm would probably do exactly what you want. It is implemented in GAP, but the implementation is not trivial or easy to read. See the paper [Charles C. Sims, Computing the order of a solvable permutation group, J. Symbolic Comput., 9:699--705, 1990] for its description. Hope this helps, Bettina Eick, Alexander Konovalov From vdabbagh at sfu.ca Tue Feb 27 05:50:30 2007 From: vdabbagh at sfu.ca (Vahid Dabbaghian-Abdoly) Date: Tue Feb 27 05:50:47 2007 Subject: [GAP Forum] decomposing regular representation + (AREP package) Message-ID: <200702270550.l1R5oUQg018481@rm-rstar.sfu.ca> Dear R.N. and GAP forum, I am the author of the REPSN package. REPSN is a package for constructing complex matrix representations of finite groups. Using this package one can compute an equivalent block diagonal representation of a given reducible representation. There was a bug in its version 2.0 that I have fixed that and the new version will be on the web by the end of this week. But if you want I can send you its zip file. In the following example you see how to find an equivalent block diagonal representation of a regular representation of a group: gap> g := SmallGroup( 6, 1 );; gap> G := Image(IsomorphismPermGroup( g ));; gap> H := TrivialSubgroup( G );; gap> chi := TrivialCharacter( H );; gap> Hrep := IrreducibleAffordingRepresentation( chi );; gap> rep := InducedSubgroupRepresentation( G, Hrep );; gap> EquivalentBlockRepresentation( rep ); .... This gives you an equivalent block diagonal representation of rep. If you have any question you can send me a direct e-mail. Regards Vahid __________________________ Department of Mathematics Simon Fraser University 8888 University Drive Burnaby, British Columbia V5A 1S6 Canada E-mail: vdabbagh@sfu.ca http://www.sfu.ca/~vdabbagh From gordon at csse.uwa.edu.au Thu Mar 1 11:14:24 2007 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Thu Mar 1 11:15:03 2007 Subject: [GAP Forum] Conjugacy classes in projective general linear groups... Message-ID: <9E2E24A0-7A91-4A26-BD7E-FF0BE7DBAAF6@csse.uwa.edu.au> I am doing some Polya style counting involving sets of points in projective spaces ... This involves computing the cycle-index of various projective general linear groups, which in turn involves computing the conjugacy classes of these groups. But using ConjugacyClasses becomes slow or impossible when the group starts to get large... even PGL(6,5) hasn't finished after a couple of hours... Of course, ProjectiveGeneralLinearGroup returns the group just as any old permutation group, and then ConjugacyClasses uses general permutation group methods, so I am throwing away a whole lot of information about the special nature of this situation, hence my question is: Q: These groups are central to everything, so are there specialized methods / specialized knowledge about these particular groups that I can look up and use? (There is a website http://www.uni-graz.at/~fripert/fga/k1zyklap.html that purports to calculate these, but it doesn't seem to work; the associated paper is there, but would take a long time to work through) Thanks Gordon -- Associate Professor Gordon Royle Department of Computer Science & Software Engineering University of Western Australia http://people.csse.uwa.edu.au/gordon From gordon at csse.uwa.edu.au Thu Mar 1 12:20:54 2007 From: gordon at csse.uwa.edu.au (Gordon Royle) Date: Thu Mar 1 12:21:19 2007 Subject: [GAP Forum] Conjugacy classes in projective general linear groups... In-Reply-To: <200703011311.38772.axel.kohnert@uni-bayreuth.de> References: <9E2E24A0-7A91-4A26-BD7E-FF0BE7DBAAF6@csse.uwa.edu.au> <200703011311.38772.axel.kohnert@uni-bayreuth.de> Message-ID: <2FBC2333-026C-410F-AA05-ED49997F076C@csse.uwa.edu.au> On 01/03/2007, at 9:11 PM, Axel Kohnert wrote: > Dear Gordon, > > this very old link you are mentioning will be updated very soon (i > am in part > responsible, because this program is computing in bayreuth) > in the meantime you may use the following link: > http://linearcodes.uni-bayreuth.de/CD/index.html Very impressive... it did PGL(6,5) in 12 seconds.. All you need now is an option for "machine readable" output for transfer to another program... having it in HTML with and and so on makes it difficult to use, so an option for a GAP/Maple/ Magma/Mathematica/Pari format would be very useful... Thanks Gordon -- Associate Professor Gordon Royle Department of Computer Science & Software Engineering University of Western Australia http://people.csse.uwa.edu.au/gordon From caranti at science.unitn.it Thu Mar 1 13:22:38 2007 From: caranti at science.unitn.it (A. Caranti) Date: Thu Mar 1 13:23:29 2007 Subject: [GAP Forum] Conjugacy classes in projective general linear groups... In-Reply-To: <9E2E24A0-7A91-4A26-BD7E-FF0BE7DBAAF6@csse.uwa.edu.au> References: <9E2E24A0-7A91-4A26-BD7E-FF0BE7DBAAF6@csse.uwa.edu.au> Message-ID: At 20:14 of Thu, 1 Mar 2007, Gordon Royle wrote: > This involves [...] computing the conjugacy classes of these groups. [...] > Q: These groups are central to everything, so are there specialized > methods / specialized knowledge about these particular groups that I > can look up and use? I'm not sure whether this is what you are looking for, but perhaps you could work things out using the results of this beautiful paper: MR0601642 (82d:20041) Wall, G. E. Conjugacy classes in projective and special linear groups. Bull. Austral. Math. Soc. 22 (1980), no. 3, 339--364. 20G15 (20G40) Andreas From phjelmstad at msn.com Thu Mar 1 17:25:52 2007 From: phjelmstad at msn.com (PAUL HJELMSTAD) Date: Thu Mar 1 17:26:28 2007 Subject: [GAP Forum] Listing Octads Message-ID: Does anyone know how I would list: 1) Octads in M24 (Are they Unique?) 2) Representatives of Conjugacy Classes (26) in M24 Thanks! From hulpke at math.colostate.edu Thu Mar 1 18:00:39 2007 From: hulpke at math.colostate.edu (Alexander Hulpke) Date: Thu Mar 1 18:01:26 2007 Subject: [GAP Forum] Listing Octads In-Reply-To: References: Message-ID: Dear GAP forum, Paul Hjelmstad wrote: > Does anyone know how I would list: Yes. > 2) Representatives of Conjugacy Classes (26) in M24 gap> g:=MathieuGroup(24); gap> List(ConjugacyClasses(g),Representative); (Careful: Order is not necessarily ATLAS order but its easy to get a correspondence) > 1) Octads in M24 (Are they Unique?) The 759 octads are one orbit under M24 and are determined uniquely by 5 points of this 5-transitive group, thus there are unique. As the index of an octad stabilizer is 759 and thus odd, we can get one octad from orbits of a 2-Sylow subgroup: gap> s:=SylowSubgroup(g,2); gap> Orbits(s,[1..24]); [ [ 1, 5, 24, 8, 10, 11, 14, 20 ], [ 2, 13, 22, 19, 7, 3, 9, 23, 18, 4, 15, 12, 6, 16, 17, 21 ] ] gap> o:=Set(last[1]); The set of octads then is obtained as orbit: gap> octads:=Orbit(g,o,OnSets);; gap> Length(octads); 759 from which we see that in this labelling of M24 the lexicographically smallest octad is gap> Set(octads)[1]; [ 1, 2, 3, 4, 5, 8, 11, 13 ] Best, Alexander Hulpke -- Colorado State University, Department of Mathematics, Weber Building, 1874 Campus Delivery, Fort Collins, CO 80523-1874, USA email: hulpke@math.colostate.edu, Phone: ++1-970-4914288 http://www.math.colostate.edu/~hulpke From emailme at ianmcloughlin.com Mon Mar 5 10:44:10 2007 From: emailme at ianmcloughlin.com (Ian McLoughlin) Date: Mon Mar 5 10:44:48 2007 Subject: [GAP Forum] Adding One to a Vector Message-ID: <9d5eef600703050244k106e3291ybd8a6ac2db51e35a@mail.gmail.com> Hi everyone, I need to loop over all the vectors of length 24 over GF(2) of weight at least 8. The current way I'm doing this is the following.... AddOne := function( vector ) local i ;; for i in [24,23..1] do if ( vector[i] = 0*Z(2) ) then vector[i] := 1*Z(2) ;; break ;; fi ;; if ( vector[i] = 1*Z(2) ) then vector[i] := 0*Z(2) ;; fi ;; od ;; end ;; start := Z(2) * [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0] ;; zerovec := Z(2) * [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ;; ConvertToVectorRep( start , GF(2) ) ;; ConvertToVectorRep( zerovec , GF(2) ) ;; while ( start <> zerovec ) do AddOne( start ) ;; if ( WeightVecFFE( start ) < 8 ) then continue ;; fi ;; od ;; Obviously I do some stuff with each new value of start, but I've omitted it to make my email less ugly. :) The reason I wrote my own method called AddOne was because I couldn't find any Gap method that did the equivalent of c's "start++;". Apologies for representing the vector backwards(compared to the usual in Gap) by the way! My question is this: does Gap have an inbuilt method to add one to a binary vector as if the whole vector represented a single number(i.e. with carrying)? If anyone has a suggestion as to how to loop through all binary vectors of length 24 and weight at least eight another way I'd love to hear it too! My main concern is speed! Thanks a lot, Ian -- Ian McLoughlin emailme@ianmcloughlin.com From max.neunhoeffer at math.rwth-aachen.de Mon Mar 5 12:10:37 2007 From: max.neunhoeffer at math.rwth-aachen.de (Max Neunhoeffer) Date: Mon Mar 5 12:11:26 2007 Subject: [GAP Forum] Adding One to a Vector In-Reply-To: <9d5eef600703050244k106e3291ybd8a6ac2db51e35a@mail.gmail.com> References: <9d5eef600703050244k106e3291ybd8a6ac2db51e35a@mail.gmail.com> Message-ID: <20070305121037.GA21422@math.rwth-aachen.de> Dear Ian, The following completes in 35 seconds on one of our machines and probably does what you want: i := Iterator(GF(2)^24); while not(IsDoneIterator(i)) do v := NextIterators(i); # Do something with v od; It produces all vectors you want one after another. Unfortunately, the vectors coming out of this are not yet compressed. So you probably want to add a "ConvertToVectorRep(v,2)" in the loop, depending on your applications. Also you cannot change the order in which the vectors occur. Note that there is also an enumerator, but this is much slower. I hope this helps, if not, please do not hesitate to ask again. Best regards, Max. On Mon, Mar 05, 2007 at 10:44:10AM +0000, Ian McLoughlin wrote: > Hi everyone, > > I need to loop over all the vectors of length 24 over GF(2) of weight at > least 8. The current way I'm doing this is the following.... > > > AddOne := function( vector ) > > local i ;; > > for i in [24,23..1] do > > if ( vector[i] = 0*Z(2) ) then > > vector[i] := 1*Z(2) ;; > break ;; > > fi ;; > > if ( vector[i] = 1*Z(2) ) then > > vector[i] := 0*Z(2) ;; > > fi ;; > > od ;; > > end ;; > > > start := Z(2) * [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0] ;; > zerovec := Z(2) * [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] ;; > > ConvertToVectorRep( start , GF(2) ) ;; > ConvertToVectorRep( zerovec , GF(2) ) ;; > > while ( start <> zerovec ) do > > AddOne( start ) ;; > > if ( WeightVecFFE( start ) < 8 ) then > continue ;; > fi ;; > > od ;; > > > > Obviously I do some stuff with each new value of start, but I've omitted it > to make my email less ugly. :) > The reason I wrote my own method called AddOne was because I couldn't find > any Gap method that did the equivalent of c's "start++;". > Apologies for representing the vector backwards(compared to the usual in > Gap) by the way! > > My question is this: does Gap have an inbuilt method to add one to a binary > vector as if the whole vector represented a single number(i.e. with > carrying)? > If anyone has a suggestion as to how to loop through all binary vectors of > length 24 and weight at least eight another way I'd love to hear it too! My > main concern is speed! > > Thanks a lot, > Ian > > > -- > Ian McLoughlin > emailme@ianmcloughlin.com > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- # # Max Neunhoeffer ##### Gerlachstrasse 20-22, 52064 Aachen, Germany (private) # # Lehrstuhl D fuer Mathematik, RWTH, Templergraben 64, 52062 Aachen ##### Tel.: +49 241 406605 (private) / +49 241 8094550 (institute) # # May the Source be with you! From laurent.bartholdi at gmail.com Mon Mar 5 12:53:29 2007 From: laurent.bartholdi at gmail.com (Laurent Bartholdi) Date: Mon Mar 5 12:54:11 2007 Subject: [GAP Forum] Adding One to a Vector In-Reply-To: <20070305121037.GA21422@math.rwth-aachen.de> References: <9d5eef600703050244k106e3291ybd8a6ac2db51e35a@mail.gmail.com> <20070305121037.GA21422@math.rwth-aachen.de> Message-ID: <1ff637850703050453h5a6aef65t49dfb3a786a83f10@mail.gmail.com> Dear List, > The following completes in 35 seconds on one of our machines and > probably does what you want: > > i := Iterator(GF(2)^24); > while not(IsDoneIterator(i)) do > v := NextIterators(i); > # Do something with v > od; This can be shortened to the equivalent code for v in GF(2)^24 do if WeightVecFFE(v)<8 then ...; fi; od; -- Laurent Bartholdi \ laurent.bartholdigmailcom EPFL SB SMA IMB MAD \ T?l?phone: +41 21-6935458 Station 8 \ Secr?taire: +41 21-6935501 CH-1015 Lausanne, Switzerland \ Fax: +41 21-6930339 From e.obrien at auckland.ac.nz Thu Mar 8 09:28:25 2007 From: e.obrien at auckland.ac.nz (Eamonn O'Brien) Date: Thu Mar 8 09:29:12 2007 Subject: [GAP Forum] Vacancy for Lecturer / Senior Lecturer at University of Auckland Message-ID: <45EFD739.8090704@math.auckland.ac.nz> Dear Gap Forum, Applications are invited for a position at the Lecturer/Senior Lecturer level in the Department of Mathematics. This position is intended for candidates who have a PhD in Mathematics and who can demonstrate a strong commitment to excellence in research and teaching at all levels of Mathematics. The successful applicant will have research interests in algebra, combinatorics, number theory, or a field closely related to these. The Department of Mathematics, which is the largest and strongest in New Zealand, offers a full range of courses at the undergraduate and postgraduate levels, and has a growing PhD programme and a vibrant research culture spanning pure and applied mathematics and mathematics education. It is closely affiliated to, and hosts the offices of, the New Zealand Institute for Mathematics and its Applications (http://www.nzima.org). More details about the Department may be found at http://www.math.auckland.ac.nz/ Details of the position and method of application can be found at http://www.vacancies.auckland.ac.nz/positiondetail.asp?p=4987 If you would like further informal information on the position, you may wish to contact Associate Professor Bill Barton, Head of Department, , or other members of the Department. Best wishes. Eamonn O'Brien From rborgo at comp.leeds.ac.uk Thu Mar 8 11:53:06 2007 From: rborgo at comp.leeds.ac.uk (R Borgo) Date: Thu Mar 8 11:53:50 2007 Subject: [GAP Forum] GAP 3.4.4 on modern linux Message-ID: <45EFF922.8080200@comp.leeds.ac.uk> Dear all, I apologize for bothering about GAP 3 but I am forced to use it since I need the CHEVIE package, so I hope that maybe somebody out there found himself in my same situation and tried to install GAP 3 on modern Linux. I have followed the installation instruction given on the GAP3 website but when I try to compile make ibm-i386-linux-gcc2 I receive the following message: make[1]: Entering directory `/usr/not-backed-up/GAP/gap3/zoo/gap3r4p4/src' gcc -DSYS_HAS_IOCTL_PROTO -DSYS_IS_USG -DSYS_HAS_TIME_PROTO -DSYS_HAS_SIG_T=void -DSYS_HAS_IOCTL_PROTO -c -o system.o system.c system.c: In function ?syAnswerCont?: system.c:1608: warning: ?return? with a value, in function returning void system.c: In function ?syAnswerTstp?: system.c:1619: warning: ?return? with a value, in function returning void system.c: In function ?syAnswerIntr?: system.c:2738: warning: ?return? with a value, in function returning void In file included from /usr/include/asm/param.h:4, from /usr/include/linux/param.h:4, from /usr/include/sys/param.h:24, from system.c:3297: /usr/include/unistd.h: At top level: /usr/include/unistd.h:325: error: conflicting types for ?read? system.c:1593: error: previous declaration of ?read? was here /usr/include/unistd.h:331: error: conflicting types for ?write? system.c:1594: error: previous declaration of ?write? was here system.c:4424: error: conflicting types for ?sbrk? /usr/include/unistd.h:993: error: previous declaration of ?sbrk? was here make[1]: *** [system.o] Error 1 make[1]: Leaving directory `/usr/not-backed-up/GAP/gap3/zoo/gap3r4p4/src' make: *** [ibm-i386-linux-gcc2] Error 2 I tried with the COPTS="-DSYS_HAS_IOCTL_PROTO" option and adding the option directly into the makefile with no result. My machine has Linux Fedora. Any suggestion? Thank you in advance for your help RB From max.neunhoeffer at math.rwth-aachen.de Thu Mar 8 13:25:13 2007 From: max.neunhoeffer at math.rwth-aachen.de (Max Neunhoeffer) Date: Thu Mar 8 13:25:49 2007 Subject: [GAP Forum] GAP 3.4.4 on modern linux In-Reply-To: <45EFF922.8080200@comp.leeds.ac.uk> References: <45EFF922.8080200@comp.leeds.ac.uk> Message-ID: <20070308132513.GC31756@math.rwth-aachen.de> Dear R Borgo, You might try what I propose under http://www.math.rwth-aachen.de/~Max.Neunhoeffer/Computer/compgap.html However, your output suggests that you encounter another problem, probably due to a newer C compiler. If this does not work, please send be the output of gcc -v since I guess that you are using GCC >= 4.1, maybe it is also a problem with a newer C library. I myself do not have access to such a modern system as of now and therefore might not be able to help very much. But if the problem persists, please ask again. Best regards, Max On Thu, Mar 08, 2007 at 11:53:06AM +0000, R Borgo wrote: > Dear all, > > I apologize for bothering about GAP 3 but I am forced to use it since I > need the > CHEVIE package, so I hope that maybe somebody out there found himself in > my same situation > and tried to install GAP 3 on modern Linux. > I have followed the installation instruction given on the GAP3 website > but when I try to compile > make ibm-i386-linux-gcc2 > > I receive the following message: > make[1]: Entering directory `/usr/not-backed-up/GAP/gap3/zoo/gap3r4p4/src' > gcc -DSYS_HAS_IOCTL_PROTO -DSYS_IS_USG -DSYS_HAS_TIME_PROTO > -DSYS_HAS_SIG_T=void -DSYS_HAS_IOCTL_PROTO -c -o system.o system.c > system.c: In function ?syAnswerCont?: > system.c:1608: warning: ?return? with a value, in function returning > void > system.c: In function ?syAnswerTstp?: > system.c:1619: warning: ?return? with a value, in function returning > void > system.c: In function ?syAnswerIntr?: > system.c:2738: warning: ?return? with a value, in function returning > void > In file included from /usr/include/asm/param.h:4, > from /usr/include/linux/param.h:4, > from /usr/include/sys/param.h:24, > from system.c:3297: > /usr/include/unistd.h: At top level: > /usr/include/unistd.h:325: error: conflicting types for ?read? > system.c:1593: error: previous declaration of ?read? was here > /usr/include/unistd.h:331: error: conflicting types for ?write? > system.c:1594: error: previous declaration of ?write? was here > system.c:4424: error: conflicting types for ?sbrk? > /usr/include/unistd.h:993: error: previous declaration of ?sbrk? was > here > make[1]: *** [system.o] Error 1 > make[1]: Leaving directory `/usr/not-backed-up/GAP/gap3/zoo/gap3r4p4/src' > make: *** [ibm-i386-linux-gcc2] Error 2 > > I tried with the COPTS="-DSYS_HAS_IOCTL_PROTO" option > and adding the option directly into the makefile with no result. > My machine has Linux Fedora. > Any suggestion? > > Thank you in advance for your help > > RB > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- # # Max Neunhoeffer ##### Gerlachstrasse 20-22, 52064 Aachen, Germany (private) # # Lehrstuhl D fuer Mathematik, RWTH, Templergraben 64, 52062 Aachen ##### Tel.: +49 241 406605 (private) / +49 241 8094550 (institute) # # May the Source be with you! From emailme at ianmcloughlin.com Thu Mar 8 13:55:58 2007 From: emailme at ianmcloughlin.com (Ian McLoughlin) Date: Thu Mar 8 13:56:33 2007 Subject: [GAP Forum] GAP 3.4.4 on modern linux In-Reply-To: <20070308132513.GC31756@math.rwth-aachen.de> References: <45EFF922.8080200@comp.leeds.ac.uk> <20070308132513.GC31756@math.rwth-aachen.de> Message-ID: <9d5eef600703080555v3e9fc705m96be8cd022ac3404@mail.gmail.com> Looks like you need to install an older version of gcc. maybe Fedora provides one, though I doubt it! Try downloading gcc-3.2.tar.bz2from http://gcc-uk.internet.bs/old-releases/gcc-3/. I'd read... http://gcc.gnu.org/faq.html#multiple, http://www.mjmwired.net/linux/2005/11/15/using-alternate-compilers/ and http://www.mjmwired.net/resources/mjm-fedora-gcc.html before I'd continue from there in case I made a mess :). I always make a mess! Ian On 08/03/07, Max Neunhoeffer wrote: > > Dear R Borgo, > > You might try what I propose under > http://www.math.rwth-aachen.de/~Max.Neunhoeffer/Computer/compgap.html > > However, your output suggests that you encounter another problem, > probably due to a newer C compiler. If this does not work, please send > be the output of > gcc -v > since I guess that you are using GCC >= 4.1, maybe it is also a > problem with a newer C library. I myself do not have access to such a > modern system as of now and therefore might not be able to help very > much. But if the problem persists, please ask again. > > Best regards, > Max > > On Thu, Mar 08, 2007 at 11:53:06AM +0000, R Borgo wrote: > > Dear all, > > > > I apologize for bothering about GAP 3 but I am forced to use it since I > > need the > > CHEVIE package, so I hope that maybe somebody out there found himself in > > my same situation > > and tried to install GAP 3 on modern Linux. > > I have followed the installation instruction given on the GAP3 website > > but when I try to compile > > make ibm-i386-linux-gcc2 > > > > I receive the following message: > > make[1]: Entering directory > `/usr/not-backed-up/GAP/gap3/zoo/gap3r4p4/src' > > gcc -DSYS_HAS_IOCTL_PROTO -DSYS_IS_USG -DSYS_HAS_TIME_PROTO > > -DSYS_HAS_SIG_T=void -DSYS_HAS_IOCTL_PROTO -c -o system.o system.c > > system.c: In function 'syAnswerCont': > > system.c:1608: warning: 'return' with a value, in function returning > > void > > system.c: In function 'syAnswerTstp': > > system.c:1619: warning: 'return' with a value, in function returning > > void > > system.c: In function 'syAnswerIntr': > > system.c:2738: warning: 'return' with a value, in function returning > > void > > In file included from /usr/include/asm/param.h:4, > > from /usr/include/linux/param.h:4, > > from /usr/include/sys/param.h:24, > > from system.c:3297: > > /usr/include/unistd.h: At top level: > > /usr/include/unistd.h:325: error: conflicting types for 'read' > > system.c:1593: error: previous declaration of 'read' was here > > /usr/include/unistd.h:331: error: conflicting types for 'write' > > system.c:1594: error: previous declaration of 'write' was here > > system.c:4424: error: conflicting types for 'sbrk' > > /usr/include/unistd.h:993: error: previous declaration of 'sbrk' was > > here > > make[1]: *** [system.o] Error 1 > > make[1]: Leaving directory > `/usr/not-backed-up/GAP/gap3/zoo/gap3r4p4/src' > > make: *** [ibm-i386-linux-gcc2] Error 2 > > > > I tried with the COPTS="-DSYS_HAS_IOCTL_PROTO" option > > and adding the option directly into the makefile with no result. > > My machine has Linux Fedora. > > Any suggestion? > > > > Thank you in advance for your help > > > > RB > > > > _______________________________________________ > > Forum mailing list > > Forum@mail.gap-system.org > > http://mail.gap-system.org/mailman/listinfo/forum > > > > -- > # # Max Neunhoeffer > ##### Gerlachstrasse 20-22, 52064 Aachen, Germany (private) > # # Lehrstuhl D fuer Mathematik, RWTH, Templergraben 64, 52062 Aachen > ##### Tel.: +49 241 406605 (private) / +49 241 8094550 (institute) > # # May the Source be with you! > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum > -- Ian McLoughlin emailme@ianmcloughlin.com From muntyan at tamu.edu Thu Mar 8 14:56:48 2007 From: muntyan at tamu.edu (Yevgen Muntyan) Date: Thu Mar 8 14:57:34 2007 Subject: [GAP Forum] GAP 3.4.4 on modern linux In-Reply-To: <45EFF922.8080200@comp.leeds.ac.uk> References: <45EFF922.8080200@comp.leeds.ac.uk> Message-ID: <45F02430.7080407@tamu.edu> R Borgo wrote: > Dear all, > > I apologize for bothering about GAP 3 but I am forced to use it since > I need the > CHEVIE package, so I hope that maybe somebody out there found himself > in my same situation > and tried to install GAP 3 on modern Linux. I compiled it on Debian linux with make ibm-i386-linux-gcc2 COPTS='-DSYS_HAS_IOCTL_PROTO -DSYS_HAS_ANSI -DSYS_HAS_CONST -DSYS_HAS_STDIO_PROTO -DSYS_HAS_READ_PROTO -DSYS_HAS_STRING_PROTO -DSYS_HAS_SIGNAL_PROTO -DSYS_HAS_TIME_PROTO -DSYS_HAS_MALLOC_PROTO -DSYS_HAS_MISC_PROTO' (it was one line). It starts, don't know if it works fine or not. Best regards, Yevgen From ras_rezaei at yahoo.com Sun Mar 11 14:41:23 2007 From: ras_rezaei at yahoo.com (rashid rezaei) Date: Sun Mar 11 14:41:57 2007 Subject: [GAP Forum] question Message-ID: <133660.78644.qm@web36808.mail.mud.yahoo.com> Dear Forum, I am looking for computing the non-abelian tensor product $G\otimes N$ where $N$ is a normal subgroup of $G$. I found the command for tensor square in the package HAP, but I could not find any similar for $G\otimes N$. I will be more grateful for any help or comments. Regards, R. Rezaei. Send instant messages to your online friends http://uk.messenger.yahoo.com From graham.ellis at nuigalway.ie Mon Mar 12 10:49:35 2007 From: graham.ellis at nuigalway.ie (Ellis, Grahamj) Date: Mon Mar 12 10:50:35 2007 Subject: [GAP Forum] question References: <133660.78644.qm@web36808.mail.mud.yahoo.com> Message-ID: <7BC4FCB2B695D64CBF525CEC64375327CA1BD0@EVS1.ac.nuigalway.ie> Dear Rashid, I was just uploading a new version of HAP 1.7.3 when your e-mail arrived. So I have included a quickly written function NonabelianTensorProduct(G,N) which inputs a finite group G and normal subgroup N. It returns a record with the homomorphism delta:G\otimes N --> G and the crossed pairing h:G\times N --> G . I'll improve the efficiency of this function in the next release. To calculate the order of the tensor product G\otimes N where G is the Sylow 2-subgroup of the Mathieu group M12, and N the derived subgroup of G, you need to type the following: gap> G:=SylowSubgroup(MathieuGroup(12),2);; gap> N:=DerivedSubgroup(G);; gap> T:=NonabelianTensorProduct(G,N);; gap> TensProd:=Source(T.homomorphism); gap> Order(TensProd); 128 All the best, Graham -----Original Message----- From: forum-bounces@gap-system.org on behalf of rashid rezaei Sent: Sun 11/03/2007 14:41 To: Forum@gap-system.org Subject: [GAP Forum] question Dear Forum, I am looking for computing the non-abelian tensor product $G\otimes N$ where $N$ is a normal subgroup of $G$. I found the command for tensor square in the package HAP, but I could not find any similar for $G\otimes N$. I will be more grateful for any help or comments. Regards, R. Rezaei. Send instant messages to your online friends http://uk.messenger.yahoo.com _______________________________________________ Forum mailing list Forum@mail.gap-system.org http://mail.gap-system.org/mailman/listinfo/forum From rowell at math.tamu.edu Mon Mar 12 16:28:57 2007 From: rowell at math.tamu.edu (Eric Rowell) Date: Mon Mar 12 16:29:45 2007 Subject: [GAP Forum] Primitive Linear Groups Message-ID: Dear GAP Forum, Is there a way to access primitive unimodular linear groups of low degree (say 7 or less) on GAP? I am a new user, and I haven't found such a function yet. I need to generate a list of possible orders for these groups. While these groups are mostly described in Feit's 1970 ICM paper, the degree 4 groups are somewhat troublesome, particularly the extensions of the extra special groups of order 32 by their automorphism groups. Best, Eric Rowell From vdovin at math.nsc.ru Tue Mar 13 02:50:01 2007 From: vdovin at math.nsc.ru (Vdovin Evgenii) Date: Tue Mar 13 02:50:38 2007 Subject: [GAP Forum] Primitive Linear Groups In-Reply-To: References: Message-ID: <200703130850.01471.vdovin@math.nsc.ru> > Dear GAP Forum, > > Is there a way to access primitive unimodular linear groups of low degree > (say 7 or less) on GAP? I am a new user, and I haven't found such a > function yet. > > I need to generate a list of possible orders for these groups. While > these groups are mostly described in Feit's 1970 ICM paper, the degree 4 > groups are somewhat troublesome, particularly the extensions of the extra > special groups of order 32 by their automorphism groups. > > Best, > > Eric Rowell > > _______________________________________________ > Forum mailing list > Forum@mail.gap-system.org > http://mail.gap-system.org/mailman/listinfo/forum Check irredsol package and its documentation. Since your group is solvable, it should help. In GAP type ?irreducible for more information. -- Best Regards Vdovin Evgenii Institute of Mathematics pr-t Acad. Koptyug, 4 630090, Novosibirsk, Russia Office +7 383 3333495 Home +7 383 2644892 Cellular +7 913 9475524 Fax +7 383 3332598 From Bartosz.Putrycz at math.univ.gda.pl Wed Mar 14 08:38:05 2007 From: Bartosz.Putrycz at math.univ.gda.pl (Bartosz Putrycz) Date: Wed Mar 14 08:38:36 2007 Subject: [GAP Forum] spin group, finite subgroups Message-ID: <45F7B46D.4090302@math.univ.gda.pl> Dear Forum, I need to have some way to put/represent in GAP finite subgroups of the spin group, given by generators in Clifford algebra, or given b