|  |  D.6.10.1 BlowingUp Procedure from librarycurvepar.lib(see  curvepar_lib).
 
Example: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
 
 |  | 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
 | 
 
 |