# Singular

#### D.6.6.3 esStratum

Procedure from library `equising.lib` (see equising_lib).

Usage:
esStratum(F[,m,L]); F poly, m int, L list

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.

Compute:
equations for the stratum of equisingular deformations with fixed (trivial) section.

Return:
list l: either consisting of a list and an integer, where
 ``` l[1][1]=ideal defining the equisingularity stratum l[1][2]=ideal defining the part of the equisingularity stratum where all equimultiple sections through the non-nodes of the reduced total transform are trivial sections l[2]=1 if some error has occured, l[2]=0 otherwise; ```
or consisting of a ring and an integer, where
 ``` l[1]=ESSring is a ring extension of basering containing the ideal ES (describing the ES-stratum), the ideal ES_all_triv (describing the part with trival equimultiple sections) and the polynomial p_F=F, l[2]=1 if some error has occured, l[2]=0 otherwise. ```

Note:
L is supposed to be the output of hnexpansion (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 `execute` or calls a procedure using `execute`. printlevel>=2 displays additional information.

Example:
 ```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][1]; ==> _[1]=g ==> _[2]=f ==> _[3]=b ==> _[4]=a ==> _[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] / ^2 ==> // ==> // Compute HN expansion ==> // --------------------- ==> // finished ==> // ==> // Blowup Step 1 completed ==> // Blowup Step 2 completed ==> // Blowup Step 3 completed ==> // 1 branch finished ==> // ==> // Elimination starts: ==> // ------------------- ==> // ==> // Remove superfluous equations: ==> // ----------------------------- ==> // finished ==> // ==> // output of 'esStratum' is a list consisting of: ==> // _[1][1] = ideal defining the equisingularity stratum ==> // _[1][2] = ideal defining the part of the equisingularity stratum ==> // where all equimultiple sections are trivial ==> // _[2] = 0 ==> [1]: ==> [1]: ==> _[1]=b ==> _[2]=a ==> _[3]=c-d+e ==> _[4]=g ==> _[5]=f ==> [2]: ==> _[1]=g ==> _[2]=f ==> _[3]=d-2e ==> _[4]=c-e ==> _[5]=b ==> _[6]=a ==> [2]: ==> 0 ideal I = f-fa,e+b; qring q = std(I); poly F = imap(r,F); esStratum(F); ==> // ==> // Compute HN expansion ==> // --------------------- ==> // finished ==> // ==> // Blowup Step 1 completed ==> // Blowup Step 2 completed ==> // Blowup Step 3 completed ==> // 1 branch finished ==> // ==> // Elimination starts: ==> // ------------------- ==> // ==> // Remove superfluous equations: ==> // ----------------------------- ==> // finished ==> // ==> // output of 'esStratum' is a list consisting of: ==> // _[1][1] = ideal defining the equisingularity stratum ==> // _[1][2] = ideal defining the part of the equisingularity stratum ==> // where all equimultiple sections are trivial ==> // _[2] = 0 ==> [1]: ==> [1]: ==> _[1]=e ==> _[2]=a ==> _[3]=-4c+4d+d2 ==> _[4]=g ==> [2]: ==> _[1]=g ==> _[2]=d ==> _[3]=c ==> _[4]=-e ==> _[5]=a ==> [2]: ==> 0 printlevel=p; ```