Dror Bar-Natan: Publications:

# On the Vassiliev Knot Invariants

Topology 34 (1995) 423-472

first posted August 1992, last updated January 2007

An introduction to Vassiliev invariants. Contains the definition, proofs that the various knot polynomials are Vassiliev invariants (appropriately parametrized and expanded), the basic constructions (of weight systems from Vassiliev invariants and from Lie algebras), a discussion of the Hopf algebra of chord diagrams, The Kontsevich integral proving that every weight system comes from an invariant, the diagrammatic PBW theorem and Chinese characters, the map into marked surfaces, an analysis of the space of weight systems coming from that map (exactly all classical algebras), and some more.

If you're a newcomer to the field and you're asking me, that's the paper to read!

## Programs and Data

The data and programs, however, are no longer the ones to use. Everything here is outdated, not user-friendly, not documented, not commented, and not guaranteed to work on your computer. I wouldn't recommend playing with these files unless you have lot's of time and a very good reason.

Contents:

`OnVassilievFiles.tar.gz`
Everything that appears below, in a .tar.gz format. (~85Kb).
`main.c`
A C++ program for computing dim Wm. To change m (and a few other options) change the line beginning with "`#define M`" to whatever you want.
`Surf.C`
A C++ program that generates random (connected) Chinese Characters (elements of B) and evaluates F on them. The results are printed in a mathematica-readable format:
OY[2,0,1]
is an orientable surface with 2 unmarked boundary components, 0 components marked once and 1 component marked twice.
ON[2,0,1]
is the same, only non-orientable.
`reduce.m`
A mathematica script that computes the dimension of the span of the results produced by Surf.C.

Example: To compute the dimension of the image of F on the space of connected Chinese Characters of degree 5 having 2 external legs type:

```    CC Surf.C -o Surf
Surf > 5.2
5
2
1000
100
math
<< reduce.m
<< 5.2
red[l[5,2]];
```
`Ar2.txt`
`A2.txt`
`Ar3.txt`
`A3.txt`
`Ar4.txt`
`A4.txt`
`Ar5.txt`
`A5.txt`
`Ar6.txt`
`A6.txt`
`Ar7.txt`
`Ar8.txt`
`Ar9.txt`