@c ---content LibInfo---
@comment This file was generated by doc2tex.pl from d2t_singular/equising_lib.doc
@comment DO NOT EDIT DIRECTLY, BUT EDIT d2t_singular/equising_lib.doc INSTEAD
@c library version: (1.7.2.6,2003/05/23)
@c library file: ../Singular/LIB/equising.lib
@cindex equising.lib
@cindex equising_lib
@table @asis
@item @strong{Library:}
equising.lib
@item @strong{Purpose:}
  Equisingularity Stratum of a Family of Plane Curves
@item @strong{Author:}
Christoph Lossen, lossen@@mathematik.uni-kl.de
@*Andrea Mindnich, mindnich@@mathematik.uni-kl.de

@end table

@strong{Main procedures:}
@menu
* tau_es:: codim of mu-const stratum in semi-universal def. base
* esIdeal:: (Wahl's) equisingularity ideal of f
* esStratum:: equisingularity stratum of a family F
* isEquising:: tests if a given deformation is equisingular
@end menu
@strong{Auxiliary procedure:}
@menu
* control_Matrix:: computes list of blowing-up data
@end menu
@c ---end content LibInfo---

@c ------------------- tau_es -------------
@node tau_es, esIdeal,, equising_lib
@subsubsection tau_es
@cindex tau_es
@c ---content tau_es---
Procedure from library @code{equising.lib} (@pxref{equising_lib}).

@table @asis
@item @strong{Usage:}
tau_es(f); f poly

@item @strong{Assume:}
f is a reduced bivariate polynomial, the basering has precisely
two variables, is local and no qring.

@item @strong{Return:}
int, the codimension of the mu-const stratum in the semi-universal
deformation base.

@item @strong{Note:}
printlevel>=1 displays additional information.
@*When called with any additional parameter, the computation of the
Milnor number is avoided (no check for NND).

@end table
@strong{Example:}
@smallexample
@c reused example tau_es d2t_singular/equising_lib.doc:57 
LIB "equising.lib";
ring r=32003,(x,y),ds;
poly f=(x4-y4)^2-x10;
tau_es(f);
@expansion{} 42
@c end example tau_es d2t_singular/equising_lib.doc:57
@end smallexample
@c inserted refs from d2t_singular/equising_lib.doc:64
@ifinfo
@menu
See also:
* esIdeal::
* invariants::
* tjurina::
@end menu
@end ifinfo
@iftex
@strong{See also:}
@ref{esIdeal};
@ref{invariants};
@ref{tjurina}.
@end iftex
@c end inserted refs from d2t_singular/equising_lib.doc:64

@c ---end content tau_es---

@c ------------------- esIdeal -------------
@node esIdeal, esStratum, tau_es, equising_lib
@subsubsection esIdeal
@cindex esIdeal
@c ---content esIdeal---
Procedure from library @code{equising.lib} (@pxref{equising_lib}).

@table @asis
@item @strong{Usage:}
esIdeal(f); f poly

@item @strong{Assume:}
f is a reduced bivariate polynomial, the basering has precisely
two variables, is local and no qring, and the characteristic of
the ground field does not divide mult(f).

@item @strong{Return:}
list of two ideals:
@format
          _[1]:  equisingularity ideal of f (in sense of Wahl)
          _[2]:  equisingularity ideal of f with fixed section
@end format

@item @strong{Note:}
if some of the above condition is not satisfied then return
value is list(0,0).

@cindex equisingularity ideal
@end table
@strong{Example:}
@smallexample
@c computed example esIdeal d2t_singular/equising_lib.doc:101 
LIB "equising.lib";
ring r=0,(x,y),ds;
poly f=x7+y7+(x-y)^2*x2y2; 
list K=esIdeal(f);
@expansion{} polynomial is Newton degenerated !
@expansion{} 
@expansion{} // 
@expansion{} // versal deformation with triv. section
@expansion{} // =====================================
@expansion{} // 
@expansion{} // 
@expansion{} // Compute equisingular Stratum over Spec(C[t]/t^2)
@expansion{} // ================================================
@expansion{} // 
@expansion{} // finished
@expansion{} // 
option(redSB);
// Wahl's equisingularity ideal:
std(K[1]);
@expansion{} _[1]=4x4y-10x2y3+6xy4+21x6+14y6
@expansion{} _[2]=4x3y2-6x2y3+2xy4+7x6
@expansion{} _[3]=x2y4-xy5
@expansion{} _[4]=x7
@expansion{} _[5]=xy6
@expansion{} _[6]=y7
ring rr=0,(x,y),ds;
poly f=x4+4x3y+6x2y2+4xy3+y4+2x2y15+4xy16+2y17+xy23+y24+y30+y31;
list K=esIdeal(f);
@expansion{} polynomial is Newton degenerated !
@expansion{} 
@expansion{} // 
@expansion{} // versal deformation with triv. section
@expansion{} // =====================================
@expansion{} // 
@expansion{} // 
@expansion{} // Compute equisingular Stratum over Spec(C[t]/t^2)
@expansion{} // ================================================
@expansion{} // 
@expansion{} // finished
@expansion{} // 
vdim(std(K[1]));
@expansion{} 68
// the latter should be equal to: 
tau_es(f);
@expansion{} 68
@c end example esIdeal d2t_singular/equising_lib.doc:101
@end smallexample
@c inserted refs from d2t_singular/equising_lib.doc:117
@ifinfo
@menu
See also:
* esStratum::
* tau_es::
@end menu
@end ifinfo
@iftex
@strong{See also:}
@ref{esStratum};
@ref{tau_es}.
@end iftex
@c end inserted refs from d2t_singular/equising_lib.doc:117

@c ---end content esIdeal---

@c ------------------- esStratum -------------
@node esStratum, isEquising, esIdeal, equising_lib
@subsubsection esStratum
@cindex esStratum
@c ---content esStratum---
Procedure from library @code{equising.lib} (@pxref{equising_lib}).

@table @asis
@item @strong{Usage:}
esStratum(F[,m,L]); F poly, m int, L list

@item @strong{Assume:}
F defines a deformation of a reduced bivariate polynomial f
and the characteristic of the basering does not divide mult(f). @*
If nv is the number of variables of the basering, then the first
nv-2 variables are the deformation parameters. @*
If the basering is a qring, ideal(basering) must only depend
on the deformation parameters.

@item @strong{Compute:}
equations for the stratum of equisingular deformations with 
fixed (trivial) section.

@item @strong{Return:}
list l: either consisting of an ideal and an integer, where
@format
  l[1]=ideal defining the equisingular stratum
  l[2]=1 if some error has occured,  l[2]=0 otherwise;
@end format
or consisting of a ring and an integer, where
@format
  l[1]=ESSring is a ring extension of basering containing the ideal ES 
        (describing the ES-stratum) and the poly p_F=F,
  l[2]=1 if some error has occured,  l[2]=0 otherwise.
@end format

@item @strong{Note:}
L is supposed to be the output of reddevelop (with the given ordering
of the variables appearing in f). @*
If m is given, the ES Stratum over A/maxideal(m) is computed. @*
This procedure uses @code{execute} or calls a procedure using
@code{execute}.
printlevel>=2 displays additional information.

@cindex equisingular stratum
@end table
@strong{Example:}
@smallexample
@c reused example esStratum d2t_singular/equising_lib.doc:171 
LIB "equising.lib";
int p=printlevel; 
printlevel=1;
ring r = 0,(a,b,c,d,e,f,g,x,y),ds;
poly F = (x2+2xy+y2+x5)+ax+by+cx2+dxy+ey2+fx3+gx4;
list M = esStratum(F);
M[1];
@expansion{} _[1]=g
@expansion{} _[2]=f
@expansion{} _[3]=b
@expansion{} _[4]=a
@expansion{} _[5]=-4c+4d-4e+d2-4ce
printlevel=3;    // displays additional information
esStratum(F,2);  // es stratum over Q[a,b,c,d,e,f,g] / <a,b,c,d,e,f,g>^2
@expansion{} // 
@expansion{} // Compute HN development
@expansion{} // ----------------------
@expansion{} // finished
@expansion{} // 
@expansion{} // Blowup Step 1 completed
@expansion{} // Blowup Step 2 completed
@expansion{} // Blowup Step 3 completed
@expansion{} // 1 branch finished
@expansion{} // 
@expansion{} // Elimination starts:
@expansion{} // -------------------
@expansion{} // finished
@expansion{} // 
@expansion{} // output of 'esStratum' is list consisting of:
@expansion{} //    _[1] = ideal defining equisingular stratum
@expansion{} //    _[2] = 0
@expansion{} [1]:
@expansion{}    _[1]=b
@expansion{}    _[2]=a
@expansion{}    _[3]=c-d+e
@expansion{}    _[4]=g
@expansion{}    _[5]=f
@expansion{} [2]:
@expansion{}    0
ideal I = f-fa,e+b;
qring q = std(I);
poly F = imap(r,F);
esStratum(F);
@expansion{} // 
@expansion{} // Compute HN development
@expansion{} // ----------------------
@expansion{} // finished
@expansion{} // 
@expansion{} // Blowup Step 1 completed
@expansion{} // Blowup Step 2 completed
@expansion{} // Blowup Step 3 completed
@expansion{} // 1 branch finished
@expansion{} // 
@expansion{} // Elimination starts:
@expansion{} // -------------------
@expansion{} // finished
@expansion{} // 
@expansion{} // output of 'esStratum' is list consisting of:
@expansion{} //    _[1] = ideal defining equisingular stratum
@expansion{} //    _[2] = 0
@expansion{} [1]:
@expansion{}    _[1]=e
@expansion{}    _[2]=a
@expansion{}    _[3]=-4c+4d+d2
@expansion{}    _[4]=g
@expansion{} [2]:
@expansion{}    0
printlevel=p;
@c end example esStratum d2t_singular/equising_lib.doc:171
@end smallexample
@c inserted refs from d2t_singular/equising_lib.doc:188
@ifinfo
@menu
See also:
* esIdeal::
* isEquising::
@end menu
@end ifinfo
@iftex
@strong{See also:}
@ref{esIdeal};
@ref{isEquising}.
@end iftex
@c end inserted refs from d2t_singular/equising_lib.doc:188

@c ---end content esStratum---

@c ------------------- isEquising -------------
@node isEquising, control_Matrix, esStratum, equising_lib
@subsubsection isEquising
@cindex isEquising
@c ---content isEquising---
Procedure from library @code{equising.lib} (@pxref{equising_lib}).

@table @asis
@item @strong{Usage:}
isEquising(F[,m,L]); F poly, m int, L list

@item @strong{Assume:}
F defines a deformation of a reduced bivariate polynomial f
and the characteristic of the basering does not divide mult(f). @*
If nv is the number of variables of the basering, then the first
nv-2 variables are the deformation parameters. @*
If the basering is a qring, ideal(basering) must only depend
on the deformation parameters.

@item @strong{Compute:}
tests if the given family is equisingular along the trivial
section.

@item @strong{Return:}
int: 1 if the family is equisingular, 0 otherwise.

@item @strong{Note:}
L is supposed to be the output of reddevelop (with the given ordering
of the variables appearing in f). @*
If m is given, the family is considered over A/maxideal(m). @*
This procedure uses @code{execute} or calls a procedure using
@code{execute}.
printlevel>=2 displays additional information.

@end table
@strong{Example:}
@smallexample
@c reused example isEquising d2t_singular/equising_lib.doc:231 
LIB "equising.lib";
ring r = 0,(a,b,x,y),ds;
poly F = (x2+2xy+y2+x5)+ay3+bx5;
isEquising(F);
@expansion{} 0
ideal I = ideal(a);
qring q = std(I);
poly F = imap(r,F);
isEquising(F);
@expansion{} 1
ring rr=0,(A,B,C,x,y),ls;
poly f=x7+y7+(x-y)^2*x2y2;
poly F=f+A*y*diff(f,x)+B*x*diff(f,x);
isEquising(F);  
@expansion{} 0
isEquising(F,2);    // computation over  Q[a,b] / <a,b>^2
@expansion{} 1
@c end example isEquising d2t_singular/equising_lib.doc:231
@end smallexample
@c ---end content isEquising---

@c ------------------- control_Matrix -------------
@node control_Matrix,, isEquising, equising_lib
@subsubsection control_Matrix
@cindex control_Matrix
@c ---content control_Matrix---
Procedure from library @code{equising.lib} (@pxref{equising_lib}).

@table @asis
@item @strong{Assume:}
L is the output of multsequence(reddevelop(f)).

@item @strong{Return:}
list M of 4 intmat's:
@format
  M[1] contains the multiplicities at the respective infinitely near points 
       p[i,j] (i=step of blowup+1, j=branch) -- if branches j=k,...,k+m pass 
       through the same p[i,j] then the multiplicity is stored in M[1][k,j], 
       while M[1][k+1]=...=M[1][k+m]=0.   
  M[2] contains the number of branches meeting at p[i,j] (again, the information 
       is stored according to the above rule)   
  M[3] contains the information about the splitting of M[1][i,j] with respect to 
       different tangents of branches at p[i,j] (information is stored only for 
       minimal j>=k corresponding to a new tangent direction). 
       The entries are the sum of multiplicities of all branches with the 
       respective tangent.
  M[4] contains the maximal sum of higher multiplicities for a branch passing 
       through p[i,j] ( = degree Bound for blowing up)  
@end format

@item @strong{Note:}
the branches are ordered in such a way that only consecutive branches
can meet at an infinitely near point. @*
the final rows of the matrices M[1],...,M[3] is (1,1,1,...,1), and
correspond to infinitely near points such that the strict transforms
of the branches are smooth and intersect the exceptional divisor
transversally.

@end table
@c inserted refs from d2t_singular/equising_lib.doc:287
@ifinfo
@menu
See also:
* multsequence::
@end menu
@end ifinfo
@iftex
@strong{See also:}
@ref{multsequence}.
@end iftex
@c end inserted refs from d2t_singular/equising_lib.doc:287

@c ---end content control_Matrix---
