|
D.4.2.1 blowup0
Procedure from library elim.lib (see elim_lib).
- Usage:
blowup0(j[,s1,s2]); j ideal, s1,s2 nonempty strings
- Create:
Create a presentation of the blowup ring of j
- Return:
no return value
- Note:
s1 and s2 are used to give names to the blownup ring and the blownup
ideal (default: s1="j", s2="A")
Assume R = char,x(1..n),ord is the basering of j, and s1="j", s2="A"
then the procedure creates a new ring with name Bl_jR
(equal to R[A,B,...])
Bl_jR = char,(A,B,...,x(1..n)),(dp(k),ord)
with k=ncols(j) new variables A,B,... and ordering wp(d1..dk) if j is
homogeneous with deg(j[i])=di resp. dp otherwise for these vars.
If k>26 or size(s2)>1, say s2="A()", the new vars are A(1),...,A(k).
Let j_ be the kernel of the ring map Bl_jR -> R defined by A(i)->j[i],
x(i)->x(i), then the quotient ring Bl_jR/j_ is the blowup ring of j
in R (being isomorphic to R+j+j^2+...). Moreover the procedure creates
a std basis of j_ with name j_ in Bl_jR.
This proc uses ’execute’ or calls a procedure using ’execute’.
- Display:
printlevel >=0: explain created objects (default)
Example:
| LIB "elim.lib";
ring R=0,(x,y),dp;
poly f=y2+x3; ideal j=jacob(f);
blowup0(j);
→
→ // The proc created the ring Bl_jR (equal to R[A,B])
→ // it contains the ideal j_ , such that
→ // Bl_jR/j_ is the blowup ring
→ // show(Bl_jR); shows this ring.
→ // Make Bl_jR the basering and see j_ by typing:
→ setring Bl_jR;
→ j_;
show(Bl_jR);
→ // ring: (0),(A,B,x,y),(wp(2,1),dp(2),C);
→ // minpoly = 0
→ // objects belonging to this ring:
→ // j_ [0] ideal, 1 generator(s)
setring Bl_jR;
j_;"";
→ j_[1]=2Ay-3Bx2
→
ring r=32003,(x,y,z),ds;
blowup0(maxideal(1),"m","T()");
→
→ // The proc created the ring Bl_mr (equal to r[T(1..3)])
→ // it contains the ideal m_ , such that
→ // Bl_mr/m_ is the blowup ring
→ // show(Bl_mr); shows this ring.
→ // Make Bl_mr the basering and see m_ by typing:
→ setring Bl_mr;
→ m_;
show(Bl_mr);
→ // ring: (32003),(T(1),T(2),T(3),x,y,z),(wp(1,1,1),ds(3),C);
→ // minpoly = 0
→ // objects belonging to this ring:
→ // m_ [0] ideal, 3 generator(s)
setring Bl_mr;
m_;
→ m_[1]=T(1)y-T(2)x
→ m_[2]=T(1)z-T(3)x
→ m_[3]=T(2)z-T(3)y
kill Bl_jR, Bl_mr;
|
|