# ApCoCoA-1:Coxeter Group F4

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

### Coxeter Group F4

#### Description

The F4 group is a Coxeter group. Their relations results of a Matrix, the Coxetermatrix. The Matrix with i lines and j columns gives the following relations:

```<r_1,...,r_n|(r_ir_j)^m_ij
```

-the relation mii means: (r_ir_i)^1=1 for all i

-and other generators r_i, r_j commute.

F4 has the following presentation:

```F4 = <v,x,y,z | v^2 = x^2 = y^2 = z^2 = (vx)^3 =(vy)^2 = (vz)^2 =(xy)^4 = (xz)^2 =(yz)^3 = 1>
```

#### Computation

```/*Use the ApCoCoA package ncpoly.*/

// Define Coxeter matrix
F:=Mat([[1,3,2,2],[3,1,4,2],[2,4,1,3],[2,2,3,1]]);

MEMORY.F1 := F[1,2]; //=F[2,1]
MEMORY.F2 := F[1,3]; //=F[3,1]
MEMORY.F3 := F[1,4]; //=F[4,1]
MEMORY.F4 := F[2,3]; //=F[3,2]
MEMORY.F5 := F[2,4]; //=F[4,2]
MEMORY.F6 := F[3,4]; //=F[4,3]

Use ZZ/(2)[v,x,y,z];
NC.SetOrdering("LLEX");

Define CreateRelationsCoxetergroupF4()
Relations:=[];

//add the inverse relations
Append(Relations,[[v,v],[1]]);
Append(Relations,[[x,x],[1]]);
Append(Relations,[[y,y],[1]]);
Append(Relations,[[z,z],[1]]);

// add the relation (vx)^F[1,2] = 1
Buffer12:=[];
For Index1 := 1 To MEMORY.F1 Do
Append(Buffer12,v);
Append(Buffer12,x);
EndFor;
Append(Relations,[Buffer12,[1]]);

// add the relation (xv)^F[2,1] = 1
Buffer21:=[];
For Index1 := 1 To MEMORY.F1 Do
Append(Buffer21,x);
Append(Buffer21,v);
EndFor;
Append(Relations,[Buffer21,[1]]);

// add the relation (vy)^F[1,3] = 1
Buffer13:=[];
For Index1 := 1 To MEMORY.F2 Do
Append(Buffer13,v);
Append(Buffer13,y);
EndFor;
Append(Relations,[Buffer13,[1]]);

// add the relation (yv)^F[3,1] = 1
Buffer31:=[];
For Index1 := 1 To MEMORY.F2 Do
Append(Buffer31,v);
Append(Buffer31,y);
EndFor;
Append(Relations,[Buffer31,[1]]);

// add the relation (vz)^F[1,4] = 1
Buffer14:=[];
For Index1 := 1 To MEMORY.F3 Do
Append(Buffer14,v);
Append(Buffer14,z);
EndFor;
Append(Relations,[Buffer14,[1]]);

// add the relation (zv)^F[4,1] = 1
Buffer41:=[];
For Index1 := 1 To MEMORY.F3 Do
Append(Buffer41,z);
Append(Buffer41,v);
EndFor;
Append(Relations,[Buffer41,[1]]);

// add the relation (xy)^F[2,3] = 1
Buffer23:=[];
For Index1 := 1 To MEMORY.F4 Do
Append(Buffer23,x);
Append(Buffer23,y);
EndFor;
Append(Relations,[Buffer23,[1]]);

// add the relation (yx)^F[3,2] = 1
Buffer32:=[];
For Index1 := 1 To MEMORY.F4 Do
Append(Buffer32,y);
Append(Buffer32,x);
EndFor;
Append(Relations,[Buffer32,[1]]);

// add the relation (xz)^F[2,4] = 1
Buffer24:=[];
For Index1 := 1 To MEMORY.F5 Do
Append(Buffer24,x);
Append(Buffer24,z);
EndFor;
Append(Relations,[Buffer24,[1]]);

// add the relation (yx)^F[4,2] = 1
Buffer42:=[];
For Index1 := 1 To MEMORY.F5 Do
Append(Buffer42,z);
Append(Buffer42,x);
EndFor;
Append(Relations,[Buffer42,[1]]);

// add the relation (yz)^F[3,4] = 1
Buffer34:=[];
For Index1 := 1 To MEMORY.F6 Do
Append(Buffer34,y);
Append(Buffer34,z);
EndFor;
Append(Relations,[Buffer34,[1]]);

// add the relation (zy)^F[4,3] = 1
Buffer43:=[];
For Index1 := 1 To MEMORY.F6 Do
Append(Buffer43,z);
Append(Buffer43,y);
EndFor;
Append(Relations,[Buffer43,[1]]);

Return Relations;
EndDefine;

Relations:=CreateRelationsCoxetergroupF4();
Relations;

Gb:=NC.GB(Relations,31,1,100,1000);
Gb;
```

#### Example in Symbolic Data Format

```<FREEALGEBRA createdAt="2014-07-30" createdBy="strohmeier">
<vars>v,x,y,z</vars>
<basis>
<ncpoly>v*v-1</ncpoly>
<ncpoly>x*x-1</ncpoly>
<ncpoly>y*y-1</ncpoly>
<ncpoly>z*z-1</ncpoly>
<ncpoly>(v*x)^3-1</ncpoly>
<ncpoly>(x*v)^3-1</ncpoly>
<ncpoly>(v*y)^2-1</ncpoly>
<ncpoly>(y*v)^2-1</ncpoly>
<ncpoly>(v*z)^2-1</ncpoly>
<ncpoly>(z*v)^2-1</ncpoly>
<ncpoly>(x*y)^4-1</ncpoly>
<ncpoly>(y*x)^4-1</ncpoly>
<ncpoly>(x*z)^2-1</ncpoly>
<ncpoly>(z*x)^2-1</ncpoly>
<ncpoly>(y*z)^3-1</ncpoly>
<ncpoly>(z*y)^3-1</ncpoly>
</basis>
<Comment>Coxeter_Group_F4</Comment>
</FREEALGEBRA>
```