|
D.4.13.1 blowUp
Procedure from library resolve.lib (see resolve_lib).
- Usage:
- blowUp(J,C[,W][,E]);
J,C,W = ideals
E = list
- Assume:
- J = ideal containing W ( W = 0 if not specified)
C = ideal containing J
E = list of smooth hypersurfaces (e.g. exceptional divisors)
- Compute:
- the blowing up of W in C, the exceptional locus, the strict transform
of J
- Return:
- list of size at most size(C),
l[i] is a ring containing a basic object BO:
BO[1] an ideal, say Wi, defining the ambient space of the i-th chart
of the blowing up
BO[2] an ideal defining the strict transform
BO[3] intvec, the first integer b such that in the original object
(Delta^b(BO[2]))==1
the subsequent integers have the same property for Coeff-Objects
of BO[2] used when determining the center
BO[4] the list of exceptional divisors
BO[5] an ideal defining the map K[W] ----> K[Wi]
BO[6] an intvec BO[6][j]=1 indicates that <BO[4][j],BO[2]>=1, i.e. the
strict transform does not meet the j-th exceptional divisor
BO[7] intvec,
the index of the first blown-up object in the resolution process
leading to this object for which the value of b was BO[3]
the subsequent ones are the indices for the Coeff-Objects
of BO[2] used when determining the center
BO[8] a matrix indicating that BO[4][i] meets BO[4][j] by BO[8][i,j]=1
for i < j
Example:
| LIB "resolve.lib";
ring R=0,(x,y),dp;
ideal J=x2-y3;
ideal C=x,y;
list blow=blowUp(J,C);
def Q=blow[1];
setring Q;
BO;
==> [1]:
==> _[1]=0
==> [2]:
==> _[1]=y(1)^2-x(2)
==> [3]:
==> 0
==> [4]:
==> [1]:
==> _[1]=x(2)
==> [5]:
==> _[1]=x(2)*y(1)
==> _[2]=x(2)
==> [6]:
==> 0
==> [7]:
==> -1
==> [8]:
==> _[1,1]=0
|
|