1% 2% Bug in noncom2 package: redefinition of ordp 3% Petrov Alexander, Aug 2013 4% 5 6on intstr$ 7 8load_package noncom2; 9 10 11operator a,ac; 12noncom a,a; 13noncom ac,ac; 14noncom a,ac; 15 16for all i let a(i)*ac(i) = 1 - ac(i)*a(i); 17for all i,j such that i neq j let a(i)*ac(j) = -ac(j)*a(i); 18for all i,j such that ordp(i,j) let a(i)*a(j) = -a(j)*a(i); 19for all i,j such that ordp(i,j) let ac(i)*ac(j) = -ac(j)*ac(i); 20 21operator a2,a2c; 22noncom a2,a2; 23noncom a2c,a2c; 24noncom a2,a2c; 25 26for all i let a2(i)*a2c(i) = 1 - a2c(i)*a2(i); 27for all i,j such that i neq j let a2(i)*a2c(j) = -a2c(j)*a2(i); 28for all i,j such that ordp(i,j) let a2(i)*a2(j) = -a2(j)*a2(i); 29for all i,j such that ordp(i,j) let a2c(i)*a2c(j) = -a2c(j)*a2c(i); 30 31 32operator !H; 33!H := !J1*ac(i)*a(i+1) + !J1*ac(i+1)*a(i); 34 35operator !U,!U!T,!V,!V!T; 36 37sub_fermi := { a(~i) => !U(i,j1)*a2(j1) + !V(i,j1)*a2c(j1), 38 ac(~i) => !V!T(i,j2)*a2(j2) + !U!T(i,j2)*a2c(j2) }; 39!H2 := (!H where sub_fermi); 40on factor; 41!H2; 42 43end; 44