ApCoCoA-1:FreeAbelian groups

From ApCoCoAWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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:=[];
  // add the relations of the inverse elements
  For Index1 := 1 To MEMORY.N Do
  	 Append(Relations,[[x[Index1],y[Index1]],[1]]);
  	 Append(Relations,[[y[Index1],x[Index1]],[1]]);
  EndFor;
  // add the relations [x_{i},x_{j}]=1
  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,31,1,100,1000);
Gb;

Example in Symbolic Data Format

<FREEALGEBRA createdAt="2014-06-05" createdBy="strohmeier">
	<vars>x1,x2,x3,y1,y2,y3</vars>
	<uptoDeg>11</uptoDeg>
	<basis>
	<ncpoly>x1*y1-1</ncpoly>
	<ncpoly>y1*x1-1</ncpoly>
	<ncpoly>x2*y2-1</ncpoly>
	<ncpoly>y2*x2-1</ncpoly>
	<ncpoly>x3*y3-1</ncpoly>
	<ncpoly>y3*x3-1</ncpoly>
	<ncpoly>x1*x1*y1*y1-1</ncpoly>
	<ncpoly>x1*x2*y1*y2-1</ncpoly>
	<ncpoly>x1*x3*y1*y3-1</ncpoly>
	<ncpoly>x2*x1*y2*y1-1</ncpoly>
	<ncpoly>x2*x2*y2*y2-1</ncpoly>
	<ncpoly>x2*x3*y2*y3-1</ncpoly>
	<ncpoly>x3*x1*y3*y1-1</ncpoly>
	<ncpoly>x3*x2*y3*y2-1</ncpoly>
	<ncpoly>x3*x3*y3*y3-1</ncpoly>
	</basis>
	<Comment>The partial LLex Gb has 180 elements</Comment>
	<Comment>Free Abelian Group_3</Comment>
</FREEALGEBRA>