16  Anéis e álgebras

Neste projeto vamos aprender como trabalhar com anéis e álgebra no sistema GAP.

16.1 Idempotentes e elementos nilpotentes em \(\mathbb Z_n\)

Seja \(n\geq 2\) um inteiro e consideramos o anel \(\mathbb Z_n\) de inteiros moduló \(n\) com a adição e multiplicação usuais. Em GAP esse anel pode ser construído como no seguinte exemplo.

gap> R := ZmodnZ(12 );
(Integers mod 12)

Para acessar os elementos de R, precisamos considerar \(a\cdot 1_R\) onde \(1_R\) é a identidade de \(R\). Por exemplo, o elemento 3 em R pode ser escrito nesta forma.

gap> a := 3*One( R );
ZmodnZObj( 3, 12 )

16.2 Tarefa 1

Um elemento \(a\in\mathbb Z_n\) chama-se nilpotente se \(a^k=0\) com algum \(k\geq 1\) e o menor tal \(k\) é chamado de grau de nilpotência de \(a\). Um elemento \(a\in\mathbb Z_n\) chama-se idempotente se \(a^2=a\).

gap> a := 3*One( R );
3
gap> IsIdempotent( a );
false
  1. Escreva uma função nr_idempotents_of_zn( n ) que devolve o número de idempotentes em \(\mathbb Z_n\).
  2. Use a função escrita no item anterior para calcular o número de idempotentes em anéis na forma \(\mathbb Z_{p^n}\) onde \(p\) é primo. Formalize uma conjetura.
  3. Escreva uma função que determina se um elemento de \(\mathbb Z_n\) é nilpotente.
  4. Escreva uma função que devolve o número de elementos nilpotentes em \(\mathbb Z_n\). Experimente a função com vários valores de \(n\) e tente formalizar uma conjetura.

Use a função IsIdempotent e Filtered (Seção 3.1). Para verificar se um elemento é nilpotente, observe que \(a\in\mathbb Z_n\) é nilpotente se e somente se \(a^n=0\). Pense se dâ para verificar a nilpotência de \(a\) usando um expoente menor.

16.3 A álgebra dos quaternions

Seja \(\mathbb F\) um corpo e \(\alpha,\ \beta\in\mathbb F\setminus\{0\}\). A álgebra generalizada dos quatérnions \(A_{\alpha,\beta}\) é um espaço vetorial de dimensão 4 sobre \(\mathbb F\) gerado pela base \(B=\{1,i,j,k\}\) munido com a multiplicação dada por a tabela seguinte:

\(\cdot\) \(1\) \(i\) \(j\) \(k\)
\(1\) \(1\) \(i\) \(j\) \(k\)
\(i\) \(i\) \(\alpha\) \(k\) \(\alpha j\)
\(j\) \(j\) \(-k\) \(\beta\) \(-\beta i\)
\(k\) \(k\) \(-\alpha j\) \(\beta i\) \(-\alpha \beta\)

A álgebra usual dos quaternions pode ser obtida como \(A_{-1,-1}\).

Vamos construir \(A_{1,1}\) sobre \(\mathbb Q\). Em GAP tal álgebras podem ser construídas com a função AlgebraByStructureConstants. Primeiro nós inicializamos \(T\) como uma tabela vazia de constantes de estrutura.

gap> T := EmptySCTable( 4, 0 );
[ [ [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], 
  [ [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], 
  [ [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], 
  [ [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ], [ [  ], [  ] ] ], 0, 0 ]

O primeiro argumento de EmptySCTable é a dimensão da álgebra, o segundo argumento é um zero no domínio de coeficientes.

A multiplicação em \(A_{1,1}\) pode ser definida da maneira seguinte. Primeiro o produto \(1\cdot 1=1\) é definido usando SetEntrySCTable.

gap> SetEntrySCTable( T, 1, 1, [1,1] );

O primeiro argumento é o nome da tabela em que definimos o produto. O segundo e o terceiro argumentos significam que definimos o produto B[1]•B[1]. O último argumento significa que o produto é 1•B[1].

Continuando desta maneira, definimos os produtos de \(A_{1,1}\).

gap> SetEntrySCTable( T, 1, 2, [1,2] );
gap> SetEntrySCTable( T, 1, 3, [1,3] );
gap> SetEntrySCTable( T, 1, 4, [1,4] );
gap> SetEntrySCTable( T, 2, 1, [1,2] );
gap> SetEntrySCTable( T, 2, 2, [1,1] );
gap> SetEntrySCTable( T, 2, 3, [1,4] );
gap> SetEntrySCTable( T, 2, 4, [1,3] );
gap> SetEntrySCTable( T, 3, 1, [1,3] );
gap> SetEntrySCTable( T, 3, 2, [-1,4] );
gap> SetEntrySCTable( T, 3, 3, [1,1] );
gap> SetEntrySCTable( T, 3, 4, [-1,2] );
gap> SetEntrySCTable( T, 4, 1, [1,4] );
gap> SetEntrySCTable( T, 4, 2, [-1,3] );
gap> SetEntrySCTable( T, 4, 3, [1,2] );
gap> SetEntrySCTable( T, 4, 4, [-1,1] );
gap> A := AlgebraByStructureConstants( Rationals, T );
<algebra of dimension 4 over Rationals>

Podemos investigar a álgebra obtida em cima.

gap> IsAssociative( A );
true
gap> IsSimple( A );
true
gap> L := LieAlgebra( A );
<Lie algebra of dimension 4 over Rationals>
gap> IsSimple( L );
false
gap> Center( L );
<Lie algebra of dimension 1 over Rationals>
gap> IsSimple( L/Center( L ));
true
gap> SemiSimpleType( L/Center( L ));
"A1"
gap> 

Ou seja, a álgebra obtida é uma álgebra associativa simples. A álgebra de Lie \(L\) associada com esta álgebra não é simples, mas \(L/Z(L)\) é simples de tipo A1; ou seja \(L/Z(L)\cong\mathfrak{sl}_2(\mathbb Q)\).

Vamos verificar que a álgebra \(A\) é isomorfa à álgebra de matrizes \(M_{2\times 2}(\mathbb Q)\). A estratégia é achar um elemento \(x\in A\) tal que o ideal à esquerda gerado por \(x\) tem dimensão \(2\). Isso permite definir um homomorfismo \(A\to M_{2\times 2}(\mathbb Q)\).

gap> repeat x := Random( A ); until Dimension( LeftIdeal( A, [x] )) = 2;
gap> I := LeftIdeal( A, [x] );
<left ideal in <algebra of dimension 4 over Rationals>, (1 generator)>
gap> B := Basis( I );
Basis( <left ideal in <algebra of dimension 4 over Rationals>, (dimension 2)>, ... )
gap> m1 := List( B, x->Coefficients( B, A.2*x  ));
[ [ -1, 2 ], [ 0, 1 ] ]
gap> m2 := List( B, x->Coefficients( B, A.3*x  ));
[ [ 1, 0 ], [ 1, -1 ] ]
gap> A0 := Algebra( Rationals, [m1,m2] );
<algebra over Rationals, with 2 generators>
gap> Dimension( A0 );
4
gap> A0 = FullMatrixAlgebra( Rationals, 2 );
true
gap> f := AlgebraHomomorphismByImages( A, A0, [A.2,A.3], [m1,m2] );
[ v.2, v.3 ] -> [ [ [ -1, 2 ], [ 0, 1 ] ], [ [ 1, 0 ], [ 1, -1 ] ] ]
gap> Kernel( f );
<algebra of dimension 0 over Rationals>
gap> Image( f ) = A0;
true

16.4 Tarefa 2

  1. Escreva uma função quaternion_algebra( F, a, b ) que devolve a álgebra de quatérnions \(A_{a,b}\) sobre \(\mathbb F\).
  2. Use a função quaternion_algebra para construir várias álgebras sobre vários corpos. Verifique se as álgebras associativas e as álgebra de Lie associadas são simples.
  3. Considere a álgebra \(A_{-1,-1}\) sobre \(\mathbb Q\). Tente construir um isomorfismo \(A_{-1,-1}\to M_{2,2}(\mathbb Q)\).