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

From ApCoCoAWiki
(New page: === <div id="FreeAbelian_groups">Free abelian groups</div> === ==== Description ==== Every element in a free abelian group can be written in o...)
 
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
=== <div id="FreeAbelian_groups">[[:ApCoCoA:Symbolic data#Free_abelian_group|Free abelian groups]]</div> ===
+
=== <div id="FreeAbelian_groups">[[:ApCoCoA:Symbolic data#Free_abelian_group|Free Abelian Groups]]</div> ===
 
==== Description ====
 
==== Description ====
Every element in a free abelian group can be written in only way as a finite linear combination. One possible representation is the
+
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:
 
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:=[];
    For Index1 := 1 To MEMORY.N Do
+
  // add the relations of the inverse elements
      For Index2 := 1 To MEMORY.N Do
+
  For Index1 := 1 To MEMORY.N Do
    Append(Relations,[[x[Index1],x[Index2],y[Index1],y[Index2]],[1]]);
+
  Append(Relations,[[x[Index1],y[Index1]],[1]]);
      EndFor;
+
  Append(Relations,[[y[Index1],x[Index1]],[1]]);
    EndFor;
+
  EndFor;
 
+
  // add the relations [x_{i},x_{j}]=1
 
+
  For Index1 := 1 To MEMORY.N Do
    Return Relations;
+
    For Index2 := 1 To MEMORY.N Do
  EndDefine;
+
  Append(Relations,[[x[Index1],x[Index2],y[Index1],y[Index2]],[1]]);
 
+
    EndFor;
  Relations:=CreateRelationsFreeAbelian();
+
  EndFor;
  Relations;
+
  Return Relations;
  GB:=NC.GB(Relations);
+
EndDefine;
  GB;
+
 +
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>

Latest revision as of 10:49, 6 May 2014

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>