Difference between revisions of "ApCoCoA-1:FreeAbelian groups"

From ApCoCoAWiki
Line 4: Line 4:
 
following:
 
following:
 
  Z(n) = <a_{1},...,a_{n} | [a_{i},a_{j}] = 1 for all i,j>
 
  Z(n) = <a_{1},...,a_{n} | [a_{i},a_{j}] = 1 for all i,j>
(Reference: Phillip A. Griffith (1970). Infinite Abelian group theory. Chicago Lectures in Mathematics. University of Chicago Press.)
+
 
 +
==== Reference ====
 +
Phillip A. Griffith, Infinite Abelian group theory. Chicago Lectures in Mathematics. University of Chicago Press, 1970.
 +
 
 
==== Computation ====
 
==== Computation ====
 
   /*Use the ApCoCoA package ncpoly.*/
 
   /*Use the ApCoCoA package ncpoly.*/
 
    
 
    
 
   // Number of free abelian group
 
   // Number of free abelian group
 
 
 
   MEMORY.N:=3;
 
   MEMORY.N:=3;
 
    
 
    
 
   Use ZZ/(2)[x[1..MEMORY.N],y[1..MEMORY.N]];
 
   Use ZZ/(2)[x[1..MEMORY.N],y[1..MEMORY.N]];
 
   NC.SetOrdering("LLEX");
 
   NC.SetOrdering("LLEX");
 +
 
 
   Define CreateRelationsFreeAbelian()
 
   Define CreateRelationsFreeAbelian()
 
     Relations:=[];
 
     Relations:=[];
Line 21: Line 24:
 
       EndFor;
 
       EndFor;
 
     EndFor;
 
     EndFor;
 
 
 
 
 
     Return Relations;
 
     Return Relations;
 
   EndDefine;
 
   EndDefine;
Line 28: Line 29:
 
   Relations:=CreateRelationsFreeAbelian();
 
   Relations:=CreateRelationsFreeAbelian();
 
   Relations;
 
   Relations;
 +
 
 
   GB:=NC.GB(Relations);
 
   GB:=NC.GB(Relations);
 
   GB;
 
   GB;

Revision as of 09:14, 23 August 2013

Description

Every element in a free abelian group can be written in only way as a finite linear combination. A representation is given by the following:

Z(n) = <a_{1},...,a_{n} | [a_{i},a_{j}] = 1 for all i,j>

Reference

Phillip A. Griffith, Infinite Abelian group theory. Chicago Lectures in Mathematics. University of Chicago Press, 1970.

Computation

 /*Use the ApCoCoA package ncpoly.*/
 
 // Number of free abelian group
 MEMORY.N:=3;
 
 Use ZZ/(2)[x[1..MEMORY.N],y[1..MEMORY.N]];
 NC.SetOrdering("LLEX");
 
 Define CreateRelationsFreeAbelian()
   Relations:=[];
   For Index1 := 1 To MEMORY.N Do
     For Index2 := 1 To MEMORY.N Do
 	  Append(Relations,[[x[Index1],x[Index2],y[Index1],y[Index2]],[1]]);
     EndFor;
   EndFor;
   Return Relations;
 EndDefine;
 
 Relations:=CreateRelationsFreeAbelian();
 Relations;
 
 GB:=NC.GB(Relations);
 GB;