Finding generalised braid relations for finite Coxeter groups with Sage

asked 3 years ago

klaaa gravatar image

updated 3 years ago

Let S=x1,...,xn be a finite set and A=(axs,xt) a symmetric matrix, called Coxeter matrix, with axs,xs=1 and axs,xt2,3,..., for xsxt. To A one associates the graph RA with vertices the elements of S and there is a unique edge between xs and xt whenever axs,xt3. The edge is between xs and xt is labeled by axs,xt whenever axs,xt4.

To such a coxeter matrix A (or equivalently the graph) we associate the generalized braid group that is defined as the group with generators x1,...,xn and relations of the form xsxtxs....=xtxsxt.... where there appear axs,xt factors.

Question: Given a Coxeter graph of Dynkin type. How can I obtain the relations of the braid group with Sage? I think there should be existing function to do this but I was not able to do it.

For example for the Dynkin type A3 the output should look as follows:

[x1*x3-x3*x1,x1*x2*x1-x2*x1*x2,x2*x3*x2-x3*x2*x3].

(note that the output should be really in this form (so that the variables are called xi and there is a * inbetween) to make it readable for another program)

Thank you for any help

Preview: (hide)

Comments

1

The relations can be found here.

It gives the output as a list of the subscripts you want. What are you looking for from the output? Is a string ok, or do you really need it to be an element of the Coxeter group (WeylGroup) in Sage?

tkarn gravatar imagetkarn ( 3 years ago )

Thank you for the comment. This looks like exactly like what is needed but instead of [1, 2, 1], [2, 1, 2] the output should be a string as in the example. So [[[1, 2, 1], [2, 1, 2]]] should be displayed as [x1 * x2 * x1 - x2* x1 *x2]. Is there an easy way to do this?

klaaa gravatar imageklaaa ( 3 years ago )

Another small question: In the link the example is only for Weyl groups but there are some other Coxeter graphs not corresponding to Weyl groups like H4. Do you know how to obtain the braid relations in that case?

klaaa gravatar imageklaaa ( 3 years ago )
1

The first level of the list is each individual relation, and then the second level of the list is each term, so you should iterate over them. If a string is all you need, you might try using a list comprehension in conjunction with formatted strings. For example, you can get the list ['x_1', 'x_2', ..., 'x_5'] by [f'x_{i}' for i in range(1,6)]. Give that a try and post again if you need any help.

As for your second question, the .braid_relations() method is part of the CoxeterGroup category in Sage, so it should work for any Coxeter group, although I have not verified that myself.

tkarn gravatar imagetkarn ( 3 years ago )