ApCoCoA-1:Dicyclic groups
From ApCoCoAWiki
Description
Every cyclic group is generated by a single element a. If n is finite the group is isomorphic to Z/nZ, otherwise it can be interpreted as Z with the addition of integers as the group operation. For every cyclic group there only exists one subgroup containing a, the group itself.
C(n) = <a | a^{n} = 1>
(Reference: Gallian, Joseph (1998), Contemporary abstract algebra (4th ed.), Boston: Houghton Mifflin, Chapter 4
Computation
/*Use the ApCoCoA package ncpoly.*/ // Number of Dicyclic group (note that the order is 4N) MEMORY.N:=5; Use ZZ/(2)[a,b,c,d]; NC.SetOrdering("LLEX"); Define CreateRelationsDicyclic() Relations:=[]; // add the relations of the invers elements ac = 1 and bd = 1 Append(Relations, [[a,c],[-1]]); Append(Relations, [[c,a],[-1]]); Append(Relations, [[b,d],[-1]]); Append(Relations, [[d,b],[-1]]); // add the relation a^{n} = b^2 Append(Relations, [[a^(MEMORY.N)], [-b,b]]); // add the relation a^{2n} = 1 Append(Relations, [[a^(2*MEMORY.N)], [-1]]); // add the relation bab^{-1} = a^{-1} Append(Relations, [[b,a,d],[-c]]); Return Relations; EndDefine; Relations:=CreateRelationsDicyclic(); Relations; GB:=NC.GB(Relations); GB;
// Second Implementation without invers elements
/*Use the ApCoCoA package ncpoly.*/ // Number of Dicyclic group (note that the order is 4N) MEMORY.N:=5; Use ZZ/(2)[a,b,c,d]; NC.SetOrdering("LLEX"); Define CreateRelationsDicyclic() Relations:=[]; // add the relation a^{n} = b^2 Append(Relations, [[a^(MEMORY.N)], [-b,b]]); // add the relation a^{2n} = 1 Append(Relations, [[a^(2*MEMORY.N)], [-1]]); // add the relation b^{-1}ab = a^{-1} Append(Relations, [[b^(3),a,b],[a^(2*MEMORY.N-1)]]); Return Relations; EndDefine;