### A.4.8 Classification of hypersurface singularities

Classification of isolated hypersurface singularities with respect to right equivalence is provided by the command `classify` of the library `classify.lib`. The classification is done by using the algorithm of Arnold. Before entering this algorithm, a first guess based on the Hilbert polynomial of the Milnor algebra is made.

      LIB "classify.lib";
      ring r=0,(x,y,z),ds;
      poly p=singularity("E[6k+2]",2)[1];
      p=p+z^2;
      p;
    ==> z2+x3+xy6+y8
      // We received an E_14 singularity in normal form
      // from the database of normal forms. Since only the residual
      // part is saved in the database, we added z^2 to get an E_14
      // of embedding dimension 3.
      //
      // Now we apply a coordinate change in order to deal with a
      // singularity which is not in normal form:
      map phi=r,x+y,y+z,x;
      poly q=phi(p);
      // Yes, q really looks ugly, now:
      q;
    ==> x2+x3+3x2y+3xy2+y3+xy6+y7+6xy5z+6y6z+15xy4z2+15y5z2+20xy3z3+20y4z3+15xy2z\
       4+15y3z4+6xyz5+6y2z5+xz6+yz6+y8+8y7z+28y6z2+56y5z3+70y4z4+56y3z5+28y2z6+8\
       yz7+z8
      // Classification
      classify(q);
    ==> About the singularity :
    ==>           Milnor number(f)   = 14
    ==>           Corank(f)          = 2
    ==>           Determinacy       <= 11
    ==> Guessing type via Milnorcode:   E[6k+2]=E[14]
    ==>
    ==> Computing normal form ...
    ==> I have to apply the splitting lemma. This will take some time....:-)
    ==>    Arnold step number 9
    ==> The singularity
    ==>    x3-9/4x4+27/4x5-189/8x6+737/8x7+6x6y+15x5y2+20x4y3+15x3y4+6x2y5+xy6-24\
       089/64x8-x7y+11/2x6y2+26x5y3+95/2x4y4+47x3y5+53/2x2y6+8xy7+y8+104535/64x9\
       +27x8y+135/2x7y2+90x6y3+135/2x5y4+27x4y5+9/2x3y6-940383/128x10-405/4x9y-2\
       025/8x8y2-675/2x7y3-2025/8x6y4-405/4x5y5-135/8x4y6+4359015/128x11+1701/4x\
       10y+8505/8x9y2+2835/2x8y3+8505/8x7y4+1701/4x6y5+567/8x5y6
    ==> is R-equivalent to E[14].
    ==>    Milnor number = 14
    ==>    modality      = 1
    ==> 2z2+x3+xy6+y8
      // The library also provides routines to determine the corank of q
      // and its residual part without going through the whole
      // classification algorithm.
      corank(q);
    ==> 2
      morsesplit(q);
    ==> y3-9/4y4+27/4y5-189/8y6+737/8y7+6y6z+15y5z2+20y4z3+15y3z4+6y2z5+yz6-24089\
       /64y8-y7z+11/2y6z2+26y5z3+95/2y4z4+47y3z5+53/2y2z6+8yz7+z8+104535/64y9+27\
       y8z+135/2y7z2+90y6z3+135/2y5z4+27y4z5+9/2y3z6-940383/128y10-405/4y9z-2025\
       /8y8z2-675/2y7z3-2025/8y6z4-405/4y5z5-135/8y4z6+4359015/128y11+1701/4y10z\
       +8505/8y9z2+2835/2y8z3+8505/8y7z4+1701/4y6z5+567/8y5z6

User manual for Singular version 4.4.1, 2025, generated by texi2html.