deform_lib.tex 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. @c ---content LibInfo---
  2. @comment This file was generated by doc2tex.pl from d2t_singular/deform_lib.doc
  3. @comment DO NOT EDIT DIRECTLY, BUT EDIT d2t_singular/deform_lib.doc INSTEAD
  4. @c library version: (1.25.2.2,2003/02/24)
  5. @c library file: ../Singular/LIB/deform.lib
  6. @cindex deform.lib
  7. @cindex deform_lib
  8. @table @asis
  9. @item @strong{Library:}
  10. deform.lib
  11. @item @strong{Purpose:}
  12. Miniversal Deformation of Singularities and Modules
  13. @item @strong{Author:}
  14. Bernd Martin, email: martin@@math.tu-cottbus.de
  15. @end table
  16. @strong{Procedures:}
  17. @menu
  18. * versal:: miniversal deformation of isolated singularity Fo
  19. * mod_versal:: miniversal deformation of module Mo modulo ideal I
  20. * lift_kbase:: lifting N into standard kbase of M
  21. * lift_rel_kb:: relative lifting N into a kbase of M
  22. * kill_rings:: kills the exported rings from above
  23. @end menu
  24. @c ---end content LibInfo---
  25. @c ------------------- versal -------------
  26. @node versal, mod_versal,, deform_lib
  27. @subsubsection versal
  28. @cindex versal
  29. @c ---content versal---
  30. Procedure from library @code{deform.lib} (@pxref{deform_lib}).
  31. @table @asis
  32. @item @strong{Usage:}
  33. versal(Fo[,d,any]); Fo=ideal, d=int, any=list
  34. @item @strong{Compute:}
  35. miniversal deformation of Fo up to degree d (default d=100),
  36. @item @strong{Create:}
  37. Rings (exported):
  38. @*'my'Px = extending the basering Po by new variables given by
  39. "A,B,.." (deformation parameters), returns as basering; the
  40. new variables precede the old ones, the ordering is the
  41. product between "ls" and "ord(Po)"
  42. @*'my'Qx = Px/Fo extending Qo=Po/Fo,
  43. @*'my'So = the embedding-ring of the versal base space,
  44. @*'my'Ox = Px/Js extending So/Js. (default my="")
  45. Matrices (in Px, exported):
  46. @*Js = giving the versal base space (obstructions),
  47. @*Fs = giving the versal family of Fo,
  48. @*Rs = giving the lifting of Ro=syz(Fo).
  49. If d is defined (!=0), it computes up to degree d.
  50. @*If 'any' is defined and any[1] is no string, interactive version.
  51. @*Otherwise 'any' gives predefined strings: "my","param","order","out"
  52. ("my" prefix-string, "param" is a letter (e.g. "A") for the name of
  53. first parameter or (e.g. "A(") for index parameter variables, "order"
  54. ordering string for ring extension), "out" name of output-file).
  55. @item @strong{Note:}
  56. printlevel < 0 no output at all,
  57. @*printlevel >=0,1,2,.. informs you, what is going on;
  58. @*this proc uses 'execute'.
  59. @end table
  60. @strong{Example:}
  61. @smallexample
  62. @c computed example versal d2t_singular/deform_lib.doc:70
  63. LIB "deform.lib";
  64. int p = printlevel;
  65. printlevel = 0;
  66. ring r1 = 0,(x,y,z,u,v),ds;
  67. matrix m[2][4] = x,y,z,u,y,z,u,v;
  68. ideal Fo = minor(m,2);
  69. // cone over rational normal curve of degree 4
  70. versal(Fo);
  71. @expansion{} // ready: T_1 and T_2
  72. @expansion{} // start computation in degree 2.
  73. @expansion{}
  74. @expansion{} // Result belongs to ring Px.
  75. @expansion{} // Equations of total space of miniversal deformation are
  76. @expansion{} // given by Fs, equations of miniversal base space by Js.
  77. @expansion{} // Make Px the basering and list objects defined in Px by typing:
  78. @expansion{} setring Px; show(Px);
  79. @expansion{} listvar(matrix);
  80. @expansion{} // NOTE: rings Qx, Px, So are alive!
  81. @expansion{} // (use 'kill_rings("");' to remove)
  82. setring Px;
  83. // ___ Equations of miniversal base space ___:
  84. Js;"";
  85. @expansion{} Js[1,1]=BD
  86. @expansion{} Js[1,2]=-AD+D2
  87. @expansion{} Js[1,3]=-CD
  88. @expansion{}
  89. // ___ Equations of miniversal total space ___:
  90. Fs;"";
  91. @expansion{} Fs[1,1]=-u2+zv+Bu+Dv
  92. @expansion{} Fs[1,2]=-zu+yv-Au+Du
  93. @expansion{} Fs[1,3]=-yu+xv+Cu+Dz
  94. @expansion{} Fs[1,4]=z2-yu+Az+By
  95. @expansion{} Fs[1,5]=yz-xu+Bx-Cz
  96. @expansion{} Fs[1,6]=-y2+xz+Ax+Cy
  97. @expansion{}
  98. @c end example versal d2t_singular/deform_lib.doc:70
  99. @end smallexample
  100. @c ---end content versal---
  101. @c ------------------- mod_versal -------------
  102. @node mod_versal, lift_kbase, versal, deform_lib
  103. @subsubsection mod_versal
  104. @cindex mod_versal
  105. @c ---content mod_versal---
  106. Procedure from library @code{deform.lib} (@pxref{deform_lib}).
  107. @table @asis
  108. @item @strong{Usage:}
  109. mod_versal(Mo,I[,d,any]); I=ideal, M=module, d=int, any =list
  110. @item @strong{Compute:}
  111. miniversal deformation of coker(Mo) over Qo=Po/Io, Po=basering;
  112. @item @strong{Create:}
  113. Ringsr (exported):
  114. @*'my'Px = extending the basering by new variables (deformation
  115. parameters), the new variables precede the old ones,
  116. @*the ordering is the product between "my_ord"
  117. @*and "ord(Po)"
  118. @*'my'Qx = Px/Io extending Qo (returns as basering),
  119. @*'my'Ox = Px/(Io+Js) ring of the versal deformation of coker(Ms),
  120. @*'my'So = embedding-ring of the versal base space. (default 'my'="")
  121. Matrices (in Qx, exported):
  122. @*Js = giving the versal base space (obstructions),
  123. @*Ms = giving the versal family of Mo,
  124. @*Ls = giving the lifting of syzygies Lo=syz(Mo),
  125. If d is defined (!=0), it computes up to degree d.
  126. @*If 'any' is defined and any[1] is no string, interactive version.
  127. @*Otherwise 'any' gives predefined strings:"my","param","order","out"
  128. ("my" prefix-string, "param" is a letter (e.g. "A") for the name of
  129. first parameter or (e.g. "A(") for index parameter variables, "ord"
  130. ordering string for ring extension), "out" name of output-file).
  131. @item @strong{Note:}
  132. printlevel < 0 no output at all,
  133. @*printlevel >=0,1,2,.. informs you, what is going on,
  134. @*this proc uses 'execute'.
  135. @end table
  136. @strong{Example:}
  137. @smallexample
  138. @c computed example mod_versal d2t_singular/deform_lib.doc:132
  139. LIB "deform.lib";
  140. int p = printlevel;
  141. printlevel = 1;
  142. ring Ro = 0,(x,y),wp(3,4);
  143. ideal Io = x4+y3;
  144. matrix Mo[2][2] = x2,y,-y2,x2;
  145. mod_versal(Mo,Io);
  146. @expansion{} // vdim (Ext^2) = 4
  147. @expansion{} // vdim (Ext^1) = 4
  148. @expansion{} // ready: Ext1 and Ext2
  149. @expansion{} // Ext1 is quasi-homogeneous represented: 3,6,1,4
  150. @expansion{} // infinitesimal extension
  151. @expansion{} x2-Ax-B, y+Cx+D,
  152. @expansion{} -y2+Cxy+Dy,x2+Ax+B
  153. @expansion{} // start deg = 2
  154. @expansion{} // start deg = 3
  155. @expansion{} // start deg = 4
  156. @expansion{} // start deg = 5
  157. @expansion{} // finished in degree
  158. @expansion{} 5
  159. @expansion{} // quasi-homogeneous weights of miniversal base
  160. @expansion{} 3,6,1,4
  161. @expansion{} // Result belongs to qring Qx
  162. @expansion{} // Equations of total space of miniversal deformation are in Js
  163. @expansion{} -2AB+A3+3CD2-BC3-3AC2D+A2C3,
  164. @expansion{} -B2+A2B+D3-3BC2D+ABC3
  165. @expansion{} // Matrix of the deformed module is Ms and lifted syzygies are Ls.
  166. @expansion{} // Make Qx the basering and list objects defined in Qx by typing:
  167. @expansion{} listvar(ring);setring Qx; show(Qx);listvar(ideal);listvar(matrix);
  168. @expansion{} // NOTE: rings Qx, Ox, So are still alive!
  169. @expansion{} // (use: 'kill_rings();' to remove them)
  170. printlevel = p;
  171. if(system("with","Namespaces")) @{
  172. if(nameof(Current) == "Ring" ) @{
  173. kill Top::Px,Top::Qx,Top::So;
  174. @} else @{
  175. kill Ring::Px,Ring::So;
  176. @}
  177. @}
  178. kill Px,Qx,So;
  179. @c end example mod_versal d2t_singular/deform_lib.doc:132
  180. @end smallexample
  181. @c ---end content mod_versal---
  182. @c ------------------- lift_kbase -------------
  183. @node lift_kbase, lift_rel_kb, mod_versal, deform_lib
  184. @subsubsection lift_kbase
  185. @cindex lift_kbase
  186. @c ---content lift_kbase---
  187. Procedure from library @code{deform.lib} (@pxref{deform_lib}).
  188. @table @asis
  189. @item @strong{Usage:}
  190. lift_kbase(N,M); N,M=poly/ideal/vector/module
  191. @item @strong{Return:}
  192. matrix A, coefficient matrix expressing N as linear combination of
  193. k-basis of M. Let the k-basis have k elements and size(N)=c columns.
  194. Then A satisfies:
  195. @*matrix(reduce(N,std(M)),k,c) = matrix(kbase(std(M)))*A
  196. @item @strong{Assume:}
  197. dim(M)=0 and the monomial ordering is a well ordering or the last
  198. block of the ordering is c or C
  199. @end table
  200. @strong{Example:}
  201. @smallexample
  202. @c computed example lift_kbase d2t_singular/deform_lib.doc:177
  203. LIB "deform.lib";
  204. ring R=0,(x,y),ds;
  205. module M=[x2,xy],[y2,xy],[0,xx],[0,yy];
  206. module N=[x3+xy,x],[x,x+y2];
  207. print(M);
  208. @expansion{} x2,y2,0, 0,
  209. @expansion{} xy,xy,x2,y2
  210. module kb=kbase(std(M));
  211. print(kb);
  212. @expansion{} y2,xy,y,x,1,0,0,0,
  213. @expansion{} 0, 0, 0,0,0,y,x,1
  214. print(N);
  215. @expansion{} xy+x3,x,
  216. @expansion{} x, x+y2
  217. matrix A=lift_kbase(N,M);
  218. print(A);
  219. @expansion{} 0,0,
  220. @expansion{} 1,0,
  221. @expansion{} 0,0,
  222. @expansion{} 0,1,
  223. @expansion{} 0,0,
  224. @expansion{} 0,0,
  225. @expansion{} 1,1,
  226. @expansion{} 0,0
  227. matrix(reduce(N,std(M)),nrows(kb),ncols(A)) - matrix(kbase(std(M)))*A;
  228. @expansion{} _[1,1]=0
  229. @expansion{} _[1,2]=0
  230. @expansion{} _[2,1]=0
  231. @expansion{} _[2,2]=0
  232. @c end example lift_kbase d2t_singular/deform_lib.doc:177
  233. @end smallexample
  234. @c ---end content lift_kbase---
  235. @c ------------------- lift_rel_kb -------------
  236. @node lift_rel_kb, kill_rings, lift_kbase, deform_lib
  237. @subsubsection lift_rel_kb
  238. @cindex lift_rel_kb
  239. @c ---content lift_rel_kb---
  240. Procedure from library @code{deform.lib} (@pxref{deform_lib}).
  241. @table @asis
  242. @item @strong{Usage:}
  243. lift_rel_kb(N,M[,kbaseM,p]);
  244. @item @strong{Assume:}
  245. [p a monomial ] or the product of all variables
  246. @*N, M modules of same rank, M depending only on variables not in p
  247. and vdim(M) is finite in this ring,
  248. @*[ kbaseM the kbase of M in the subring given by variables not in p ] @*
  249. warning: these assumptions are not checked by the procedure
  250. @item @strong{Return:}
  251. matrix A, whose j-th columns present the coeff's of N[j] in kbaseM,
  252. i.e. kbaseM*A = reduce(N,std(M))
  253. @end table
  254. @strong{Example:}
  255. @smallexample
  256. @c computed example lift_rel_kb d2t_singular/deform_lib.doc:218
  257. LIB "deform.lib";
  258. ring r=0,(A,B,x,y),dp;
  259. module M = [x2,xy],[xy,y3],[y2],[0,x];
  260. module kbaseM = [1],[x],[xy],[y],[0,1],[0,y],[0,y2];
  261. poly f=xy;
  262. module N = [AB,BBy],[A3xy+x4,AB*(1+y2)];
  263. matrix A = lift_rel_kb(N,M,kbaseM,f);
  264. print(A);
  265. @expansion{} AB,0,
  266. @expansion{} 0, 0,
  267. @expansion{} 0, A3,
  268. @expansion{} 0, 0,
  269. @expansion{} 0, AB,
  270. @expansion{} B2,0,
  271. @expansion{} 0, AB
  272. "TEST:";
  273. @expansion{} TEST:
  274. print(matrix(kbaseM)*A-matrix(reduce(N,std(M))));
  275. @expansion{} 0,0,
  276. @expansion{} 0,0
  277. @c end example lift_rel_kb d2t_singular/deform_lib.doc:218
  278. @end smallexample
  279. @c ---end content lift_rel_kb---
  280. @c ------------------- kill_rings -------------
  281. @node kill_rings,, lift_rel_kb, deform_lib
  282. @subsubsection kill_rings
  283. @cindex kill_rings
  284. @c ---content kill_rings---
  285. Procedure from library @code{deform.lib} (@pxref{deform_lib}).
  286. @table @asis
  287. @item @strong{Usage:}
  288. kill_rings([string]);
  289. @item @strong{Return:}
  290. nothing, but kills exported rings generated by procedures
  291. 'versal' and 'mod_versal' with optional prefix 'string'
  292. @end table
  293. @c ---end content kill_rings---