Load QuantumGroups`

You' ll need a local copy of the QuantumGroups` package. The easiest way to get this, as of early 2009, is to download the KnotTheory` package from http://katlas.org/. Inside that you should find a directory QuantumGroups/, containing the file QuantumGroups.m. Set QuantumGroupsPath below to point at this directory, and then run the notebook.

QuantumGroupsPath = "~/projects/QuantumGroups/trunk/package/";
AppendTo[$Path, QuantumGroupsPath];
<<QuantumGroups`

Maps

We begin by preparing certain maps in the G2 representation theory.

The maps appearing in the "width 2" lemma are capcup, i and h. The maps appearing in the "width 3" lemma are UD and YΛ.

Elementary pieces

id=IdentityMap[G2,Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis];

cap=Together[(qDimension[G2][Irrep[G2][{1,0}]])DirectSumProjectionMap[G2,DirectSum[Irrep[(Subscript[G, 2])][{0,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{0,1}],Irrep[(Subscript[G, 2])][{2,0}]],1,FundamentalBasis].InverseDecompositionMap[G2,((Irrep[(Subscript[G, 2])][{1,0}])^(⊗2)),FundamentalBasis]]

cup=Together[DecompositionMap[G2,((Irrep[(Subscript[G, 2])][{1,0}])^(⊗2)),FundamentalBasis].DirectSumInclusionMap[G2,DirectSum[Irrep[(Subscript[G, 2])][{0,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{0,1}],Irrep[(Subscript[G, 2])][{2,0}]],1,FundamentalBasis]]

vertex=DecompositionMap[G2,((Irrep[(Subscript[G, 2])][{1,0}])^(⊗2)),FundamentalBasis].DirectSumInclusionMap[G2,DirectSum[Irrep[(Subscript[G, 2])][{0,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{0,1}],Irrep[(Subscript[G, 2])][{2,0}]],2,FundamentalBasis]

Y=vertex;

Λ=DirectSumProjectionMap[G2,DirectSum[Irrep[(Subscript[G, 2])][{1,0}]],1,FundamentalBasis].InverseDecompositionMap[G2,Irrep[(Subscript[G, 2])][{1,0}]⊗Irrep[(Subscript[G, 2])][{0,0}],FundamentalBasis].(id⊗cap).InverseAssociator[G2,Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis].(Y⊗id)

Width 2 lemma

capcup=cup.cap;

i=Y.Λ

h=((DirectSumProjectionMap[G2,DirectSum[Irrep[(Subscript[G, 2])][{1,0}]],1,FundamentalBasis].InverseDecompositionMap[G2,Irrep[(Subscript[G, 2])][{1,0}]⊗Irrep[(Subscript[G, 2])][{0,0}],FundamentalBasis].(id⊗cap))⊗id).(InverseAssociator[G2,Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis]⊗id).Associator[G2,Irrep[(Subscript[G, 2])][{1,0}]⊗Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis].(Y⊗Y);

Width 3 lemma

YΛ=(Y⊗Λ).InverseAssociator[G2,Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis]

down=cap.((DirectSumProjectionMap[G2,DirectSum[Irrep[(Subscript[G, 2])][{1,0}]],1,FundamentalBasis].InverseDecompositionMap[G2,Irrep[(Subscript[G, 2])][{1,0}]⊗Irrep[(Subscript[G, 2])][{0,0}],FundamentalBasis].(id⊗cap).InverseAssociator[G2,Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis].(vertex⊗id))⊗id)

up=(vertex⊗id).cup

UD=up.down

Braid group action

We make use of the function BR provided by the QuantumGroups` package, but have to add a writhe factor.

br[{}]=(id⊗id)⊗id;

br[k_]:=br[k]=(q^(12(Plus@@(Sign/@k))))BR[3,k][G2,{Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}],Irrep[(Subscript[G, 2])][{1,0}]},FundamentalBasis]

We now go looking for some braids that span End((V^(⊗3)))

words[k_]:=words[k]=DeleteCases[Tuples[{1,-1,2,-2},k],({___,x_,y_,___}/;x+y==0)|({___,x_,y_,z_,___}/;Abs[x]==Abs[z]==Abs[y]+1)|{___,x_,x_,x_,___}|({___,x_,x_,___}/;x<0)]

braids=words[0]~Join~words[1]~Join~words[2]~Join~words[3]~Join~words[4];

vect[F_RepresentationTensor]:=Flatten[F[[-1,All,2,-1]]]

AddOneToSpanningSet[{},v_]:=If[ZeroVectorQ[Flatten[v]],{},{v}]

AddOneToSpanningSet[m_,v_]:=
If[FakeMatrixRank[Expand[(Flatten/@m)~Join~{Flatten[v]}]]==Length[m],m,m~Join~{v}]

FakeMatrixRank[m_]:=MatrixRank[m/.q->2]

SpanningSet[{}]:={};

SpanningSet[m_]:=Fold[AddOneToSpanningSet,{},m]

ss=SpanningSet[vect/@(br/@braids)];

Length[ss]

Position[vect/@(br/@braids),Alternatives@@ss]

spanningBraids=braids[[Flatten[%]]]

You can skip the above lines (which may run slow!), and just use the following set of 35 braids, which give a basis for End((V^(⊗3)))

spanningBraids={{},{1},{-1},{2},{-2},{1,1},{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{2,2},{-2,1},{-2,-1},{1,1,2},{1,1,-2},{1,2,1},{1,2,-1},{1,2,2},{1,-2,1},{1,-2,-1},{-1,2,1},{-1,2,-1},{-1,2,2},{-1,-2,1},{-1,-2,-1},{2,1,1},{2,2,1},{2,2,-1},{-2,1,1},{1,1,2,1},{1,2,1,1},{1,2,2,1},{2,1,1,2}};

Make sure everything we need has been calculated :

br/@Take[spanningBraids,All];

Verifying the formula for the crossing in the spider.

Solve[vect[BraidingMap[G2,Irrep[(Subscript[G, 2])][{1,0}]⊗Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis]-Table[a[i],{i,1,4}].{id⊗id,capcup,i,h}]==0,Table[a[i],{i,1,4}]]

The characteristic equation for the braiding

Solve[vect[Sum[z[i]bm[i],{i,0,4}]]==0,Table[z[i],{i,0,4}]]

Finding linear combinations

The width 2 lemma

bm[0]=id⊗id;

bm[-1]=Inverse[bm[1]];

bm[1]=BraidingMap[G2,Irrep[(Subscript[G, 2])][{1,0}]⊗Irrep[(Subscript[G, 2])][{1,0}],FundamentalBasis];

bm[2]=bm[1].bm[1];
bm[3]=bm[2].bm[1];
bm[4]=bm[3].bm[1];

bm[-2]=bm[-1].bm[-1];
bm[-3]=bm[-2].bm[-1];
bm[-4]=bm[-3].bm[-1];

Solve[vect[(-1+(q^2)) (1-(q^2)+(q^4)) (1+(q^2)+(q^4)+(q^6))capcup-Sum[z[i]bm[i],{i,0,3}]]==0,Table[z[i],{i,0,3}]]

Solve[vect[(-1+(q^2)) (1-(q^2)+(q^4)) (1+(q^2)+(q^4)+(q^6))i-Sum[z[i]bm[i],{i,0,3}]]==0,Table[z[i],{i,0,3}]]

Solve[vect[(-1+(q^2)) (1-(q^2)+(q^4)) (1+(q^2)+(q^4)+(q^6))h-Sum[z[i]bm[i],{i,0,3}]]==0,Table[z[i],{i,0,3}]]

First YΛ

v = Union[vect[YΛ - Plus @@ (a[#] br[#] & /@ spanningBraids)]];

v=Union[Collect[v,_a,Together]];

Module[{k=0,sol},
While[Length[Cases[a/@spanningBraids,_a]]>0,
sol=Solve[v[[++k]]==0,Cases[a/@spanningBraids,_a]][[1]]/.(x_->y_):>(x=Collect[y,_a,Expand]);
If[Length[sol]>0,
Print[sol];
DownValues[a]=(DownValues[a]/.(x_:>y_):>(x:>Evaluate[Collect[y,_a,Simplify]]))
];
]
]

Or just execute this cell, with pre - computed answers ...

DownValues[a]={HoldPattern[a[{}]]:>(((q^2)-(q^4)+(q^6)+2 (q^12)-(q^14)+2 (q^18)-2 (q^20)+(q^24)-(q^26))/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[a[{-2}]]:>-(((q^4) (-1+(q^2)-(q^4)+(q^6)-2 (q^10)+(q^12)-(q^16)+(q^18)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{-1}]]:>(((q^4)-(q^6)+(q^8)-(q^10)+(q^14)-(q^16)+(q^18)+(q^20)-2 (q^22)+2 (q^24)-(q^26))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{1}]]:>-(((q^2) (1-2 (q^2)+2 (q^4)-2 (q^6)+2 (q^10)-(q^12)+2 (q^14)+(q^16)-3 (q^18)+2 (q^20)-4 (q^24)+5 (q^26)-3 (q^28)+(q^30)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{2}]]:>(((q^2) (-1+3 (q^2)-5 (q^4)+6 (q^6)-5 (q^8)+5 (q^12)-9 (q^14)+8 (q^16)-4 (q^18)+2 (q^22)-2 (q^24)+(q^26)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{-2,-1}]]:>-(((q^2) (-1+2 (q^2)-2 (q^4)+(q^6)+(q^8)-(q^10)+(q^14)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{-2,1}]]:>(((q^12) (-1+(q^2)+(q^4)-(q^6)+2 (q^8)-(q^10)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{-1,-2}]]:>-((q^6)/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{-1,2}]]:>(((q^4) (1-(q^2)+(q^4)-(q^6)+(q^10)-(q^12)+(q^14)))/((((-1+(q^2)))^2) (1+(q^4)+(q^6)+(q^10)))),HoldPattern[a[{1,-2}]]:>(((q^4)-(q^6)+(q^8)-(q^10)+(q^18))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{1,1}]]:>(((q^12) (-1-(q^2)-(q^4)+2 (q^12)-(q^14)+(q^16)))/((((1-(q^2)+(q^4)))^2) (-1+(q^8)))),HoldPattern[a[{1,2}]]:>-(((q^2) (1-2 (q^2)+3 (q^4)-3 (q^6)+3 (q^10)-7 (q^12)+9 (q^14)-5 (q^16)+(q^18)+3 (q^20)-3 (q^22)+(q^24)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{2,-1}]]:>(((q^6) (-1+(q^2)+(q^8)))/((((-1+(q^2)))^2) (1+(q^4)+(q^6)+(q^10)))),HoldPattern[a[{2,1}]]:>-(((q^6) (1-2 (q^2)+(q^4)-2 (q^8)+3 (q^10)-(q^12)+2 (q^16)-2 (q^18)+(q^20)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{2,2}]]:>(((q^14) (-1+(q^2)-(q^6)))/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[a[{-2,1,1}]]:>((q^18)/((((1-(q^2)+(q^4)))^2) (-1+(q^8)))),HoldPattern[a[{-1,-2,-1}]]:>-((q^4)/((((-1+(q^2)))^2) (1+(q^4)+(q^6)+(q^10)))),HoldPattern[a[{-1,-2,1}]]:>0,HoldPattern[a[{-1,2,-1}]]:>((q^8)/((((-1+(q^2)))^2) (1+(q^4)+(q^6)+(q^10)))),HoldPattern[a[{-1,2,1}]]:>-((q^8)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[a[{-1,2,2}]]:>-((q^16)/((((-1+(q^2)))^2) (1+(q^4)+(q^6)+(q^10)))),HoldPattern[a[{1,-2,-1}]]:>((q^2)/((((-1+(q^2)))^2) (1+(q^4)))),HoldPattern[a[{1,-2,1}]]:>-((q^14)/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{1,1,-2}]]:>-((q^16)/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{1,1,2}]]:>((q^14)/((((-1+(q^2)))^2) (1+(q^4)+(q^6)+(q^10)))),HoldPattern[a[{1,2,-1}]]:>(((q^6) (-1+(q^2)-2 (q^6)+(q^8)))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[a[{1,2,1}]]:>(((q^6) (-1+(q^4)-2 (q^6)+5 (q^8)-3 (q^10)+(q^12)+2 (q^14)-4 (q^16)+2 (q^18)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{1,2,2}]]:>(((q^14) (1-(q^2)+(q^4)-(q^8)+(q^10)))/((((-1+2 (q^2)-2 (q^4)+(q^6)))^2) (1+(q^2)+(q^4)+(q^6)))),HoldPattern[a[{2,1,1}]]:>0,HoldPattern[a[{2,2,-1}]]:>0,HoldPattern[a[{2,2,1}]]:>((q^22)/((((1-(q^2)+(q^4)))^2) (-1+(q^8)))),HoldPattern[a[{1,1,2,1}]]:>((q^12)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[a[{1,2,1,1}]]:>-((q^20)/((((1-(q^2)+(q^4)))^2) (-1+(q^8)))),HoldPattern[a[{1,2,2,1}]]:>-((q^20)/((((1-(q^2)+(q^4)))^2) (-1+(q^8)))),HoldPattern[a[{2,1,1,2}]]:>0};

Then UD

v=Union[vect[UD-Plus@@(b[#]br[#]&/@spanningBraids)]];

v=Union[Collect[v,_b,Together]];

Module[{k=0,sol},
While[Length[Cases[b/@spanningBraids,_b]]>0,
sol=Solve[v[[++k]]==0,Cases[b/@spanningBraids,_b]][[1]]/.(x_->y_):>(x=Collect[y,_b,Expand]);
If[Length[sol]>0,
Print[sol];
DownValues[b]=(DownValues[b]/.(x_:>y_):>(x:>Evaluate[Collect[y,_b,Simplify]]))
];
]
]

DownValues[b]

Or just execute this cell, with pre - computed answers ...

DownValues[b]={HoldPattern[b[{}]]:>-(((q^2) (-1-(q^4)+(q^6)-4 (q^8)+2 (q^10)-3 (q^14)+4 (q^16)-2 (q^18)+(q^20)+(q^22)-(q^24)+(q^26)))/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{-2}]]:>-(((q^4) (1+(q^4)-(q^6)+3 (q^8)+(q^10)+2 (q^14)))/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{-1}]]:>-(((q^4) (1+(q^4)-(q^6)+2 (q^8)+2 (q^14)-(q^16)+(q^18)))/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{1}]]:>(((q^8) (-2+2 (q^2)+(q^4)-(q^6)+5 (q^8)-2 (q^10)+(q^12)+(q^14)-3 (q^16)+2 (q^18)-(q^20)))/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{2}]]:>(((q^2) (-1+2 (q^2)-2 (q^4)+(q^6)+3 (q^8)-2 (q^10)+3 (q^12)+(q^18)-(q^20)+(q^22)))/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{-2,-1}]]:>-(((q^6) (1-(q^2)+(q^4)-(q^6)+(q^8)))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{-2,1}]]:>-(((q^10) (1-(q^2)-(q^4)+(q^6)-2 (q^8)+(q^10)))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{-1,-2}]]:>-(((q^6) (1-(q^2)+(q^4)-(q^6)+(q^8)))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{-1,2}]]:>(((q^4) (-1+(q^2)+(q^8)))/((((-1+(q^2)))^2) (1+(q^6)))),HoldPattern[b[{1,-2}]]:>-(((q^10) (1-(q^2)-(q^4)+(q^6)-2 (q^8)+(q^10)))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{1,1}]]:>(((q^10) (1+3 (q^4)-(q^6)+3 (q^8)-(q^10)+(q^12)))/(((1-(q^2)+(q^4)))^2)),HoldPattern[b[{1,2}]]:>(((q^2)-2 (q^4)+2 (q^6)+(q^8)-4 (q^10)+5 (q^12)-5 (q^14)+(q^16)+(q^18)-3 (q^20)+3 (q^22)-(q^24))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{2,-1}]]:>(((q^4) (-1+(q^2)+(q^8)))/((((-1+(q^2)))^2) (1+(q^6)))),HoldPattern[b[{2,1}]]:>(((q^2)-2 (q^4)+2 (q^6)+(q^8)-4 (q^10)+5 (q^12)-5 (q^14)+(q^16)+(q^18)-3 (q^20)+3 (q^22)-(q^24))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{2,2}]]:>-((q^22)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{-2,1,1}]]:>((q^16)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{-1,-2,-1}]]:>((q^8)/((((-1+(q^2)))^2) (1+(q^6)))),HoldPattern[b[{-1,-2,1}]]:>0,HoldPattern[b[{-1,2,-1}]]:>((q^6)/((((-1+(q^2)))^2) (1+(q^6)))),HoldPattern[b[{-1,2,1}]]:>(((q^4) (-1+(q^2)-(q^4)-(q^6)+(q^8)-2 (q^10)+(q^12)))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{-1,2,2}]]:>0,HoldPattern[b[{1,-2,-1}]]:>0,HoldPattern[b[{1,-2,1}]]:>-((q^12)/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{1,1,-2}]]:>((q^16)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{1,1,2}]]:>0,HoldPattern[b[{1,2,-1}]]:>(((q^4) (-1+(q^2)-(q^4)-(q^6)+(q^8)-2 (q^10)+(q^12)))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{1,2,1}]]:>(((q^2)-(q^4)+3 (q^8)-3 (q^10)+5 (q^12)-2 (q^14)-(q^16)+4 (q^18)-6 (q^20)+3 (q^22))/((1+(q^2)) (((-1+2 (q^2)-2 (q^4)+(q^6)))^2))),HoldPattern[b[{1,2,2}]]:>((q^20)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{2,1,1}]]:>0,HoldPattern[b[{2,2,-1}]]:>0,HoldPattern[b[{2,2,1}]]:>((q^20)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{1,1,2,1}]]:>-((q^18)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{1,2,1,1}]]:>-((q^18)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{1,2,2,1}]]:>-((q^18)/((-1+(q^4)) (((1-(q^2)+(q^4)))^2))),HoldPattern[b[{2,1,1,2}]]:>0};

Automatically produce the LaTeX sources in the article

σ[{}]:="\mathbf{1}"

σ[z_]:=StringJoin@@("\sigma_{"<>ToString[Abs[#]]<>"}"<>If[#<0,"^{-1}",""]&/@z)

denom=(PolynomialLCM@@(Denominator[a/@spanningBraids]));

ToString[denom,TeXForm]

StringJoin@@("\\scalebox{0.7}{$"<>StringReplace[StringReplace["+"<>ToString[Simplify[denom a[#]] Z,TeXForm],"+-"->"-"],"Z"->""]<>"$}  "<>σ[#] <>"\n \\displaybreak[1] \\\\  & \qquad \n"&/@spanningBraids)

denom=(PolynomialLCM@@(Denominator[b/@spanningBraids]));

ToString[denom,TeXForm]

StringJoin@@("\\scalebox{0.7}{$"<>StringReplace[StringReplace["+"<>ToString[Simplify[denom b[#]] Z,TeXForm],"+-"->"-"],"Z"->""]<>"$}  "<>σ[#] <>"\n \\displaybreak[1] \\\\  & \qquad \n"&/@spanningBraids)

Miscellany

Looking for further elements of the kernel

Length[braids]

Complement[words[4],spanningBraids]

Position[words[4],Alternatives@@spanningBraids]

Drop[Transpose[NullSpace[Transpose[vect/@((br/@braids)/.q->2)]]],31]//TableForm