[no subject]
- To: mathgroup at yoda.physics.unc.edu
- From: John Lee <lee at math.washington.edu>
- Date: Sun, 2 Feb 92 11:35:33 -0800
In <9201311923.AA02621 at fubini.math.ufl.edu>, livio flaminio writes:
In an attempt to define a non commutative algebra over the complex by
using NonCommutativeMultiply I defined
... (* some definitions omitted *)
NonCommutativeMultiply[ Times[a_ ,b_] , Times[d_ ,c_]]:=
Times[Times[a, d] ,NonCommutativeMultiply[ b , c]] /; NumberQ[a] &&
NumberQ[d]
...
... the semplifications x ** (I y) = I x ** y and (-I y) ** x = -I
y ** x have not been carried out. Any clue of why that is the case?
The problem is that your pattern requires _both_ factors of
NonCommutativeMultiply to be multiplied by constants. Try the following:
In[1]:= Unprotect[NonCommutativeMultiply];
In[2]:= NonCommutativeMultiply[ a_ + b_ ,c_ ]:=
NonCommutativeMultiply[ a ,c] +
NonCommutativeMultiply[ b ,c]
In[3]:= NonCommutativeMultiply[ a_ , b_ + c_]:=
NonCommutativeMultiply[ a ,b] +
NonCommutativeMultiply[ a ,c]
In[4]:= NonCommutativeMultiply[ b_ , Times[d_ ,c_]]:=
Times[ d, NonCommutativeMultiply[ b, c]] /; NumberQ[d]
In[5]:= NonCommutativeMultiply[ Times[a_ ,b_] , c_]:=
Times[a, NonCommutativeMultiply[ b , c]] /; NumberQ[a]
In[6]:= brac[a_, b_]:= a**b - b**a
In[7]:= mplus= (x - I y) /2;
In[8]:= mminus= (x+ I y)/2;
In[9]:= brac[mplus, mminus]
-(x ** x - I x ** y + I (y ** x - I y ** y))
Out[9]= -------------------------------------------- +
4
x ** x + I x ** y - I (y ** x + I y ** y)
> -----------------------------------------
4
In[10]:= %//Expand
I I
Out[10]= - x ** y - - y ** x
2 2
Jack Lee
Dept. of Mathematics
University of Washington