> # Cocycle invariants for 5 cycles of S_5, even perms. > clear: > with(group): > with(LinearAlgebra): > > # Forming cocycle. > f:=array(1..12,1..12): > > tr:=array(1..12): > tr[1]:=[[1,2,3,4,5]]: rt([[1,2,3,4,5]]):=1: > tr[2]:=[[1,2,4,5,3]]: rt([[1,2,4,5,3]]):=2: > tr[3]:=[[1,2,5,3,4]]: rt([[1,2,5,3,4]]):=3: > tr[4]:=[[1,3,2,5,4]]: rt([[1,3,2,5,4]]):=4: > tr[5]:=[[1,3,4,2,5]]: rt([[1,3,4,2,5]]):=5: > tr[6]:=[[1,3,5,4,2]]: rt([[1,3,5,4,2]]):=6: > tr[7]:=[[1,4,2,3,5]]: rt([[1,4,2,3,5]]):=7: > tr[8]:=[[1,4,3,5,2]]: rt([[1,4,3,5,2]]):=8: > tr[9]:=[[1,4,5,2,3]]: rt([[1,4,5,2,3]]):=9: > tr[10]:=[[1,5,2,4,3]]: rt([[1,5,2,4,3]]):=10: > tr[11]:=[[1,5,3,2,4]]: rt([[1,5,3,2,4]]):=11: > tr[12]:=[[1,5,4,3,2]]: rt([[1,5,4,3,2]]):=12: > > # Quandle cocycle conditions. > for i from 1 to 12 do > f[i,i]:=0 : > od: > > # A 2-cocy specifed after earlier experiments: > assign(f[11,12]=0, f[10,12]=0, f[9,12]=0): > assign(f[11,6]=0, f[1,5]=0, f[12,8]=0, f[8,12]=0): > assign(f[2,10]=0): > assign(f[1,10]=1): > assign(f[3,5]=0): > assign(f[9,5]=1): > assign(f[4,5]=1): > > assign( f[2,11]=0, f[5,2] = 1, f[9,10] = 3, f[2,3] = 9, > f[8,4] = 0, f[2,5] = 9, f[4,11] = 4, f[10,5] = 2, f[1,11] = 1, > f[12,2] = 9, f[5,10] = 2, f[6,9] = 3, f[8,3] = 2, f[8,10] = 3, > f[5,7] = 2, f[8,11] = 0, f[11,2] = 9, f[5,11] = 1, f[11,5] = 9, > f[12,11] = 8, f[4,10] = 2, f[4,3] = 3, f[9,4] = 2, f[4,1] = 2, > f[6,5] = 1, f[11,4] = 9, f[8,7] = 1, f[2,4] = 9, f[12,9] = 7, > f[5,12] = 3, f[7,8] = 2, f[1,7] = 2, f[4,2] = 0, f[12,3] =0, f[9,6] = 9, > f[9,7] = 1, f[9,8] = 9, f[9,11] = 8, f[10,7] = 1, f[6,4] = 3, f[10,6] = 8, > f[11,10] = 1, f[6,12] = 4, f[4,7] = 5, f[6,10] = 2, f[6,1] = 2, f[8,9] = 3, > f[6,3] = 3, f[6,11] = 0, f[5,3] = 4, f[12,4] = 0, f[2,9] = 9, f[7,1] = 4, > f[12,6] = 1, f[7,6] = 2, f[12,10] = 3, f[7,9] = 7, f[7,4] = 3, f[7,10] = 1, > f[12,5] = 9, f[7,12] = 7, f[7,2] = 1, f[7,3] =6, f[7,5] = 8, f[4,12] = 6, > f[1,2] = 4, f[1,3] = 4, f[10,1] = 6, > f[10,3] = 9, f[10,4] = 5, f[10,8] = 6, > f[3,11] = 1, f[3,4] = 5, f[3,6] = 0, f[3,7] = 4, f[3,9] = 9, f[3,10] = 4, > f[3,12] = 2, f[9,1] = 0, f[9,3] = 2, > f[10,9] = 9, f[6,8] = 3, > f[10,11] = 7, f[11,1] = 8, f[3,1] = 5, f[3,2] = 3, f[1,9] = 2, f[4,6] = 3, > f[6,2] = 2, f[11,9] = 9, f[11,3] = 0, f[1,4] = 3, f[5,6] = 3, f[6,7] = 4, > f[8,5] = 2, f[2,6] = 2, f[8,1] = 2, f[8,2] = 9, f[8,6] = 1, f[1,8] = 9, > f[2,1] = 9, f[2,8] = 8, f[5,8] = 2, f[5,1] = 2, f[2,12] = 8, f[11,8] = 8, > f[2,7] = 8, f[3,8] = 2, f[9,2] = 2, f[4,8] = 3, f[5,9] = 2, f[12,7] = 2, > f[11,7] = 2, f[1,12] = 2, f[12,1] = 2, f[10,2] = 2, f[4,9] = 2, f[5,4] = 3, > f[1,6] = 3, f[7,11] = 2 ): > > > # Defining quandle operation. > g:=proc(a, b) # Quandle operation for Q6. > rt( mulperms( mulperms( tr[b], tr[a] ), invperm(tr[b]) ) ): end: > > ginv:=proc(c, d) > rt( mulperms( mulperms( invperm(tr[d]), tr[c] ), tr[d] ) ): end: > > # Defining 2-cocy equations. > for x from 1 to 12 do > for y from 1 to 12 do > for z from 1 to 12 do > E[x,y,z]:= f[x,y] + f[g(x,y),z] - f[x,z] - f[g(x,z),g(y,z)]: > od: od: od: > > # Defining the set of equations. > EQ:=[]: > for x from 1 to 12 do > for y from 1 to 12 do > for z from 1 to 12 do > EQ:=[ op(EQ), E[x,y,z]=0 ] : > od: od: od: > Eq:=convert(EQ, set): # Converting the list EQ to a set Eq. > print( map(z -> z mod 10, Eq) ); > > > # Solving the cocycle conditions: > #VAR:=[]: # Defining the list of variables. > #unassign('q'): > #unassign('i'): > #for i from 1 to 32 do # It turned out that the invariant is two dimensional. > #VAR:=[ op(VAR), q[i] ] : > #od: > #Var:=convert(VAR, set): # Converting the list to a set. > #Sol:=msolve(Eq, Var, 10); > {0 = 0} > # Braid words of the knot table, brind is the braid index. > # 4, 5 braids deleted. > bw[1]:= [1,1,1]: brind[1]:=2: #3_1 > bw[2]:= [1,-2,1,-2]: brind[2]:=3: #4_1 > bw[3]:= [1,1,1,1,1]: brind[3]:=2: #5_1 > bw[4]:= [1,1,2,2,-1,2]: brind[4]:=3: #5_2 > #bw[5]:= [-1,2,-1,3,-2,3,2]: brind[5]:=4: #6_1 > #bw[6] > bw[5]:= [-1,2,-1,2,2,2]: brind[5]:=3: > bw[6]:= [-1,2,2,-1,-1,2]: brind[6]:=3: #6_3 > bw[7]:= [1,1,1,1,1,1,1]: brind[7]:=2: #7_1 > #bw[9]:= [-1,3,3,3,2,1,1,-3,2]: brind[9]:=4: > bw[8]:= [1,1,2,-1,2,2,2,2]: brind[8]:=3: > #bw[11]:= [1,1,2,3,3,-1,2,-3,2]: brind[11]:=4: > bw[9]:= [1,1,1,1,2,-1,2,2]: brind[9]:=3: > #bw[13]:= [1,-2,-1,-1,3,2,2,2,3]: brind[13]:=4: > #bw[14]:= [1,-3,2,-3,2,-1,2,-3,2]: brind[14]:=4: #7_7 > #bw[15]:= [-1,2,3,-2,-1,4,4,3,2,-4]: brind[15]:=5: #8_1 > bw[10]:= [-1,2,2,2,2,2,-1,2]: brind[10]:=3: > #bw[17]:= [-1,-1,-2,1,4,4,3,-4,-2,3]: brind[17]:=5: > #bw[18]:= [1,1,1,3,-2,-3,-3,1,-2]: brind[18]:=4: > bw[11]:= [1,1,1,-2,1,1,1,-2]: brind[11]:=3: #8_5 > #bw[20]:= [-1,2,-1,-3,2,2,2,3,3]: brind[20]:=4: > bw[12]:= [1,1,1,1,-2,-2,1,-2]: brind[12]:=3: > #bw[22]:= [-1,2,1,1,-3,2,2,-3,-3]: brind[22]:=4: > bw[13]:= [-1,2,-1,-1,-1,2,2,2]: brind[13]:=3: > bw[14]:= [-1,2,2,-1,-1,2,2,2]: brind[14]:=3: #8_10 > #bw[25]:= [-1,2,2,-3,2,3,3,-1,2]: brind[25]:=4: > #bw[26]:= [1,-2,3,-4,3,-4,2,1,-3,-2]: brind[26]:=5: > #bw[27]:= [1,1,2,-3,2,-1,-3,-3,2]: brind[27]:=4: > #bw[28]:= [1,1,2,2,-1,-3,2,-3,2]: brind[28]:=4: > #bw[29]:= [1,1,-2,1,3,3,2,2,3]: brind[29]:=4: #8_15 > bw[15]:= [1,1,-2,1,1,-2,1,-2]: brind[15]:=3: > bw[16]:= [-1,2,-1,2,2,-1,-1,2]: brind[16]:=3: > bw[17]:= [1,-2,1,-2,1,-2,1,-2]: brind[17]:=3: > bw[18]:= [1,2,1,2,1,2,2,1]: brind[18]:=3: > bw[19]:= [1,1,1,2,-1,-1,-1,2]: brind[19]:=3: #8_20 > bw[20]:= [1,-2,-2,1,1,2,2,2]: brind[20]:=3: #8_21 > bw[21]:= [1,1,1,1,1,1,1,1,1]: brind[21]:=2: #9_1 > #bw[37]:= [1,2,3,4,4,4,3,-4,2,1,-3,-2]: brind[37]:=5: > bw[22]:= [1,-2,1,1,1,1,1,1,2,2]: brind[22]:=3: > #bw[39]:= [-1,3,2,1,1,2,3,3,3,3,-2]: brind[39]:=4: > #bw[40]:= [1,1,2,-1,3,-2,3,4,4,3,-4,2]: brind[40]:=5: #9_5 > bw[23]:= [1,1,2,2,1,1,1,1,1,-2]: brind[23]:=3: > #bw[42]:= [1,1,1,2,3,3,-1,2,2,2,-3]: brind[42]:=4: > #bw[43]:= [1,-2,3,-1,-1,-4,3,-2,3,3,4,3]: brind[43]:=5: > bw[24]:= [1,1,1,-2,1,1,1,1,2,2]: brind[24]:=3: > #bw[45]:= [-1,2,1,1,2,2,2,-3,2,3,3]: brind[45]:=4: #9_10 > #bw[46]:= [-1,2,-3,2,-1,2,2,2,2,3,2]: brind[46]:=4: > #bw[47]:= [1,-2,-1,-1,3,2,2,2,4,4,3,-4]: brind[47]:=5: > #bw[48]:= [1,1,2,-3,2,-1,3,3,2,2,2]: brind[48]:=4: > #bw[49]:= [1,4,4,-3,2,-3,2,-3,-1,-4,2,2,3,-2]: brind[49]:=5: > #bw[50]:= [1,-2,1,3,-2,4,-3,4,4,3]: brind[50]:=5: #9_15 > bw[25]:= [1,1,-2,1,1,1,2,2,2,2]: brind[25]:=3: > #bw[52]:= [1,1,1,3,-2,1,-2,-3,-2,1,-2]: brind[52]:=4: > #bw[53]:= [1,1,-3,2,-1,2,2,3,3,2,2]: brind[53]:=4: > #bw[54]:= [1,1,2,-1,-3,-4,-3,2,-3,2,4,-3]: brind[54]:=5: > #bw[55]:= [1,2,2,-3,2,-1,2,-3,2,2,2]: brind[55]:=4: #9_20 > #bw[56]:= [-1,-1,3,-4,3,-2,1,3,4,4,2,2]: brind[56]:=5: > #bw[57]:= [1,-2,3,3,3,-2,3,-1,-2,3,-2]: brind[57]:=4: > #bw[58]:= [1,-2,1,1,2,3,3,3,2,-3,2]: brind[58]:=4: > #bw[59]:= [1,3,3,-2,1,3,-2,-2,-2]: brind[59]:=4: > #bw[60]:= [-1,2,-1,-4,-3,2,4,4,3,4,4,2,2,-3]: brind[60]:=5: #9_25 > #bw[61]:= [-1,2,2,2,3,2,-1,2,-1,-3,2]: brind[61]:=4: > #bw[62]:= [-1,2,-1,-1,-3,2,-1,2,2,3,2]: brind[62]:=4: > #bw[63]:= [1,1,3,3,-2,-2,1,3,-2]: brind[63]:=4: > #bw[64]:= [-1,2,-3,2,-1,2,-3,2,2]: brind[64]:=4: > #bw[65]:= [1,-3,-3,2,-3,-1,2,1,1,-3,2]: brind[65]:=4: #9_30 > #bw[66]:= [-1,2,2,-3,2,2,-1,2,3,-1,2]: brind[66]:=4: > #bw[67]:= [-1,2,3,-1,2,-1,3,3,2,-3,2]: brind[67]:=4: > #bw[68]:= [-1,-1,-1,2,-1,2,2,3,1,-2,3]: brind[68]:=4: > #bw[69]:= [1,-2,3,-2,1,-2,3,1,-2]: brind[69]:=4: > #bw[70]:= [1,3,3,-4,-2,1,2,3,3,2,-3,4,-3,2]: brind[70]:=5: #9_35 > #bw[71]:= [-1,2,2,2,-3,2,3,3,-1,2,3]: brind[71]:=4: > #bw[72]:= [1,-2,3,-2,3,-1,4,-3,-2,4,3,-2]: brind[72]:=5: > #bw[73]:= [1,1,2,3,3,2,2,-1,2,-3,2]: brind[72]:=4: > #bw[74]:= [-1,-3,2,4,3,3,-1,2,2,3,4,-2]: brind[74]:=5: > #bw[75]:= [1,3,-2,3,1,-2,1,3,-2]: brind[75]:=4: #9_40 > #bw[76]:= [-1,2,2,-4,3,-4,-2,1,-3,2,3,-4,3,2]: brind[76]:=5: > #bw[77]:= [1,1,1,3,-2,3,-1,-1,-2]: brind[77]:=4: > #bw[78]:= [1,2,1,1,2,2,3,-2,1,-2,-3]: brind[78]:=4: > #bw[79]:= [-1,2,-1,3,-2,3,2,2,-3]: brind[79]:=4: > #bw[80]:= [1,-2,1,3,2,2,2,3,-2]: brind[80]:=4: #9_45 > #bw[81]:= [1,3,2,-1,-3,2,1,3,-2]: brind[81]:=4: > #bw[82]:= [-1,2,3,-1,2,-1,2,3,2]: brind[82]:=4: > #bw[83]:= [1,1,-2,3,2,2,-1,-3,2,-3,2]: brind[83]:=4: > #bw[84]:= [1,1,2,2,3,2,-1,2,2,3,-2]: brind[84]:=4: #9_49 > > > for KT from 1 to 25 do # KT is the number in the Knot Table. Up to 84. > > print(Knot, KT); > > # Setting up the state-sum terms. > #SST:= [ ] : > SST:=0: > > # Color vectors. > for jj3 from 1 to (nops(bw[KT])+1) do > Color[jj3]:=array(1..brind[KT]): > preColor[jj3]:=array(1..brind[KT]): > od: > > # Producing all color vectors. > num:=12^(brind[KT]) : > for indx from 0 to (num-1) do # One color at a time. > > for jj5 from 1 to brind[KT] do > preColor[1][jj5]:=iquo(indx,12^(jj5-1)) mod 12: > Color[1][jj5]:=preColor[1][jj5] + 1: > od: > > # Computing all color vectors. > for jj6 from 1 to nops(bw[KT]) do > > if bw[KT][jj6] > 0 then > > for jj8 from 1 to brind[KT] do > if jj8 = abs(bw[KT][jj6]) then > Color[jj6+1][jj8]:=Color[jj6][jj8+1]: > fi: > if jj8 = abs(bw[KT][jj6])+1 then > Color[jj6+1][jj8]:=g(Color[jj6][jj8-1],Color[jj6][jj8]) : > fi: > if jj8 < abs(bw[KT][jj6]) then > Color[jj6+1][jj8]:=Color[jj6][jj8]: > fi: > if jj8 > abs(bw[KT][jj6])+1 then > Color[jj6+1][jj8]:=Color[jj6][jj8]: > fi: > od: > > else > > for jj8 from 1 to brind[KT] do > if jj8 = abs(bw[KT][jj6]) then > Color[jj6+1][jj8]:=ginv(Color[jj6][jj8+1],Color[jj6][jj8]): > fi: > if jj8 = abs(bw[KT][jj6])+1 then > Color[jj6+1][jj8]:=Color[jj6][jj8-1]: > fi: > if jj8 < abs(bw[KT][jj6]) then > Color[jj6+1][jj8]:=Color[jj6][jj8]: > fi: > if jj8 > abs(bw[KT][jj6])+1 then > Color[jj6+1][jj8]:=Color[jj6][jj8]: > fi: > od: > > > fi: > od: > > > SSTcontri:=0: > # State-sum contributions from triple points. > > # Finding if the colors match. > ColorDiff0:=evalm(Color[1]-Color[nops(bw[KT])+1]); > ColDiffMatch0:=sum(abs(ColorDiff0[jj]),jj=1..brind[KT]); > # This is zero iff the top color vec matches the bottom. > > > if ColDiffMatch0 =0 then > > for s from 1 to nops(bw[KT]) do > > if (bw[KT][s])>0 then > > SSTcontri:= SSTcontri + > f[Color[s][abs(bw[KT][s])], Color[s][abs(bw[KT][s])+1] ] : > > else > > SSTcontri:=SSTcontri - > f[Color[s+1][abs(bw[KT][s])], Color[s][abs(bw[KT][s])] ] : > > fi: > > od: # Closing the state-sum term, for s. > > #SST:=[ op(SST), map( z -> z mod 10, subs(Sol, SSTcontri ) )]: > #SST:=[ op(SST), map( z -> z mod 10, SSTcontri )]: > #SST:= SST + u^(map( z -> z mod 10, subs(Sol, SSTcontri ) ) ): > SST:= SST + u^(map( z -> z mod 10, SSTcontri )): > > fi: # Closing the case when it colors. > > > od: # Closing one color here at a time, for indx. > > > print(SST); > > od: # Closing KT. > Knot, 1 12 + 60 u Knot, 2 12 Knot, 3 5 12 + 60 u Knot, 4 3 12 + 60 u Knot, 5 12 Knot, 6 12 Knot, 7 12 Knot, 8 12 Knot, 9 12 Knot, 10 12 Knot, 11 2 12 + 60 u + 60 u Knot, 12 9 12 + 60 u Knot, 13 12 Knot, 14 72 + 60 u Knot, 15 12 Knot, 16 12 Knot, 17 9 12 + 120 u + 120 u Knot, 18 2 12 + 60 u Knot, 19 72 Knot, 20 2 12 + 60 u Knot, 21 3 12 + 60 u Knot, 22 12 Knot, 23 3 12 + 60 u Knot, 24 12 Knot, 25 2 12 + 60 u > > >