Scatter and Glow - Analytic Testing

By Dror Bar-Natan with Kerene Chu, Zsuzsanna Dancso, Peter Lee and Louis Leung.
December 2008 - January 2009.

Tails Commute and 4T

Der[Ar[1,2]+Ar[1,3]][Ar[2,4]]

Expect[0, Der[Ar[1,3]][Ar[1,2]]]

Expect[0,
Der[Ar[1,2]+Ar[1,3]][Ar[2,3]]
]

Der[Ar[1,2]][Ar[1,3]+Ar[2,3]]

Expect[0,
Der[Ar[1,2]][Ar[3,1]+Ar[3,2]]
]

Expect[{0,0},
Der[Ar[1,1]]@{Ar[1,2], Ar[2,1]}
]

Expect[{0,0},
Der[Ar[1,2]]@{Ar[1,1], Ar[2,2]}
]

Antisymmetry of Der

Expect[{{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}},
Table[
ReducePrimitives[
Der[Y[1,2,3,AH[1]]]@Ar[i,j] + Der[Ar[i,j]]@Y[1,2,3,AH[1]]
],{i,4},{j,4}
]
]

Expect[{{0,0,0},{0,0,0},{0,0,0}},
Table[
ReducePrimitives[
Der[Y[1,2,2,AH[1]]]@Ar[i,j] + Der[Ar[i,j]]@Y[1,2,2,AH[1]]
],{i,3},{j,3}
]
]

Expect[{{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}},
ToAH[Table[
ReducePrimitives[
Der[ToPH[3, Y[1,2,3,AH[1]]]]@Ar[i,j] + Der[Ar[i,j]]@Y[1,2,3,ToPH[3, PH[1]]]
],{i,4},{j,4}
]]
]

The braid group on two strands is commutative:

Expect[Ar[1,2],
Ar[1,2] // S[sigma[1,2]]
]

Expect[Ar[1,2],
Ar[1,2] // ToPH[5, S[sigma[1,2]]]
]

Reidemeister 2

Expect[SnG[S[],0],
SnG[sigma[1,2], sigbar[1,2]]
]

Locallity in Scale (global over local)

S[sigma[3,1], sigma[3,2]]

Expect[{Ar[1,2],Ar[2,1]},
{Ar[1,2], Ar[2,1]} // S[sigma[3,1], sigma[3,2]]
]

Overcrossings Commute

oc1= SnG[sigma[1,2], sigma[1,3]]

oc2 = SnG[sigma[1,3], sigma[1,2]];
Test[oc1==oc2]

Reidemeister 3

r31 = SnG[sigma[1,2], sigma[1,3], sigma[2,3]]

r32=SnG[sigma[2,3], sigma[1,3], sigma[1,2]];
Test[CanonicalForm[r31==r32]]

Commutators Commute

cc11 = SnG[sigma[2,1], sigma[3,1], sigbar[2,1], sigbar[3,1]]

cc12 = SnG[sigma[4,1], sigma[5,1], sigbar[4,1], sigbar[5,1]];
Test[(cc11 ** cc12) == (cc12**cc11)]

cc21 = SnG[sigma[2,1], sigma[3,1], sigbar[2,1], sigbar[3,1]]

cc22 = SnG[sigma[3,1], sigma[4,1], sigbar[3,1], sigbar[4,1]];
Test[(cc21 ** cc22) == (cc22**cc21)]

cc31 = SnG[sigma[1,2], sigma[3,1], sigbar[1,2], sigbar[3,1]]

cc32 = SnG[sigma[1,4], sigma[5,1], sigbar[1,4], sigbar[5,1]];
Test[(cc31 ** cc32) == (cc32**cc31)]

This last one we expect to fail:

cc41 = SnG[sigma[1,2], sigma[3,1], sigbar[1,2], sigbar[3,1]]

cc42 = SnG[sigma[4,1], sigma[5,1], sigbar[4,1], sigbar[5,1]];
Expect[False,
(cc41 ** cc42) === (cc42**cc41)
]

Commutators Commutators are Central (along strand 1)

(ccc=SnG[
sigma[1,2], sigma[3,1], sigbar[1,2], sigbar[3,1],
sigma[4,1], sigma[5,1], sigbar[4,1], sigbar[5,1],
sigma[3,1], sigma[1,2], sigbar[3,1], sigbar[1,2],
sigma[5,1], sigma[4,1], sigbar[5,1], sigbar[4,1]
]) // Last

Test[ccc**SnG[sigma[6,1]] == SnG[sigma[6,1]]**ccc]

Test[ccc**SnG[sigma[1,6]] == SnG[sigma[1,6]]**ccc]

Scattering by Exponentials

S[Exp[Ar[1,2]]]

Test[CanonicalForm[
S[Exp[Ar[1,2]]] == S[sigma[1,2]]
]]

Test[CanonicalForm[
S[Exp[-Ar[1,2]]] == S[sigbar[1,2]]
]]

Mixing AH and PH

mix1=ToPH[3, S[sigma[3,1], sigma[3,2]]]

mix2 = ToPH[3, S[sigma[3,1]]]**S[sigma[3,2]]

Test[ToPH[3, mix1==mix2]]

The BCH Formula

Analytic

S[sigma[1,3],sigma[2,3]] // Short

S[Exp[Ar[1,3]+Ar[2,3]+Y[1,2,3,bc]]] // Short

bch = bc /. First[HSolve[
Coefficient[
Ar[0,1] // S[Exp[Ar[1,3]+Ar[2,3]+Y[1,2,3,bc]]],
Y[0,1,3]
] == Coefficient[
Ar[0,1] // S[sigma[1,3],sigma[2,3]],
Y[0,1,3]
],
bc
]]

Test[CanonicalForm[
S[Exp[Ar[1,3]+Ar[2,3]+Y[1,2,3,AH[bch]]]] == S[sigma[1,3],sigma[2,3]]
]]

Compare with Kurlin

Test[Simplify[(bch /. {x[1]->x, x[2]->y}) ==(1/y)(1-(((E^x)-1)/x) ((x+y)/((E^(x+y))-1)))]]

Perturbative

unknowns = DeclareSeries[bc3[x[1], x[2]], 4]

PH[bc3]

S[Exp[Ar[1,3]+Ar[2,3]+Y[1,2,3,PH[bc3]]]] // Short[#, 5]&

(eq=Coefficient[
Ar[0,1] // S[Exp[Ar[1,3]+Ar[2,3]+Y[1,2,3,PH[bc3]]]],
Y[0,1,3]
] == Coefficient[
Ar[0,1] // S[sigma[1,3],sigma[2,3]],
Y[0,1,3]
])// Short[#, 5]&

sol=First[HSolve[eq, unknowns]]

bch3=PH[bc3] /. sol

Test[CanonicalForm[
S[Exp[Ar[1,3]+Ar[2,3]+Y[1,2,3,bch3]]] == ToPH[5,S[sigma[1,3],sigma[2,3]]]
]]

Test[Simplify[(bch3 /. {x[1]->x, x[2]->y}) ==PH[(((1/y)(1-(((E^x)-1)/x) ((x+y)/((E^(x+y))-1)))) /. {x -> z x, y -> z y})+O[z]^4]]]

Testing Code

SetAttributes[{Test, Expect}, {HoldAll}];
Test[expr_] := If[TrueQ[Check[expr, False]], True,
If[Head[$FailLog] =!= List, $FailLog={}];
AppendTo[$FailLog, "On "<>ToString[Date[]]<>" failed in "<>ToString[HoldForm[expr]]];
Print[Last[$FailLog]]
];
Expect[val_, expr_] := If[TrueQ[Test[val==expr]], val];

SetDirectory["C:\\drorbn\\AcademicPensieve\\Projects\\ScatterAndGlow"]
<< ScatterAndGlow.m

Test Test

Test[0==1]

Failed Tests

$FailLog