Academia.eduAcademia.edu

Knot Classification and Enumeration

1997

Knot classification and enumeration Nicholas James Jackson Supervised by Dr Brian Sanderson 30th September 1997 Joseph Leslie Slack (1908-1996) Wilfred Leslie Jackson (1932-1997) Contents 1 Introduction 1.1 Knots, links and diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Notations 2.1 Tait’s notation . . . . . . . . . . . . . 2.2 Dowker and Thistlethwaite’s notation 2.3 Conway’s notation . . . . . . . . . . . 2.3.1 Tangles . . . . . . . . . . . . . 2.3.2 Polyhedra . . . . . . . . . . . . 2.3.3 Tangle equivalences . . . . . . 2.3.4 Orientation and string-labelling 6 6 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 10 10 11 13 13 15 3 Invariants 3.1 The Seifert pairing . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Determinant, signature and nullity . . . . . . . . . . . . . . . 3.3 The Alexander polynomial . . . . . . . . . . . . . . . . . . . . 3.4 The Conway potential function . . . . . . . . . . . . . . . . . 3.4.1 Kauffman’s approach — the single-variable polynomial 3.4.2 Conway’s approach — the many-variable polynomial . 3.5 The Kauffman bracket and the Jones polynomial . . . . . . . 3.5.1 The Kauffman bracket . . . . . . . . . . . . . . . . . . 3.5.2 The L-polynomial . . . . . . . . . . . . . . . . . . . . 3.5.3 The Jones polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 17 20 20 21 21 23 23 23 25 26 4 Rational tangles, 4-plaits and two-bridge knots 4.1 Schubert’s normal form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Plaits and braids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Conway’s normal form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 27 29 31 5 Slice knots and Cobordism 5.1 Slice knots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Cobordism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 38 42 6 Machine computation 6.1 Preliminaries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 The vector class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 String-manipulation functions . . . . . . . . . . . . . . . . . . . . . . . . 44 44 44 44 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 6.3 Laurent polynomials . . . . . . . . . . . Conway’s normal form . . . . . . . . . . 6.3.1 Determinant . . . . . . . . . . . 6.3.2 The Kauffman bracket . . . . . . 6.3.3 The writhe . . . . . . . . . . . . 6.3.4 The Kauffman L-polynomial and A C++ sourcecode A.1 vector . . . . . . . . . . . A.1.1 vector.h . . . . . A.1.2 vector.cc . . . . A.2 String-handling functions A.3 polynomial . . . . . . . . A.3.1 polynomial.h . . A.3.2 polynomial.cc . . A.4 cnf . . . . . . . . . . . . . A.4.1 cnf.h . . . . . . . A.4.2 cnf.cc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . . . . . . . . . . the . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Jones polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 45 45 46 46 47 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i i i i iii iv iv v viii viii ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . List of Figures 1.1 Reidemeister moves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 Tait’s notation for the knot 63 Dowker-Thistlethwaite notation Example tangles . . . . . . . . Tangle symmetries . . . . . . . Elementary tangles . . . . . . . Tangle operations . . . . . . . . A transcendental tangle . . . . Basic polyhedra . . . . . . . . . Flyping . . . . . . . . . . . . . Positive and negative crossings . . . . . . . . . . 9 11 11 11 12 12 13 14 15 16 3.1 3.2 The Seifert algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Crossing change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 18 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 Bridge labelling . . . . . . . . . . . . . . . . . . . . . . . The two-bridge knot S(3, −1) . . . . . . . . . . . . . . . Construction of a plait from a braid . . . . . . . . . . . Geometric interpretation of the braid group Bm . . . . . Deformation of a 2m-plait into an m-bridge presentation 4-plait presentation of a rational knot . . . . . . . . . . Deformation of a rational knot . . . . . . . . . . . . . . Conway’s normal form . . . . . . . . . . . . . . . . . . . Regular diagram of a 4-plait . . . . . . . . . . . . . . . . Deformed diagram of a 4-plait . . . . . . . . . . . . . . . Horizontal rotation . . . . . . . . . . . . . . . . . . . . . Effect of an odd horizontal rotation . . . . . . . . . . . . Vertical rotation . . . . . . . . . . . . . . . . . . . . . . Final horizontal rotation . . . . . . . . . . . . . . . . . . The numerator of two rational tangles . . . . . . . . . . N (A + B) in Conway’s normal form . . . . . . . . . . . 5.1 5.2 5.3 5.4 The reef knot 31 #3∗1 as a section through a knotted 2-sphere in K#K ∗ is a slice knot . . . . . . . . . . . . . . . . . . . . . . . Ribbon singularity . . . . . . . . . . . . . . . . . . . . . . . . . The reef knot as a ribbon knot . . . . . . . . . . . . . . . . . . 6.1 6.2 . . for . . . . . . . . . . . . . . . . . . . . . the knot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 819 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 28 30 30 31 31 32 32 32 33 33 34 34 35 37 37 S4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 40 41 41 Plait ends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Calculation of the writhe of the knot 52 . . . . . . . . . . . . . . . . . . . . . . 45 47 4 . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Chapter 1 Introduction This dissertation is based mostly on John Conway’s 1970 paper An enumeration of knots and links and some of their algebraic properties [5] and follows, broadly, the structure of that paper. I have attempted to expand and expound upon the material therein, referring in many cases to other papers or books which are listed in the bibliography. It should be stated that none of the material in this dissertation, with the possible exception of the C++ sourcecode in the appendix, is original work. My aim is to provide an expository work examining a number of topics in classical knot theory. 1.1 Knots, links and diagrams This section is intended to serve as a very brief introduction to the mathematical theory of knots, defining some basic concepts and terminology. More thorough introductions may be found in [4], [17] and [9] amongst others. Some more traditional (non-mathematical) texts on knots include [2], [8] and [10]. `n A knot is an embedding K : S 1 → S 3 and a link is an embedding L : i=1 S 1 → S 3 , that is, a finite number of (possibly linked) knots. In practice, the distinction between the embeddings and their images is often not made, and the terms ‘knot’ and ‘link’ will be used to refer to either unless stated otherwise. A knot K is usually depicted by means of a projection p : K → R2 . A point P ∈ p(K) is said to be a multiple point if the preimage p−1 (P ) is not a single point. A projection is regular if it has only a finite number of multiple points, all of which are double points, and no vertex of K is mapped onto a double point. The minimal number of double points in a regular projection of a knot K is called the order or crossing number of K. The image p(K) is called a diagram for K. Two embeddings f0 : X → Y and f1 : X → Y are isotopic if there is an embedding F : X × I → Y × I such that F (x, t) = (f (x, t), t) for x ∈ X and t ∈ I = [0, 1] with f (x, 0) = f0 (x) and f (x, 1) = f1 (x). F is called a level-preserving isotopy between f0 and f1 . Two embeddings are said to be ambient isotopic if there is a level-preserving isotopy H : Y × I → Y × I with H(y, t) = (ht (y), t) such that f1 = h1 f0 and h0 = idY . H is called an ambient isotopy. Two knots, K1 , K2 are then said to be equivalent, or of the same knot type, denoted K1 ≈K2 if they are ambient isotopic. Two knot diagrams D1 , D2 are said to be equivalent, written D1 ∼ D2 , if one can be transformed into the other by an ambient isotopy of the plane, and a finite sequence of Reidemeis- 5 ter moves, as depicted in figure 1.1. −1 ✛R1 ✲ R1 −1 ✛R2 ✲ R2 −1 ✛R3 ✲ R3 Figure 1.1: Reidemeister moves Theorem 1.1 (Reidemeister 1932) Given two knots (or links) K1 and K2 with diagrams D1 and D2 respectively, K1 is ambient isotopic to K2 iff D0 ∼ D2 . 1.2 Acknowledgements I would like to thank my supervisor, Dr Brian Sanderson, for his help and encouragement, and for introducing me to the mathematical theory of knots. I would also like to thank my fellow graduate students for interesting discussions and helpful advice, in particular Michael Greene for his help with proofreading, and Neil Gamble and family for getting me interested in knots in the first place, several years ago. 6 Chapter 2 Notations Perhaps the most fundamental question in knot theory, at least historically, is that of classification and enumeration — that is, to devise a method of cataloguing all essentially different knots of a given degree of complexity. This is usually approached by classifying knot diagrams, with a particular number of crossings, up to invariance under the Reidemeister moves and ambient isotopy of the plane. What is required, then, is some concise and consistent notation for describing a knot diagram. In this chapter we describe and examine three different systems of notation. 2.1 Tait’s notation The first serious attempt at an exhaustive enumeration of knots was undertaken by the Victorian physicist Peter Guthrie Tait in the late nineteenth century [20]. Tait’s motivation and inspiration for this study came from Kelvin’s theory of vortex atoms, which regarded atoms as, in some sense, knots in the vortex lines of the æther. The lack of any detailed correlation between the knot tables compiled by Tait (and his collaborators Kirkman and Little) and Mendeleev’s periodic table of the elements was a serious problem for this theory; the coup de grâce was dealt by Michelson and Morley’s 1881 experiment disproving the existence of the æther itself. The fundamental idea behind Tait’s system of notation for alternating knots is to label each crossing point in an alternating diagram according to some prearranged algorithm, and then to read off the sequence of labels by following the string round the knot. Each label is then given a subscript + or − to denote whether the crossing is an overcrossing or an undercrossing. This sequence is called a scheme. Tait’s method requires one to start at an arbitrary crossing point and follow the string of the knot, labelling every alternate (odd-numbered) crossing sequentially. Since the odd-numbered crossings will always be labelled A, B, . . ., the knot in question is then completely determined by the letters in the even places in the scheme. For example, the knot in figure 2.1 may be described by the sequence A+ D− B+ A− C+ F− D+ B− E+ C− F+ E− , which abbreviates to DAFBCE. The problem is now that of tabulation of appropriate sequences of letters, subject to certain restrictions. We wish to discount sequences such as EABCD which don’t represent a valid knot, by requiring that each label in the scheme occurs exactly twice, as an undercrossing and as an overcrossing. Additionally, we require that if we delete both occurrences of a label L together with both occurrences of any labels between the Ls, the resulting sequence must satisfy the given requirement. 7 C E A B F D Figure 2.1: Tait’s notation for the knot 63 As an example of this condition, consider the sequence EABCD, which corresponds to a scheme A+ E− B+ A− C+ B− D+ C− E+ D− . We may delete the crossing B, and both occurrences of the labels (in this case A and C) which occur between B+ and B− , as follows: A+ E− B+ A− C+ B− D+ C− E+ D− A 6 + E− B 6 + A 6 − C 6 + B 6 − D+ C 6 − E+ D− E D E D The sequence EDED, though, does not correspond to a valid knot, however, since attaching + and − subscripts to the labels alternately gives E+ D− E+ D− , which would require E and D to consist of two undercrossings and two overcrossings, respectively. Hence EABCD cannot correspond to a valid knot. The reason for this condition is clear: If we eliminate an arbitrary crossing and then discard one of the components of the resulting link, the remaining component must still be a (possibly trivial) knot. If, then, we perform the analogous operation on a sequence which supposedly represents a valid knot, we expect that the resultant sequence still satisfies the fundamental condition — that each label occurs twice, once as an undercrossing and once as an overcrossing. Note that this condition is necessary, but not sufficient to determine whether a given sequence corresponds to a valid knot — for example the sequence EDIHGJBACF satisfies the required condition for every label, but does not correspond to a valid knot diagram. We may eliminate nugatory crossings as follows: A crossing C is nugatory if, between both occurrences of C in the scheme, there are an even (possibly zero) number of labels, each of which occurs exactly twice. In enumerating knots of a particular crossing number, then, we may disallow any sequence with A in the second or last place, B in the second or fourth place, C in the fourth or sixth place, and so on, since these give rise to nugatory crossings. There are essentially four different ways of relabelling a knot in order to derive an equivalent, and possibly different, sequence: i. We may relabel the crossing B as A, and proceed as usual. This has the effect of replacing each letter by the one preceding it in the alphabet and then moving the first letter to the end. A sequence is said to be unique if, as DEABC, it is unchanged under this operation — that is, if the letters are in cyclic order. For a sequence of n letters, the order of the sequence under this operation will be a factor of n. In particular, if n is prime then any such sequence will either be unique or will be reproduced after n such operations. For example, considering the knot DAFBCE as depicted in figure 2.1: A F D B A A C B F D C B E D C F E E We now interpolate the appropriate letters (for example, B has been relabelled as A, C as B, and so on) in the odd places to get FCAFBECADBED, or FEABDC. ii. We may begin from crossing A in the even places and label as before, but by the other 8 branch of the string. For example: A A D F F B C A A A C D F B B D F B C C E E C D D F B E E E Hence, DAFBCE becomes DFEBAC under this operation, which has five other equivalents by the first operation. iii. We may also reverse the direction of labelling in the first case, so (for example) DAFBCE becomes CEFBAD, which is equivalent to DFEBAC under repeated application of the first operation. iv. Finally, we may reverse the direction of labelling in the second case, DAFBCE in this case becoming EAFCBD. 2.2 Dowker and Thistlethwaite’s notation Dowker and Thistlethwaite devised a modified form of Tait’s notation which has proved particularly suitable for use in computer programs — see for example [1]. For an n-crossing knot, we follow the string round numbering each crossing sequentially. This process constructs a pairing of odd numbers with even numbers, the symbol for the knot in question being the sequence of even numbers 2, . . . , 2n matched with 1, . . . , 2n − 1. The choice of initial crossing point may result in different symbols for the same knot, so we choose the sequence least in numerical order as the standard symbol for the knot. We wish only to consider prime knots and hence disallow any sequence such that, for a subinterval of the numbers 1, . . . , 2n, the odd numbers in that subinterval are paired with the even numbers in the same subinterval. In order to reject nugatory crossings, we eliminate any sequence where an odd number is paired with an adjacent even number (mod 2n). Furthermore, a crossing (i, j) is nugatory if every odd number in the interval (i, j) is paired with an even number in the same interval — sequences of this type will have been discarded, however, as representing composite knots. As with Tait’s notation, not every sequence corresponds to a valid knot, so we further require that any two loops intersect in an even number of points. For example, the sequence 4 6 8 10 2 is invalid since it represents a pairing {(1, 4), (3, 6), (5, 8), (7, 10), (9, 2)}, corresponding to two loops 1, 2, 3, 4 and 5, 6, 7, 8 which intersect at only one point, namely (3, 6). Note that, as with Tait’s system, this condition is necessary but not sufficient for determining whether a sequence corresponds to a valid knot. We adopt the convention that 1 represents an undercrossing, so that, if we consider only alternating knots, the even numbers correspond to the overcrossings of the knot. To extend this notation to alternating knots (which begin to appear when one considers knots of eight crossings and greater), we denote an undercrossing by a minus sign prefixed to the even number in question. The knot 819 (figure 2.2), for example, is represented by the sequence 4 8 -12 2 -14 -6 -16 -10. 2.3 Conway’s notation Conway’s motivation for introducing his notation for knots and links [5] was to facilitate computer enumeration of knots and to enable machine calculation of invariants, something which had been hampered until then by the lack of a suitable notation. In the event, such computation was rendered unnecessary by considering various symmetries and other relations between 9 5 12 13 16 6 11 10 15 9 14 4 1 3 8 7 2 Figure 2.2: Dowker-Thistlethwaite notation for the knot 819 the knots in his survey, although Trotter [21] used Conway’s notation for this purpose with some success, and in chapter 6 we examine its use in a C++ program to calculate invariants for a particular class of knots — the two-bridge knots discussed in chapter 4. Conway’s system of notation has the advantage (not entirely shared by either Tait’s or Dowker and Thistlethwaite’s scheme) that a diagram for the knot or link may be readily obtained from the encoded form. 2.3.1 Tangles Let a tangle be a portion of a knot diagram with four emerging arcs, as in figure 2.3. The northwest arc is called the leading string of the tangle, and the northwest-southeast axis is called the principal diagonal. ❆ ❆ ❆ ❆ 3231 (3, 2, 3̄) Figure 2.3: Example tangles An arbitrary tangle may be represented as a circle containing an L-symbol. From this we may obtain fifteen others by various combinations of reflections and rotations, generated by the three operations shown in figure 2.4. Given a tangle t, we denote by th and tv the tangles obtained by rotation about a horizontal (east-west) or vertical (north-south) axis, by tr = thv = tvh that obtained by a 180◦ rotation in the plane and by −t the tangle obtained by reflecting t in the plane of the paper. To visualise this more readily we may regard the tangle symbol as a coin with the L symbol representing the obverse and the broken L representing the reverse. ✬✩ ✬✩ ✬✩ ✬✩ ✬✩ ✫✪ ✫✪ ✫✪ ✫✪ ✫✪ t th tv tr −t Figure 2.4: Tangle symmetries 10 ❅ ❅ 0 ❅ ❅ 1 ∞ ❅ ❅ ❅ ❅ −1 = 1̄ Figure 2.5: Elementary tangles Figure 2.5 shows the four elementary tangles. Note, however, that Conway’s notation follows the opposite of the usual convention by which a right -handed crossing is considered ‘positive’. Any tangle which may be constructed from the tangles 0 or ∞ by means of the four operations shown in figure 2.6 is said to be algebraic. ✬✩ ✬✩ ❅ ❅ ✬✩ ✬✩ ✬✩ ✬✩ ❅ ❅ ✫✪ ✫✪ a a ❅ ❅ ❅ ✫✪ ✫✪ ✫✪ ✫✪ ❅ ❅ ❅ a b a b ❅ ❅ ❅ ❅ (a + b) (ab) (a+) (a−) Figure 2.6: Tangle operations a + b is formed by joining the northeast string of a to the northwest string of b and the southeast string of a to the southwest string of b. ab is formed by reflecting a in its leading diagonal and joining the northeast string of the resultant tangle to the northwest string of b and the southeast string to b’s southwest string. a+ is formed by performing a left-handed twist on the southeast and southwest strings of the tangle a. a− is formed by performing a right-handed twist on the southeast and southwest strings of the tangle a. We can define the integral tangles, n = 1 + . . . + 1 and −n = n̄ = 1̄ + . . . + 1̄, which consist simply of n left- or right-handed twists. We call a tangle rational if it is of the form ((. . . ((ab)c) . . .)d), usually written abc . . . d, the parentheses being associated to the left. The rational tangles are particularly important — as will be seen later, there is a one-to-one correspondence between the rational tangles and the rational numbers (hence the name). They are also deeply connected with the two-bridge knots and 4-plaits discussed in chapter 4 A rational tangle a1 a2 . . . an is essentially the result of starting with the tangle ∞ (if n is even) or 0 (if n is odd) and applying the required number of twists alternately to the southwest and southeast strings, and to the northeast and southeast strings, in such a way that we end up applying an twists to the northeast and southeast strings. Furthermore, the notation (a, b, . . . , c) is shorthand for a0 + b0 + . . . + c0, but is only used with two or more terms between the parentheses. From consideration of figures 2.5 and 2.6 we see 11 that a0 is equivalent to reflecting the tangle a in its principal diagonal, and that ab = a0 + b. Lastly, it should be stated that the notation a − b denotes ab̄, rather than a + b̄ or (a−)b, where b̄ denotes the tangle b reflected in the plane of the paper. Figure 2.7 shows an example of a non-algebraic or transcendental tangle, in this case constructed from the polyhedron 8∗ . Figure 2.7: A transcendental tangle 2.3.2 Polyhedra Having constructed a notation for tangles, the next logical step is to extend this to a notation for knots and links. To do this, we introduce the notion of a polyhedron — a 4-valent planar graph inscribed on the surface of a sphere. We say a given polyhedron is basic if no region has just two vertices adjacent to it. The essential idea is that we replace the vertices of a given polyhedron with algebraic tangles in a clearly-defined, consistent way, in order to construct a knot diagram. The reason for the restriction to basic polyhedra should now become apparent — a region with only two adjacent vertices can be collapsed in a well-defined manner, replacing the tangles at its vertices with a single algebraic tangle which is the sum of the previous two. To enumerate all knots of eleven crossings or less, and all links of ten or fewer crossings, Conway found that only eight basic polyhedra — depicted in figure 2.8 — were necessary. The six-vertex polyhedron, though, has two forms: 6∗ and 6∗∗ . The knot formed from the polyhedron P ∗ by inserting tangles a, b, . . . , c at the specified vertices is denoted P ∗ a.b. . . . .c, subject to the following abbreviations: i. Prefixes 1∗ , 6∗ and 6∗∗ are omitted, the last of these being denoted by an initial dot. ii. Tangles of value 1 or −1 are omitted and the separating dots are ‘telescoped’ — two dots are replaced by a colon and trailing dots are omitted. iii. The symbol 10−∗∗∗ is shorthand for 10∗∗∗ 1̄.1̄.1̄.1̄.1̄. So, for example, 8∗ 2 : 3.4 : .5 is an abbreviation for 8∗ 2.1.3.4.1.1.5.1. 2.3.3 Tangle equivalences . Two tangles a and b are said to be equivalent (denoted a=b) if we can obtain one from the other by performing a finite sequence of Reidemeister moves. A particularly striking result concerning the rational tangles is that any two tangles ijk . . . lm and npq . . . st are equivalent if and only if the corresponding continued fractions m + l+1 1 and ... t + s+1 1 are equal. Justification for this result may be found in chapter 4. ... Conway’s notation is particularly effective in the sense that it includes Tait’s notion of ‘flyping’ (figure 2.9), in which a tangle 1 + t is replaced by th + 1, or 1̄ + t by th + 1̄. As will be seen . . . later, for any rational tangle t, we have t = th = tv = tr , so if a, b, . . . , c are all rational, the position of terms 1 or 1̄ in a tangle of the form (a, b, . . . , c) is immaterial and hence the 1 and . . 1̄ may be collected together. For example, (1, 2 3, 1, 5) = (2 3, 1, 1, 5) = (2 3, 5, 1, 1). We may further simplify this by using the operations a+ and a−, since, if a, b, . . . , c are rational: 12 x a a c e d 1∗ f y 6∗ 6∗∗ g d a e c a f d b e b h g h f c 8∗ c a c d b i g h f b e h b x j 10∗∗ c d e f h b g h 10∗∗∗ d f 11∗ Figure 2.8: Basic polyhedra 13 i g a e i g c y j f d 10∗ a i 9∗ a e d c b a b j k and . . . (a, b, c, 1) = (a, b, c+) = (a, b+, c) = (a+, b, c) (2.1) . . . (a, b, c, 1̄) = (a, b, c−) = (a, b−, c) = (a−, b, c) (2.2) So, we may collect these floating postscripts on the rightmost term, cancelling + and − signs appropriately. If, however, this would leave us with just one tangle t followed by p plus signs and q minus signs then we may further abbreviate the tangle as tn, where n = p − q. 1 + t ←→ th + 1 Figure 2.9: Flyping In the late nineteenth century, Tait suggested the following conjecture which was finally proved by Menasco and Thistlethwaite in 1991 [16]: Theorem 2.1 Given two reduced, prime alternating diagrams D1 and D2 for a knot or link K, it is possible to transform D1 to D2 solely by a finite sequence of flypes. 2.3.4 Orientation and string-labelling We may assign an arbitrary orientation to a given proper knot K by specifying a preferred direction along its string. If this is done, we say the knot is oriented. By means of simple geometric operations we may obtain three alternative knots: i. By reflecting the knot in a mirror we get the enantiomorph or obverse — Conway’s paper denotes this by ¬K, other literature tends to denote the reflected knot by K ∗ . ii. By reversing the string orientation we obtain another knot — Conway’s paper calls this the reverse and denotes it by Kr whereas other literature usually calls this the inverse and denotes it by K −1 . iii. By reversing the orientation of the reflected knot we obtain a third knot which Conway calls the inverse, denoted ¬Kr . This is different to what is usually meant by the inverse of a knot, but corresponds to the inverse of K in the cobordism group described in chapter 5. If K ≈ ¬K then K is said to be amphicheiral or achiral, chiral otherwise. If K ≈ Kr then K is said to be reversible — more usually called invertible. If K ≈ ¬Kr then K is said to be involutory. The situation is more complex for links of two or more strings, and for this reason Conway introduced an algorithm for labelling and orienting the components of a given knot or link. Orient the leading string of the tangle a in the polyhedron diagrams in figure 2.8 so that the arrow points into the tangle, and label this string r1 . Now follow the string in the direction of its orientation, and label the other strings r2 , r3 , . . . in order of their first crossing with r1 . Orient each of these strings in such a way that their first crossing with r1 is a positive crossing in the 14 sense of figure 2.10. If any strings remain unlabelled and unoriented then repeat this process with string r2 , labelling any unlabelled strings as before, and then with r3 , . . . if necessary. Note that, as before, this construction is contrary to the usual convention of a right-handed crossing being regarded as ‘positive’. ❅ ❅ ❅ ✒ ❅ ❅ ❘ ❅ ε = −1 ✒ ❅ ❘ ❅ ε = +1 Figure 2.10: Positive and negative crossings Conway also introduces a notation to describe arbitrary relabelling of strings in a knot or link. Let π be a function (not necessarily a permutation) from the labels r1 , r2 , . . . to the symbols r1 , r1−1 , r2 , r2−1 , . . .. Then for a given labelled and oriented knot or link K, denote by Kπ the knot or link obtained by relabelling all the ri strings in K as rj strings in Kπ if π(ri ) = rj and as reversely-oriented rj strings in Kπ if π(ri ) = rj−1 . Define |π| to be the number of strings whose orientations are reversed by π and |K| to be the number of components of K. Note that two distinct strings may be given the same label, as is the case with Kauffman’s formulation of Conway’s potential function. 15 Chapter 3 Invariants In this chapter we define and examine a number of knot invariants — that is, a construct (usually numeric or polynomial) derived in a well-defined way from a knot or link, which is unchanged under ambient isotopy. The central requirement, then is that two isotopic links will have equal or equivalent invariants associated with them. 3.1 The Seifert pairing Given any knot or link K, we may construct a compact orientable surface V whose boundary is K. We may then define a pairing H1 (V ) × H1 (V ) → Z and derive a number of useful invariants from this. Proposition 3.1 Any knot K may be considered as the boundary of some compact orientable surface embedded in S 3 . Proof Consider any diagram D of K. Start at any point of D and move along the knot in the direction of orientation. At each crossing point move onto the other strand and follow that in the positive direction. Eventually, we return to the starting point, having traced out a closed curve (a Seifert circuit). Repeat this procedure with all untraversed sections of the knot, constructing a number of disjoint circles. We may consider each of these Seifert circuits to be the boundaries of disjoint discs — if we have a number of concentric circles we may avoid intersections by capping the circuits off with domes. We then join these discs together with twisted bands at the crossing points, as depicted in figure 3.1. We now have a surface V such that ∂V = K. As a consequence of this construction, V is orientable. Each circuit inherits an orientation from the knot, which we may use to attach a normal to each disc using a right-handed screw rule. In passing from one disc to another, the normal is preserved, so there are no closed paths on V which reverse the normal direction. Hence V is orientable. ✷ This surface V is called a Seifert surface for the knot K. We define the genus of a surface 2g V to be g ∈ Z such that H1 (V ) ∼ = ⊕1 Z. We define the genus of the knot K, g(K), to be the minimal genus over all possible Seifert surfaces for K. 16 ❘ ❅ ❘ ✒ ❅ ❅✒ ❘ ❅ ✒ ❅ ✒ ❘❅ ❅⊕ ✒ ❘ ❅ ❅ ✒⊖ ❅ ❘ Figure 3.1: The Seifert algorithm Proposition 3.2 If V is a Seifert surface constructed from some knot diagram, then g(V ) = 12 (c − s + 1) where c is the number of crossing points in the diagram and s is the number of Seifert circuits. Proof We may construct a handlebody decomposition of V with s 0-handles and c 1-handles, which is equivalent to one with a single 0-handle and c − (s − 1) 1-handles, by cancelling 0-handles. Hence 2g = c − s + 1. ✷ Given two oriented, disjoint, possibly linked copies of S 1 embedded in S 3 , u, v, we may define the linking number of u and v, lk(u,v) as follows: Assign an integer εi to each crossing point in a diagram of the link such that εi = +1 if it is a right-handed crossing, −1 if it is a left-handed crossing, and 0 if the crossing does not involve P strings of both u and v. Then define lk(u, v) = 12 i εi — half the sum of the εs over all the crossings in the diagram. Proposition 3.3 lk(u, v) is independent of the choice of diagram. Proof None of the Reidemeister moves change the linking number — R1 and R1−1 eliminate or create an ε = 0 crossing, R2 and R2−1 eliminate or create either two 0-crossings, or a positive and a negative crossing which cancel each other out, and R3 and R3−1 neither create nor eliminate any crossings. Hence the linking number is unchanged by ambient isotopy, and thus independent of the choice of diagram. ✷ Corollary 3.4 lk(u, v) = lk(v, u) for any link components u, v. Proposition 3.5 lk(u, v) depends only of the homotopy class of u in S 3 \ v Proof If u′ ≃ u in the complement of v, then to pass from a diagram of u, v to a diagram of u′ , v we have to use the Reidemeister moves and their inverses, together with the crossing change shown in figure 3.1, none of which change lk(u, v). ✷ ❅ ❅ u ✲ ❅u ❅ ❅ u ❅ ❅ ❅u Figure 3.2: Crossing change 17 Corollary 3.6 gv : π1 (S 3 \ v) → Z; u 7→ lk(u, v) is a well-defined homomorphism. Let u, v ∈ π1 (V, ∗) for some Seifert surface V and let i+ u be the result of pushing u a small distance along the positive normal to V . Define φ(u, v) = lk(i+ u, v). Corollary 3.7 If v is fixed then fv : π1 (V, ∗) → Z; u 7→ φ(u, v) is a homomorphism. Since Z is abelian, ker fv contains the commutator subgroup of π1 (V, ∗) and hence fv induces a homomorphism H1 (V ) → Z. Similarly, we may fix u and vary v to get another homomorphism from H1 (V ) to Z, which enables us to define a bilinear pairing θ : H1 (V ) × H1 (V ) → Z — the Seifert pairing. We may represent θ by a matrix A = [aij ] where aij = θ(xi , xj ) and {x1 , . . . , x2g } is a basis for 2g H1 (V ) ∼ = ⊕1 Z. We say A is a Seifert matrix. Two n × n integral matrices are said to be s-equivalent if one can be transformed into the other by a finite sequence of the following operations and their inverses: λ1 λ2 λ3 : A 7→ T AT T  A 0 : A 7→  0 0 p 0  A 0 : A 7→  0 0 0 1  0 1  0  q 0  0 where T is a unimodular integer matrix, p is a 1 × n integer matrix, and q is a n × 1 integer matrix. If two matrices are symmetric then they are said to be S-equivalent if one can be transformed into the other by a finite sequence of the following two operations and their inverses: Λ1 Λ2 : A 7→ T AT T   A 0 0 : A 7→  0 0 1  0 1 0 Hence, if M, N are s-equivalent, then M + M T and N + N T are S-equivalent. Proposition 3.8 If M is a Seifert matrix for a link L, then the s-equivalence class of M is an invariant of the link type of L, and hence so is the S-equivalence class of M + M T . Proof If two link diagrams represent links of the same type then one may be deformed into the other by a finite sequence of Reidemeister moves, none of which alter the linking number, and hence none of these alters the s-equivalence class of the Seifert matrix M or the S-equivalence class of M + M T . ✷ 18 3.2 Determinant, signature and nullity We define the signature of a knot or link K, denoted σ(K), to be the signature of M + M T , where M is a Seifert matrix for K. Proposition 3.9 σ(K1 #K2 ) = σ(K1 ) + σ(K2 ). Proof We can obtain a Seifert surface for K1 #K2 by gluing together Seifert surfaces for K1 and K2 along a small section of the boundary. If M1 , M2 are Seifert matrices for K1 , K2 then  M1 0 is a Seifert matrix for K1 #K2 and hence σ(K1 #K2 ) = σ(M ) = σ(M1 ) + M = 0 M2 σ(M2 ) = σ(K1 ) + σ(K2 ). ✷ We further define the nullity, n(K), of K to be the nullity of M + M T and the determinant, det(K) to be det(M + M T ). By proposition 3.8, the determinant, signature and nullity are all invariants of link type. 3.3 The Alexander polynomial This section is a very brief outline of the Alexander polynomial, an invariant of ambient isotopy for oriented knots. More detailed accounts can be found in [4] and [17]. ◦ Let V be a Seifert surface for a knot K ⊂ S 3 and let N : V × (−1, 1) → S 3 be an open bicollar ◦ ◦ of the interior V = V \ K of V , so V = N (V × 0). Denote N ◦ = N (V × (−1, 1)) ◦ N+ = N (V × (0, 1)) N− = N (V × (−1, 0)) Y X ◦ = S3 \ V = S3 \ K + − + − Form` countably many copies `∞ of the triples (Ni , Ni , Ni ) and (Yi , Ni , Ni ) for i ∈ Z and let ∞ Ñ = i=0 Ni and Ỹ = i=0 Yi . We now construct an identification space from these by identifying Ni+ ⊂ Yi with Ni+ ⊂ Ni , − and Ni ⊂ Yi with Ni+1 ⊂ Ni+1 , via the identity homeomorphism. This space, denoted X̃ is the infinite cyclic cover of X and is a path-connected open 3-manifold which depends only on the knot type of K and is independent of the choice of Seifert surface V used in the construction. The homology, H∗ (X̃), of X̃ is hence an invariant (the Alexander invariant) of the knot type of K and may be regarded as a module over the ring Λ = Z[t, t−1 ] of Laurent polynomials. In the case of classical tame knots, we only consider the first homology, H1 (X̃), which is finitely presentable. Any presentation matrix for H1 (X̃) is called an Alexander matrix for K. The associated ideal in Λ is the Alexander ideal, and, if this is principal, a generator is called the Alexander polynomial of K, denoted ∆K (t). Finally, we state, without proof (q.v. [17]), the following theorem and an important corollary: 19 Theorem 3.10 If M is a Seifert matrix for a knot K, then M − tM T is an Alexander matrix for K. Corollary 3.11 ∆K (t) = det(M − tM T ), and hence det(K) = ∆K (−1). 3.4 The Conway potential function In this section we examine a polynomial invariant introduced by Conway in [5]. We first consider the approach adopted by Kauffman in [13] and then discuss Conway’s original formulation. 3.4.1 Kauffman’s approach — the single-variable polynomial Given a knot or link K, let M be a Seifert matrix for K. We define the Conway potential function, ΩK (x) = det(xM − x−1 M T ). An immediate consequence of this definition, together with corollary 3.11 is: Proposition 3.12 . ∆K (t2 ) = tΩK (t). Theorem 3.13 i. ΩK (x) is an invariant of link type under ambient isotopy. ii. ΩK (x) = 1 if K is the unknot. iii. ΩL (x) = 0 if L is a split link. iv. ΩK (x) obeys the following skein identity: Ω where Ω (x), Ω (x) − Ω (x), and Ω (x) = (x − x−1 )Ω (x) (x) denote the potentials of knots identical except at one crossing, where they differ as indicated. Proof i. This part follows from proposition 3.8 since ΩK (x) is defined in terms of the Seifert pairing. ii. If K is the unknot then a Seifert surface V for K may be considered  to be a disc, and 0 1 hence H1 (V ) ∼ and so = 0. Thus, any Seifert matrix for V is s-equivalent to 0 0      0 0 0 1 ΩK (x) = det x − x−1 1 0 0 0   0 x = det x−1 0 = 1 3 iii. If L is split ` then there are disjoint oriented connected Seifert surfaces V1 , V2 ⊂ S where L = L1 L2 and L1 = ∂V1 , L2 = ∂V2 . If we excise a small disc from both V1 and V2 and connect the two surfaces by means of a short tube whose ends we glue to these circles, 20 then we have a single connected oriented surface V with boundary L. Let m ∈ H1 (V ) be the homology class of a meridian on the tube. L1 and L2 are non-empty, so m 6= 0. But θ(m, α) = θ(α, m) = 0 for all α ∈ H1 (V ) and hence ΩL (x) = det(xθ − x−1 θ) = 0. iv. Let each knot or link K come equipped with a specific diagram. ΩK (x) is then calculated from the Seifert surface for this diagram. On such a surface V , the three crossings in the skein identity are related by changing the twist on a band connecting two Seifert discs. We denote the three links by K+ , K− , K0 and the corresponding surfaces by V+ , V− , V0 . If the diagram K+ is split then so are the diagrams K− and K0 . Hence if either K+ or K− is a split diagram then the result is trivial, since by part ii split links have vanishing potential function. It may happen that K0 is a split diagram while K+ and K− are not, in which case the upper and lower strands of K0 must be in the split halves and so K+ and K− are ambient isotopic, hence ΩK+ (x) = ΩK− (x), thus giving the required result. ∼ H1 (V− ) ∼ Finally, if none of K+ , K− , K0 are split diagrams then H1 (V+ ) = = H1 (V0 ) ⊕ Z, where the extra factor of Z is generated by α+ ∈ H1 (V+ ) and α− ∈ H1 (V− ), each represented by a curve passing once through the corresponding twisted band of the surface. We may extend a basis for H1 (V0 ) to bases for H1 (V+ ) and H1 (V− ) we see that the Seifert matrices θ+ and θ− for V+ and V− take the form:   a+1 µ θ+ = η θ0   a µ θ− = η θ0 where η is a column matrix, µ is a row matrix, θ0 denotes a Seifert matrix for V0 and a = θ− (α− , α− ) = θ+ (α+ , α+ )−1. By substituting this into the definition of the potential function, we see: ΩK+ (x) − ΩK− (x) T T = det(xθ+ − x−1 θ+ ) − det(xθ− − x−1 θ− )   −1 T −1 (x − x )(a + 1) xµ − x η = det xη − x−1 µT xθ0 − x−1 θ0T   (x − x−1 )a xµ − x−1 η T − det xη − x−1 µT xθ0 − x−1 θ0T = (x − x−1 ) det(xθ0 − x−1 θ0T ) = (x − x−1 )ΩK0 ✷ This result may be used as a recursive definition of ΩK (x) for any knot or link K, but the potential function is usually presented in the form of the Conway polynomial: ∇K (z) = ΩK (x − x−1 ) In this form, the axioms become: i. ∇K (z) = 1 if K is the unknot. ii. ∇L (z) = 0 if L is a split link. iii. ∇ (z) − ∇ (z) = z∇ (z) 21 3.4.2 Conway’s approach — the many-variable polynomial Given a knot or link K, label and orient each string by the process described in section 2.3.4. Conway’s potential function ΩK (r, s, . . .) is then defined uniquely by the following conditions: i. ΩK (r, s, . . .) = ΩK (−r−1 , −s−1 , . . .) ii. ΩK (r, s, . . .) = (−1)|K| ΩK (−r, −s, . . .) iii. ΩKπ (r, s, . . .) = (−1)|π| ΩK (π(r), π(s), . . .) iv. Ω¬K (r, s, . . .) = (−1)|K|+1 ΩK (r, s, . . .) The first of these conditions enables us to use the notation {f (r, s, . . .)} for f (r, s, . . .) + f (−r−1 , −s−1 , . . .). In particular, {r} stands for r − r−1 . If the knot or link K2 is obtained from a link K1 by removing a string labelled r, then ΩK1 (1, s, t, . . .) = (slk(r,s) tlk(r,t) . . . − s− lk(r,s) t− lk(r,t) . . .)ΩK2 (s, t, . . .) Finally, denote by K1 #r K2 the result of tying K2 in an r-labelled string of K1 , then ΩK1 #r K2 = {r}ΩK1 ΩK2 The skein identity Ω (r, s, . . .)−Ω (r, s, . . .) = {r}Ω (r, s, . . .) holds, as in the single- variable case, when both strands of the crossing in question have the same label. When considering crossings where both strands have different labels, we have the following skein identity: Ω r (r, s, . . .) s +Ω r (r, s, . . .) s = {rs}Ω r (r, s, . . .) s Note, however, that since Conway’s definition adopts a left-handed crossing convention, Kauffman’s formulation of the potential function differs from Conway’s in certain cases. From condition (iv), we see that adopting the more common right-handed convention results in a change of sign for links with even numbers of components. The definitions agree, however, for proper knots. Hence, the potential function (and therefore the Alexander polynomial) does not distinguish between knots and their mirror-images. 3.5 The Kauffman bracket and the Jones polynomial In this section we construct a polynomial invariant of regular isotopy, extend this to an invariant of ambient isotopy, and then show how this may be used as a model for the Jones polynomial (defined in [12]) using an approach described in [14]. Two diagrams are said to be regularly isotopic if one can be transformed into the other by means of a finite sequence of Reidemeister moves of the second and third types and their inverses. 3.5.1 The Kauffman bracket The Kauffman bracket of a knot K, denoted hKi is an element of the ring Z[A, B, d], that is, a polynomial in A, B, d, defined by the following three axioms: i. h0i = 1 22 ii. h0 ∪ Ki = dhKi if K is non-empty. iii. h i = Ah i + Bh i This bracket polynomial is invariant under orientation-preserving homomorphisms of the plane, but not under regular or ambient isotopy. We now wish to choose appropriate values of B and d so that the bracket is an invariant of regular isotopy. Lemma 3.14 h i = ABh i + (ABd + A2 + B 2 )h i Proof   = = + =    +B   +A   +A  2 2 (ABd + A + B ) A    A B   B B    + AB   ✷ Corollary 3.15 The Kauffman bracket is an invariant under application of the second Reidemeister move and its inverse if B = A−1 and d = −A2 − A−2 . Corollary 3.16 If B = A−1 and d = −A2 − A−2 then the Kauffman bracket is an invariant of regular isotopy — in other words, invariance under R2 and R2−1 implies invariance under R3 and R3−1 Proof   = = = A A      +B   +B    ✷ We now consider the effect of R1 and R1−1 Proposition 3.17 If B = A−1 and d = −A2 − A−2 then D E D E on the bracket polynomial: D = −A3 = −A−3 23 D E E Proof D E E + A−1 D E = D (A(−A2 − A−2 ) + A−1 ) E D −A3 D D E E A + A−1 D (A + A−1 (−A2 − A−2 )) D E −A−3 = = = 3.5.2 E A = D D = E E ✷ The L-polynomial Thus, to extend the Kauffman bracket so that it is invariant under Reidemeister moves of the first type, we must incorporate this behaviour into a new invariant. This is done by means of the writhe of the knot, denoted w(K), which is simply the sum of the crossing numbers in the knot or link. We define the Kauffman L-polynomial to be LK = (−A)−3w(K) hKi. Theorem 3.18 The polynomial LK ∈ Z[A, A−1 ] is an invariant of ambient for oriented knots or links K. Proof Since LK combines the behaviour of the writhe and the bracket, it is invariant under all three Reidemeister moves, and is hence an invariant of ambient isotopy. ✷ The power of the bracket and the L-polynomial may be seen from the following result: Proposition 3.19 If K ∗ denotes the mirror-image of the knot or link K, then hK ∗ i(A) LK ∗ (A) = = hKi(A−1 ) LK (A−1 ) Proof Note that switching all the crossings results in the replacement of every occurrence of A by A−1 in the expansion of hKi. The analogous result for LK follows from the fact that w(K ∗ ) = −w(K). ✷ The importance of the L-polynomial lies in its ability to distinguish between a knot or link and its mirror-image; for example L31 = A−4 + A−12 − A−16 , whereas L3∗1 = A4 + A12 − A16 (where 31 and 3∗1 denote the right- and left-handed trefoils). We thus obtain the following condition on amphicheiral knots and links: Corollary 3.20 A knot or link K is amphicheiral iff LK = LK ∗ ; that is, if LK is symmetric. This is evident in the case of the figure-of-eight knot, 41 , since L41 = A8 − A4 + 1 − A−4 + A−8 . 24 3.5.3 The Jones polynomial We end this section with a brief look at the connection between LK and the Jones polynomial VK . This powerful tool, an ambient isotopy invariant of oriented knots and links, shares with the L-polynomial the important property of being able to distinguish between a knot or link and its mirror-image. Vaughan Jones’ original paper [12] constructs the polynomial via braid theory and Von Neumann algebras and shows that it satisfies the following skein identity:   √ 1 (t) − tV (t) = t− √ V (t) t−1 V t Together with the requirement that V0 (t) = 1, we may calculate VK for any oriented knot or link K. Theorem 3.21 1 VK (t) = LK (t− 4 ) for any oriented knot or link K. Proof h h i = i = Ah −1 A h i + A−1 h i + Ah i i Hence Ah i − A−1 h i = (A2 − A−2 )h i Multiplying this formula by the appropriate writhes gives: A4 L − A−4 L = (A−2 − A2 )L 1 So, by substituting A = t− 4 we get the desired result. ✷ A currently unsolved problem concerning VK (t) is that it is as yet unknown whether VK (t) = 1 only if K is the unknot. The similarities between the skein identities for the Jones and Conway polynomials led a number of mathematicians to try and generalise Jones’ work. Five independent groups (P. Freyd and D. Yetter, J. Hoste, W.B.R. Lickorish and K. Millet, A. Ocneanu, and J. Prztycki and P. Tracyk) succeeded in constructing a two-variable generalised polynomial PK , including the Jones, Conway and Alexander polynomials as special cases [7]. This invariant, dubbed the ‘HOMFLY polynomial’ (Prztycki and Tracyk’s paper arrived some time after the others, delayed, it was said, by the Polish postal service, and for this reason the invariant is sometimes named ‘HOMFLYPT’) obeys the following skein identity: lP (l, m) + l−1 P (l, m) = mP 25 (l, m) Chapter 4 Rational tangles, 4-plaits and two-bridge knots Given a knot K and a diagram D(K), let an overpass be a subarc of D(K) which contains only over-crossings. Then the bridge number of D(K) is the number of overcrossings in D(K) and the bridge number of the knot K, denoted b(K), is the minimal bridge number over all possible diagrams for K. Equivalently, a knot K admits an n-bridge presentation if it can be deformed so that it meets a plane E ⊂ S 3 in 2n points in such a way that the arcs of K contained in the half-spaces E + and E − have orthogonal projections onto E which are simple and disjoint. Lemma 4.1 i. b(K) = 1 iff K is the unknot. ii. b(K1 #K2 ) = b(K1 ) + b(K2 ) − 1. Proposition 4.2 Two-bridge knots are prime. Proof Given two knots, K1 and K2 , both nontrivial, consider their connected sum K = K1 #K2 . If K is a two-bridge knot, then from lemma 4.1 we see that b(K) = b(K1 ) + b(K2 ) − 1 = 2, so b(K1 ) + b(K2 ) = 3, implying that only one of K1 and K2 is nontrivial. ✷ 4.1 Schubert’s normal form The two-bridge knots were classified by Schubert in 1956 [18] by means of their double branched covering spaces, which will be seen to be the lens spaces L(α, β). We define the knot S(α, β) as follows: Let α and β be two coprime integers such that: α > 0, −α < β < α. (4.1) Without loss of generality we may assume that β is odd. Divide the two bridges of the knot into α segments and label them from 0 to 2α − 1 modulo 2α as shown in figure 4.1. Counting modulo 2α, an underpass starts at the 0 end of one bridge, passes under the other bridge at β, under the first bridge at 2β, and so on. The next two results follow almost immediately upon consideration of this construction. 26 Proposition 4.3 i. S(α, β) is a proper knot if α is odd. ii. S(α, β) is a two-component link if α is even. Proof If α is odd, then the underpass starting at the end of each bridge terminates at the other end of the other bridge, hence S(α, β) consists of one string. If α is even, the underpass starting at the end of each bridge terminates at the other end of the same bridge and hence S(α, β) consists of two possibly linked strings. ✷ Proposition 4.4 The mirror image, S(α, β)∗ of S(α, β) is equivalent to S(α, −β). Proof This may be seen by reflecting S(α, β) in a horizontal line along the bridges. As before, when constructing the knot, we start at the 0 end of one bridge, but this time approach the other bridge from the opposite side at the crossing labelled 2α − β ≡ −β (mod α), which is the construction for S(α, −β). ✷ α α + 1 ... α − 1 ... . . . 2α − 1 0 ... 1 ✲ Figure 4.1: Bridge labelling Figure 4.1 shows the knot S(3, −1), a two-bridge presentation of a trefoil. ✬ ✬ 3 ✬ 4 ✲ 5 2 1 0 ✩ 0 ✩ ✫ ✫ ✫ ✩ 1 2 ✛ 5 4 ✪ 3 ✪ ✪ Figure 4.2: The two-bridge knot S(3, −1) From the following result, we see that the 2-bridge knots cannot be completely classified by their determinants. 27 Proposition 4.5 The determinant of S(α, β) is α. The double branched cover of S 3 over the knot K is a space C, together with a map p : C → S 3 such that the preimage p−1 (k) of any point k ∈ K consists of a single point, and the preimage p−1 (s) of any point s ∈ S 3 \ K consists of two points. Theorem 4.6 The double branched cover of S 3 over the knot K = S(α, β) is the lens space L(α, β) Proof 3 3 Let B− ∪ B+ be a Heegaard splitting of S 3 into two 3-balls, identified along their boundaries 3 3 such that ∂B− = ∂B+ = S 2 , the equatorial 2-sphere of S 3 . Let K be embedded in S 3 such 3 3 that B− ∩ K consists of the underpasses v1 and v2 of K, and B+ ∩ K consists of the bridges 2 w1 and w2 of K. Then S ∩ K consists of four points, the endpoints of the bridges. 3 3 The double branched covers of B− and B+ with branch sets v1 ∪ v2 and w1 ∪ w2 , respectively, are solid tori T− and T+ . Each of the lifts w˜1 and w˜2 , of the bridges of K to T+ , is a meridian of T+ and hence each of the lifts v˜1 and v˜2 of v1 and v2 are homologous to αm + βl in ∂T+ where m and l are meridian and longitude generators of H1 (∂T+ ). This is a Heegaard splitting of the lens space L(α, β). ✷ The classification of the two-bridge knots, then, follows from the classification of lens spaces, a proof of which appears in [3]: Theorem 4.7 (Brody 1960) The lens spaces L(α, β) and L(α′ , β ′ ) are homeomorphic iff α = α′ and ±β ′ ≡ β ±1 (mod α). From this well-known result, Schubert arrived at the following classification theorem for the two-bridge knots: Theorem 4.8 (Schubert 1956) i. The two-bridge links S(α, β) and S(α′ , β ′ ) are equivalent as unoriented links iff α = α′ and β ≡ β ′ (mod α). ii. The two-bridge, two-component links S(α, β) and S(α′ , β ′ ) are equivalent as oriented links iff α = α′ and β ≡ β ′ (mod 2α). Together with Proposition 4.4 we now get the following condition for amphicheiral knots: Corollary 4.9 S(α, β) is amphicheiral iff β 2 ≡ −1 (mod α). 4.2 Plaits and braids A braid may be considered as a generalisation of Conway’s notion of tangles, in the sense that an n-braid consists of n incoming strings and n outgoing strings, subject to the condition that the strings must run strictly downwards, as depicted in figure 4.3. Consider a rectangle (the frame of the braid) with n points P1 , . . . , Pn along the top and n points Q1 , . . . , Qn along the bottom, connected by n strings s1 , . . . , sn such that si joins Pi to Qπ(i) , where π (the permutation of the braid) is a permutation on {1, . . . , n}. A 2m-plait may be formed from a 2m-braid by adding 2m connecting segments as in figure 4.3. 28 ✲ Figure 4.3: Construction of a plait from a braid Given m-braids ζ1 , ζ2 , we can define another braid ζ2 ζ1 by joining each emerging strand Qi of ζ1 to the strand Pi of ζ2 . Two braids ζ1 , ζ2 are said to be equivalent if they differ by an ambient isotopy. This operation of braid composition suggests the possibility of defining a group structure on the set of m-braids, and this is what we now do: The m-braid group, denoted Bm , is the group with generators {σ1 , . . . , σm−1 } subject to relations: i. σi σj = σj σi if |i − j| > 2 ii. σi+1 σi σi+1 = σi σi+1 σi We may regard these geometrically by considering σi to be the operation of interchanging strings i and i + 1 with a right-handed crossing, as depicted in figure 4.2. The second of these relations, then, is a form of the third Reidemeister move R3 . i i+1 i+2 i i+1 j j+1 i i+1 σj j j+1 σi σi ✛✲ σi σi+1 i i+1 i+2 σi ✛✲ σi+1 σj σi+1 σi σj = σj σi σi σi+1 σi σi+1 = σi σi+1 σi Figure 4.4: Geometric interpretation of the braid group Bm Theorem 4.10 The 4-plaits are exactly the 2-bridge knots. Proof 29 Given a 2-bridge knot K with 4 points of intersection P1 , . . . , P4 with the projection plane E ⊂ S 3 , arcs s1 , s2 in the upper half-space E + , and arcs t1 , t2 in the lower half-space E − , where si joins P2i−1 to P2i , and ti joins P2i to P2i+1 (where P5 = P1 ). Arrange the points Pi so that the orthogonal projections of the upper arcs si lie in a straight line. The lower arcs may then be deformed so that ti descends strictly downwards (away from E) from P2i to a single minimum, and then ascends towards E, connecting to P2i+1 . The arcs si then become the top ends of the plait, and the minima of the arcs ti become the bottom ends. Hence every 2-bridge knot has a 4-plait presentation. To prove the converse observe that we may inductively move the crossings of a 2m-plait by means of the process illustrated in figure 4.2, eventually producing a knot with m bridges at the end. ✷ ✲ ✲ Figure 4.5: Deformation of a 2m-plait into an m-bridge presentation 4.3 Conway’s normal form Given a tangle t, we define the numerator of t, denoted N(t) to be the knot 1∗ t, and the denominator of t, denoted D(t) to be the knot 1∗ t0. If t is a rational tangle, then N (t) and D(t) are said to be rational knots. Proposition 4.11 Every rational knot has a 4-plait presentation. Proof Given a rational tangle t, we may straighten out the knot N (t) as in figure 4.6. If t has an odd number of terms then the resulting diagram is a 4-plait. If t has an even number of terms then by a deformation of the type shown in figure 4.7 we may convert it into a 4-plait. ✷ ✲ Figure 4.6: 4-plait presentation of a rational knot We may thus think of a standard regular diagram for a rational knot as shown in figure 4.8. Such a knot or link may be denoted by C(a1 , . . . , a2k+1 ) — this is Conway’s normal form. 30 Figure 4.7: Deformation of a rational knot a4· · · a2 a1 a2k · · · a2k−1 ··· a3 a2k+1 Figure 4.8: Conway’s normal form Proposition 4.12 i. C(a1 , . . . , an ) ≈ C(a1 , . . . , an ± 1, ∓1) ii. C(a1 , . . . , an )∗ ≈ C(−a1 , . . . , −an ) Proof The first part is a direct consequence of the deformation shown in figure 4.7. The second part may be seen by observing that reflecting a knot C(a1 , . . . , an ) in the plane of the paper reverses all the crossing points, turning a right-handed twist n into a left-handed twist −n, hence a term ai becomes −ai . ✷ We now prove the converse of proposition 4.11: Theorem 4.13 Every 4-plait (and hence every 2-bridge knot) has a presentation as a rational knot in Conway’s normal form. Proof Given a diagram D of a 4-plait (figure 4.9), for convenience we deform it to the form shown in figure 4.10. The proof does not rely on the crossing information at the crossing points, so we shall not distinguish between under- and overcrossings. c1 b1 ··· ··· ··· c2 b2 a1 a2 cn bn bn+1 an Figure 4.9: Regular diagram of a 4-plait We wish to move all the crossing points on the left-hand side over to the right-hand side by a finite sequence of ambient isotopies. For convenience, we adopt the convention that di = ai +ci , and denote the diagram D in figure 4.10 by: D = (a1 , . . . , an |b1 , . . . , bn , bn+1 |c1 , . . . , cn ) 31 an an−1 ··· a3 a2 a1 b 1 c1 b2 c2 c3 ··· cn−1 cn b3 .. . bn bn+1 Figure 4.10: Deformed diagram of a 4-plait Our aim, then, is to deform a diagram of this type into a diagram of the form: (0, . . . , 0|b1 , . . . , bn , bn+1 |d1 , . . . , dn ) Firstly, we eliminate the crossing an by rotating the interior part of the dotted line in figure 4.11 to move the crossing over to the right-hand side. We then continue with an−1 , an−2 and so on. an−1 ··· a3 a2 a1 b 1 c1 b2 c2 c3 ··· cn−1 dn b3 .. . bn bn+1 Figure 4.11: Horizontal rotation This operation transforms a diagram (a1 , . . . , ai−1 , ai , 0, . . . , 0|b1 , b2 , . . . , bn , bn+1 |c1 , . . . , ci , di+1 , . . . , dn ) into a diagram (a1 , . . . , ai−1 , 0, . . . , 0|b1 , b2 , . . . , bn , bn+1 |c1 , . . . , ci−1 , di , . . . , dn ) if ai is even, and a diagram (a1 , . . . , ai−1 , 0, . . . , 0|b1 , b2 , . . . , bi , bi+1 , . . . , bn , bn+1 |c1 , . . . , ci−1 , di , . . . , dn ) if ai is odd, where bi means that the ith arm (with bi crossing points) is above the horizontal axis as shown in figure 4.12 32 bi b2 ··· ··· a1 b 1 c1 ··· di ··· dn−1 dn bn bn+1 Figure 4.12: Effect of an odd horizontal rotation To lower the arm bi , we form a new ith horizontal arm with no crossing points as in figure 4.13 and rotate the interior of the dotted line bi times around the vertical axis with the result that the bi crossing points move to the lower arm, from the upper, which may then be removed. b3 b2 ··· ··· a1 b 1 c1 ··· di ··· dn−1 bn bn+1 Figure 4.13: Vertical rotation If bi is even, this produces a diagram (a1 , . . . , ai−1 , 0, . . . , 0|b1 , b2 , . . . , bi , bi+1 , . . . , bn , bn+1 |c1 , . . . , ci−1 , di , . . . , dn ) and a diagram (c1 , . . . , ci−1 , 0, . . . , 0|b1 , b2 , . . . , bi , bi+1 , . . . , bn , bn+1 |a1 , . . . , ai−1 , di , . . . , dn ) if bi is odd. 33 dn By repeated applications of such horizontal and vertical rotations, we eventually obtain a diagram (a1 , 0, . . . , 0|b1 , . . . , bn , bn+1 |c1 , d2 , . . . , dn ) or (c1 , 0, . . . , 0|b1 , . . . , bn , bn+1 |a1 , d2 , . . . , dn ) which may be converted to a diagram (0, . . . , 0|b1 , . . . , bn , bn+1 |d1 , . . . , dn ) by a final horizontal rotation of the dotted area in figure 4.14 ··· a1 b 1 c1 b2 d2 d3 ··· dn−1 dn b3 .. . bn bn+1 Figure 4.14: Final horizontal rotation ✷ Thus, the 4-plaits (and hence the 2-bridge knots) are precisely the rational knots. Similarly, by performing appropriate horizontal and vertical rotations on a given rational tangle, th , we see that: Corollary 4.14 . . Given any rational tangle t, t = th = tv . It is a well-known fact from number theory that any rational number r = pq may be written in the form a1 + a2 + 1 1 , where a1 , . . . , an ∈ Z and n is finite. An expression of this type is a3 +... called a continued fraction and a1 , . . . , an its quotients. For convenience we may adopt the notation [a1 , . . . , an ] to represent such a continued fraction. We now prove a modified version of theorem 4.6 for knots and links in Conway’s normal form: Theorem 4.15 The double branched cover of S 3 over C(a1 , . . . , an ) is the lens space L(α, β) where [an , . . . , a1 ]. 34 α β = Proof −a The defining braid of K = C(a1 , . . . , an ) is ζ = σ2an σ3 n−1 . . . σ2a1 . Since K is a 2-bridge knot, its double branched covering space is a lens space by theorem 4.6. The braid operations σ2 , σ3 lift to Dehn twists δ2 , δ3 such that δ2 (m̂− ) = m̂− , δ3 (m̂− ) = m̂− + l̂− δ2 (l̂− ) = m̂− − l̂− , δ3 (l̂− ) = l̂− Thus we may assign to σ2 , σ3 matrices:     1 −1 1 0 σ2 7→ A2 = σ3 7→ A3 = 0 1 1 1 describing linear mappings induced on H1 (∂T− ) by δ2 , δ3 with respect to the basis {m̂− , l̂− }. Thus the braid ζ induces the transformation:       1 0 1 an−1 1 a2 1 0 A= ··· (4.2) an 1 0 1 0 1 a1 1 If, as in theorem 4.6, the double branched covering of this 4-plait is given by a Heegaard splitting M = T− ∪h T+ , then relative to bases {m̂− , l̂− } and {m̂+ , l̂+ } for H1 (∂T− ) and H1 (∂T+ ) the isomorphism h∗ : H1 (∂T− ) → H1 (∂T+ ) is represented by the (integral, unimodular) matrix:   β α′ A= α β′ The integers α′ , β ′ are determined up to changes α′ 7→ α′ + cβ, β ′ 7→ β ′ + cα, corresponding to a substitution ζ 7→ ζσ2c which doesn’t alter the plait. The product in (4.2) defines a sequence of equations: = an rn + rn−1 rn+1 rn = an−1 rn−1 + rn−2 .. . r2 = a1 r1 + 0 |r1 | = 1 where rn+1 = α, rn = β, since:   1 0 ri −ai 1 ri+1   ri 1 −ai−1 0 1 ri−1 ∗ ∗ ∗ ∗   =  =  ri ri+1 − ai ri ri − ai−1 ri−1 ri−1 ∗ ∗  ∗ ∗ =    ri ∗ ri−1 ∗   ri−2 ∗ = ri−1 ∗ If we further require that 0 6 ri ≤ ri−1 then this sequence of equations describes a Euclidean algorithm which is uniquely defined by the choice of α, β. Such an algorithm can be expressed by a continued fraction: 1 rn+1 α = an + = = [an , an−1 , . . . , a1 ] β rn an−1 + an−21 +... (4.3) ✷ 35 From this result, and from the uniqueness of the continued fraction in (4.3) we derive the following elegant result: Theorem 4.16 There exists a 1-1 correspondence between the rational knots (and hence the rational tangles) and the rational numbers; that is, C(a1 , . . . , an ) ≈ C(b1 , . . . , bm ) iff [an , . . . , a1 ] = [bm , . . . , b1 ]. Corollary 4.17 2-bridge knots are alternating. Proof This follows from a well-known result concerning continued fractions, namely that, given a α rational number α β , it is always possible to find a continued fraction [an , . . . , a1 ] = β such that the quotients ai all have the same sign. We may thus deform S(α, β) into the form C(a1 , . . . , an ), which, from the construction of Conway’s normal form, and since a1 , . . . , an all have the same sign, is alternating. ✷ Proposition 4.18 Given two rational tangles A = a1 a2 . . . an and B = b1 b2 . . . bm , the knot N (A + B) is a two-bridge knot and is ambient isotopic to C(a1 , . . . , an−1 , an + bm , bm−1 , . . . , b1 ). Proof Recall that N (A + B) is constructed by joining the northeast and southeast strings of A to the northwest and southwest strings of B, and the northwest and southwest strings of A to the northeast and southeast strings of B, respectively, as in figure 4.15. Note that, by proposition 4.12, we can assume that both n and m are even. ··· ··· ··· a1 an an−1 NE NW SE SW SW SE bn NW NE bn−1 ··· ··· ··· b1 Figure 4.15: The numerator of two rational tangles a1 ··· ··· ··· an + b n an−1 bn−1 ··· ··· ··· b1 Figure 4.16: N (A + B) in Conway’s normal form Then, by the process described in theorem 4.13 we may deform it into Conway’s normal form to get the knot C(a1 , . . . , an−1 , an + bm , bm−1 , . . . , b1 ), as shown in figure 4.16. ✷ Finally, we state a result concerning the determinants of rational knots formed in this way: Theorem 4.19 If a, b are rational tangles with fractions |qs + pr|. p q and r s 36 then det N (a+ b) = |ps+ qr|, and det N (ab) = Chapter 5 Slice knots and Cobordism 5.1 Slice knots A slice knot is a knot K which can arise as a 3-dimensional cross-section through a (possibly knotted) 2-sphere in S 4 or R4 . Equivalently, K ⊂ S 3 = ∂D4 is slice if it bounds a 2-disc ∆2 in D4 which has a tubular neighbourhood ∆2 × D2 whose intersection with S 3 is a tubular neighbourhood K × D2 of K. Note that every knot in S 3 bounds a disc in D4 , the important point of the definition being the existence of the tubular neighbourhood — that is, ∆2 is required to be locally flat. The simplest nontrivial examples of slice knots are the stevedore’s knot 61 and the reef knot 31 #3∗1 , the latter shown in figure 5.1. ✓✏ ✒✑ ✓✏ t=0 t = ±1 t = ±2 t = ±3 ✒✑ t = ±4 Figure 5.1: The reef knot 31 #3∗1 as a section through a knotted 2-sphere in S 4 We now state and prove a condition for a knot to be a slice knot — the proof follows [17], but another approach is given in [6]. Lemma 5.1 If a slice knot K ⊂ S 3 bounds a locally flat disc ∆ ⊂ D4 and also bounds a Seifert surface V ⊂ S 3 , then there exists a bicollared 3-manifold W ⊂ D4 such that W ∩ S 3 = V and ∂W = V ∪ ∆. Proof (Omitted — q.v. [17].) ✷ Lemma 5.2 If W is a closed, connected, orientable 3-manifold such that ∂W is a connected 2-manifold 37 of genus g, then there exists a basis for H1 (∂W ) represented by 1-cycles, half of which are 2-boundaries in W . Proof Consider the exact homology sequence of the pair (W, ∂W ): ∂ ∂ . . . −→ H3 (W, ∂W ) −→ H2 (∂W ) −→ H2 (W ) −→ H2 (W, ∂W ) −→ H1 (∂W ) −→ H1 (W ) ∂ −→ H1 (W, ∂W ) −→ H0 (∂W ) −→ H0 (W ) −→ H0 (W, ∂W ) Since H3 (W, ∂W ) ∼ = H2 (∂W ) ∼ = Z and H0 (∂W ) ∼ = H0 (W ) ∼ = Z, we have a short exact sequence: h h h h h h 5 4 3 2 1 0 0 H1 (W, ∂W ) −→ H1 (W ) −→ H1 (∂W ) −→ H2 (W, ∂W ) −→ H2 (W ) −→ 0 −→ Since ∂W has genus g, it follows that H1 (∂W ) has rank 2g and so we must show that the kernel of the inclusion homomorphism h3 : H1 (∂W ) −→ H1 (W ) has rank g. Poincaré duality implies that H1 (W, ∂W ) ∼ = H 2 (W ) and H2 (W, ∂W ) ∼ = H 1 (W ). However, 2 1 rank H (W ) = rank H2 (W ) and rank H (W ) = rank H1 (W ) and so rank H2 (W ) = rank H1 (W, ∂W ) (5.1) rank H1 (W ) = rank H2 (W, ∂W ) (5.2) Also, for any homomorphism of abelian groups h : G → H, rank G = rank(ker h) + rank(im h) From this, we see that rank H1 (W, ∂W ) = rank im h5 + rank ker h5 = rank ker h5 = rank im h4 , and so rank im h4 = rank H1 (W, ∂W ). rank H1 (W ) = rank im h4 + rank ker h4 = rank H1 (W ) + rank im h3 , so rank im h3 = rank H1 (W ) − rank H1 (W, ∂W ). rank H1 (∂W ) = rank im h3 + rank ker h3 , so rank ker h3 = 2g − rank H1 (W ) + rank H1 (W, ∂W ). Starting from the other end of the sequence, we see that rank im h0 = rank ker h0 = 0 and rank H2 (W ) = rank im h1 + rank ker h1 = rank im h1 + rank im h0 , so rank im h1 = rank H2 (W ). rank H2 (W, ∂W ) = rank im h2 + rank ker h2 , so rank ker h3 = rank im h2 = rank H2 (W, ∂W ) − rank H2 (W ). By adding these two expressions for rank ker h3 together, and substituting equations 5.1 and 5.2, we see that rank ker h3 = g, as required. ✷ From these we can prove the following important condition on the Alexander polynomial of a slice knot: Theorem 5.3 . If K ⊂ S 3 is a slice knot then ∆K (t) = p(t)p(t−1 ), where p(t) is a polynomial with integer coefficients. Proof If K bounds a locally flat disc ∆, choose W 3 ⊂ D4 as in lemma 5.1. The inclusion homomor◦ phism H1 (V ) → H1 (V ∪ ∆) = H1 (∂W ) is an isomorphism and hence by lemma 5.2 there is a ◦ basis {a1 , . . . , a2g } for H1 (V ) such that ag+1 , . . . , a2g are 2-boundaries in W . If g +1 6 i, j 6 2g then ai and i+ aj bound disjoint 2-chains in D4 , so lk(ai , i+ aj ) = 0, and hence the Seifert matrix 38   B C , where B, C, D are square integral matrices. From the Seifert D 0 matrix definition of the Alexander polynomial, we see: for V has the form ∆K (t) = = = = det(V − tV T )  B − tB T det D − tC T C − tDT 0  det(C − tDT ) det(D − tC T ) (−t)g det(C − tDT ) det(C − t−1 DT ) Thus, the Alexander polynomial of a slice knot has the required form. ✷ Theorem 5.4 i. K#K ∗ is a slice knot for any knot K. ii. K1 #K2 is a slice knot if K1 , K2 are. iii. If K1 and K1 #K2 are slice knots then so is K2 . Proof K#K ∗ may be situated in S 3 so as to be symmetric with respect to a plane P as in figure 4 5.2. We may then spin the knot through D+ , the upper 4-disc of S 4 bounded by S 3 , about the plane P to produce the desired locally-flat disc. The proof of parts ii and iii is omitted, but may be found in [6]. ✷ K K∗ P Figure 5.2: K#K ∗ is a slice knot Lemma 5.5 If a nonsingular inner product on Q2g vanishes on a subspace of dimension g, or (equivalently) has a matrix of the form:   B C CT 0 with respect to some basis, where B and C are square matrices, then its signature is zero. Proof (Omitted — q.v. [17].) ✷ With this linear algebra result, we can derive the following important condition on slice knots: Theorem 5.6 If K is a slice knot then σ(K) = 0. 39 Proof Given a slice knot K with Seifert matrix M , we regard A = M + M T as a matrix over Q. In order to diagonalise it and determine its signature we consider it as representing a symmetric bilinear form h, i (an inner product) on Q2g such that hX, Y i = XAY T . This inner product is nonsingular if det(A) 6= 0. A, however, is nonsingular since K is a proper knot. By the first part of theorem 5.3, the matrix V + V T has the form required by lemma 5.5 and hence σ(K) = σ(V + V T ) = 0. ✷ Another interesting class of knots are the ribbon knots — K is a ribbon knot if it is the boundary K = f (S 1 ) of a singular disc f : D2 → S 3 which intersects itself only in ribbon singularities, as depicted in figure 5.3. Figure 5.3: Ribbon singularity Figure 5.4 demonstrates that the reef knot 31 #3∗1 is a ribbon knot, which suggests some connection between ribbon and slice knots: Proposition 5.7 Every ribbon knot is a slice knot. Proof Given a ribbon knot, take a small disc around each of the singularities and push it off S 3 slightly into D4 . This removes the self-intersections, while still fulfilling the condition for the knot to be slice. ✷ Figure 5.4: The reef knot as a ribbon knot The converse, however, is still not known to be true in general, although no counterexample has been found yet: Conjecture 5.8 All slice knots are ribbon knots 40 It is possible to generalise the concepts of ribbon and slice knots to knotted n-spheres in S n+2 and in the case n > 2 it has been shown that not every slice n-knot is a ribbon n-knot — q.v. [11]. Table 5.1 lists the slice knots with ten crossings or less (using Conway’s notation) together with their Alexander polynomials. K 01 61 88 89 820 927 941 946 103 1022 1035 1042 1048 1075 1087 1099 10123 10129 10137 10140 10153 10155 31 #3∗1 41 #4∗1 51 #5∗1 52 #5∗2 ∞ 42 2312 3113 (3, 2 1, 2–) 212112 20: 20: 20 (3, 3, 2 1–) 64 3313 2422 2211112 (4 1, 3, 2) (2 1, 2 1, 2 1+) ·22·20 ·2·2·20·20 10∗ (3 2, 2 1, 2–) (2 2, 2 1 1, 2–) (4, 3, 2 1–) ((3, 2)–(2 1, 2)) 3̄ : 2 : 2 3 # 3̄ 22#22 5 # 5̄ 3 2 # 3̄ 2̄ ∆K (t) 1 (t−1 − 2)(t − 2) (t2 − 2t + 2)(t−2 − 2t−1 + 2) (t3 − 2t2 + t − 1)(t−3 − 2t−2 + t−1 − 1) (t2 − t + 1)(t−2 − t−1 + 1) (t3 − 2t2 + 3t − 1)(t−3 − 2t−2 + 3t−1 − 1) (3t2 − 3t + 1)(3t−2 − 3t−1 + 1) (t−1 − 2)(t − 2) (3t − 2)(3t−1 − 2) (2t3 − 2t2 + 2t − 1)(2t−3 − 2t−2 + 2t − 1) (t2 − 4t + 2)(t−2 − 4t−1 + 2) (t3 − 3t2 + 4t − 1)(t−3 − 3t−2 + 4t−1 − 1) (t4 − t3 + 2t2 + 1)(t−4 − t−3 + 2t−2 + 1) (t3 − 3t2 + 4t − 1)(t−3 − 4t−2 + 3t−1 − 1) (t − 2)(t2 − t + 1)(t−1 − 2)(t−2 − t−1 + 1) (t2 − t + 1)2 (t−2 − t−1 + 1)2 (t4 − 3t3 + 3t2 − 3t + 1)(t−4 − 3t−3 + 3t−2 − 3t−1 + 1) (t2 − 2t + 2)(t−2 − 2t−1 + 2) (t2 − 3t + 1)(t−2 − 3t−1 + 1) (t2 − t + 1)(t−2 − t−1 + 1) (t3 − t2 + 1)(t−3 − t−2 + 1) (t3 − t2 + 2t − 1)(t−3 − t−2 + 2t−2 − 1) (t − 1 + t−1 )2 (t − 3 + t−1 )2 (t2 − t + 1 − t−1 + t−2 )2 (2t − 3 + 2t−1 )2 Table 5.1: Slice knots with ten crossings or less 5.2 Cobordism Define a relation ∼ on the class of knot types such that K1 ∼ K2 iff K1 #K2∗ is a slice knot. Proposition 5.9 The relation ∼ just defined is an equivalence relation. Proof K#K ∗ is slice by theorem 5.4, hence ∼ is reflexive. If K1 #K2∗ is a slice knot then so is (K1 #K2∗ )∗ = K2 #K1∗ , and so ∼ is symmetric. If K1 #K2∗ and K2 #K3∗ are slice knots, then so (by theorem 5.4) is (K1 #K2∗ )#(K2 #K3∗ ) = (K1 #K3∗ )#(K2 #K2∗ ), and hence (by theorem 5.4) K1 #K3∗ is slice. Thus, ∼ is transitive and therefore an equivalence relation. ✷ 41 Theorem 5.10 K0 ∼ K1 iff ∃ in the 4-dimensional slab of R4 a locally flat annulus A with boundaries K0 , K1 such that K0 is homologous to K1 in A. Proof If such an annulus A exists then choose a vertex v below the hyperplane {x4 = 0} and a vertex w above the hyperplane {x4 = 1}. The cones vK0 and wK1 are disjoint from each other and the interior of A, and hence the union m = vK0 ∪ A ∪ wK1 is then a 2-sphere with two singularities: K0 at v and K1∗ at w. Conversely, given a 2-sphere with just two singularities, we may deform it in such a way that it intersects the slab {0 6 x4 6 1} in a nonsingular annulus with boundary curves the required knots. ✷ In view of this result we call the equivalence relation ∼ cobordism. Let G be the set of equivalence classes of knot types under cobordism, and define [K1 ]#[K2 ] = [K1 #K2 ]. Proposition 5.11 The pair (G, #) forms a group (the knot cobordism group). Proof The identity element is [0] (the cobordism class of the unknot), the inverse of an element [K] is [K]∗ = [K ∗ ]. Furthermore, the operation # is associative, since [[K1 ]#[K2 ]]#[K3 ] = [K1 ]#[[K2 ]#[K3 ]]. ✷ 42 Chapter 6 Machine computation In this chapter we investigate the applications of computer techniques, in particular objectoriented programming methods, to the calculation of knot invariants. It is far beyond the scope of this dissertation to discuss object-oriented programming techniques and design philosophy, but the interested reader may consult [19] for further details, as well as a rather solid, if labyrinthine, introduction to the C++ programming language. Those unfamiliar with the C language may wish to refer to [15]. We examine the construction of a C++ program to calculate the Kauffman bracket and Lpolynomial, the Jones polynomial, the determinant and the writhe for two-bridge knots in Conway’s normal form, giving a very brief explanation of the sourcecode. Finally, we provide a table of knot invariants calculated in this way. 6.1 Preliminaries To begin with, we briefly describe the construction of a range-checked array class, and a number of basic string-manipulation functions 6.1.1 The vector class In C and C++, memory management — including use of arrays — is left entirely to the responsibility of the programmer, with any inadvertent overstepping of array bounds usually resulting in (at best) program termination with a segmentation fault or bus error, and (at worst) silent failure with an erroneous answer. It was decided fairly early on that the polynomial and cnf objects described later would need to make use of integer arrays, and so a simple user-defined class was constructed for this purpose. The vector consists of an int * pointer, together with an unsigned int giving the size of the array. Constructor and destructor functions are provided, together with functionality for querying the size of, and for resizing (if required) the array. Finally, the index operator [] and assignment operator = are overloaded to behave appropriately. 6.1.2 String-manipulation functions It was decided that the construction of a fully-specified string class could be easily avoided, and hence any string-handling is achieved by means of NUL-terminated character arrays, as is common in C. 43 Three such functions are provided; the first of which (string) makes a copy of its argument, essentially duplicating the behaviour of the standard library function strdup, but using the C++ new[] operator to allocate the required memory, rather than the more traditional C malloc function. The remaining two functions, strntokens and strtoken are concerned with splitting a given string into a number of tokens. The first of these returns the number of tokens in the string with the specified delimiter characters, and the second returns a copy of a particular token. Note that the memory for the strings returned by strtoken is dynamically allocated and should ideally be freed when no longer required, by means of the C++ delete[] operator. 6.2 Laurent polynomials The polynomial class is intended to model Laurent polynomials and consists of an integer (representing the constant term) and two vectors containing the coefficients of the positive and negative powers. As well as the required constructor and destructor functions and overloaded assignment operator, a range of other interface functionality is provided. In particular, direct access to the coefficients is provided by an overloaded index operator, and the +, -, and * operators are overloaded to enable more intuitive addition, subtraction and multiplication of polynomials. A facility for raising a polynomial to a positive integer power is provided by the pow member function, and the polynomial may be displayed in TEX format by means of the TeXformat function, which takes an optional char argument, specifying the variable (with t as default). 6.3 Conway’s normal form The cnf class models a two-bridge knot in Conway’s normal form, by encapsulating a vector object containing the crossing information, and an unsigned char describing how the braid is joined together at the ends, as shown in figure 6.1. ✄ ☛ ✄ ✟ ☛ ✟ ✂✄ ✁ ✄✂ ✁ ✂✄ ✄✂ ✁ ✁ ✂ ✁ ✡ ✁ ✂ ✠ ✡ ✠ 0 1 2 3 Figure 6.1: Plait ends Constructor functions are provided to enable creation of a knot with a specified number of twists, creation of a knot from the Conway notation (making use of the string tokenising functions described earlier), together with a copy constructor and an overloaded assignment operator. The index operator is overloaded to provide direct access to the twists, enabling examination or alteration of the knot in this way. 6.3.1 Determinant As mentioned earlier, the determinant of a knot C(a1 , . . . , an ) in Conway’s normal form is equal to the numerator of the continued fraction [an , . . . , a1 ]. The member function det calculates and returns this numerator. 44 6.3.2 The Kauffman bracket To calculate the Kauffman bracket we use the recursive algorithm suggested by the axioms: i. h0i = 1 ii. h0 ∪ Ki = (−A2 − A−2 )hKi if K is non-empty. iii. h i = Ah i + A−1 h i If we represent a knot by C(a1 , . . . , an |e), where e describes the ends of the plait as before, then: i. C(0, . . . , 0, ai , . . . , aj , 0, . . . , 0|e) ≈ C(ai , . . . , aj |e) ii. if e = 0, 2 then: (a) if n is odd then  AhC(a1 + 1, . . . , an |e)i    +A−1 hC(a1 + 1, . . . , an |e + 1)i if hC(a1 , . . . , an |e)i = AhC(a1 − 1, . . . , an |e + 1)i    +A−1 hC(a1 − 1, . . . , an |e)i if  2 −2 −A − A if e = 0 (b) if n = 0 then hC(0|e) = 1 if e = 2 (c) if n > 0 and n is even,  (−A3 )−a1 hC(a2 , . . . , an |e)i if then hC(a1 , . . . , an |e) = (−A−3 )a1 hC(a2 , . . . , an |e)i if a1 < 0 a1 > 0 a1 < 0 a1 > 0 iii. if e = 1, 3 then: (a) if n is even and n > 0 then AhC(a1 + 1, . . . , an |e − 1)i    +A−1 hC(a1 + 1, . . . , an |e)i if hC(a1 , . . . , an |e)i = AhC(a − 1, . . . , a |e)i  1 n   +A−1 hC(a1 − 1, . . . , an |e − 1)i if  1 if e = 1 (b) if n = 0 then hC(0|e) = −A2 − A−2 if e = 3 a1 < 0 a1 > 0 (c) if n is odd, then hC(a1 , . . . , an |e) =  (−A−3 )−a1 hC(a2 , . . . , an |e)i if if (−A3 )a1 hC(a2 , . . . , an |e)i a1 < 0 a1 > 0 These observations (direct consequences of the definition of the bracket polynomial and the construction of C(a1 , . . . , an |e)) are applied recursively to calculate hC(a1 , . . . , an |e)i. Table 6.1 shows the Kauffman bracket polynomial computed by the algorithm for all two-bridge knots in Conway’s normal form, with less than nine crossings. 6.3.3 The writhe The calculation of the writhe is possibly the least elegant section of the program. The algorithm implemented here essentially follows the string round the knot or link and examines the orientation at each set of crossings. 45 K 31 41 51 52 61 62 63 71 72 73 74 75 76 77 81 82 83 84 86 87 88 89 811 812 813 814 3 2 5 3 4 3 2 7 5 4 3 3 2 2 6 5 4 4 3 4 2 3 3 2 3 2 2 2 2 12 112 2 3 1 2 2 1 2 1 4 1 3 1 3 1 2 2 1 2 3 2 12 112 2 3 2 1 1 1 1 2 1 1 2 2 3 2 2 12 12 hKi A7 − A3 − A−5 A8 − A4 + 1 − A−4 + A−8 A13 − A9 + A5 − A − A−7 A9 − A5 + A − 2A−3 + A−7 − A−11 A10 − A6 + A2 − 2A−2 + 2A−6 − A−10 + A−14 A14 − 2A10 + 2A6 − 2A2 + 2A−2 − A−6 + A−10 −A12 + 2A8 − 2A4 + 3 − 2A−4 + 2A−8 − A−12 A19 − A15 + A11 − A7 + A3 − A−1 − A−9 A11 − A7 + A3 − 2A−1 + 2A−5 − 2A−9 + A−13 − A−17 −A13 + A9 − 2A5 + 2A − 3A−3 + 2A−7 − A−11 + A−15 −A17 + 2A13 − 3A9 + 2A5 − 3A + 2A−3 − A−7 + A−11 A15 − 2A11 + 3A7 − 3A3 + 3A−1 − 3A−5 + A−9 − A−13 A15 − 2A11 + 3A7 − 4A3 + 3A−1 − 3A−5 + 2A−9 − A−13 A15 − 3A11 + 3A7 − 4A3 + 4A−1 − 3A−5 + 2A−9 − A−13 A12 − A8 + A4 − 2 + 2A−4 − 2A−8 + 2A−12 − A−16 + A−20 A20 − 2A16 + 2A12 − 3A8 + 3A4 − 2 + 2A−4 − A−8 + A−12 A16 − A12 + 2A8 − 3A4 + 3 − 3A−4 + 2A−8 − A−12 + A−16 A20 − 2A16 + 3A12 − 3A8 + 3A4 − 3 + 2A−4 − A−8 + A−12 A16 − 2A12 + 3A8 − 4A4 + 4 − 4A−4 + 3A−8 − A−12 + A−16 −A14 + 2A10 − 2A6 + 4A2 − 4A−2 + 4A−6 − 3A−10 + 2A−14 − A−18 −A18 + 2A14 − 3A10 + 5A6 − 4A2 + 4A−2 − 3A−6 + 2A−10 − A−14 A16 − 2A12 + 3A8 − 4A4 + 5 − 4A−4 + 3A−8 − 2A−12 + A−16 A16 − 2A12 + 3A8 − 5A4 + 5 − 4A−4 + 4A−8 − 2A−12 + A−16 A16 − 2A12 + 4A8 − 5A4 + 5 − 5A−4 + 4A−8 − 2A−12 + A−16 −A18 + 3A14 − 4A10 + 5A6 − 5A2 + 5A−2 − 3A−6 + 2A−10 − A−14 A16 − 3A12 + 4A8 − 5A4 + 6 − 5A−4 + 4A−8 − 2A−12 + A−16 Table 6.1: Kauffman bracket for two-bridge knots with less than nine crossings ✲ -3 ✛ ✛ ✛ ✛ ✛ ✲ -2 Figure 6.2: Calculation of the writhe of the knot 52 A value of +1 is assigned to each strand of the crossing if the direction of orientation is from left to right, and -1 otherwise, and these values are multiplied together with the number of crossings, as depicted in figure 6.2. The writhe numbers for each set of crossings are then added to calculate the total writhe of the knot. Table 6.2 lists the determinants and writhes for all two-bridge knots of less than nine crossings. 6.3.4 The Kauffman L-polynomial and the Jones polynomial Having implemented the calculation of the Kauffman bracket and the writhe, together with functionality for multiplication and addition of Laurent polynomials, calculating LK (A) and VK (t), for a given two-bridge knot or link K, is elementary, following the procedure outlined in chapter 3. Table 6.3 lists Jones polynomials for two-bridge knots with less than nine crossings. 46 K 31 41 51 52 61 62 63 71 72 73 74 75 76 77 81 82 83 84 86 87 88 89 811 812 813 814 3 2 5 3 4 3 2 7 5 4 3 3 2 2 6 5 4 4 3 4 2 3 3 2 3 2 2 2 2 12 112 2 3 1 2 2 1 2 1 4 1 3 1 3 1 2 2 1 2 3 2 12 112 2 3 2 1 1 1 1 2 1 1 2 2 3 2 2 12 12 det(K) 3 5 5 7 9 11 13 7 11 13 15 17 19 21 13 17 17 19 23 23 25 25 27 29 29 31 w(K) −3 0 −5 −5 −2 −2 0 −7 −7 7 7 −7 −3 1 −4 −4 0 0 −4 2 2 0 −4 0 2 −4 Table 6.2: Determinant and writhe for two-bridge knots with less than nine crossings K 31 41 51 52 61 62 63 71 72 73 74 75 76 77 81 82 83 84 86 87 88 89 811 812 813 814 3 2 5 3 4 3 2 7 5 4 3 3 2 2 6 5 4 4 3 4 2 3 3 2 3 2 2 2 2 12 112 2 3 1 2 2 1 2 1 4 1 3 1 3 1 2 2 1 2 3 2 12 112 2 3 2 1 1 1 1 2 1 1 2 2 3 2 2 12 12 VK (t) −t4 + t3 + t t2 − t + 1 − t−1 + t−2 −t7 + t6 − t5 + t4 + t2 −t6 + t5 − t4 + 2t3 − t2 + t t4 − t3 + t2 − 2t + 2 − t−1 + t−2 t5 − 2t4 + 2t3 − 2t2 + 2t − 1 + t−1 −t3 + 2t2 − 2t + 3 − 2t−1 + 2t−2 − t−3 −t10 + t9 − t8 + t7 − t6 + t5 + t3 −t8 + t7 − t6 + 2t5 − 2t4 + 2t3 − t2 + t t−2 − t−3 + 2t−4 − 2t−5 + 3t−6 − 2t−7 + t−8 − t−9 t−1 − 2t−2 + 3t−3 − 2t−4 + 3t−5 − 2t−6 + t−7 − t−8 −t9 + 2t8 − 3t7 + 3t6 − 3t5 + 3t4 − t3 + t2 −t6 + 2t5 − 3t4 + 4t3 − 3t2 + 3t − 2 + t−1 −t3 + 3t2 − 3t + 4 − 4t−1 + 3t−2 − 2t−3 + t−4 t6 − t5 + t4 − 2t3 + 2t2 − 2t + 2 − t−1 + t−2 t8 − 2t7 + 2t6 − 3t5 + 3t4 − 2t3 + 2t2 − t + 1 t4 − t3 + 2t2 − 3t + 3 − 3t−1 + 2t−2 − t−3 + t−4 t5 − 2t4 + 3t3 − 3t2 + 3t − 3 + 2t−1 − t−2 + t−3 t7 − 2t6 + 3t5 − 4t4 + 4t3 − 4t2 + 3t − 1 + t−1 −t2 + 2t − 2 + 4t−1 − 4t−2 + 4t−3 − 3t−4 + 2t−5 − t−6 −t3 + 2t2 − 3t + 5 − 4t−1 + 4t−2 − 3t−3 + 2t−4 − t−5 t4 − 2t3 + 3t2 − 4t + 5 − 4t−1 + 3t−2 − 2t−3 + t−4 t7 − 2t6 + 3t5 − 5t4 + 5t3 − 4t2 + 4t − 2 + t−1 t4 − 2t3 + 4t2 − 5t + 5 − 5t−1 + 4t−2 − 2t−3 + t−4 −t3 + 3t2 − 4t + 5 − 5t−1 + 5t−2 − 3t−3 + 2t−4 − t−5 t7 − 3t6 + 4t5 − 5t4 + 6t3 − 5t2 + 4t − 2 + t−1 Table 6.3: Jones polynomials for two-bridge knots with less than nine crossings 47 Bibliography [1] Charilaos Aneziris. Computer programs for knot tabulation. q-alg, 9701006, 1997. [2] C.W. Ashley. The Ashley book of knots. Faber and Faber, 1947. [3] E. J. Brody. The topological classification of lens spaces. Annals of Mathematics, 71, 1960. [4] Gerhard Burde and Heinrich Zieschang. Knots. de Gruyter, 1985. [5] J. H. Conway. An enumeration of knots and links, and some of their algebraic properties. In John Leech, editor, Computational Problems in Abstract Algebra. Pergamon Press, 1970. [6] Ralph H. Fox and John W. Milnor. Singularities of 2-spheres in 4-space and cobordism of knots. Osaka Journal of Mathematics, 3, 1966. [7] Peter Freyd, David Yetter, Jim Hoste, W.B.R. Lickorish, Kenneth C. Millett, and Alexander Ocneanu. A new polynomial invariant of knots and links. Bulletin of the American Mathematical Society, 12(2), 1985. [8] Eric C. Fry and Peter J. Wilson. The Shell Combined Book of Knots and Ropework: Practical and Decorative. David and Charles, 1981. [9] N.D. Gilbert and T. Porter. Knots and Surfaces. Oxford University Press, 1994. [10] R. Hargreaves. Mr Clever’s string book. Price/Stern/Sloane, 1986. [11] L.R. Hitt. Examples of higher-dimensional slice knots which are not ribbon knots. Proceedings of the American Mathematical Society, 77(2), 1979. [12] Vaughan F. R. Jones. 48 A polynomial invariant for knots via Von Neumann algebras. Bulletin of the American Mathematical Society, 12(1), 1985. [13] Louis H. Kauffman. The Conway polynomial. Topology, 20, 1981. [14] Louis H. Kauffman. State models and the Jones polynomial. Topology, 23(3), 1987. [15] Brian W. Kernighan and Dennis M. Ritchie. The C Programming Language. Prentice Hall, second edition, 1988. [16] William W. Menasco and Morwen B. Thistlethwaite. The Tait flyping conjecture. Bulletin of the American Mathematical Society, 25(2), October 1991. [17] Dale Rolfsen. Knots and Links. Publish or Perish, 1976. [18] H. Schubert. Knoten mit zwei Brücken. Mathematische Zeitschrift, 65, 1956. [19] Bjarne Stroustrup. The C++ Programming Language. Addison Wesley, second edition, 1991. [20] Peter Guthrie Tait. On knots. In Scientific Papers, volume 1. Cambridge University Press, 1898. [21] H. F. Trotter. Computations in knot theory. In John Leech, editor, Computational Problems in Abstract Algebra. Pergamon Press, 1970. 49 Appendix A C++ sourcecode A.1 vector A.1.1 vector.h #ifndef #define #ifndef #define #endif __vector_h__ __vector_h__ NULL NULL 0 class vector { private: int *ia; unsigned int n; public: vector(unsigned int = 0, const int * = NULL); vector(const vector&); ~vector(void); unsigned int size(void) const; void resize(unsigned int); int& operator[](unsigned int); int operator[](unsigned int) const; vector& operator=(const vector&); }; #endif A.1.2 vector.cc #include <stdlib.h> #include "vector.h" vector::~vector(void) { delete [] ia; } i vector::vector(unsigned int sz, const int *ip) : n(sz) { ia = new int [n]; for (unsigned int i = 0; i < n; i++) ia[i] = (ip == NULL ? 0 : ip[i]); } vector::vector(const vector& v) : n(v.n) { ia = new int [n]; for (unsigned int i = 0; i < n; i++) ia[i] = v.ia[i]; } unsigned int vector::size(void) const { return n; } void vector::resize(unsigned int sz) { int *ia2; if (n == sz) return; ia2 = new int [sz]; for (unsigned int i = 0; i < sz; i++) ia2[i] = (i < n ? ia[i] : 0); delete [] ia; ia = ia2; n = sz; } int& vector::operator[](unsigned int i) { if (i < n) return ia[i]; else { cerr << "Attempt to reference beyond bounds of array.\n"; exit(EXIT_FAILURE); } } int vector::operator[](unsigned int i) const { if (i < n) return ia[i]; else { cerr << "Attempt to reference beyond bounds of array.\n"; exit(EXIT_FAILURE); } } ii vector& vector::operator=(const vector& v) { delete [] ia; n = v.n; ia = new int [n]; for (unsigned int i = 0; i < n; i++) ia[i] = v.ia[i]; return *this; } A.2 String-handling functions char *strtoken(const char *str, unsigned int tokn, const char *delimit) { char *tstr, *rval, *rs; int nt = -1, l, i; unsigned int si = 0, intoken = 0; if ((str == NULL) || (strcmp(str,"") == 0) || (delimit == NULL)) return string(""); tstr = string(str); l = strlen(tstr); if (tokn > strntokens(str,delimit) - 1) return string(""); for (i=0; i<l; i++) { if (strchr(delimit,tstr[i]) != NULL) intoken = 0; else if (!intoken) { intoken = 1; nt++; } if ((nt == (int) tokn) && (intoken)) { si = i; break; } } rval = &tstr[si]; for (i=si+1; i<l; i++) if (strchr(delimit,tstr[i]) != NULL) { tstr[i] = ’\0’; break; } rs = string(rval); delete [] tstr; return rs; } iii unsigned int strntokens(const char *str, const char *delimit) { unsigned int nt = 0, intoken = 0, l; if (str == NULL || delimit == NULL) return 0; l = strlen(str); for (unsigned int i=0; i<l; i++) if (strchr(delimit, str[i]) != NULL) intoken = 0; else if (!intoken) { intoken = 1; nt++; } return nt; } char *string(const char *s) { const char *cs, *r; unsigned int l; if (s == NULL) cs = ""; else cs = s; l = strlen(cs); r = new char [l+1]; strcpy(r,cs); return r; } A.3 polynomial A.3.1 polynomial.h #ifndef __polynomial_h__ #define __polynomial_h__ #ifndef __vector_h__ #include "vector.h" #endif #ifndef _IOSTREAM_H #include <iostream.h> #endif iv class polynomial { private: vector pos; vector neg; int con; public: polynomial(int = 0, int = 0); polynomial(const polynomial&); char *TeXformat(char = ’t’) const; int pdeg(void) const; int ndeg(void) const; ostream& display(ostream&) const; polynomial operator+(const polynomial&) const; polynomial operator-(const polynomial&) const; polynomial operator*(const polynomial&) const; polynomial operator*(const int) const; polynomial pow(unsigned int) const; int operator[](int) const; int& operator[](int); polynomial& operator=(const polynomial&); }; ostream& operator<<(ostream&, polynomial&); #endif A.3.2 polynomial.cc #include #include #include #include #include #include #include <stddef.h> <iostream.h> <string.h> <stdio.h> <stdlib.h> "vector.h" "polynomial.h" polynomial::polynomial(int p, int n) : pos(p), neg(n), con(0) { } polynomial::polynomial(const polynomial& poly) : pos(poly.pos), neg(poly.neg), con(poly.con) { } polynomial& polynomial::operator=(const polynomial& poly) { pos = poly.pos; neg = poly.neg; v con = poly.con; return *this; } int polynomial::operator[](int i) const { if (i > 0) return pos[i-1]; else if (i < 0) return neg[-i-1]; else return con; } int& polynomial::operator[](int i) { if (i > 0) return pos[i-1]; else if (i < 0) return neg[-i-1]; else return con; } polynomial polynomial::operator+(const polynomial& p) const { int tp = (pdeg() < p.pdeg() ? p.pdeg() : pdeg()); int tn = (ndeg() < p.ndeg() ? p.ndeg() : ndeg()); polynomial s(tp,tn); int i; for (i=0;i<tp;i++) s.pos[i] = (i < pdeg() ? pos[i] : 0) + (i < p.pdeg() ? p.pos[i] : 0); s.con = con + p.con; for (i=0;i<tn;i++) s.neg[i] = (i < ndeg() ? neg[i] : 0) + (i < p.ndeg() ? p.neg[i] : 0); return s; } polynomial polynomial::operator-(const polynomial& p) const { int tp = (pdeg() < p.pdeg() ? p.pdeg() : pdeg()); int tn = (ndeg() < p.ndeg() ? p.ndeg() : ndeg()); polynomial s(tp,tn); int i; for (i=0;i<tp;i++) s.pos[i] = (i < pdeg() ? pos[i] : 0) - (i < p.pdeg() ? p.pos[i] : 0); s.con = con - p.con; for (i=0;i<tn;i++) s.neg[i] = (i < ndeg() ? neg[i] : 0) - (i < p.ndeg() ? p.neg[i] : 0); return s; } vi polynomial polynomial::operator*(const polynomial& p) const { polynomial s(pdeg() + p.pdeg(), ndeg() + p.ndeg()); for (int i = -ndeg(); i <= pdeg(); i++) for (int j = -p.ndeg(); j <= p.pdeg(); j++) s[i+j] += (*this)[i] * p[j]; return s; } polynomial polynomial::operator*(const int n) const { polynomial s(*this); for (int i=-s.ndeg(); i<=s.pdeg(); i++) s[i] *= n; return s; } polynomial polynomial::pow(unsigned int n) const { polynomial s(0,0); s[0] = 1; for (unsigned int i=0; i<n; i++) s = (s * (*this)); return s; } int polynomial::pdeg(void) const { return pos.size(); } int polynomial::ndeg(void) const { return neg.size(); } ostream& polynomial::display(ostream& os) const { int i; for (i=pdeg(); i>=-ndeg(); i--) os << (*this)[i] << (i > -ndeg() ? " " : ""); return os; } ostream& operator<<(ostream &os, polynomial &p) { return p.display(os); } vii char *polynomial::TeXformat(char v) const { int ft = 1; char tmp[4096], term[64], ssc[64], *op, *s; tmp[0] = ’\0’; for (int i = pdeg(); i >= -ndeg(); i--) { if ((*this)[i] == 0) continue; if (ft == 1 && (*this)[i] > 0) op = ""; else op = ((*this)[i] > 0 ? "+" : "-"); ft = 0; if (i == 1) ssc[0] = ’\0’; else sprintf(ssc,"^{%d}", i); if (i == 0) sprintf(term, "%s%d", op, abs((*this)[i])); else if (abs((*this)[i]) == 1) sprintf(term, "%s%c%s", op, v, ssc); else sprintf(term, "%s%d%c%s", op, abs((*this)[i]), v, ssc); sprintf(tmp,"%s%s",tmp,term); } s = new char [strlen(tmp)+1]; sprintf(s,"%s",tmp); return s; } A.4 A.4.1 cnf cnf.h #ifndef __cnf_h__ #define __cnf_h__ #ifndef __vector_h__ #include "vector.h" #endif #ifndef __polynomial_h__ #include "polynomial.h" #endif #ifndef NULL #define NULL 0 #endif viii class cnf { private: vector twists; unsigned char ends; void init(void); int dir(int, int) const; int sign(int, int, int) const; public: cnf(unsigned int = 0, unsigned char = 4); cnf(const cnf &); cnf(const char *); unsigned int ntwists(void) const; int det(void) const; int writhe(void) const; polynomial bracket(void) const; polynomial kauffman(void) const; polynomial jones(void) const; ostream& display(ostream&) const; int &operator[](unsigned int); int operator[](unsigned int) const; cnf &operator=(const cnf &); }; ostream& operator<<(ostream&, const cnf&); #endif A.4.2 cnf.cc #include #include #include #include "vector.h" "polynomial.h" "cnf.h" "string.h" #include <stdlib.h> #define ODD(a) ((a)%2 == 1) #define EVEN(a) ((a)%2 == 0) static static static static static static static polynomial polynomial polynomial polynomial polynomial polynomial char initK KA(1,0); KB(0,1); Kd(2,2); K1(0,0); K3a(3,0); K3b(0,3); = 0; ix void cnf::init(void) { if (!initK) { KA[1] = 1; KB[-1] = 1; Kd[2] = -1; Kd[-2] = -1; K1[0] = 1; K3a[3] = -1; K3b[-3] = -1; initK = 1; } cnf::cnf(unsigned int n, unsigned char e) : twists(n) { init(); if (e > 3) ends = (n%2 ? 0 : 1); else ends = e; } cnf::cnf(const cnf &c) : twists(c.twists), ends(c.ends) { init(); } cnf::cnf(const char *s) : twists(strntokens(s," \t\n")) { unsigned int nt = strntokens(s," \t\n"); init(); ends = (twists.size()%2 ? 0 : 1); for (unsigned int i=0; i<nt; i++) { char *t = strtoken(s,i," \t\n"); twists[i] = atoi(t); delete [] t; } } cnf &cnf::operator=(const cnf &c) { twists = c.twists; ends = c.ends; return *this; } int &cnf::operator[](unsigned int i) { return twists[i]; } x int cnf::operator[](unsigned int i) const { return twists[i]; } unsigned int cnf::ntwists(void) const { return twists.size(); } polynomial cnf::bracket(void) const { cnf k(*this); for (unsigned int i=0; i<k.twists.size() && k.twists[i] == 0; i++) ; for (unsigned int j=k.twists.size(); j>0 && k.twists[j-1] == 0; j--) ; vector v(j < i ? 0 : j-i); for (unsigned int l=i;l<j;l++) v[l-i] = k.twists[l]; k.twists = v; cnf a(k), b(k); switch { case case if { (k.ends) 0: 2: (k.ntwists()%2) if (a[0] < 0) { a[0] = a[0] + 1; b[0] = b[0] + 1; b.ends = b.ends + 1; polynomial p1(a.bracket()); polynomial p2(b.bracket()); return (KA * p1) + (KB * p2); } else { a[0] = a[0] - 1; b[0] = b[0] - 1; a.ends = a.ends + 1; polynomial p1(a.bracket()); polynomial p2(b.bracket()); return (KA * p1) + (KB * p2); } } else if (k.ntwists() == 0) return (k.ends == 0 ? Kd : K1); else xi { a[0] = 0; polynomial ab(a.bracket()); if (k[0] < 0) { polynomial p(K3a.pow(-k[0])); return (p * ab); } else { polynomial p(K3b.pow(k[0])); return (p * ab); } } break; case 1: case 3: if (k.ntwists() == 0) return (k.ends == 3 ? Kd : K1); else if (k.ntwists()%2) { a[0] = 0; polynomial ab(a.bracket()); if (k[0] < 0) { polynomial p(K3b.pow(-k[0])); return (p * ab); } else { polynomial p(K3a.pow(k[0])); return (p * ab); } } else { if (a[0] < 0) { a[0] = a[0] + 1; b[0] = b[0] + 1; a.ends = a.ends - 1; polynomial p1(a.bracket()); polynomial p2(b.bracket()); return (KA * p1) + (KB * p2); } else { a[0] = a[0] - 1; b[0] = b[0] - 1; b.ends = b.ends - 1; polynomial p1(a.bracket()); polynomial p2(b.bracket()); return (KA * p1) + (KB * p2); xii } } break; } } int cnf::det(void) const { int num = 0; int den = 1; int tmp; unsigned int i; for (unsigned int i=0; i<twists.size(); i++) { num += twists[i] * den; tmp = num; num = den; den = tmp; } tmp = num; num = den; den = tmp; return num; } ostream& cnf::display(ostream& os) const { os << "C("; for (unsigned int i = 0; i < twists.size() - 1; i++) os << twists[i] << ’,’; os << twists[twists.size() - 1] << ’|’ << int(ends) << ’)’; return os; } ostream& operator<<(ostream &os, const cnf &c) { return c.display(os); } int cnf::writhe(void) const { int w = 0; for (unsigned int i = 0; i<ntwists(); i++) if (ODD(ntwists()-i)) w -= dir(i,1) * dir(i,2) * twists[i]; else w += dir(i,0) * dir(i,1) * twists[i]; return w; } polynomial cnf::kauffman(void) const { polynomial kb(bracket()); int wr(writhe()); int p = (wr < 0 ? 3 * -wr : 0); int n = (wr > 0 ? 3 * wr : 0); xiii polynomial w(p,n); if (wr < 0) w[p] = (p%2 ? -1 : 1); else w[-n] = (n%2 ? -1 : 1); return (kb * w); } polynomial cnf::jones(void) const { polynomial kl(kauffman()); polynomial v(kl.pdeg()/4,kl.ndeg()/4); int i; for (i = 4; i <= kl.pdeg(); i += 4) v[i/4] = kl[i]; v[0] = kl[0]; for (i = -4; i >= -kl.ndeg(); i -= 4) v[i/4] = kl[i]; return v; } int cnf::dir(int twist, int strand) const { int s1, s2, d; if (EVEN(det())) { s1 = (ends & 1 ? 1 : 2); s2 = (ends & 1 ? 0 : 1); } else s1 = s2 = 1; d = sign(s1, twist, strand); if (d == 0) d = sign(s2,twist,strand); return d; } int cnf::sign(int start, int twist, int strand) const { if (twist == 0 && strand == start) return 1; for (int x=0, y = start, d = 1; !(x == twist && y == strand);) { int n = ntwists() - x; if (n == 0 && d == 1) { switch (y) { case 0: y = (ends & 2 ? 3 : 1); break; xiv case 1: y = (ends & 2 ? 2 : 0); break; case 2: y = (ends & 2 ? 1 : 3); break; case 3: y = (ends & 2 ? 0 : 2); break; } d = -1; } else if (x == 0 && d == -1) { switch (y) { case 0: y = (ends & 1 ? 3 : 1); break; case 1: y = (ends & 1 ? 2 : 0); break; case 2: y = (ends & 1 ? 1 : 3); break; case 3: y = (ends & 1 ? 0 : 2); break; } d = 1; } else if ((ODD(n) && d == 1) || (EVEN(n) && d == -1)) { switch (y) { case 0: break; case 1: y = ODD(twists[ODD(n) ? x : x-1]) ? 2 : 1; break; case 2: y = ODD(twists[ODD(n) ? x : x-1]) ? 1 : 2; break; case 3: break; } x += d; } else if ((EVEN(n) && d == 1) || (ODD(n) && d == -1)) { switch (y) { case 0: y = ODD(twists[EVEN(n) ? x : x-1]) ? 1 : 0; break; case 1: y = ODD(twists[EVEN(n) ? x : x-1]) ? 0 : 1; break; case 2: break; case 3: break; } x += d; } if (x == 0 && y == start) return 0; } return d; } xv