No es cierto que el producto ideal sea conmutativo en anillos no conmutativos (asociativos, unitales). Un ejemplo fácil es el de los anillos triangulares (véanse, por ejemplo, las págs. 17-22, especialmente la pág. 18 del First Course in Non-commutative Rings de Lam).
Se puede construir fácilmente un contraejemplo finito con 8 elementos: Sea a sea el anillo de matrices triangulares superiores; sea i sea el ideal (de dos caras) de a consistente en matrices estrictamente triangulares superiores, y dejemos que j sea el ideal (de dos caras) formado por las matrices cuya segunda fila es cero. Entonces ij \= 0, pero ji \= i . Esto funciona sobre cualquier campo, en particular el campo con 2 elementos.
Puede comprobarlo en GAP :
gap> a:=AlgebraWithOne(GF(2),[[[0,1],[0,0]],[[1,0],[0,0]]]*One(GF(2)));
<algebra-with-one over GF(2), with 2 generators>
gap> i:=Ideal(a,[[[0,1],[0,0]]]*One(GF(2)));
<two-sided ideal in <algebra-with-one of dimension 3 over GF(2)>, (1 generators)>
gap> j:=Ideal(a,[[[1,0],[0,0]],[[0,1],[0,0]]]*One(GF(2)));;
gap> ij:=Ideal(a,Concatenation(List(i,x ->List(j,y->x*y))));;
gap> ji:=Ideal(a,Concatenation(List(i,x ->List(j,y->y*x))));;
gap> Dimension(ij);Dimension(ji);
0
1
gap> ji = i;
true