{ "cells": [ { "cell_type": "code", "execution_count": null, "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\n", "import logging\n", "logging.basicConfig(level=logging.INFO)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import path\n", "from gaknot import import_sage\n", "cs = import_sage('cable_signature', package='gaknot', path=path.module_path)\n", "sg = import_sage('signature', package='gaknot', path=path.module_path)\n", "m = import_sage('main', package='gaknot', path=path.module_path)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [], "source": [ "m.prove_lemma(verbose=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Other cables" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": false }, "outputs": [], "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": null, "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": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# cable_template.knot_formula" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Relatively small cables " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "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": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# cable.is_signature_big_for_all_metabolizers()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Slice candidate" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "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": null, "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": null, "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\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": null, "metadata": {}, "outputs": [], "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": null, "metadata": { "scrolled": false }, "outputs": [], "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": null, "metadata": { "scrolled": false }, "outputs": [], "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": null, "metadata": {}, "outputs": [], "source": [ "# sf = slice_canidate()\n", "# sf = sf[2]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# sf.plot()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "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]]]\"" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 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": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# cable_template.knot_formula" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# cable_template.fill_q_vector()\n", "# print(cable_template.q_vector)\n", "# print(cable_template.knot_formula)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# cable_template.fill_q_vector()\n", "# print(cable_template.q_vector)\n", "# print(cable_template.knot_formula)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# 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": null, "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": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# slice_canidate.is_function_big_for_all_metabolizers(invariant=cs.SIGMA)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "source": [ "# slice_canidate.is_function_big_for_all_metabolizers(invariant=cs.SIGNATURE)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "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": null, "metadata": {}, "outputs": [], "source": [ "# _, _, sf = slice_canidate((1, 1, 0, 0, 0,0,0,0))\n", "# sf" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# sg.SignaturePloter.plot(sf)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "scrolled": true }, "outputs": [], "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": null, "metadata": {}, "outputs": [], "source": [ "# sf.plot()\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# help(cs.CableTemplate.get_q_vector)" ] }, { "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.8.10" } }, "nbformat": 4, "nbformat_minor": 4 }