out bbrgen;
off nat;

procedure delta(ii,jj);begin if ii eq jj then return 1 else return 0; end;

%k:=mat((2,-1),(-1,2));
%k:=mat((2,-2),(-1,2));
%k:=mat((2,-1),(-2,2));
k(1,1):=2;
k(2,2):=2;
noncom om;
noncom xp;
noncom xm;
noncom h;


for all ii,jj let xp(ii)*om(jj) = 0;

%-------- commutation rules ----------------------------------------
for all ii,jj let xp(ii)*xm(jj) = xm(jj)*xp(ii) + delta(ii,jj)*h(ii);
for all ii,jj let  xp(jj)*h(ii) = h(ii)*xp(jj) - k(jj,ii)*xp(jj);
for all ii,jj let  h(ii)*xm(jj) = xm(jj)*h(ii) - k(jj,ii)*xm(jj);

%-------- highest vector rules ----------------------------------------

for all ii,jj let xp(ii)*om(jj) = 0;
for all ii,jj let om(jj)*xm(ii) = 0;

for all ii,jj let h(ii)*om(jj) = delta(jj,ii)*om(jj);
for all ii let om(ii)*om(ii) = 1;



LP:=AP1*xp(1) + AP2*xp(2);
LM:=AM1*xm(1) + AM2*xm(2);


INVMP:=1 - LP + LP**2;
MM:=1 + LM + LM**2;


GG1:=OM(1)*INVMP*MM*OM(1);
GG2:=OM(2)*INVMP*MM*OM(2);




xm(kk)*xm(ll);
xp(ii)*xp(jj)*xm(kk)*xm(ll)*om(pp);

om(pp)*xp(ii)*xp(jj)*xm(kk)*xm(ll)*om(pp);

om(pp)*xp(ii)*xm(kk)*xm(ll)*om(pp);

om(pp)*xp(rr)*xp(ii)*xp(jj)*xm(kk)*xm(ll)*om(pp);


om(1)*xp(1)*xm(1)*om(1);
om(1)*xp(2)*xm(2)*om(1);

%------------------------------------------------

for i1:=1:2 do
for i2:=1:2 do
for i3:=1:2 do
for i4:=1:2 do 
for i5:=1:2 do 
for j1:=1:2 do 
for j2:=1:2 do
for j3:=1:2 do 
for j4:=1:2 do 
for j5:=1:2 do 

<< R:=om(1)*xp(1)*xp(i1)*xp(i2)*xp(i3)*xp(i4)*xp(i5)
           *xm(j1)*xm(j2)*xm(j3)*xm(j4)*xm(j5)*xm(1)*om(1);

IF R NEQ 0 THEN write(i1,i2,i3,i4,i5,j1,j2,j3,j4,j5," r:= ",R); >>;
%write(i1,i2,i3,i4,i5,j1,j2,j3,j4,j5," r:= ",R); >>;

for i1:=1:2 do
for i2:=1:2 do
for i3:=1:2 do
for i4:=1:2 do 
for i5:=1:2 do 
for j1:=1:2 do 
for j2:=1:2 do
for j3:=1:2 do 
for j4:=1:2 do 
for j5:=1:2 do 

<< R:=om(2)*xp(2)*xp(i1)*xp(i2)*xp(i3)*xp(i4)*xp(i5)
           *xm(j1)*xm(j2)*xm(j3)*xm(j4)*xm(j5)*xm(2)*om(2);

IF R NEQ 0 THEN write(i1,i2,i3,i4,i5,j1,j2,j3,j4,j5," r:= ",R); >>;
%write(i1,i2,i3,i4,i5,j1,j2,j3,j4,j5," r:= ",R); >>;

shut bbrgen;
bye;
end;