8 votos

Resolución del problema de pertenencia a un campo mediante bases de Grobner

¿Existe una forma sencilla de determinar si un conjunto de elementos de un campo genera todo el campo o sólo un subcampo?

En concreto, tengo un subcampo de $k(x,y)$ descrito en términos de un conjunto canónico de generadores, y tengo otros dos elementos de este anillo que creo que deberían ser suficientes para generar el conjunto, pero necesito demostrarlo.

En particular, el artículo de Muller-Quade y Steinwandt "Basic Algorithms for Rational Function Fields" ( http://www.sciencedirect.com/science/article/pii/S0747717198902462 ) parece describir exactamente lo que me gustaría hacer (comprobar si los generadores canónicos están dentro del campo generado por mis dos elementos, y escribir uno en términos del otro) pero no estoy lo suficientemente familiarizado con la notación que utilizan en sus algoritmos como para seguirlos realmente.

¿Se ha implementado este tipo de algoritmo en algún programa de álgebra computacional (por ejemplo, Magma o Maple) que yo pueda utilizar, o hay alguna otra forma de hacerlo?

Si alguien pudiera arrojar algo de luz sobre lo que ocurre en el artículo anterior, también sería de agradecer, ya que me interesaría generalizar el enfoque al anillo de división q (es decir, funciones racionales en dos $q$ -variables de desplazamiento, $q \in k^{\times}$ ) si es posible.

10voto

sickgemini Puntos 2001

En teoría, el software de la base de Groebner puede hacerlo. No sé si existe un paquete estándar para este fin, ni qué problemas prácticos pueden surgir. He aquí la teoría:

Su objetivo es el siguiente. Se le dan funciones racionales $r_1$ , $r_2$ , ..., $r_n$ en $x$ y $y$ . Te gustaría saber si hay polinomios $f(t_1, \ldots, t_n)$ y $g(t_1,\ldots, t_n)$ tal que $f(r_1, \ldots, r_n) - g(r_1, \ldots, r_n) x =0$ y lo mismo para $y$ en lugar de $x$ .

Nuestra estrategia será la siguiente: Mapa $k[t_1, \ldots, t_n, u] \to k(x,y)$ por $t_i \mapsto r_i$ , $u \mapsto x$ . Sea $I$ sea el núcleo de este mapa.

Comprobaremos si $I$ contiene un elemento cuyo grado en $u$ es $1$ . En realidad tenemos que hacer algo más que eso: tenemos que encontrar un elemento $f u - g$ donde $f$ y $g$ no están en $I$ pero la tecnología Grobner lo hará por nosotros.

El problema se divide en dos partes

Conseguir el ideal $I$ Si el $r_i$ son a su vez polinomios en $x$ y $y$ puede ver un ejemplo práctico de cómo hacerlo con bases Grobner en la documentación de Macualay aquí . Macaulay también proporciona una función núcleo que hace esto; no sé qué ventajas tiene usar kernel o hacerlo a mano.

Si $r_i=p_i/q_i$ mi primera idea es definir el anillo $S = k[x,y,s_1, \ldots, s_n]/(q_i(x,y) s_i -1)$ y mapa $k[t_1, \ldots, t_n]$ a $S$ por $t_i \mapsto p_i(x,y) s_i$ y adaptar los métodos de la base de Grobner a este caso. Si está trabajando en Macaulay específicamente, entonces Macaualy tiene una clase FractionField con Ring como clase antecesora, lo que significa que debería poder hablar directamente de mapas $k[t_1, \ldots, t_n,u] \to k(x,y)$ y no sólo sobre mapas a cocientes de anillos de polinomios. Sin embargo, la documentación de FractionField advierte de que su uso afecta al rendimiento, por lo que es mejor invertir sólo los elementos que se necesiten.

Comprobar si $I$ contiene un elemento de grado $1$ en $u$ La forma de hacerlo en teoría es calcular una base de Grobner de $I$ en orden lex, poniendo la variable $u$ primero. Si la respuesta contiene un elemento $fu-g$ de grado $1$ entonces esta es su respuesta; si no, entonces $x$ no puede escribirse como una expresión racional en $r_i$ . Tenga en cuenta que $f$ y $g$ no estará en $I$ como, si lo fueran, $fu-g$ se eliminaría de la base Grobner por redundante.

Pero las órdenes a lex plazo son notoriamente lentas, por lo que podría haber una forma mejor de hacerlo en la práctica. Esperemos que pronto aparezca alguien que entienda estas cuestiones.

3voto

Everette Mills Puntos 106

Entre la respuesta de David y lo mucho que he mirado el artículo que he enlazado más arriba, creo que he averiguado lo que está pasando, así que he pensado en publicar un resumen de su método aquí también por si alguien más tiene un problema similar. Me estoy centrando aquí en $how$ utilizar su algoritmo, no $why$ funciona: Me resultó mucho más fácil seguir la teoría una vez que supe adónde iba.

Su configuración es la siguiente: dado un campo $k(x_1,\dots, x_n) = k(\mathbf{x})$ y un conjunto de elementos $\mathbf{g} = \{g_1, \dots, g_m\}\subset k(\mathbf{x})$ podemos formar el campo $k(\mathbf{g})$ generado por los elementos de $\mathbf{g}$ y luego pregunta: dado $f \in k(\mathbf{x})$ ¿tenemos $f \in k(\mathbf{g})$ y si es así, ¿cómo podemos escribir $f$ ¿en cuanto a los generadores? El objetivo de los autores es responder a esta pregunta sin recurrir a la ordenación lex, que, como ya se ha dicho, puede ser muy lenta.

Así que $g_i = n_i/d_i$ e introducir una nueva variable $T_i$ para cada $g_i$ . Reúne todos los divisores primos de cada uno de los denominadores $d_i$ en un conjunto $\{p_1, \dots, p_r\}$ (eliminar las repeticiones) e introducir una nueva variable $Y_i$ para cada $p_i$ .

En el anillo polinómico $k[Y_1, \dots, Y_r, x_1, \dots, x_n, T_1, \dots, T_m]$ definir el ideal $I=\langle n_1-T_1d_1, \dots, n_m-T_md_m, Y_1p_1-1,\dots,Y_rp_r-1\rangle$ y calcular una base de Groebner de $I$ . La única restricción para hacer el pedido es que debe tener $\textbf{Y} >> \textbf{x} >> \textbf{T}$ , dentro de cada bloque pueden ordenarse como se desee.

Elimine todos los términos que impliquen $Y_i$ de la base de Groebner; llame al conjunto resultante $G$ . Sea $H$ sea el subconjunto de $G$ que incluya términos sólo en el $T_i$ : este puede estar vacío. (Este paso parece ocuparse de las sinzigias entre los generadores, dándote el resultado más simple al final y evitando dividir por cero en cualquier punto).

Sea $S=\langle H \rangle$ y definir $L = Q(k[\mathbf{T}]/S)$ por lo que si $H$ estaba vacío esto es sólo $k(\mathbf{T})$ . Sea $\pi$ sea la incrustación natural $k[\mathbf{T}][\mathbf{x}] \hookrightarrow L[\mathbf{x}]$ y $G' := \pi(G)$ .

Si $f=n_f/d_f \in k(\mathbf{x})$ es el elemento de interés, introduzca una nueva variable $A$ (así que ahora estamos en el ring $L[\mathbf{x},A]$ ) y reducir el polinomio $n_f-Ad_f$ a la forma normal con respecto a la base de Groebner $G'$ debe obtener una expresión $N-AD$ .

Opcionalmente en este punto, puede reducir $N$ y $D$ a su forma más simple mediante la reducción de sus numeradores wrt $\pi(H)$ Recuerde que $N,D \in L[\mathbf{x}]$ donde $L$ es una localización de $k[\mathbf{T}]$ por lo que podrían ser funciones racionales en el $T_i$ .

Si $D = 0$ entonces $f \not\in k(\mathbf{g})$ . Si $D \neq 0$ entonces resuelve $N-AD = 0$ es decir $A=N/D$ . Si $N/D \not\in k(\mathbf{T})$ entonces $f \not\in k(\mathbf{g})$ de lo contrario $f=N(g_1, \dots, g_m)/D(g_1,\dots,g_m)$ .


¡Uf! Espero que quede bastante claro si sólo quieres aplicar el algoritmo; si quieres entender por qué funciona cada paso, el artículo al que enlazaba en la pregunta tiene todos los detalles técnicos. Sospecho que es esencialmente el mismo enfoque que la respuesta de David, con algunos ajustes para evitar necesariamente el uso de la ordenación lex y para hacer frente a las relaciones entre el conjunto de generadores.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X