passagemath-singular 10.6.31rc3__cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of passagemath-singular might be problematic. Click here for more details.

Files changed (491) hide show
  1. PySingular.cpython-314-x86_64-linux-gnu.so +0 -0
  2. passagemath_singular-10.6.31rc3.dist-info/METADATA +183 -0
  3. passagemath_singular-10.6.31rc3.dist-info/RECORD +491 -0
  4. passagemath_singular-10.6.31rc3.dist-info/WHEEL +6 -0
  5. passagemath_singular-10.6.31rc3.dist-info/top_level.txt +3 -0
  6. passagemath_singular.libs/libSingular-4-20aec911.4.1.so +0 -0
  7. passagemath_singular.libs/libcddgmp-21acf0c6.so.0.1.3 +0 -0
  8. passagemath_singular.libs/libfactory-4-fcee31da.4.1.so +0 -0
  9. passagemath_singular.libs/libflint-66e12231.so.21.0.0 +0 -0
  10. passagemath_singular.libs/libgf2x-a4cdec90.so.3.0.0 +0 -0
  11. passagemath_singular.libs/libgfortran-83c28eba.so.5.0.0 +0 -0
  12. passagemath_singular.libs/libgmp-6e109695.so.10.5.0 +0 -0
  13. passagemath_singular.libs/libgsl-cda90e79.so.28.0.0 +0 -0
  14. passagemath_singular.libs/libmpfr-82690d50.so.6.2.1 +0 -0
  15. passagemath_singular.libs/libntl-e6f0d543.so.44.0.1 +0 -0
  16. passagemath_singular.libs/libomalloc-0-5c9e866e.9.6.so +0 -0
  17. passagemath_singular.libs/libopenblasp-r0-6dcb67f9.3.29.so +0 -0
  18. passagemath_singular.libs/libpolys-4-5c0a87e0.4.1.so +0 -0
  19. passagemath_singular.libs/libquadmath-2284e583.so.0.0.0 +0 -0
  20. passagemath_singular.libs/libreadline-ea270e21.so.8.2 +0 -0
  21. passagemath_singular.libs/libsingular_resources-4-a1aafc6d.4.1.so +0 -0
  22. passagemath_singular.libs/libtinfo-ceb117d9.so.6.3 +0 -0
  23. sage/algebras/all__sagemath_singular.py +3 -0
  24. sage/algebras/fusion_rings/all.py +19 -0
  25. sage/algebras/fusion_rings/f_matrix.py +2448 -0
  26. sage/algebras/fusion_rings/fast_parallel_fmats_methods.cpython-314-x86_64-linux-gnu.so +0 -0
  27. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pxd +5 -0
  28. sage/algebras/fusion_rings/fast_parallel_fmats_methods.pyx +538 -0
  29. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.cpython-314-x86_64-linux-gnu.so +0 -0
  30. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pxd +3 -0
  31. sage/algebras/fusion_rings/fast_parallel_fusion_ring_braid_repn.pyx +331 -0
  32. sage/algebras/fusion_rings/fusion_double.py +899 -0
  33. sage/algebras/fusion_rings/fusion_ring.py +1580 -0
  34. sage/algebras/fusion_rings/poly_tup_engine.cpython-314-x86_64-linux-gnu.so +0 -0
  35. sage/algebras/fusion_rings/poly_tup_engine.pxd +24 -0
  36. sage/algebras/fusion_rings/poly_tup_engine.pyx +579 -0
  37. sage/algebras/fusion_rings/shm_managers.cpython-314-x86_64-linux-gnu.so +0 -0
  38. sage/algebras/fusion_rings/shm_managers.pxd +24 -0
  39. sage/algebras/fusion_rings/shm_managers.pyx +780 -0
  40. sage/algebras/letterplace/all.py +1 -0
  41. sage/algebras/letterplace/free_algebra_element_letterplace.cpython-314-x86_64-linux-gnu.so +0 -0
  42. sage/algebras/letterplace/free_algebra_element_letterplace.pxd +18 -0
  43. sage/algebras/letterplace/free_algebra_element_letterplace.pyx +755 -0
  44. sage/algebras/letterplace/free_algebra_letterplace.cpython-314-x86_64-linux-gnu.so +0 -0
  45. sage/algebras/letterplace/free_algebra_letterplace.pxd +35 -0
  46. sage/algebras/letterplace/free_algebra_letterplace.pyx +914 -0
  47. sage/algebras/letterplace/letterplace_ideal.cpython-314-x86_64-linux-gnu.so +0 -0
  48. sage/algebras/letterplace/letterplace_ideal.pyx +408 -0
  49. sage/algebras/quatalg/all.py +2 -0
  50. sage/algebras/quatalg/quaternion_algebra.py +4778 -0
  51. sage/algebras/quatalg/quaternion_algebra_cython.cpython-314-x86_64-linux-gnu.so +0 -0
  52. sage/algebras/quatalg/quaternion_algebra_cython.pyx +261 -0
  53. sage/algebras/quatalg/quaternion_algebra_element.cpython-314-x86_64-linux-gnu.so +0 -0
  54. sage/algebras/quatalg/quaternion_algebra_element.pxd +29 -0
  55. sage/algebras/quatalg/quaternion_algebra_element.pyx +2176 -0
  56. sage/all__sagemath_singular.py +11 -0
  57. sage/ext_data/all__sagemath_singular.py +1 -0
  58. sage/ext_data/singular/function_field/core.lib +98 -0
  59. sage/interfaces/all__sagemath_singular.py +1 -0
  60. sage/interfaces/singular.py +2835 -0
  61. sage/libs/all__sagemath_singular.py +1 -0
  62. sage/libs/singular/__init__.py +1 -0
  63. sage/libs/singular/decl.pxd +1168 -0
  64. sage/libs/singular/function.cpython-314-x86_64-linux-gnu.so +0 -0
  65. sage/libs/singular/function.pxd +87 -0
  66. sage/libs/singular/function.pyx +1901 -0
  67. sage/libs/singular/function_factory.py +61 -0
  68. sage/libs/singular/groebner_strategy.cpython-314-x86_64-linux-gnu.so +0 -0
  69. sage/libs/singular/groebner_strategy.pxd +22 -0
  70. sage/libs/singular/groebner_strategy.pyx +582 -0
  71. sage/libs/singular/option.cpython-314-x86_64-linux-gnu.so +0 -0
  72. sage/libs/singular/option.pyx +671 -0
  73. sage/libs/singular/polynomial.cpython-314-x86_64-linux-gnu.so +0 -0
  74. sage/libs/singular/polynomial.pxd +39 -0
  75. sage/libs/singular/polynomial.pyx +661 -0
  76. sage/libs/singular/ring.cpython-314-x86_64-linux-gnu.so +0 -0
  77. sage/libs/singular/ring.pxd +58 -0
  78. sage/libs/singular/ring.pyx +893 -0
  79. sage/libs/singular/singular.cpython-314-x86_64-linux-gnu.so +0 -0
  80. sage/libs/singular/singular.pxd +72 -0
  81. sage/libs/singular/singular.pyx +1944 -0
  82. sage/libs/singular/standard_options.py +145 -0
  83. sage/matrix/all__sagemath_singular.py +1 -0
  84. sage/matrix/matrix_mpolynomial_dense.cpython-314-x86_64-linux-gnu.so +0 -0
  85. sage/matrix/matrix_mpolynomial_dense.pxd +7 -0
  86. sage/matrix/matrix_mpolynomial_dense.pyx +615 -0
  87. sage/rings/all__sagemath_singular.py +1 -0
  88. sage/rings/function_field/all__sagemath_singular.py +1 -0
  89. sage/rings/function_field/derivations_polymod.py +911 -0
  90. sage/rings/function_field/element_polymod.cpython-314-x86_64-linux-gnu.so +0 -0
  91. sage/rings/function_field/element_polymod.pyx +406 -0
  92. sage/rings/function_field/function_field_polymod.py +2611 -0
  93. sage/rings/function_field/ideal_polymod.py +1775 -0
  94. sage/rings/function_field/order_polymod.py +1475 -0
  95. sage/rings/function_field/place_polymod.py +681 -0
  96. sage/rings/polynomial/all__sagemath_singular.py +1 -0
  97. sage/rings/polynomial/multi_polynomial_ideal_libsingular.cpython-314-x86_64-linux-gnu.so +0 -0
  98. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pxd +5 -0
  99. sage/rings/polynomial/multi_polynomial_ideal_libsingular.pyx +339 -0
  100. sage/rings/polynomial/multi_polynomial_libsingular.cpython-314-x86_64-linux-gnu.so +0 -0
  101. sage/rings/polynomial/multi_polynomial_libsingular.pxd +30 -0
  102. sage/rings/polynomial/multi_polynomial_libsingular.pyx +6277 -0
  103. sage/rings/polynomial/plural.cpython-314-x86_64-linux-gnu.so +0 -0
  104. sage/rings/polynomial/plural.pxd +48 -0
  105. sage/rings/polynomial/plural.pyx +3171 -0
  106. sage/symbolic/all__sagemath_singular.py +1 -0
  107. sage/symbolic/comparison_impl.pxi +428 -0
  108. sage/symbolic/constants_c_impl.pxi +178 -0
  109. sage/symbolic/expression.cpython-314-x86_64-linux-gnu.so +0 -0
  110. sage/symbolic/expression.pxd +7 -0
  111. sage/symbolic/expression.pyx +14200 -0
  112. sage/symbolic/getitem_impl.pxi +202 -0
  113. sage/symbolic/pynac.pxi +572 -0
  114. sage/symbolic/pynac_constant_impl.pxi +133 -0
  115. sage/symbolic/pynac_function_impl.pxi +206 -0
  116. sage/symbolic/pynac_impl.pxi +2576 -0
  117. sage/symbolic/pynac_wrap.h +124 -0
  118. sage/symbolic/series_impl.pxi +272 -0
  119. sage/symbolic/substitution_map_impl.pxi +94 -0
  120. sage_wheels/bin/ESingular +0 -0
  121. sage_wheels/bin/Singular +0 -0
  122. sage_wheels/bin/TSingular +0 -0
  123. sage_wheels/lib/singular/MOD/cohomo.la +41 -0
  124. sage_wheels/lib/singular/MOD/cohomo.so +0 -0
  125. sage_wheels/lib/singular/MOD/customstd.la +41 -0
  126. sage_wheels/lib/singular/MOD/customstd.so +0 -0
  127. sage_wheels/lib/singular/MOD/freealgebra.la +41 -0
  128. sage_wheels/lib/singular/MOD/freealgebra.so +0 -0
  129. sage_wheels/lib/singular/MOD/gfanlib.la +41 -0
  130. sage_wheels/lib/singular/MOD/gfanlib.so +0 -0
  131. sage_wheels/lib/singular/MOD/gitfan.la +41 -0
  132. sage_wheels/lib/singular/MOD/gitfan.so +0 -0
  133. sage_wheels/lib/singular/MOD/interval.la +41 -0
  134. sage_wheels/lib/singular/MOD/interval.so +0 -0
  135. sage_wheels/lib/singular/MOD/loctriv.la +41 -0
  136. sage_wheels/lib/singular/MOD/loctriv.so +0 -0
  137. sage_wheels/lib/singular/MOD/machinelearning.la +41 -0
  138. sage_wheels/lib/singular/MOD/machinelearning.so +0 -0
  139. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.la +41 -0
  140. sage_wheels/lib/singular/MOD/p_Procs_FieldGeneral.so +0 -0
  141. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.la +41 -0
  142. sage_wheels/lib/singular/MOD/p_Procs_FieldIndep.so +0 -0
  143. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.la +41 -0
  144. sage_wheels/lib/singular/MOD/p_Procs_FieldQ.so +0 -0
  145. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.la +41 -0
  146. sage_wheels/lib/singular/MOD/p_Procs_FieldZp.so +0 -0
  147. sage_wheels/lib/singular/MOD/partialgb.la +41 -0
  148. sage_wheels/lib/singular/MOD/partialgb.so +0 -0
  149. sage_wheels/lib/singular/MOD/pyobject.la +41 -0
  150. sage_wheels/lib/singular/MOD/pyobject.so +0 -0
  151. sage_wheels/lib/singular/MOD/singmathic.la +41 -0
  152. sage_wheels/lib/singular/MOD/singmathic.so +0 -0
  153. sage_wheels/lib/singular/MOD/sispasm.la +41 -0
  154. sage_wheels/lib/singular/MOD/sispasm.so +0 -0
  155. sage_wheels/lib/singular/MOD/subsets.la +41 -0
  156. sage_wheels/lib/singular/MOD/subsets.so +0 -0
  157. sage_wheels/lib/singular/MOD/systhreads.la +41 -0
  158. sage_wheels/lib/singular/MOD/systhreads.so +0 -0
  159. sage_wheels/lib/singular/MOD/syzextra.la +41 -0
  160. sage_wheels/lib/singular/MOD/syzextra.so +0 -0
  161. sage_wheels/libexec/singular/MOD/change_cost +0 -0
  162. sage_wheels/libexec/singular/MOD/singularsurf +11 -0
  163. sage_wheels/libexec/singular/MOD/singularsurf_jupyter +9 -0
  164. sage_wheels/libexec/singular/MOD/singularsurf_win +10 -0
  165. sage_wheels/libexec/singular/MOD/solve_IP +0 -0
  166. sage_wheels/libexec/singular/MOD/surfex +16 -0
  167. sage_wheels/libexec/singular/MOD/toric_ideal +0 -0
  168. sage_wheels/share/factory/gftables/10201 +342 -0
  169. sage_wheels/share/factory/gftables/1024 +37 -0
  170. sage_wheels/share/factory/gftables/10609 +356 -0
  171. sage_wheels/share/factory/gftables/11449 +384 -0
  172. sage_wheels/share/factory/gftables/11881 +398 -0
  173. sage_wheels/share/factory/gftables/121 +6 -0
  174. sage_wheels/share/factory/gftables/12167 +408 -0
  175. sage_wheels/share/factory/gftables/125 +7 -0
  176. sage_wheels/share/factory/gftables/12769 +428 -0
  177. sage_wheels/share/factory/gftables/128 +7 -0
  178. sage_wheels/share/factory/gftables/1331 +47 -0
  179. sage_wheels/share/factory/gftables/1369 +48 -0
  180. sage_wheels/share/factory/gftables/14641 +490 -0
  181. sage_wheels/share/factory/gftables/15625 +523 -0
  182. sage_wheels/share/factory/gftables/16 +3 -0
  183. sage_wheels/share/factory/gftables/16129 +540 -0
  184. sage_wheels/share/factory/gftables/16384 +549 -0
  185. sage_wheels/share/factory/gftables/16807 +563 -0
  186. sage_wheels/share/factory/gftables/1681 +58 -0
  187. sage_wheels/share/factory/gftables/169 +8 -0
  188. sage_wheels/share/factory/gftables/17161 +574 -0
  189. sage_wheels/share/factory/gftables/1849 +64 -0
  190. sage_wheels/share/factory/gftables/18769 +628 -0
  191. sage_wheels/share/factory/gftables/19321 +646 -0
  192. sage_wheels/share/factory/gftables/19683 +659 -0
  193. sage_wheels/share/factory/gftables/2048 +71 -0
  194. sage_wheels/share/factory/gftables/2187 +75 -0
  195. sage_wheels/share/factory/gftables/2197 +76 -0
  196. sage_wheels/share/factory/gftables/2209 +76 -0
  197. sage_wheels/share/factory/gftables/22201 +742 -0
  198. sage_wheels/share/factory/gftables/22801 +762 -0
  199. sage_wheels/share/factory/gftables/2401 +82 -0
  200. sage_wheels/share/factory/gftables/243 +11 -0
  201. sage_wheels/share/factory/gftables/24389 +815 -0
  202. sage_wheels/share/factory/gftables/24649 +824 -0
  203. sage_wheels/share/factory/gftables/25 +3 -0
  204. sage_wheels/share/factory/gftables/256 +11 -0
  205. sage_wheels/share/factory/gftables/26569 +888 -0
  206. sage_wheels/share/factory/gftables/27 +3 -0
  207. sage_wheels/share/factory/gftables/27889 +932 -0
  208. sage_wheels/share/factory/gftables/2809 +96 -0
  209. sage_wheels/share/factory/gftables/28561 +954 -0
  210. sage_wheels/share/factory/gftables/289 +12 -0
  211. sage_wheels/share/factory/gftables/29791 +995 -0
  212. sage_wheels/share/factory/gftables/29929 +1000 -0
  213. sage_wheels/share/factory/gftables/3125 +107 -0
  214. sage_wheels/share/factory/gftables/32 +4 -0
  215. sage_wheels/share/factory/gftables/32041 +1070 -0
  216. sage_wheels/share/factory/gftables/32761 +1094 -0
  217. sage_wheels/share/factory/gftables/32768 +1095 -0
  218. sage_wheels/share/factory/gftables/343 +14 -0
  219. sage_wheels/share/factory/gftables/3481 +118 -0
  220. sage_wheels/share/factory/gftables/361 +14 -0
  221. sage_wheels/share/factory/gftables/36481 +1218 -0
  222. sage_wheels/share/factory/gftables/3721 +126 -0
  223. sage_wheels/share/factory/gftables/37249 +1244 -0
  224. sage_wheels/share/factory/gftables/38809 +1296 -0
  225. sage_wheels/share/factory/gftables/39601 +1322 -0
  226. sage_wheels/share/factory/gftables/4 +3 -0
  227. sage_wheels/share/factory/gftables/4096 +139 -0
  228. sage_wheels/share/factory/gftables/44521 +1486 -0
  229. sage_wheels/share/factory/gftables/4489 +152 -0
  230. sage_wheels/share/factory/gftables/49 +4 -0
  231. sage_wheels/share/factory/gftables/4913 +166 -0
  232. sage_wheels/share/factory/gftables/49729 +1660 -0
  233. sage_wheels/share/factory/gftables/5041 +170 -0
  234. sage_wheels/share/factory/gftables/50653 +1691 -0
  235. sage_wheels/share/factory/gftables/512 +20 -0
  236. sage_wheels/share/factory/gftables/51529 +1720 -0
  237. sage_wheels/share/factory/gftables/52441 +1750 -0
  238. sage_wheels/share/factory/gftables/529 +20 -0
  239. sage_wheels/share/factory/gftables/5329 +180 -0
  240. sage_wheels/share/factory/gftables/54289 +1812 -0
  241. sage_wheels/share/factory/gftables/57121 +1906 -0
  242. sage_wheels/share/factory/gftables/58081 +1938 -0
  243. sage_wheels/share/factory/gftables/59049 +1971 -0
  244. sage_wheels/share/factory/gftables/6241 +210 -0
  245. sage_wheels/share/factory/gftables/625 +23 -0
  246. sage_wheels/share/factory/gftables/63001 +2102 -0
  247. sage_wheels/share/factory/gftables/64 +5 -0
  248. sage_wheels/share/factory/gftables/6561 +221 -0
  249. sage_wheels/share/factory/gftables/6859 +231 -0
  250. sage_wheels/share/factory/gftables/6889 +232 -0
  251. sage_wheels/share/factory/gftables/729 +27 -0
  252. sage_wheels/share/factory/gftables/7921 +266 -0
  253. sage_wheels/share/factory/gftables/8 +3 -0
  254. sage_wheels/share/factory/gftables/81 +5 -0
  255. sage_wheels/share/factory/gftables/8192 +276 -0
  256. sage_wheels/share/factory/gftables/841 +30 -0
  257. sage_wheels/share/factory/gftables/9 +3 -0
  258. sage_wheels/share/factory/gftables/9409 +316 -0
  259. sage_wheels/share/factory/gftables/961 +34 -0
  260. sage_wheels/share/info/singular.info +191898 -0
  261. sage_wheels/share/singular/LIB/GND.lib +1359 -0
  262. sage_wheels/share/singular/LIB/JMBTest.lib +976 -0
  263. sage_wheels/share/singular/LIB/JMSConst.lib +1363 -0
  264. sage_wheels/share/singular/LIB/KVequiv.lib +699 -0
  265. sage_wheels/share/singular/LIB/SingularityDBM.lib +491 -0
  266. sage_wheels/share/singular/LIB/VecField.lib +1542 -0
  267. sage_wheels/share/singular/LIB/absfact.lib +959 -0
  268. sage_wheels/share/singular/LIB/ainvar.lib +730 -0
  269. sage_wheels/share/singular/LIB/aksaka.lib +419 -0
  270. sage_wheels/share/singular/LIB/alexpoly.lib +2542 -0
  271. sage_wheels/share/singular/LIB/algebra.lib +1193 -0
  272. sage_wheels/share/singular/LIB/all.lib +136 -0
  273. sage_wheels/share/singular/LIB/arcpoint.lib +514 -0
  274. sage_wheels/share/singular/LIB/arnold.lib +4553 -0
  275. sage_wheels/share/singular/LIB/arnoldclassify.lib +2058 -0
  276. sage_wheels/share/singular/LIB/arr.lib +3486 -0
  277. sage_wheels/share/singular/LIB/assprimeszerodim.lib +755 -0
  278. sage_wheels/share/singular/LIB/autgradalg.lib +3361 -0
  279. sage_wheels/share/singular/LIB/bfun.lib +1964 -0
  280. sage_wheels/share/singular/LIB/bimodules.lib +774 -0
  281. sage_wheels/share/singular/LIB/brillnoether.lib +226 -0
  282. sage_wheels/share/singular/LIB/brnoeth.lib +5017 -0
  283. sage_wheels/share/singular/LIB/central.lib +2169 -0
  284. sage_wheels/share/singular/LIB/chern.lib +4162 -0
  285. sage_wheels/share/singular/LIB/cimonom.lib +571 -0
  286. sage_wheels/share/singular/LIB/cisimplicial.lib +1835 -0
  287. sage_wheels/share/singular/LIB/classify.lib +3239 -0
  288. sage_wheels/share/singular/LIB/classify2.lib +1462 -0
  289. sage_wheels/share/singular/LIB/classifyMapGerms.lib +1515 -0
  290. sage_wheels/share/singular/LIB/classify_aeq.lib +3253 -0
  291. sage_wheels/share/singular/LIB/classifyceq.lib +2092 -0
  292. sage_wheels/share/singular/LIB/classifyci.lib +1133 -0
  293. sage_wheels/share/singular/LIB/combinat.lib +91 -0
  294. sage_wheels/share/singular/LIB/compregb.lib +276 -0
  295. sage_wheels/share/singular/LIB/control.lib +1636 -0
  296. sage_wheels/share/singular/LIB/crypto.lib +3795 -0
  297. sage_wheels/share/singular/LIB/curveInv.lib +667 -0
  298. sage_wheels/share/singular/LIB/curvepar.lib +1817 -0
  299. sage_wheels/share/singular/LIB/customstd.lib +100 -0
  300. sage_wheels/share/singular/LIB/deRham.lib +5979 -0
  301. sage_wheels/share/singular/LIB/decodegb.lib +2134 -0
  302. sage_wheels/share/singular/LIB/decomp.lib +1655 -0
  303. sage_wheels/share/singular/LIB/deflation.lib +872 -0
  304. sage_wheels/share/singular/LIB/deform.lib +925 -0
  305. sage_wheels/share/singular/LIB/difform.lib +3055 -0
  306. sage_wheels/share/singular/LIB/divisors.lib +750 -0
  307. sage_wheels/share/singular/LIB/dmod.lib +5817 -0
  308. sage_wheels/share/singular/LIB/dmodapp.lib +3269 -0
  309. sage_wheels/share/singular/LIB/dmodideal.lib +1211 -0
  310. sage_wheels/share/singular/LIB/dmodloc.lib +2645 -0
  311. sage_wheels/share/singular/LIB/dmodvar.lib +818 -0
  312. sage_wheels/share/singular/LIB/dummy.lib +17 -0
  313. sage_wheels/share/singular/LIB/elim.lib +1009 -0
  314. sage_wheels/share/singular/LIB/ellipticcovers.lib +548 -0
  315. sage_wheels/share/singular/LIB/enumpoints.lib +146 -0
  316. sage_wheels/share/singular/LIB/equising.lib +2127 -0
  317. sage_wheels/share/singular/LIB/ffmodstd.lib +2384 -0
  318. sage_wheels/share/singular/LIB/ffsolve.lib +1289 -0
  319. sage_wheels/share/singular/LIB/findifs.lib +778 -0
  320. sage_wheels/share/singular/LIB/finitediff.lib +1768 -0
  321. sage_wheels/share/singular/LIB/finvar.lib +7989 -0
  322. sage_wheels/share/singular/LIB/fpadim.lib +2429 -0
  323. sage_wheels/share/singular/LIB/fpalgebras.lib +1666 -0
  324. sage_wheels/share/singular/LIB/fpaprops.lib +1462 -0
  325. sage_wheels/share/singular/LIB/freegb.lib +3853 -0
  326. sage_wheels/share/singular/LIB/general.lib +1350 -0
  327. sage_wheels/share/singular/LIB/gfan.lib +1768 -0
  328. sage_wheels/share/singular/LIB/gitfan.lib +3130 -0
  329. sage_wheels/share/singular/LIB/gkdim.lib +99 -0
  330. sage_wheels/share/singular/LIB/gmspoly.lib +589 -0
  331. sage_wheels/share/singular/LIB/gmssing.lib +1739 -0
  332. sage_wheels/share/singular/LIB/goettsche.lib +909 -0
  333. sage_wheels/share/singular/LIB/graal.lib +1366 -0
  334. sage_wheels/share/singular/LIB/gradedModules.lib +2541 -0
  335. sage_wheels/share/singular/LIB/graphics.lib +360 -0
  336. sage_wheels/share/singular/LIB/grobcov.lib +7706 -0
  337. sage_wheels/share/singular/LIB/groups.lib +1123 -0
  338. sage_wheels/share/singular/LIB/grwalk.lib +507 -0
  339. sage_wheels/share/singular/LIB/hdepth.lib +194 -0
  340. sage_wheels/share/singular/LIB/help.cnf +57 -0
  341. sage_wheels/share/singular/LIB/hess.lib +1946 -0
  342. sage_wheels/share/singular/LIB/hnoether.lib +4292 -0
  343. sage_wheels/share/singular/LIB/hodge.lib +400 -0
  344. sage_wheels/share/singular/LIB/homolog.lib +1965 -0
  345. sage_wheels/share/singular/LIB/hyperel.lib +975 -0
  346. sage_wheels/share/singular/LIB/inout.lib +679 -0
  347. sage_wheels/share/singular/LIB/integralbasis.lib +6224 -0
  348. sage_wheels/share/singular/LIB/interval.lib +1418 -0
  349. sage_wheels/share/singular/LIB/intprog.lib +778 -0
  350. sage_wheels/share/singular/LIB/invar.lib +443 -0
  351. sage_wheels/share/singular/LIB/involut.lib +980 -0
  352. sage_wheels/share/singular/LIB/jacobson.lib +1215 -0
  353. sage_wheels/share/singular/LIB/kskernel.lib +534 -0
  354. sage_wheels/share/singular/LIB/latex.lib +3146 -0
  355. sage_wheels/share/singular/LIB/lejeune.lib +651 -0
  356. sage_wheels/share/singular/LIB/linalg.lib +2040 -0
  357. sage_wheels/share/singular/LIB/locnormal.lib +212 -0
  358. sage_wheels/share/singular/LIB/lrcalc.lib +526 -0
  359. sage_wheels/share/singular/LIB/makedbm.lib +294 -0
  360. sage_wheels/share/singular/LIB/mathml.lib +813 -0
  361. sage_wheels/share/singular/LIB/matrix.lib +1372 -0
  362. sage_wheels/share/singular/LIB/maxlike.lib +1132 -0
  363. sage_wheels/share/singular/LIB/methods.lib +212 -0
  364. sage_wheels/share/singular/LIB/moddiq.lib +322 -0
  365. sage_wheels/share/singular/LIB/modfinduni.lib +181 -0
  366. sage_wheels/share/singular/LIB/modnormal.lib +218 -0
  367. sage_wheels/share/singular/LIB/modprimdec.lib +1278 -0
  368. sage_wheels/share/singular/LIB/modquotient.lib +269 -0
  369. sage_wheels/share/singular/LIB/modstd.lib +1024 -0
  370. sage_wheels/share/singular/LIB/modular.lib +545 -0
  371. sage_wheels/share/singular/LIB/modules.lib +2561 -0
  372. sage_wheels/share/singular/LIB/modwalk.lib +609 -0
  373. sage_wheels/share/singular/LIB/mondromy.lib +1016 -0
  374. sage_wheels/share/singular/LIB/monomialideal.lib +3851 -0
  375. sage_wheels/share/singular/LIB/mprimdec.lib +2353 -0
  376. sage_wheels/share/singular/LIB/mregular.lib +1863 -0
  377. sage_wheels/share/singular/LIB/multigrading.lib +5629 -0
  378. sage_wheels/share/singular/LIB/ncHilb.lib +777 -0
  379. sage_wheels/share/singular/LIB/ncModslimgb.lib +791 -0
  380. sage_wheels/share/singular/LIB/ncalg.lib +16311 -0
  381. sage_wheels/share/singular/LIB/ncall.lib +31 -0
  382. sage_wheels/share/singular/LIB/ncdecomp.lib +468 -0
  383. sage_wheels/share/singular/LIB/ncfactor.lib +13371 -0
  384. sage_wheels/share/singular/LIB/ncfrac.lib +1023 -0
  385. sage_wheels/share/singular/LIB/nchilbert.lib +448 -0
  386. sage_wheels/share/singular/LIB/nchomolog.lib +759 -0
  387. sage_wheels/share/singular/LIB/ncloc.lib +361 -0
  388. sage_wheels/share/singular/LIB/ncpreim.lib +795 -0
  389. sage_wheels/share/singular/LIB/ncrat.lib +2849 -0
  390. sage_wheels/share/singular/LIB/nctools.lib +1887 -0
  391. sage_wheels/share/singular/LIB/nets.lib +1456 -0
  392. sage_wheels/share/singular/LIB/nfmodstd.lib +1000 -0
  393. sage_wheels/share/singular/LIB/nfmodsyz.lib +732 -0
  394. sage_wheels/share/singular/LIB/noether.lib +1106 -0
  395. sage_wheels/share/singular/LIB/normal.lib +8700 -0
  396. sage_wheels/share/singular/LIB/normaliz.lib +2226 -0
  397. sage_wheels/share/singular/LIB/ntsolve.lib +362 -0
  398. sage_wheels/share/singular/LIB/numerAlg.lib +560 -0
  399. sage_wheels/share/singular/LIB/numerDecom.lib +2261 -0
  400. sage_wheels/share/singular/LIB/olga.lib +1933 -0
  401. sage_wheels/share/singular/LIB/orbitparam.lib +351 -0
  402. sage_wheels/share/singular/LIB/parallel.lib +319 -0
  403. sage_wheels/share/singular/LIB/paraplanecurves.lib +3110 -0
  404. sage_wheels/share/singular/LIB/perron.lib +202 -0
  405. sage_wheels/share/singular/LIB/pfd.lib +2223 -0
  406. sage_wheels/share/singular/LIB/phindex.lib +642 -0
  407. sage_wheels/share/singular/LIB/pointid.lib +673 -0
  408. sage_wheels/share/singular/LIB/polybori.lib +1430 -0
  409. sage_wheels/share/singular/LIB/polyclass.lib +525 -0
  410. sage_wheels/share/singular/LIB/polylib.lib +1174 -0
  411. sage_wheels/share/singular/LIB/polymake.lib +1902 -0
  412. sage_wheels/share/singular/LIB/presolve.lib +1533 -0
  413. sage_wheels/share/singular/LIB/primdec.lib +9576 -0
  414. sage_wheels/share/singular/LIB/primdecint.lib +1782 -0
  415. sage_wheels/share/singular/LIB/primitiv.lib +401 -0
  416. sage_wheels/share/singular/LIB/puiseuxexpansions.lib +1631 -0
  417. sage_wheels/share/singular/LIB/purityfiltration.lib +960 -0
  418. sage_wheels/share/singular/LIB/qhmoduli.lib +1561 -0
  419. sage_wheels/share/singular/LIB/qmatrix.lib +293 -0
  420. sage_wheels/share/singular/LIB/random.lib +455 -0
  421. sage_wheels/share/singular/LIB/ratgb.lib +489 -0
  422. sage_wheels/share/singular/LIB/realclassify.lib +5759 -0
  423. sage_wheels/share/singular/LIB/realizationMatroids.lib +772 -0
  424. sage_wheels/share/singular/LIB/realrad.lib +1197 -0
  425. sage_wheels/share/singular/LIB/recover.lib +2628 -0
  426. sage_wheels/share/singular/LIB/redcgs.lib +3984 -0
  427. sage_wheels/share/singular/LIB/reesclos.lib +465 -0
  428. sage_wheels/share/singular/LIB/resbinomial.lib +2802 -0
  429. sage_wheels/share/singular/LIB/resgraph.lib +789 -0
  430. sage_wheels/share/singular/LIB/resjung.lib +820 -0
  431. sage_wheels/share/singular/LIB/resolve.lib +5110 -0
  432. sage_wheels/share/singular/LIB/resources.lib +170 -0
  433. sage_wheels/share/singular/LIB/reszeta.lib +5473 -0
  434. sage_wheels/share/singular/LIB/ring.lib +1328 -0
  435. sage_wheels/share/singular/LIB/ringgb.lib +343 -0
  436. sage_wheels/share/singular/LIB/rinvar.lib +1153 -0
  437. sage_wheels/share/singular/LIB/rootisolation.lib +1481 -0
  438. sage_wheels/share/singular/LIB/rootsmr.lib +709 -0
  439. sage_wheels/share/singular/LIB/rootsur.lib +886 -0
  440. sage_wheels/share/singular/LIB/rstandard.lib +607 -0
  441. sage_wheels/share/singular/LIB/rwalk.lib +336 -0
  442. sage_wheels/share/singular/LIB/sagbi.lib +1353 -0
  443. sage_wheels/share/singular/LIB/sagbiNormaliz.lib +1622 -0
  444. sage_wheels/share/singular/LIB/sagbiNormaliz0.lib +1498 -0
  445. sage_wheels/share/singular/LIB/sagbigrob.lib +449 -0
  446. sage_wheels/share/singular/LIB/schreyer.lib +321 -0
  447. sage_wheels/share/singular/LIB/schubert.lib +2551 -0
  448. sage_wheels/share/singular/LIB/sets.lib +524 -0
  449. sage_wheels/share/singular/LIB/sheafcoh.lib +1663 -0
  450. sage_wheels/share/singular/LIB/signcond.lib +437 -0
  451. sage_wheels/share/singular/LIB/sing.lib +1094 -0
  452. sage_wheels/share/singular/LIB/sing4ti2.lib +419 -0
  453. sage_wheels/share/singular/LIB/solve.lib +2243 -0
  454. sage_wheels/share/singular/LIB/spcurve.lib +1077 -0
  455. sage_wheels/share/singular/LIB/spectrum.lib +62 -0
  456. sage_wheels/share/singular/LIB/sresext.lib +757 -0
  457. sage_wheels/share/singular/LIB/ssi.lib +143 -0
  458. sage_wheels/share/singular/LIB/standard.lib +2769 -0
  459. sage_wheels/share/singular/LIB/stanleyreisner.lib +473 -0
  460. sage_wheels/share/singular/LIB/stdmodule.lib +547 -0
  461. sage_wheels/share/singular/LIB/stratify.lib +1070 -0
  462. sage_wheels/share/singular/LIB/surf.lib +506 -0
  463. sage_wheels/share/singular/LIB/surf_jupyter.lib +223 -0
  464. sage_wheels/share/singular/LIB/surfacesignature.lib +522 -0
  465. sage_wheels/share/singular/LIB/surfex.lib +1462 -0
  466. sage_wheels/share/singular/LIB/swalk.lib +877 -0
  467. sage_wheels/share/singular/LIB/symodstd.lib +1570 -0
  468. sage_wheels/share/singular/LIB/systhreads.lib +74 -0
  469. sage_wheels/share/singular/LIB/tasks.lib +1324 -0
  470. sage_wheels/share/singular/LIB/tateProdCplxNegGrad.lib +2412 -0
  471. sage_wheels/share/singular/LIB/teachstd.lib +858 -0
  472. sage_wheels/share/singular/LIB/template.lib +116 -0
  473. sage_wheels/share/singular/LIB/toric.lib +1119 -0
  474. sage_wheels/share/singular/LIB/transformation.lib +116 -0
  475. sage_wheels/share/singular/LIB/triang.lib +1197 -0
  476. sage_wheels/share/singular/LIB/tropical.lib +8741 -0
  477. sage_wheels/share/singular/LIB/tropicalEllipticCovers.lib +2922 -0
  478. sage_wheels/share/singular/LIB/tropicalNewton.lib +1128 -0
  479. sage_wheels/share/singular/LIB/tst.lib +1108 -0
  480. sage_wheels/share/singular/LIB/weierstr.lib +241 -0
  481. sage_wheels/share/singular/LIB/zeroset.lib +1478 -0
  482. sage_wheels/share/singular/emacs/.emacs-general +184 -0
  483. sage_wheels/share/singular/emacs/.emacs-singular +234 -0
  484. sage_wheels/share/singular/emacs/COPYING +44 -0
  485. sage_wheels/share/singular/emacs/cmd-cmpl.el +241 -0
  486. sage_wheels/share/singular/emacs/ex-cmpl.el +1681 -0
  487. sage_wheels/share/singular/emacs/hlp-cmpl.el +4318 -0
  488. sage_wheels/share/singular/emacs/lib-cmpl.el +179 -0
  489. sage_wheels/share/singular/emacs/singular.el +4273 -0
  490. sage_wheels/share/singular/emacs/singular.xpm +39 -0
  491. sage_wheels/share/singular/singular.idx +5002 -0
@@ -0,0 +1,759 @@
1
+ ////////////////////////////////////////////////////////////////////////////
2
+ version="version nchomolog.lib 4.1.2.0 Feb_2019 "; // $Id: 94310a252aaa213111462822d4eee80be15423d0 $
3
+ category="Noncommutative";
4
+ info="
5
+ LIBRARY: nchomolog.lib Procedures for Noncommutative Homological Algebra
6
+ AUTHORS: Viktor Levandovskyy levandov@math.rwth-aachen.de,
7
+ @* Christian Schilli, christian.schilli@rwth-aachen.de,
8
+ @* Gerhard Pfister, pfister@mathematik.uni-kl.de
9
+
10
+ OVERVIEW: In this library we present tools of homological algebra for
11
+ finitely presented modules over GR-algebras.
12
+
13
+ PROCEDURES:
14
+ ncExt_R(k,M); computes presentation of Ext^k(M',R), M module, R basering, M'=coker(M)
15
+ ncHom(M,N); computes presentation of Hom(M',N'), M,N modules, M'=coker(M), N'=coker(N)
16
+ coHom(A,k); computes presentation of Hom(R^k,A), A matrix over basering R
17
+ contraHom(A,k); computes presentation of Hom(A,R^k), A matrix over basering R
18
+ dmodoublext(M, l); computes presentation of Ext_D^i(Ext_D^i(M,D),D), where D is a basering
19
+ is_cenBimodule(M); checks whether a module presented by M is Artin-centralizing
20
+ is_cenSubbimodule(M); checks whether a subbimodule M is Artin-centralizing
21
+ ";
22
+
23
+ LIB "dmod.lib";
24
+ LIB "gkdim.lib";
25
+ LIB "involut.lib";
26
+ LIB "nctools.lib";
27
+ LIB "ncalg.lib";
28
+ LIB "central.lib";
29
+
30
+ // ncExt(k,M,N); Ext^k(M',N'), M,N modules, M'=coker(M), N'=coker(N)
31
+ // ncTensorMod(M,N); Tensor product of modules M'=coker(M), N'=coker(N)
32
+ // ncTor(k,M,N); Tor_k(M',N'), M,N modules, M'=coker(M), N'=coker(N)
33
+ // tensorMaps(M,N); tensor product of matrices
34
+
35
+
36
+ /* LOG:
37
+ 5.12.2012, VL: cleanup, is_cenSubbimodule and is_cenBimodule are added for assume checks;
38
+ added doc for contraHom and coHom; assume check for ncHom etc.
39
+ */
40
+
41
+ /* TODO:
42
+ add noncomm examples to important procedures ncHom,
43
+ */
44
+
45
+ proc contraHom(matrix M, int s)
46
+ "USAGE: contraHom(A,k); A matrix, k int
47
+ RETURN: matrix
48
+ PURPOSE: compute the matrix of a homomorphism Hom(A,R^k), where R is the basering. Let A be a matrix defining a map F1-->F2 of free R-modules, then the matrix of Hom(F2,R^k)-->Hom(F1,R^k) is computed.
49
+ NOTE: if A is matrix of a left (resp. right) R-module homomorphism, then Hom(A,R^k) is a right (resp. left) R-module R-module homomorphism
50
+ EXAMPLE: example contraHom; shows an example.
51
+ "
52
+ {
53
+ // also possible: compute with kontrahom from homolog_lib
54
+ // and warn that the module changes its side
55
+ int n,m=ncols(M),nrows(M);
56
+ int a,b,c;
57
+ matrix R[s*n][s*m];
58
+ for(b=1; b<=m; b++)
59
+ {
60
+ for(a=1; a<=s; a++)
61
+ {
62
+ for(c=1; c<=n; c++)
63
+ {
64
+ R[(a-1)*n+c,(a-1)*m+b] = M[b,c];
65
+ }
66
+ }
67
+ }
68
+ return(R);
69
+ }
70
+ example
71
+ { "EXAMPLE:"; echo = 2;
72
+ ring A=0,(x,y,z),dp;
73
+ matrix M[3][3]=1,2,3,
74
+ 4,5,6,
75
+ 7,8,9;
76
+ module cM = contraHom(M,2);
77
+ print(cM);
78
+ }
79
+
80
+ proc coHom(matrix M, int s)
81
+ "USAGE: coHom(A,k); A matrix, k int
82
+ PURPOSE: compute the matrix of a homomorphism Hom(R^k,A), where R is the basering. Let A be a matrix defining a map F1-->F2 of free R-modules, then the matrix of Hom(R^k,F1)-->Hom(R^k,F2) is computed.
83
+ NOTE: Both A and Hom(A,R^k) are matrices for either left or right R-module homomorphisms
84
+ EXAMPLE: example coHom; shows an example.
85
+ "
86
+ {
87
+ int n,m=ncols(M),nrows(M);
88
+ int a,b,c;
89
+ matrix R[s*m][s*n];
90
+ for(b=1; b<=s; b++)
91
+ {
92
+ for(a=1; a<=m; a++)
93
+ {
94
+ for(c=1; c<=n; c++)
95
+ {
96
+ R[(a-1)*s+b,(c-1)*s+b] = M[a,c];
97
+ }
98
+ }
99
+ }
100
+ return(R);
101
+ }
102
+ example
103
+ { "EXAMPLE:"; echo = 2;
104
+ ring A=0,(x,y,z),dp;
105
+ matrix M[3][3]=1,2,3,
106
+ 4,5,6,
107
+ 7,8,9;
108
+ module cM = coHom(M,2);
109
+ print(cM);
110
+ }
111
+
112
+
113
+ proc ncHom(matrix M, matrix N)
114
+ "USAGE: ncHom(M,N); M,N modules
115
+ COMPUTE: A presentation of Hom(M',N'), M'=coker(M), N'=coker(N)
116
+ ASSUME: M' is a left module, N' is a centralizing bimodule
117
+ NOTE: ncHom(M,N) is a right module, hence a right presentation matrix
118
+ is returned
119
+ EXAMPLE: example ncHom; shows examples
120
+ "
121
+ {
122
+ // assume: M is left module; nothing to check
123
+ // assume: N is centralizing bimodule: to check
124
+ if ( !is_cenBimodule(N) )
125
+ {
126
+ ERROR("Second module in not centralizing.");
127
+ }
128
+ // returns a right presentation matrix (for a right module)
129
+ matrix F = contraHom(M,nrows(N));
130
+ matrix B = coHom(N,ncols(M));
131
+ matrix C = coHom(N,nrows(M));
132
+ def Rbase = basering;
133
+ def Rop = opposite(Rbase);
134
+ setring Rop;
135
+ matrix Bop = oppose(Rbase, B);
136
+ matrix Cop = oppose(Rbase, C);
137
+ matrix Fop = oppose(Rbase, F);
138
+ matrix Dop = modulo(Fop, Bop);
139
+ matrix Eop = modulo(Dop, Cop);
140
+ setring Rbase;
141
+ matrix E = oppose(Rop, Eop);
142
+ kill Rop;
143
+ return(E);
144
+ }
145
+ example
146
+ { "EXAMPLE:"; echo = 2;
147
+ ring A=0,(x,y,z),dp;
148
+ matrix M[3][3]=1,2,3,
149
+ 4,5,6,
150
+ 7,8,9;
151
+ matrix N[2][2]=x,y,
152
+ z,0;
153
+ module H = ncHom(M,N);
154
+ print(H);
155
+ }
156
+
157
+ proc ncHom_alt(matrix M, matrix N)
158
+ {
159
+ // shorter but potentially slower
160
+ matrix F = contraHom(M,nrows(N)); // \varphi^*
161
+ matrix B = coHom(N,ncols(M)); // i
162
+ matrix C = coHom(N,nrows(M)); // j
163
+ matrix D = rightModulo(F,B); // D
164
+ matrix E = rightModulo(D,C); // Hom(M,N)
165
+ return(E);
166
+ }
167
+ example
168
+ { "EXAMPLE:"; echo = 2;
169
+ ring A=0,(x,y,z),dp;
170
+ matrix M[3][3]=1,2,3,
171
+ 4,5,6,
172
+ 7,8,9;
173
+ matrix N[2][2]=x,y,
174
+ z,0;
175
+ module H = ncHom_alt(M,N);
176
+ print(H);
177
+ }
178
+
179
+ proc ncHom_R(matrix M)
180
+ "USAGE: ncHom_R(M); M a module
181
+ COMPUTE: A presentation of Hom_R(M',R), M'=coker(M)
182
+ ASSUME: M' is a left module
183
+ NOTE: ncHom_R(M) is a right module, hence a right presentation matrix is returned
184
+ EXAMPLE: example ncHom_R; shows examples
185
+ "
186
+ {
187
+ // assume: M is left module
188
+ // returns a right presentation matrix
189
+ // for a right module
190
+ matrix F = transpose(M);
191
+ def Rbase = basering;
192
+ def Rop = opposite(Rbase);
193
+ setring Rop;
194
+ matrix Fop = oppose(Rbase, F);
195
+ matrix Dop = modulo(Fop, std(0)); //ker Hom(A^n,A) -> Hom(A^m,A)
196
+ matrix Eop = modulo(Dop, std(0)); // its presentation
197
+ setring Rbase;
198
+ matrix E = oppose(Rop, Eop);
199
+ kill Rop;
200
+ return(E);
201
+ }
202
+ example
203
+ { "EXAMPLE:"; echo = 2;
204
+ ring A=0,(x,t,dx,dt),dp;
205
+ def W = Weyl(); setring W;
206
+ matrix M[2][2] =
207
+ dt, dx,
208
+ t*dx,x*dt;
209
+ module H = ncHom_R(M);
210
+ print(H);
211
+ matrix N[2][1] = x,dx;
212
+ H = ncHom_R(N);
213
+ print(H);
214
+ }
215
+
216
+
217
+ proc is_cenBimodule(module M)
218
+ "USAGE: is_cenBimodule(M); M module
219
+ COMPUTE: 1, if a module, presented by M can be centralizing in the sense of Artin and 0 otherwise
220
+ NOTE: only one condition for centralizing factor module can be checked algorithmically
221
+ EXAMPLE: example is_cenBimodule; shows examples
222
+ "
223
+ {
224
+ // define in a ring R, for a module R: cen(M) ={ m in M: mr = rm for all r in R}
225
+ // according to the definition, M is a centralizing bimodule <=> M is generated by cen(M)
226
+ // if basering R is a G-algebra, then prop 6.4 of BGV indicates it's enough to provide
227
+ // commutation of elements of M with the generators x_i of R
228
+ // prop 6.4 verbatim generalizes to R = R'/I for a twosided I.
229
+ // is M generates submodule, see the proc is_cenSubbimodule
230
+ // let M be a presentation matrix for P=R*/R*M, then [e_i + M]x_j=x_j[e_i+M]
231
+ // <=> Mx_j - x_jM in M must hold; thus forall j: Mx_j in M; thus M has to be
232
+ // closed from the right, that is to be a two-sided submodule indeed
233
+ // the rest of checks are complicated by now, so do the check only
234
+ // *the algorithm *//
235
+ if (isCommutative() ) { return(int(1));}
236
+ int n = nvars(basering);
237
+ int ans = 0;
238
+ int i,j;
239
+ vector P;
240
+ module N;
241
+ if ( attrib(M,"isSB") != 1)
242
+ {
243
+ N = std(M);
244
+ }
245
+ else
246
+ {
247
+ N = M;
248
+ }
249
+ // N is std(M) now
250
+ for(i=1; i<=ncols(M); i++)
251
+ {
252
+ P = M[i];
253
+ if (P!=0)
254
+ {
255
+ for(j=1; j<=n; j++)
256
+ {
257
+ if ( NF(P*var(j) - var(j)*P, N) != 0)
258
+ {
259
+ return(ans);
260
+ }
261
+ }
262
+ }
263
+ }
264
+ ans = 1;
265
+ return(ans);
266
+ }
267
+ example
268
+ { "EXAMPLE:"; echo = 2;
269
+ def A = makeUsl2(); setring A;
270
+ poly p = 4*e*f + h^2-2*h; // generator of the center
271
+ matrix M[2][2] = p, p^2-7,0,p*(p+1);
272
+ is_cenBimodule(M); // M is centralizing
273
+ matrix N[2][2] = p, e*f,h,p*(p+1);
274
+ is_cenBimodule(N); // N is not centralizing
275
+ }
276
+
277
+ proc is_cenSubbimodule(module M)
278
+ "USAGE: is_cenSubbimodule(M); M module
279
+ COMPUTE: 1, if a subbimodule, generated by the columns of M is
280
+ centralizing in the sense of Artin and 0 otherwise
281
+ EXAMPLE: example is_cenSubbimodule; shows examples
282
+ "
283
+ {
284
+ // note: M in R^m is centralizing subbimodule iff it is generated by vectors,
285
+ // each nonconstant component of which is central; 2 check: every entry of the
286
+ // matrix M is central
287
+ if (isCommutative()) { return(int(1));}
288
+ return( inCenter(ideal(matrix(M))) );
289
+ }
290
+ example
291
+ { "EXAMPLE:"; echo = 2;
292
+ def A = makeUsl2(); setring A;
293
+ poly p = 4*e*f + h^2-2*h; // generator of the center
294
+ matrix M[2][2] = p, p^2-7,0,p*(p+1);
295
+ is_cenSubbimodule(M); // M is centralizing subbimodule
296
+ matrix N[2][2] = p, e*f,h,p*(p+1);
297
+ is_cenSubbimodule(N); // N is not centralizing subbimodule
298
+ }
299
+
300
+
301
+ proc ncExt(int i, matrix Ps, matrix Ph)
302
+ "USAGE: Ext(i,M,N); i int, M,N matrices
303
+ COMPUTE: A presentation of Ext^i(M',N'); for M'=coker(M) and N'=coker(N).
304
+ ASSUME: M' is a left module, N' is a centralizing bimodule
305
+ NOTE: ncExt(M,N) is a right module, hence a right presentation matrix
306
+ is returned
307
+ EXAMPLE: example ncExt; shows examples
308
+ "
309
+ {
310
+ if ( !is_cenBimodule(Ph) )
311
+ {
312
+ ERROR("Second module in not centralizing.");
313
+ }
314
+
315
+ if(i==0) { return(module(ncHom(Ps,Ph))); }
316
+ list Phi = mres(Ps,i+1);
317
+ module Im = coHom(Ph,ncols(Phi[i+1]));
318
+ module f = contraHom(matrix(Phi[i+1]),nrows(Ph));
319
+ module Im1 = coHom(Ph,ncols(Phi[i]));
320
+ module Im2 = contraHom(matrix(Phi[i]),nrows(Ph));
321
+ def Rbase = basering;
322
+ def Rop = opposite(Rbase);
323
+ setring Rop;
324
+ module fop = oppose(Rbase,f);
325
+ module Imop = oppose(Rbase,Im);
326
+ module Im1op = oppose(Rbase,Im1);
327
+ module Im2op = oppose(Rbase,Im2);
328
+ module ker_op = modulo(fop,Imop);
329
+ module ext_op = modulo(ker_op,Im1op+Im2op);
330
+ // ext = prune(ext);
331
+ // to be discussed and done prune_from_the_left
332
+ setring Rbase;
333
+ module ext = oppose(Rop,ext_op);
334
+ kill Rop;
335
+ return(ext);
336
+ }
337
+ example
338
+ { "EXAMPLE:"; echo = 2;
339
+ ring R = 0,(x,y),dp;
340
+ ideal I = x2-y3;
341
+ qring S = std(I);
342
+ module M = [-x,y],[-y2,x];
343
+ module E1 = ncExt(1,M,M);
344
+ E1;
345
+ }
346
+
347
+ proc ncExt_R(int i, matrix Ps)
348
+ "USAGE: ncExt_R(i, M); i int, M module
349
+ COMPUTE: a presentation of Ext^i(M',R); for M'=coker(M).
350
+ RETURN: right module Ext, a presentation of Ext^i(M',R)
351
+ EXAMPLE: example ncExt_R; shows an example
352
+ "{
353
+ if (i==0)
354
+ {
355
+ return(ncHom_R(Ps)); // the rest is not needed
356
+ }
357
+ list Phi = nres(Ps,i+1); // left resolution
358
+ module f = transpose(matrix(Phi[i+1])); // transp. because of Hom_R
359
+ module Im2 = transpose(matrix(Phi[i]));
360
+ def Rbase = basering;
361
+ def Rop = opposite(Rbase);
362
+ setring Rop;
363
+ module fop = oppose(Rbase,f);
364
+ module Im2op = oppose(Rbase,Im2);
365
+ module ker_op = modulo(fop,std(0));
366
+ module ext_op = modulo(ker_op,Im2op);
367
+ // ext = prune(ext);
368
+ // to be discussed and done prune_from_the_left
369
+ // necessary: compute SB!
370
+ // "Computing SB of Ext";
371
+ // option(redSB);
372
+ // option(redTail);
373
+ // ext_op = std(ext_op);
374
+ // int dimop = GKdim(ext_op);
375
+ // printf("Ext has dimension %s",dimop);
376
+ // if (dimop==0)
377
+ // {
378
+ // printf("of K-dimension %s",vdim(ext_op));
379
+ // }
380
+ setring Rbase;
381
+ module ext = oppose(Rop,ext_op); // a right module!
382
+ kill Rop;
383
+ return(ext);
384
+ }
385
+ example
386
+ { "EXAMPLE:"; echo = 2;
387
+ ring R = 0,(x,y),dp;
388
+ poly F = x2-y2;
389
+ def A = annfs(F); setring A; // A is the 2nd Weyl algebra
390
+ matrix M[1][size(LD)] = LD; // ideal
391
+ print(M);
392
+ print(ncExt_R(1,M)); // hence the Ext^1 is zero
393
+ module E = ncExt_R(2,M); // define the right module E
394
+ print(E); // E is in the opposite algebra
395
+ def Aop = opposite(A); setring Aop;
396
+ module Eop = oppose(A,E);
397
+ module T1 = ncExt_R(2,Eop);
398
+ setring A;
399
+ module T1 = oppose(Aop,T1);
400
+ print(T1); // this is a left module Ext^2(Ext^2(M,A),A)
401
+ print(M); // it is known that M holonomic implies Ext^2(Ext^2(M,A),A) iso to M
402
+ }
403
+
404
+ proc nctors(matrix M)
405
+ {
406
+ // ext^1_A(adj(M),A)
407
+ def save = basering;
408
+ matrix MM = M; // left
409
+ def sop = opposite(save);
410
+ setring sop;
411
+ matrix MM = oppose(save,MM); // right
412
+ MM = transpose(MM); // transposed
413
+ list Phi = nres(MM,2); // i=1
414
+ module f = transpose(matrix(Phi[2])); // transp. because of Hom_R
415
+ module Im2 = transpose(matrix(Phi[1]));
416
+ setring save;
417
+ module fop = oppose(sop,f);
418
+ module Im2op = oppose(sop,Im2);
419
+ module ker_op = modulo(fop,std(0));
420
+ module ext_op = modulo(ker_op,Im2op);
421
+ // matrix E = ncExt_R(1,MM);
422
+ // setring save;
423
+ // matrix E = oppose(sop,E);
424
+ return(ext_op);
425
+ }
426
+
427
+ proc altExt_R(int i, matrix Ps, map Invo)
428
+ // TODO!!!!!!!!
429
+ // matrix Ph
430
+ // work thru Involutions;
431
+ {
432
+ if(i==0)
433
+ { // return the formal adjoint
434
+ matrix Ret = transpose(Ps);
435
+ matrix Retop = involution(Ret, Invo);
436
+ // "Computing prune of Hom";
437
+ // Retop = prune(Retop);
438
+ // Retop = std(Retop);
439
+ return(Retop);
440
+ }
441
+ list Phi = mres(Ps,i+1);
442
+ // module Im = coHom(Ph,ncols(Phi[i+1]));
443
+ module f = transpose(matrix(Phi[i+1]));
444
+ f = involution(f, Invo);
445
+ //= contraHom(matrix(Phi[i+1]),nrows(Ph));
446
+ // module Im1 = coHom(Ph,ncols(Phi[i]));
447
+ module Im2 = transpose(matrix(Phi[i]));
448
+ Im2 = involution(Im2, Invo);
449
+ //contraHom(matrix(Phi[i]),nrows(Ph));
450
+ module ker_op = modulo(f,std(0));
451
+ module ext_op = modulo(ker_op,Im2);
452
+ // ext = prune(ext);
453
+ // to be discussed and done prune_from_the_left
454
+ // optionally: compute SB!
455
+ // "Computing prune of Ext";
456
+ ext_op = std(ext_op);
457
+ int dimop = GKdim(ext_op);
458
+ printf("Ext has dimension %s",dimop);
459
+ if (dimop==0)
460
+ {
461
+ printf("of K-dimension %s",vdim(ext_op));
462
+ }
463
+ module ext = involution(ext_op, Invo); // what about transpose?
464
+ return(ext);
465
+ }
466
+ example
467
+ { "EXAMPLE:"; echo = 2;
468
+ ring R = 0,(x,y),dp;
469
+ ideal I = x2-y3;
470
+ qring S = std(I);
471
+ module M = [-x,y],[-y2,x];
472
+ module E1 = ncExt(2,M,M);
473
+ E1;
474
+ }
475
+
476
+ proc tensorMaps(matrix M, matrix N)
477
+ {
478
+ int r = ncols(M);
479
+ int s = nrows(M);
480
+ int p = ncols(N);
481
+ int q = nrows(N);
482
+ int a,b,c,d;
483
+ matrix R[s*q][r*p];
484
+ for(b=1;b<=p;b++)
485
+ {
486
+ for(d=1;d<=q;d++)
487
+ {
488
+ for(a=1;a<=r;a++)
489
+ {
490
+ for(c=1;c<=s;c++)
491
+ {
492
+ R[(c-1)*q+d,(a-1)*p+b]=M[c,a]*N[d,b];
493
+ }
494
+ }
495
+ }
496
+ }
497
+ return(R);
498
+ }
499
+
500
+ proc ncTensorMod(matrix Phi, matrix Psi)
501
+ {
502
+ int s=nrows(Phi);
503
+ int q=nrows(Psi);
504
+ matrix A=tensorMaps(unitmat(s),Psi); //I_s tensor Psi
505
+ matrix B=tensorMaps(Phi,unitmat(q)); //Phi tensor I_q
506
+ matrix R=concat(A,B); //sum of A and B
507
+ return(R);
508
+ }
509
+
510
+
511
+ proc ncTor(int i, matrix Ps, matrix Ph)
512
+ {
513
+ if(i==0) { return(module(ncTensorMod(Ps,Ph))); }
514
+ // the tensor product
515
+ list Phi = mres(Ph,i+1); // a resolution of Ph
516
+ module Im = tensorMaps(unitmat(nrows(Phi[i])),Ps);
517
+ module f = tensorMaps(matrix(Phi[i]),unitmat(nrows(Ps)));
518
+ module Im1 = tensorMaps(unitmat(ncols(Phi[i])),Ps);
519
+ module Im2 = tensorMaps(matrix(Phi[i+1]),unitmat(nrows(Ps)));
520
+ module ker = modulo(f,Im);
521
+ module tor = modulo(ker,Im1+Im2);
522
+ // tor = prune(tor);
523
+ return(tor);
524
+ }
525
+
526
+
527
+ static proc Hochschild()
528
+ {
529
+ ring A = 0,(x,y),dp;
530
+ ideal I = x2-y3;
531
+ qring B = std(I);
532
+ module M = [-x,y],[-y2,x];
533
+ ring C = 0,(x,y,z,w),dp; // x->z, y->w
534
+ ideal I = x2-y3,z3-w2;
535
+ qring Be = std(I); //the enveloping algebra
536
+ matrix AA[1][2] = x-z,y-w; //the presentation of the algebra B as Be-module
537
+ module MM = imap(B,M);
538
+ module E = ncExt(1,AA,MM);
539
+ print(E); //the presentation of the H^1(A,M)
540
+
541
+ ring A = 0,(x,y),dp;
542
+ ideal I = x2-y3;
543
+ qring B = std(I);
544
+ ring C = 0,(x,y,z,w),dp;
545
+ ideal I = x2-y3,z3-w2;
546
+ qring Be = std(I); //the enveloping algebra
547
+ matrix AA[1][2] = x-z,y-w; //the presentation of B as Be-module
548
+ matrix AAA[1][2] = z,w; // equivalent? pres. of B
549
+ print(ncExt(1,AA,AA)); //the presentation of the H^1(A,A)
550
+ print(ncExt(1,AAA,AAA));
551
+ }
552
+
553
+ static proc Lie()
554
+ {
555
+ // consider U(sl2)* U(sl2)^opp;
556
+ LIB "ncalg.lib";
557
+ ring A = 0,(e,f,h,H,F,E),Dp; // any degree ordering
558
+ int N = 6; // nvars(A);
559
+ matrix @D[N][N];
560
+ @D[1,2] = -h;
561
+ @D[1,3] = 2*e;
562
+ @D[2,3] = -2*f;
563
+ @D[4,5] = 2*F;
564
+ @D[4,6] = -2*E;
565
+ @D[5,6] = H;
566
+ def AA = nc_algebra(1,@D); setring AA;
567
+ ideal Q = E,F,H;
568
+ poly Z = 4*e*f+h^2-2*h; // center
569
+ poly Zo = 4*F*E+H^2+2*H; // center opposed
570
+ ideal Qe = Z,Zo;
571
+ //qring B = twostd(Qe);
572
+ //ideal T = e-E,f-F,h-H;
573
+ //ideal T2 = e-H,f-F,h-E;
574
+ //Q = twostd(Q); // U is U(sl2) as left U(sl2)* U(sl2)^opp -- module
575
+ matrix M[1][3] = E,F,H;
576
+ module X0 = ncExt(0,M,M);
577
+ print(X0);
578
+
579
+ module X1 = ncExt(1,M,M);
580
+ print(X1);
581
+ module X2 = ncExt(2,M,M); // equal to Tor^Z_1(K,K)
582
+ print(X2);
583
+
584
+ // compute Tor^Z_1(K,K)
585
+ ring r = 0,(z),dp;
586
+ ideal i = z;
587
+ matrix I[1][1]=z;
588
+ Tor(1,I,I);
589
+ }
590
+
591
+
592
+ proc AllExts(module N, list #)
593
+ // computes and shows everything
594
+ // assumes we are in the opposite
595
+ // and N is dual of some M
596
+ // if # is given, map Invo and Ext_Invo are used
597
+ {
598
+ int UseInvo = 0;
599
+ int sl = size(#);
600
+ if (sl >0)
601
+ {
602
+ ideal I = ideal(#[1]);
603
+ map Invo = basering, I;
604
+ UseInvo = 1;
605
+ "Using the involution";
606
+ }
607
+ int nv = nvars(basering);
608
+ int i,d;
609
+ module E;
610
+ list EE;
611
+ print("--- module:"); print(matrix(N));
612
+ for (i=1; i<=nv; i++)
613
+ {
614
+ if (UseInvo)
615
+ {
616
+ E = altExt_R(i,N,Invo);
617
+ }
618
+ else
619
+ {
620
+ E = ncExt_R(i,N);
621
+ }
622
+ printf("--- Ext %s",i);
623
+ print(matrix(E));
624
+ EE[i] = E;
625
+ }
626
+ return(E);
627
+ }
628
+
629
+ proc dmodualtest(module M, int n)
630
+ {
631
+ // computes the "dual" of the "dual" of a d-mod M
632
+ // where n is the half-number of vars of Weyl algebra
633
+ // assumed to be basering
634
+ // returns the difference between M and Ext^n_D(Ext^n_D(M,D),D)
635
+ def save = basering;
636
+ setring save;
637
+ module Md = ncExt_R(n,M); // right module
638
+ // would be nice to use "prune"!
639
+ // NO! prune performs left sided operations!!!
640
+ // Md = prune(Md);
641
+ // print(Md);
642
+ def saveop = opposite(save);
643
+ setring saveop;
644
+ module Mdop = oppose(save,Md); // left module
645
+ // here we're eligible to use prune
646
+ Mdop = prune(Mdop);
647
+ module Mopd = ncExt_R(n,Mdop); // right module
648
+ setring save;
649
+ module M2 = oppose(saveop,Mopd); // left module
650
+ M2 = prune(M2); // eligible since M2 is a left mod
651
+ M2 = groebner(M2);
652
+ ideal tst = M2 - M;
653
+ tst = groebner(tst);
654
+ return(tst);
655
+ }
656
+ example
657
+ { "EXAMPLE:"; echo = 2;
658
+ ring R = 0,(x,y),dp;
659
+ poly F = x3-y2;
660
+ def A = annfs(F);
661
+ setring A;
662
+ dmodualtest(LD,2);
663
+ }
664
+
665
+
666
+ proc dmodoublext(module M, list #)
667
+ "USAGE: dmodoublext(M [,i]); M module, i optional int
668
+ COMPUTE: a presentation of Ext^i(Ext^i(M,D),D) for basering D
669
+ RETURN: left module
670
+ NOTE: by default, i is set to the integer part of the half of number of variables of D
671
+ @* for holonomic modules over Weyl algebra, the double ext is known to be holonomic left module
672
+ EXAMPLE: example dmodoublext; shows an example
673
+ "
674
+ {
675
+ // assume: basering is a Weyl algebra?
676
+ def save = basering;
677
+ setring save;
678
+ // if a list is nonempty and contains an integer N, n = N; otherwise n = nvars/2
679
+ int n;
680
+ if (size(#) > 0)
681
+ {
682
+ // if (typeof(#) == "int")
683
+ // {
684
+ n = int(#[1]);
685
+ // }
686
+ // else
687
+ // {
688
+ // ERROR("the optional argument expected to have type int");
689
+ // }
690
+ }
691
+ else
692
+ {
693
+ n = nvars(save); n = n div 2;
694
+ }
695
+ // returns Ext^i_D(Ext^i_D(M,D),D), that is
696
+ // computes the "dual" of the "dual" of a d-mod M (for n = nvars/2)
697
+ module Md = ncExt_R(n,M); // right module
698
+ // no prune yet!
699
+ def saveop = opposite(save);
700
+ setring saveop;
701
+ module Mdop = oppose(save,Md); // left module
702
+ // here we're eligible to use prune
703
+ Mdop = prune(Mdop);
704
+ module Mopd = ncExt_R(n,Mdop); // right module
705
+ setring save;
706
+ module M2 = oppose(saveop,Mopd); // left module
707
+ kill saveop;
708
+ M2 = prune(M2); // eligible since M2 is a left mod
709
+ def M3;
710
+ if (nrows(M2)==1)
711
+ {
712
+ M3 = ideal(M2);
713
+ }
714
+ else
715
+ {
716
+ M3 = M2;
717
+ }
718
+ M3 = groebner(M3);
719
+ return(M3);
720
+ }
721
+ example
722
+ { "EXAMPLE:"; echo = 2;
723
+ ring R = 0,(x,y),dp;
724
+ poly F = x3-y2;
725
+ def A = annfs(F);
726
+ setring A;
727
+ dmodoublext(LD);
728
+ LD;
729
+ // fancier example:
730
+ setring A;
731
+ ideal I = Dx*(x2-y3),Dy*(x2-y3);
732
+ I = groebner(I);
733
+ print(dmodoublext(I,1));
734
+ print(dmodoublext(I,2));
735
+ }
736
+
737
+ static proc part_Ext_R(matrix M)
738
+ {
739
+ // if i==0
740
+ matrix Ret = transpose(Ps);
741
+ def Rbase = basering;
742
+ def Rop = opposite(Rbase);
743
+ setring Rop;
744
+ module Retop = oppose(Rbase,Ret);
745
+ module Hm = modulo(Retop,std(0)); // right kernel of transposed
746
+ // "Computing prune of Hom";
747
+ // Retop = prune(Retop);
748
+ // Retop = std(Retop);
749
+ setring Rbase;
750
+ Ret = oppose(Rop, Hm);
751
+ kill Rop;
752
+ return(Ret);
753
+ // some checkz:
754
+ // setring Rbase;
755
+ // ker_op is the right Kernel of f^t:
756
+ // module ker = oppose(Rop,ker_op);
757
+ // print(f*ker);
758
+ // module ext = oppose(Rop,ext_op);
759
+ }