Homomorphisms of abelian groups¶
Todo
- there must be a homspace first 
- there should be hom and Hom methods in abelian group 
AUTHORS:
- David Joyner (2006-03-03): initial version 
- class sage.groups.abelian_gps.abelian_group_morphism.AbelianGroupMap(parent)[source]¶
- Bases: - Morphism- A set-theoretic map between AbelianGroups. 
- class sage.groups.abelian_gps.abelian_group_morphism.AbelianGroupMorphism(G, H, genss, imgss)[source]¶
- Bases: - Morphism- Some python code for wrapping GAP’s - GroupHomomorphismByImagesfunction for abelian groups. Returns “fail” if- gensdoes not generate- selfor if the map does not extend to a group homomorphism,- self-- other.- EXAMPLES: - sage: G = AbelianGroup(3,[2,3,4],names='abc'); G Multiplicative Abelian group isomorphic to C2 x C3 x C4 sage: a,b,c = G.gens() sage: H = AbelianGroup(2,[2,3],names='xy'); H Multiplicative Abelian group isomorphic to C2 x C3 sage: x,y = H.gens() sage: from sage.groups.abelian_gps.abelian_group_morphism import AbelianGroupMorphism sage: phi = AbelianGroupMorphism(H,G,[x,y],[a,b]) # optional - gap_package_polycyclic - >>> from sage.all import * >>> G = AbelianGroup(Integer(3),[Integer(2),Integer(3),Integer(4)],names='abc'); G Multiplicative Abelian group isomorphic to C2 x C3 x C4 >>> a,b,c = G.gens() >>> H = AbelianGroup(Integer(2),[Integer(2),Integer(3)],names='xy'); H Multiplicative Abelian group isomorphic to C2 x C3 >>> x,y = H.gens() >>> from sage.groups.abelian_gps.abelian_group_morphism import AbelianGroupMorphism >>> phi = AbelianGroupMorphism(H,G,[x,y],[a,b]) # optional - gap_package_polycyclic - AUTHORS: - David Joyner (2006-02) 
 - image(S)[source]¶
- Return the image of the subgroup - Sby the morphism.- This only works for finite groups. - INPUT: - S– a subgroup of the domain group- G
 - EXAMPLES: - sage: G = AbelianGroup(2,[2,3],names='xy') sage: x,y = G.gens() sage: subG = G.subgroup([x]) # optional - gap_package_polycyclic sage: H = AbelianGroup(3,[2,3,4],names='abc') sage: a,b,c = H.gens() sage: phi = AbelianGroupMorphism(G,H,[x,y],[a,b]) # optional - gap_package_polycyclic sage: phi.image(subG) # optional - gap_package_polycyclic Multiplicative Abelian subgroup isomorphic to C2 generated by {a} - >>> from sage.all import * >>> G = AbelianGroup(Integer(2),[Integer(2),Integer(3)],names='xy') >>> x,y = G.gens() >>> subG = G.subgroup([x]) # optional - gap_package_polycyclic >>> H = AbelianGroup(Integer(3),[Integer(2),Integer(3),Integer(4)],names='abc') >>> a,b,c = H.gens() >>> phi = AbelianGroupMorphism(G,H,[x,y],[a,b]) # optional - gap_package_polycyclic >>> phi.image(subG) # optional - gap_package_polycyclic Multiplicative Abelian subgroup isomorphic to C2 generated by {a} 
 - kernel()[source]¶
- Only works for finite groups. - Todo - not done yet; returns a gap object but should return a Sage group. - EXAMPLES: - sage: H = AbelianGroup(3,[2,3,4],names='abc'); H Multiplicative Abelian group isomorphic to C2 x C3 x C4 sage: a,b,c = H.gens() sage: G = AbelianGroup(2,[2,3],names='xy'); G Multiplicative Abelian group isomorphic to C2 x C3 sage: x,y = G.gens() sage: phi = AbelianGroupMorphism(G,H,[x,y],[a,b]) # optional - gap_package_polycyclic sage: phi.kernel() # optional - gap_package_polycyclic Group([ ]) sage: H = AbelianGroup(3,[2,2,2],names='abc') sage: a,b,c = H.gens() sage: G = AbelianGroup(2,[2,2],names='x') sage: x,y = G.gens() sage: phi = AbelianGroupMorphism(G,H,[x,y],[a,a]) # optional - gap_package_polycyclic sage: phi.kernel() # optional - gap_package_polycyclic Group([ f1*f2 ]) - >>> from sage.all import * >>> H = AbelianGroup(Integer(3),[Integer(2),Integer(3),Integer(4)],names='abc'); H Multiplicative Abelian group isomorphic to C2 x C3 x C4 >>> a,b,c = H.gens() >>> G = AbelianGroup(Integer(2),[Integer(2),Integer(3)],names='xy'); G Multiplicative Abelian group isomorphic to C2 x C3 >>> x,y = G.gens() >>> phi = AbelianGroupMorphism(G,H,[x,y],[a,b]) # optional - gap_package_polycyclic >>> phi.kernel() # optional - gap_package_polycyclic Group([ ]) >>> H = AbelianGroup(Integer(3),[Integer(2),Integer(2),Integer(2)],names='abc') >>> a,b,c = H.gens() >>> G = AbelianGroup(Integer(2),[Integer(2),Integer(2)],names='x') >>> x,y = G.gens() >>> phi = AbelianGroupMorphism(G,H,[x,y],[a,a]) # optional - gap_package_polycyclic >>> phi.kernel() # optional - gap_package_polycyclic Group([ f1*f2 ])