AUTHORS:
EXAMPLES:
sage: G = CyclicPermutationGroup(4)
sage: gens = G.gens()
sage: H = DihedralGroup(4)
sage: g = G([(1,2,3,4)])
sage: phi = PermutationGroupMorphism_im_gens( G, H, gens, gens)
sage: phi.image(G)
Permutation Group with generators [(1,2,3,4)]
sage: phi.kernel()
Permutation Group with generators [()]
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
Bases: sage.categories.morphism.Morphism
A set-theoretic map between PermutationGroups.
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, 'phi:=Identity','phi')
Homomorphism : Subgroup of Permutation Group with generators [(1,2)(3,4), (1,2,3,4)] generated by [(1,2,3,4)] --> Permutation Group with generators [(1,2)(3,4), (1,2,3,4)]
J must be an element or a subgroup of G. Computes the subgroup of H which is the image of J.
EXAMPLES:
sage: G = PSL(2,7)
sage: D = G.direct_product(G)
sage: H = D[0]
sage: pr1 = D[3]
sage: pr1.image(G)
Permutation Group with generators [(3,7,5)(4,8,6), (1,2,6)(3,4,8)]
sage: G.is_isomorphic(pr1.image(G))
True
Computes the subgroup of the domain group which is the kernel of self.
EXAMPLES:
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
TODO: NOT FINISHED YET!! Return the identity homomorphism from X to itself.
EXAMPLES:
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: 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)
AUTHORS:
J must be a subgroup of G. Computes the subgroup of H which is the image of J.
EXAMPLES:
sage: G = CyclicPermutationGroup(4)
sage: gens = G.gens()
sage: H = DihedralGroup(4)
sage: g = G([(1,2,3,4)])
sage: phi = PermutationGroupMorphism_im_gens( G, H, gens, gens)
sage: phi.image(G)
Permutation Group with generators [(1,2,3,4)]
sage: phi.image(g)
(1,2,3,4)