Skip to main content

Search for non-trivial elements of the kernel of the Burau representation of the four-strand braid group.

Project description

Methods for finding kernel elements of the B_4 Burau representation, or helping to show that no non-trivial elements of the kernel exist.

Background

Here, we follow the lead from Bigelow [0] and consider a particular family of pairs of curves in the four-punctured disc. We follow more or less the same prescription as in Bigelow’s C implementation currently available at:

https://github.com/freshbugs/burau4/blob/master/iv.c

and in particular, we thank Bigelow for useful ideas on how to represent the curves: We place the four punctures in a square, identifing them in our explanation via compass directions. In the notation of [0], we let alpha denote the curve connecting the two south punctures, ordered so that the code below does not have any sign mistakes:

╳  ╳

╳──╳

The curve beta is more complicated. The two north punctures are placed at the middle of two caps, each consisting of a given number of parallel curves, the two south punctures at the middle of two such multi-cups, two vertical strands are pulled south from each of the two north punctures, and a multi-cap extending above the two north caps ensures that everything can be tied together.

As an example, suppose cap_west = 2, cap_east = 1, cup_west = 3, and cup_east = 2. Then, joining the north and south halves of the picture, we have:

num_strands = 2 * (cup_west + cup_east) = 10

strands, and to tie things together, we need an outer cap containing:

cap_outer = cup_west + cup_east - (cap_west + cap_east + 1) = 1

strand. At the end of the day, we get a picture that looks as follows (not including the drawing of alpha):

┌─────────────────┐
│ ┌───────┐       │
│ │ ┌───┐ │ ┌───┐ │
│ │ │ ╳ │ │ │ ╳ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │╳│ │ │ │ │╳│ │
│ │ └─┘ │ │ │ └─┘ │
│ └─────┘ │ └─────┘
└─────────┘

Note that for this picture to make sense, we must require that:

cup_west + cup_east - (cap_west + cap_east) > 0.

Our goal is to calculate, in the notation of Bigelow [0], int_beta alpha. As such, we follow beta from the northwest puncture to the northeast puncture, along the way keeping track of intersections with alpha. Each intersection contributes a summand pm t^k, in which the sign of the coefficient is determined by whether we intersect from the north or the south, and whose power is determined by the current “level”. To determine this power, we picture our four-punctured disk as the vertical projection of a parking garage that extends infinitely up and down (see Wikipedia [1] for an illustration), with a copy of alpha living in each level. We start at level 0 of the garage, and as we move along, we may encounter four “ramps” that take us between different levels:

 down             up
──────╳        ╳──────
  up             down

 down             up
──────╳        ╳──────
  up             down

With the example beta above, we first encounter an alpha at level 0 from the north, giving us a summand of t^0. Then, we loop around, encounter two ramps, both of which take us down a level, before we encounter alpha from the north again, now at level -2, giving us a summand of t^{-2}. A bit later, we get a t^{-4} before we loop all the way around, encounter four down-ramps, then intersect alpha from the south, this time changing the sign, so we get a -t^{-8} and a bit later a -t^{-10}. Adding all of these up, we find that

int_beta alpha = 1 + t^{-2} + t^{-4} - t^{-8} - t^{-10}

To show that the Burau representation of B_4 is not faithful amounts to finding a non-trivial beta so that the above polynomial is 0.

Usage

The package can be installed from PyPI:

pip install burau

or it can be obtained from conda-forge:

mamba install -c conda-forge burau

The above example can be reproduced using the functionality of this Python module as follows:

>>> from burau.curve import calculate_polynomial
>>> calculate_polynomial(cap_west=2, cap_east=1, cup_west=3, cup_east=2)
(DictType[int64,int64]<iv=None>({0: 1, -2: 1, -4: 1, -8: -1, -10: -1}), True, 5)

Here, the first output is a dictionary mapping a power of the polynomial to the coefficient of that power. The second output indicates that the curve beta is a connected curve (an example for which this is not the case is the input (1, 1, 3, 3)). The third output is the number of crossings with alpha encountered along the way.

A kernel element thus corresponds to the empty dictionary. The implementation uses Numba under the hood to improve the speed of the calculation. We also provide a more vanilla Python implementation which is about 100x slower than the Numba-friendly one, but is easier to read and can be used if system restrictions make it impossible to run Numba.

References

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

burau-0.0.4.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

burau-0.0.4-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file burau-0.0.4.tar.gz.

File metadata

  • Download URL: burau-0.0.4.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for burau-0.0.4.tar.gz
Algorithm Hash digest
SHA256 63c2f3eb6a98422fea49166bb4ab0d91b713ccb4b6217aeea9a68cb081aae586
MD5 155cdb9471c411e04188276351cd9217
BLAKE2b-256 36fd6944c698085235c389e96174f3afb37ccc1037032bfe746f9f8aa7625732

See more details on using hashes here.

File details

Details for the file burau-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: burau-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for burau-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f78c30c18c793a44663a37db5ee58b339f777122ef924a8fb30aad34ad970c94
MD5 82c75fe0e5452588a62b6af955342f63
BLAKE2b-256 b5364f55f9cec7344a563915f27a678b336734884f51a4439c398ea47a9978dc

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page