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
- Escreva uma função
nr_idempotents_of_zn( n )
que devolve o número de idempotentes em \(\mathbb Z_n\). - 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.
- Escreva uma função que determina se um elemento de \(\mathbb Z_n\) é nilpotente.
- 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
- Escreva uma função
quaternion_algebra( F, a, b )
que devolve a álgebra de quatérnions \(A_{a,b}\) sobre \(\mathbb F\). - 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. - Considere a álgebra \(A_{-1,-1}\) sobre \(\mathbb Q\). Tente construir um isomorfismo \(A_{-1,-1}\to M_{2,2}(\mathbb Q)\).