5
$\begingroup$

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.

$\endgroup$
10
  • $\begingroup$ do you just want to find a subgroup of order 14 from the group $\mathbb{Z}_{56}$? $\endgroup$
    – Easy
    May 14, 2013 at 12:46
  • $\begingroup$ 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! $\endgroup$
    – Easy
    May 14, 2013 at 12:53
  • $\begingroup$ @Easy: How can we find it via that function? I mean $f(Z_{14})$. $\endgroup$
    – Mikasa
    May 14, 2013 at 12:54
  • $\begingroup$ Since we know that the possible image is unique, we can use the function "Filtered" to do what we want. $\endgroup$
    – Easy
    May 14, 2013 at 12:57
  • $\begingroup$ @Easy: Is that installed on your system? $\endgroup$
    – Mikasa
    May 14, 2013 at 13:00

3 Answers 3

5
$\begingroup$
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 ]) ]
$\endgroup$
4
  • $\begingroup$ 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). $\endgroup$ May 16, 2013 at 21:12
  • $\begingroup$ 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. $\endgroup$ May 16, 2013 at 21:22
  • $\begingroup$ @AlexanderKonovalov: Thanks Alexander for your nice supervision. $\endgroup$
    – Mikasa
    May 26, 2013 at 14:55
  • $\begingroup$ @BabakS.: you're welcome! $\endgroup$ May 27, 2013 at 15:52
4
$\begingroup$

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]);
$\endgroup$
3
  • $\begingroup$ I appreciate you for the codes and your time. :-) $\endgroup$
    – Mikasa
    May 14, 2013 at 13:32
  • $\begingroup$ It's nice to be appreciated. But perhaps Alexander Konovalov will come along shortly and trounce our efforts. $\endgroup$ May 14, 2013 at 13:34
  • $\begingroup$ @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. $\endgroup$ May 16, 2013 at 21:38
4
$\begingroup$

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
$\endgroup$
1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .