#15843 closed enhancement (fixed)
Add reduced Burau representation, Alexander polynomial to Braid
Reported by:  lipshitz  Owned by:  

Priority:  minor  Milestone:  sage6.2 
Component:  algebra  Keywords:  Braid, braid group, Burau representation, Alexander polynomial, knot theory 
Cc:  Merged in:  
Authors:  Robert Lipshitz  Reviewers:  Frédéric Chapoton, Travis Scrimshaw 
Report Upstream:  N/A  Work issues:  
Branch:  97dd45c (Commits, GitHub, GitLab)  Commit:  
Dependencies:  Stopgaps: 
Description (last modified by )
Instances of Braid class could already return the image of the braid under the Burau representation. This patch adds code to optionally return the image under the reduced Burau representation. Using the reduced Burau representation, it can also return the (unnormalized) Alexander polynomial of the braid closure of the Braid.
Examples of the new functionality from the doc_strings:
sage: B = BraidGroup? (4)
sage: B.inject_variables()
Defining s0, s1, s2
sage: s0.burau_matrix(reduced=True)
[t 0 0]
[t 1 0]
[t 0 1]
sage: b = B([1,1,1,3,3,2,3,1,1,2,1,3,2])
sage: b.alexander_polynomial() #The KinoshitaTerasaka knot.
1/t
(The KinoshitaTerasaka knot has Alexander polynomial 1; the unnormalized Alexander polynomial is only welldefined up to multiplication by plus or minus t to the n.)
Change History (18)
comment:1 Changed 7 years ago by
 Branch set to u/lipshitz/ticket/15843
 Created changed from 02/21/14 22:29:00 to 02/21/14 22:29:00
 Modified changed from 02/21/14 22:29:00 to 02/21/14 22:29:00
comment:2 Changed 7 years ago by
 Commit set to bec075f7b708d1856750eebe835b5d2cd1d0d33b
 Description modified (diff)
comment:3 Changed 7 years ago by
 Status changed from new to needs_review
comment:4 Changed 7 years ago by
 Branch changed from u/lipshitz/ticket/15843 to u/chapoton/15843
 Commit changed from bec075f7b708d1856750eebe835b5d2cd1d0d33b to 4fdf5b936657a25e8840d5e49b4ebf1f59b64bbc
comment:5 Changed 7 years ago by
One way to get Laurent Polynomials could be to implement __floordiv__
for Laurent polynomials (in one variable?) so that one can use //
instead of /
.
comment:6 Changed 7 years ago by
 Commit changed from 4fdf5b936657a25e8840d5e49b4ebf1f59b64bbc to b6497a7040abd47bf013f2ea3985c69ad9a02118
Branch pushed to git repo; I updated commit sha1. New commits:
b6497a7  trac #15843 now with exact division of Laurent polynomials

comment:7 Changed 7 years ago by
 Commit changed from b6497a7040abd47bf013f2ea3985c69ad9a02118 to a74f32dd63ecab57c2112a24c77cb73f9a3909b9
Branch pushed to git repo; I updated commit sha1. New commits:
a74f32d  trac #15843 minor polishing, doc formatting

comment:8 Changed 7 years ago by
 Branch changed from u/chapoton/15843 to u/tscrim/reduced_burau_alexander_poly15843
 Commit changed from a74f32dd63ecab57c2112a24c77cb73f9a3909b9 to 505d170b4d1554c4e03b017043f24d4c44f2ac04
I've added an optional argument to return the normalized Alexander polynomial (as per the wikipedia page) and made some more review tweaks. If you're happy with my changes, then I believe we are at a positive review.
New commits:
cc6669f  Added the normalized version of the Alexander polynomial.

505d170  Some more review changes.

comment:9 Changed 7 years ago by
 Branch changed from u/tscrim/reduced_burau_alexander_poly15843 to u/chapoton/15843
 Commit changed from 505d170b4d1554c4e03b017043f24d4c44f2ac04 to 97dd45c03c2fdb2433e3f8a9f1bd8a7ebad84e65
 Status changed from needs_review to positive_review
Looks good to me. I have made two very small cosmetic changes. Positive review then.
New commits:
97dd45c  trac #15843 final details

comment:10 Changed 7 years ago by
 Reviewers set to Francis Clarke, Travis Scrimshaw
comment:11 Changed 7 years ago by
 Reviewers changed from Francis Clarke, Travis Scrimshaw to Frédéric Chapoton, Travis Scrimshaw
comment:13 Changed 7 years ago by
 Status changed from needs_work to positive_review
Sorry wrong ticket
comment:14 Changed 7 years ago by
 Branch changed from u/chapoton/15843 to 97dd45c03c2fdb2433e3f8a9f1bd8a7ebad84e65
 Resolution set to fixed
 Status changed from positive_review to closed
comment:15 followup: ↓ 16 Changed 7 years ago by
 Commit 97dd45c03c2fdb2433e3f8a9f1bd8a7ebad84e65 deleted
Are you sure that this is the correct reduced Burau matrix?, in the references i have checked it does not coincide:
For instance, shouldn't the elementary braids have something like
[1 t 0] [0 t 0] [0 1 1]
as basic block?
comment:16 in reply to: ↑ 15 Changed 7 years ago by
Replying to mmarco:
Are you sure that this is the correct reduced Burau matrix?, in the references i have checked it does not coincide:
For instance, shouldn't the elementary braids have something like
[1 t 0] [0 t 0] [0 1 1]as basic block?
It depends on the choice of basis.
Right multiplication by the matrices in (Sage's implementation of) the Burau representation preserves the subspace {(x_1,...,x_n)  x_1+...+x_n=0}. (Note that this is a row vector, and we are multiplying on the right by the matrix.) The restriction of the representation to this subspace is the reduced Burau representation. To turn this into matrices, we need to choose a basis for the subspace.
I think if you take the basis vectors (1,1,0,0,...,0), (1,0,1,0,...,0), (1,0,0,1,...,0), etc., then you get the matrices I wrote down.
Of course, I could have made a mistake; but the fact that the Alexander polynomial seems to work for fairly complicated knots (compare with the Knot Atlas) seems like good evidence that the matrices are right.
By the way, I think some references I looked at were wrong: some did not seem to satisfy the braid relations.
comment:17 followup: ↓ 18 Changed 7 years ago by
I see. Then maybe this should be clearly stated in the documentation, since there are other possible choices of the basis.
I think that pretty much every reference i have checked uses the basis (1,1,0,...0,), (0,1,1,0,...,0),...,(0,...,0,1,1).
comment:18 in reply to: ↑ 17 Changed 7 years ago by
Replying to mmarco:
I see. Then maybe this should be clearly stated in the documentation, since there are other possible choices of the basis.
I think that pretty much every reference i have checked uses the basis (1,1,0,...0,), (0,1,1,0,...,0),...,(0,...,0,1,1).
Either way is fine with me. If you would like to change the matrices to any other (correct) representatives for the representation, that's also fine.
I have made a few modifications. This is still not good, as one would like the result of
alexander_polynomial
to be a Laurent polynomial, and not a fraction.New commits:
Added reduced Burau representation, Alexander polynomial to Braid class.
trac #15843 details, minor changes
trac #15843 make sure tests pass
trac #15843 remove unused imports