# Finding the subgroup of $(\mathbb Z_{56},+)$ which is isomorphic with $(\mathbb Z_{14},+)$ by GAP

I am sorting some easy questions for the students in Group Theory I. One of them is:

Is $(\mathbb Z_{14},+)$ isomorphic to a subgroup of $(\mathbb Z_{35},+)$? What about $(\mathbb Z_{56},+)$?

I know the first claim is false because if it is true then I have $14\nmid 35$ which is a contradiction. For the second one, I see the function $f:(\mathbb Z_{14},+)\to(\mathbb Z_{56},+), f(g)=4g$ is a nice one-one homomorphism.

My problem is to find $f(\mathbb Z_{14})$ by using GAP. I know how to define Cyclic Groups or Free Groups in GAP's environment also. Thanks for the ANY help.

• do you just want to find a subgroup of order 14 from the group $\mathbb{Z}_{56}$? – Easy May 14 '13 at 12:46
• any subgroup of a cyclic group is cyclic and uniquely determined by its order. In other words, as long as you find a subgroup that is order 14, then you reach the target! – Easy May 14 '13 at 12:53
• @Easy: How can we find it via that function? I mean $f(Z_{14})$. – mrs May 14 '13 at 12:54
• Since we know that the possible image is unique, we can use the function "Filtered" to do what we want. – Easy May 14 '13 at 12:57
• @Easy: Is that installed on your system? – mrs May 14 '13 at 13:00

gap> G:=CyclicGroup(56);
<pc group of size 56 with 4 generators>
gap> S:=AllSubgroups(G); # available since GAP 4.5, mainly for teaching purposes
[ Group([ <identity> of ... ]), Group([ f3*f4^3 ]), Group([ f2*f3*f4 ]),
Group([ f4 ]), Group([ f1*f2*f3 ]), Group([ f3 ]), Group([ f2 ]),
Group([ f1, f2, f3, f4 ]) ]
gap> H:=Filtered(S,x->Size(x)=14);
[ Group([ f3 ]) ]

• Thanks. I've replaced Subgroups from the SONATA package, used in the original answer (which would not work if SONATA is not loaded), by AllSubgroups introduced in GAP 4.5 (see lib/teaching.g) and intended primarily for use in class for small examples (in a general case it is recommended to use ConjugacyClassesSubgroups instead). – Alexander Konovalov May 16 '13 at 21:12
• P.S. Forgot to post a link to 7.7: How do I get the subgroups of my group? from the GAP F.A.Q. – Alexander Konovalov May 16 '13 at 21:22
• @AlexanderKonovalov: Thanks Alexander for your nice supervision. – mrs May 26 '13 at 14:55
• @BabakS.: you're welcome! – Alexander Konovalov May 27 '13 at 15:52

Since we know it's cyclic, we just have to find an element of order $14$:

G:=CyclicGroup(56);
gen:=Filtered(G,g->Order(g)=14);
Group(gen[1]);

• I appreciate you for the codes and your time. :-) – mrs May 14 '13 at 13:32
• It's nice to be appreciated. But perhaps Alexander Konovalov will come along shortly and trounce our efforts. – Douglas S. Stones May 14 '13 at 13:34
• @DouglasS.Stones: :-) If I would be writing my reply here, I would try to construct an example similar to the one by Jack, since the question asks about additive groups and an image of a mapping. However, in the class (dependently on the familiarity of the audience with GAP and the topic), finding an element of order 14 and using it to generate a group may be also quite useful, covering many topics e.g. algorithmic thinking; isomorphism between additive and multiplicative groups; one can ask to explain what happens if the subgroup will be generated by another element of order 14, etc. – Alexander Konovalov May 16 '13 at 21:38

GAP prefers multiplicative groups. However, you can make some limited use of additive groups if you are willing to inform GAP of a few things it doesn't calculate automatically.

gap> g:=Integers mod 14;
(Integers mod 14)
gap> h:=Integers mod 56;
(Integers mod 56)
gap> f:=MappingByFunction( g, h, x -> 4*Int(x)*One(h) );
MappingByFunction( (Integers mod 14), (Integers mod 56), function( x ) ... end )
gap> SetRespectsZero( f, Image( f, Zero(Source(f))) = Zero(Range(f)) );
xy -> Image(f,xy[1]+xy[2]) = Image(f,xy[1])+Image(f,xy[2]) ));