Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I have been working with SAGE online, and have made some programs to test some hypothesis about finite groups. However, the pre-defined "named" groups in SAGE are quite limited (basically, the symmetric, dihedral, and alternating groups, plus PSL/PSU/PGU's and a couple sporadics). SAGE evidently interfaces with GAP, so what I would like to do is pull some groups out of GAP's SmallGroups library so that I can run them through my SAGE code.

I am able to create a GAP group in SAGE with

A = gap.SmallGroup(27,4)

which returns

Group( [ f1, f2, f3 ] )

I can get its elements using

A.Elements()

which are then given to me in symbolic form, e.g.

[ <identity> of ..., f1, f2, f3, f1^2, f1*f2, f1*f3, f2^2, ... etc. ]

I just don't know how to turn these elements into permutations that SAGE can work with. In other words, I want to take the gap.SmallGroup(27,4) and turn it into something of the form

Permutation Group with generators [(2,4,3), (1,3)(2,4), (1,4)(2,3)]

Could anyone show me how to do this?

share|improve this question
    
You might consider cross-posting this to Sage's dedicated stackoverflow-esque sage question site asksage. –  JSchlather Aug 22 '12 at 18:28
add comment

1 Answer

up vote 5 down vote accepted

After a bit of inspection, gap groups have a function AsPermGroup built in. Which in your instance returns

Group( 
[ ( 1,10,19, 2,11,20, 3,12,21)( 4,14,24, 5,15,22, 6,13,23)( 7,18,26,
8,16,27,
      9,17,25), ( 1, 4, 7)( 2, 5, 8)( 3, 6,
9)(10,13,16)(11,14,17)(12,15,18)
    (19,22,25)(20,23,26)(21,24,27), ( 1, 2, 3)( 4, 5, 6)( 7, 8,
9)(10,11,12)
    (13,14,15)(16,17,18)(19,20,21)(22,23,24)(25,26,27) ] )

Presumably you could then pass this into a sage group. A simple hacky way to do this would be to turn the gap permutation group into a string, and remove the group and (). Although I would imagine that Gap has more functionality for groups than Sage does.

share|improve this answer
    
Better to turn not the group, but its individual generators - try S:=Group((1,2),(1,2,3));; gens:=GeneratorsOfGroup(S);; List(gens,String); to see how it works. One can also use OpenMath package to have an output like e.g. <OMOBJ> <OMA> <OMS cd="permut1" name="permutation"/> <OMI>2</OMI> <OMI>1</OMI> </OMA> </OMOBJ> (see OMString from the OpenMath package). –  Alexander Konovalov Apr 23 '13 at 22:26
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.