CommutingAsProduct
Makes an object behave as a product when commuting.
This makes an object behave, for purposes of commutation rules, as a
product. That is, when trying to move another object through it, the
sign that is picked up is determined by moving the other object
through all the non-index children. A(#)::CommutingAsProduct;
{Q,X,Y,Z}::AntiCommuting;
ex:= A(Y)(Z)(Q)*A(X);
Attached property CommutingAsProduct to A(#).
Attached property AntiCommuting to (Q,X,Y,Z).
A(YZQ)A(X)
sort_product(_);
−A(X)A(YZQ)
The minus sign arises because it would also have been present when
sorting
(Y*Z*Q)*X
.