Pensieve header: The full $sl_2$ invariant using the Drinfel’d double. Continues 2018-05/ybax.nb, Talks/StonyBrook-1805/ybax.nb, Projects/SL2Portfolio/Logoi.nb.

External Utilities

HL[ℰ_] := Style[ℰ, Background -> Yellow];

Program

Internal Utilities

Canonical Form:

CF[sd_SeriesData] := MapAt[CF,sd,3];
CF[ℰ_] := ExpandDenominator@ExpandNumerator@Together[Expand[ℰ] //. (E^(x_))(E^(y_)):>(E^(x+y)) /. (E^(x_)):>(E^(CF[x]))];

The Kronecker δ:

Kδ/:(Subscript[Kδ, i_,j_]):=If[i===j,1,0];

Equality, multiplication, and degree-adjustment of perturbed Gaussians; 𝔼[L,Q,P] stands for (e^(L+Q))P:

𝔼/:𝔼[L1_,Q1_,P1_]≡𝔼[L2_,Q2_,P2_]:=CF[L1==L2]∧CF[Q1==Q2]∧CF[Normal[P1-P2]==0];
𝔼/:𝔼[L1_,Q1_,P1_]𝔼[L2_,Q2_,P2_]:=𝔼[L1+L2,Q1+Q2,P1*P2];
(Subscript[𝔼[L_,Q_,P_], $k_]):=𝔼[L,Q,Series[Normal@P,{ϵ,0,$k}]];

Zip and Bind

Variables and their duals:

{(SuperStar[t]),(SuperStar[b]),(SuperStar[y]),(SuperStar[a]),(SuperStar[x]),(SuperStar[z])}={τ,β,η,α,ξ,ζ}; 
{(SuperStar[τ]),(SuperStar[β]),(SuperStar[η]),(SuperStar[α]),(SuperStar[ξ]),(SuperStar[ζ])}={t,b,y,a,x,z}; (SuperStar[((Subscript[u_, i_]))]):=(Subscript[((SuperStar[u])), i]);

Finite Zips: (* Perhaps switch Expand to Collect[__, ζ]? *)

expand[sd_SeriesData] := MapAt[expand,sd,3];
expand[ℰ_] := Expand[ℰ];
(Subscript[Zip, {}])[P_]:=P; (Subscript[Zip, {ζ_,ζs___}])[P_] := (expand[P//(Subscript[Zip, {ζs}])] /. f_.(ζ^(d_.)):>(∂_({(SuperStar[ζ]),d}))f) /. (SuperStar[ζ])->0

QZip implements the “Q-level zips” on 𝔼(L,Q,P)=((Pe)^(L+Q)). Such zips regard the L variables as scalars.

(Subscript[QZip, ζs_List,simp_])@𝔼[L_,Q_,P_] := Module[{ζ,z,zs,c,ys,ηs,qt,zrule,Q1,Q2},
zs=Table[(SuperStar[ζ]),{ζ,ζs}];
c=Q/.Alternatives@@(ζs⋃zs)->0;
ys=Table[(∂_ζ)(Q/.Alternatives@@zs->0),{ζ,ζs}];
ηs=Table[(∂_z)(Q/.Alternatives@@ζs->0),{z,zs}];
qt=Inverse@Table[(Subscript[Kδ, z,(SuperStar[ζ])])-(∂_(z,ζ))Q,{ζ,ζs},{z,zs}];
zrule=Thread[zs->qt.(zs+ys)];
Q2=(Q1=c+ηs.zs/.zrule)/.Alternatives@@zs->0;
simp /@ 𝔼[L,Q2,Det[qt](E^(-Q2))(Subscript[Zip, ζs])[(E^Q1)(P/.zrule)]] ];
(Subscript[QZip, ζs_List]):=(Subscript[QZip, ζs,CF]);

Upper to lower and lower to Upper:

U2l={(Subscript[B, i_]^(p_.))->(E^(-p ℏ γ (Subscript[b, i]))),(B^(p_.))->(E^(-p ℏ γ b)), (Subscript[T, i_]^(p_.))->(E^(p ℏ (Subscript[t, i]))),(T^(p_.))->(E^(p ℏ t)),(Subscript[𝒜, i_]^(p_.))->(E^(p γ (Subscript[α, i]))),(𝒜^(p_.))->(E^(p γ α))}; 
l2U={(E^(c_.(Subscript[b, i_])+d_.)):>(Subscript[B, i]^(-c/(ℏ γ)))(E^d),(E^(c_.b+d_.)):>(B^(-c/(ℏ γ)))(E^d),
(E^(c_.(Subscript[t, i_])+d_.)):>(Subscript[T, i]^(c/ℏ))(E^d),(E^(c_.t+d_.)):>(T^(c/ℏ))(E^d),
(E^(c_.(Subscript[α, i_])+d_.)):>(Subscript[𝒜, i]^(c/γ))(E^d),(E^(c_.α+d_.)):>(𝒜^(c/γ))(E^d),
(E^(ℰ_)):>(E^(Expand@ℰ))};

LZip implements the “L-level zips” on 𝔼(L,Q,P)=((Pe)^(L+Q)). Such zips regard all of ((Pe)^Q) as a single”P”. Here the z’s are b and α and the ζ’s are β and a.

(Subscript[LZip, ζs_List,simp_])@𝔼[L_,Q_,P_] := Module[{ζ,z,zs,c,ys,ηs,lt,zrule,L1,L2,Q1,Q2},
zs=Table[(SuperStar[ζ]),{ζ,ζs}];
c=L/.Alternatives@@(ζs⋃zs)->0;
ys=Table[(∂_ζ)(L/.Alternatives@@zs->0),{ζ,ζs}];
ηs=Table[(∂_z)(L/.Alternatives@@ζs->0),{z,zs}];
lt=Inverse@Table[(Subscript[Kδ, z,(SuperStar[ζ])])-(∂_(z,ζ))L,{ζ,ζs},{z,zs}];
zrule=Thread[zs->lt.(zs+ys)];
L2=(L1=c+ηs.zs/.zrule)/.Alternatives@@zs->0;
Q2=(Q1=Q/.U2l/.zrule)/.Alternatives@@zs->0;
simp /@ 𝔼[L2,Q2,Det[lt](E^(-L2-Q2))(Subscript[Zip, ζs])[(E^(L1+Q1))(P/.U2l/.zrule)]]//.l2U ];
(Subscript[LZip, ζs_List]):=(Subscript[LZip, ζs,CF]);

(Subscript[Bind, {}])[L_,R_]:=L R;
(Subscript[Bind, {is__}])[L_𝔼,R_𝔼] := Module[{n},
Times[
L/.Table[(Subscript[(v:b|B|t|T|a|x|y), i])->(Subscript[v, n@i]),{i,{is}}],
R/.Table[(Subscript[(v:β|τ|α|𝒜|ξ|η), i])->(Subscript[v, n@i]),{i,{is}}]
] // (Subscript[LZip, Flatten@Table[{(Subscript[β, n@i]),(Subscript[τ, n@i]),(Subscript[a, n@i])},{i,{is}}]]) // (Subscript[QZip, Flatten@Table[{(Subscript[ξ, n@i]),(Subscript[y, n@i])},{i,{is}}]]) ];
(Subscript[B, l_List])[L_,R_]:=(Subscript[Bind, l])[L,R]; (Subscript[B, is___])[L_,R_]:=(Subscript[Bind, {is}])[L,R];

Booting Up

$k=2;

Boot[kk_] := (If[kk>0,Boot[kk-1]];
Block[{$k=kk,i,j,k,m,n, tu=TimeUsed[]},
(Subscript[am, i_,j_->k_,$k])=(Subscript[𝔼[((Subscript[α, i])+(Subscript[α, j]))(Subscript[a, k]),((E^(-γ (Subscript[α, j])))(Subscript[ξ, i])+(Subscript[ξ, j]))(Subscript[x, k]),1], $k]);
(Subscript[bm, i_,j_->k_,$k])=(Subscript[𝔼[((Subscript[β, i])+(Subscript[β, j]))(Subscript[b, k]),((Subscript[η, i])+(Subscript[η, j]))(Subscript[y, k]),(E^(((E^(- ϵ (Subscript[β, i])))-1)(Subscript[η, j])(Subscript[y, k])))], $k]);
(Subscript[R, i_,j_,$k])=(Subscript[𝔼[ℏ (Subscript[a, j]) (Subscript[b, i]),ℏ (Subscript[x, j]) (Subscript[y, i]),E^((∑_(k=2)^($k+1)) (((((1-(E^(γ ϵ ℏ))))^k)(((ℏ (Subscript[y, i])(Subscript[x, j])))^k))/(k(1-(E^(k γ ϵ ℏ))))))], $k]);
(Subscript[P, i_,j_,$k])=If[$k==0, (Subscript[𝔼[(Subscript[β, i])(Subscript[α, j])/ℏ,(Subscript[η, i])(Subscript[ξ, j])/ℏ,1], 0]),
MapAt[(#-(ϵ^$k)Coefficient[((Subscript[R, n,m])~(Subscript[B, n,m])~((Subscript[((Subscript[P, n,j,0])), $k])(Subscript[((Subscript[P, i,m,$k-1])), $k])))[[3]],ϵ,$k])&, (Subscript[((Subscript[P, i,j,$k-1])), $k]),3]];
(Subscript[aS, i_,$k])=(Subscript[𝔼[-(Subscript[α, i])(Subscript[a, j]),-(Subscript[ξ, i])(Subscript[x, i]),
(E^((Subscript[ξ, i]) (Subscript[x, i])))Sum[Expand[((((-ℏ γ ϵ))^k)/((2^k)k!))Nest[Expand[(Subscript[x, i]^2)(∂_({(Subscript[x, i]),2}))#]&, (E^(-(Subscript[ξ, i]) (E^(ℏ ϵ (Subscript[a, i])))(Subscript[x, i]))),k]], {k,0,$k}]], $k])~(Subscript[B, i,j])~(Subscript[am, i,j->i]);
(Subscript[(OverBar[aS]), i_,$k])=If[$k==0, (Subscript[𝔼[-(Subscript[a, i]) (Subscript[α, i]),-(Subscript[x, i]) (Subscript[𝒜, i]) (Subscript[ξ, i]),1], 0]),
MapAt[(#-(ϵ^$k)Coefficient[((Subscript[((Subscript[(OverBar[aS]), i,0])), $k])~(Subscript[B, i])~(Subscript[aS, i])~(Subscript[B, i])~(Subscript[((Subscript[(OverBar[aS]), i,$k-1])), $k]))[[3]],ϵ,$k])&, (Subscript[((Subscript[(OverBar[aS]), i,$k-1])), $k]),3]];
(* t==ϵa-γb and b==-t/γ+ϵa/γ: *)
(Subscript[b2t, i_,$k])=(Subscript[𝔼[(Subscript[α, i])(Subscript[a, i])-(Subscript[β, i])(Subscript[t, i])/γ,(Subscript[ξ, i])(Subscript[x, i])+(Subscript[η, i])(Subscript[y, i]),(E^(ϵ (Subscript[β, i])(Subscript[a, i])/γ))], $k]);
(Subscript[t2b, i_,$k])=(Subscript[𝔼[(Subscript[α, i])(Subscript[a, j])-(Subscript[τ, i])γ (Subscript[b, j]),(Subscript[ξ, i])(Subscript[x, j])+(Subscript[η, i])(Subscript[y, j]),(E^(ϵ (Subscript[τ, i])(Subscript[a, j])))], $k]);
Boot[$k]=Print["Booted @ $k=", $k, " in ",TimeUsed[]-tu, " sec."];
]);

(Subscript[am, i_,j_->k_]):=(Subscript[am, i,j->k,$k]); (Subscript[am, i_,j_->k_,$k_]):=(Boot[$k]; (Subscript[am, i,j->k,$k]));
(Subscript[bm, i_,j_->k_]):=(Subscript[bm, i,j->k,$k]); (Subscript[bm, i_,j_->k_,$k_]):=(Boot[$k]; (Subscript[bm, i,j->k,$k]));
(Subscript[R, i_,j_]):=(Subscript[R, i,j,$k]); (Subscript[R, i_,j_,$k_]):=(Boot[$k]; (Subscript[R, i,j,$k]));
(Subscript[P, i_,j_]):=(Subscript[P, i,j,$k]); (Subscript[P, i_,j_,$k_]):=(Boot[$k]; (Subscript[P, i,j,$k]));
(Subscript[aS, i_]):=(Subscript[aS, i,$k]); (Subscript[aS, i_,$k_]):=(Boot[$k]; (Subscript[aS, i,$k]));
(Subscript[(OverBar[aS]), i_]):=(Subscript[(OverBar[aS]), i,$k]); (Subscript[(OverBar[aS]), i_,$k_]):=(Boot[$k]; (Subscript[(OverBar[aS]), i,$k]));
(Subscript[b2t, i_]):=(Subscript[b2t, i,$k]); (Subscript[b2t, i_,$k_]):=(Boot[$k]; (Subscript[b2t, i,$k]));
(Subscript[t2b, i_]):=(Subscript[t2b, i,$k]); (Subscript[t2b, i_,$k_]):=(Boot[$k]; (Subscript[t2b, i,$k]));

Testing

Block[{$k=1}, {
am->(Subscript[am, i,j->k]),bm->(Subscript[bm, i,j->k]),R->(Subscript[R, i,j]),P->(Subscript[P, i,j]),aS->(Subscript[aS, i]),(OverBar[aS])->(Subscript[(OverBar[aS]), i]),b2t->(Subscript[b2t, i]),t2b->(Subscript[t2b, i])
}] // Column

Associativity of am and bm:

Timing@Block[{$k=3},
HL/@{((Subscript[am, 1,2->1])~(Subscript[B, 1])~(Subscript[am, 1,3->1]))≡((Subscript[am, 2,3->2])~(Subscript[B, 2])~(Subscript[am, 1,2->1])),((Subscript[bm, 1,2->1])~(Subscript[B, 1])~(Subscript[bm, 1,3->1]))≡((Subscript[bm, 2,3->2])~(Subscript[B, 2])~(Subscript[bm, 1,2->1]))}
]

R and P are inverses:

Timing@Block[{$k=3},{(Subscript[R, i,j]),(Subscript[P, i,k]),HL[(Subscript[R, i,j])~(Subscript[B, i])~(Subscript[P, i,k])≡𝔼[(Subscript[a, j]) (Subscript[α, k]),(Subscript[x, j]) (Subscript[ξ, k]),1]]}]

as and (OverBar[aS]) are inverses:

Timing@HL[(Subscript[(OverBar[aS]), 1])~(Subscript[B, 1])~(Subscript[aS, 1])≡𝔼[(Subscript[a, 1]) (Subscript[α, 1]),(Subscript[x, 1]) (Subscript[ξ, 1]),1]]

S

(Subscript[bS, i_]):=(Subscript[R, i,n])~(Subscript[B, n])~(Subscript[aS, n])~(Subscript[B, n])~(Subscript[P, i,n]);
(Subscript[(OverBar[bS]), i_]):=(Subscript[R, i,n])~(Subscript[B, n])~(Subscript[(OverBar[aS]), n])~(Subscript[B, n])~(Subscript[P, i,n]);

Timing@HL[(Subscript[(OverBar[bS]), 1])~(Subscript[B, 1])~(Subscript[bS, 1])≡𝔼[(Subscript[b, 1]) (Subscript[β, 1]),(Subscript[y, 1]) (Subscript[η, 1]),1]]

Δ

Block[{i,j,k,l,m,n}, (Subscript[aΔ, i_->j_,k_])=((Subscript[R, n,j])(Subscript[R, m,k]))~(Subscript[B, n,m])~(Subscript[bm, n,m->l])~(Subscript[B, l])~(Subscript[P, l,i])];
(Subscript[aΔ, i->j,k])

Block[{i,j,k,l,m,n}, (Subscript[bΔ, i_->j_,k_])=((Subscript[R, j,n])(Subscript[R, k,m]))~(Subscript[B, n,m])~(Subscript[am, n,m->l])~(Subscript[B, l])~(Subscript[P, i,l])];
(Subscript[bΔ, i->j,k])

The two halves

First check that on the generators this agrees with our conventions in the handout:

Timing@{{"[a,x]"->((𝔼[0,0,(Subscript[a, 2])(Subscript[x, 1])]~(Subscript[B, 1,2])~(Subscript[am, 1,2->1]))[[3]]-(𝔼[0,0,(Subscript[a, 1])(Subscript[x, 2])]~(Subscript[B, 1,2])~(Subscript[am, 1,2->1]))[[3]]),
"[b,y]"->((𝔼[0,0,(Subscript[y, 2])(Subscript[b, 1])]~(Subscript[B, 1,2])~(Subscript[bm, 1,2->1]))[[3]]-(𝔼[0,0,(Subscript[y, 1])(Subscript[b, 2])]~(Subscript[B, 1,2])~(Subscript[bm, 1,2->1]))[[3]])}/.(Subscript[z_, 1])->z,
{"Δ[y]"->Last[𝔼[0,0,(Subscript[y, 1])]~(Subscript[B, 1])~(Subscript[bΔ, 1->1,2])],
"Δ[b]"->Last[𝔼[0,0,(Subscript[b, 1])]~(Subscript[B, 1])~(Subscript[bΔ, 1->1,2])],
"Δ[a]"->Last[𝔼[0,0,(Subscript[a, 1])]~(Subscript[B, 1])~(Subscript[aΔ, 1->1,2])],
"Δ[x]"->Last[𝔼[0,0,(Subscript[x, 1])]~(Subscript[B, 1])~(Subscript[aΔ, 1->1,2])]},
{
"S(a)"->((𝔼[0,0,(Subscript[a, 1])]~(Subscript[B, 1])~(Subscript[aS, 1]))[[3]]),
"S(x)"->((𝔼[0,0,(Subscript[x, 1])]~(Subscript[B, 1])~(Subscript[aS, 1]))[[3]]),
"S(b)"->((𝔼[0,0,(Subscript[b, 1])]~(Subscript[B, 1])~(Subscript[bS, 1]))[[3]]),
"S(y)"->((𝔼[0,0,(Subscript[y, 1])]~(Subscript[B, 1])~(Subscript[bS, 1]))[[3]])
}/.(Subscript[z_, 1])->z}

Hopf algebra axioms on both sides separately

(co)-associativity on both sides

Timing[HL /@ {((Subscript[aΔ, 1->1,2])~(Subscript[B, 2])~(Subscript[aΔ, 2->2,3]))≡((Subscript[aΔ, 1->1,3])~(Subscript[B, 1])~(Subscript[aΔ, 1->1,2])),((Subscript[bΔ, 1->1,2])~(Subscript[B, 2])~(Subscript[bΔ, 2->2,3]))≡((Subscript[bΔ, 1->1,3])~(Subscript[B, 1])~(Subscript[bΔ, 1->1,2])),((Subscript[am, 1,2->1])~(Subscript[B, 1])~(Subscript[am, 1,3->1]))≡((Subscript[am, 2,3->2])~(Subscript[B, 2])~(Subscript[am, 1,2->1])),((Subscript[bm, 1,2->1])~(Subscript[B, 1])~(Subscript[bm, 1,3->1]))≡((Subscript[bm, 2,3->2])~(Subscript[B, 2])~(Subscript[bm, 1,2->1]))}]

Δ is an algebra morphism

Timing[HL /@ {(Subscript[am, 1,2->1])~(Subscript[B, 1])~(Subscript[aΔ, 1->1,2])≡((Subscript[aΔ, 1->1,3])(Subscript[aΔ, 2->2,4]))~(Subscript[B, 1,2,3,4])~((Subscript[am, 3,4->2])(Subscript[am, 1,2->1])),
(Subscript[bm, 1,2->1])~(Subscript[B, 1])~(Subscript[bΔ, 1->1,2])≡((Subscript[bΔ, 1->1,3])(Subscript[bΔ, 2->2,4]))~(Subscript[B, 1,2,3,4])~((Subscript[bm, 3,4->2])(Subscript[bm, 1,2->1]))}]

S is convolution inverse of id

Timing[HL[#≡𝔼[0,0,1]]& /@ {
((Subscript[aΔ, 1->1,2])~(Subscript[B, 1])~(Subscript[aS, 1]))~(Subscript[B, 1,2])~(Subscript[am, 1,2->1]),((Subscript[aΔ, 1->1,2])~(Subscript[B, 2])~(Subscript[aS, 2]))~(Subscript[B, 1,2])~(Subscript[am, 1,2->1]), ((Subscript[bΔ, 1->1,2])~(Subscript[B, 1])~(Subscript[bS, 1]))~(Subscript[B, 1,2])~(Subscript[bm, 1,2->1]),((Subscript[bΔ, 1->1,2])~(Subscript[B, 2])~(Subscript[bS, 2]))~(Subscript[B, 1,2])~(Subscript[bm, 1,2->1])}]

S is an algebra anti-(co)morphism

Timing[HL/@{(Subscript[am, 1,2->1])~(Subscript[B, 1])~(Subscript[aS, 1])≡((Subscript[aS, 1])(Subscript[aS, 2]))~(Subscript[B, 1,2])~(Subscript[am, 2,1->1]),(Subscript[bm, 1,2->1])~(Subscript[B, 1])~(Subscript[bS, 1])≡((Subscript[bS, 1])(Subscript[bS, 2]))~(Subscript[B, 1,2])~(Subscript[bm, 2,1->1]), (Subscript[aS, 1])~(Subscript[B, 1])~(Subscript[aΔ, 1->1,2])≡(Subscript[aΔ, 1->2,1])~(Subscript[B, 1,2])~((Subscript[aS, 1])(Subscript[aS, 2])),(Subscript[bS, 1])~(Subscript[B, 1])~(Subscript[bΔ, 1->1,2])≡(Subscript[bΔ, 1->2,1])~(Subscript[B, 1,2])~((Subscript[bS, 1])(Subscript[bS, 2]))}]

Pairing axioms

Timing[HL/@{((Subscript[bm, 1,2->1]) 𝔼[(Subscript[α, 3])(Subscript[a, 3]),(Subscript[ξ, 3])(Subscript[x, 3]),1])~(Subscript[B, 1,3])~(Subscript[P, 1,3])≡( 𝔼[(Subscript[β, 1])(Subscript[b, 1]),(Subscript[η, 1])(Subscript[y, 1]),1]𝔼[(Subscript[β, 2])(Subscript[b, 2]),(Subscript[η, 2])(Subscript[y, 2]),1](Subscript[aΔ, 3->4,5]))~(Subscript[B, 1,4])~(Subscript[P, 1,4])~(Subscript[B, 2,5])~(Subscript[P, 2,5]),((Subscript[bΔ, 1->1,2]) 𝔼[(Subscript[α, 3])(Subscript[a, 3]),(Subscript[ξ, 3])(Subscript[x, 3]),1]𝔼[(Subscript[α, 4])(Subscript[a, 4]),(Subscript[ξ, 4])(Subscript[x, 4]),1])~(Subscript[B, 1,3])~(Subscript[P, 1,3])~(Subscript[B, 2,4])~(Subscript[P, 2,4])≡( 𝔼[(Subscript[β, 1])(Subscript[b, 1]),(Subscript[η, 1])(Subscript[y, 1]),1](Subscript[am, 3,4->3]))~(Subscript[B, 1,3])~(Subscript[P, 1,3]) }]

Timing[HL/@{((Subscript[bS, 1])𝔼[(Subscript[α, 2])(Subscript[a, 2]),(Subscript[ξ, 2])(Subscript[x, 2]),1])~(Subscript[B, 1,2])~(Subscript[P, 1,2])≡(𝔼[(Subscript[β, 1])(Subscript[b, 1]),(Subscript[η, 1])(Subscript[y, 1]),1](Subscript[aS, 2]))~(Subscript[B, 1,2])~(Subscript[P, 1,2]),
((Subscript[(OverBar[bS]), 1])𝔼[(Subscript[α, 2])(Subscript[a, 2]),(Subscript[ξ, 2])(Subscript[x, 2]),1])~(Subscript[B, 1,2])~(Subscript[P, 1,2])≡(𝔼[(Subscript[β, 1])(Subscript[b, 1]),(Subscript[η, 1])(Subscript[y, 1]),1](Subscript[(OverBar[aS]), 2]))~(Subscript[B, 1,2])~(Subscript[P, 1,2])}]

The Double

The double multiplication (should really bind the a’s and b’s separately)

Block[{i,j,k},(Subscript[dm, i_,j_->k_])=(𝔼[(Subscript[β, i])(Subscript[b, i]) + (Subscript[α, j])(Subscript[a, j]),(Subscript[η, i])(Subscript[y, i])+(Subscript[ξ, j])(Subscript[x, j]),1]((Subscript[aΔ, i->h1,h2])~(Subscript[B, h2])~(Subscript[aΔ, h2->h2,h3]))((Subscript[bΔ, j->t1,t2])~(Subscript[B, t2])~(Subscript[bΔ, t2->t2,t3])))~(Subscript[B, h3])~(Subscript[(OverBar[aS]), h3])~(Subscript[B, t1,h3])~((Subscript[P, t1,h3]))~(Subscript[B, t3,h1])~((Subscript[P, t3,h1]))~(Subscript[B, h2,j,i,t2])~((Subscript[am, h2,j->k])(Subscript[bm, i,t2->k]))]

Block[{i},(Subscript[dS, i_])=𝔼[(Subscript[β, i])(Subscript[b, 1])+(Subscript[α, i])(Subscript[a, 2]),(Subscript[η, i])(Subscript[y, 1])+(Subscript[ξ, i])(Subscript[x, 2]),1]~(Subscript[B, 1,2])~((Subscript[(OverBar[bS]), 1])(Subscript[aS, 2]))~(Subscript[B, 1,2])~(Subscript[dm, 2,1->i])]

Block[{i,j,k},(Subscript[dΔ, i_->j_,k_])=((Subscript[bΔ, i->3,1])(Subscript[aΔ, i->2,4]))~(Subscript[B, 1,2,3,4])~((Subscript[dm, 3,4->k])(Subscript[dm, 1,2->j]))]

First check the double formulas on the generators agree with SL2Portfolio.pdf:

Timing@{{
"[a,y]"-> ((𝔼[0,0,(Subscript[y, 2])(Subscript[a, 1])]~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1]))[[3]]-(𝔼[0,0,(Subscript[y, 1])(Subscript[a, 2])]~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1]))[[3]]),
"[b,x]"   ->((𝔼[0,0,(Subscript[x, 2])(Subscript[b, 1])]~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1]))[[3]]-(𝔼[0,0,(Subscript[x, 1])(Subscript[b, 2])]~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1]))[[3]]),"xy-qyx"->((𝔼[0,0,(Subscript[x, 1])(Subscript[y, 2])]~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1]))[[3]]-(1+ϵ)(𝔼[0,0,(Subscript[y, 1])(Subscript[x, 2])]~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1]))[[3]])
}/.{(Subscript[z_, 1])->z}//Expand//Factor,
{
"Δ(a)"->((𝔼[0,0,(Subscript[a, 1])]~(Subscript[B, 1])~(Subscript[dΔ, 1->1,2]))[[3]]),
"Δ(x)"->((𝔼[0,0,(Subscript[x, 1])]~(Subscript[B, 1])~(Subscript[dΔ, 1->1,2]))[[3]]),
"Δ(b)"->((𝔼[0,0,(Subscript[b, 1])]~(Subscript[B, 1])~(Subscript[dΔ, 1->1,2]))[[3]]),
"Δ(y)"->((𝔼[0,0,(Subscript[y, 1])]~(Subscript[B, 1])~(Subscript[dΔ, 1->1,2]))[[3]])
}//Simplify,
{
"S(a)"->((𝔼[0,0,(Subscript[a, 1])]~(Subscript[B, 1])~(Subscript[dS, 1]))[[3]]),
"S(x)"->((𝔼[0,0,(Subscript[x, 1])]~(Subscript[B, 1])~(Subscript[dS, 1]))[[3]]),
"S(b)"->((𝔼[0,0,(Subscript[b, 1])]~(Subscript[B, 1])~(Subscript[dS, 1]))[[3]]),
"S(y)"->((𝔼[0,0,(Subscript[y, 1])]~(Subscript[B, 1])~(Subscript[dS, 1]))[[3]])
}/.{(Subscript[z_, 1])->z}//Simplify
}

Hopf algebra axioms on double

(co)-associativity

Timing[HL/@{((Subscript[dΔ, 1->1,2])~(Subscript[B, 2])~(Subscript[dΔ, 2->2,3]))≡((Subscript[dΔ, 1->1,3])~(Subscript[B, 1])~(Subscript[dΔ, 1->1,2])),((Subscript[dm, 1,2->1])~(Subscript[B, 1])~(Subscript[dm, 1,3->1]))≡((Subscript[dm, 2,3->2])~(Subscript[B, 2])~(Subscript[dm, 1,2->1]))}]

Δ is an algebra morphism

Timing@HL[(Subscript[dm, 1,2->1])~(Subscript[B, 1])~(Subscript[dΔ, 1->1,2])≡((Subscript[dΔ, 1->1,3])(Subscript[dΔ, 2->2,4]))~(Subscript[B, 1,2,3,4])~((Subscript[dm, 3,4->2])(Subscript[dm, 1,2->1]))]

S is convolution inverse of id

Timing[HL[#≡𝔼[0,0,1]]& /@ {((Subscript[dΔ, 1->1,2])~(Subscript[B, 1])~(Subscript[dS, 1]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1]),((Subscript[dΔ, 1->1,2])~(Subscript[B, 2])~(Subscript[dS, 2]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1])}]

S is a (co)-algebra anti-morphism

Timing[HL/@Expand/@{(Subscript[dm, 1,2->1])~(Subscript[B, 1])~(Subscript[dS, 1])≡((Subscript[dS, 1])(Subscript[dS, 2]))~(Subscript[B, 1,2])~(Subscript[dm, 2,1->1]),(Subscript[dS, 1])~(Subscript[B, 1])~(Subscript[dΔ, 1->1,2])≡(Subscript[dΔ, 1->2,1])~(Subscript[B, 1,2])~((Subscript[dS, 1])(Subscript[dS, 2]))}]

Quasi-triangular axiom 1:

Timing@HL[(Subscript[R, 1,2])~(Subscript[B, 1])~(Subscript[dΔ, 1->1,3])≡((Subscript[R, 1,4])(Subscript[R, 3,2]))~(Subscript[B, 2,4])~(Subscript[dm, 2,4->2])]

Quasi-triangular axiom 2:

Timing@HL[(((Subscript[dΔ, 1->1,2])(Subscript[R, 3,4]))~(Subscript[B, 1,2,3,4])~((Subscript[dm, 1,3->1])(Subscript[dm, 2,4->2])))≡(((Subscript[dΔ, 1->2,1])(Subscript[R, 3,4]))~(Subscript[B, 1,2,3,4])~((Subscript[dm, 3,1->1])(Subscript[dm, 4,2->2])))]

Reidemeister 3:

Timing@HL[(((Subscript[R, 1,2])(Subscript[R, 4,3])(Subscript[R, 5,6]))~(Subscript[B, 1,4])~(Subscript[dm, 1,4->1])~(Subscript[B, 2,5])~(Subscript[dm, 2,5->2])~(Subscript[B, 3,6])~(Subscript[dm, 3,6->3]) )≡(((Subscript[R, 1,6])(Subscript[R, 2,3])(Subscript[R, 4,5]))~(Subscript[B, 1,4])~(Subscript[dm, 1,4->1])~(Subscript[B, 2,5])~(Subscript[dm, 2,5->2])~(Subscript[B, 3,6])~(Subscript[dm, 3,6->3]))]

Block[{i,j}, (Subscript[(OverBar[R]), i_,j_])=Expand/@(Subscript[R, i,j])~(Subscript[B, j])~(Subscript[dS, j])]

Reidemeister 2

Timing[HL/@{((Subscript[(OverBar[R]), 1,2])(Subscript[R, 3,4]))~(Subscript[B, 1,2,3,4])~((Subscript[dm, 1,3->1])(Subscript[dm, 2,4->2])),((Subscript[R, 1,2])(Subscript[(OverBar[R]), 3,4]))~(Subscript[B, 1,2,3,4])~((Subscript[dm, 1,3->1])(Subscript[dm, 2,4->2]))}]

Deriving the Drinfeld element u and its inverse (OverBar[u])

Block[{i},{
(Subscript[u, i_])=(Subscript[R, 1,2])~(Subscript[B, 1])~(Subscript[dS, 1])~(Subscript[B, 1,2])~(Subscript[dm, 2,1->i]),
(Subscript[(OverBar[u]), i_])=(Subscript[R, 1,2])~(Subscript[B, 2])~(Subscript[dS, 2])~(Subscript[B, 2])~(Subscript[dS, 2])~(Subscript[B, 1,2])~(Subscript[dm, 2,1->i])
}]

u and (OverBar[u]) are inverses

Timing@HL[((Subscript[u, 1])(Subscript[(OverBar[u]), 2]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1])≡𝔼[0,0,1]]

The ribbon element v satisfies (v^2)=S(u)u. The spinner C=(uv^(-1)).
It is convenient to compute z=S(u)(u^(-1)) which is something easy.

Block[{$k=3},(((Subscript[u, 1])~(Subscript[B, 1])~(Subscript[dS, 1]))(Subscript[(OverBar[u]), 2]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1])]

(* Needs fixing! *) So in our case S(u) = u z so S(u)u = (u^2)z and v = (uz^(1/2)) and finally C = (uv^(-1)) = (z^(-(1/2)))=(e^((Subscript[t, 1])/2))(1-ϵ (Subscript[a, 1])).

Block[{i},
{(Subscript[CC, i_])=𝔼[0,0,(Subscript[B, i]^(1/2))(E^(-ϵ (Subscript[a, i])/2))+((O[ϵ])^2)],
(Subscript[(OverBar[CC]), i_])=𝔼[0,0,(Subscript[B, i]^(-1/2))(E^(ϵ (Subscript[a, i])/2))+((O[ϵ])^2)]
}]

Block[{i,j},{
(Subscript[Kink, i_]) = ((Subscript[R, 1,3])(Subscript[(OverBar[CC]), 2]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1])~(Subscript[B, 1,3])~(Subscript[dm, 1,3->i]),
(Subscript[(OverBar[Kink]), j_]) = ((Subscript[(OverBar[R]), 1,3])(Subscript[CC, 2]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1])~(Subscript[B, 1,3])~(Subscript[dm, 1,3->j])
}]

k2=((Subscript[R, 3,1])(Subscript[CC, 2]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1])~(Subscript[B, 1,3])~(Subscript[dm, 1,3->i])/.𝕖->E;
k4=((Subscript[(OverBar[R]), 3,1])(Subscript[(OverBar[CC]), 2]))~(Subscript[B, 1,2])~(Subscript[dm, 1,2->1])~(Subscript[B, 1,3])~(Subscript[dm, 1,3->j])/.𝕖->E;
Simplify@{(Subscript[Kink, i])≡k2,(Subscript[(OverBar[Kink]), j])≡k4,((Subscript[Kink, i]) (Subscript[(OverBar[Kink]), j]))~(Subscript[B, i,j])~(Subscript[dm, i,j->1])}

Reidemeister 2:

((Subscript[R, 1,2])(Subscript[(OverBar[R]), 3,4]))~(Subscript[B, 1,3])~(Subscript[dm, 1,3->1])~(Subscript[B, 2,4])~(Subscript[dm, 2,4->2])

Cyclic Reidemeister 2:

((Subscript[R, 1,4])(Subscript[(OverBar[R]), 5,2])(Subscript[(OverBar[CC]), 3]))~(Subscript[B, 2,4])~(Subscript[dm, 2,4->2])~(Subscript[B, 1,3])~(Subscript[dm, 1,3->1])~(Subscript[B, 1,5])~(Subscript[dm, 1,5->1])≡(Subscript[(OverBar[CC]), 1])

Trefoil

Z=(Subscript[R, 1,5])(Subscript[R, 6,2])(Subscript[R, 3,7])(Subscript[(OverBar[CC]), 4])(Subscript[(OverBar[Kink]), 8])(Subscript[(OverBar[Kink]), 9])(Subscript[(OverBar[Kink]), 10]);
Do[Z=Z~(Subscript[B, 1,r])~(Subscript[dm, 1,r->1]),{r,2,10}];
Simplify/@Z

Timing[
Z=(Subscript[R, 1,5])(Subscript[R, 6,2])(Subscript[R, 3,7])(Subscript[(OverBar[CC]), 4])(Subscript[(OverBar[Kink]), 8])(Subscript[(OverBar[Kink]), 9])(Subscript[(OverBar[Kink]), 10]);
Do[Z=Z~(Subscript[B, 1,r])~(Subscript[dm, 1,r->1]),{r,2,10}];
Simplify/@Z ]

(Subscript[b2t, i_]):=𝔼[(Subscript[α, i])(Subscript[a, i])-(Subscript[β, i])(Subscript[t, i]),(Subscript[ξ, i])(Subscript[x, i])+(Subscript[η, i])(Subscript[y, i]),1+ϵ (Subscript[β, i])(Subscript[a, i])+((O[ϵ])^2)]
(Subscript[t2b, i_]):=𝔼[(Subscript[α, i])(Subscript[a, i])-(Subscript[τ, i])(Subscript[b, i]),(Subscript[ξ, i])(Subscript[x, i])+(Subscript[η, i])(Subscript[y, i]),1+ϵ (Subscript[τ, i])(Subscript[a, i])+((O[ϵ])^2)]

(Subscript[R, 1,5])(Subscript[R, 6,2])(Subscript[R, 3,7])(Subscript[(OverBar[CC]), 4])(Subscript[(OverBar[Kink]), 8])(Subscript[(OverBar[Kink]), 9])(Subscript[(OverBar[Kink]), 10])

((Subscript[R, 1,5])(Subscript[R, 6,2])(Subscript[R, 3,7])(Subscript[(OverBar[CC]), 4])(Subscript[(OverBar[Kink]), 8])(Subscript[(OverBar[Kink]), 9])(Subscript[(OverBar[Kink]), 10]))~(Subscript[B, Range[10]])~Product[(Subscript[b2t, i]),{i,10}]

Z=((((Subscript[R, 1,5])(Subscript[R, 6,2])(Subscript[R, 3,7])(Subscript[(OverBar[CC]), 4])(Subscript[(OverBar[Kink]), 8])(Subscript[(OverBar[Kink]), 9])(Subscript[(OverBar[Kink]), 10]))~(Subscript[B, Range[10]])~Product[(Subscript[b2t, i]),{i,10}]) /. (Subscript[T, _])->(Subscript[T, 1]))~(Subscript[B, Range[10]])~Product[(Subscript[t2b, i]),{i,10}]

Timing[
Do[Z=Z~(Subscript[B, 1,r])~(Subscript[dm, 1,r->1]),{r,2,10}];
Simplify@Z[[3]] ]

Timing[
Z=(Subscript[R, 1,5])(Subscript[R, 6,2])(Subscript[R, 3,7])(Subscript[(OverBar[CC]), 4])(Subscript[(OverBar[Kink]), 8])(Subscript[(OverBar[Kink]), 9])(Subscript[(OverBar[Kink]), 10])/. (Subscript[B, _])->(Subscript[B, 1]);
Do[Print["doing ", r]; Z=Z~(Subscript[B, 1,r])~(Subscript[dm, 1,r->1])/. (Subscript[B, _])->(Subscript[B, 1]),{r,2,10}];
Simplify@Z[[3]] ]