|
|
Hom(G, H) : GrpAb, GrpAb -> GrpAb, Map
Given finite abelian groups G and H, return an abelian group
A isomorphic to (Hom)(G, H), and a transfer map t such
that, given an element a of A, t(a) yields the corresponding
(Magma Map type) homomorphism from G to H. The structure
of (Hom)(G, H) may thus be analyzed by examining A.
Given finite abelian groups G and H, return a sequence of
(Z-module) generators of (Hom)(G, H). The generators
are returned as actual (Magma Map type) homomorphisms. Note
that (Hom)(G, H) is usually not free, so it is difficult
to generate all homomorphisms uniquely using the generators alone
(use Hom or Homomorphisms if that is desired).
AllHomomorphisms(G, H) : GrpPC, GrpPC -> [Map]
Homomorphisms(G, H) : GrpAb, GrpAb -> [Map]
Given finite abelian groups G and H, return a sequence containing
all elements of (Hom)(G, H). The elements
are returned as actual (Magma Map type) homomorphisms.
Note that this function simply uses Hom, transferring each
element of the returned group to the actual Magma Map type homomorphism.
We examine A=(Hom)(G, H), for certain abelian groups G and H.
> G := AbelianGroup([2, 3]);
> H := AbelianGroup([4, 6]);
> A, t := Hom(G, H);
> #A;
12
> A;
Abelian Group isomorphic to Z/2 + Z/6
Defined on 2 generators
Relations:
2*A.1 = 0
6*A.2 = 0
> h := t(A.1);
> h;
Mapping from: GrpAb: G to GrpAb: H
> h(G.1);
3*H.2
> h(G.2);
0
We now enumerate all elements of A and examine the images of each generator
of G under each homomorphism. We note that each possible list of
images occurs only once.
> I := [<h(G.1), h(G.2)> where h is t(x): x in A];
> I;
[
<0, 0>,
<3*H.2, 0>,
<2*H.1, 2*H.2>,
<2*H.1 + 3*H.2, 2*H.2>,
<0, 4*H.2>,
<3*H.2, 4*H.2>,
<2*H.1, 0>,
<2*H.1 + 3*H.2, 0>,
<0, 2*H.2>,
<3*H.2, 2*H.2>,
<2*H.1, 4*H.2>,
<2*H.1 + 3*H.2, 4*H.2>
]
> #I;
12
> #Set(I);
12
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|
|