The Kauffman bracket of a PD-code #
Smoothing every crossing of a diagram in one of its two ways turns the diagram into a disjoint
union of circles. A state of a PD-code with n crossings is such a choice at each crossing,
recorded as s : Fin n → Bool, with s i = true selecting the A-smoothing at crossing i:
the smoothing that turns left off the over-strand, equivalently the one joining the two regions
swept out when the over-strand is rotated counterclockwise. With the four slots of a crossing in
counterclockwise order that smoothing takes each over-slot to the preceding slot, which is
TauCeti.PDCode.slotSmoothing applied to the code's own over-pair indicator; the B-smoothing
is the same construction applied to the complementary indicator.
Reconnecting the half-edges accordingly gives TauCeti.PDCode.statePerm, the traversal of the
smoothed diagram: cross an arc, then follow the smoothing at the crossing reached. Exactly as for
TauCeti.PDCode.componentPerm, each circle of the smoothed diagram carries two of its orbits, one
for each direction of travel, so TauCeti.PDCode.stateLoopCount halves the orbit count and adds
the crossing-free circles that the code records separately.
The Kauffman bracket is the resulting state sum ∑ s, a ^ (A(s) - B(s)) * δ ^ (loops s - 1),
formed
over a commutative ring with a distinguished unit a at the loop value
δ = -(a ^ 2 + a⁻¹ ^ 2) (TauCeti.TemperleyLieb.jonesDelta), which is the value at which the
Kauffman-bracket expansion of a crossing is invertible. This is Kauffman's ⟨·⟩ with Lickorish's
normalisation ⟨unknot⟩ = 1: a code with no crossings and c ≥ 1 circles has bracket
δ ^ (c - 1). The exponent is truncated subtraction, so the empty code has bracket 1; every
code with a crossing has at least one circle in each state (TauCeti.PDCode.one_le_stateLoopCount),
so this affects only the empty code.
The bracket depends on a PD-code only through its relabelling class, and mirroring a code inverts
the unit a. On the one-crossing kink diagram TauCeti.PDCode.kink it takes the value
-a ^ 3, the framing factor of the first Reidemeister move. Whether the bracket descends from
diagrams to knots is the question of its behaviour under the Reidemeister moves, which are
separate constructions on PD-codes; the first move is in
TauCeti/KnotTheory/PDCode/Reidemeister/One.lean.
For an oriented PD-code, TauCeti.OrientedPDCode.normalizedKauffmanBracket multiplies the bracket
by the writhe correction (-a ^ 3) ^ (-writhe). This is the normalization used to obtain the
Jones polynomial from the bracket.
Main definitions #
TauCeti.PDCode.smoothingTurn: the reconnection of the half-edges smoothing every crossing.TauCeti.PDCode.smoothingChoice: the over-pair indicator a state selects at each crossing.TauCeti.PDCode.statePerm: the traversal of the smoothed diagram.TauCeti.PDCode.stateLoopCount: the number of circles of the smoothed diagram.TauCeti.PDCode.stateWeight: the weighta ^ (A(s) - B(s))of a state.TauCeti.PDCode.kauffmanBracket: the Kauffman bracket state sum.TauCeti.OrientedPDCode.normalizedKauffmanBracket: the writhe-normalized bracket.
Main results #
TauCeti.PDCode.even_orbitCount_statePerm: the traversal orbits of a smoothed diagram come in pairs, andTauCeti.PDCode.one_le_stateLoopCount: a code with a crossing leaves at least one circle in every state.TauCeti.PDCode.kauffmanBracket_relabel: the bracket is invariant under relabelling.TauCeti.PDCode.kauffmanBracket_mirror: mirroring the code inverts the unit.TauCeti.PDCode.kauffmanBracket_eq_jonesDelta_pow: a code with no crossings andccircles has bracketδ ^ (c - 1).TauCeti.PDCode.stateLoopCount_kink_true,TauCeti.PDCode.stateLoopCount_kink_false: the two smoothings of a kink leave two circles and one circle.TauCeti.PDCode.kauffmanBracket_kink: the kink diagram has bracket-a ^ 3.
References #
- L. H. Kauffman, State models and the Jones polynomial, Topology 26 (1987), 395-407.
- W. B. R. Lickorish, An Introduction to Knot Theory, Springer GTM 175 (1997), Chapter 3 (the Kauffman bracket and the Jones polynomial).
- M. Mastin, Links and Planar Diagram Codes, Definitions 2-3 (the PD convention).
A local smoothing never joins a slot to the opposite slot: the two arcs of a smoothing cut
across the two local strands instead of following them, which is what distinguishes a smoothing
from TauCeti.PDCode.crossingTurn.
The two local smoothings at a crossing are distinct.
Smooth every crossing of a PD-code, using at crossing i the local smoothing
slotSmoothing (b i). This is the smoothing counterpart of TauCeti.PDCode.crossingTurn, which
instead follows a local strand through a crossing.
Equations
- D.smoothingTurn b = (Equiv.permCongr D.halfEdge) ((TauCeti.PDCode.crossingSlotEquiv n).permCongr (Equiv.prodCongrRight fun (i : Fin n) => TauCeti.PDCode.slotSmoothing (b i)))
Instances For
The defining equation for the smoothing traversal permutation.
Smoothing reconnects the slots at a crossing by the chosen local smoothing.
Mirroring a code does not change how a prescribed family of local smoothings reconnects its
half-edges; only which of them is the A-smoothing changes.
Relabelling conjugates smoothing by the half-edge relabelling, after transporting the family of local smoothings along the crossing relabelling.
The over-pair indicator of the local smoothing that a state selects at a crossing: the code's
own indicator where the state chooses the A-smoothing, and the complementary one where it
chooses the B-smoothing.
Equations
- D.smoothingChoice s i = bif s i then D.overPair i else !D.overPair i
Instances For
Mirroring a code exchanges the A- and B-smoothings, so it acts on states by negation.
The traversal of the diagram smoothed according to the state s: cross an arc, then follow
the chosen smoothing at the crossing reached. Its orbits are the two directed traversals of each
circle of the smoothed diagram.
Equations
- D.statePerm s = D.smoothingTurn (D.smoothingChoice s) * ↑D.edgePair
Instances For
The defining equation of smoothed traversal.
Codes with one crossing more #
Let D' be a code with one crossing more than D, whose first n crossings keep the half-edges
and over-strands of D, and whose last crossing takes the four new half-edge positions and has
over-pair indicator b. Crossing insertion and the first Reidemeister move build such codes. A
state of D' is a state of D together with a choice at the new crossing, and the lemmas below
split its smoothing accordingly.
Smoothing D' is smoothing D together with the chosen local smoothing of the new
crossing.
At the new crossing, a state of D' selects the local smoothing slotSmoothing true exactly
when its choice there is b.
The number of circles of the diagram smoothed according to the state s, the crossing-free
circles of the code included. Each circle meeting a crossing is represented by the two directed
orbits of TauCeti.PDCode.statePerm, one for each direction of travel, exactly as for
TauCeti.PDCode.crossingComponentCount.
Equations
- D.stateLoopCount s = TauCeti.orbitCount (D.statePerm s) / 2 + D.crossinglessComponentCount
Instances For
The number of circles of a smoothed diagram is half the number of directed traversal orbits, plus the crossing-free circles.
Smoothing every crossing of a code pairs off its half-edges.
The directed traversal orbits of a smoothed diagram come in pairs, as the halving in
TauCeti.PDCode.stateLoopCount presumes: smoothed traversal is a product of two perfect
matchings.
A code with no crossings has one circle per crossing-free component, in every state.
Every smoothing of a diagram with a component has at least one circle.
Mirroring a code negates the state producing a given circle count.
The weight of a state: the unit a at each A-smoothing and a⁻¹ at each B-smoothing, so
that a state with p of the former and q of the latter has weight a ^ (p - q).
Equations
- TauCeti.PDCode.stateWeight s a = ∏ i : Fin n, bif s i then a else a⁻¹
Instances For
The defining equation of a state's Kauffman-bracket weight.
Concatenating states multiplies their weights.
Negating a state inverts its weight, since it exchanges the A- and B-smoothings.
Inverting the unit inverts every state weight.
Extending a state by a choice at a new last crossing multiplies its weight by the weight of that choice.
The Kauffman bracket of a PD-code at a unit a: the sum, over all 2 ^ n states, of the
weight of the state times the loop value TauCeti.TemperleyLieb.jonesDelta a raised to one less
than the number of circles of the smoothed diagram. This is Lickorish's normalisation
⟨unknot⟩ = 1; with truncated subtraction the empty diagram also has bracket 1.
Equations
- D.kauffmanBracket a = ∑ s : Fin n → Bool, ↑(TauCeti.PDCode.stateWeight s a) * TauCeti.TemperleyLieb.jonesDelta a ^ (D.stateLoopCount s - 1)
Instances For
The defining state-sum equation of the Kauffman bracket.
A PD-code with no crossings and c crossing-free circles has Kauffman bracket δ ^ (c - 1).
This pins the normalisation of TauCeti.PDCode.kauffmanBracket: the unknot has bracket 1, and
each further circle contributes one factor of the loop value.
Smoothing the kink reconnects its slots by the chosen local smoothing.
The A-smoothing of the kink leaves two circles.
The B-smoothing of the kink leaves one circle.
The Kauffman bracket of the kink is -a ^ 3, that is, -a ^ 3 times that of the unknot.
The two smoothings of the single crossing contribute a * δ and a⁻¹, and the loop value
collapses their sum to -a ^ 3: this is the framing factor by which the bracket fails to be
invariant under the first Reidemeister move.
The writhe-normalized Kauffman bracket. Its correction factor is a unit, so the definition makes sense over every commutative ring and does not require the bracket value itself to be invertible.
Equations
- D.normalizedKauffmanBracket a = ↑((-a ^ 3) ^ (-D.writhe)) * D.kauffmanBracket a
Instances For
The writhe-normalized Kauffman bracket is the bracket multiplied by its writhe correction factor.