Permutation group homomorphisms¶
AUTHORS:
 David Joyner (20060321): first version
 David Joyner (200806): fixed kernel and image to return a group, instead of a string.
EXAMPLES:
sage: G = CyclicPermutationGroup(4)
sage: H = DihedralGroup(4)
sage: g = G([(1,2,3,4)])
sage: phi = PermutationGroupMorphism_im_gens(G, H, map(H, G.gens()))
sage: phi.image(G)
Subgroup generated by [(1,2,3,4)] of (Dihedral group of order 8 as a permutation group)
sage: phi.kernel()
Subgroup generated by [()] of (Cyclic group of order 4 as a permutation group)
sage: phi.image(g)
(1,2,3,4)
sage: phi(g)
(1,2,3,4)
sage: phi.codomain()
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

class
sage.groups.perm_gps.permgroup_morphism.
PermutationGroupMorphism
¶ Bases:
sage.categories.morphism.Morphism
A settheoretic map between PermutationGroups.

image
(J)¶ J must be a subgroup of G. Computes the subgroup of H which is the image of J.
EXAMPLES:
sage: G = CyclicPermutationGroup(4) sage: H = DihedralGroup(4) sage: g = G([(1,2,3,4)]) sage: phi = PermutationGroupMorphism_im_gens(G, H, map(H, G.gens())) sage: phi.image(G) Subgroup generated by [(1,2,3,4)] of (Dihedral group of order 8 as a permutation group) sage: phi.image(g) (1,2,3,4)
sage: G = PSL(2,7) sage: D = G.direct_product(G) sage: H = D[0] sage: pr1 = D[3] sage: pr1.image(G) Subgroup generated by [(3,7,5)(4,8,6), (1,2,6)(3,4,8)] of (The projective special linear group of degree 2 over Finite Field of size 7) sage: G.is_isomorphic(pr1.image(G)) True

kernel
()¶ Returns the kernel of this homomorphism as a permutation group.
EXAMPLES:
sage: G = CyclicPermutationGroup(4) sage: H = DihedralGroup(4) sage: g = G([(1,2,3,4)]) sage: phi = PermutationGroupMorphism_im_gens(G, H, [1]) sage: phi.kernel() Subgroup generated by [(1,2,3,4)] of (Cyclic group of order 4 as a permutation group)
sage: G = PSL(2,7) sage: D = G.direct_product(G) sage: H = D[0] sage: pr1 = D[3] sage: G.is_isomorphic(pr1.kernel()) True


class
sage.groups.perm_gps.permgroup_morphism.
PermutationGroupMorphism_from_gap
(G, H, gap_hom)¶ Bases:
sage.groups.perm_gps.permgroup_morphism.PermutationGroupMorphism
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 in your program.
EXAMPLES:
sage: from sage.groups.perm_gps.permgroup_morphism import PermutationGroupMorphism_from_gap sage: G = PermutationGroup([[(1,2),(3,4)], [(1,2,3,4)]]) sage: H = G.subgroup([G([(1,2,3,4)])]) sage: PermutationGroupMorphism_from_gap(H, G, gap.Identity) Permutation group morphism: From: Subgroup generated by [(1,2,3,4)] of (Permutation Group with generators [(1,2)(3,4), (1,2,3,4)]) To: Permutation Group with generators [(1,2)(3,4), (1,2,3,4)] Defn: Identity

class
sage.groups.perm_gps.permgroup_morphism.
PermutationGroupMorphism_id
¶ Bases:
sage.groups.perm_gps.permgroup_morphism.PermutationGroupMorphism

class
sage.groups.perm_gps.permgroup_morphism.
PermutationGroupMorphism_im_gens
(G, H, gens=None)¶ Bases:
sage.groups.perm_gps.permgroup_morphism.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.
EXAMPLES:
sage: G = CyclicPermutationGroup(4) sage: H = DihedralGroup(4) sage: phi = PermutationGroupMorphism_im_gens(G, H, map(H, G.gens())); phi Permutation group morphism: From: Cyclic group of order 4 as a permutation group To: Dihedral group of order 8 as a permutation group Defn: [(1,2,3,4)] > [(1,2,3,4)] sage: g = G([(1,3),(2,4)]); g (1,3)(2,4) sage: phi(g) (1,3)(2,4) sage: images = ((4,3,2,1),) sage: phi = PermutationGroupMorphism_im_gens(G, G, images) sage: g = G([(1,2,3,4)]); g (1,2,3,4) sage: phi(g) (1,4,3,2)
AUTHORS:
 David Joyner (200602)

sage.groups.perm_gps.permgroup_morphism.
is_PermutationGroupMorphism
(f)¶ Returns True if the argument
f
is a PermutationGroupMorphism.EXAMPLES:
sage: from sage.groups.perm_gps.permgroup_morphism import is_PermutationGroupMorphism sage: G = CyclicPermutationGroup(4) sage: H = DihedralGroup(4) sage: phi = PermutationGroupMorphism_im_gens(G, H, map(H, G.gens())) sage: is_PermutationGroupMorphism(phi) True