# 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, 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;