[skip-to-content]
\(\newcommand{\identity}{\mathrm{id}} \newcommand{\notdivide}{{\not{\mid}}} \newcommand{\notsubset}{\not\subset} \newcommand{\lcm}{\operatorname{lcm}} \newcommand{\gf}{\operatorname{GF}} \newcommand{\inn}{\operatorname{Inn}} \newcommand{\aut}{\operatorname{Aut}} \newcommand{\Hom}{\operatorname{Hom}} \newcommand{\cis}{\operatorname{cis}} \newcommand{\chr}{\operatorname{char}} \newcommand{\Null}{\operatorname{Null}} \renewcommand{\gcd}{\operatorname{mcd}} \renewcommand{\lcm}{\operatorname{mcm}} \renewcommand{\deg}{\operatorname{gr}} \newcommand{\lt}{<} \newcommand{\gt}{>} \newcommand{\amp}{&} \)

Sección11.5Sage

Sage es capaz de crear homomorfismos (y por ende, isomorfismos y automorfismos) entre grupos finitos de permutaciones. Hay pocos comandos disponibles para manipular estas funciones, pero aún así podremos ilustrar muchas de las ideas de este capítulo.

SubsecciónHomomorfismos

La principal forma de crear un homomorfismo es especificando las imágenes para el conjunto de generadores del dominio. Considere grupos cíclicos de órdenes \(12\) y \(20\text{:}\)

\begin{align*} G &= \{a^i\vert a^{12}=e\} & H &= \{x^i\vert x^{20}=e\} \end{align*}

y defina un homomorfismo simplemente especificando la imagen para un generador de \(G\text{,}\) y extendiendo la función al resto del grupo via la propiedad de preservación de la operación de un homomorfismo.

\begin{align*} \phi: G\rightarrow H, &\quad\phi(a)=x^5\\ \Rightarrow &\quad\phi(a^i) = \phi(a)^i = (x^5)^i = x ^{5i} \end{align*}

El constructor PermutationGroupMorphism requiere los dos grupos, luego una lista de imágenes para cada generador (¡en orden!), y entonces creará el homomorfismo. Note que podemos usar el resultado como una función. En el ejemplo abajo, primero verificamos que C12 tiene un único generador (ninguna novedad), el cuál enviamos a un elemento particular de orden \(4\) en el codominio. Sage entonces construye el único homomorfismo consistente con este requisito.

Note que el elemento c debe por lo tanto estar en el núcleo de phi.

Podemos calcular el subgrupo del dominio que es el núcleo, y en este caso un grupo cíclico de orden \(3\) al interior del grupo cíclico de orden \(12\text{.}\) Podemos calcular la imagen de cualquier subgrupo, pero acá construiremos la imagen homomorfa completa entregándole el dominio completo al método .image(). La imagen es un subgrupo cíclico de orden \(4\) dentro del grupo cíclico de orden \(20\text{.}\) Además verificaremos el Primer Teorema de Isomorfía.

Ahora un ejemplo ligeramente más complicado. El grupo dihedral \(D_{20}\) es el grupo de simetrías de un polígono regular de 20 lados. Dentro de este grupo hay un subgrupo que es isomorfo al grupo de simetrías de un pentágono regular. ¿Es una sorpresa o es obvio? Acá hay una forma de precisar la afirmación de que “\(D_{20}\) contiene una copia de \(D_{5}\text{.}\)”

Construimos el dominio y encontramos sus generadores, así sabemos cuántas imágenes proveer en la definición del homomorfismo. Después construimos el codominio, en el que construiremos imágenes. Nuestra elección acá es enviar una reflexión en una reflexión, y una rotación en una rotación. Pero las rotaciones deben ambas tener orden \(5\text{,}\) y ambas ser rotaciones en \(72\) grados.

Como el núcleo es trivial, rho es una función 1-1 (ver el Ejercicio 11.3.18). Pero más importante, por el Primer Teorema de Isomorfía, G es isomorfo a la imagen del homomorfismo. Calcularemos la imagen para verificar la afirmación.

Simplemente dando una lista de imágenes para los generadores del dominio no es una garantía de que la función pueda extenderse a un homomorfismo. Para empezar, el orden de cada imagen debe dividir al orden de la preimagen correspondiente. (¿Puede demostrar esto?) Similarmente, si el dominio es abeliano, entonces la imagen debe también ser abeliana, así en este caso las imágenes no debiesen generar un subgrupo no abeliano. Por ejemplo, no hay homomorfismos de un grupo cíclico de orden \(7\) a un grupo cíclico de orden \(4\) (salvo la función trivial que lleva a todos los elementos a la identidad). Para ver esto, considere los posibles órdenes del núcleo, y de las dos posibilidades, vea que una es imposible y que la otra se realiza con el homomorfismo trivial. Desafortunadamente, Sage actúa como si no hubiera nada malo en crear un homomorfismo entre estos dos grupos, pero lo que Sage crea es inútil y produce errores si trata de usarlo.

En lugar de crear homomorfismos por nosotros mismos, en ciertas situaciones Sage sabe de la existencia de homomorfismos naturales y los creará para nosotros. Un caso de estos es la construcción del producto directo. Dado un grupo G, el método .direct_product(H) creará el producto directo \(G\times H\text{.}\) (Este no es el mismo comando que la función direct_product_permgroups() de antes.) Este comando no solo crea el producto directo, sino que además construye cuatro homomorfismos, uno con dominio \(G\text{,}\) uno con dominio \(H\) y dos con dominio \(G\times H\text{.}\) Así la salida consiste de cinco objetos, el primero de los cuales es el grupo en sí, y los restantes son homomorfismos. Mostraremos un ejemplo acá y dejaremos una investigación más exhaustiva para los ejercicios.