passagemath-categories 10.6.32__cp314-cp314t-musllinux_1_2_aarch64.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.
Files changed (719) hide show
  1. passagemath_categories-10.6.32.dist-info/METADATA +156 -0
  2. passagemath_categories-10.6.32.dist-info/RECORD +719 -0
  3. passagemath_categories-10.6.32.dist-info/WHEEL +5 -0
  4. passagemath_categories-10.6.32.dist-info/top_level.txt +2 -0
  5. passagemath_categories.libs/libgcc_s-2d945d6c.so.1 +0 -0
  6. passagemath_categories.libs/libgmp-28992bcb.so.10.5.0 +0 -0
  7. passagemath_categories.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
  8. sage/all__sagemath_categories.py +28 -0
  9. sage/arith/all.py +38 -0
  10. sage/arith/constants.pxd +27 -0
  11. sage/arith/functions.cpython-314t-aarch64-linux-musl.so +0 -0
  12. sage/arith/functions.pxd +4 -0
  13. sage/arith/functions.pyx +221 -0
  14. sage/arith/misc.py +6552 -0
  15. sage/arith/multi_modular.cpython-314t-aarch64-linux-musl.so +0 -0
  16. sage/arith/multi_modular.pxd +39 -0
  17. sage/arith/multi_modular.pyx +994 -0
  18. sage/arith/rational_reconstruction.cpython-314t-aarch64-linux-musl.so +0 -0
  19. sage/arith/rational_reconstruction.pxd +4 -0
  20. sage/arith/rational_reconstruction.pyx +115 -0
  21. sage/arith/srange.cpython-314t-aarch64-linux-musl.so +0 -0
  22. sage/arith/srange.pyx +571 -0
  23. sage/calculus/all__sagemath_categories.py +2 -0
  24. sage/calculus/functional.py +481 -0
  25. sage/calculus/functions.py +151 -0
  26. sage/categories/additive_groups.py +73 -0
  27. sage/categories/additive_magmas.py +1044 -0
  28. sage/categories/additive_monoids.py +114 -0
  29. sage/categories/additive_semigroups.py +184 -0
  30. sage/categories/affine_weyl_groups.py +238 -0
  31. sage/categories/algebra_ideals.py +95 -0
  32. sage/categories/algebra_modules.py +96 -0
  33. sage/categories/algebras.py +349 -0
  34. sage/categories/algebras_with_basis.py +377 -0
  35. sage/categories/all.py +160 -0
  36. sage/categories/aperiodic_semigroups.py +29 -0
  37. sage/categories/associative_algebras.py +47 -0
  38. sage/categories/bialgebras.py +101 -0
  39. sage/categories/bialgebras_with_basis.py +414 -0
  40. sage/categories/bimodules.py +206 -0
  41. sage/categories/chain_complexes.py +268 -0
  42. sage/categories/classical_crystals.py +480 -0
  43. sage/categories/coalgebras.py +405 -0
  44. sage/categories/coalgebras_with_basis.py +232 -0
  45. sage/categories/coercion_methods.cpython-314t-aarch64-linux-musl.so +0 -0
  46. sage/categories/coercion_methods.pyx +52 -0
  47. sage/categories/commutative_additive_groups.py +104 -0
  48. sage/categories/commutative_additive_monoids.py +45 -0
  49. sage/categories/commutative_additive_semigroups.py +48 -0
  50. sage/categories/commutative_algebra_ideals.py +87 -0
  51. sage/categories/commutative_algebras.py +94 -0
  52. sage/categories/commutative_ring_ideals.py +58 -0
  53. sage/categories/commutative_rings.py +736 -0
  54. sage/categories/complete_discrete_valuation.py +293 -0
  55. sage/categories/complex_reflection_groups.py +145 -0
  56. sage/categories/complex_reflection_or_generalized_coxeter_groups.py +1249 -0
  57. sage/categories/coxeter_group_algebras.py +186 -0
  58. sage/categories/coxeter_groups.py +3402 -0
  59. sage/categories/crystals.py +2628 -0
  60. sage/categories/cw_complexes.py +216 -0
  61. sage/categories/dedekind_domains.py +137 -0
  62. sage/categories/discrete_valuation.py +325 -0
  63. sage/categories/distributive_magmas_and_additive_magmas.py +100 -0
  64. sage/categories/division_rings.py +114 -0
  65. sage/categories/domains.py +95 -0
  66. sage/categories/drinfeld_modules.py +789 -0
  67. sage/categories/dual.py +42 -0
  68. sage/categories/enumerated_sets.py +1146 -0
  69. sage/categories/euclidean_domains.py +271 -0
  70. sage/categories/examples/algebras_with_basis.py +102 -0
  71. sage/categories/examples/all.py +1 -0
  72. sage/categories/examples/commutative_additive_monoids.py +130 -0
  73. sage/categories/examples/commutative_additive_semigroups.py +199 -0
  74. sage/categories/examples/coxeter_groups.py +8 -0
  75. sage/categories/examples/crystals.py +236 -0
  76. sage/categories/examples/cw_complexes.py +163 -0
  77. sage/categories/examples/facade_sets.py +187 -0
  78. sage/categories/examples/filtered_algebras_with_basis.py +204 -0
  79. sage/categories/examples/filtered_modules_with_basis.py +154 -0
  80. sage/categories/examples/finite_coxeter_groups.py +252 -0
  81. sage/categories/examples/finite_dimensional_algebras_with_basis.py +148 -0
  82. sage/categories/examples/finite_dimensional_lie_algebras_with_basis.py +495 -0
  83. sage/categories/examples/finite_enumerated_sets.py +208 -0
  84. sage/categories/examples/finite_monoids.py +150 -0
  85. sage/categories/examples/finite_semigroups.py +190 -0
  86. sage/categories/examples/finite_weyl_groups.py +191 -0
  87. sage/categories/examples/graded_connected_hopf_algebras_with_basis.py +152 -0
  88. sage/categories/examples/graded_modules_with_basis.py +168 -0
  89. sage/categories/examples/graphs.py +122 -0
  90. sage/categories/examples/hopf_algebras_with_basis.py +145 -0
  91. sage/categories/examples/infinite_enumerated_sets.py +190 -0
  92. sage/categories/examples/lie_algebras.py +352 -0
  93. sage/categories/examples/lie_algebras_with_basis.py +196 -0
  94. sage/categories/examples/magmas.py +162 -0
  95. sage/categories/examples/manifolds.py +94 -0
  96. sage/categories/examples/monoids.py +144 -0
  97. sage/categories/examples/posets.py +178 -0
  98. sage/categories/examples/semigroups.py +580 -0
  99. sage/categories/examples/semigroups_cython.cpython-314t-aarch64-linux-musl.so +0 -0
  100. sage/categories/examples/semigroups_cython.pyx +221 -0
  101. sage/categories/examples/semirings.py +249 -0
  102. sage/categories/examples/sets_cat.py +706 -0
  103. sage/categories/examples/sets_with_grading.py +101 -0
  104. sage/categories/examples/with_realizations.py +542 -0
  105. sage/categories/fields.py +991 -0
  106. sage/categories/filtered_algebras.py +63 -0
  107. sage/categories/filtered_algebras_with_basis.py +548 -0
  108. sage/categories/filtered_hopf_algebras_with_basis.py +138 -0
  109. sage/categories/filtered_modules.py +210 -0
  110. sage/categories/filtered_modules_with_basis.py +1209 -0
  111. sage/categories/finite_complex_reflection_groups.py +1506 -0
  112. sage/categories/finite_coxeter_groups.py +1138 -0
  113. sage/categories/finite_crystals.py +103 -0
  114. sage/categories/finite_dimensional_algebras_with_basis.py +1860 -0
  115. sage/categories/finite_dimensional_bialgebras_with_basis.py +33 -0
  116. sage/categories/finite_dimensional_coalgebras_with_basis.py +33 -0
  117. sage/categories/finite_dimensional_graded_lie_algebras_with_basis.py +231 -0
  118. sage/categories/finite_dimensional_hopf_algebras_with_basis.py +38 -0
  119. sage/categories/finite_dimensional_lie_algebras_with_basis.py +2774 -0
  120. sage/categories/finite_dimensional_modules_with_basis.py +1407 -0
  121. sage/categories/finite_dimensional_nilpotent_lie_algebras_with_basis.py +167 -0
  122. sage/categories/finite_dimensional_semisimple_algebras_with_basis.py +270 -0
  123. sage/categories/finite_enumerated_sets.py +769 -0
  124. sage/categories/finite_fields.py +252 -0
  125. sage/categories/finite_groups.py +256 -0
  126. sage/categories/finite_lattice_posets.py +242 -0
  127. sage/categories/finite_monoids.py +316 -0
  128. sage/categories/finite_permutation_groups.py +339 -0
  129. sage/categories/finite_posets.py +1994 -0
  130. sage/categories/finite_semigroups.py +136 -0
  131. sage/categories/finite_sets.py +93 -0
  132. sage/categories/finite_weyl_groups.py +39 -0
  133. sage/categories/finitely_generated_lambda_bracket_algebras.py +112 -0
  134. sage/categories/finitely_generated_lie_conformal_algebras.py +114 -0
  135. sage/categories/finitely_generated_magmas.py +57 -0
  136. sage/categories/finitely_generated_semigroups.py +214 -0
  137. sage/categories/function_fields.py +76 -0
  138. sage/categories/g_sets.py +77 -0
  139. sage/categories/gcd_domains.py +65 -0
  140. sage/categories/generalized_coxeter_groups.py +94 -0
  141. sage/categories/graded_algebras.py +85 -0
  142. sage/categories/graded_algebras_with_basis.py +258 -0
  143. sage/categories/graded_bialgebras.py +32 -0
  144. sage/categories/graded_bialgebras_with_basis.py +32 -0
  145. sage/categories/graded_coalgebras.py +65 -0
  146. sage/categories/graded_coalgebras_with_basis.py +51 -0
  147. sage/categories/graded_hopf_algebras.py +41 -0
  148. sage/categories/graded_hopf_algebras_with_basis.py +169 -0
  149. sage/categories/graded_lie_algebras.py +91 -0
  150. sage/categories/graded_lie_algebras_with_basis.py +44 -0
  151. sage/categories/graded_lie_conformal_algebras.py +74 -0
  152. sage/categories/graded_modules.py +133 -0
  153. sage/categories/graded_modules_with_basis.py +329 -0
  154. sage/categories/graphs.py +138 -0
  155. sage/categories/group_algebras.py +430 -0
  156. sage/categories/groupoid.py +94 -0
  157. sage/categories/groups.py +667 -0
  158. sage/categories/h_trivial_semigroups.py +64 -0
  159. sage/categories/hecke_modules.py +185 -0
  160. sage/categories/highest_weight_crystals.py +980 -0
  161. sage/categories/hopf_algebras.py +219 -0
  162. sage/categories/hopf_algebras_with_basis.py +309 -0
  163. sage/categories/infinite_enumerated_sets.py +115 -0
  164. sage/categories/integral_domains.py +203 -0
  165. sage/categories/j_trivial_semigroups.py +29 -0
  166. sage/categories/kac_moody_algebras.py +82 -0
  167. sage/categories/kahler_algebras.py +203 -0
  168. sage/categories/l_trivial_semigroups.py +63 -0
  169. sage/categories/lambda_bracket_algebras.py +280 -0
  170. sage/categories/lambda_bracket_algebras_with_basis.py +107 -0
  171. sage/categories/lattice_posets.py +89 -0
  172. sage/categories/left_modules.py +49 -0
  173. sage/categories/lie_algebras.py +1070 -0
  174. sage/categories/lie_algebras_with_basis.py +261 -0
  175. sage/categories/lie_conformal_algebras.py +350 -0
  176. sage/categories/lie_conformal_algebras_with_basis.py +147 -0
  177. sage/categories/lie_groups.py +73 -0
  178. sage/categories/loop_crystals.py +1290 -0
  179. sage/categories/magmas.py +1189 -0
  180. sage/categories/magmas_and_additive_magmas.py +149 -0
  181. sage/categories/magmatic_algebras.py +365 -0
  182. sage/categories/manifolds.py +352 -0
  183. sage/categories/matrix_algebras.py +40 -0
  184. sage/categories/metric_spaces.py +387 -0
  185. sage/categories/modular_abelian_varieties.py +78 -0
  186. sage/categories/modules.py +989 -0
  187. sage/categories/modules_with_basis.py +2794 -0
  188. sage/categories/monoid_algebras.py +38 -0
  189. sage/categories/monoids.py +739 -0
  190. sage/categories/noetherian_rings.py +87 -0
  191. sage/categories/number_fields.py +242 -0
  192. sage/categories/ore_modules.py +189 -0
  193. sage/categories/partially_ordered_monoids.py +49 -0
  194. sage/categories/permutation_groups.py +63 -0
  195. sage/categories/pointed_sets.py +42 -0
  196. sage/categories/polyhedra.py +74 -0
  197. sage/categories/poor_man_map.py +270 -0
  198. sage/categories/posets.py +722 -0
  199. sage/categories/principal_ideal_domains.py +270 -0
  200. sage/categories/quantum_group_representations.py +543 -0
  201. sage/categories/quotient_fields.py +728 -0
  202. sage/categories/r_trivial_semigroups.py +45 -0
  203. sage/categories/regular_crystals.py +898 -0
  204. sage/categories/regular_supercrystals.py +170 -0
  205. sage/categories/right_modules.py +49 -0
  206. sage/categories/ring_ideals.py +74 -0
  207. sage/categories/rings.py +1904 -0
  208. sage/categories/rngs.py +175 -0
  209. sage/categories/schemes.py +393 -0
  210. sage/categories/semigroups.py +1060 -0
  211. sage/categories/semirings.py +71 -0
  212. sage/categories/semisimple_algebras.py +114 -0
  213. sage/categories/sets_with_grading.py +235 -0
  214. sage/categories/shephard_groups.py +43 -0
  215. sage/categories/signed_tensor.py +120 -0
  216. sage/categories/simplicial_complexes.py +134 -0
  217. sage/categories/simplicial_sets.py +1206 -0
  218. sage/categories/super_algebras.py +149 -0
  219. sage/categories/super_algebras_with_basis.py +144 -0
  220. sage/categories/super_hopf_algebras_with_basis.py +126 -0
  221. sage/categories/super_lie_conformal_algebras.py +193 -0
  222. sage/categories/super_modules.py +229 -0
  223. sage/categories/super_modules_with_basis.py +193 -0
  224. sage/categories/supercommutative_algebras.py +99 -0
  225. sage/categories/supercrystals.py +406 -0
  226. sage/categories/tensor.py +110 -0
  227. sage/categories/topological_spaces.py +170 -0
  228. sage/categories/triangular_kac_moody_algebras.py +439 -0
  229. sage/categories/tutorial.py +58 -0
  230. sage/categories/unique_factorization_domains.py +318 -0
  231. sage/categories/unital_algebras.py +426 -0
  232. sage/categories/vector_bundles.py +159 -0
  233. sage/categories/vector_spaces.py +357 -0
  234. sage/categories/weyl_groups.py +853 -0
  235. sage/combinat/all__sagemath_categories.py +34 -0
  236. sage/combinat/backtrack.py +180 -0
  237. sage/combinat/combinat.py +2269 -0
  238. sage/combinat/combinat_cython.cpython-314t-aarch64-linux-musl.so +0 -0
  239. sage/combinat/combinat_cython.pxd +6 -0
  240. sage/combinat/combinat_cython.pyx +390 -0
  241. sage/combinat/combination.py +796 -0
  242. sage/combinat/combinatorial_map.py +416 -0
  243. sage/combinat/composition.py +2192 -0
  244. sage/combinat/dlx.py +510 -0
  245. sage/combinat/integer_lists/__init__.py +7 -0
  246. sage/combinat/integer_lists/base.cpython-314t-aarch64-linux-musl.so +0 -0
  247. sage/combinat/integer_lists/base.pxd +16 -0
  248. sage/combinat/integer_lists/base.pyx +713 -0
  249. sage/combinat/integer_lists/invlex.cpython-314t-aarch64-linux-musl.so +0 -0
  250. sage/combinat/integer_lists/invlex.pxd +4 -0
  251. sage/combinat/integer_lists/invlex.pyx +1650 -0
  252. sage/combinat/integer_lists/lists.py +328 -0
  253. sage/combinat/integer_lists/nn.py +48 -0
  254. sage/combinat/integer_vector.py +1818 -0
  255. sage/combinat/integer_vector_weighted.py +413 -0
  256. sage/combinat/matrices/all__sagemath_categories.py +5 -0
  257. sage/combinat/matrices/dancing_links.cpython-314t-aarch64-linux-musl.so +0 -0
  258. sage/combinat/matrices/dancing_links.pyx +1159 -0
  259. sage/combinat/matrices/dancing_links_c.h +380 -0
  260. sage/combinat/matrices/dlxcpp.py +136 -0
  261. sage/combinat/partition.py +10070 -0
  262. sage/combinat/partitions.cpython-314t-aarch64-linux-musl.so +0 -0
  263. sage/combinat/partitions.pyx +743 -0
  264. sage/combinat/permutation.py +10168 -0
  265. sage/combinat/permutation_cython.cpython-314t-aarch64-linux-musl.so +0 -0
  266. sage/combinat/permutation_cython.pxd +11 -0
  267. sage/combinat/permutation_cython.pyx +407 -0
  268. sage/combinat/q_analogues.py +1090 -0
  269. sage/combinat/ranker.py +268 -0
  270. sage/combinat/subset.py +1561 -0
  271. sage/combinat/subsets_hereditary.py +202 -0
  272. sage/combinat/subsets_pairwise.py +184 -0
  273. sage/combinat/tools.py +63 -0
  274. sage/combinat/tuple.py +348 -0
  275. sage/data_structures/all.py +2 -0
  276. sage/data_structures/all__sagemath_categories.py +2 -0
  277. sage/data_structures/binary_matrix.pxd +138 -0
  278. sage/data_structures/binary_search.cpython-314t-aarch64-linux-musl.so +0 -0
  279. sage/data_structures/binary_search.pxd +3 -0
  280. sage/data_structures/binary_search.pyx +66 -0
  281. sage/data_structures/bitset.cpython-314t-aarch64-linux-musl.so +0 -0
  282. sage/data_structures/bitset.pxd +40 -0
  283. sage/data_structures/bitset.pyx +2385 -0
  284. sage/data_structures/bitset_base.cpython-314t-aarch64-linux-musl.so +0 -0
  285. sage/data_structures/bitset_base.pxd +926 -0
  286. sage/data_structures/bitset_base.pyx +117 -0
  287. sage/data_structures/bitset_intrinsics.h +487 -0
  288. sage/data_structures/blas_dict.cpython-314t-aarch64-linux-musl.so +0 -0
  289. sage/data_structures/blas_dict.pxd +12 -0
  290. sage/data_structures/blas_dict.pyx +469 -0
  291. sage/data_structures/list_of_pairs.cpython-314t-aarch64-linux-musl.so +0 -0
  292. sage/data_structures/list_of_pairs.pxd +16 -0
  293. sage/data_structures/list_of_pairs.pyx +122 -0
  294. sage/data_structures/mutable_poset.py +3312 -0
  295. sage/data_structures/pairing_heap.cpython-314t-aarch64-linux-musl.so +0 -0
  296. sage/data_structures/pairing_heap.h +346 -0
  297. sage/data_structures/pairing_heap.pxd +88 -0
  298. sage/data_structures/pairing_heap.pyx +1464 -0
  299. sage/data_structures/sparse_bitset.pxd +62 -0
  300. sage/data_structures/stream.py +5070 -0
  301. sage/databases/all__sagemath_categories.py +7 -0
  302. sage/databases/sql_db.py +2236 -0
  303. sage/ext/all__sagemath_categories.py +3 -0
  304. sage/ext/fast_callable.cpython-314t-aarch64-linux-musl.so +0 -0
  305. sage/ext/fast_callable.pxd +4 -0
  306. sage/ext/fast_callable.pyx +2746 -0
  307. sage/ext/fast_eval.cpython-314t-aarch64-linux-musl.so +0 -0
  308. sage/ext/fast_eval.pxd +1 -0
  309. sage/ext/fast_eval.pyx +102 -0
  310. sage/ext/interpreters/__init__.py +1 -0
  311. sage/ext/interpreters/all__sagemath_categories.py +2 -0
  312. sage/ext/interpreters/wrapper_el.cpython-314t-aarch64-linux-musl.so +0 -0
  313. sage/ext/interpreters/wrapper_el.pxd +18 -0
  314. sage/ext/interpreters/wrapper_el.pyx +148 -0
  315. sage/ext/interpreters/wrapper_py.cpython-314t-aarch64-linux-musl.so +0 -0
  316. sage/ext/interpreters/wrapper_py.pxd +17 -0
  317. sage/ext/interpreters/wrapper_py.pyx +133 -0
  318. sage/functions/airy.py +937 -0
  319. sage/functions/all.py +97 -0
  320. sage/functions/bessel.py +2102 -0
  321. sage/functions/error.py +784 -0
  322. sage/functions/exp_integral.py +1529 -0
  323. sage/functions/gamma.py +1087 -0
  324. sage/functions/generalized.py +672 -0
  325. sage/functions/hyperbolic.py +747 -0
  326. sage/functions/hypergeometric.py +1156 -0
  327. sage/functions/jacobi.py +1705 -0
  328. sage/functions/log.py +1402 -0
  329. sage/functions/min_max.py +338 -0
  330. sage/functions/orthogonal_polys.py +3106 -0
  331. sage/functions/other.py +2303 -0
  332. sage/functions/piecewise.py +1505 -0
  333. sage/functions/prime_pi.cpython-314t-aarch64-linux-musl.so +0 -0
  334. sage/functions/prime_pi.pyx +262 -0
  335. sage/functions/special.py +1212 -0
  336. sage/functions/spike_function.py +278 -0
  337. sage/functions/transcendental.py +690 -0
  338. sage/functions/trig.py +1062 -0
  339. sage/functions/wigner.py +726 -0
  340. sage/geometry/abc.cpython-314t-aarch64-linux-musl.so +0 -0
  341. sage/geometry/abc.pyx +82 -0
  342. sage/geometry/all__sagemath_categories.py +1 -0
  343. sage/groups/all__sagemath_categories.py +11 -0
  344. sage/groups/generic.py +1733 -0
  345. sage/groups/groups_catalog.py +113 -0
  346. sage/groups/perm_gps/all__sagemath_categories.py +1 -0
  347. sage/groups/perm_gps/partn_ref/all.py +1 -0
  348. sage/groups/perm_gps/partn_ref/all__sagemath_categories.py +1 -0
  349. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.cpython-314t-aarch64-linux-musl.so +0 -0
  350. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd +52 -0
  351. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx +906 -0
  352. sage/groups/perm_gps/partn_ref/canonical_augmentation.cpython-314t-aarch64-linux-musl.so +0 -0
  353. sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd +85 -0
  354. sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx +534 -0
  355. sage/groups/perm_gps/partn_ref/data_structures.cpython-314t-aarch64-linux-musl.so +0 -0
  356. sage/groups/perm_gps/partn_ref/data_structures.pxd +576 -0
  357. sage/groups/perm_gps/partn_ref/data_structures.pyx +1792 -0
  358. sage/groups/perm_gps/partn_ref/double_coset.cpython-314t-aarch64-linux-musl.so +0 -0
  359. sage/groups/perm_gps/partn_ref/double_coset.pxd +45 -0
  360. sage/groups/perm_gps/partn_ref/double_coset.pyx +739 -0
  361. sage/groups/perm_gps/partn_ref/refinement_lists.cpython-314t-aarch64-linux-musl.so +0 -0
  362. sage/groups/perm_gps/partn_ref/refinement_lists.pxd +18 -0
  363. sage/groups/perm_gps/partn_ref/refinement_lists.pyx +82 -0
  364. sage/groups/perm_gps/partn_ref/refinement_python.cpython-314t-aarch64-linux-musl.so +0 -0
  365. sage/groups/perm_gps/partn_ref/refinement_python.pxd +16 -0
  366. sage/groups/perm_gps/partn_ref/refinement_python.pyx +564 -0
  367. sage/groups/perm_gps/partn_ref/refinement_sets.cpython-314t-aarch64-linux-musl.so +0 -0
  368. sage/groups/perm_gps/partn_ref/refinement_sets.pxd +60 -0
  369. sage/groups/perm_gps/partn_ref/refinement_sets.pyx +858 -0
  370. sage/interfaces/abc.py +140 -0
  371. sage/interfaces/all.py +58 -0
  372. sage/interfaces/all__sagemath_categories.py +1 -0
  373. sage/interfaces/expect.py +1643 -0
  374. sage/interfaces/interface.py +1682 -0
  375. sage/interfaces/process.cpython-314t-aarch64-linux-musl.so +0 -0
  376. sage/interfaces/process.pxd +5 -0
  377. sage/interfaces/process.pyx +288 -0
  378. sage/interfaces/quit.py +167 -0
  379. sage/interfaces/sage0.py +604 -0
  380. sage/interfaces/sagespawn.cpython-314t-aarch64-linux-musl.so +0 -0
  381. sage/interfaces/sagespawn.pyx +308 -0
  382. sage/interfaces/tab_completion.py +101 -0
  383. sage/misc/all__sagemath_categories.py +78 -0
  384. sage/misc/allocator.cpython-314t-aarch64-linux-musl.so +0 -0
  385. sage/misc/allocator.pxd +6 -0
  386. sage/misc/allocator.pyx +47 -0
  387. sage/misc/binary_tree.cpython-314t-aarch64-linux-musl.so +0 -0
  388. sage/misc/binary_tree.pxd +29 -0
  389. sage/misc/binary_tree.pyx +537 -0
  390. sage/misc/callable_dict.cpython-314t-aarch64-linux-musl.so +0 -0
  391. sage/misc/callable_dict.pyx +89 -0
  392. sage/misc/citation.cpython-314t-aarch64-linux-musl.so +0 -0
  393. sage/misc/citation.pyx +159 -0
  394. sage/misc/converting_dict.py +293 -0
  395. sage/misc/defaults.py +129 -0
  396. sage/misc/derivative.cpython-314t-aarch64-linux-musl.so +0 -0
  397. sage/misc/derivative.pyx +223 -0
  398. sage/misc/functional.py +2005 -0
  399. sage/misc/html.py +589 -0
  400. sage/misc/latex.py +2673 -0
  401. sage/misc/latex_macros.py +236 -0
  402. sage/misc/latex_standalone.py +1833 -0
  403. sage/misc/map_threaded.py +38 -0
  404. sage/misc/mathml.py +76 -0
  405. sage/misc/method_decorator.py +88 -0
  406. sage/misc/mrange.py +755 -0
  407. sage/misc/multireplace.py +41 -0
  408. sage/misc/object_multiplexer.py +92 -0
  409. sage/misc/parser.cpython-314t-aarch64-linux-musl.so +0 -0
  410. sage/misc/parser.pyx +1107 -0
  411. sage/misc/random_testing.py +264 -0
  412. sage/misc/rest_index_of_methods.py +377 -0
  413. sage/misc/search.cpython-314t-aarch64-linux-musl.so +0 -0
  414. sage/misc/search.pxd +2 -0
  415. sage/misc/search.pyx +68 -0
  416. sage/misc/stopgap.cpython-314t-aarch64-linux-musl.so +0 -0
  417. sage/misc/stopgap.pyx +95 -0
  418. sage/misc/table.py +853 -0
  419. sage/monoids/all__sagemath_categories.py +1 -0
  420. sage/monoids/indexed_free_monoid.py +1071 -0
  421. sage/monoids/monoid.py +82 -0
  422. sage/numerical/all__sagemath_categories.py +1 -0
  423. sage/numerical/backends/all__sagemath_categories.py +1 -0
  424. sage/numerical/backends/generic_backend.cpython-314t-aarch64-linux-musl.so +0 -0
  425. sage/numerical/backends/generic_backend.pxd +61 -0
  426. sage/numerical/backends/generic_backend.pyx +1893 -0
  427. sage/numerical/backends/generic_sdp_backend.cpython-314t-aarch64-linux-musl.so +0 -0
  428. sage/numerical/backends/generic_sdp_backend.pxd +38 -0
  429. sage/numerical/backends/generic_sdp_backend.pyx +755 -0
  430. sage/parallel/all.py +6 -0
  431. sage/parallel/decorate.py +575 -0
  432. sage/parallel/map_reduce.py +1997 -0
  433. sage/parallel/multiprocessing_sage.py +76 -0
  434. sage/parallel/ncpus.py +35 -0
  435. sage/parallel/parallelism.py +364 -0
  436. sage/parallel/reference.py +47 -0
  437. sage/parallel/use_fork.py +333 -0
  438. sage/rings/abc.cpython-314t-aarch64-linux-musl.so +0 -0
  439. sage/rings/abc.pxd +31 -0
  440. sage/rings/abc.pyx +526 -0
  441. sage/rings/algebraic_closure_finite_field.py +1154 -0
  442. sage/rings/all__sagemath_categories.py +91 -0
  443. sage/rings/big_oh.py +227 -0
  444. sage/rings/continued_fraction.py +2754 -0
  445. sage/rings/continued_fraction_gosper.py +220 -0
  446. sage/rings/factorint.cpython-314t-aarch64-linux-musl.so +0 -0
  447. sage/rings/factorint.pyx +295 -0
  448. sage/rings/fast_arith.cpython-314t-aarch64-linux-musl.so +0 -0
  449. sage/rings/fast_arith.pxd +21 -0
  450. sage/rings/fast_arith.pyx +535 -0
  451. sage/rings/finite_rings/all__sagemath_categories.py +9 -0
  452. sage/rings/finite_rings/conway_polynomials.py +542 -0
  453. sage/rings/finite_rings/element_base.cpython-314t-aarch64-linux-musl.so +0 -0
  454. sage/rings/finite_rings/element_base.pxd +12 -0
  455. sage/rings/finite_rings/element_base.pyx +1176 -0
  456. sage/rings/finite_rings/finite_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
  457. sage/rings/finite_rings/finite_field_base.pxd +7 -0
  458. sage/rings/finite_rings/finite_field_base.pyx +2171 -0
  459. sage/rings/finite_rings/finite_field_constructor.py +827 -0
  460. sage/rings/finite_rings/finite_field_prime_modn.py +372 -0
  461. sage/rings/finite_rings/galois_group.py +154 -0
  462. sage/rings/finite_rings/hom_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
  463. sage/rings/finite_rings/hom_finite_field.pxd +23 -0
  464. sage/rings/finite_rings/hom_finite_field.pyx +856 -0
  465. sage/rings/finite_rings/hom_prime_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
  466. sage/rings/finite_rings/hom_prime_finite_field.pxd +15 -0
  467. sage/rings/finite_rings/hom_prime_finite_field.pyx +164 -0
  468. sage/rings/finite_rings/homset.py +357 -0
  469. sage/rings/finite_rings/integer_mod.cpython-314t-aarch64-linux-musl.so +0 -0
  470. sage/rings/finite_rings/integer_mod.pxd +56 -0
  471. sage/rings/finite_rings/integer_mod.pyx +4586 -0
  472. sage/rings/finite_rings/integer_mod_limits.h +11 -0
  473. sage/rings/finite_rings/integer_mod_ring.py +2044 -0
  474. sage/rings/finite_rings/residue_field.cpython-314t-aarch64-linux-musl.so +0 -0
  475. sage/rings/finite_rings/residue_field.pxd +30 -0
  476. sage/rings/finite_rings/residue_field.pyx +1811 -0
  477. sage/rings/finite_rings/stdint.pxd +19 -0
  478. sage/rings/fraction_field.py +1452 -0
  479. sage/rings/fraction_field_element.cpython-314t-aarch64-linux-musl.so +0 -0
  480. sage/rings/fraction_field_element.pyx +1357 -0
  481. sage/rings/function_field/all.py +7 -0
  482. sage/rings/function_field/all__sagemath_categories.py +2 -0
  483. sage/rings/function_field/constructor.py +218 -0
  484. sage/rings/function_field/element.cpython-314t-aarch64-linux-musl.so +0 -0
  485. sage/rings/function_field/element.pxd +11 -0
  486. sage/rings/function_field/element.pyx +1008 -0
  487. sage/rings/function_field/element_rational.cpython-314t-aarch64-linux-musl.so +0 -0
  488. sage/rings/function_field/element_rational.pyx +513 -0
  489. sage/rings/function_field/extensions.py +230 -0
  490. sage/rings/function_field/function_field.py +1468 -0
  491. sage/rings/function_field/function_field_rational.py +1005 -0
  492. sage/rings/function_field/ideal.py +1155 -0
  493. sage/rings/function_field/ideal_rational.py +629 -0
  494. sage/rings/function_field/jacobian_base.py +826 -0
  495. sage/rings/function_field/jacobian_hess.py +1053 -0
  496. sage/rings/function_field/jacobian_khuri_makdisi.py +1027 -0
  497. sage/rings/function_field/maps.py +1039 -0
  498. sage/rings/function_field/order.py +281 -0
  499. sage/rings/function_field/order_basis.py +586 -0
  500. sage/rings/function_field/order_rational.py +576 -0
  501. sage/rings/function_field/place.py +426 -0
  502. sage/rings/function_field/place_rational.py +181 -0
  503. sage/rings/generic.py +320 -0
  504. sage/rings/homset.py +332 -0
  505. sage/rings/ideal.py +1885 -0
  506. sage/rings/ideal_monoid.py +215 -0
  507. sage/rings/infinity.py +1890 -0
  508. sage/rings/integer.cpython-314t-aarch64-linux-musl.so +0 -0
  509. sage/rings/integer.pxd +45 -0
  510. sage/rings/integer.pyx +7874 -0
  511. sage/rings/integer_ring.cpython-314t-aarch64-linux-musl.so +0 -0
  512. sage/rings/integer_ring.pxd +8 -0
  513. sage/rings/integer_ring.pyx +1693 -0
  514. sage/rings/laurent_series_ring.py +931 -0
  515. sage/rings/laurent_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
  516. sage/rings/laurent_series_ring_element.pxd +11 -0
  517. sage/rings/laurent_series_ring_element.pyx +1927 -0
  518. sage/rings/lazy_series.py +7815 -0
  519. sage/rings/lazy_series_ring.py +4356 -0
  520. sage/rings/localization.py +1043 -0
  521. sage/rings/morphism.cpython-314t-aarch64-linux-musl.so +0 -0
  522. sage/rings/morphism.pxd +39 -0
  523. sage/rings/morphism.pyx +3299 -0
  524. sage/rings/multi_power_series_ring.py +1145 -0
  525. sage/rings/multi_power_series_ring_element.py +2184 -0
  526. sage/rings/noncommutative_ideals.cpython-314t-aarch64-linux-musl.so +0 -0
  527. sage/rings/noncommutative_ideals.pyx +423 -0
  528. sage/rings/number_field/all__sagemath_categories.py +1 -0
  529. sage/rings/number_field/number_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
  530. sage/rings/number_field/number_field_base.pxd +8 -0
  531. sage/rings/number_field/number_field_base.pyx +507 -0
  532. sage/rings/number_field/number_field_element_base.cpython-314t-aarch64-linux-musl.so +0 -0
  533. sage/rings/number_field/number_field_element_base.pxd +6 -0
  534. sage/rings/number_field/number_field_element_base.pyx +36 -0
  535. sage/rings/number_field/number_field_ideal.py +3550 -0
  536. sage/rings/padics/all__sagemath_categories.py +4 -0
  537. sage/rings/padics/local_generic.py +1670 -0
  538. sage/rings/padics/local_generic_element.cpython-314t-aarch64-linux-musl.so +0 -0
  539. sage/rings/padics/local_generic_element.pxd +5 -0
  540. sage/rings/padics/local_generic_element.pyx +1017 -0
  541. sage/rings/padics/misc.py +256 -0
  542. sage/rings/padics/padic_generic.py +1911 -0
  543. sage/rings/padics/pow_computer.cpython-314t-aarch64-linux-musl.so +0 -0
  544. sage/rings/padics/pow_computer.pxd +38 -0
  545. sage/rings/padics/pow_computer.pyx +671 -0
  546. sage/rings/padics/precision_error.py +24 -0
  547. sage/rings/polynomial/all__sagemath_categories.py +25 -0
  548. sage/rings/polynomial/commutative_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
  549. sage/rings/polynomial/commutative_polynomial.pxd +6 -0
  550. sage/rings/polynomial/commutative_polynomial.pyx +24 -0
  551. sage/rings/polynomial/cyclotomic.cpython-314t-aarch64-linux-musl.so +0 -0
  552. sage/rings/polynomial/cyclotomic.pyx +404 -0
  553. sage/rings/polynomial/flatten.py +711 -0
  554. sage/rings/polynomial/ideal.py +102 -0
  555. sage/rings/polynomial/infinite_polynomial_element.py +1768 -0
  556. sage/rings/polynomial/infinite_polynomial_ring.py +1653 -0
  557. sage/rings/polynomial/laurent_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
  558. sage/rings/polynomial/laurent_polynomial.pxd +18 -0
  559. sage/rings/polynomial/laurent_polynomial.pyx +2190 -0
  560. sage/rings/polynomial/laurent_polynomial_ideal.py +590 -0
  561. sage/rings/polynomial/laurent_polynomial_ring.py +832 -0
  562. sage/rings/polynomial/laurent_polynomial_ring_base.py +708 -0
  563. sage/rings/polynomial/multi_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
  564. sage/rings/polynomial/multi_polynomial.pxd +12 -0
  565. sage/rings/polynomial/multi_polynomial.pyx +3082 -0
  566. sage/rings/polynomial/multi_polynomial_element.py +2570 -0
  567. sage/rings/polynomial/multi_polynomial_ideal.py +5771 -0
  568. sage/rings/polynomial/multi_polynomial_ring.py +947 -0
  569. sage/rings/polynomial/multi_polynomial_ring_base.cpython-314t-aarch64-linux-musl.so +0 -0
  570. sage/rings/polynomial/multi_polynomial_ring_base.pxd +15 -0
  571. sage/rings/polynomial/multi_polynomial_ring_base.pyx +1855 -0
  572. sage/rings/polynomial/multi_polynomial_sequence.py +2204 -0
  573. sage/rings/polynomial/polydict.cpython-314t-aarch64-linux-musl.so +0 -0
  574. sage/rings/polynomial/polydict.pxd +45 -0
  575. sage/rings/polynomial/polydict.pyx +2701 -0
  576. sage/rings/polynomial/polynomial_compiled.cpython-314t-aarch64-linux-musl.so +0 -0
  577. sage/rings/polynomial/polynomial_compiled.pxd +59 -0
  578. sage/rings/polynomial/polynomial_compiled.pyx +509 -0
  579. sage/rings/polynomial/polynomial_element.cpython-314t-aarch64-linux-musl.so +0 -0
  580. sage/rings/polynomial/polynomial_element.pxd +64 -0
  581. sage/rings/polynomial/polynomial_element.pyx +13255 -0
  582. sage/rings/polynomial/polynomial_element_generic.py +1637 -0
  583. sage/rings/polynomial/polynomial_fateman.py +97 -0
  584. sage/rings/polynomial/polynomial_quotient_ring.py +2465 -0
  585. sage/rings/polynomial/polynomial_quotient_ring_element.py +779 -0
  586. sage/rings/polynomial/polynomial_ring.py +3784 -0
  587. sage/rings/polynomial/polynomial_ring_constructor.py +1051 -0
  588. sage/rings/polynomial/polynomial_ring_homomorphism.cpython-314t-aarch64-linux-musl.so +0 -0
  589. sage/rings/polynomial/polynomial_ring_homomorphism.pxd +5 -0
  590. sage/rings/polynomial/polynomial_ring_homomorphism.pyx +121 -0
  591. sage/rings/polynomial/polynomial_singular_interface.py +549 -0
  592. sage/rings/polynomial/symmetric_ideal.py +989 -0
  593. sage/rings/polynomial/symmetric_reduction.cpython-314t-aarch64-linux-musl.so +0 -0
  594. sage/rings/polynomial/symmetric_reduction.pxd +8 -0
  595. sage/rings/polynomial/symmetric_reduction.pyx +669 -0
  596. sage/rings/polynomial/term_order.py +2279 -0
  597. sage/rings/polynomial/toy_buchberger.py +449 -0
  598. sage/rings/polynomial/toy_d_basis.py +387 -0
  599. sage/rings/polynomial/toy_variety.py +362 -0
  600. sage/rings/power_series_mpoly.cpython-314t-aarch64-linux-musl.so +0 -0
  601. sage/rings/power_series_mpoly.pxd +9 -0
  602. sage/rings/power_series_mpoly.pyx +161 -0
  603. sage/rings/power_series_poly.cpython-314t-aarch64-linux-musl.so +0 -0
  604. sage/rings/power_series_poly.pxd +10 -0
  605. sage/rings/power_series_poly.pyx +1317 -0
  606. sage/rings/power_series_ring.py +1441 -0
  607. sage/rings/power_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
  608. sage/rings/power_series_ring_element.pxd +12 -0
  609. sage/rings/power_series_ring_element.pyx +3028 -0
  610. sage/rings/puiseux_series_ring.py +487 -0
  611. sage/rings/puiseux_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
  612. sage/rings/puiseux_series_ring_element.pxd +7 -0
  613. sage/rings/puiseux_series_ring_element.pyx +1055 -0
  614. sage/rings/qqbar_decorators.py +167 -0
  615. sage/rings/quotient_ring.py +1598 -0
  616. sage/rings/quotient_ring_element.py +979 -0
  617. sage/rings/rational.cpython-314t-aarch64-linux-musl.so +0 -0
  618. sage/rings/rational.pxd +20 -0
  619. sage/rings/rational.pyx +4284 -0
  620. sage/rings/rational_field.py +1730 -0
  621. sage/rings/real_double.cpython-314t-aarch64-linux-musl.so +0 -0
  622. sage/rings/real_double.pxd +16 -0
  623. sage/rings/real_double.pyx +2218 -0
  624. sage/rings/real_lazy.cpython-314t-aarch64-linux-musl.so +0 -0
  625. sage/rings/real_lazy.pxd +30 -0
  626. sage/rings/real_lazy.pyx +1773 -0
  627. sage/rings/ring.cpython-314t-aarch64-linux-musl.so +0 -0
  628. sage/rings/ring.pxd +30 -0
  629. sage/rings/ring.pyx +850 -0
  630. sage/rings/semirings/all.py +3 -0
  631. sage/rings/semirings/non_negative_integer_semiring.py +107 -0
  632. sage/rings/semirings/tropical_mpolynomial.py +972 -0
  633. sage/rings/semirings/tropical_polynomial.py +997 -0
  634. sage/rings/semirings/tropical_semiring.cpython-314t-aarch64-linux-musl.so +0 -0
  635. sage/rings/semirings/tropical_semiring.pyx +676 -0
  636. sage/rings/semirings/tropical_variety.py +1701 -0
  637. sage/rings/sum_of_squares.cpython-314t-aarch64-linux-musl.so +0 -0
  638. sage/rings/sum_of_squares.pxd +3 -0
  639. sage/rings/sum_of_squares.pyx +336 -0
  640. sage/rings/tests.py +504 -0
  641. sage/schemes/affine/affine_homset.py +508 -0
  642. sage/schemes/affine/affine_morphism.py +1574 -0
  643. sage/schemes/affine/affine_point.py +460 -0
  644. sage/schemes/affine/affine_rational_point.py +308 -0
  645. sage/schemes/affine/affine_space.py +1264 -0
  646. sage/schemes/affine/affine_subscheme.py +592 -0
  647. sage/schemes/affine/all.py +25 -0
  648. sage/schemes/all__sagemath_categories.py +5 -0
  649. sage/schemes/generic/algebraic_scheme.py +2092 -0
  650. sage/schemes/generic/all.py +5 -0
  651. sage/schemes/generic/ambient_space.py +400 -0
  652. sage/schemes/generic/divisor.py +465 -0
  653. sage/schemes/generic/divisor_group.py +313 -0
  654. sage/schemes/generic/glue.py +84 -0
  655. sage/schemes/generic/homset.py +820 -0
  656. sage/schemes/generic/hypersurface.py +234 -0
  657. sage/schemes/generic/morphism.py +2107 -0
  658. sage/schemes/generic/point.py +237 -0
  659. sage/schemes/generic/scheme.py +1190 -0
  660. sage/schemes/generic/spec.py +199 -0
  661. sage/schemes/product_projective/all.py +6 -0
  662. sage/schemes/product_projective/homset.py +236 -0
  663. sage/schemes/product_projective/morphism.py +517 -0
  664. sage/schemes/product_projective/point.py +568 -0
  665. sage/schemes/product_projective/rational_point.py +550 -0
  666. sage/schemes/product_projective/space.py +1301 -0
  667. sage/schemes/product_projective/subscheme.py +466 -0
  668. sage/schemes/projective/all.py +24 -0
  669. sage/schemes/projective/proj_bdd_height.py +453 -0
  670. sage/schemes/projective/projective_homset.py +718 -0
  671. sage/schemes/projective/projective_morphism.py +2792 -0
  672. sage/schemes/projective/projective_point.py +1484 -0
  673. sage/schemes/projective/projective_rational_point.py +569 -0
  674. sage/schemes/projective/projective_space.py +2571 -0
  675. sage/schemes/projective/projective_subscheme.py +1574 -0
  676. sage/sets/all.py +17 -0
  677. sage/sets/cartesian_product.py +376 -0
  678. sage/sets/condition_set.py +525 -0
  679. sage/sets/disjoint_set.cpython-314t-aarch64-linux-musl.so +0 -0
  680. sage/sets/disjoint_set.pxd +36 -0
  681. sage/sets/disjoint_set.pyx +998 -0
  682. sage/sets/disjoint_union_enumerated_sets.py +625 -0
  683. sage/sets/family.cpython-314t-aarch64-linux-musl.so +0 -0
  684. sage/sets/family.pxd +12 -0
  685. sage/sets/family.pyx +1556 -0
  686. sage/sets/finite_enumerated_set.py +406 -0
  687. sage/sets/finite_set_map_cy.cpython-314t-aarch64-linux-musl.so +0 -0
  688. sage/sets/finite_set_map_cy.pxd +34 -0
  689. sage/sets/finite_set_map_cy.pyx +708 -0
  690. sage/sets/finite_set_maps.py +591 -0
  691. sage/sets/image_set.py +448 -0
  692. sage/sets/integer_range.py +829 -0
  693. sage/sets/non_negative_integers.py +241 -0
  694. sage/sets/positive_integers.py +93 -0
  695. sage/sets/primes.py +188 -0
  696. sage/sets/real_set.py +2760 -0
  697. sage/sets/recursively_enumerated_set.cpython-314t-aarch64-linux-musl.so +0 -0
  698. sage/sets/recursively_enumerated_set.pxd +31 -0
  699. sage/sets/recursively_enumerated_set.pyx +2082 -0
  700. sage/sets/set.py +2083 -0
  701. sage/sets/set_from_iterator.py +1021 -0
  702. sage/sets/totally_ordered_finite_set.py +329 -0
  703. sage/symbolic/all__sagemath_categories.py +1 -0
  704. sage/symbolic/function.cpython-314t-aarch64-linux-musl.so +0 -0
  705. sage/symbolic/function.pxd +29 -0
  706. sage/symbolic/function.pyx +1488 -0
  707. sage/symbolic/symbols.py +56 -0
  708. sage/tests/all__sagemath_categories.py +1 -0
  709. sage/tests/cython.cpython-314t-aarch64-linux-musl.so +0 -0
  710. sage/tests/cython.pyx +37 -0
  711. sage/tests/stl_vector.cpython-314t-aarch64-linux-musl.so +0 -0
  712. sage/tests/stl_vector.pyx +171 -0
  713. sage/typeset/all.py +6 -0
  714. sage/typeset/ascii_art.py +295 -0
  715. sage/typeset/character_art.py +789 -0
  716. sage/typeset/character_art_factory.py +572 -0
  717. sage/typeset/symbols.py +334 -0
  718. sage/typeset/unicode_art.py +183 -0
  719. sage/typeset/unicode_characters.py +101 -0
@@ -0,0 +1,114 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Additive monoids
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2013-2014 Nicolas M. Thiery <nthiery at users.sf.net>
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ # http://www.gnu.org/licenses/
10
+ #******************************************************************************
11
+
12
+ from sage.misc.lazy_import import LazyImport
13
+ from sage.categories.category_with_axiom import CategoryWithAxiom_singleton
14
+ from sage.categories.additive_semigroups import AdditiveSemigroups
15
+ from sage.categories.homsets import HomsetsCategory
16
+
17
+
18
+ class AdditiveMonoids(CategoryWithAxiom_singleton):
19
+ """
20
+ The category of additive monoids.
21
+
22
+ An *additive monoid* is a unital :class:`additive semigroup
23
+ <sage.categories.additive_semigroups.AdditiveSemigroups>`, that
24
+ is a set endowed with a binary operation `+` which is associative
25
+ and admits a zero (see :wikipedia:`Monoid`).
26
+
27
+ EXAMPLES::
28
+
29
+ sage: from sage.categories.additive_monoids import AdditiveMonoids
30
+ sage: C = AdditiveMonoids(); C
31
+ Category of additive monoids
32
+ sage: C.super_categories()
33
+ [Category of additive unital additive magmas, Category of additive semigroups]
34
+ sage: sorted(C.axioms())
35
+ ['AdditiveAssociative', 'AdditiveUnital']
36
+ sage: from sage.categories.additive_semigroups import AdditiveSemigroups
37
+ sage: C is AdditiveSemigroups().AdditiveUnital()
38
+ True
39
+
40
+ TESTS::
41
+
42
+ sage: C.Algebras(QQ).is_subcategory(AlgebrasWithBasis(QQ))
43
+ True
44
+ sage: TestSuite(C).run()
45
+ """
46
+ _base_category_class_and_axiom = (AdditiveSemigroups, "AdditiveUnital")
47
+
48
+ def __lean_init__(self):
49
+ return 'add_monoid'
50
+
51
+ AdditiveCommutative = LazyImport('sage.categories.commutative_additive_monoids', 'CommutativeAdditiveMonoids', at_startup=True)
52
+ AdditiveInverse = LazyImport('sage.categories.additive_groups', 'AdditiveGroups', at_startup=True)
53
+
54
+ class ParentMethods:
55
+ def sum(self, args):
56
+ r"""
57
+ Return the sum of the elements in ``args``, as an element
58
+ of ``self``.
59
+
60
+ INPUT:
61
+
62
+ - ``args`` -- list (or iterable) of elements of ``self``
63
+
64
+ EXAMPLES::
65
+
66
+ sage: S = CommutativeAdditiveMonoids().example()
67
+ sage: (a,b,c,d) = S.additive_semigroup_generators()
68
+ sage: S.sum((a,b,a,c,a,b))
69
+ 3*a + 2*b + c
70
+ sage: S.sum(())
71
+ 0
72
+ sage: S.sum(()).parent() == S
73
+ True
74
+
75
+ TESTS:
76
+
77
+ The following should be reasonably fast (0.5s each)::
78
+
79
+ sage: R.<x,y> = QQ[]
80
+ sage: ignore = R.sum(
81
+ ....: QQ.random_element()*x^i*y^j for i in range(200) for j in range(200))
82
+ sage: ignore = R.sum([
83
+ ....: QQ.random_element()*x^i*y^j for i in range(200) for j in range(200)])
84
+
85
+ Summing an empty iterator::
86
+
87
+ sage: R.sum(1 for i in range(0))
88
+ 0
89
+ """
90
+ from sage.misc.misc_c import balanced_sum
91
+ return balanced_sum(args, self.zero(), 20)
92
+
93
+ class Homsets(HomsetsCategory):
94
+
95
+ def extra_super_categories(self):
96
+ """
97
+ Implement the fact that a homset between two monoids is
98
+ associative.
99
+
100
+ EXAMPLES::
101
+
102
+ sage: from sage.categories.additive_monoids import AdditiveMonoids
103
+ sage: AdditiveMonoids().Homsets().extra_super_categories()
104
+ [Category of additive semigroups]
105
+ sage: AdditiveMonoids().Homsets().super_categories()
106
+ [Category of homsets of additive unital additive magmas, Category of additive monoids]
107
+
108
+ .. TODO::
109
+
110
+ This could be deduced from
111
+ :meth:`AdditiveSemigroups.Homsets.extra_super_categories`.
112
+ See comment in :meth:`Objects.SubcategoryMethods.Homsets`.
113
+ """
114
+ return [AdditiveSemigroups()]
@@ -0,0 +1,184 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Additive semigroups
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2013 Nicolas M. Thiery <nthiery at users.sf.net>
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ # https://www.gnu.org/licenses/
10
+ # *****************************************************************************
11
+
12
+ from sage.misc.cachefunc import cached_method
13
+ from sage.misc.lazy_import import LazyImport
14
+ from sage.categories.category_with_axiom import CategoryWithAxiom_singleton
15
+ from sage.categories.cartesian_product import CartesianProductsCategory
16
+ from sage.categories.algebra_functor import AlgebrasCategory
17
+ from sage.categories.homsets import HomsetsCategory
18
+ from sage.categories.additive_magmas import AdditiveMagmas
19
+
20
+
21
+ class AdditiveSemigroups(CategoryWithAxiom_singleton):
22
+ """
23
+ The category of additive semigroups.
24
+
25
+ An *additive semigroup* is an associative :class:`additive magma
26
+ <AdditiveMagmas>`, that is a set endowed with an operation `+`
27
+ which is associative.
28
+
29
+ EXAMPLES::
30
+
31
+ sage: from sage.categories.additive_semigroups import AdditiveSemigroups
32
+ sage: C = AdditiveSemigroups(); C
33
+ Category of additive semigroups
34
+ sage: C.super_categories()
35
+ [Category of additive magmas]
36
+ sage: C.all_super_categories()
37
+ [Category of additive semigroups,
38
+ Category of additive magmas,
39
+ Category of sets,
40
+ Category of sets with partial maps,
41
+ Category of objects]
42
+
43
+ sage: C.axioms()
44
+ frozenset({'AdditiveAssociative'})
45
+ sage: C is AdditiveMagmas().AdditiveAssociative()
46
+ True
47
+
48
+ TESTS::
49
+
50
+ sage: TestSuite(C).run()
51
+ """
52
+ _base_category_class_and_axiom = (AdditiveMagmas, "AdditiveAssociative")
53
+
54
+ def __lean_init__(self):
55
+ return 'add_semigroup'
56
+
57
+ AdditiveCommutative = LazyImport('sage.categories.commutative_additive_semigroups', 'CommutativeAdditiveSemigroups', at_startup=True)
58
+ AdditiveUnital = LazyImport('sage.categories.additive_monoids', 'AdditiveMonoids', at_startup=True)
59
+
60
+ class ParentMethods:
61
+ def _test_additive_associativity(self, **options):
62
+ r"""
63
+ Test associativity for (not necessarily all) elements of this
64
+ additive semigroup.
65
+
66
+ INPUT:
67
+
68
+ - ``options`` -- any keyword arguments accepted by :meth:`_tester`
69
+
70
+ EXAMPLES:
71
+
72
+ By default, this method tests only the elements returned by
73
+ ``self.some_elements()``::
74
+
75
+ sage: S = CommutativeAdditiveSemigroups().example()
76
+ sage: S._test_additive_associativity()
77
+
78
+ However, the elements tested can be customized with the
79
+ ``elements`` keyword argument::
80
+
81
+ sage: (a,b,c,d) = S.additive_semigroup_generators()
82
+ sage: S._test_additive_associativity(elements = (a, b+c, d))
83
+
84
+ See the documentation for :class:`TestSuite` for more information.
85
+ """
86
+ tester = self._tester(**options)
87
+ S = tester.some_elements()
88
+ from sage.misc.misc import some_tuples
89
+ for x, y, z in some_tuples(S, 3, tester._max_runs):
90
+ tester.assertEqual((x + y) + z, x + (y + z))
91
+
92
+ class Homsets(HomsetsCategory):
93
+
94
+ def extra_super_categories(self):
95
+ r"""
96
+ Implement the fact that a homset between two semigroups is a
97
+ semigroup.
98
+
99
+ EXAMPLES::
100
+
101
+ sage: from sage.categories.additive_semigroups import AdditiveSemigroups
102
+ sage: AdditiveSemigroups().Homsets().extra_super_categories()
103
+ [Category of additive semigroups]
104
+ sage: AdditiveSemigroups().Homsets().super_categories()
105
+ [Category of homsets of additive magmas, Category of additive semigroups]
106
+ """
107
+ return [AdditiveSemigroups()]
108
+
109
+ class CartesianProducts(CartesianProductsCategory):
110
+
111
+ def extra_super_categories(self):
112
+ """
113
+ Implement the fact that a Cartesian product of additive semigroups
114
+ is an additive semigroup.
115
+
116
+ EXAMPLES::
117
+
118
+ sage: from sage.categories.additive_semigroups import AdditiveSemigroups
119
+ sage: C = AdditiveSemigroups().CartesianProducts()
120
+ sage: C.extra_super_categories()
121
+ [Category of additive semigroups]
122
+ sage: C.axioms()
123
+ frozenset({'AdditiveAssociative'})
124
+ """
125
+ return [AdditiveSemigroups()]
126
+
127
+ class Algebras(AlgebrasCategory):
128
+
129
+ def extra_super_categories(self):
130
+ """
131
+ EXAMPLES::
132
+
133
+ sage: from sage.categories.additive_semigroups import AdditiveSemigroups
134
+ sage: AdditiveSemigroups().Algebras(QQ).extra_super_categories()
135
+ [Category of semigroups]
136
+ sage: CommutativeAdditiveSemigroups().Algebras(QQ).super_categories()
137
+ [Category of additive semigroup algebras over Rational Field,
138
+ Category of additive commutative additive magma algebras over Rational Field]
139
+ """
140
+ from sage.categories.semigroups import Semigroups
141
+ return [Semigroups()]
142
+
143
+ class ParentMethods:
144
+
145
+ @cached_method
146
+ def algebra_generators(self):
147
+ r"""
148
+ Return the generators of this algebra, as per
149
+ :meth:`MagmaticAlgebras.ParentMethods.algebra_generators()
150
+ <.magmatic_algebras.MagmaticAlgebras.ParentMethods.algebra_generators>`.
151
+
152
+ They correspond to the generators of the additive semigroup.
153
+
154
+ EXAMPLES::
155
+
156
+ sage: S = CommutativeAdditiveSemigroups().example(); S
157
+ An example of a commutative semigroup:
158
+ the free commutative semigroup generated by ('a', 'b', 'c', 'd')
159
+ sage: A = S.algebra(QQ) # needs sage.modules
160
+ sage: A.algebra_generators() # needs sage.modules
161
+ Family (B[a], B[b], B[c], B[d])
162
+ """
163
+ return self.basis().keys().additive_semigroup_generators().map(self.monomial)
164
+
165
+ def product_on_basis(self, g1, g2):
166
+ r"""
167
+ Product, on basis elements, as per
168
+ :meth:`MagmaticAlgebras.WithBasis.ParentMethods.product_on_basis()
169
+ <sage.categories.magmatic_algebras.MagmaticAlgebras.WithBasis.ParentMethods.product_on_basis>`.
170
+
171
+ The product of two basis elements is induced by the
172
+ addition of the corresponding elements of the group.
173
+
174
+ EXAMPLES::
175
+
176
+ sage: S = CommutativeAdditiveSemigroups().example(); S
177
+ An example of a commutative semigroup:
178
+ the free commutative semigroup generated by ('a', 'b', 'c', 'd')
179
+ sage: A = S.algebra(QQ) # needs sage.modules
180
+ sage: a, b, c, d = A.algebra_generators() # needs sage.modules
181
+ sage: b * d * c # needs sage.modules
182
+ B[b + c + d]
183
+ """
184
+ return self.monomial(g1 + g2)
@@ -0,0 +1,238 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Affine Weyl groups
4
+ """
5
+ # *****************************************************************************
6
+ # Copyright (C) 2009 Nicolas M. Thiery <nthiery at users.sf.net>
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ # https://www.gnu.org/licenses/
10
+ # *****************************************************************************
11
+
12
+ from sage.misc.cachefunc import cached_method
13
+ from sage.categories.category_singleton import Category_singleton
14
+ from sage.categories.weyl_groups import WeylGroups
15
+ from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets
16
+
17
+
18
+ class AffineWeylGroups(Category_singleton):
19
+ """
20
+ The category of affine Weyl groups.
21
+
22
+ .. TODO:: add a description of this category
23
+
24
+ .. SEEALSO::
25
+
26
+ - :wikipedia:`Affine_weyl_group`
27
+ - :class:`WeylGroups`, :class:`WeylGroup`
28
+
29
+ EXAMPLES::
30
+
31
+ sage: C = AffineWeylGroups(); C
32
+ Category of affine Weyl groups
33
+ sage: C.super_categories()
34
+ [Category of infinite Weyl groups]
35
+
36
+ sage: C.example()
37
+ NotImplemented
38
+ sage: W = WeylGroup(["A", 4, 1]); W # needs sage.combinat sage.groups
39
+ Weyl Group of type ['A', 4, 1] (as a matrix group acting on the root space)
40
+ sage: W.category() # needs sage.combinat sage.groups
41
+ Category of irreducible affine Weyl groups
42
+
43
+ TESTS::
44
+
45
+ sage: TestSuite(C).run()
46
+ """
47
+
48
+ def super_categories(self):
49
+ r"""
50
+ EXAMPLES::
51
+
52
+ sage: AffineWeylGroups().super_categories()
53
+ [Category of infinite Weyl groups]
54
+ """
55
+ return [WeylGroups().Infinite()]
56
+
57
+ def additional_structure(self):
58
+ r"""
59
+ Return ``None``.
60
+
61
+ Indeed, the category of affine Weyl groups defines no
62
+ additional structure: affine Weyl groups are a special class
63
+ of Weyl groups.
64
+
65
+ .. SEEALSO:: :meth:`Category.additional_structure`
66
+
67
+ .. TODO:: Should this category be a :class:`CategoryWithAxiom`?
68
+
69
+ EXAMPLES::
70
+
71
+ sage: AffineWeylGroups().additional_structure()
72
+ """
73
+ return None
74
+
75
+ def _repr_object_names(self):
76
+ """
77
+ Return the name of the objects of this category.
78
+
79
+ EXAMPLES::
80
+
81
+ sage: AffineWeylGroups()
82
+ Category of affine Weyl groups
83
+ """
84
+ return "affine Weyl groups"
85
+
86
+ class ParentMethods:
87
+
88
+ @cached_method
89
+ def special_node(self):
90
+ """
91
+ Return the distinguished special node of the underlying
92
+ Dynkin diagram.
93
+
94
+ EXAMPLES::
95
+
96
+ sage: W = WeylGroup(['A', 3, 1]) # needs sage.combinat sage.groups
97
+ sage: W.special_node() # needs sage.combinat sage.groups
98
+ 0
99
+ """
100
+ return self.cartan_type().special_node()
101
+
102
+ def affine_grassmannian_elements_of_given_length(self, k):
103
+ """
104
+ Return the affine Grassmannian elements of length `k`.
105
+
106
+ This is returned as a finite enumerated set.
107
+
108
+ EXAMPLES::
109
+
110
+ sage: W = WeylGroup(['A', 3, 1]) # needs sage.combinat sage.groups
111
+ sage: [x.reduced_word() # needs sage.combinat sage.groups
112
+ ....: for x in W.affine_grassmannian_elements_of_given_length(3)]
113
+ [[2, 1, 0], [3, 1, 0], [2, 3, 0]]
114
+
115
+ .. SEEALSO::
116
+
117
+ :meth:`AffineWeylGroups.ElementMethods.is_affine_grassmannian`
118
+ """
119
+ from sage.sets.recursively_enumerated_set import RecursivelyEnumeratedSet_forest
120
+
121
+ def select_length(pair):
122
+ u, length = pair
123
+ if length == k:
124
+ return u
125
+
126
+ def succ(pair):
127
+ u, length = pair
128
+ for i in u.descents(positive=True, side='left'):
129
+ u1 = u.apply_simple_reflection(i, "left")
130
+ if (length < k and i == u1.first_descent(side='left') and
131
+ u1.is_affine_grassmannian()):
132
+ yield (u1, length + 1)
133
+
134
+ return RecursivelyEnumeratedSet_forest(((self.one(), 0),), succ, algorithm='breadth',
135
+ category=FiniteEnumeratedSets(),
136
+ post_process=select_length)
137
+
138
+ class ElementMethods:
139
+ def is_affine_grassmannian(self):
140
+ """
141
+ Test whether ``self`` is affine Grassmannian.
142
+
143
+ An element of an affine Weyl group is *affine Grassmannian*
144
+ if any of the following equivalent properties holds:
145
+
146
+ - all reduced words for ``self`` end with 0.
147
+ - ``self`` is the identity, or 0 is its single right descent.
148
+ - ``self`` is a minimal coset representative for W / cl W.
149
+
150
+ EXAMPLES::
151
+
152
+ sage: # needs sage.combinat sage.groups
153
+ sage: W = WeylGroup(['A', 3, 1])
154
+ sage: w = W.from_reduced_word([2,1,0])
155
+ sage: w.is_affine_grassmannian()
156
+ True
157
+ sage: w = W.from_reduced_word([2,0])
158
+ sage: w.is_affine_grassmannian()
159
+ False
160
+ sage: W.one().is_affine_grassmannian()
161
+ True
162
+ """
163
+ D = self.descents()
164
+ return (not D) or D == [self.parent().special_node()]
165
+
166
+ def affine_grassmannian_to_core(self):
167
+ r"""
168
+ Bijection between affine Grassmannian elements of type `A_k^{(1)}` and `(k+1)`-cores.
169
+
170
+ INPUT:
171
+
172
+ - ``self`` -- an affine Grassmannian element of some affine Weyl group of type `A_k^{(1)}`
173
+
174
+ Recall that an element `w` of an affine Weyl group is
175
+ affine Grassmannian if all its all reduced words end in 0, see :meth:`is_affine_grassmannian`.
176
+
177
+ OUTPUT:
178
+
179
+ - a `(k+1)`-core
180
+
181
+ .. SEEALSO:: :meth:`affine_grassmannian_to_partition`
182
+
183
+ EXAMPLES::
184
+
185
+ sage: # needs sage.combinat sage.groups
186
+ sage: W = WeylGroup(['A', 2, 1])
187
+ sage: w = W.from_reduced_word([0,2,1,0])
188
+ sage: la = w.affine_grassmannian_to_core(); la
189
+ [4, 2]
190
+ sage: type(la)
191
+ <class 'sage.combinat.core.Cores_length_with_category.element_class'>
192
+ sage: la.to_grassmannian() == w
193
+ True
194
+
195
+ sage: w = W.from_reduced_word([0,2,1]) # needs sage.combinat sage.groups
196
+ sage: w.affine_grassmannian_to_core() # needs sage.combinat sage.groups
197
+ Traceback (most recent call last):
198
+ ...
199
+ ValueError: this only works on type 'A' affine Grassmannian elements
200
+ """
201
+ from sage.combinat.partition import Partition
202
+ from sage.combinat.core import Core
203
+ if not self.is_affine_grassmannian() or not self.parent().cartan_type().letter == 'A':
204
+ raise ValueError("this only works on type 'A' affine Grassmannian elements")
205
+ out = Partition([])
206
+ rword = self.reduced_word()
207
+ kp1 = self.parent().n
208
+ for i in range(len(rword)):
209
+ for c in out.outside_corners():
210
+ if (c[1] - c[0]) % kp1 == rword[-i - 1]:
211
+ out = out.add_cell(c[0], c[1])
212
+ return Core(out._list, kp1)
213
+
214
+ def affine_grassmannian_to_partition(self):
215
+ r"""
216
+ Bijection between affine Grassmannian elements of type `A_k^{(1)}`
217
+ and `k`-bounded partitions.
218
+
219
+ INPUT:
220
+
221
+ - ``self`` is affine Grassmannian element of the affine Weyl group of type `A_k^{(1)}` (i.e. all reduced words end in 0)
222
+
223
+ OUTPUT: `k`-bounded partition
224
+
225
+ .. SEEALSO:: :meth:`affine_grassmannian_to_core`
226
+
227
+ EXAMPLES::
228
+
229
+ sage: # needs sage.combinat sage.groups
230
+ sage: k = 2
231
+ sage: W = WeylGroup(['A', k, 1])
232
+ sage: w = W.from_reduced_word([0,2,1,0])
233
+ sage: la = w.affine_grassmannian_to_partition(); la
234
+ [2, 2]
235
+ sage: la.from_kbounded_to_grassmannian(k) == w
236
+ True
237
+ """
238
+ return self.affine_grassmannian_to_core().to_bounded_partition()
@@ -0,0 +1,95 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Algebra ideals
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2005 David Kohel <kohel@maths.usyd.edu>
7
+ # William Stein <wstein@math.ucsd.edu>
8
+ # 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
9
+ #
10
+ # Distributed under the terms of the GNU General Public License (GPL)
11
+ # https://www.gnu.org/licenses/
12
+ # *****************************************************************************
13
+
14
+ from sage.categories.algebra_modules import AlgebraModules
15
+ from sage.categories.algebras import Algebras
16
+ from sage.categories.category_types import Category_ideal
17
+ from sage.categories.rings import Rings
18
+
19
+
20
+ class AlgebraIdeals(Category_ideal):
21
+ """
22
+ The category of two-sided ideals in a fixed algebra `A`.
23
+
24
+ EXAMPLES::
25
+
26
+ sage: AlgebraIdeals(QQ['a'])
27
+ Category of algebra ideals in Univariate Polynomial Ring in a over Rational Field
28
+
29
+ .. TODO::
30
+
31
+ - Add support for non commutative rings (this is currently not
32
+ supported by the subcategory :class:`AlgebraModules`).
33
+ - Make ``AlgebraIdeals(R)``, return ``CommutativeAlgebraIdeals(R)``
34
+ when ``R`` is commutative.
35
+ - If useful, implement ``AlgebraLeftIdeals`` and
36
+ ``AlgebraRightIdeals`` of which ``AlgebraIdeals``
37
+ would be a subcategory.
38
+ """
39
+ def __init__(self, A):
40
+ """
41
+ EXAMPLES::
42
+
43
+ sage: AlgebraIdeals(QQ['a'])
44
+ Category of algebra ideals in Univariate Polynomial Ring in a over Rational Field
45
+ sage: AlgebraIdeals(QQ)
46
+ Traceback (most recent call last):
47
+ ...
48
+ TypeError: A (=Rational Field) must be an algebra
49
+
50
+ TESTS::
51
+
52
+ sage: TestSuite(AlgebraIdeals(QQ['a'])).run()
53
+ """
54
+ try:
55
+ base_ring = A.base_ring()
56
+ except AttributeError:
57
+ raise TypeError(f"A (={A}) must be an algebra")
58
+ else:
59
+ if base_ring not in Rings() or A not in Algebras(base_ring.category()):
60
+ raise TypeError(f"A (={A}) must be an algebra")
61
+
62
+ Category_ideal.__init__(self, A)
63
+
64
+ def algebra(self):
65
+ """
66
+ EXAMPLES::
67
+
68
+ sage: AlgebraIdeals(QQ['x']).algebra()
69
+ Univariate Polynomial Ring in x over Rational Field
70
+ """
71
+ return self.ambient()
72
+
73
+ def super_categories(self):
74
+ """
75
+ The category of algebra modules should be a super category of this category.
76
+
77
+ However, since algebra modules are currently only available over commutative rings,
78
+ we have to omit it if our ring is non-commutative.
79
+
80
+ EXAMPLES::
81
+
82
+ sage: AlgebraIdeals(QQ['x']).super_categories()
83
+ [Category of algebra modules
84
+ over Univariate Polynomial Ring in x over Rational Field]
85
+ sage: C = AlgebraIdeals(FreeAlgebra(QQ, 2, 'a,b')) # needs sage.combinat sage.modules
86
+ sage: C.super_categories() # needs sage.combinat sage.modules
87
+ []
88
+ """
89
+ R = self.algebra()
90
+ try:
91
+ if R.is_commutative():
92
+ return [AlgebraModules(R)]
93
+ except (AttributeError, NotImplementedError):
94
+ pass
95
+ return []