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

From ApCoCoAWiki
Line 9: Line 9:
 
   /*Use the ApCoCoA package ncpoly.*/
 
   /*Use the ApCoCoA package ncpoly.*/
 
    
 
    
   // Number of free group
+
   // Number of free group
 
    
 
    
 
   MEMORY.N:=4;
 
   MEMORY.N:=4;
Line 15: Line 15:
 
   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 CreateRelationsFree()
 
     Relations:=[];
 
     Relations:=[];
 
     For Index1 := 1 To MEMORY.N Do
 
     For Index1 := 1 To MEMORY.N Do
Line 24: Line 24:
 
   EndDefine;
 
   EndDefine;
 
    
 
    
   Relations:=CreateRelationsFreeAbelian();
+
   Relations:=CreateRelationsFree();
 
   Relations;
 
   Relations;
 
   GB:=NC.GB(Relations);
 
   GB:=NC.GB(Relations);
 
   GB;
 
   GB;

Revision as of 08:26, 16 August 2013

Description

The relations of a free group with n generators only consists of the existence of the invers elements. Any element of a free group has a unique representation.

 F(n) = <a_{1},...,a_{n} | a_{i}a_{i}^{-1} = a_{i}^{-1}a_{i} = 1>

(Reference: Kharlampovich, Olga; Myasnikov, Alexei (2006). "Elementary theory of free non-abelian groups". J. Algebra 302 (2): 451–552)

Computation

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