| #### D.6.4.2 classify Procedure from library `classify.lib` (see classify_lib). Usage: classify(f); f=poly Compute: normal form and singularity type of f with respect to right equivalence, as given in the book "Singularities of differentiable maps, Volume I" by V.I. Arnold, S.M. Gusein-Zade, A.N. Varchenko Return: normal form of f, of type poly Remark: This version of classify is only beta. Please send bugs and comments to: "Kai Krueger" <krueger@mathematik.uni-kl.de> Be sure to have at least Singular version 1.0.1. Note: type init_debug(n); (0 <= n <= 10) in order to get intermediate information, higher values of n give more information. The proc creates several global objects with names all starting with @, hence there should be no name conflicts. Example:
    LIB "classify.lib";
    ring r=0,(x,y,z),ds;
    poly f=(x2+3y-2z)^2+xyz-(x-y3+x2*z3)^3;
    classify(f);
    ==> About the singularity :
    ==>           Milnor number(f)   = 4
    ==>           Corank(f)          = 2
    ==>           Determinacy       <= 5
    ==> Guessing type via Milnorcode:   D[k]=D[4]
    ==>
    ==> Computing normal form ...
    ==> I have to apply the splitting lemma. This will take some time....:-)
    ==>    Arnold step number 4
    ==> The singularity
    ==>    -x3+3/2xy2+1/2x3y-1/16x2y2+3x2y3
    ==> is R-equivalent to D[4].
    ==>    Milnor number = 4
    ==>    modality      = 0
    ==> 2z2+x2y+y3
    init_debug(3);
    ==> Debugging level change from  0  to  3
    classify(f);
    ==> Computing Basicinvariants of f ...
    ==> About the singularity :
    ==>           Milnor number(f)   = 4
    ==>           Corank(f)          = 2
    ==>           Determinacy       <= 5
    ==> Hcode: 1,2,1,0,0
    ==> Milnor code :  1,1,1
    ==> Debug:(2):  entering HKclass3_teil_1 1,1,1
    ==> Debug:(2):  finishing HKclass3_teil_1
    ==> Guessing type via Milnorcode:   D[k]=D[4]
    ==>
    ==> Computing normal form ...
    ==> I have to apply the splitting lemma. This will take some time....:-)
    ==> Debug:(3):  Split the polynomial below using determinacy:  5
    ==> Debug:(3):  9y2-12yz+4z2-x3+6x2y-4x2z+xyz+x4+3x2y3
    ==> Debug:(2):  Permutations: 3,2,1
    ==> Debug:(2):  Permutations: 3,2,1
    ==> Debug:(2):  rank determined with Morse rg= 1
    ==> Residual singularity f= -x3+3/2xy2+1/2x3y-1/16x2y2+3x2y3
    ==> Step 3
    ==>    Arnold step number 4
    ==> The singularity
    ==>    -x3+3/2xy2+1/2x3y-1/16x2y2+3x2y3
    ==> is R-equivalent to D[4].
    ==>    Milnor number = 4
    ==>    modality      = 0
    ==> Debug:(2):  Decode:
    ==> Debug:(2):  S_in= D[4]   s_in= D[4]
    ==> Debug:(2):  Looking for Normalform of  D[k] with (k,r,s) = ( 4 , 0 , 0 )
    ==> Debug:(2):  Opening Singalarity-database:
    ==>  DBM: NFlist
    ==> Debug:(2):  DBMread( D[k] )= x2y+y^(k-1) .
    ==> Debug:(2):  S= f = x2y+y^(k-1);  Tp= x2y+y^(k-1) Key= I_D[k]
    ==> Polynom f= x2y+y3   crk= 2   Mu= 4  MlnCd= 1,1,1
    ==> Debug:(2):  Info= x2y+y3
    ==> Debug:(2):  Normal form NF(f)= 2*x(3)^2+x(1)^2*x(2)+x(2)^3
    ==> 2z2+x2y+y3

User manual for Singular version 4.4.0, 2024, generated by texi2html.