Title: | The Braid Groups |
---|---|
Description: | Deals with the braid groups. Includes creation of some specific braids, group operations, free reduction, and Bronfman polynomials. Braid theory has applications in fluid mechanics and quantum physics. The code is adapted from the 'Haskell' library 'combinat', and is based on Birman and Brendle (2005) <doi:10.48550/arXiv.math/0409205>. |
Authors: | Stéphane Laurent [aut, cre], Balazs Komuves [cph] (author of the Haskell library 'combinat') |
Maintainer: | Stéphane Laurent <[email protected]> |
License: | GPL-3 |
Version: | 1.0.0 |
Built: | 2024-10-29 06:01:49 UTC |
Source: | https://github.com/stla/braids |
All braid words of the given length.
allBraidWords(n, l)
allBraidWords(n, l)
n |
number of strands, integer |
l |
length of the words |
A list of braid
objects.
allBraidWords(3, 2)
allBraidWords(3, 2)
All positive braid words of the given length.
allPositiveBraidWords(n, l)
allPositiveBraidWords(n, l)
n |
number of strands, integer |
l |
length of the words |
A list of braid
objects.
allPositiveBraidWords(3, 4)
allPositiveBraidWords(3, 4)
Prints an ASCII figure of a braid.
braidASCII(braid)
braidASCII(braid)
braid |
a |
No value is returned, just prints the ASCII figure.
braid <- mkBraid(4, c(1, -2)) braidASCII(braid)
braid <- mkBraid(4, c(1, -2)) braidASCII(braid)
Returns the left-to-right permutation associated to a braid.
braidPermutation(braid)
braidPermutation(braid)
braid |
a |
A permutation.
braid <- mkBraid(4, c(2, -3, 3)) braidPermutation(braid)
braid <- mkBraid(4, c(2, -3, 3)) braidPermutation(braid)
The Bronfman polynomial of a braid group is the reciprocal of
the growth function of the positive braids. This function computes the
Bronfman polynomial of the braid group on n
strands for n
going to 1
to N
.
bronfmanPolynomials(N)
bronfmanPolynomials(N)
N |
maximum number of strands |
A list of integer vectors representing the Bronfman polynomials; each vector represents the polynomial coefficients in increasing order.
bronfmanPolynomials(3) # 1, 1 - X, 1 - 2X + X^3
bronfmanPolynomials(3) # 1, 1 - X, 1 - 2X + X^3
Composes many braids, doing free reduction on the result.
composeManyBraids(braids)
composeManyBraids(braids)
braids |
list of |
A braid
object.
braid <- mkBraid(4, c(2, -3, 3)) composeManyBraids(list(braid, braid, braid))
braid <- mkBraid(4, c(2, -3, 3)) composeManyBraids(list(braid, braid, braid))
Composes two braids, doing free reduction on the result.
composeTwoBraids(braid1, braid2)
composeTwoBraids(braid1, braid2)
braid1 , braid2
|
|
A braid
object.
braid <- mkBraid(4, c(2, -3, 3)) composeTwoBraids(braid, braid)
braid <- mkBraid(4, c(2, -3, 3)) composeTwoBraids(braid, braid)
Generator in the Birman-Ko-Lee new
presentation. It twists the strands
s
and t
while going over
all other strands (for t=s+1
, this is ).
doubleSigma(n, s, t)
doubleSigma(n, s, t)
n |
number of strands, integer |
s , t
|
indices of two strands, |
A braid
object.
doubleSigma(5, 1, 3)
doubleSigma(5, 1, 3)
Applies free reduction to a braid, i.e. removes pairs of consecutive generators inverse of each other.
freeReduceBraidWord(braid)
freeReduceBraidWord(braid)
braid |
a |
A braid
object.
braid <- mkBraid(4, c(2, -3, 3)) freeReduceBraidWord(braid)
braid <- mkBraid(4, c(2, -3, 3)) freeReduceBraidWord(braid)
The (positive) half-twist of all the braid strands, usually
denoted by .
halfTwist(n)
halfTwist(n)
n |
number of strands, integer |
A braid
object.
halfTwist(4)
halfTwist(4)
The inverse of a braid (without performing reduction).
inverseBraid(braid)
inverseBraid(braid)
braid |
a |
A braid
object.
braid <- mkBraid(4, c(2, -3, 3)) ibraid <- inverseBraid(braid) composeTwoBraids(braid, ibraid)
braid <- mkBraid(4, c(2, -3, 3)) ibraid <- inverseBraid(braid) composeTwoBraids(braid, ibraid)
Checks whether a braid is a permutation braid, that is, a positive braid where any two strands cross at most one, and positively.
isPermutationBraid(braid)
isPermutationBraid(braid)
braid |
a |
A Boolean value.
braid <- mkBraid(4, c(2, -3, 3)) isPermutationBraid(braid)
braid <- mkBraid(4, c(2, -3, 3)) isPermutationBraid(braid)
Checks whether a braid has only positive Artin generators.
isPositiveBraidWord(braid)
isPositiveBraidWord(braid)
braid |
a |
A Boolean value.
braid <- mkBraid(4, c(2, -3, 3)) isPositiveBraidWord(braid)
braid <- mkBraid(4, c(2, -3, 3)) isPositiveBraidWord(braid)
Checks whether a braid is pure, i.e. its permutation is trivial.
isPureBraid(braid)
isPureBraid(braid)
braid |
a |
A Boolean value.
braid <- mkBraid(4, c(2, -3, 3)) isPureBraid(braid)
braid <- mkBraid(4, c(2, -3, 3)) isPureBraid(braid)
Linking numbers between all pairs of strands of a braid.
linkingMatrix(braid)
linkingMatrix(braid)
braid |
a |
A matrix.
strandLinking
to get the linking number between
two strands of the braid.
braid <- mkBraid(4, c(2, -3, 3)) linkingMatrix(braid)
braid <- mkBraid(4, c(2, -3, 3)) linkingMatrix(braid)
Make a braid.
mkBraid(n, artingens)
mkBraid(n, artingens)
n |
number of strands, an integer, at least 2 |
artingens |
Artin generators given by a vector of non-zero
integers; a positive integer |
A braid
object.
mkBraid(n = 4, c(2, -3))
mkBraid(n = 4, c(2, -3))
The number of strands of a braid.
numberOfStrands(braid)
numberOfStrands(braid)
braid |
a |
An integer.
Makes a permutation braid from a permutation.
permutationBraid(perm)
permutationBraid(perm)
perm |
a permutation |
A braid
object.
perm <- c(3, 1, 4, 2) braid <- permutationBraid(perm) isPermutationBraid(braid) braidPermutation(braid)
perm <- c(3, 1, 4, 2) braid <- permutationBraid(perm) isPermutationBraid(braid) braidPermutation(braid)
The linking number between two strands of a braid.
strandLinking(braid, i, j)
strandLinking(braid, i, j)
braid |
a |
i , j
|
indices of two strands |
An integer.
linkingMatrix
to get the linking numbers between
all pairs of strands of the braid.
braid <- mkBraid(4, c(2, -3, 3)) strandLinking(braid, 1, 3)
braid <- mkBraid(4, c(2, -3, 3)) strandLinking(braid, 1, 3)
The inner automorphism defined by
, where
is the
positive half-twist; it sends each generator
to
.
tau(braid)
tau(braid)
braid |
a |
A braid
object.
braid <- mkBraid(4, c(2, -3, 3)) tau(braid)
braid <- mkBraid(4, c(2, -3, 3)) tau(braid)