# Singular

#### D.6.3.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 ```