El Teorema Fundamental de los Grupos Cíclicos proporciona garantías sobre la existencia de subgrupos cíclicos dentro de un grupo cíclico.
En el contexto de la Number Theoretic Transform (NTT) de polinomios sobre un campo finito, y también la operación FRI en ZK-STARKs, necesitamos subgrupos multiplicativos cuyo orden (número de elementos) sea una potencia de dos. El Teorema Fundamental de los Grupos Cíclicos nos permite determinar rápidamente si un campo finito particular tiene un subgrupo multiplicativo con ese orden o no.
Cubriremos lo siguiente como preliminares, para luego pasar al Teorema Fundamental de los Grupos Cíclicos:
- Definición de un Subgrupo
- Orden de un Grupo o Subgrupo
- Potencias de un Elemento en un Grupo Multiplicativo
- Subgrupos Cíclicos, Grupos Cíclicos y sus Generadores
1. Definición de un Subgrupo
Dado un grupo , un subconjunto de es un subgrupo de si forma un grupo con respecto a la operación de grupo en . En otras palabras, si nos restringimos a los elementos de pero seguimos usando la operación de grupo de , todos los criterios para un grupo se siguen cumpliendo. Lo más importante es que la operación debe ser cerrada en , por lo que siempre que apliquemos la operación en dos elementos de , debemos obtener otro elemento de .
Ejemplo de Subgrupos
El conjunto de enteros módulo 8 bajo la suma forma un grupo . y son ambos subgrupos de . Por otro lado, no lo es, porque
2. Orden de un Grupo o Subgrupo
El orden de un grupo , denotado por , es su número de elementos. Si un grupo no es finito, se dice que su orden es infinito.
Ejemplo para el orden de un grupo y subgrupo
Considera el grupo del ejemplo anterior. El orden de es 8, lo que significa que (ya que hay exactamente 8 elementos en el grupo). Además, el orden del subgrupo es 4 (es decir, ).
3. Potencias de un elemento en un grupo multiplicativo
Si , las potencias del elemento , denotadas por , forman el conjunto . Por ejemplo, considera el grupo de enteros distintos de cero bajo la multiplicación módulo 7, . Las potencias del elemento en son las siguientes:
Dado que:
¿Qué hay de ?
Por lo tanto, . Para cada potencia con , el resultado será uno de los elementos que ya están en esta lista.
Ejercicio: Encuentra el conjunto generado por el elemento .
Las potencias de un elemento arbitrario forman un Subgrupo
Sea un elemento arbitrario en . El conjunto de potencias del elemento forma un subgrupo. En otras palabras,
es un subgrupo de .
Demostración. Ver el apéndice
4. Subgrupos Cíclicos, Grupos Cíclicos y sus Generadores
Sea un elemento arbitrario en , entonces el subgrupo se denomina subgrupo cíclico de generado por . Por ejemplo, considera el grupo de enteros distintos de cero bajo la multiplicación módulo 7, . El subgrupo cíclico generado por el elemento es:
Ejercicio: Encuentra el subgrupo generado por el elemento .
Definición de un Grupo Cíclico
Sea un elemento arbitrario en . Si , entonces decimos que es un grupo cíclico y que es un generador de . En otras palabras, un grupo es cíclico si contiene al menos un elemento que genera todos los elementos del grupo.
Ejemplo de Grupo Cíclico y Generadores
Considera el grupo de enteros distintos de cero bajo la multiplicación módulo 7, . Dado que , como se mostró anteriormente, entonces es un grupo cíclico y es un generador de .
Ten en cuenta que , lo que significa que el elemento no es un generador de , sino que 2 genera un subgrupo de .
Ejercicio: Determina si es un generador de
Los Generadores de los Grupos Cíclicos No Son Necesariamente Únicos
Los grupos cíclicos tienen al menos un generador, pero el generador no tiene que ser único. En otras palabras, un grupo cíclico puede tener múltiples generadores, cualquiera de los cuales genera el grupo entero. Lo mismo ocurre con los subgrupos cíclicos.
Como viste en el ejemplo y ejercicio anteriores, los elementos y son ambos generadores del grupo .
Como otro ejemplo, considera el grupo de enteros distintos de cero bajo la multiplicación módulo 5. Es decir, . Los elementos y generan todo el grupo.
El Teorema Fundamental de los Grupos Cíclicos Finitos
El Teorema Fundamental de los Grupos Cíclicos Finitos hace tres afirmaciones. Sea un grupo cíclico finito, y sea un subgrupo de .
- es necesariamente finito y cíclico (lo que significa que tiene un generador).
- El orden de (el número de elementos que tiene) es un factor del orden de . En otras palabras, el orden de divide el orden de . Por ejemplo, supongamos que el orden de es 6. Automáticamente sabemos que un subgrupo de orden 5 no puede existir, ya que 5 no divide a 6.
- Si es el orden de y divide a , entonces un subgrupo de tamaño necesariamente existe y es único. De hecho, podemos encontrar un generador para él inmediatamente: si es un generador de , entonces es un generador para un subgrupo de tamaño . Este subgrupo de tamaño es igual a . Mostraremos ejemplos de esto en breve.
Conexión con el Teorema de Lagrange
La afirmación (2) del Teorema Fundamental de los Grupos Cíclicos Finitos se cumple para cualquier grupo finito , incluso si no es cíclico. Este resultado general se conoce como el Teorema de Lagrange.
Por brevedad, llamaremos a esto el Teorema Fundamental de los Grupos Cíclicos, en el entendido de que estamos tratando con grupos finitos.
Ejemplos de Uso del Teorema Fundamental de los Grupos Cíclicos
Usemos bajo la multiplicación módulo 7 como nuestro grupo cíclico. Ya hemos demostrado que genera todo el grupo.
El subgrupo de orden 1
Usando el Teorema Fundamental de los Grupos Cíclicos, sabemos que tiene un subgrupo de orden 1, ya que 1 divide a 6. Ahora encontremos un generador para este subgrupo. Dado que , tenemos . El elemento identidad es claramente un generador del subgrupo de tamaño uno.
El subgrupo de orden 2
Ahora encontremos el subgrupo de tamaño 2. Sabemos que existe porque 2 divide a 6. Aquí, tenemos , , y . Reemplazando en la fórmula, obtenemos . El elemento genera el subgrupo de orden 2 con elementos .
El subgrupo de orden 3
Como 3 divide a 6, existe un subgrupo de orden 3. Además, el elemento es un generador para este subgrupo,
El subgrupo de orden 4, 5
No hay subgrupos de orden 4 y 5 porque estos números no dividen a 6.
El subgrupo de orden 6
Como 6 divide a 6, existe un subgrupo de orden 6. Además, es un generador de este subgrupo:
Ejercicio: Considera el grupo con elementos bajo la multiplicación módulo 11.
- Encuentra un generador para este grupo.
- El grupo tiene un subgrupo de orden 5, ya que 5 divide el orden de , que es 10. Encuentra un generador para este subgrupo y calcula el subgrupo que genera.
Subgrupo Multiplicativo de Orden en un Campo Finito
Podemos encontrar subgrupos multiplicativos de un orden específico en un campo finito. Primero, veamos la definición de los campos finitos:
Por definición, un campo consiste de dos grupos abelianos (los operadores binarios son conmutativos):
- Grupo aditivo: , el cual es abeliano y finito en un campo finito.
- Grupo multiplicativo: (donde ), el cual también es abeliano y finito en un campo finito.
Ten en cuenta que denota un campo con elementos, mientras que (el grupo multiplicativo de ) tiene elementos.
En el siguiente teorema, vemos que todo campo finito necesariamente contiene un subgrupo multiplicativo de orden (omitiendo el ).
Teorema 1: El Grupo Multiplicativo es Cíclico de Orden .
Si es un campo finito con orden , entonces su grupo multiplicativo es cíclico de orden .
El hecho de que forma un grupo de orden se deduce directamente de la definición de un campo finito.
Dado que probar la ciclicidad del grupo multiplicativo nos llevaría más allá del alcance de este artículo, lo tomaremos como un hecho dado.
Un grupo cíclico tiene un generador, por lo tanto sabemos que existe algún tal que
Elementos Primitivos en un Campo Finito (Generadores)
En la teoría de campos, un elemento primitivo de un campo finito es un generador del grupo multiplicativo del campo. El elemento en el Teorema 1 es un elemento primitivo en .
El siguiente código en Python utiliza la biblioteca galois para identificar los elementos primitivos (generadores) en .
import galois
GF = galois.GF(7)
primitive_elements = GF.primitive_elements
print("Primitive elements:", primitive_elements)
# Primitive elements: [3 5]
# Alternatively, find a single primitive element
# suitable when there are a lot of primitive elements
primitive_element = GF.primitive_element
print("A primitive element:", primitive_element)
# A primitive element: 3
Ejercicio: Usa Python para encontrar todos los elementos primitivos del grupo multiplicativo del campo .
Corolario 1: Prueba de Subgrupo de Orden — Existencia a través de Divisores en un Campo Finito
Un corolario útil es que podemos verificar rápidamente si un subgrupo de un cierto tamaño existe o no, al enumerar todos los divisores de . Por ejemplo, considera el campo , que tiene un grupo multiplicativo con orden 40. Podemos verificar rápidamente que tiene un subgrupo de tamaño 8 porque 8 divide a 40.
Como otro ejemplo, considera el campo , cuyo grupo multiplicativo tiene un orden de 16. Dado que 8 divide a 16, tiene un subgrupo de tamaño 8. De manera similar, tiene un subgrupo de tamaño 4, porque 4 divide a 16, y, como podrías adivinar, también tiene un subgrupo de tamaño 2.
Para encontrar un generador para un subgrupo multiplicativo de un tamaño dado, podemos utilizar la afirmación (3) del Teorema Fundamental anterior. El tamaño de es , así que si tenemos un elemento primitivo y queremos un subgrupo multiplicativo de orden , podemos calcular para cualquier elemento primitivo .
Ejemplo Todo en Uno
Considera el campo finito . Para un dado, queremos encontrar un subgrupo multiplicativo de orden en utilizando el Teorema Fundamental de los Grupos Cíclicos Finitos.
Ya que el subgrupo multiplicativo tiene orden , sabemos por la afirmación (2) del Teorema Fundamental de los Grupos Cíclicos que tiene subgrupos de órdenes 1, 2, 4, 8 y 16, siendo el último el grupo mismo.
Estos subgrupos son cíclicos, por lo que cada uno tiene al menos un generador. Por la afirmación (3) del teorema, sabemos que un generador para cada subgrupo está dado por , donde es un generador de todo el grupo multiplicativo y es el tamaño de nuestro subgrupo deseado.
Por lo tanto, para generar los subgrupos, el primer paso es encontrar un generador de , que es un elemento primitivo de .
El generador de
Recuerda del Teorema 1 que es un grupo cíclico. Para demostrar que puede ser generado por el elemento , podemos calcular todas las potencias de de la siguiente manera:
¿Qué hay de ?
Puedes ver que para todo , el elemento es igual a uno de los de . También puedes ver que cada valor en {1,2,…,16} aparece en algún lugar de la lista de potencias de 3. Entonces, .
Este generador se puede encontrar en código Python con galois.primitive_elements.
import galois
GF = galois.GF(17)
primitive_element = GF.primitive_element
print("A primitive element:", primitive_element)
# A primitive element: 3
Encontrando el subgrupo de orden en
Supongamos que queremos determinar si existe un subgrupo multiplicativo de orden en el campo finito . Ten en cuenta que el grupo multiplicativo de tiene tamaño . Para , el grupo multiplicativo tiene elementos.
Recuerda por el Teorema Fundamental de los Grupos Cíclicos Finitos que dado que divide a (explícitamente, divide a 16), entonces es un generador y es un subgrupo de tamaño 4.
Por lo tanto, 13 es un generador para el subgrupo de tamaño 4 en y
Explícitamente, es el subgrupo.
Ejercicio: Calcula los subgrupos multiplicativos de orden y .
Resumen
- El objetivo es encontrar los subgrupos multiplicativos de tamaño en el campo .
- Si , entonces es un grupo cíclico, y es un generador de .
- Si es un campo finito de orden , entonces es un grupo cíclico de orden .
- El Teorema Fundamental de los Grupos Cíclicos establece que el campo finito tiene un subgrupo de tamaño si y solo si divide a . Además, un generador de este subgrupo es , donde es un generador del grupo multiplicativo .
Apéndice
Verificaremos las tres condiciones necesarias para que sea un subgrupo de .
Identidad: Dado que , entonces .
Clausura: Supongamos que . Entonces sabemos que y para algunos . Aplicar la operación de grupo da
Dado que , por lo tanto .
Inverso: Supongamos que . Entonces para algún ,
Dado que , entonces .
Ejercicios
¿Cuáles son todos los órdenes de los subgrupos multiplicativos de y un generador para cada subgrupo?
¿Cuáles son todos los órdenes de los subgrupos multiplicativos de y un generador para cada subgrupo?
¿Cuáles son todos los órdenes de los subgrupos multiplicativos de y un generador para cada subgrupo?