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

CopyrightAdam Saltz
Safe HaskellSafe



Longer description to come.



gToD :: Generator -> BDiagram Source

Return the diagram underlying a Generator.

homGrading :: Generator -> Int Source

Compute the homological grading of a Generator.

qGrading :: Generator -> Int Source

Compute the q-grading of a Generator. In this convention, the Khovanov differential *lowers* the q-grading by 1.

data Triviality Source

Data type to represent whether a circle is trivial or not. Used to be Bool' but I got confused about which was True and which was False.



nonTrivialCircle :: Int -> Component -> Triviality Source

Determine if a component is non-trivial. To compute the mod 2 winding number about the braid axis, check how many of the 'top arcs' live in a component.

kGrading :: (Resolution, Set Component, Map Component Sign) -> Int -> Int Source

Compute the k-grading of a Generator.

khovanov :: Int -> BDiagram -> [Generator] Source

"Apply the filtered Khovanov functor to a diagram." We still need the braid width as input to get the k-grading.

khovanovComplex :: Int -> [BDiagram] -> Map Int (Set Generator) Source

The next three functions apply the Khovanov functor to the vertices of a cube of resolutions.

data ElMo Source

An elementary morphism is determined by Components. We distinguish between Merge and Split ElMos


Merge (Set Component) (Set Component)

merges the first set to the second

Split (Set Component) (Set Component)

splits the first set into the second


whichMorphism :: BDiagram -> BDiagram -> Maybe ElMo Source

Take two diagrams and returns the ElMos between them, if there is one.

morphismAction :: Maybe ElMo -> Generator -> Generator -> Bool Source

Take a morphism and two generators and returns True if there should be a 'Morphism from one to the other.

kDrop :: Generator -> Generator -> Int Source

Compute the difference in k-grading between two Generators.

kgrade' :: AlgGen -> Int Source

Compute the filtration level of an AlgGen.

filteredMorphismAction :: Int -> Maybe ElMo -> Generator -> Generator -> Bool Source

Like morphismAction, but only connects two Generators if the drop in k-grading from one to the other is less than or equal to a.

filteredMorphismsFrom :: Int -> Generator -> Set Generator -> Morphisms Source

Return Morphisms from the Generator into the set with kDrop less than or equal to k.

filteredComplexLevel :: Int -> Map Int (Set Generator) -> Int -> Morphisms Source

Applies filteredMorphismsFrom to every Generator in a list into the same list.

psi :: Braid -> Generator Source

Produces the Generator corresponding to the transverse invariant of a braid.

psiCube :: Braid -> [BDiagram] Source

Produces the portion of the cube of resolutions of a braid which is relevant for computing kappa. This means only using resolutions whose weights are less than or equal to psi's. Note that this only uses the homological grading of psi, so we don't need a separate function for the quotient.