Are these braids equal?
Haskell, 190 bytes



i!j|j&lt;0=reverse$map(0-)$i!(-j)|i==j=[i,i+1,-i]|i+1==j=[i]|i+j==0=[j+1]|i+j==1=[-j,-i,j]
_!j=[j]
j%(k:a)|j+k==0=a
j%a=j:a
i&amp;a=foldr(%)[]$foldr((=&lt;&lt;).(!))[i]a
a?n=map(&amp;a)[1..n]
(a#b)n=a?n==b?n


Try it online!

How it works

Let Fn be the free group on n generators x1, …, xn.  One of the first results in braid theory (Emil Artin, Theorie der Zöpfe, 1925) is that we have an injective homomorphism f : Bn → Aut(Fn) where the action fσi of σi is defined by

fσi(xi) = xixi + 1xi−1,
fσi(xi + 1) = xi,
fσi(xj) = xj for j ∉ {i, i + 1}.

The inverse fσi−1 is given by

fσi−1(xi) = xi + 1,
fσi−1(xi + 1) = xi + 1−1xixi + 1,
fσi−1(xj) = xj for j ∉ {i, i + 1}

and of course composition is given by fab = fa ∘ fb.

To test whether a = b ∈ Bn, it suffices to test that fa(xi) = fb(xi) for all i = 1, …, n.  This is a much simpler problem in Fn, where we only need to know how to cancel xi with xi−1.

In the code:


i!j computes fσi(xj) (where either i or j may be negative, representing an inverse),
foldr(%)[] performs reduction in the free group,
i&amp;a computes fa(xi),
a?n computes [fa(x1), …, fa(xn)],
and (a#b)n is the equality test for a = b in Bn.