Let W be a Coxeter group, with presentation [ langle s_1, ldots , s_n mid s_i^2=1, underbraces_is_js_icdots_m(i,j)text factors = underbraces_js_is_jcdots_m(i,j)text factors quad textfor all i, j with i neq j rangle ] for some Coxeter matrix M= {m(i,j)}_{i,j} such that the Coxeter group is finite. The braid group B=B(M) associated to W is the group defined by the presentation [ langle bs_1, ldots , bs_n mid underbracebs_ibs_jbs_icdots_m(i,j)text factors = underbracebs_jbs_ibs_jcdots_m(i,j)text factors quad textfor all i, j with i neq jrangle ]
Usually, we will use the same symbols for generators and elements of W and of B, except that we will use bold letters for elements of B. This is justified by the fact that there is a canonical section to the natural quotient map B rightarrow W given as follows. Let w in W and choose a reduced expression w=s_1 cdots s_m. Then the corresponding product bw=bs_1 cdots bs_m in B is independent of the chosen minimal expression. Let B^+ be the submonoid of B consisting of all words in the generators bs_i of B (words with no inverses); in this way, we can identify W with the subset B^+_{text{red}} of B^+ which consists of the elements of B^{+} of the same length as their image in~W.
If W is a real reflection group in the vector space V with root system R, then B has also a topological definition as the fundamental group Pi^1 of the space ((V-bigcup_{r in R} H_r) otimes CC)/W, where H_r is the hyperplane orthogonal to the root r; however, we will not use this here.
We will represent in GAP words of the braid group associated to the Coxeter group W using a normal form based on theorems of Deligne Del72 (which extend previous work of Brieskorn, Saito BS72 and Garside Gar69):
renewcommandlabelenumi(romanenumi) item Let bw_0 be the element in B^+ which lifts the longest element of W, as explained above. Then, given any element bb in B, there is some power bw_0^i such that bw_0^ibb in B^+. item Let bb in B^+. Then there is a unique longest element alpha(bb) of B^+_{text{red}} which divides bb on the left (which means that bb=alpha(bb)by for some by in B^+).
We use (i) and (ii) to represent an element bb in B: we first
compute the smallest power of bw_0 such that bw_0^ibb in B^+, and
we represent bb by the couple (i,bw_0^ibb). We are thus reduced
to the case where bb in B^+. We then represent bb by the sequence
of elements of the Coxeter group alpha(bb),
alpha(alpha(bb)^{-1}bb), ldots. Given a Coxeter group W, the
function Braid(W) constructs an element of the associated braid group
from a list of generators. Here is an example:
gap> W := CoxeterGroup( "A", 4 );;
gap> w := Braid( W )( 1, 2, 3, 4 );
1234
gap> w ^ 3;
121321432.343
gap> w ^ 4;
w0^1.232432
gap> w ^ -1;
w0^-1.232432
How the element is printed exactly is controlled by the variable
PrintBraid. This variable is a component of the global file CHEVIE,
and the user can change its value whenever he or she wants during a
GAP session. When you load the CHEVIE package, CHEVIE.PrintBraid
is initialized to the string "Deligne", as in the above examples. If
it is set to "GAP", then the element is printed in a form which after
assigning B:=Braid(W); can be input back into GAP:
gap> CHEVIE.PrintBraid;
"Deligne"
gap> CHEVIE.PrintBraid := "GAP";
"GAP"
gap> w;
B([ 1, 2, 3, 4 ])
gap> w ^ 3;
B([ 1, 2, 1, 3, 2, 1, 4, 3, 2, 3, 4, 3 ])
gap> w ^ -1;
B([ 2, 3, 2, 4, 3, 2 ],-1)
The third possible value "Charney" for CHEVIE.PrintBraid is based
on an idea of Ruth Charney Cha92 to find the smallest element
by in B^+ such that by.bb in B^+, and print bb by printing
(by)^{-1} followed by the Deligne normal form of by.bb :
gap> CHEVIE.PrintBraid := "Charney";
"Charney"
gap> w ^ -1;
(1234)^-1.
GAP 3.4.4