| 1 | initial version |
Here is the beginning of an attempt (unfortunately not a solution). You can construct the groups as follows:
sage: g1 = PermutationGroup([[(2, 3), (4, 5)]])
sage: g1
Permutation Group with generators [(2,3)(4,5)]
sage: g2 = PermutationGroup([[(1, 5), (3, 4)]])
sage: g2
Permutation Group with generators [(1,5)(3,4)]
However, i could not find the Sage equivalent of AllHomomorphisms. So we can try to pass from Sage to Gap to Sage again:
sage: G1 = gap(g1)
sage: G2 = gap(g2)
sage: CG = gap.function_call('AllHomomorphisms',[G,H])
sage: CG
[ GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group(
[ (1,5)(3,4) ] ), [ (2,3)(4,5) ], [ () ] ),
GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group(
[ (1,5)(3,4) ] ), [ (2,3)(4,5) ], [ (1,5)(3,4) ] ) ]
sage: cg = CG.sage()
NotImplementedError: Unable to parse output: [ GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group( [ (1,5)(3,4) ] ), [ (2,3)(4,5) ], [ () ] ), GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group( [ (1,5)(3,4) ] ), [ (2,3)(4,5) ], [ (1,5)(3,4) ] ) ]
So, you have to tell Sage that it is a list:
sage: list(cg)
[GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group( [ (1,5)(3,4) ] ),
[ (2,3)(4,5) ], [ () ] ),
GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group( [ (1,5)(3,4) ] ),
[ (2,3)(4,5) ], [ (1,5)(3,4) ] )]
Then we can access some element of the list:
sage: M = list(cg)[0]
sage: M
GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group( [ (1,5)(3,4) ] ),
[ (2,3)(4,5) ], [ () ] )
sage: type(M)
<class 'sage.interfaces.gap.GapElement'>
But this particular morphism can not be put back into Sage:
sage: M.sage()
NotImplementedError: Unable to parse output: GroupHomomorphismByImages( Group( [ (2,3)(4,5) ] ), Group( [ (1,5)(3,4) ] ), [ (2,3)(4,5) ], [ () ] )
Note that there exists a PermutationGroupMorphism_im_gens that works similarly to gap's GroupHomomorphismByImages, so the last step could be to parse M.str() and use PermutationGroupMorphism_im_gens as a replacement of GroupHomomorphismByImages (see PermutationGroupMorphism_im_gens? for the documentation).
This is of course unsatisfactory handiwork. The right way is of course to interface GroupHomomorphismByImages in Sage.
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.