# isReduction -- Determine whether an ideal is a reduction

## Synopsis

• Usage:
t=isReduction(I,J)
t=isReduction(I,J,f)
• Inputs:
• I, an ideal,
• J, an ideal,
• f, , an optional element, which is a non-zerodivisor modulo M and the ring of M
• Optional inputs:
• BasisElementLimit => ..., default value infinity, Bound the number of Groebner basis elements to compute in the saturation step
• DegreeLimit => ..., default value {}, Bound the degrees considered in the saturation step. Defaults to infinity
• MinimalGenerators => ..., default value true, Whether the saturation step returns minimal generators
• PairLimit => ..., default value infinity, Bound the number of s-pairs considered in the saturation step
• Strategy => ..., default value null, Choose a strategy for the saturation step
• Variable => ..., default value w, Choose name for variables in the created ring
• Outputs:
• t, , true if J is a reduction of I, false otherwise

## Description

For an ideal $I$, a subideal $J$ of $I$ is said to be a reduction of $I$ if there exists a nonnegative integer n such that $JI^{n}=I^{n+1}$.

This function returns true if $J$ is a reduction of $I$ and returns false if $J$ is not a subideal of $I$ or $J$ is a subideal but not a reduction of $I$.

 i1 : S = ZZ/5[x,y] o1 = S o1 : PolynomialRing i2 : I = ideal(x^3,x*y,y^4) 3 4 o2 = ideal (x , x*y, y ) o2 : Ideal of S i3 : J = ideal(x*y, x^3+y^4) 4 3 o3 = ideal (x*y, y + x ) o3 : Ideal of S i4 : isReduction(I,J) o4 = true i5 : isReduction(J,I) o5 = false i6 : isReduction(I,I) o6 = true i7 : g = I_0 3 o7 = x o7 : S i8 : isReduction(I,J,g) o8 = true i9 : isReduction(J,I,g) o9 = false i10 : isReduction(I,I,g) o10 = true