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