Multiplicative Cyclic Groups by Maple
Kahtan H. Alzubaidy
Department of Mathematics, Faculty of Science, University of Benghazi
E-mail: kahtanalzubaidy@yahoo.com
Introduction
In this article we introduce cyclic groups in multiplicative notations by using Maple 13. Group table,order table,and inverse table are given.
All generators and all subgroups of a multiplicative cyclic group are given also. Hasse diagrams of subgroup lattices are shown. All homomorphisms and automorphisms of such groups are computed as well as the kernel and image of a homomorphism.
Reference
Procedures
1) Group Table
C(n,a) denotes a multiplicative cyclic group of order n and generator a .
GT(n,a) is the group table of C(n,a).
C:=proc(n,a);
GroupElements,[seq(a^i, i = 0 .. n-1)];
end proc;
GT:=proc(n,a)
local M,L ;L:=[seq(a^i, i =0..n-1)];
M:=Matrix(n,(i,j)-> L[i]*L[j]);
GroupTable,algsubs(a^n=1,M);
2) Element Order Table
eo(a, i ,n) dentes the order of
OT(n,a) is the order table.
eo:=proc(a,i,n)
n/gcd(n,i);
OT:=proc(n,a)
local L,H;L:=[seq(eo(a,i,n),i=0..n-1)];H:=[seq(a^i, i =0..n-1)];
OrderTable,Transpose(Matrix(2,n,[H,L]));
3)Element Inverse Table
ei(a, i, n) denotes the inverse of
IT(n,a) is the inverse table.
ei:= proc(a,i,n)
a^(n-i);
IT:=proc(n,a)
local L,H;
L:=[seq(a^i, i =0..n-1)];
H:=algsubs(a^(n)=1,[seq(a^(n-i),i=0..n-1)]);
InverseTable,Transpose(Matrix(2,n,[L,H]));
4) Generators
AG(n,a) denotes all generators of C(n,a).
AG:=proc(n,a)
phi(n), generators, map(x->a^x,select(r->is(igcd(r,n)=1),[$1..n-1]));
5) Subgroups
. That is
SG(a, k, n) denotes the subgroup generated by
AS(n,a) is the set all subgroups of C(n,a).
SG:=proc(a,k,n)
sort(algsubs(a^(n)=1,{seq((a^(k))^(i-1),i=1..(n)/(gcd(n,k)))}));
AS:=proc(n,a)
local S; S:= {seq(SG(a,t,n),t=0..n-1)};
S, print( nops(S) ,subgroups);
<
There is a 1-1 correspondence between the lattice L of all subgroups of with order 4 and the set The correspondence is given by S↔ |S| for any subgroup S of
suitable rotations.
Hasse:=proc(n)
local V,VV,sdiv,r,nc,L,x,y,G;
V:=divisors(n);
VV:=convert(V,list);
sdiv:=(x,y)->(x<>y) and is (y/x,integer);
r:=(x,z,y)->is(sdiv(x,z) and sdiv(z,y));
nc:=(x,y)->convert({ seq(not(r(x,z,y)),z in V)},list)[1];
L:={};
for x in V do for y in V do if (sdiv(x,y) and nc(x,y)) then L:=L union {[x,y]}fi od od;
L;
G:=Digraph(VV,L);
DrawGraph(G,style=spring);
7) Group Homomorphisms
Hom(m,a,n,b) denotes the set of all all group homomorphisms
Aut(n,a) is the set of all automorphisms of
Hom:=proc(m,a,n,b)
local L;
L:=select(x->is(igcd(m,n)*igcd(x,n)/n ,integer),[$0..n-1]);
'f(a)'=seq(b^(r mod n),r in L), nops(L),homomorphisms;
Aut:=proc(n,a)
local L;L:=select(x->is (igcd(x,n)=1),[$1..n]);
'f(a)'=seq(a^r,r in L), nops(L),automorphisms;
8) Kernel and Image
A group homomorphisms
The following procedures are to check that
First isomorphism theorem implies that |Ker| |Ima|=|G|.
CHK:=proc(m,a,n,b,r)
if is(igcd(m,n)*igcd(r,n)/n,integer) then print(true)else print(false) fi;end proc;
Ker:=proc(m,a,n,b,r)
local K;
K:=select(x->is(r*x mod n =0),{$0..m-1});
{seq(a^(y mod m),y in K)};
Ima:=proc(m,a,n,b,r)
local M;
M:={seq( r*t mod n, t=0..m-1)};
{seq(b^x , x in M)};
Examples
1) H(18,a,12,b,4)
2) H(12,a,18,b,4)
3) H(10,a,10,a,7);