# Constructing and Accessing Braid Groups

This section describes the facilities for creating a braid group and for accessing and changing its basic properties.

## `BraidGroup(n: parameters): RngIntElt -> GrpBrd`

## `BraidGroup(GrpBrd, n: parameters): Cat, RngIntElt -> GrpBrd`

```magma
Presentation: MonStgElt                    Default: "Artin"
```

Given a small integer $n>0$, return the braid group on $n$ strings, that is, $n-1$ Artin generators.

The presentation can be selected using the parameter `Presentation`. Possible values for this parameter are `"Artin"` (default) and `"BKL"`.

## `GetPresentation(B): GrpBrd -> MonStgElt`

Returns a string $s$, either `"Artin"` or `"BKL"`, indicating the presentation currently used for $B$.

## `SetPresentation(~B, s): GrpBrd, MonStgElt`

Set the presentation used for $B$ to the presentation indicated by $s$. Possible values for $s$ are `"Artin"` and `"BKL"`.

## `GetForceCFP(B): GrpBrd -> BoolElt`

Returns whether arithmetic operations with elements of $B$ are always done using representations of the elements as products of simple elements.

## `SetForceCFP(~B, b): GrpBrd, BoolElt`

By default, arithmetic operations with elements of $B$ are always done using representations of the elements as products of simple elements. If necessary, such representations are computed. Experienced users can turn this feature off for a braid group $B$ using the procedure `SetForceCFP` with $b$ set to `false`.

## `GetElementPrintFormat(B): GrpBrd -> MonStgElt`

Returns a string $s$ indicating the format currently used for printing elements of $B$. $s$ is one of `"Word"`, `"CFP"` or `"Both"`.

## `SetElementPrintFormat(~B, s): GrpBrd, MonStgElt`

When printing an element of a braid group $B$, by default both the representation as word in the generators and the representation as product of simple elements in the presentation selected for $B$ are printed. Experienced users can use the procedure `SetElementPrintFormat` for changing the print format. Possible values for $s$ are `"Word"`, `"CFP"` and `"Both"`.

## `NumberOfStrings(B): GrpBrd -> RngIntElt`

Given a braid group $B$, return the number of strings on which $B$ is defined.

## `NumberOfGenerators(B): GrpBrd -> RngIntElt`

## `Ngens(B): GrpBrd -> RngIntElt`

Given a braid group $B$, return the number of Artin generators of $B$. Note that the number of Artin generators is returned regardless of the presentation selected for $B$.
