Skip to content

Khovanov Cobordism Calculator is a Python module to calculate cobordism maps induced on Khovanov homology.

License

Notifications You must be signed in to change notification settings

ZsomborFeher/khovanov-cobordism

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Khovanov Cobordism Calculator

A Python module to calculate cobordism maps induced on Khovanov homology.

Written by Zsombor Fehér, 2024.

Quick Start Guide

Example: Distinguishing two ribbon disks of 61, given as two band diagrams on the same link diagram.

  1. Make sure you have SciPy and NumPy installed and updated to the latest version:

    pip install --upgrade scipy

    (Some methods require Sage to be installed, but tasks like this example do not.)

  2. Start a Python session, copy the file khovanov.py to your working folder, and import that module:

    from khovanov import *
  3. Obtain a PD code of the link, and determine how the PD code corresponds to the diagram.

    Label each crossing in your diagram with its corresponding index in the PD code. Mark the 0th strand of each crossing with a dot, corresponding to the 0th element of its PD code entry. (Since this module does not have a graphical interface yet, you might find it useful to draw the link in SnapPy's Plink Editor, and enable Info -> DT labels and Info -> PD code for getting this correspondence.)

  4. Create a Link object using the PD code:

    L = Link([(9, 4, 10, 5), (5, 8, 6, 9), (11, 2, 12, 3), (3, 10, 4, 11), (1, 7, 2, 6), (7, 1, 8, 12)])

    You can verify that your diagram is marked correctly using print(L).

  5. Create the two Cobordism objects based on the band diagrams and your marking of crossings.

    For example, S0.band_move(-1, (0, 0), (2, 1)) represents a (-1)-twisted band, connecting the 0th crossing's 0th strand to the 2nd crossing's 1st strand, positioned on the band's left side.

    S0 = Cobordism(L)
    S0.band_move(-1, (0, 0), (2, 1))
    S0.finish()
    S1 = Cobordism(L)
    S1.band_move(-1, (1, 2), (3, 3))
    S1.finish()

    You can check the resulting movie of the cobordism with print(S0).

  6. Calculate the Khovanov-Jacobsson classes (CKhElement objects) and compare them in homology:

    compare(S0.KJ_class(), S1.KJ_class())
  7. If this fails to distinguish the surfaces, try mirroring the cobordisms:

    compare(S0.mirror().KJ_class(), S1.mirror().KJ_class())

See the top of the source code for more details about classes and their methods.

About

Khovanov Cobordism Calculator is a Python module to calculate cobordism maps induced on Khovanov homology.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages