next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Divisor :: reflexify

reflexify -- calculate the double dual of an ideal or module Hom(Hom(M, R), R)

Synopsis

Description

Get the reflexification or double dual (in the case of a normal ring, S2-ification) of an ideal I or module M. Recall the double dual is defined to be Hom(Hom(M, R), R).

i1 : R = QQ[x,y,z]/ideal(x^2-y*z);
i2 : m = ideal(x,y,z);

o2 : Ideal of R
i3 : reflexify(m)

o3 = ideal 1

o3 : Ideal of R
i4 : I = ideal(x,y);

o4 : Ideal of R
i5 : reflexify(I)

o5 = ideal (y, x)

o5 : Ideal of R
i6 : reflexify(I^2)

o6 = ideal y

o6 : Ideal of R
i7 : reflexify(I^3)

             2
o7 = ideal (y , x*y)

o7 : Ideal of R

We also have an example of reflexifying a module.

i8 : R = QQ[x,y,z]/ideal(x^2-y*z);
i9 : m = ideal(x,y,z);

o9 : Ideal of R
i10 : prune reflexify(m*R^2)

       2
o10 = R

o10 : R-module, free
i11 : I = ideal(x,y);

o11 : Ideal of R
i12 : prune reflexify(I*R^1)

o12 = cokernel {1} | x  -y |
               {1} | -z x  |

                             2
o12 : R-module, quotient of R
i13 : prune reflexify(I^2*R^1)

       1
o13 = R

o13 : R-module, free, degrees {1}

Generally speaking, it is faster to reflexify ideals as opposed to modules. Consider the following example of a point on an elliptic curve.

i14 : R = QQ[x,y,z]/ideal(-y^2*z +x^3 + x^2*z + x*z^2+z^3);
i15 : I = ideal(x-z,y-2*z);

o15 : Ideal of R
i16 : J = I^21;

o16 : Ideal of R
i17 : time reflexify(J);
     -- used 0.438681 seconds

o17 : Ideal of R
i18 : time reflexify(J*R^1);
     -- used 0.792866 seconds

See also

Ways to use reflexify :