bracket#

The Kauffman bracket polynomial ⟨·⟩ is a polynomial invariant of unoriented framed links.

It is characterized by three rules: 1. ⟨U⟩ = 1, where U is the unknot. 2. ⟨L_X⟩ = A⟨L_0⟩ + A⁻¹⟨L_∞⟩. 3. ⟨L ⊔ U⟩ = (−A² − A⁻²)⟨L⟩.

References

Louis H. Kauffman, State models and the Jones polynomial, Topology 26 (1987), no. 3, 395–407.

bracket(k, normalize=True)#

Compute the Kauffman bracket polynomial ⟨·⟩.

Defined by:
  1. ⟨U⟩ = 1.

  2. ⟨L_X⟩ = A⟨L_0⟩ + A⁻¹⟨L_∞⟩.

  3. ⟨L ⊔ U⟩ = (−A² − A⁻²)⟨L⟩.

Parameters:
  • k (PlanarDiagram) – Planar diagram.

  • normalize (bool) – If True, multiply by factor (-A³)^{-wr(k)} (ignore framing).

Returns:

Laurent polynomial in variable A.

Raises:

ValueError – If unknot removal yields a non-empty diagram.

Return type:

Expr

kauffman_bracket_skein_module(k, normalize=True)#

Compute the Kauffman bracket skein module (unoriented case).

Parameters:
  • k (PlanarDiagram) – Unoriented planar diagram. Oriented diagrams are not yet supported.

  • normalize (bool) – If True, normalize by a power of (-A³) depending on writhe/framing.

Returns:

A list of pairs (polynomial, diagram) for the module expansion.

Raises:

NotImplementedError – If k is oriented.

Return type:

list[tuple[Expr, PlanarDiagram]]