13 votos

Cuestión computacional sobre anillos locales finitos:

Sea $(A,\mathfrak{m})$ sea un anillo local artiniano con campo de residuos finito, que me complace suponer que es $\mathbf{F}_3$ . (En particular, $A$ tiene un número finito de elementos).

Me gustaría hacer algunos cálculos del tipo siguiente, como $I$ oscila entre todos los ideales de $A$ .

(0) Una forma de enumerar todos los ideales de $A$ .

(1) Para un ideal $I$ de $A$ calcula la longitud de $I/I^2$ .

(2) Para un ideal $I$ de $A$ calcular el ideal $J = \mathrm{Ann}(I)$ .

(3) Para un ideal $I$ de $A$ decida si $I$ es principal. (Calculando la longitud de $I/\mathfrak{m} I$ o de otro tipo).

El anillo $A$ se dará explícitamente como cociente de una serie de potencias sobre $W(\mathbf{F}_3) = \mathbf{Z}_3$ . Por ejemplo, $A$ puede ser dado como $\mathbf{Z}_3[[x]]/(27,9x,x^3)$ o $\mathbf{Z}_3[[x]]/(9,x^2)$ .

Mi pregunta: ¿Cuál es el paquete de álgebra computacional más adecuado para llevar a cabo estos cálculos? (Me gustaría algo que puede ser semi-automatizado para varios posibles $A$ .) Me interesaría incluso una muy simple como $\mathbf{Z}_3[[x]]/(9,x^2)$

EDIT 2: Parece que hay un consenso en los comentarios que este problema es mucho más manejable si $A$ es en realidad un álgebra sobre su campo de residuos. Por ejemplo, en MAGMA sólo es posible crear ideales y anillos de cocientes en anillos de polinomios univariantes sobre campos. Otros paquetes de álgebra computacional tienen problemas similares cuando el anillo de coeficientes no es un campo, aunque SINGULAR (por ejemplo) tiene alguna funcionalidad con polinomios en varias variables. Da la casualidad de que el problema que me interesaba estudiar sigue siendo de interés para tales campos.

5voto

Esto se ha desarrollado a partir de los comentarios de Sam Lichtenstein; seguramente parte (o todo) de lo que he escrito no es la programación más elegante (en el mejor de los casos), siéntete libre de mejorarlo. Uno puede hacer lo siguiente con MACAULAY2 (si copia y pega esto en el prompt MACAULAY2 debería funcionar:)

R = GF(2)[x,y]/(x^3,y^3); m = ideal(x,y); ModSquare = ideal -> length(ideal/(ideal*ideal)); Generators = ideal -> length(ideal/(ideal*m)); I := ideal(x^2 + y^2); J := ann(I); [Generators(I),Generators(J),ModSquare(I),ModSquare(J)]

La función ModCuadrado aplicada a un ideal $I$ calcula la longitud de $I/I^2$ y la función Generadores calcula el número mínimo de generadores de $I$ . Del mismo modo, ann calcula el aniquilador de $I$ . A partir de aquí podemos calcular que $I$ es principal, $J$ tiene dos generadores, y ambos $I/I^2$ y $J/J^2$ tienen longitud $4$ . Estas funciones sólo funcionan para ideales homogéneos. Siguiendo la sugerencia de James Parson, también consideré MAGMA (de nuevo con la restricción a álgebras afines), y lo siguiente funciona para ideales arbitrarios:

A:=AffineAlgebra < GF(2),x,y|x^3,y^3 > ; x:=A.1; y:=A.2; AssignNames(~A,["x","y"]); m:=ideal < A|x,y > ; Minus := func < ideal | Dimension(quo < A|ideal > ) > ; Generators := func < ideal | Minus(ideal*m) - Minus(ideal) > ; ModSquare := func < ideal | Minus(ideal*ideal) - Minus(ideal) > ; ann := func < ideal | Annihilator(ideal) > ; I:=ideal<A|x^2+y^2>; J:=ann(I); [Generators(I),Generators(J),ModSquare(I),ModSquare(J)];

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