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;