# ApCoCoA-1:Braid groups

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

### Braid groups

#### Description

The Braid groups have the following presentation.

```B(n) = <g_{1},...,g_{n-1} | g_{i}g_{j} = g_{j}g_{i} for |i-j| >= 2, g_{i}g_{i+1}g_{i} = g_{i+1}g_{i}g_{i+1} for 1 <= i <= n-2>
```

(Reference: E. Artin, "Theory of braids" Ann. of Math. , 48 (1947) pp. 643–649 and

W. Magnus, Braid groups: A survey, Proceedings of the Second International Conference on the Theory of Groups, Canberra, Australia, 1973, pp. 463-487.)

#### Computation

We enumerate partial Groebner bases for the Braid groups as follows.

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

// Number of Braid group
MEMORY.N:=3;

Use ZZ/(2)[a[1..MEMORY.N],b[1..MEMORY.N]];
NC.SetOrdering("LLEX");

Define CreateRelationsBraid()
Relations:=[];
For Index1:= 1 To MEMORY.N Do
Append(Relations,[[a[Index1],b[Index1]],]);
Append(Relations,[[b[Index1],a[Index1]],]);
EndFor;

For Index2:=1 To MEMORY.N Do
For Index3:=(Index2+2) To MEMORY.N Do
If Abs(Index2-Index3)>1 Then
// Insert the relation a_{i}a_{i+2} = a_{i+2}a_{i}
Append(Relations,[[a[Index2],a[Index3]],[a[Index3],a[Index2]]]);
EndIf;
EndFor;
EndFor;

For Index4:=1 To MEMORY.N Do
For Index5:=(Index4+1) To MEMORY.N Do
If Abs(Index4-Index5)=1 Then
// Insert the relation a_{i}a_{i+1}a_{i} = a_{i+1}a_{i}a_{i+1}
Append(Relations,[[a[Index4],a[Index5],a[Index4]],[a[Index5],a[Index4],a[Index5]]]);
EndIf
EndFor;
EndFor;

Return Relations;
EndDefine;

Relations:=CreateRelationsBraid();

// Compute GB-Base
```