mehnert on Mon, 11 Sep 2006 12:27:28 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: cosets |
Thank you, that is exactly what i wanted. regards, Bernd Quoting Bill Allombert <allomber@math.u-bordeaux.fr>: > On Fri, Sep 08, 2006 at 11:40:50AM +0200, mehnert@math.uni-sb.de wrote: > > > > > > Hello, > > > > if i'm interested for example in representants of the cosets of the > subgroup > > generated by G[4][1] in F.group, where > > > > ? F = galoisinit(polcyclo(28)); > > ? G = galoissubgroups(F); , > > > > is there a comfortable way to do this in GP and if not: If > > Not really, though it is possible to do it through the use of libpari > functions: > > ? install(group_quotient,GG); > ? F = galoisinit(polcyclo(28)); > ? G = galoissubgroups(F); > ? group_quotient(G[1],G[4])[1] > %3 = [Vecsmall([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), Vecsmall([2, 5, 12, > 3, 6, 9, 4, 7, 10, 1, 8, 11]), Vecsmall([3, 12, 9, 6, 11, 8, 5, 2, 7, 4, 1, > 10]), > Vecsmall([4, 3, 6, 5, 12, 11, 2, 1, 8, 7, 10, 9]), Vecsmall([5, 6, 11, 12, 9, > 10, 3, 4, 1, 2, 7, 8]), Vecsmall([7, 4, 5, 2, 3, 12, 1, 10, 11, 8, 9, 6])] > > Some explanations: > > install(group_quotient,GG) will install the libpari function group_quotient > inside GP. > > This function take two arguments which are "groups", are returned by > galoissubgroups. G[1] is the underlying group of F. G[4] is the subgroup > generated by G[4][1]. > > It returns a two-component vector [C,M] where C is the cosets generators and > M is a table that map the permutations to their cosets. > > > i want to export my data (with "galoisexport") and do the computation in > GAP, > > how do i get the results back to GP, so that my program can go further? > > If you prefer using GAP instead of the arcane libpari functions, you > can proceed as follow > > Under GP do: > ? galoisexport(G[1]) > %4 = "Group((1, 6)(2, 9)(3, 8)(4, 11)(5, 10)(7, 12), (1, 2, 5, 6, 9, 10)(3, > 12, > 11, 8, 7, 4), (1, 3, 9, 7, 5, 11)(2, 12, 10, 4, 6, 8))" > ? galoisexport(G[4]) > %5 = "Group((1, 6)(2, 9)(3, 8)(4, 11)(5, 10)(7, 12))" > > Under gap: > > gap> F:=Group((1, 6)(2, 9)(3, 8)(4, 11)(5, 10)(7, 12), (1, 2, 5, 6, 9, 10)(3, > $ > > 11, 8, 7, 4), (1, 3, 9, 7, 5, 11)(2, 12, 10, 4, 6, 8)); > Group([ (1,6)(2,9)(3,8)(4,11)(5,10)(7,12), (1,2,5,6,9,10)(3,12,11,8,7,4), > (1,3,9,7,5,11)(2,12,10,4,6,8) ]) > gap> H:=Group((1, 6)(2, 9)(3, 8)(4, 11)(5, 10)(7, 12)); > Group([ (1,6)(2,9)(3,8)(4,11)(5,10)(7,12) ]) > gap> L:=List(RightCosets(F,H),x->Permuted([1..12],Representative(x))); > [ [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], > [ 5, 6, 11, 12, 9, 10, 3, 4, 1, 2, 7, 8 ], > [ 9, 10, 7, 8, 1, 2, 11, 12, 5, 6, 3, 4 ], > [ 3, 12, 9, 6, 11, 8, 5, 2, 7, 4, 1, 10 ], > [ 11, 8, 1, 10, 7, 4, 9, 6, 3, 12, 5, 2 ], > [ 7, 4, 5, 2, 3, 12, 1, 10, 11, 8, 9, 6 ] ] > > which is valid in GP format (due to Permuted([1..12],...). > > You can also export groups wholesale using the GAP functions below: > > PermToGP := function(p,l) > return Permuted([1..l],p); > end; > ExportGroup := function(G) > local as,perms, gens,l, ords,pcgs; > as := AsList(G); > l := Size(G); > pcgs := SpecialPcgs(G); > gens := List(pcgs); > perms := List(gens, x -> PermToGP(Permutation(x,as,OnRight), l)); > ords := RelativeOrders(pcgs); > return [Reversed(perms),Reversed(ords)]; > end; > > gap> ExportGroup(F/H); > [ [ [ 5, 6, 1, 2, 3, 4 ], [ 6, 3, 2, 5, 4, 1 ] ], [ 3, 2 ] ] > > Cheers, > Bill. > ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program.