(*                         Ren-Cang Li, June 1, 1996
                           na.rcli@na-net.ornl.gov   *)

(* Definitions *)
Mm[a___, x_+y_,         b___] :=  Mm[a,x,b]+Mm[a,y,b];
Mm[a___, n_ X,          b___] :=n Mm[a,X,b];
Mm[a___, n_ Y,          b___] :=n Mm[a,Y,b];
Mm[a___, n_ y_Mm,       b___] :=n Mm[a,y,b];
Mm[a___, n_?NumberQ y_, b___] :=n Mm[a,y,b];

SetAttributes[Mm, Flat];
Cmt[x_,y_]:=Mm[x,y]-Mm[y,x];

(* Rule for [X,[X,[X,Y]]]=0 *)
Mm[a___,X,X,X,Y,b___]:=Expand[
     3 Mm[a,X,X,Y,X,b]-3 Mm[a,X,Y,X,X,b]+Mm[a,Y,X,X,X,b]];

(* Randomly Choose a1 --- r11 *)
a1=Random[Integer,{-1000,1000}];
b1=Random[Integer,{-1000,1000}];
a2=Random[Integer,{-1000,1000}];
a3=Random[Integer,{-1000,1000}];
b3=Random[Integer,{-1000,1000}];
a4=Random[Integer,{-1000,1000}];
b4=Random[Integer,{-1000,1000}];
a5=Random[Integer,{-1000,1000}];
b5=Random[Integer,{-1000,1000}];
c5=Random[Integer,{-1000,1000}];
d5=Random[Integer,{-1000,1000}];
a6=Random[Integer,{-1000,1000}];
b6=Random[Integer,{-1000,1000}];
c6=Random[Integer,{-1000,1000}];
d6=Random[Integer,{-1000,1000}];
e6=Random[Integer,{-1000,1000}];
a7=Random[Integer,{-1000,1000}];
b7=Random[Integer,{-1000,1000}];
c7=Random[Integer,{-1000,1000}];
d7=Random[Integer,{-1000,1000}];
e7=Random[Integer,{-1000,1000}];
f7=Random[Integer,{-1000,1000}];
g7=Random[Integer,{-1000,1000}];
h7=Random[Integer,{-1000,1000}];
i7=Random[Integer,{-1000,1000}];
j7=Random[Integer,{-1000,1000}];
