signature_function/notebooks/tests.ipynb
2021-01-11 09:21:10 +01:00

762 lines
35 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"%matplotlib inline\n",
"%load_ext pycodestyle_magic\n",
"\n",
"# display full output, not only last result, except ended with semicolon\n",
"from IPython.core.interactiveshell import InteractiveShell\n",
"InteractiveShell.ast_node_interactivity = 'all';\n",
"from IPython.display import Image, SVG"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import path\n",
"from cagosig import import_sage\n",
"cs = import_sage('cable_signature', package='cagosig', path=path.module_path)\n",
"sg = import_sage('signature', package='cagosig', path=path.module_path)\n",
"m = import_sage('main', package='cagosig', path=path.module_path)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Other cables"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
"**********\n",
"Knot sum:\n",
"T(2, 3; 2, 5; 2, 11) # -T(2, 5; 2, 11) # T(2, 7; 2, 11) # -T(2, 3; 2, 7; 2, 11)\n",
"[ characters ] sigma value\n",
"[0, 0, 1, 1] 4\n",
"[0, 0, 2, 2] 4\n",
"[0, 0, 3, 3] 4\n",
"[0, 0, 4, 4] 4\n",
"[0, 0, 5, 5] 0\n",
"[0, 0, 6, 6] 0\n",
"[0, 0, 7, 7] 4\n",
"[0, 0, 8, 8] 4\n",
"[0, 0, 9, 9] 4\n",
"[0, 0, 10, 10] 4\n"
]
},
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"knot_formula = \"[[k[0], k[1], k[3]],\" + \\\n",
" \" [-k[1], -k[3]],\" + \\\n",
" \" [k[2], k[3]],\" + \\\n",
" \" [-k[0], -k[2], -k[3]]]\"\n",
"# q_vector = (3, 5, 7, 13)\n",
"q_vector = (3, 5, 7, 11)\n",
"\n",
"template = cs.CableTemplate(knot_formula, q_vector=q_vector, verbose=True)\n",
"cable = template.cable\n",
"# cable.plot_all_summands()\n",
"cable.is_function_big_for_all_metabolizers(invariant=cs.SIGMA)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cables with 8 direct summands "
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[1], -k[3]], \" + \\\n",
" \"[k[2], k[3]], \" + \\\n",
" \"[-k[0], -k[2], -k[3]]]\"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[-k[5], -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[4], -k[6], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Relatively small cables "
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T(2, 5; 2, 17; 2, 41) # -T(2, 13; 2, 41) # T(2, 19; 2, 41) # -T(2, 5; 2, 19; 2, 41) # T(2, 7; 2, 13; 2, 43) # -T(2, 17; 2, 43) # T(2, 23; 2, 43) # -T(2, 7; 2, 23; 2, 43)\n",
"T(2, 5; 2, 17; 2, 41) # -T(2, 13; 2, 41) # T(2, 19; 2, 41) # -T(2, 5; 2, 19; 2, 41) # T(2, 7; 2, 13; 2, 43) # -T(2, 17; 2, 43) # T(2, 23; 2, 43) # -T(2, 7; 2, 23; 2, 43)\n"
]
}
],
"source": [
"q_vector = (5, 13, 19, 41,\\\n",
" 7, 17, 23, 43)\n",
"cable_template.fill_q_vector(q_vector=q_vector)\n",
"cable = cable_template.cable\n",
"print(cable.knot_description)\n",
"\n",
"q_vector_small = (3, 7, 13, 19,\\\n",
" 5, 11, 17, 23)\n",
"cable_template.fill_q_vector(q_vector=q_vector)\n",
"cable = cable_template.cable\n",
"print(cable.knot_description)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"# cable.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Slice candidate"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T(2, 5; 2, 71; 2, 347) # -T(2, 67; 2, 347) # T(2, 61; 2, 347) # -T(2, 5; 2, 61; 2, 347) # T(2, 11; 2, 67; 2, 367) # -T(2, 71; 2, 367) # T(2, 79; 2, 367) # -T(2, 11; 2, 79; 2, 367)\n"
]
}
],
"source": [
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"\n",
"\n",
"# cable.is_signature_big_for_all_metabolizers()\n"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"# knot_formula = \"[[k[0], k[1], k[4]], [-k[1], -k[3]],\\\n",
"# [k[2], k[3]], [-k[0], -k[2], -k[4]]]\"\n",
"\n",
"# knot_formula = \"[[k[3]], [-k[3]],\\\n",
"# [k[3]], [-k[3]] ]\"\n",
"\n",
"# knot_formula = \"[[k[3], k[2], k[0]], [-k[2], -k[0]],\\\n",
"# [k[1], k[0]], [-k[3], -k[1], -k[0]]]\"\n",
"\n",
"# knot_formula = \"[[k[0], k[1], k[2]], [k[3], k[4]],\\\n",
"# [-k[0], -k[3], -k[4]], [-k[1], -k[2]]]\"\n",
"\n",
"# knot_formula = \"[[k[0], k[1], k[2]], [k[3]],\\\n",
"# [-k[0], -k[1], -k[3]], [-k[2]]]\""
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T(2, 5; 2, 71; 2, 347) # -T(2, 67; 2, 347) # T(2, 61; 2, 347) # -T(2, 5; 2, 61; 2, 347) # T(2, 11; 2, 67; 2, 367) # -T(2, 71; 2, 367) # T(2, 79; 2, 367) # -T(2, 11; 2, 79; 2, 367)\n"
]
},
{
"data": {
"text/plain": [
"127349"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[1], -k[3]], \" + \\\n",
" \"[k[2], k[3]], \" + \\\n",
" \"[-k[0], -k[2], -k[3]]]\"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[-k[5], -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[4], -k[6], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"\n",
"\n",
"slice_canidate.q_order\n",
"# slice_canidate.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T(2, 11; 2, 53; 2, 347) # -T(2, 53; 2, 347) # T(2, 61; 2, 347) # -T(2, 7; 2, 61; 2, 347) # T(2, 7; 2, 71; 2, 367) # -T(2, 71; 2, 367) # T(2, 79; 2, 367) # -T(2, 11; 2, 79; 2, 367)\n"
]
},
{
"data": {
"text/plain": [
"127349"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"-4"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[5], -k[3]], \" + \\\n",
" \"[k[2], k[3]], \" + \\\n",
" \"[-k[4], -k[2], -k[3]]]\"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[-k[1], -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[0], -k[6], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"cable_template.fill_q_vector()\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"\n",
"slice_canidate.q_order\n",
"# slice_canidate.is_signature_big_for_all_metabolizers()\n",
"sigma = slice_canidate.get_sigma_as_function_of_theta()\n",
"# sigma((0, 6, 6, 0, 0,0,0,0))\n",
"# 13450/83\n",
"sigma((9, 9, 9, 9, 0,0,0,0))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"\n",
"\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T(2, 11; 2, 71; 2, 313) # -T(2, 61; 2, 313) # T(2, 313) # -T(2, 7; 2, 67; 2, 313) # T(2, 7; 2, 61; 2, 347) # -T(2, 347) # T(2, 67; 2, 347) # -T(2, 11; 2, 71; 2, 347)\n"
]
}
],
"source": [
"formula_1 = \"[[k[0], k[5], k[3]], \" + \\\n",
" \"[-k[1], -k[3]], \" + \\\n",
" \"[ k[3]], \" + \\\n",
" \"[-k[4], -k[6], -k[3]]]\"\n",
"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[ -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[0], -k[5], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"# slice_canidate.is_signature_big_for_all_metabolizers()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T(2, 43; 2, 191) # -T(2, 37; 2, 191) # T(2, 191) # -T(2, 5; 2, 41; 2, 191) # T(2, 5; 2, 37; 2, 211) # -T(2, 211) # T(2, 41; 2, 211) # -T(2, 43; 2, 211)\n"
]
},
{
"data": {
"text/plain": [
"40301"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"formula_1 = \" [ [k[5], k[3]], \" + \\\n",
" \" [ -k[1], -k[3]], \" + \\\n",
" \" [ k[3]], \" + \\\n",
" \"[-k[4], -k[6], -k[3]]]\"\n",
"\n",
"formula_2 = \"[[k[4], k[1], k[7]], \" + \\\n",
" \"[ -k[7]], \" + \\\n",
" \"[k[6], k[7]], \" + \\\n",
" \"[-k[5], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"slice_canidate.q_order\n",
"# slice_canidate.is_signature_big_for_all_metabolizers()\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"sf = slice_canidate()\n",
"sf = sf[2]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sf.plot()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T(2, 17; 2, 83) # -T(2, 11; 2, 83) # T(2, 83) # -T(2, 13; 2, 83) # T(2, 11; 2, 103) # -T(2, 103) # T(2, 13; 2, 103) # -T(2, 17; 2, 103)\n"
]
},
{
"data": {
"text/plain": [
"8549"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"formula_1 = \"[ [k[5], k[3]], \" + \\\n",
" \"[ -k[1], -k[3]], \" + \\\n",
" \"[ k[3]], \" + \\\n",
" \"[ -k[6], -k[3]]]\"\n",
"\n",
"formula_2 = \"[[ k[1], k[7]], \" + \\\n",
" \"[ -k[7]], \" + \\\n",
" \"[ k[6], k[7]], \" + \\\n",
" \"[ -k[5], -k[7]]]\"\n",
"\n",
"\n",
"\n",
"\n",
"cable_template_1 = cs.CableTemplate(knot_formula=formula_1)\n",
"cable_template_2 = cs.CableTemplate(knot_formula=formula_2)\n",
"cable_template = cable_template_1 + cable_template_2\n",
"\n",
"cable_template.fill_q_vector()\n",
"# print(cable_template.q_vector)\n",
"# print(cable_template.knot_formula)\n",
"\n",
"slice_canidate = cable_template.cable\n",
"print(slice_canidate.knot_description)\n",
"sf = slice_canidate(4,4,4,4,0,0,0,0)\n",
"sf = slice_canidate(4,1,1,4,0,0,0,0)\n",
"slice_canidate.q_order"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"# slice_canidate.is_sigma_big_for_all_metabolizers()\n",
"# slice_canidate.is_signature_big_for_all_metabolizers()\n",
"# slice_canidate.is_function_big_for_all_metabolizers()"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"slice_canidate.is_function_big_for_all_metabolizers(invariant=cs.SIGMA)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"slice_canidate.is_function_big_for_all_metabolizers(invariant=cs.SIGNATURE)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"4"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"-4"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sigma = slice_canidate.get_sigma_as_function_of_theta()\n",
"sigma((0, 6, 6, 0, 0,0,0,0))\n",
"# 13450/83\n",
"sigma((9, 0, 0, 9, 0,0,0,0))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0: 0, 49/2822: -1, 1/34: 2, 61/1826: 1, 117/2822: -1, 1/22: -2, 105/1826: 1, 215/2822: -1, 3/34: 2, 283/2822: -1, 227/1826: 1, 381/2822: -1, 3/22: -2, 5/34: 2, 271/1826: 1, 449/2822: -1, 547/2822: -1, 7/34: 2, 393/1826: 1, 615/2822: -1, 5/22: -2, 437/1826: 1, 713/2822: -1, 9/34: 2, 781/2822: -1, 559/1826: 1, 879/2822: -1, 7/22: -2, 11/34: 2, 603/1826: 1, 947/2822: -1, 1045/2822: -1, 13/34: 2, 1113/2822: -1, 725/1826: 1, 9/22: -2, 769/1826: 1, 1211/2822: -1, 15/34: 2, 1279/2822: -1, 1543/2822: 1, 19/34: -2, 1611/2822: 1, 1057/1826: -1, 13/22: 2, 1101/1826: -1, 1709/2822: 1, 21/34: -2, 1777/2822: 1, 1875/2822: 1, 1223/1826: -1, 23/34: -2, 15/22: 2, 1943/2822: 1, 1267/1826: -1, 2041/2822: 1, 25/34: -2, 2109/2822: 1, 1389/1826: -1, 17/22: 2, 2207/2822: 1, 1433/1826: -1, 27/34: -2, 2275/2822: 1, 2373/2822: 1, 1555/1826: -1, 29/34: -2, 19/22: 2, 2441/2822: 1, 1599/1826: -1, 2539/2822: 1, 31/34: -2, 2607/2822: 1, 1721/1826: -1, 21/22: 2, 2705/2822: 1, 1765/1826: -1, 33/34: -2, 2773/2822: 1, 1: 0."
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"_, _, sf = slice_canidate((1, 1, 0, 0, 0,0,0,0))\n",
"sf"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sg.SignaturePloter.plot(sf)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"T_17_83_inv_T_11_83_T_83_inv_T_13_83_T_11_103_inv_T_103_T_13_103_inv_T_17_103\n"
]
},
{
"data": {
"text/plain": [
"'T_17_83_inv_T_11_83_T_83_inv_T_13_83_T_11_103_inv_T_103_T_13_103_inv_T_17_103'"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"\n",
"slice_canidate.plot_sum_for_theta_vector([0r,4r,0r,4r,0r,0r,0r,0r], save_to_dir=True)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sf.plot()\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "SageMath 9.0",
"language": "sage",
"name": "sagemath"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}