# reflexivePower -- computes a reflexive power of an ideal in a normal domain

## Synopsis

• Usage:
reflexivePower( n, I )
• Inputs:
• Optional inputs:
• Strategy => , default value IdealStrategy, specify the strategy passed to reflexify
• Outputs:

## Description

This function returns the $n$-th reflexive power of $I$. By definition this is the reflexification of $I^n$, or in other words, $Hom(Hom(I^n, R), R)$.

 i1 : R = QQ[x,y,z]/ideal(x^2-y*z); i2 : J = ideal(x,y); o2 : Ideal of R i3 : reflexivePower(5, J) 3 2 o3 = ideal (y , x*y ) o3 : Ideal of R i4 : reflexivePower(6, J) 3 o4 = ideal y o4 : Ideal of R

This function is typically much faster than reflexifying $I^n$ however. We can obtain this speedup, because in a normal domain, the reflexification of $I^n$ is the same as the reflexification of the ideal generated by the $n$-th powers of the generators of $I$. Consider the example of a cone over a point on an elliptic curve.

 i5 : R = QQ[x,y,z]/ideal(-y^2*z +x^3 + x^2*z + x*z^2+z^3); i6 : I = ideal(x-z,y-2*z); o6 : Ideal of R i7 : time J20a = reflexivePower(20, I); -- used 0.0926524 seconds o7 : Ideal of R i8 : I20 = I^20; o8 : Ideal of R i9 : time J20b = reflexify(I20); -- used 0.529344 seconds o9 : Ideal of R i10 : J20a == J20b o10 = true

This passes the Strategy option to a reflexify call. Valid options are IdealStrategy and ModuleStrategy.

 i11 : R = QQ[x,y,z]/ideal(-y^2*z +x^3 + x^2*z + x*z^2+z^3); i12 : I = ideal(x-z,y-2*z); o12 : Ideal of R i13 : time J1 = reflexivePower(20, I, Strategy=>IdealStrategy); -- used 0.131899 seconds o13 : Ideal of R i14 : time J2 = reflexivePower(20, I, Strategy=>ModuleStrategy); -- used 0.368155 seconds o14 : Ideal of R i15 : J1 == J2 o15 = true