Todavía no he encontrado un no ejemplo de grupo, pero el grupo de cuaterniones $Q$ orden $8$ satisface $b^{3}a = ab$, siempre que $ba \neq ab$$a,b\in Q$. He comprobado esto en madera de Arce, pero usted puede fácilmente comprobar en la BRECHA.
Además (suponiendo que no he hecho un error de programación), esta es la más pequeña no conmutativa ejemplo. Utilizando el Magma paquete de Arce, he comprobado el semigroups de orden menor que $8$ y no se encontró ningún no-conmutativa ejemplos. (Me parece recordar que hay una biblioteca pequeña semigroups en la BRECHA, por lo que puede realizar una doble comprobación mis cálculos no demasiado.)
AÑADIÓ:
Para un grupo finito $G$, sus condiciones son equivalentes a $G$ Hamiltonianos; es decir, no abelian, pero que todos los subgrupos normales ya que, por $a$$b$$G$,$ab = b^{r}a$, para algunas de las $r\geq 1$ si, y sólo si, $aba^{-1}\in\langle b\rangle$. El grupo de cuaterniones $Q$ orden $8$ es el más pequeño de Hamilton grupo. (De ello se sigue que no hay grupo más reducido de ejemplos). La comprobación de que $r\in \{1,3\}$ funciona es sencillo en madera de Arce:
with( group ):
Q := permgroup( 8, { [[1, 2, 3, 4], [5, 6, 8, 7]], [[1, 5, 3, 8], [2, 7, 4, 6]] } ):
E := elements( Q ):
for a in E do
for b in E do
u := mulperms( a, b );
v := mulperms( b, a );
if u <> v then
v := mulperms( b, mulperms( b, v ) );
if u <> v then
print( a, b )
end if
end if
end do
end do:
Para comprobar la semigroups de orden menor que $8$, he utilizado el Magma paquete de Arce, junto con la siguiente rutina para comprobar si un semigroup dada por su tabla de Cayley es cuasi-conmutativa.
QuasiComm? := proc( s::Array(order=C_order, datatype=integer[4]), n::posint )
description "check whether a semigroup given by its Cayley table is quasi-commutative";
option autocompile;
local i, j, u, found, r;
for i from 1 to n do
for j from 1 to n do
found := false;
u := j;
for r from 1 to n + 1 do
if s[ u, i ] = s[ i, j ] then
found := true;
#print(i,j,r);
break
end if;
u := s[ u, j ]; # u = j^(r+1)
end do;
if not found then
return false
end if
end do
end do;
true
end proc:
Este procedimiento se lleva a un semigroup $s$ dado por su tabla de Cayley como primer argumento, junto con la orden de $n$. Utiliza el hecho de que sólo tenemos que comprobar los valores de $r$$\{ 1, 2, \ldots, n\}$, para un semigroup de orden $n$, debido a que la secuencia de $b, b^{2}, b^{3},\ldots, b^{n}$ debe, finalmente, acabar en un ciclo. Yo suministrado suficiente información de tipo para habilitar el procedimiento para ser compilado a código máquina (opción autocompile), ya que va a ser llamado de muchas, muchas veces.
Para ejecutar la prueba, que sólo utiliza el comando de enumeración en el Magma del paquete, de la siguiente manera:
N := 2: L := Enumerate( N, semigroup, output = list ): select( QuasiComm?, remove( IsCommutative, L ), N );
N := 3: L := Enumerate( N, semigroup, output = list ): select( QuasiComm?, remove( IsCommutative, L ), N );
y así sucesivamente, hasta el $N = 7$. La salida en cada caso fue la lista vacía.
Estoy tratando de una ligera refinamiento de este enfoque para ver si puedo encontrar cualquier no-grupo, ejemplos de orden de $8$, pero no estoy seguro de que la computación es factible. (Me voy a quedar toda la noche y ver si se pone en cualquier lugar.) El fin de $9$ probablemente no es accesible de esta manera, de acuerdo a la muy reciente (2013/01/25) el trabajo de Distler y Kelsey, el número de semigroups de orden $9$ (hasta el isomorfismo) es $105978177936292$.
AÑADIDO (2):
Parece que los cuaterniones grupo de orden $8$ es el único ejemplo de ese orden. Para comprobar esto, he tenido que modificar el predicado para su uso con la opción de la prueba de Enumerar comando. Aunque dudo de Magma:-podría Enumerar una lista de todos los semigroups de orden $8$ (en principio, se puede, pero es probable que tome mucho tiempo), la modificación de predicado puede ser utilizado para podar el árbol de búsqueda. Yo no estaba seguro de que incluso este sería completa, pero lo hizo. La modificación de predicado es como sigue. La principal diferencia es la necesidad de comprobar si los "productos" son definidos (no$0$).
IsQC := proc( s::Array(order=C_order, datatype=integer[4]), n::posint )
option autocompile;
local i, j, ij, u, r, found, undef;
for i from 1 to n do
for j from 1 to n do
ij := s[ i, j ];
if ij <> 0 then
found := false;
undef := false;
u := j;
for r from 1 to n + 1 do
if s[ u, i ] <> 0 then
if s[ u, i ] = ij then
found := true;
break
end if
else
undef := true;
break
end if;
u := s[ u, j ];
if u = 0 then
undef := true;
break
end if
end do;
if undef then
next
end if;
if not found then
return false
end if
end if
end do
end do;
true
end proc:
Llamar a esto, el uso de
with( Magma ):
L := Enumerate( 8, semigroup, test = IsQC, output = list ):
He encontrado la lista resultante tenía un único miembro, que me fue verificado $Q$.
Bueno, eso fue divertido. Interesante pregunta!