Uq(sl_2) acting on V^q(m) and V^q(m) \otimes V^q(n)
eq, fq, tq, tqinv - act on expressions in u[m,k] which are the basis elements for V^q(m) with 0 <= k <= m
coeq, cofq, cotq, cotqinv - act on expressions in u1[m,k]*u2[n, l] which are the basis elements for
V^q(m) \otimes V^q(n) with 0 <= k <= m and 0 <= l <= n
nq = (q^n - q^(-n))/(q-q^(-1))
>
nq:=proc(n);
simplify((q^n-q^(-n))/(q-q^(-1)));
end:
>
teeq:=proc(place,EX) local unks;
unks:=select(x->evalb(op(0,x)=cat(`u`,place)),indets(EX,`indexed`));
subs({seq(rrr=q^(op(1,rrr)-2*op(2,rrr))*rrr,rrr=unks)},EX);
end:
>
teeqinv:=proc(place,EX) local unks;
unks:=select(x->evalb(op(0,x)=cat(`u`,place)),indets(EX,`indexed`));
subs({seq(rrr=q^(-op(1,rrr)+2*op(2,rrr))*rrr,rrr=unks)},EX);
end:
>
effq:=proc(place,EX) local slst,unks,rrr;
unks:=select(x->evalb(op(0,x)=cat(`u`,place)),indets(EX,`indexed`));
slst:=NULL;
for rrr in unks do
if op(1,rrr)=op(2,rrr) then
slst:=slst,rrr=0;
else
slst:=slst,
rrr=cat(`u`,place)[op(1,rrr),op(2,rrr)+1]*nq(op(2,rrr)+1);
fi;
od;
subs({slst},EX);
end:
>
eeeq:=proc(place,EX) local slst,unks,rrr;
unks:=select(x->evalb(op(0,x)=cat(`u`,place)),indets(EX,`indexed`));
slst:=NULL;
for rrr in unks do
if op(2,rrr)=0 then
slst:=slst,rrr=0;
else
slst:=slst,
rrr=cat(`u`,place)[op(1,rrr),op(2,rrr)-1]*
nq(op(1,rrr)-op(2,rrr)+1);
fi;
od;
subs({slst},EX);
end:
>
cotq:=proc(EX);
simplify(teeq(1,teeq(2,EX)));
end:
>
cofq:=proc(EX);
simplify(effq(1,EX)+effq(2,teeq(1,EX)));
end:
>
coeq:=proc(EX)
simplify(eeeq(1,teeqinv(2,EX))+eeeq(2,EX));
end:
>
cotqinv:=proc(EX);
simplify(teeqinv(1,teeqinv(2,EX)));
end:
> tq:=proc(EX); simplify(teeq(``,EX)); end:
> tqinv:=proc(EX); simplify(teeqinv(``,EX)); end:
> eq:=proc(EX); simplify(eeeq(``,EX)); end:
> fq:=proc(EX); simplify(effq(``,EX)); end:
Example: compute V^q(2) \otimes V^q(1)
There are 6 basis elements
u1[2,0]*u2[1,0], u1[2,0]*u2[1,1],
u1[2,1]*u2[1,0], u1[2,1]*u2[1,1],
u1[2,2]*u2[1,0], u1[2,2]*u2[1,1]
> cofq(u1[2,0]*u2[1,0]);
> cofq(u1[2,0]*u2[1,1]);
> cofq(u1[2,1]*u2[1,0]);
> cofq(u1[2,1]*u2[1,1]);
> cofq(u1[2,2]*u2[1,0]);
> cofq(u1[2,2]*u2[1,1]);
Beyond this point you must draw your own pictures...
Notice that there are 2 linear combinations of the images of f that are 0
u1[2,2]*u2[1,1] and u1[2,1]*u2[1,1]-q^2*u1[2,2]*u2[1,0]*nq(2)
> cofq(u1[2,1]*u2[1,1]-q^2*u1[2,2]*u2[1,0]*nq(2));
Now apply coeq to the first one until it is 0
> coeq(u1[2,2]*u2[1,1]);
> simplify(coeq(%)/nq(2));
> simplify(coeq(%)/nq(3));
> coeq(%);
This means that we have a chain that is isomorphic to V^q(3)
u1[2,2]*u2[1,1] --> e/[1]
u1[2,1]*u2[1,1]*q+u1[2,2]*u2[1,0] --> e/[2]
u1[2,1]*u2[1,0]+q^2*u1[2,0]*u2[1,1] --> e/[3]
u1[2,0]*u2[1,0] --> 0
This means that our crystal basis for this module is:
u1[2,2]*u2[1,1] -e~-> u1[2,2]*u2[1,0] -e~-> u1[2,1]*u2[1,0] -e~-> u1[2,0]*u2[1,0] --> 0
Now apply coeq to the second element such that cofq( b) = 0
> coeq(u1[2,1]*u2[1,1]-q^2*u1[2,2]*u2[1,0]*nq(2));
> coeq(%);
Therefore we have a second chain that is isomorphic to V^q(1)
u1[2,1]*u2[1,1]-q^2*u1[2,2]*u2[1,0]*nq(2) --> e/[1]
q^2*u1[2,0]*u2[1,1]+u1[2,0]*u2[1,1]-u1[2,1]*u2[1,0]*q^2 --> 0
This implies that the crystal basis for this module is:
u1[2,1]*u2[1,1] -e~-> u1[2,0]*u2[1,1] -e~-> 0