Seção 5.4 Sage
Uma boa parte da implementação de teoria de grupos em Sage está baseada em rotinas de GAP (Groups, Algorithms, and Programming) em www.gap-system.org 1 , que está incluído em cada cópia de Sage. Este é um pacote de código aberto maduro, que existe desde 1986.
Como vimos, os grupos podem ser descritos de muitas maneiras diferentes, tais como conjuntos de matrizes, conjuntos de números complexos, ou conjuntos de símbolos sujeitos a certas relações. Uma maneira muito concreta de representar grupos é via permutações (funções bijetivas dos inteiros de \(1\) a \(n\)), usando a composição de funções como a operação no grupo. Sage tem muitas rotinas desenhadas para trabalhar com grupos deste tipo e são também uma boa forma para que as pessoas que queiram aprender teoria de grupos ganhem experiência com as ideias básicas da teoria de grupos. Por estas duas razões, nos concentraremos neste tipo de grupos.
Subseção 5.4.1 Grupos de permutações e seus elementos
A forma mais fácil de trabalhar com elementos de grupos de permutação em Sage é escrevê-los com notação cíclica. Como estes são produtos de ciclos disjuntos (que comutam), não necessitamos preocupar-nos pela ordem em que aparecem os ciclos. Se escrevemos (1,3)(2,4)
provavelmente entenderemos que se trata de uma permutação (o conteúdo deste capítulo!) e sabemos que poderia ser um elemento de \(S_4\text{,}\) o até de um grupo simétrico em mais de 4 símbolos. Sage não pode começar tão facilmente e necessita um pouco de contexto, para que possamos coagir uma cadeia de caracteres escritos com notação de ciclos a pertencer a um grupo simétrico para produzir elementos do grupo. Aqui estão alguns exemplos e cálculos. Recorde que Sage e o texto diferem na ordem usada para compor duas permutações em um produto.
Se os próximos três exemplos parecem confusos, ou “ao contrário”, então seria um bom momento para revisar a discussão a respeito da ordem da composição de permutações em Sage feita na subseção Grupos de simetrías.
Há formas alternativas de criar elementos de um grupo de permutações, que podem ser úteis em alguma situação particular, mas que não são de uso muito frequente.
A segunda versão de \(\sigma\) é uma lista de “tuplas”, que requer muitas vírgulas e devem ser incluídas em uma lista. (Uma tupla de tamanho um deve ser escrita como (4,)
para distinguir-la do uso de parênteses para agrupar, como em 5*(4)
.) A terceira versão usa a “fila inferior” da notação mais incômoda de duas filas introduzida no começo do capítulo — é uma lista ordenada das imagens da permutação quando é considerada como uma função.
Vemos que sem importar as três formas diferentes de início, todas as versões de \(\sigma\) se mostram da mesma maneira, e, mais ainda, são iguais entre si. (Esta é uma sutil diferença entre — o que um objeto é em Sage versus como um objeto se mostra.)
Podemos ser ainda mais cuidadosos sobre a natureza de nossos elementos. Note que uma vez que Sage começa, pode promover o produto \(\tau\sigma\) ao grupo maior de permutações. Podemos “promover” elementos a grupos maiores de permutações, mas seria um erro tentar forçar um elemento em um grupo simétrico demasiado pequeno.
É um erro tentar coagir uma permutação com demasiados símbolos a um grupo de permutações que use menos símbolos.
Melhor que trabalhar simplesmente com elementos do grupo simétrico, podemos criar diversos grupos de permutações em Sage. A seguir temos uma mostra para começar:
Comando Sage | Descrição |
SymmetricGroup(n) |
Grupo simétrico em \(n\) símbolos, \(n!\) elementos |
DihedralGroup(n) |
Simetrias de um \(n\)-ágono, \(2n\) elementos. |
CyclicPermutationGroup(n) |
Rotações de um \(n\)-ágono, \(n\) elementos |
AlternatingGroup(n) |
Grupo alternante em \(n\) símbolos, \(n!/2\) elementos |
KleinFourGroup() |
Um grupo no cíclico de ordem 4 |
Você também pode localizar grupos de permutações em Sage usando o catálogo de grupos
. Na próxima célula ponha o cursor depois do ponto final e pressione a tecla de tabular (TAB). Você obterá uma lista de métodos que pode usar para criar grupos de permutações. Como sempre, ponha um ponto de interrogação depois de um método e pressione a tecla de tabular para obter documentação na linha do método. (isto funciona em uma célula de Sage normal mas não parece funcionar no "libro")
Subseção 5.4.2 Propriedades de permutações (Elementos)
Às vezes é mais fácil tomar um elemento de uma lista de elementos em um grupo de permutações, assim já está associado a um "parent" e não há necessidade de fazer nenhuma coerção. A seguir, rotate
e flip
são automaticamente elementos de G
pela forma com que foram obtidos.
Vemos com esta última prova que o grupo de simetrias de um pentágono é não abeliano. Mas há uma maneira mais fácil.
Existem muitos métodos, tanto para os grupos de permutações como para seus elementos. Use a célula vazia abaixo para criar um grupo de permutações (o que quiser) e um elemento de um grupo de permutações (qualquer). A continuação usa a tab-completion para ver todos os métodos disponíveis para um elemento, ou para um grupo (nome, punto, tecla-tab). Você pode reconhecer alguns nomes, outros aprenderemos nos capítulos seguintes, alguns são ferramentas muito especializadas de investigação que poderiam ser usadas para desenvolver uma tese de doutorado em teoria de grupos. Para qualquer destes métodos, recorde que pode escrever o nome, seguido de um ponto de interrogação, para ver a documentação y exemplos. Experimente e explore — é realmente difícil perder algo.
Aqui há alguns exemplos de vários métodos disponíveis.
Um método útil para estudar o grupo alternante é o .sign()
implementado para elementos de um grupo de permutações. Retorna 1
se a permutação é par e -1
se é ímpar.
Podemos criar subgrupos dando ao grupo uma lista de “geradores.” Estes elementos são usados para “gerar” um subgrupo — imagine multiplicar estes elementos (e seus inversos) uma e outra vez, criando novos elementos que também devem estar no subgrupo e que também participam de novos produtos, até que não apareçam novos elementos. Esta definição termina com um enunciado terrivelmente impreciso, mas deveria ser suficiente por enquanto. Uma melhor definição é que o subgrupo gerado pelos elementos é o menor subgrupo que contém todos os geradores — o que está certo se conhecemos todos os subgrupos de antemão.
Com um único gerador, os produtos repetidos são simplesmente as potências do gerador. O grupo gerado neste caso é cíclico. Com dois (ou mais) geradores, especialmente em um grupo não abeliano, a situação pode ser muito, muito mais complicada. Começamos com um gerador. Mas não esqueça de colocar-lo em uma lista de qualquer forma.
Podemos agora refazer o exemplo do princípio do capítulo. Traduzimos os elementos a notação cíclica, construímos o subgrupo formado a partir de dois geradores (o subgrupo não é cíclico), e como o subgrupo é abeliano, não é necessário que vejamos a tabela de Cayley de Sage como uma reflexão diagonal da tabela obtida no exemplo 5.1.2.
Subseção 5.4.3 Grupo de Movimentos de um Cubo
Poderíamos imitar o exemplo no texto e criar elementos de \(S_4\) como permutações das diagonais. Uma construção mais óbvia, mas menos esclarecedora, é considerar as 8 quinas do cubo como os elementos a permutar. Então algumas simetrias óbvias do cubo provém de passar um eixo pelos centros de duas faces opostas, com quartos de voltas e meias-voltas em torno destes eixos. Com três eixos e quatro rotações por eixo, obtemos 12 simetrias, exceto que contamos a identidade três vezes.
Numere as quatro quinas superiores de \(1\) a \(4\text{,}\) pondo o \(1\) na quina frontal-esquerda, e continuando em sentido horário visto de cima. Use de \(5\) a \(8\) para as quinas inferiores, de maneira que \(5\) fique diretamente abaixo de \(1\text{,}\) \(6\) abaixo de \(2\text{,}\) etc. Usaremos quartos de volta, em sentido horário, em torno de cada eixo, vendo de cima, de frente e do lado direito respectivamente.
Como sabemos pela discussão no texto que o grupo de simetrias tem \(24\) elementos, vemos que estes três geradores são suficientes para criar todas as simetrias. Isto sugere várias perguntas que se encontram no Exercício 5.5.4.
http://www.gap-system.org/