1. Milnor number. SINGULAR
offers a comfortable programming language, with a syntax
close to C. So it is possible to define procedures which collect
several
commands to a new one. Procedures are defined with the keyword
proc followed by a name and an optional parameter list
with
specified types. Finally, a procedure may return values using the
command return.
Define the following procedure called Milnor:
proc Milnor(poly h)
{
return(vdim(std(jacob(h))));
};
Let apply the procedure to compute Milnor number of the origin in
the following example:
ring R = 0, (x,y), ds;
poly h = x5+y2+2y3+y4;
Milnor(h);
==> 4
Exercise: Find all singular
points of h. Show that the sum of Milnor numbers at the singularities
equals the dimension of the quotient ring k[x,y]/<jacob(h)>.
(Hints:
(1) you might need to use subst to change the coordinates;
(2) create a new ring S
changing the ordering to the global ordering dp. Then you may use poly h' = fetch(R,h) to convert
polynomial h to a
polynomial in the ring S.)
Instead of writing Milnor procedure ourselves, we
could have loaded it from the library sing.lib
LIB "sing.lib";
As all input in SINGULAR is case sensitive, there is no conflict with
the previously defined procedure Milnor, but the result
is the same.
milnor(f);
==> 12
The procedures in a library have a help part which is displayed by typing
help milnor;
as well as some examples, which are executed by
example milnor;
Likewise, the library itself has a help part, to show a list of all the functions available for the user which are contained in the library.
help sing.lib;
2. Tjurina number. One of
the functions of the library, tjurina,
takes care of computing Tjurina number at the origin.
tjurina(h);
==> 4
Exercise: Find all
singular points of h. Show that the sum of Tjurina numbers at
the singularities equals the dimension of the quotient ring
k[x,y]/<h, jacob(h)>.
3. Local orderings.
ls
ds
Ds
ws( intvec_expression )
Ws( intvec_expression )
Local orderings are not well-orderings. They are denoted by an s
as the second character in their name.
Exercise: The following ring uses a weighted monomial ordering:
ring R=0, (x,y,z), ws(1,1,1);
What standard local ordering is this equivalent to?
The ideal I in R is defined by
poly s1 = x3-yz;
poly s2 = y3-xz;
poly s3 = z3-xy;
ideal I = s1,s2,s3;
Compare the staircases for I w.r.t. local weighted orderings ws(1,1,1), ws(10,1,1)
and ws(1,2,3).
4. Planar geometry revisited.
Consider a parallelogram with ACBD with vertices A=(0,0), B=(u,0),
C=(v,b), D=(a,b) with diagonals AC and BD intersecting at the point
N=(c,d). This statement is reflected by the following ideal in the ring
k[a,b,c,d,u,v]:
ideal I = a-u-v, ad-bc, d*(v-u)-(c-u)*b;
We would like to show that the point N bisects both diagonals. This
conclusion can be described as vanishing of two polynomials:
poly g1 = a2-2ac-2bd+b2;
poly g2 = 2cu-2cv-2bd-u2+v2+b2;
Exercise: (1) Show that g1
and g2 are not in the
radical of I. What does
it mean?
(2) Observe that for a square the conclusion holds. Show that it also
holds in the neighborhood of the point (a,b,u,v)=(1,1,1,1).