Sección6.5Sage
¶Sage puede crear todos las clases laterales de un subgrupo, y todos los subgrupos de un grupo. Aunque estos métodos pueden ser algo lentos, hay muchas veces en que son mejores que experimentar con papel y lápiz, y pueden ser de gran ayuda para entender la estructura de los grupos finitos.
SubsecciónClases Laterales
Sage creará todas las clases laterales derechas (o izquierdas) de un subgrupo. Escritas matemáticamente, las clases laterales son conjuntos, y el orden de los elementos dentro es irrelevante. En Sage, las listas son más naturales, y acá es una ventaja.
Sage crea las clases laterales de un subgrupo como lista de listas. Cada lista interna es una clase lateral particular. La primera clase lateral siempre es el subgrupo mismo, y el primer elemento de esta clase es la identidad. Cada una de las otrar clases se puede entender construída para tener su representante como primer elemento, y si usamos este elemento como representante, los elementos de la clase están en el mismo orden en que serían creados multiplicando este representante por los elementos de la primera clase (el subgrupo).
El parámetro opcional side puede ser 'right' o 'left', y si no está explicitado, entonces por defecto se entregarán las clases laterales derechas. Las opciones se refieren a qué lado del producto está el representante. Note que ahora los resultados de Sage estarán “al revés” comparados con el texto. Acá hay un Ejemplo 6.2 reanudado, pero en un orden ligeramente diferente.
Si miramos cuidadosamente, podemos ver la diferencia entre las clases laterales derechas y las izquierdas. Compare estas clases laterales con las del texto y note que derecha e izquierda están intercambiadas. No debiera ser un problema — solo téngalo presente.
Si analizamos la lista compuesta, podemos ver que las clases laterales derechas y las izquierdas son las mismas. Veamos lo que piensa Sage:
Matemáticamente, necesitamos conjuntos, pero Sage está trabajando con listas ordenadas, y el orden importa. Sin embargo, si sabemos que nuestras listas no contienen duplicados (el método .cosets() nunca producirá duplicados) entonces podemos ordenar las listas y la verificación de igualdad tendrá el resultado esperado. Los elementos de un grupo de permutaciones tienen un orden definido para ellos — no es tan importante cuál es ese orden, solo que algún orden está definido. La función sorted() tomará cualquier lista devolviendo una versión ordenada. Así para cada lista de clases laterales, ordenaremos las clases individuales y luego ordenaremos la lista de clases ordenadas. Esta es una maniobra típica, aunque un poco complicada para las listas anidadas.
La lista de todas las clases laterales puede ser bastante larga (contendrá todos los elementos del grupo) y puede tomar varios segundos en ser completada, incluso para grupos pequeños. Existen formas más sofisticadas, y más rápidas, de estudiar clases laterales (como simplemente usar sus representantes), pero para entender estas técnicas es necesario tener más teoría.
SubsecciónSubgrupos
Sage puede calcular todos los subgrupos de un grupo. Esto puede producir una respuesta aún más larga que el método de clases laterales y puede ser mucho más lento, dependiendo de la estructura del grupo. La lista está ordenada según el tamaño de los subgrupos, con los más pequeños primero. Como una demostración, calcularemos primero una lista de todos los subgrupos de un grupo pequeño, y luego extraeremos uno de estos subgrupos de la lista para estudio posterior.
La salida del método .subgroups() suele ser grande, y podemos estar interesados en las propiedades de ciertos subgrupos específicos (como en el ejemplo anterior) o preguntas más amplias como la “estructura de subgrupos” del grupo. Acá extendemos el Corolario 6.15. Note que el hecho de que Sage calcule un subgrupo de orden 6 en \(A_4\text{,}\) no es un sustituto válido de una demostración como la dada para el corolario. Pero el resultado computacional nos anima para buscar la demostración teórica con mayor confianza.
Así que no vemos un subgrupo de orden 6 en la lista de subgrupos de \(A_4\text{.}\) Note como el Teorema de Lagrange (Teorema 6.10) está en evidencia — todos los subgrupos tienen órdenes que dividen a \(12\text{,}\) el orden de \(A_4\text{.}\)
Nuevamente, aprecie el Teorema de Lagrange en acción. Pero aún más interesante, \(S_4\) tiene un subgrupo de orden 6. Cuatro de ello, para ser precisos. Estos cuatro subgrupos de orden 6 son similares entre ellos, ¿puede describirlos de forma simple (antes de escarbar en la lista sg para obtener más información)? Si quiere saber cuántos subgrupos tiene \(S_4\text{,}\) podría simplemente contar el número de subgrupos en la lista sg. La función len() hace esto para cualquier lista y es usualmente una forma sencilla de contar cosas.
SubsecciónSubgrupos de Grupos Cíclicos
Ahora que estamos más familiarizados con los grupos de permutaciones, y conocemos el método .subgroups(), podemos revisitar una idea del Capítulo 4. Los subgrupos de un grupo cíclico siempre son cíclicos, pero ¿cuántos hay y qué órdenes tienen?
Podríamos hacer esto todo el día, pero ahora que tiene Sage a su disposición, varíe el orden de G cambiando el valor de n y estudie varios de estos resultados. Quizás podría intentar un grupo cíclico de orden 24 y comparar con el grupo simétrico \(S_4\) (arriba) que también tiene orden 24. ¿Se le ocurre alguna conjetura?
SubsecciónFunción Phi de Euler
Para sumar a nuestras funciones de teoría de números del Capítulo 2, notemos que Sage pone a nuestra disposición la función \(\phi\) de Euler como euler_phi().
Acá viene un experimento interesante que puede ejecutar múltiples veces.
¿Alguna otra conjetura? ¿Puede generalizar este resultado?