# specialFiber -- Special fiber of a blowup

## Synopsis

• Usage:
specialFiber M
specialFiber(M,f)
• 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
• Jacobian => ..., default value false
• 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
• Trim => ..., default value true
• Variable => ..., default value w, Choose name for variables in the created ring
• Outputs:

## Description

Let $M$ be an $R = k[x_1,\ldots,x_n]/J$-module (for example an ideal), and let $mm=ideal vars R = (x_1,\ldots,x_n)$, and suppose that $M$ is a homomorphic image of the free module $F$ with $m+1$ generators. Let $T$ be the Rees algebra of $M$. The call specialFiber(M) returns the ideal $J\subset{} k[w_0,\dots,w_m]$ such that $k[w_0,\dots,w_m]/J \cong{} T/mm*T$; that is, $specialFiber(M) = reesIdeal(M)+mm*Sym(F)$. This routine differs from specialFiberIdeal in that the ambient ring of the output ideal is $k[w_0,\dots,w_m]$ rather than $R[w_0,\dots,w_m]$. The coefficient ring $k$ used is always the ultimate coefficient ring of $R$.

The name derives from the fact that $Proj(T/mm*T)$ is the special fiber of the blowup of $Spec R$ along the subscheme defined by $I$.

With the default Trim => true, the computation begins by computing minimal generators, which may result in a change of generators of M

 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 : specialFiber minors(2,M) QQ[Z ..Z ] 0 5 o4 = ------------------ Z Z - Z Z + Z Z 2 3 1 4 0 5 o4 : QuotientRing