Last active
July 8, 2020 05:22
-
-
Save Shamrock-Frost/da49c364b9695310349643da0cd3e771 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# sadly sage doesn't let me have symbolic variables taking values in Q(u) | |
# so we need to look include those variables in the definition | |
K = FractionField(PolynomialRing(QQ, ['u', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'])) | |
u, a, b, c, d, e, f, g, h, i, j = K.gens() | |
# taking u = sqrt(t) we get the R-matrix for the Jones polynomial | |
R = matrix(K, 4, [-u, 0, 0, 0, 0, u^3 - u, -u^2, 0, 0, -u^2, 0, 0, 0, 0, 0, -u]) | |
mu = matrix(K, 2, [-u, 0, 0, -1/u]) | |
D = matrix(K, 4, [-u, 0, 0, 0, 0, -u, 0, 0, 0, 0, -u, 0, 0, 0, 0, u^3]) | |
P = matrix(K, 4, [0, 0, 1, 0, 0, 1/u, 0, -u, 0, 1, 0, 1, 1, 0, 0, 0]) | |
assert(bool(R == P * D * P.inverse())) | |
# because of ^, RS = SR iff D (P^{-1} S P) = (P^{-1} S P) D | |
# the centralizer of D is all the (3,1) block diagonal matrices, by fun facts about diagonal matrices | |
# T is an arbitrary element of the centralizer of D. Then S is an arbitrary element of the centralizer of R | |
T = matrix(K, 4, [a, b, c, 0, d, e, f, 0, g, h, i, 0, 0, 0, 0, j]) | |
S = P * T * P.inverse() | |
assert(bool(S*R == R*S)) | |
I2 = matrix(K, 2, [1,0, 0,1]) | |
# YBE | |
assert(bool(I2.tensor_product(R) * R.tensor_product(I2) * I2.tensor_product(R) == R.tensor_product(I2) * I2.tensor_product(R) * R.tensor_product(I2))) | |
# Mixed YBE 1 | |
# want diff = 0 | |
diff = I2.tensor_product(S) * R.tensor_product(I2) * I2.tensor_product(R) - R.tensor_product(I2) * I2.tensor_product(R) * S.tensor_product(I2) | |
# this implies h = u^2 h, so h = 0 | |
print(diff[0,1]) | |
# this implies g = u^2 g, so g = 0 | |
print(diff[0,3]) | |
# this implies f = u f, so f = 0 | |
print(diff[1,0]) | |
# this implies u^2(u^2 - 1)(i - e) = 0, so e = i | |
print(diff[1,1]) | |
# this implies d = u d, so d = 0 | |
print(diff[1,6]) | |
# this implies c = u^2 c, so c = 0 | |
print(diff[3,0]) | |
# this implies b = u b, so b = 0 | |
print(diff[3,2]) | |
# this implies u^2(u^2 - 1)(e - a) = 0, so e = a = i | |
print(diff[3,3]) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
K = LaurentPolynomialRing(QQ, 'u') | |
u = K.gen() | |
K = PolynomialRing(K, ['p', 'q']) | |
p, q = K.gens() | |
# taking u = sqrt(t) we get the R-matrix for the Jones polynomial | |
R = matrix(K, 4, [-u, 0, 0, 0, 0, u^3 - u, -u^2, 0, 0, -u^2, 0, 0, 0, 0, 0, -u]) | |
mu = matrix(K, 2, [-u, 0, 0, -u^-1]) | |
I2 = matrix(K, 2, [1, 0, 0, 1]) | |
S = matrix(K, 4, [p, 0, 0, 0, 0, p + u^2 * q, -u * q, 0, 0, -u * q, p + q, 0, 0, 0, 0, p]) | |
assert(bool(S*R == R*S)) | |
assert(bool(S*mu.tensor_product(mu) == mu.tensor_product(mu)*S)) | |
assert(bool(R*mu.tensor_product(mu) == mu.tensor_product(mu)*R)) | |
# YBE | |
assert(bool(I2.tensor_product(R) * R.tensor_product(I2) * I2.tensor_product(R) == R.tensor_product(I2) * I2.tensor_product(R) * R.tensor_product(I2))) | |
# Mixed YBE 1 | |
assert(bool(I2.tensor_product(S) * R.tensor_product(I2) * I2.tensor_product(R) == R.tensor_product(I2) * I2.tensor_product(R) * S.tensor_product(I2))) | |
# Mixed YBE 2 | |
assert(bool(I2.tensor_product(R) * R.tensor_product(I2) * I2.tensor_product(S) == S.tensor_product(I2) * I2.tensor_product(R) * R.tensor_product(I2))) | |
print("Value of link invariant on singular figure eight: " + str((mu.tensor_product(mu) * S).trace())) | |
print("Determinant of S-matrix: " + str(S.determinant())) | |
print("Difference of both sides of YBE for S:\n" + str(I2.tensor_product(S) * S.tensor_product(I2) * I2.tensor_product(S) - S.tensor_product(I2) * I2.tensor_product(S) * S.tensor_product(I2))) | |
print("Taking p = q = u we get that S is not invertible and doesn't solve the YBE") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
︠1abeae78-1ace-4bd2-9987-6a6227f345df︠ | |
# sadly sage doesn't let me have symbolic variables taking values in Q(u) | |
# so we need to look include those variables in the definition | |
K = FractionField(PolynomialRing(QQ, ['u', 'f', 'g'])) | |
u, f, g = K.gens() | |
# taking u = sqrt(t) we get the R-matrix for the Jones polynomial | |
R = matrix(K, 4, [-u, 0, 0, 0, 0, u^3 - u, -u^2, 0, 0, -u^2, 0, 0, 0, 0, 0, -u]) | |
mu = matrix(K, 2, [-u, 0, 0, -1/u]) | |
I2 = matrix(K, 2, [1, 0, 0, 1]) | |
D = matrix(K, 4, [-u, 0, 0, 0, 0, -u, 0, 0, 0, 0, -u, 0, 0, 0, 0, u^3]) | |
P = matrix(K, 4, [0, 0, 1, 0, 0, 1/u, 0, -u, 0, 1, 0, 1, 1, 0, 0, 0]) | |
T = matrix(K, 4, [f, 0, 0, 0, 0, f, 0, 0, 0, 0, f, 0, 0, 0, 0, g]) | |
S = P * T * P.inverse() | |
print(S) | |
assert(bool(S*R == R*S)) | |
assert(bool(S*mu.tensor_product(mu) == mu.tensor_product(mu)*S)) | |
assert(bool(R*mu.tensor_product(mu) == mu.tensor_product(mu)*R)) | |
# YBE | |
assert(bool(I2.tensor_product(R) * R.tensor_product(I2) * I2.tensor_product(R) == R.tensor_product(I2) * I2.tensor_product(R) * R.tensor_product(I2))) | |
# Mixed YBE 1 | |
assert(bool(I2.tensor_product(S) * R.tensor_product(I2) * I2.tensor_product(R) == R.tensor_product(I2) * I2.tensor_product(R) * S.tensor_product(I2))) | |
# Mixed YBE 2 | |
assert(bool(I2.tensor_product(R) * R.tensor_product(I2) * I2.tensor_product(S) == S.tensor_product(I2) * I2.tensor_product(R) * R.tensor_product(I2))) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment