Documentation

TauCeti.KnotTheory.PDCode.Circle

Adjoining a crossing-free circle to a PD-code #

A PDCode records components that never visit a crossing by their count. This file makes the corresponding diagram operation explicit: PDCode.adjoinCircle adds one disjoint circle without changing any crossing data. The oriented and framed versions also record the orientation and relative framing of the new component.

The component and state-circle formulas make the operation usable in local move calculations. For a nonempty diagram, adjoining a circle multiplies the Kauffman bracket by the loop value jonesDelta; the nonemptiness hypothesis is necessary because the empty code is normalised to have bracket one rather than a negative power of the loop value.

ClaspInsertion applies to clasps whose arcs meet crossings and does not treat a clasp through a crossing-free circle; this file supplies the separate operation of adjoining a disjoint crossing-free circle, which local move calculations need alongside it.

The PD-code convention follows M. Mastin, Links and Planar Diagram Codes, Definitions 2--3. The disjoint-circle Kauffman-bracket relation follows L. H. Kauffman, State models and the Jones polynomial, and W. B. R. Lickorish, An Introduction to Knot Theory, Springer GTM 175 (1997), Chapter 3.

Unoriented codes #

Adjoin one disjoint circle to a PD-code. The crossing data and all crossing-bearing components are unchanged; only the explicit count of crossing-free components increases.

Equations
Instances For
    @[simp]

    Adjoining a circle leaves the crossing labels unchanged.

    @[simp]

    Adjoining a circle leaves the arc matching unchanged.

    @[simp]

    Adjoining a circle leaves the over-strand choice at every crossing unchanged.

    @[simp]

    The new circle contributes one crossing-free component.

    @[simp]

    Adjoining a circle leaves the crossing traversal unchanged.

    @[simp]

    Adjoining a circle leaves the component traversal permutation unchanged.

    @[simp]

    Adjoining a circle does not change the crossing-bearing components.

    @[simp]

    Adjoining a circle increases the total component count by one.

    @[simp]

    Adjoining a circle leaves the smoothing traversal permutation unchanged.

    @[simp]

    Adjoining a circle leaves the chosen local smoothing at every crossing unchanged.

    @[simp]

    Adjoining a circle leaves the state traversal permutation unchanged.

    @[simp]

    Every smoothing has exactly one additional circle after adjoining a circle.

    @[simp]

    Adjoining a circle to a nonempty diagram multiplies its Kauffman bracket by the loop value. The empty code is excluded because its bracket is normalized to one.

    @[simp]

    Mirroring commutes with adjoining an unoriented circle.

    Oriented codes #

    Adjoin a crossing-free component with the specified orientation.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]

      Forgetting orientation leaves the added circle in the underlying code.

      @[simp]

      The directions at existing crossings remain unchanged.

      @[simp]

      The orientation of the new circle is added to the crossing-free orientation multiset.

      @[simp]
      theorem TauCeti.OrientedPDCode.crossingSign_adjoinCircle {n : ℕ} (D : OrientedPDCode n) (orientation : Bool) (i : Fin n) :
      (D.adjoinCircle orientation).crossingSign i = D.crossingSign i

      Adjoining a circle leaves every existing crossing sign unchanged.

      @[simp]
      theorem TauCeti.OrientedPDCode.writhe_adjoinCircle {n : ℕ} (D : OrientedPDCode n) (orientation : Bool) :
      (D.adjoinCircle orientation).writhe = D.writhe

      An isolated circle does not change the writhe.

      A code with a crossing-free circle of orientation o is obtained by adjoining that circle to the code without it.

      @[simp]
      theorem TauCeti.OrientedPDCode.mirror_adjoinCircle {n : ℕ} (D : OrientedPDCode n) (orientation : Bool) :
      (D.adjoinCircle orientation).mirror = D.mirror.adjoinCircle orientation

      Mirroring commutes with adjoining an oriented crossing-free circle.

      @[simp]

      Adjoining a circle to a nonempty oriented diagram multiplies the normalized bracket by the same loop value as the unoriented bracket, since the writhe is unchanged.

      Framed oriented codes #

      Adjoin a crossing-free component with its orientation and Seifert-relative framing.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem TauCeti.FramedOrientedPDCode.toOrientedPDCode_adjoinCircle {n : ℕ} (D : FramedOrientedPDCode n) (orientation : Bool) (framing : ℤ) :
        (D.adjoinCircle orientation framing).toOrientedPDCode = D.adjoinCircle orientation

        Forgetting framing retains the orientation of the added circle.

        @[simp]
        theorem TauCeti.FramedOrientedPDCode.framing_adjoinCircle {n : ℕ} (D : FramedOrientedPDCode n) (orientation : Bool) (framing : ℤ) :
        (D.adjoinCircle orientation framing).framing = D.framing

        Existing framing coefficients are unchanged.

        @[simp]
        theorem TauCeti.FramedOrientedPDCode.crossinglessFramings_adjoinCircle {n : ℕ} (D : FramedOrientedPDCode n) (orientation : Bool) (framing : ℤ) :
        (D.adjoinCircle orientation framing).crossinglessFramings = (orientation, framing) ::ₘ D.crossinglessFramings

        The new circle's orientation and framing are recorded together.

        @[simp]
        theorem TauCeti.FramedOrientedPDCode.mirror_adjoinCircle {n : ℕ} (D : FramedOrientedPDCode n) (orientation : Bool) (framing : ℤ) :
        (D.adjoinCircle orientation framing).mirror = D.mirror.adjoinCircle orientation (-framing)

        Mirroring commutes with adjoining a framed oriented crossing-free circle and negates its framing.