# multiReesIdeal -- Compute the defining ideal of multi-Rees algebra of ideals

## Synopsis

• Usage:
multiReesIdeal W
multiReesIdeal (W,U)
• Inputs:
• W, a list, of ideals $I_1,\ldots,I_n$ or an ideal if $n=1$
• U, a list, of nonzerodivisors, one from each ideal or a nonzerodivisor if $n=1$
• Optional inputs:
• VariableBaseName => ..., default value "X", choose a base name for variables in the created ring
• Outputs:
• an ideal, defining ideal of the multi-Rees algebra of $I_1,\ldots,I_n$

## Description

When the base ring is a domain, the function computes the defining ideal of the multi-Rees algebra of ideals by computing the saturation of a binomial ideal with respect to a polynomial. The technique is a generalization of a result of D. Cox, K.-i. Lin and G. Sosa for monomial ideals over a polynomial ring.

 i1 : S = QQ[x_0..x_3]; i2 : C = trim monomialCurveIdeal(S,{2,3,5}) 3 2 3 2 o2 = ideal (x x - x x , x - x x , x - x x ) 1 2 0 3 2 1 3 1 0 2 o2 : Ideal of S i3 : multiReesIdeal C 2 2 o3 = ideal (x X - x X - x X , x X - x X - x X ) 2 0 1 1 3 2 1 0 0 1 2 2 o3 : Ideal of S[X ..X ] 0 2 i4 : I = multiReesIdeal {C,C} 2 2 2 2 o4 = ideal (x X - x X - x X , x X - x X - x X , x X - x X - x X , x X 2 3 1 4 3 5 1 3 0 4 2 5 2 0 1 1 3 2 1 0 ------------------------------------------------------------------------ - x X - x X , X X - X X , X X - X X , X X - X X ) 0 1 2 2 2 3 0 5 1 3 0 4 2 4 1 5 o4 : Ideal of S[X ..X ] 0 5

This is how we handle degrees

 i5 : transpose gens I o5 = {0, -1, -4} | x_2^2X_3-x_1X_4-x_3X_5 | {0, -1, -4} | x_1^2X_3-x_0X_4-x_2X_5 | {-1, 0, -4} | x_2^2X_0-x_1X_1-x_3X_2 | {-1, 0, -4} | x_1^2X_0-x_0X_1-x_2X_2 | {-1, -1, -5} | X_2X_3-X_0X_5 | {-1, -1, -5} | X_1X_3-X_0X_4 | {-1, -1, -6} | X_2X_4-X_1X_5 | 7 1 o5 : Matrix (S[X ..X ]) <--- (S[X ..X ]) 0 5 0 5

If the base ring is not a domain, then the function computes the defining ideal by computing the presentation of each ideal and returns the kernel between the symmetric algebra of the source and the target symmetric algebras. Alternatively, if the user knows nonzerodivisors, one from each input ideal, then the function uses the algorithm of the domain case and saturates the binomial ideal with respect to the product of the nonzerodivisors. The alternate method is often much faster.

 i6 : T = QQ[a,b,c]; i7 : m = matrix{{a,b,c},{b,c,a}}; 2 3 o7 : Matrix T <--- T i8 : U = T/minors(2,m); i9 : J = ideal vars U o9 = ideal (a, b, c) o9 : Ideal of U i10 : time multiReesIdeal J -- used 0.298886 seconds o10 = ideal (c*X - b*X , b*X - a*X , a*X - c*X , c*X - a*X , b*X - c*X , 1 2 1 2 1 2 0 2 0 2 ----------------------------------------------------------------------- 2 2 2 a*X - b*X , X - X X , X X - X , X - X X ) 0 2 1 0 2 0 1 2 0 1 2 o10 : Ideal of U[X ..X ] 0 2 i11 : time multiReesIdeal (J, a) -- used 0.0398868 seconds o11 = ideal (c*X - b*X , b*X - a*X , a*X - c*X , c*X - a*X , b*X - c*X , 1 2 1 2 1 2 0 2 0 2 ----------------------------------------------------------------------- 2 2 2 a*X - b*X , X - X X , X X - X , X - X X ) 0 2 1 0 2 0 1 2 0 1 2 o11 : Ideal of U[X ..X ] 0 2