Question: subs and algsubs fail to work on noncommutative variables

I need some calculations in a noncommutative ring - specifically, I need to rewrite/simplify some algebraic expressions in those variables.  My variables need to be indexed by integers - for example, I need variables A[n], B[n], and C[n], where n is an arbitrary integer.  These variables should not commute.  My approach to doing this so far has been to use quantumoperators:

with(Physics);
Setup(quantumoperators = {A, B, C});
                 [quantumoperators = {A, B, C}]

There are some commutator relations that need to be imposed.  For example, suppose we have 

Commutator(A[m], B[n]) = C[m+n].

I can impose these commutator relations using 

Setup(algebrarules = {%Commutator(A[m], B[n]) = C[m+n]});

That part is ok.   But I would also like to subsitute certain algebraic expressions in these variables.  For example, suppose I would like to substitute A[2]*B[3] = 5. It seems I should be able to do so using subs or algsubs. This works on very simple expressions: for example, I get 

algsubs(A[1]*B[2] = 5, A[1]*B[2] + C[3]);
                            5 + C3

 as I would expect.  But the following does not work: 

algsubs(A[1]*B[2] = 5, A[1]*B[2]*C[4] + C[3]);
             A1B2C4 + C3

But I should get output 5C4+ C3.  This problem also persists if I use subs in stead of  algsubs.  It does not appear if I use 'standard' commuting variables.  

Please Wait...