Converting GAP groups into SAGE permutation groups.

1.4k Views Asked by At

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/PGUs 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?

1

There are 1 best solutions below

1
On

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.