#### D.6.6.1 BlowingUp

Procedure from library `curvepar.lib` (see curvepar_lib).

Usage:
  BlowingUp(f,I,l);
  f=poly
  b=ideal
  l=list

Assume:
  The basering is r=0,(x(1..n),a),dp
  f is an irrreducible polynomial in k[a],
  I is an ideal of a curve(if we consider a as a parameter)

Compute:
  Blowing-up of the curve at point 0.

Return:
  list C of charts.
  Each chart C[i] is a list of size 5 (reps. 6 in case of plane curves) C[i][1] is an integer j. It shows, which standard chart do we consider. C[i][2] is an irreducible poly g in k[a]. It is a minimal polynomial for the new parameter.
  C[i][3] is an ideal H in k[a].
  c_i=F_i(a_new) for i=1..n,
  a_old=H[n+1](a_new).
  C[i][4] is a map teta:k[x(1)..x(n),a]-->k[x(1)..x(n),a] from the new curve to the old one.
  x(1)-->x(j)*x(1) . . . x(j)-->x(j) . . . x(n)-->x(j)*(c_n+x(n))
  C[i][5] is an ideal J of a new curve. J=teta(I).
  C[i][6] is the list of exceptional divisors in the chart

Example:

    LIB "curvepar.lib";
    ring r=0,(x(1..3),a),dp;
    poly f=a2+1;
    ideal i=x(1)^2+a*x(2)^3,x(3)^2-x(2);
    list l=1,3,2;
    list B=BlowingUp(f,i,l);
    B;
    ==> [1]:
    ==>    [1]:
    ==>       3
    ==>    [2]:
    ==>       a^2+1
    ==>    [3]:
    ==>       _[1]=0
    ==>       _[2]=0
    ==>       _[3]=1
    ==>    [4]:
    ==>       _[1]=x(1)*x(3)
    ==>       _[2]=x(2)*x(3)
    ==>       _[3]=x(3)
    ==>       _[4]=a
    ==>    [5]:
    ==>       _[1]=x(2)-x(3)
    ==>       _[2]=x(2)^3*x(3)*a+x(1)^2

User manual for Singular version 4-0-3, 2016, generated by texi2html.