10.7 Permutation group homomorphisms

Module: sage.groups.perm_gps.permgroup_morphism

Author: David Joyner (2006-03-21): first version

sage: G = CyclicPermutationGroup(4)
sage: gens = G.gens()
sage: H = DihedralGroup(4)
sage: g = G([(1,2,3,4)]); g
(1,2,3,4)
sage: phi = PermutationGroupMorphism_im_gens( G, H, gens, gens)
sage: phi.image(G)
'Group([ (1,2,3,4) ])'
sage: phi.kernel()
Group(())
sage: phi.image(g)                  
'(1,2,3,4)'
sage: phi(g)                        
'(1,2,3,4)'
sage: phi.range()
Dihedral group of order 8 as a permutation group
sage: phi.codomain()
Dihedral group of order 8 as a permutation group
sage: phi.domain()
Cyclic group of order 4 as a permutation group

Module-level Functions

gap_format( x)

Put a permutation in Gap format, as a string.

is_PermutationGroupMorphism( f)

Class: PermutationGroupMap

class PermutationGroupMap
A set-theoretic map between PermutationGroups.
PermutationGroupMap( self, parent)

Special Functions: _repr_type

Class: PermutationGroupMorphism

class PermutationGroupMorphism
Some python code for wrapping GAP's GroupHomomorphismByImages function but only for permutation groups. Can be expensive if G is large. Returns "fail" if gens does not generate self or if the map does not extend to a group homomorphism, self -> other.

       sage: G = CyclicPermutationGroup(4)
       sage: gens = G.gens()
       sage: H = DihedralGroup(4)
       sage: g = G([(1,3),(2,4)]); g
(1,3)(2,4)
sage: phi = PermutationGroupMorphism_im_gens( G, H, gens, gens)
       sage: phi
       Homomorphism : Cyclic group of order 4 as a permutation group -->
Dihedral group of order 8 as a permutation group
sage: phi(g) 
'(1,3)(2,4)'
       sage: gens1 = G.gens()
       sage: gens2 = ((4,3,2,1),)
       sage: phi = PermutationGroupMorphism_im_gens( G, G, gens1, gens2)
       sage: g = G([(1,2,3,4)]); g
(1,2,3,4)
sage: phi(g)
'(1,4,3,2)'

AUTHOR: David Joyner (2-2006)

PermutationGroupMorphism( self, G, H, gensG, imgsH)

Functions: codomain,$  $ domain,$  $ image,$  $ kernel,$  $ range

image( self, J)

J must be a subgroup of G. Computes the subgroup of H which is the image of J.

Special Functions: __call__,$  $ __repr__,$  $ __str__,$  $ _latex_

__call__( self, g)

Some python code for wrapping GAP's Images function but only for permutation groups. Returns an error if g is not in G.

    sage: G = CyclicPermutationGroup(4)
    sage: gens = G.gens()
       sage: H = DihedralGroup(4)
       sage: phi = PermutationGroupMorphism_im_gens( G, H, gens, gens)
       sage: g = G([(1,3),(2,4)]); g
(1,3)(2,4)
       sage: phi(g)
'(1,3)(2,4)'

Class: PermutationGroupMorphism_from_gap

class PermutationGroupMorphism_from_gap
This is a Python trick to allow SAGE programmers to create a group homomorphism using GAP using very general constructions. An example of its usage is in the direct_product instance method of the PermutationGroup_generic class in permgroup.py.

Basic syntax:

PermutationGroupMorphism_from_gap(domain_group, range_group,'phi:=gap_hom_command;','phi') And don't forget the line: from sage.groups.perm_gps.permgroup_morphism import PermutationGroupMorphism_from_gap to your program.

PermutationGroupMorphism_from_gap( self, G, H, gap_hom_str, [name=phi])

Functions: codomain,$  $ domain,$  $ image,$  $ kernel,$  $ range

image( self, J)

J must be a subgroup of G. Computes the subgroup of H which is the image of J.

Special Functions: __call__,$  $ __repr__,$  $ __str__,$  $ _latex_

__call__( self, g)

Some python code for wrapping GAP's Images function but only for permutation groups. Returns an error if g is not in G.

Class: PermutationGroupMorphism_id

class PermutationGroupMorphism_id
TODO: NOT FINISHED YET!! Return the identity homomorphism from X to itself.

PermutationGroupMorphism_id( self, X)

Special Functions: _repr_defn

Class: PermutationGroupMorphism_im_gens

class PermutationGroupMorphism_im_gens
Some python code for wrapping GAP's GroupHomomorphismByImages function but only for permutation groups. Can be expensive if G is large. Returns "fail" if gens does not generate self or if the map does not extend to a group homomorphism, self -> other.

       sage: G = CyclicPermutationGroup(4)
       sage: gens = G.gens()
       sage: H = DihedralGroup(4)
       sage: g = G([(1,3),(2,4)]); g
(1,3)(2,4)
sage: phi = PermutationGroupMorphism_im_gens( G, H, gens, gens)
       sage: phi
       Homomorphism : Cyclic group of order 4 as a permutation group -->
Dihedral group of order 8 as a permutation group
sage: phi(g) 
'(1,3)(2,4)'
       sage: gens1 = G.gens()
       sage: gens2 = ((4,3,2,1),)
       sage: phi = PermutationGroupMorphism_im_gens( G, G, gens1, gens2)
       sage: g = G([(1,2,3,4)]); g
(1,2,3,4)
sage: phi(g)
'(1,4,3,2)'

AUTHOR: David Joyner (2-2006)

PermutationGroupMorphism_im_gens( self, G, H, gensG, imgsH)

Functions: codomain,$  $ domain,$  $ image,$  $ kernel,$  $ range

image( self, J)

J must be a subgroup of G. Computes the subgroup of H which is the image of J.

Special Functions: __call__,$  $ __repr__,$  $ __str__,$  $ _latex_

__call__( self, g)

Some python code for wrapping GAP's Images function but only for permutation groups. Returns an error if g is not in G.

    sage: G = CyclicPermutationGroup(4)
    sage: gens = G.gens()
       sage: H = DihedralGroup(4)
       sage: phi = PermutationGroupMorphism_im_gens( G, H, gens, gens)
       sage: g = G([(1,3),(2,4)]); g
(1,3)(2,4)
       sage: phi(g)
'(1,3)(2,4)'

See About this document... for information on suggesting changes.