# analyticSpread -- Compute the analytic spread of a module or ideal

## Synopsis

• Usage:
• Inputs:
• M, , or an ideal
• f, , an optional element, which is a non-zerodivisor such that $M[f^{-1}]$ is a free module when $M$ is a module, an element in $M$ when $M$ is an ideal
• 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
• Outputs:
• an integer, the analytic spread of a module or an ideal $M$

## Description

The analytic spread of a module is the dimension of its special fiber ring. When $I$ is an ideal (and more generally, with the right definitions) the analytic spread of $I$ is the smallest number of generators of an ideal $J$ such that $I$ is integral over $J$. See for example the book Integral closure of ideals, rings, and modules. London Mathematical Society Lecture Note Series, 336. Cambridge University Press, Cambridge, 2006, by Craig Huneke and Irena Swanson.

 i1 : R=QQ[a..h] o1 = R o1 : PolynomialRing i2 : M=matrix{{a,b,c,d},{e,f,g,h}} o2 = | a b c d | | e f g h | 2 4 o2 : Matrix R <--- R i3 : analyticSpread minors(2,M) o3 = 5 i4 : specialFiberIdeal minors(2,M) o4 = ideal(Z Z - Z Z + Z Z ) 2 3 1 4 0 5 o4 : Ideal of QQ[Z ..Z ] 0 5 i5 : R=QQ[a,b,c,d] o5 = R o5 : PolynomialRing i6 : M=matrix{{a,b,c,d},{b,c,d,a}} o6 = | a b c d | | b c d a | 2 4 o6 : Matrix R <--- R i7 : analyticSpread minors(2,M) o7 = 4 i8 : specialFiberIdeal minors(2,M) 2 2 o8 = ideal (Z Z - Z Z + Z Z , Z - Z Z - Z Z - Z + Z Z + Z Z ) 2 3 1 4 0 5 1 0 2 0 3 4 2 5 3 5 o8 : Ideal of QQ[Z ..Z ] 0 5