Suppose that R is a ring such that (pe-1)KR is linearly equivalent to zero (this is the case, for example, if R is ℚ-Gorenstein with index not divisible by p). Then if we write R = S/I, where S is a polynomial ring, we have that I[pe]:I = uS + I[pe] for some u ∈S. By Fedder’s criterion, this element u represents the generator of the R1/pe-module Hom(R1/pe,R). For example, if I is principal, generated by f, then we may take u = f pe-1.
The function QGorensteinGenerator produces the element u described above. If the user does not specify a positive integer e, it assumes e = 1.
i1 : S = ZZ/3[x,y,z]; |
i2 : f = x^2*y - z^2; |
i3 : I = ideal f; o3 : Ideal of S |
i4 : R = S/I; |
i5 : u = QGorensteinGenerator(1, R) 4 2 2 2 4 o5 = x y + x y*z + z o5 : S |
i6 : u % I^3 == f^2 % I^3 o6 = true |
If Macaulay2 does not recognize that I[pe]:I / I[pe] is principal, an error is thrown, which will also happen if R is not ℚ-Gorenstein of the appropriate index. Note that in the nongraded case Macaulay2 is not guaranteed to find minimal generators of principally generated modules.