Pensieve header: An attempt on a concise implementation of the FastKh algorithm.

<< KnotTheory`

∘ is esc-sc-esc.

σ_∘τ_ := PermutationProduct[τ, σ];
EquivalenceClasses[λ_List] := Module[{ρ}, Fold[
(ρ = First /@ Position[#1, #2];
Append[Delete[#1, List /@ ρ], Union@@(#1[[ρ]])])&,
λ, Union @@ λ
] // SortBy[#, First]&];
EquivalenceClasses[λ__Cycles] := EquivalenceClasses[Join@@Identity@@@{λ}];

EquivalenceClasses[{{1,2},{2,3},{4,5},{2,7},{7,6}}]

c1=Cob[Cycles@{{1,2}, {3,4}}, Cycles@{{2,3},{1,4}}, dot[1]]

EquivalenceClasses[Cycles@{{1,2}, {3,4}}, Cycles@{{2,3},{1,4}}]

DotRule[λ__Cycles] := DotRule[λ] = Replace[
EquivalenceClasses[λ],
c_ :> ((# -> First[c])& /@ c), {1}
] // Flatten

{β=Cycles@{{1,2}, {3,4}}, τ=Cycles@{{2,3},{1,4}}}

DotRule[β, τ]

Disks[λ__Cycles] := Disks[λ] =First  /@ EquivalenceClasses[λ]

Disks[β, τ]

VCLaw[Cob[β_Cycles, μ_Cycles], Cob[μ_Cycles, τ_Cycles]] := Module[
{},
]