Singular Manual: Change of rings

| ### 2.3.4 Change of rings To calculate the local Milnor number we have to do the calculation with the same commands in a ring with local ordering. We can define the localization of the polynomial ring at the origin (see Polynomial data, and Mathematical background).
    ring rl = 0,(x,y,z),ds;
The ordering directly affects the standard basis which will be calculated. Fetching the polynomial defined in the ring `r` into this new ring, helps us to avoid retyping previous input.
    poly f = fetch(r,f);
    f;
    ==> z2+x3+y3+x3y2-x2y3
Instead of `fetch` we can use the function `imap` which is more general but less efficient. The most general way to fetch data from one ring to another is to use maps, this will be explained in map. In this ring the terms are ordered by increasing exponents. The local Milnor number is now
    Milnor(f);
    ==> 4
This shows that `f` has outside the origin in affine 3-space singularities with local Milnor number adding up to .Using global and local orderings as above is a convenient way to check whether a variety has singularities outside the origin. The command `jacob` applied twice gives the Hessian of `f`, in our example a 3x3 - matrix.
    matrix H = jacob(jacob(f));
    H;
    ==> H[1,1]=6x+6xy2-2y3
    ==> H[1,2]=6x2y-6xy2
    ==> H[1,3]=0
    ==> H[2,1]=6x2y-6xy2
    ==> H[2,2]=6y+2x3-6x2y
    ==> H[2,3]=0
    ==> H[3,1]=0
    ==> H[3,2]=0
    ==> H[3,3]=2
The `print` command displays the matrix in a nicer format.
    print(H);
    ==> 6x+6xy2-2y3,6x2y-6xy2,  0,
    ==> 6x2y-6xy2,  6y+2x3-6x2y,0,
    ==> 0,          0,          2
We may calculate the determinant and (the ideal generated by all) minors of a given size.
    det(H);
    ==> 72xy+24x4-72x3y+72xy3-24y4-48x4y2+64x3y3-48x2y4
    minor(H,1);  // the 1x1 - minors
    ==> _[1]=2
    ==> _[2]=6y+2x3-6x2y
    ==> _[3]=6x2y-6xy2
    ==> _[4]=6x2y-6xy2
    ==> _[5]=6x+6xy2-2y3
The algorithm of the standard basis computation may be affected by the command `option`. For example, a reduced standard basis of the ideal generated by the -minorsof H is obtained in the following way:
    option(redSB);
    groebner(minor(H,1));
    ==> _[1]=1
This shows that 1 is contained in the ideal of the -minors,hence the corresponding variety is empty.

User manual for Singular version 4.3.2p4, 2023, generated by texi2html.