next | previous | forward | backward | up | top | index | toc | Macaulay2 web site
Divisor :: reflexify(..., KnownDomain => ...)

reflexify(..., KnownDomain => ...) -- changes the strategy of reflexify the case when the ring is a normal domain

Synopsis

Description

For ideals, if KnownDomain is false (default value is true), then the function will check whether it is a domain. If it is a domain (or assumed to be a domain), it will reflexify using a strategy which can speed up computation, if not it will compute using a sometimes slower method which is essentially reflexifying it as a module. See reflexify for an example of the speed difference for ideals compared to modules.

Consider the following example showing the importance of making the correct assumption about the ring being a domain.

i1 : R = QQ[x,y]/ideal(x*y);
i2 : I = ideal(x,y);

o2 : Ideal of R
i3 : reflexify(I, KnownDomain=>false)

o3 = ideal (y, x)

o3 : Ideal of R
i4 : reflexify(I, KnownDomain=>true)

o4 = ideal 1

o4 : Ideal of R
i5 : J = ideal(x-y, x+y);

o5 : Ideal of R
i6 : reflexify(J, KnownDomain=>false)

o6 = ideal (y, x)

o6 : Ideal of R
i7 : reflexify(I, KnownDomain=>true)

o7 = ideal 1

o7 : Ideal of R

In the above, when KnownDomain=>true (an incorrect assumption), this function returns the incorrect answer for I.

Further information

See also