braid- Types and functions to work with braids and Khovanov homology.

CopyrightAdam Saltz
Safe HaskellSafe



Longer description to come.



data Braid Source

A Braid is a width and word. Integers in the word represent Artin generators and their invereses. E.g. [1,3,-2] represents the word sigma_1sigma_3sigma_2^{-1}.




braidWidth :: Int
braidWord :: [Int]

data Node a Source

A braid can also be written as a collection of Nodes. See knotatlas for more info on Cross and Join.


Cross a a a a 
Join a a 


Foldable Node Source 
Eq a => Eq (Node a) Source 
Ord a => Ord (Node a) Source 
Read a => Read (Node a) Source 
Show a => Show (Node a) Source 

type Resolution = [Int] Source

A Resolution is a collection of integers. These should all be 0 or 1. At some point I will change this to type Resolution = [Resolution'] and data Resolution' = One | Zero deriving (Show, Eq, Ord) or somesuch.

type Component = Set Int Source

A Component is represented by a set of integer labels for its arcs.

data BDiagram Source

A resolved BDiagram has a Resolution and a set of Components.

braidToPD :: Braid -> PD Source

Turn a Braid into a PD.

crossingToNodes :: Int -> Int -> Int -> [Node Int] Source

Turn a crossing into a Node.

resolve :: PD -> Resolution -> PD Source

Take a PD and a Resolution and returns the resolved PD. Note that the output is always a list of Joins.

resolutions :: PD -> [PD] Source

Compute all resolutions of a PD.

resolutionToComponents :: PD -> Set Component Source

This is the only use for Data.Graph.

cubeOfResolutions :: PD -> [BDiagram] Source

Take a PD and returns a list of all the BDiagrams of its Resolutions.

braidCube :: Braid -> [BDiagram] Source

The total cube of resolutions for a braid.

mirror :: Braid -> Braid Source

Returns the mirror of b.

allRes :: PD -> [Resolution] Source

Utility function to return all the resolutions of a planar diagram. This amounts to all sequences of 0s and 1s of some length.