|
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
|
|