elim_lib.tex 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458
  1. @c ---content LibInfo---
  2. @comment This file was generated by doc2tex.pl from d2t_singular/elim_lib.doc
  3. @comment DO NOT EDIT DIRECTLY, BUT EDIT d2t_singular/elim_lib.doc INSTEAD
  4. @c library version: (1.14.2.4,2003/04/16)
  5. @c library file: ../Singular/LIB/elim.lib
  6. @cindex elim.lib
  7. @cindex elim_lib
  8. @table @asis
  9. @item @strong{Library:}
  10. elim.lib
  11. @item @strong{Purpose:}
  12. Elimination, Saturation and Blowing up
  13. @end table
  14. @strong{Procedures:}
  15. @menu
  16. * blowup0:: create presentation of blownup ring of ideal j
  17. * elim:: variable n..m eliminated from id (ideal/module)
  18. * elim1:: p=product of vars to be eliminated from id
  19. * nselect:: select generators not containing n-th [..m-th] variable
  20. * sat:: saturated quotient of ideal/module id by ideal j
  21. * select:: select generators containing all variables n...m
  22. * select1:: select generators containing one variable n...m
  23. @end menu
  24. @c ---end content LibInfo---
  25. @c ------------------- blowup0 -------------
  26. @node blowup0, elim,, elim_lib
  27. @subsubsection blowup0
  28. @cindex blowup0
  29. @c ---content blowup0---
  30. Procedure from library @code{elim.lib} (@pxref{elim_lib}).
  31. @table @asis
  32. @item @strong{Usage:}
  33. blowup0(j[,s1,s2]); j ideal, s1,s2 nonempty strings
  34. @item @strong{Create:}
  35. Create a presentation of the blowup ring of j
  36. @item @strong{Return:}
  37. no return value
  38. @item @strong{Note:}
  39. s1 and s2 are used to give names to the blownup ring and the blownup
  40. ideal (default: s1="j", s2="A")
  41. @*Assume R = char,x(1..n),ord is the basering of j, and s1="j", s2="A"
  42. then the procedure creates a new ring with name Bl_jR
  43. @*(equal to R[A,B,...])
  44. @*Bl_jR = char,(A,B,...,x(1..n)),(dp(k),ord)
  45. @*with k=ncols(j) new variables A,B,... and ordering wp(d1..dk) if j is
  46. homogeneous with deg(j[i])=di resp. dp otherwise for these vars.
  47. If k>26 or size(s2)>1, say s2="A()", the new vars are A(1),...,A(k).
  48. Let j_ be the kernel of the ring map Bl_jR -> R defined by A(i)->j[i],
  49. x(i)->x(i), then the quotient ring Bl_jR/j_ is the blowup ring of j
  50. in R (being isomorphic to R+j+j^2+...). Moreover the procedure creates
  51. a std basis of j_ with name j_ in Bl_jR.
  52. @*This proc uses 'execute' or calls a procedure using 'execute'.
  53. @item @strong{Display:}
  54. printlevel >=0: explain created objects (default)
  55. @end table
  56. @strong{Example:}
  57. @smallexample
  58. @c computed example blowup0 d2t_singular/elim_lib.doc:65
  59. LIB "elim.lib";
  60. ring R=0,(x,y),dp;
  61. poly f=y2+x3; ideal j=jacob(f);
  62. blowup0(j);
  63. @expansion{}
  64. @expansion{} // The proc created the ring Bl_jR (equal to R[A,B])
  65. @expansion{} // it contains the ideal j_ , such that
  66. @expansion{} // Bl_jR/j_ is the blowup ring
  67. @expansion{} // show(Bl_jR); shows this ring.
  68. @expansion{} // Make Bl_jR the basering and see j_ by typing:
  69. @expansion{} setring Bl_jR;
  70. @expansion{} j_;
  71. show(Bl_jR);
  72. @expansion{} // ring: (0),(A,B,x,y),(wp(2,1),dp(2),C);
  73. @expansion{} // minpoly = 0
  74. @expansion{} // objects belonging to this ring:
  75. @expansion{} // j_ [0] ideal, 1 generator(s)
  76. setring Bl_jR;
  77. j_;"";
  78. @expansion{} j_[1]=2Ay-3Bx2
  79. @expansion{}
  80. ring r=32003,(x,y,z),ds;
  81. blowup0(maxideal(1),"m","T()");
  82. @expansion{}
  83. @expansion{} // The proc created the ring Bl_mr (equal to r[T(1..3)])
  84. @expansion{} // it contains the ideal m_ , such that
  85. @expansion{} // Bl_mr/m_ is the blowup ring
  86. @expansion{} // show(Bl_mr); shows this ring.
  87. @expansion{} // Make Bl_mr the basering and see m_ by typing:
  88. @expansion{} setring Bl_mr;
  89. @expansion{} m_;
  90. show(Bl_mr);
  91. @expansion{} // ring: (32003),(T(1),T(2),T(3),x,y,z),(wp(1,1,1),ds(3),C);
  92. @expansion{} // minpoly = 0
  93. @expansion{} // objects belonging to this ring:
  94. @expansion{} // m_ [0] ideal, 3 generator(s)
  95. setring Bl_mr;
  96. m_;
  97. @expansion{} m_[1]=T(1)y-T(2)x
  98. @expansion{} m_[2]=T(1)z-T(3)x
  99. @expansion{} m_[3]=T(2)z-T(3)y
  100. kill Bl_jR, Bl_mr;
  101. @c end example blowup0 d2t_singular/elim_lib.doc:65
  102. @end smallexample
  103. @c ---end content blowup0---
  104. @c ------------------- elim -------------
  105. @node elim, elim1, blowup0, elim_lib
  106. @subsubsection elim
  107. @cindex elim
  108. @c ---content elim---
  109. Procedure from library @code{elim.lib} (@pxref{elim_lib}).
  110. @table @asis
  111. @item @strong{Usage:}
  112. elim(id,n,m); id ideal/module, n,m integers
  113. @item @strong{Returns:}
  114. ideal/module obtained from id by eliminating variables n..m
  115. @item @strong{Note:}
  116. no special monomial ordering is required, result is a SB with
  117. respect to ordering dp (resp. ls) if the first var not to be
  118. eliminated belongs to a -p (resp. -s) block ordering
  119. @*This proc uses 'execute' or calls a procedure using 'execute'.
  120. @end table
  121. @strong{Example:}
  122. @smallexample
  123. @c computed example elim d2t_singular/elim_lib.doc:106
  124. LIB "elim.lib";
  125. ring r=0,(x,y,u,v,w),dp;
  126. ideal i=x-u,y-u2,w-u3,v-x+y3;
  127. elim(i,3,4);
  128. @expansion{} _[1]=y2-xw
  129. @expansion{} _[2]=xy-w
  130. @expansion{} _[3]=x2-y
  131. module m=i*gen(1)+i*gen(2);
  132. m=elim(m,3,4);show(m);
  133. @expansion{} // module, 6 generator(s)
  134. @expansion{} [y2-xw]
  135. @expansion{} [0,y2-xw]
  136. @expansion{} [xy-w]
  137. @expansion{} [0,xy-w]
  138. @expansion{} [x2-y]
  139. @expansion{} [0,x2-y]
  140. @c end example elim d2t_singular/elim_lib.doc:106
  141. @end smallexample
  142. @c inserted refs from d2t_singular/elim_lib.doc:115
  143. @ifinfo
  144. @menu
  145. See also:
  146. * elim1::
  147. * eliminate::
  148. @end menu
  149. @end ifinfo
  150. @iftex
  151. @strong{See also:}
  152. @ref{elim1};
  153. @ref{eliminate}.
  154. @end iftex
  155. @c end inserted refs from d2t_singular/elim_lib.doc:115
  156. @c ---end content elim---
  157. @c ------------------- elim1 -------------
  158. @node elim1, nselect, elim, elim_lib
  159. @subsubsection elim1
  160. @cindex elim1
  161. @c ---content elim1---
  162. Procedure from library @code{elim.lib} (@pxref{elim_lib}).
  163. @table @asis
  164. @item @strong{Usage:}
  165. elim1(id,p); id ideal/module, p product of vars to be eliminated
  166. @item @strong{Return:}
  167. ideal/module obtained from id by eliminating vars occurring in poly
  168. @item @strong{Note:}
  169. no special monomial ordering is required, result is a SB with
  170. respect to ordering dp (resp. ls) if the first var not to be
  171. eliminated belongs to a -p (resp. -s) block ordering
  172. @*This proc uses 'execute' or calls a procedure using 'execute'.
  173. @end table
  174. @strong{Example:}
  175. @smallexample
  176. @c computed example elim1 d2t_singular/elim_lib.doc:144
  177. LIB "elim.lib";
  178. ring r=0,(x,y,t,s,z),dp;
  179. ideal i=x-t,y-t2,z-t3,s-x+y3;
  180. elim1(i,ts);
  181. @expansion{} _[1]=y2-xz
  182. @expansion{} _[2]=xy-z
  183. @expansion{} _[3]=x2-y
  184. module m=i*gen(1)+i*gen(2);
  185. m=elim1(m,st); show(m);
  186. @expansion{} // module, 6 generator(s)
  187. @expansion{} [y2-xz]
  188. @expansion{} [0,y2-xz]
  189. @expansion{} [xy-z]
  190. @expansion{} [0,xy-z]
  191. @expansion{} [x2-y]
  192. @expansion{} [0,x2-y]
  193. @c end example elim1 d2t_singular/elim_lib.doc:144
  194. @end smallexample
  195. @c inserted refs from d2t_singular/elim_lib.doc:153
  196. @ifinfo
  197. @menu
  198. See also:
  199. * elim::
  200. * eliminate::
  201. @end menu
  202. @end ifinfo
  203. @iftex
  204. @strong{See also:}
  205. @ref{elim};
  206. @ref{eliminate}.
  207. @end iftex
  208. @c end inserted refs from d2t_singular/elim_lib.doc:153
  209. @c ---end content elim1---
  210. @c ------------------- nselect -------------
  211. @node nselect, sat, elim1, elim_lib
  212. @subsubsection nselect
  213. @cindex nselect
  214. @c ---content nselect---
  215. Procedure from library @code{elim.lib} (@pxref{elim_lib}).
  216. @table @asis
  217. @item @strong{Usage:}
  218. nselect(id,n[,m]); id a module or ideal, n, m integers
  219. @item @strong{Return:}
  220. generators of id not containing the variable n [up to m]
  221. @end table
  222. @strong{Example:}
  223. @smallexample
  224. @c computed example nselect d2t_singular/elim_lib.doc:176
  225. LIB "elim.lib";
  226. ring r=0,(x,y,t,s,z),(c,dp);
  227. ideal i=x-y,y-z2,z-t3,s-x+y3;
  228. nselect(i,3);
  229. @expansion{} _[1]=x-y
  230. @expansion{} _[2]=-z2+y
  231. @expansion{} _[3]=y3-x+s
  232. module m=i*(gen(1)+gen(2));
  233. show(m);
  234. @expansion{} // module, 4 generator(s)
  235. @expansion{} [x-y,x-y]
  236. @expansion{} [-z2+y,-z2+y]
  237. @expansion{} [-t3+z,-t3+z]
  238. @expansion{} [y3-x+s,y3-x+s]
  239. show(nselect(m,3,4));
  240. @expansion{} // module, 2 generator(s)
  241. @expansion{} [x-y,x-y]
  242. @expansion{} [-z2+y,-z2+y]
  243. @c end example nselect d2t_singular/elim_lib.doc:176
  244. @end smallexample
  245. @c inserted refs from d2t_singular/elim_lib.doc:186
  246. @ifinfo
  247. @menu
  248. See also:
  249. * select::
  250. * select1::
  251. @end menu
  252. @end ifinfo
  253. @iftex
  254. @strong{See also:}
  255. @ref{select};
  256. @ref{select1}.
  257. @end iftex
  258. @c end inserted refs from d2t_singular/elim_lib.doc:186
  259. @c ---end content nselect---
  260. @c ------------------- sat -------------
  261. @node sat, select, nselect, elim_lib
  262. @subsubsection sat
  263. @cindex sat
  264. @c ---content sat---
  265. Procedure from library @code{elim.lib} (@pxref{elim_lib}).
  266. @table @asis
  267. @item @strong{Usage:}
  268. sat(id,j); id=ideal/module, j=ideal
  269. @item @strong{Return:}
  270. list of an ideal/module [1] and an integer [2]:
  271. @*[1] = saturation of id with respect to j (= union_(k=1...) of id:j^k)
  272. [2] = saturation exponent (= min( k | id:j^k = id:j^(k+1) ))
  273. @item @strong{Note:}
  274. [1] is a standard basis in the basering
  275. @item @strong{Display:}
  276. saturation exponent during computation if printlevel >=1
  277. @end table
  278. @strong{Example:}
  279. @smallexample
  280. @c computed example sat d2t_singular/elim_lib.doc:217
  281. LIB "elim.lib";
  282. int p = printlevel;
  283. ring r = 2,(x,y,z),dp;
  284. poly F = x5+y5+(x-y)^2*xyz;
  285. ideal j = jacob(F);
  286. sat(j,maxideal(1));
  287. @expansion{} [1]:
  288. @expansion{} _[1]=x3+x2y+xy2+y3
  289. @expansion{} _[2]=y4+x2yz+y3z
  290. @expansion{} _[3]=x2y2+x2yz+y3z
  291. @expansion{} [2]:
  292. @expansion{} 4
  293. printlevel = 2;
  294. sat(j,maxideal(2));
  295. @expansion{} // compute quotient 1
  296. @expansion{} // compute quotient 2
  297. @expansion{} // compute quotient 3
  298. @expansion{} // saturation becomes stable after 2 iteration(s)
  299. @expansion{}
  300. @expansion{} [1]:
  301. @expansion{} _[1]=x3+x2y+xy2+y3
  302. @expansion{} _[2]=y4+x2yz+y3z
  303. @expansion{} _[3]=x2y2+x2yz+y3z
  304. @expansion{} [2]:
  305. @expansion{} 2
  306. printlevel = p;
  307. @c end example sat d2t_singular/elim_lib.doc:217
  308. @end smallexample
  309. @c ---end content sat---
  310. @c ------------------- select -------------
  311. @node select, select1, sat, elim_lib
  312. @subsubsection select
  313. @cindex select
  314. @c ---content select---
  315. Procedure from library @code{elim.lib} (@pxref{elim_lib}).
  316. @table @asis
  317. @item @strong{Usage:}
  318. select(id,n[,m]); id ideal/module, n, m integers
  319. @item @strong{Return:}
  320. generators of id containing the variable n [all variables up to m]
  321. @item @strong{Note:}
  322. use 'select1' for selecting generators containing at least one of the
  323. variables between n and m
  324. @end table
  325. @strong{Example:}
  326. @smallexample
  327. @c computed example select d2t_singular/elim_lib.doc:252
  328. LIB "elim.lib";
  329. ring r=0,(x,y,t,s,z),(c,dp);
  330. ideal i=x-y,y-z2,z-t3,s-x+y3;
  331. ideal j=select(i,1);
  332. j;
  333. @expansion{} j[1]=x-y
  334. @expansion{} j[2]=y3-x+s
  335. module m=i*(gen(1)+gen(2));
  336. m;
  337. @expansion{} m[1]=[x-y,x-y]
  338. @expansion{} m[2]=[-z2+y,-z2+y]
  339. @expansion{} m[3]=[-t3+z,-t3+z]
  340. @expansion{} m[4]=[y3-x+s,y3-x+s]
  341. select(m,1,2);
  342. @expansion{} _[1]=[x-y,x-y]
  343. @expansion{} _[2]=[y3-x+s,y3-x+s]
  344. @c end example select d2t_singular/elim_lib.doc:252
  345. @end smallexample
  346. @c inserted refs from d2t_singular/elim_lib.doc:263
  347. @ifinfo
  348. @menu
  349. See also:
  350. * nselect::
  351. * select1::
  352. @end menu
  353. @end ifinfo
  354. @iftex
  355. @strong{See also:}
  356. @ref{nselect};
  357. @ref{select1}.
  358. @end iftex
  359. @c end inserted refs from d2t_singular/elim_lib.doc:263
  360. @c ---end content select---
  361. @c ------------------- select1 -------------
  362. @node select1,, select, elim_lib
  363. @subsubsection select1
  364. @cindex select1
  365. @c ---content select1---
  366. Procedure from library @code{elim.lib} (@pxref{elim_lib}).
  367. @table @asis
  368. @item @strong{Usage:}
  369. select1(id,n[,m]); id ideal/module, n, m integers
  370. @item @strong{Return:}
  371. generators of id containing the variable n
  372. @*[at least one of the variables up to m]
  373. @item @strong{Note:}
  374. use 'select' for selecting generators containing all the
  375. variables between n and m
  376. @end table
  377. @strong{Example:}
  378. @smallexample
  379. @c computed example select1 d2t_singular/elim_lib.doc:291
  380. LIB "elim.lib";
  381. ring r=0,(x,y,t,s,z),(c,dp);
  382. ideal i=x-y,y-z2,z-t3,s-x+y3;
  383. ideal j=select1(i,1);
  384. j;
  385. @expansion{} j[1]=x-y
  386. @expansion{} j[2]=y3-x+s
  387. module m=i*(gen(1)+gen(2));
  388. m;
  389. @expansion{} m[1]=[x-y,x-y]
  390. @expansion{} m[2]=[-z2+y,-z2+y]
  391. @expansion{} m[3]=[-t3+z,-t3+z]
  392. @expansion{} m[4]=[y3-x+s,y3-x+s]
  393. select1(m,1,2);
  394. @expansion{} _[1]=[x-y,x-y]
  395. @expansion{} _[2]=[-z2+y,-z2+y]
  396. @expansion{} _[3]=[y3-x+s,y3-x+s]
  397. @c end example select1 d2t_singular/elim_lib.doc:291
  398. @end smallexample
  399. @c inserted refs from d2t_singular/elim_lib.doc:302
  400. @ifinfo
  401. @menu
  402. See also:
  403. * nselect::
  404. * select::
  405. @end menu
  406. @end ifinfo
  407. @iftex
  408. @strong{See also:}
  409. @ref{nselect};
  410. @ref{select}.
  411. @end iftex
  412. @c end inserted refs from d2t_singular/elim_lib.doc:302
  413. @c ---end content select1---