10  Comutadores em grupos

10.1 O problema

Seja \(G\) um grupo. Se \(x,y\in G\), o comutador \([x,y]\) está definido como \[ [x,y]=x^{-1}y^{-1}xy. \] O subgrupo derivado \(G'\) de \(G\) é definido como o subgrupo de \(G\) gerado por todos os comutadores; ou seja, \[ G'=\left<[x,y]\mid x,y\in G\right>. \] É importante observar que o subgrupo derivado por definição não é apenas o conjunto dos comutadores, mas ele é o subgrupo gerado por este conjunto. Isso é porque o conjunto de comutadores pode não ser um subgrupo. No entanto, nos grupos pequenos, \(G'\) coincide com o conjunto de comutadores.

10.2 Exploração interativa

Vamos explorar o conjunto de comutadores em um grupo dado. Considere por exemplo o grupo SymmetricGroup( 5 ). Vamos primeiro calcular o comutador de dois elementos.

gap> G := SymmetricGroup( 5 );
Sym( [ 1 .. 5 ] )
gap> x := (1,2,3,4,5);
(1,2,3,4,5)
gap> y := (1,2);
(1,2)
gap> x in G;
true
gap> y in G;
true
gap> Comm( x, y );
(1,2,3)
gap> Comm( x, y ) = x^-1*y^-1*x*y;
true

Ora, vamos computar o conjunto de comutadores de \(G\) e comparamos este conjunto com o subgrupo derivado.

gap> comms := Set( Tuples( Elements( G ), 2 ), t->Comm( t[1],t[2]));
[ (), (3,4,5), (3,5,4), (2,3)(4,5), (2,3,4), (2,3,5), (2,4,3), (2,4,5), 
  (2,4)(3,5), (2,5,3), (2,5,4), (2,5)(3,4), (1,2)(4,5), (1,2)(3,4), 
  (1,2)(3,5), (1,2,3), (1,2,3,4,5), (1,2,3,5,4), (1,2,4,5,3), (1,2,4), 
  (1,2,4,3,5), (1,2,5,4,3), (1,2,5), (1,2,5,3,4), (1,3,2), (1,3,4,5,2), 
  (1,3,5,4,2), (1,3)(4,5), (1,3,4), (1,3,5), (1,3)(2,4), (1,3,2,4,5), 
  (1,3,5,2,4), (1,3)(2,5), (1,3,2,5,4), (1,3,4,2,5), (1,4,5,3,2), (1,4,2), 
  (1,4,3,5,2), (1,4,3), (1,4,5), (1,4)(3,5), (1,4,5,2,3), (1,4)(2,3), 
  (1,4,2,3,5), (1,4,2,5,3), (1,4,3,2,5), (1,4)(2,5), (1,5,4,3,2), (1,5,2), 
  (1,5,3,4,2), (1,5,3), (1,5,4), (1,5)(3,4), (1,5,4,2,3), (1,5)(2,3), 
  (1,5,2,3,4), (1,5,2,4,3), (1,5,3,2,4), (1,5)(2,4) ]
gap> Size( comms ); 
60
gap> comms = Set( DerivedSubgroup( G ));
true
gap> DerivedSubgroup( G ) = AlternatingGroup( 5 );
true

A computação em cima mostra que no caso do grupo \(S_5\), o subgrupo derivado (ou seja, o subgrupo \(A_5\)) coincide com o conjunto de comutadores.

10.3 Tarefa 1

Escreva uma função nr_commutators( G ) que para um grupo G dado, computa o número de comutadores distintos de G. A sua função deve verificar:

gap> nr_comms( SymmetricGroup( 5 ));
60
gap> nr_comms( AlternatingGroup( 5 ));
60
gap> nr_comms( DihedralGroup( 20  ));
5
gap> nr_comms( AlternatingGroup( 4  ));
4
gap> nr_comms( PGL( 2, 7 ));
168
gap> Size( DerivedSubgroup( SymmetricGroup( 5 )));
60
gap> Size( DerivedSubgroup( AlternatingGroup( 5 )));
60
gap> Size( DerivedSubgroup( DihedralGroup( 10 )));
5
gap> Size( DerivedSubgroup( PGL( 2,7 )));
168

Escreva uma função encapsulando o código no exemplo anterior.

10.4 Tarefa 2

Escreva uma função commutator_set_is_subgroup( G ) para verificar se o conjunto de comutadores é igual ao subgrupo derivado de um grupo G. A função deve devolver true ou false. Note que é suficiente verificar se a cardinalidade do conjunto de comutadores é igual à cardinalidade do subgrupo derivado. A sua função deve seguir os seguintes exemplos.

gap> commutator_set_is_subgroup( SymmetricGroup( 5 ));
true
gap> commutator_set_is_subgroup( AlternatingGroup( 5 ));
true
gap> commutator_set_is_subgroup( DihedralGroup( 10 ));
true
gap> commutator_set_is_subgroup( PGL( 2, 7 ));
true

10.5 Tarefa 3

Usando a função AllSmallGroups( Size, list ), ache o menor grupo G tal que o conjunto de comutadores de G não é o subgrupo derivado. Por exemplo, vamos verificar que entre os grupos de ordem 24 isso não ocorre.

gap> List( AllSmallGroups( Size, [24] ), G -> commutator_set_is_subgroup( G ));
[ true, true, true, true, true, true, true, true, true, true, true, true, 
  true, true, true ]

10.6 Tarefa 4

Seja \(G\) o grupo encontrado na tarefa anterior.

  1. Faça a lista dos elementos do subgrupo derivado \(G'\) que não são comutadores.
  2. Escreva estes elementos como produto de comutadores de \(G\). Demonstre que todo elemento de \(G'\) pode ser escrito na forma \([x_1,x_2][y_1,y_2]\) com \(x_i,y_i\in G\).

O item 2. da tarefa anterior pode ser difícil resolver construindo todos os elementos \([x_1,x_2][y_1,y_2]\), pois o número de possibilidades é muito grande. Um caminho alternativo é escolher elementos aleatórios \(x_1,x_2,y_1,y_2\) até obter os elemendos desejados na forma \([x_1,x_2][y_1,y_2]\).

10.7 Tarefa 5

Para um grupo \(G\) e \(x\in G\), denote por \(B_x(G)\) o seguinte conjunto: \[ B_x(G)=\{u^{-1}x^{-1}uv^{-1}xv\mid u,v\in G\}. \]

  1. Escreva uma função B_x( G, x ) que calcula \(B_x(G)\) para um grupo \(G\) e elemento \(x\in G\).
  2. Decide quais dos seguintes grupos possui elemento \(x\) tal que \(B_x(G)=G\):
    • \(D_8\),
    • \(Q_8\),
    • \(A_4\),
    • \(S_4\),
    • \(A_5\),
    • \(S_5\).

Use Cartesian para criar o produto cartesiano de duas listas (manual).