7 votos

Cálculo misterioso de un cociente de anillo en GAP

Quiero hacer algunos cálculos con finito de los anillos en la BRECHA. He encontrado una contradicción que no puedo explicar.

Cómo crear finito anillos en la BRECHA de uso de la estructura de las constantes se explica aquí en la página 45; también aquí. Así que para construir el ejemplo anillo de $\mathbb{Z}/2^n [X]/\langle X^2,2X \rangle$, he escrito la siguiente función en la BRECHA:

ExampleRing := function(n)
local T,O;
T := EmptySCTable(2,0);       # 2 generators e,x as Z-module
O := [2^n,2];                 # ord(e)=2^n and ord(x)=2
SetEntrySCTable(T,1,1,[1,1]); # e*e = 1*e
SetEntrySCTable(T,1,2,[1,2]); # e*x = 1*x
SetEntrySCTable(T,2,1,[1,2]); # x*e = 1*x
SetEntrySCTable(T,2,2,[]);    # x*x = 0
return RingByStructureConstants(O,T,["e","x"]);
end;

Dentro de $\mathrm{ExampleRing}(4) = \mathbb{Z}/2^4 [X]/\langle X^2,2X \rangle$ considera que el ideal de la $\langle 2^2 - X \rangle$. El cociente del anillo es$\mathbb{Z}/2^3$, ¿verdad? Pero cuando me calcular el cociente con la BRECHA, se produce la $\mathbb{Z}/4 [X]/\langle X^2,2X \rangle$ lugar!

gap> R := ExampleRing(4);
<ring with 2 generators>
gap> AssignGeneratorVariables(R);
#I  Assigned the global variables [ e, x ]
gap> Q := R / Ideal(R,[2^2 * e - x]);
<ring with 2 generators>
gap> Elements(Q);
[ 0*q1, q2, q1, q1+q2, 2*q1, 2*q1+q2, -q1, -q1+q2 ]
gap> One(Q);
q1
gap> 4*One(Q);
0*q1
gap> AssignGeneratorVariables(Q);
#I  Assigned the global variables [ q1, q2 ]
gap> 2*q2;
0*q1
gap> q2^2;
0*q1

De modo que a) mi código es incorrecto, b) mi cálculo del cociente es malo, o c) la BRECHA de la implementación que está mal. Podría alguien aclarar esto?

También hay otros sistemas de álgebra computacional que puede calcular con anillos finitos de la forma $\mathbb{Z}/n [X] / \langle X^2,a+bX \rangle$?

Edit: al Parecer la BRECHA de la implementación que está mal o yo no lo uso correctamente. Aquí es un ejemplo muy simple: yo defino $\mathbb{Z}/8$ con estructura constantes y el cociente a cabo el ideal generado por a $2$. Esto debería ser $\mathbb{Z}/2$, pero la BRECHA se calcula el $\mathbb{Z}/4$:

gap> T := EmptySCTable(1,0);;
gap> SetEntrySCTable(T,1,1,[1,1]);
gap> R := RingByStructureConstants([8],T,["e"]);
<ring with 1 generators>
gap> AssignGeneratorVariables(R);
#I  Assigned the global variables [ e ]
gap> Elements(R);
[ 0*e, e, 2*e, 3*e, 4*e, 5*e, 6*e, -e ]
gap> e*e;
e
gap> I := Ideal(R,[2*e]);
<two-sided ideal in <ring with 1 generators>, (1 generators)>
gap> Elements(I);
[ 0*e, 2*e, 4*e, 6*e ]
gap> Q := R/I;
<ring with 1 generators>
gap> Elements(Q);
[ 0*q1, q1, 2*q1, -q1 ]

9voto

ahulpke Puntos 2612

Sí, se trata de dos errores (estúpidos) que solucionaré en la próxima versión. Gracias por informar Pondré un parche temporal (solo lea el archivo) en https://www.dropbox.com/s/aprqfottc4pb6ni/quotringfix.g?dl=0

Disculpas por el problema: no me sorprendería si fuera la primera persona que realmente usa el código.

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