Once[
SetDirectory["C:\\drorbn\\AcademicPensieve\\Talks\\ICERM-2305"];
<< KnotTheory`;
]

SetAttributes[Bndry, Orderless];
CF[b_Bndry]:=RotateLeft[#,First@Ordering[#]-1]&/@b

CF[{}]={};
CF[rs_List]:=Module[{ηs=Union@Cases[rs,(Subscript[η, _]),∞],η},
If[ηs==={},{},DeleteCases[
RowReduce[Table[Coefficient[r,η],{r,rs},{η,ηs}]].ηs,
0
]]
]

RuleOf[(Subscript[η, i_])+rest_.]:=((Subscript[η, i])->Expand[-rest]);
CF[PQ[rs_,q_]]:=Module[{nrs=CF[rs]},
PQ[nrs,Expand[q/.(RuleOf/@nrs)]]
]

CF[{(Subscript[η, 1])-(Subscript[η, 2]),(Subscript[η, 1])-(Subscript[η, 3])}]

RuleOf/@CF[{(Subscript[η, 1])-(Subscript[η, 2]),(Subscript[η, 1])-(Subscript[η, 3]),(Subscript[η, 4])}]

RuleOf[(Subscript[η, 1])+(Subscript[η, 2])+(Subscript[η, 3])]

CF[Kas[b_,σ_,pq_]]:=Kas[CF[b],σ,CF[pq]]

Kas[P[i_,j_]]:=Kas[CF@Bndry[{-i,j}], 0,PQ[{},0]]

Kas[X[i_,j_,k_,l_]]:=If[PositiveQ@X[i,j,k,l],
Kas[CF@Bndry[{-i,j,k,-l}],0,PQ[{},
(Subscript[η, -i]^2)+2 u (Subscript[η, -i]) (Subscript[η, j])+v (Subscript[η, j]^2)+2 (Subscript[η, -i]) (Subscript[η, k])+2 u (Subscript[η, j]) (Subscript[η, k])+(Subscript[η, k]^2)+2 u (Subscript[η, -i]) (Subscript[η, -l])+2 (Subscript[η, j]) (Subscript[η, -l])+2 u (Subscript[η, k]) (Subscript[η, -l])+v (Subscript[η, -l]^2)]],
Kas[CF@Bndry[{-i,-j,k,l}],0,PQ[{},
-v (Subscript[η, -i]^2)-2 u (Subscript[η, -i]) (Subscript[η, -j])-(Subscript[η, -j]^2)-2 (Subscript[η, -i]) (Subscript[η, k])-2 u (Subscript[η, -j]) (Subscript[η, k])-v (Subscript[η, k]^2)-2 u (Subscript[η, -i]) (Subscript[η, l])-2 (Subscript[η, -j]) (Subscript[η, l])-2 u (Subscript[η, k]) (Subscript[η, l])-(Subscript[η, l]^2)]]
]

The disjoint union in the world of multi-tangles.

PQ[rs1_,q1_]⊕PQ[rs2_,q2_]:=PQ[CF[rs1⋃rs2],q1+q2]

Kas/:Kas[b1_,σ1_,pq1_]⋃Kas[b2_,σ2_,pq2_]:=Kas[CF@Join[b1,b2], σ1+σ2, pq1⊕pq2];

Kas[P[1,2]]⋃Kas[P[3,4]]

(* FM for FaceMerge *)
(Subscript[FM, i_,j_])@Kas[Bndry[{li___,i_,ri___},{lj___,j_,rj___},bs___],σ_,PQ[rs_,q_]]:=Module[{},
Kas[CF@Bndry[{ri,li,i,rj,lj,j},bs],σ,CF@PQ[rs⋃{(Subscript[η, i])-(Subscript[η, j])},q]]
]

Kas[P[1,2]]⋃Kas[P[3,4]]//(Subscript[FM, 1,4])

(Subscript[Cordon, i_])@Kas[Bndry[{li___,i_,ri___},bs___],σ_,PQ[rs_,q_]]:=Module[{bi,ai,ϕ,nσ,nrs,nq,qii,p},
ai=First@{ri,li}; bi=Last@{ri,li};
{nσ,nrs,nq}={σ,rs,q};
ϕ=(∂_(Subscript[η, i]))rs;
If[And@@((#==0)&/@ϕ),
nσ+=Sign[(∂_((Subscript[η, i]),(Subscript[η, i])))q];AppendTo[nrs,((∂_(Subscript[η, i]))q)/.(Subscript[η, i])->0],
(*else*){p}=FirstPosition[(#==0)&/@ϕ,False];
nrs=Table[r-(((∂_(Subscript[η, i]))r)/((∂_(Subscript[η, i]))(rs[[p]])))rs[[p]],{r,rs}];
nq=q/.(Subscript[η, i])->((-rs[[p]]/.(Subscript[η, i])->0)/((∂_(Subscript[η, i]))(rs[[p]])))
];
CF@Kas[Bndry[Rest@{ri,li},bs],nσ,PQ[nrs,nq]/.(Subscript[η, ai])->(Subscript[η, bi])]
]

(Subscript[c, i_,j_])@Kas[Bndry[{li___,i_,ri___},{lj___,j_,rj___},bs___],σ_,pq_PQ]:=Module[{bi=Last@{ri,li}},
Kas[Bndry[{li,i,ri},{lj,j,rj},bs],σ,pq]//(Subscript[FM, j,bi])//(Subscript[Cordon, j])
];

(Subscript[c, i_,j_])@Kas[Bndry[{l___,i_,j_,r___},bs___],σ_,pq_PQ]:=(Subscript[Cordon, i])@Kas[Bndry[{l,i,j,r},bs],σ,pq];
(Subscript[c, i_,j_])@Kas[Bndry[{j_,m___,i_},bs___],σ_,pq_PQ]:=(Subscript[Cordon, i])@Kas[Bndry[{j,m,i},bs],σ,pq];
(Subscript[c, i_,j_])@Kas[Bndry[{l___,j_,i_,r___},bs___],σ_,pq_PQ]:=(Subscript[Cordon, j])@Kas[Bndry[{l,j,i,r},bs],σ,pq];
(Subscript[c, i_,j_])@Kas[Bndry[{i_,m___,j_},bs___],σ_,pq_PQ]:=(Subscript[Cordon, j])@Kas[Bndry[{i,m,j},bs],σ,pq];

Reidemeister 2

Kas[X[1,5,2,4]]⋃Kas[X[2,5,3,6]]

Kas[X[1,5,2,4]]⋃Kas[X[2,5,3,6]]//(Subscript[FM, -2,5])

Kas[X[1,5,2,4]]⋃Kas[X[2,5,3,6]]//(Subscript[FM, -2,5])//(Subscript[Cordon, 5])

Kas[X[1,5,2,4]]⋃Kas[X[2,5,3,6]]//(Subscript[FM, -2,5])//(Subscript[Cordon, 5])//(Subscript[Cordon, -2])

Kas[P[1,3]]⋃Kas[P[4,6]]//(Subscript[FM, -4,3])

Kas[X[1,5,2,4]]⋃Kas[X[2,5,3,6]]//(Subscript[c, 2,-2])//(Subscript[c, 5,-5])

Reidemeister 3

{u=1/3,v=2(u^2)-1};
Kas[X[4,2,5,1]]⋃Kas[X[7,3,8,2]]⋃Kas[X[8,6,9,5]]//(Subscript[c, 2,-2])//(Subscript[c, 5,-5])//(Subscript[c, 8,-8])
Kas[X[7,5,8,4]]⋃Kas[X[8,2,9,1]]⋃Kas[X[5,3,6,2]]//(Subscript[c, 2,-2])//(Subscript[c, 5,-5])//(Subscript[c, 8,-8])
Clear[u,v]

Kas[X[4,2,5,1]]⋃Kas[X[7,3,8,2]]⋃Kas[X[8,6,9,5]]//(Subscript[c, 2,-2])//(Subscript[c, 5,-5])//(Subscript[c, 8,-8])

Kas[X[7,5,8,4]]⋃Kas[X[8,2,9,1]]⋃Kas[X[5,3,6,2]]//(Subscript[c, 2,-2])//(Subscript[c, 5,-5])//(Subscript[c, 8,-8])