Seção 6.5 Sage
Sage pode criar todas as classes laterais de um subgrupo e todos os subgrupos de um grupo. Por mais que estes métodos possam ser um pouco lentos, eles são em muitos casos, eles podem te fornecer caminhos muito melhores do que o papel e o lápis e podem te ajudar a entender a estrutura de grupos finitos.
Subseção 6.5.1 Classes Laterais
Sage criará todas as classes laterais direitas (ou esquerdas) de um subgrupo. Escritas matematicamente, as classes laterais são conjuntos, e a ordem dos elementos de dentro é irrelevante. Em Sage, as listas são mais naturais e aqui isso é uma vantagem.
Sage cria as classes laterais de um subgrupo como lista de listas. Cada lista interna é uma classe lateral particular. A primeira classe lateral sempre é o próprio subgrupo e o primeiro elemento desta classe é a identidade. Cada uma das outras classes podem ser construídas para terem seu primeiro elemento como seu representante e se você usar esse elemento como representante, os elementos da classe lateral terão a mesma ordem se tivessem sido criados pela multiplicação desse representante pelos elemento na primeira classe lateral (o subgrupo).
O parâmetro opcional side
pode ser 'right'
ou 'left'
, se não está explicitado, a opção padrão é escolher as classes laterais direitas. As opções se referem a que lado do produto está o representante. Note que agora os resultados de Sage estaram “ao contrário” comparados com o texto. Aqui temos um Exemplo 6.1.2 reprisado, mas em uma ordem ligeiramente diferente.
Se olhamos cuidadosamente, podemos ver a diferença entre as classes laterais direitas e esquerdas. Compare estas classes laterais com as do texto e note que direita e esquerda estão trocadas. Não deve ser um problema — só fique com isso em mente.
Se analizamos a lista composta, podemos ver que as classes laterais direitas e esquerdas são as mesmas. Vejamos o que Sage pensa:
Matematicamente, precisamos de conjuntos, mas a Sage está trabalhando com listas ordenadas e a ordem importa. No entanto, se sabemos que nossa listas não contém duplicados (o método .cosets()
nunca produzirá duplicados) então podemos ordenar as listas e um teste de igualdade ocorrerá como planejado. Os elementos de um grupo de permutação têm uma ordem definida para eles — não é tão importante qual é essa ordem, só que alguma ordem está definida. A função sorted()
pegará qualquier lista devolvendo uma versão ordenada. Assim, para cada lista de classes laterais, ordenaremos as classes individualmente e, então, ordenaremos a lista de classes ordenadas. Esta é uma manobra típica, ainda que um pouco complicada para as listas aninhadas.
A lista de todas as classes laterais pode ser bastante longa (conterá todos os elementos do grupo) e pode tomar vários segundos para ser completada, inclusive para grupos pequenos. Existem formas mais sofisticadas, e mais rápidas, de estudar classes laterais (como simplesmente usar seus representantes), mas para entender estas técnicas é necessário ter mais teoria.
Subseção 6.5.2 Subgrupos
Sage pode calcular todos os subgrupos de um grupo. Isto pode produzir uma resposta ainda mais longa que o método de classes laterais e pode ser muito mais lento, dependendo da estrutura do grupo. A lista está ordenada pelo tamnho dos subgrupos, com os menores primeiros. Como uma demonstação iremos computar primeiro uma lista de todos os subgrupos de um grupo pequeno e, depois, extrair somente um desses subgrupos da lista para mais estudos futuros.
A saída do método .subgroups()
pode ser grande, podemos estar interessados nas propriedades de certos subgrupos específicos (como no exemplo anterior) ou perguntas mais amplas como a “estrutura dos subgrupos” do grupo. Aqui estendemos o Corolário 6.2.7. Note que o fato de que Sage calcula um subgrupo de ordem 6 em \(A_4\text{,}\) não é um substituto válido de uma demonstração como é dada pelo corolário. Mas o resultado computacional nos anima para buscar a demostração teórica con mayor confianza.
Assim que não vemos um subgrupo de ordem 6 na lista de subgrupos de \(A_4\text{.}\) Note como o Teorema de Lagrange (Teorema 6.2.2) está em evidência — todos os subgrupos têm ordens que dividem \(12\text{,}\) a ordem de \(A_4\text{.}\)
Novamente, note o Teorema de Lagrange em ação. Mas, ainda mais interessante, \(S_4\) tem um subgrupo de ordem 6. Quatro deles, para ser preciso. Esses quatro subgrupos de ordem 6 são similares entre eles, pode descrevê-los de forma simples (antes de entrar na lista sg
para obter mais informações)? Se quiser saber quantos subgrupos tem \(S_4\text{,}\) pode simplesmente contar o número de subgrupos na lista sg
. A função len()
faz isto para qualquer lista e é usualmente uma forma fácil de contar coisas.
Subseção 6.5.3 Subgrupos de Grupos Cíclicos
Agora que estamos mais familiarizados com os grupos de permutações e conhecemos o método .subgroups()
, podemos revisitar uma idea do Capítulo 4. Os subgrupos de um grupo cíclico sempre são cíclicos, mas quantos existem e que ordens têm?
Poderiamos fazer isso o dia todo, mas agora que temos Sage a nossa disposição, varie a ordem de G
trocando o valor de n
e estude vários desses resultados. Pode tentar um grupo cíclico de ordem 24 e comparar com o grupo simétrico \(S_4\) (acima) que também tem ordem 24. Você percebe alguma conjectura?
Subseção 6.5.4 Função Phi de Euler
Para acrescentar a nossas funções de teoria dos números do Capítulo 2, notemos que Sage põe a nossa disposição a função \(\phi\) de Euler como euler_phi()
.
Aqui segue um experimento interessante que você pode tentar rodar quantas vezes quiser.
Alguma outra conjectura? Podemos generalizar este resultado?