Práctica 1 de SAGE
Veamos algunas funciones sobre enteros, y algunas propiedades de los objetos SAGE (Python). Vamos a empezar por la asignación: .
Veamos su valor:
Otras funciones sobre enteros:
Doble asignación
Máximo común divisor
Identidad de Bézout: (usando triple asignación)
Congruencias:
Las funciones que hemos visto son “globales”. Pyton tiene otro tipo de funciones, las que son propias de cada objeto.
Una forma de encontrar un número primo de cifras (o quizá ):
Más directo, y usando la ayuda
A veces hay funciones “repetidas”
Más sobre congruencias
"parece" un entero, pero en realidad es otra cosa, un "entero modular"
Un poco más claro:
Otra forma de definir el mismo , usando el anillo
Así se “fuerza” a convertir un entero en un elemento del anillo:
Algunas funciones sobre anillos
La lista de las unidades:
Como es una unidad, tiene inverso
Pero ...
## Anillos de polinomios
Veamos un anillo con algo más de estructura: polinomios en una variable
Cociente y resto:
Grupos simétricos
Veamos primero cómo se definen los grupos simétricos en SAGE.
Para ver los elementos de G, podemos pedirle que nos los enseñe en una lista
SAGE presenta los elementos como producto de ciclos disjunto. Para manejar los elementos del grupo, podemos pedirle los elementos de la lista. SAGE numera las listas EMPEZANDO POR EL ELEMENTO CERO.
Cuidado! Sage compone de izquierda a derecha, y no como estamos habituados de derecha a izquierda!
Si queremos dar un elemento de S_4 directamente, debemos escribirlo como una lista de ciclos disjuntos [C_1, C_2, ..., C_k]. Tenemos que especificar que esta lista debe mirarse como un elemento de G, usando la expresión G(...).
Operaciones con elementos:
Para ver qué cosas se pueden hacer con sigma, tecleamos sigma. y utilizamos la tecla autocompletar:
Si queremos información sobre un comando concreto, lo escribimos, seguido por una interrogación ?
Las permutaciones son funciones, y, como tales, se pueden evaluar:
Subgrupos
Calculamos todos los subgrupos de G.
Para definir un subgrupo, especificamos los generadores.
De nuevo, podemos pedirle a SAGE que nos de una lista con los elementos de H.
También podemos pedirle un conjunto de generadores.
SAGE recuerda que H está definido como un subgrupo de G.
Predicados para grupos
Un comando muy útil es cayley_table, que nos da la tabla de multiplicar del grupo
Como podéis ver, SAGE ha reemplazado los elementos por letras. Para saber a qué elemento se corresponde cada letra, podéis usar:
Algunos predicados relacionados con la asignatura de Estructuras Algebraicas
Cuando trabajamos con un grupo muy grande, la cantidad de subgrupos es enorme. A veces puede ser útil tener una lista de subgrupos salvo conjugación.
Grupo cociente
Para construir grupos cociente, lo primero que tenemos que hacer es encontrar los subgrupos normales de un grupo
SAGE nos da un grupo isomorfo al grupo cociente, pero no conserva el morfismo natural G -> G/V.
Luego sabemos por teoría de grupos que Q debe ser isomorfo al grupo simétrico de 3 elementos.
Homomorfismos
Para definir homomorfimos entre grupos de permutaciones o subgrupos de éstos, debemos dar una lista ordenada con las imagenes de los generadores del grupo de origen
Pero, cuidado! SAGE "no se da cuenta" si definimos algo que no tiene sentido...
Grupos abelianos
Para trabajar con grupos abelianos, SAGE tiene comandos específicos: El comando AbelianGroup([a, b, ..., l) define el grupo producto de grupos cíclicos C_a x C_b x ... x C_l.
Otros grupos
Ejercicios
Construye un homomorfismo sobreyectivo de S_4 en C_2. (Ayuda: utiliza la paridad de las permutaciones).
Encuentra todos los cocientes de S_4 de orden 6. ¿Cuáles son abelianos?
Encuentra todos los grupos abelianos de orden 72 salvo isomorfismo.