| #### D.6.10.2 CurveRes Procedure from library `curvepar.lib` (see curvepar_lib). Usage: CurveRes(I); I ideal Assume: The basering is r=0,(x(1..n)) V(I) is a curve with a singular point 0. Compute: Resolution of the curve V(I). Return: a ring R=basering+k[a] Ring R contains a list Resolve Resolve is a list of charts Each Resolve[i] is a list of size 6 Resolve[i][1] is an ideal J of a new curve. J=teta(I). Resolve[i][2] ideal which represents the map teta:k[x(1)..x(n),a]-->k[x(1)..x(n),a] from the new curve to the old one. Resolve[i][3] is an irreducible poly g in k[a]. It is a minimal polynomial for the new parameter a. deg(g) gives the number of branches in Resolve[i] Resolve[i][4] sequence of multiplicities (sum over all branches in Resolve as long as they intersect each other !) Resolve[i][5] is a list of integers l. It shows, which standard charts we considered. Resolve[i][6] HN matrix Resolve[i][7] (only for plane curves) the development of exceptional divisors the entries correspond to the i-th blowing up. The first entry is an intvec. The first negative entry gives the splitting of the (over Q irreducible) branches. The second entry is a list of the exceptional divisors. If the entry is an integer i, it says that the divisor is not visible in this chart after the i-th blowing up. Example:
    LIB "curvepar.lib";
    ring r=0,(x,y,z),dp;
    ideal i=x2-y3,z2-y5;
    def s=CurveRes(i);
    setring s;
    Resolve;
    ==> [1]:
    ==>    [1]:
    ==>       _[1]=x(1)
    ==>       _[2]=x(1)*x(2)-x(3)^2+2*x(3)
    ==>    [2]:
    ==>       _[1]=x(1)^2*x(2)^5+2*x(1)*x(2)^4+x(2)^3
    ==>       _[2]=x(1)*x(2)^3+x(2)^2
    ==>       _[3]=x(1)^2*x(2)^7*x(3)-x(1)^2*x(2)^7+2*x(1)*x(2)^6*x(3)-2*x(1)*x(2\
       )^6+x(2)^5*x(3)-x(2)^5
    ==>       _[4]=a
    ==>    [3]:
    ==>       a
    ==>    [4]:
    ==>       [1]:
    ==>          4
    ==>       [2]:
    ==>          2
    ==>       [3]:
    ==>          2
    ==>       [4]:
    ==>          2
    ==>    [5]:
    ==>       [1]:
    ==>          2
    ==>       [2]:
    ==>          1
    ==>       [3]:
    ==>          2
    ==>       [4]:
    ==>          2
    ==>    [6]:
    ==>       [1]:
    ==>          _[1]=0
    ==>          _[2]=1
    ==>          _[3]=0
    ==>       [2]:
    ==>          _[1]=1
    ==>          _[2]=0
    ==>          _[3]=0
    ==>       [3]:
    ==>          _[1]=1
    ==>          _[2]=1
    ==>          _[3]=0
    ==>       [4]:
    ==>          _[1]=0
    ==>          _[2]=1
    ==>          _[3]=-1
    ==> [2]:
    ==>    [1]:
    ==>       _[1]=x(1)
    ==>       _[2]=x(1)*x(2)-x(3)^2-2*x(3)
    ==>    [2]:
    ==>       _[1]=x(1)^2*x(2)^5+2*x(1)*x(2)^4+x(2)^3
    ==>       _[2]=x(1)*x(2)^3+x(2)^2
    ==>       _[3]=x(1)^2*x(2)^7*x(3)+x(1)^2*x(2)^7+2*x(1)*x(2)^6*x(3)+2*x(1)*x(2\
       )^6+x(2)^5*x(3)+x(2)^5
    ==>       _[4]=a
    ==>    [3]:
    ==>       a
    ==>    [4]:
    ==>       [1]:
    ==>          4
    ==>       [2]:
    ==>          2
    ==>       [3]:
    ==>          2
    ==>       [4]:
    ==>          2
    ==>    [5]:
    ==>       [1]:
    ==>          2
    ==>       [2]:
    ==>          1
    ==>       [3]:
    ==>          2
    ==>       [4]:
    ==>          2
    ==>    [6]:
    ==>       [1]:
    ==>          _[1]=0
    ==>          _[2]=1
    ==>          _[3]=0
    ==>       [2]:
    ==>          _[1]=1
    ==>          _[2]=0
    ==>          _[3]=0
    ==>       [3]:
    ==>          _[1]=1
    ==>          _[2]=1
    ==>          _[3]=0
    ==>       [4]:
    ==>          _[1]=0
    ==>          _[2]=1
    ==>          _[3]=1

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