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

870 Views Asked by At

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.

3

There are 3 best solutions below

4
On BEST ANSWER
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 ]) ]
3
On

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]);
1
On

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)) );
gap> SetRespectsAddition( f, ForAll( Tuples(Source(f),2),
     xy -> Image(f,xy[1]+xy[2]) = Image(f,xy[1])+Image(f,xy[2]) ));
gap> IsAdditiveGroupHomomorphism(f);
true
gap> Image(f);
[ ZmodnZObj( 0, 56 ), ZmodnZObj( 4, 56 ), ZmodnZObj( 8, 56 ),
  ZmodnZObj( 12, 56 ), ZmodnZObj( 16, 56 ), ZmodnZObj( 20, 56 ),
  ZmodnZObj( 24, 56 ), ZmodnZObj( 28, 56 ), ZmodnZObj( 32, 56 ),
  ZmodnZObj( 36, 56 ), ZmodnZObj( 40, 56 ), ZmodnZObj( 44, 56 ),
  ZmodnZObj( 48, 56 ), ZmodnZObj( 52, 56 ) ]
gap> Size(Kernel(f));
1
gap> IsInjective(f);
true