Home Online Manual
Top
Back: curvepar_lib
Forward: CurveRes
FastBack: classify_lib
FastForward: deform_lib
Up: curvepar_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.6.4.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