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,377 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Algebras With Basis
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 2008-2013 Nicolas M. Thiery <nthiery at users.sf.net>
8
+ #
9
+ # Distributed under the terms of the GNU General Public License (GPL)
10
+ # https://www.gnu.org/licenses/
11
+ # *****************************************************************************
12
+
13
+ from sage.categories.cartesian_product import CartesianProductsCategory
14
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
15
+ from sage.categories.tensor import TensorProductsCategory, tensor
16
+ from sage.categories.unital_algebras import UnitalAlgebras
17
+ from sage.misc.cachefunc import cached_method
18
+ from sage.misc.lazy_attribute import lazy_attribute
19
+ from sage.misc.lazy_import import LazyImport
20
+
21
+
22
+ class AlgebrasWithBasis(CategoryWithAxiom_over_base_ring):
23
+ """
24
+ The category of algebras with a distinguished basis.
25
+
26
+ EXAMPLES::
27
+
28
+ sage: C = AlgebrasWithBasis(QQ); C
29
+ Category of algebras with basis over Rational Field
30
+ sage: sorted(C.super_categories(), key=str)
31
+ [Category of algebras over Rational Field,
32
+ Category of unital algebras with basis over Rational Field]
33
+
34
+ We construct a typical parent in this category, and do some
35
+ computations with it::
36
+
37
+ sage: # needs sage.combinat sage.modules
38
+ sage: A = C.example(); A
39
+ An example of an algebra with basis:
40
+ the free algebra on the generators ('a', 'b', 'c') over Rational Field
41
+ sage: A.category()
42
+ Category of algebras with basis over Rational Field
43
+ sage: A.one_basis()
44
+ word:
45
+ sage: A.one()
46
+ B[word: ]
47
+ sage: A.base_ring()
48
+ Rational Field
49
+ sage: A.basis().keys()
50
+ Finite words over {'a', 'b', 'c'}
51
+ sage: (a,b,c) = A.algebra_generators()
52
+ sage: a^3, b^2
53
+ (B[word: aaa], B[word: bb])
54
+ sage: a * c * b
55
+ B[word: acb]
56
+ sage: A.product
57
+ <bound method MagmaticAlgebras.WithBasis.ParentMethods._product_from_product_on_basis_multiply of
58
+ An example of an algebra with basis:
59
+ the free algebra on the generators ('a', 'b', 'c') over Rational Field>
60
+ sage: A.product(a * b, b)
61
+ B[word: abb]
62
+ sage: TestSuite(A).run(verbose=True)
63
+ running ._test_additive_associativity() . . . pass
64
+ running ._test_an_element() . . . pass
65
+ running ._test_associativity() . . . pass
66
+ running ._test_cardinality() . . . pass
67
+ running ._test_category() . . . pass
68
+ running ._test_characteristic() . . . pass
69
+ running ._test_construction() . . . pass
70
+ running ._test_distributivity() . . . pass
71
+ running ._test_elements() . . .
72
+ Running the test suite of self.an_element()
73
+ running ._test_category() . . . pass
74
+ running ._test_eq() . . . pass
75
+ running ._test_monomial_coefficients() . . . pass
76
+ running ._test_new() . . . pass
77
+ running ._test_nonzero_equal() . . . pass
78
+ running ._test_not_implemented_methods() . . . pass
79
+ running ._test_pickling() . . . pass
80
+ pass
81
+ running ._test_elements_eq_reflexive() . . . pass
82
+ running ._test_elements_eq_symmetric() . . . pass
83
+ running ._test_elements_eq_transitive() . . . pass
84
+ running ._test_elements_neq() . . . pass
85
+ running ._test_eq() . . . pass
86
+ running ._test_new() . . . pass
87
+ running ._test_not_implemented_methods() . . . pass
88
+ running ._test_one() . . . pass
89
+ running ._test_pickling() . . . pass
90
+ running ._test_prod() . . . pass
91
+ running ._test_some_elements() . . . pass
92
+ running ._test_zero() . . . pass
93
+ sage: A.__class__
94
+ <class 'sage.categories.examples.algebras_with_basis.FreeAlgebra_with_category'>
95
+ sage: A.element_class
96
+ <class 'sage.categories.examples.algebras_with_basis.FreeAlgebra_with_category.element_class'>
97
+
98
+ Please see the source code of `A` (with ``A??``) for how to
99
+ implement other algebras with basis.
100
+
101
+ TESTS::
102
+
103
+ sage: TestSuite(AlgebrasWithBasis(QQ)).run()
104
+ """
105
+
106
+ def example(self, alphabet=('a', 'b', 'c')):
107
+ """
108
+ Return an example of algebra with basis.
109
+
110
+ EXAMPLES::
111
+
112
+ sage: AlgebrasWithBasis(QQ).example() # needs sage.combinat sage.modules
113
+ An example of an algebra with basis:
114
+ the free algebra on the generators ('a', 'b', 'c') over Rational Field
115
+
116
+ An other set of generators can be specified as optional argument::
117
+
118
+ sage: AlgebrasWithBasis(QQ).example((1,2,3)) # needs sage.combinat sage.modules
119
+ An example of an algebra with basis:
120
+ the free algebra on the generators (1, 2, 3) over Rational Field
121
+ """
122
+ from sage.categories.examples.algebras_with_basis import Example
123
+ return Example(self.base_ring(), alphabet)
124
+
125
+ Filtered = LazyImport('sage.categories.filtered_algebras_with_basis', 'FilteredAlgebrasWithBasis')
126
+ FiniteDimensional = LazyImport('sage.categories.finite_dimensional_algebras_with_basis', 'FiniteDimensionalAlgebrasWithBasis', at_startup=True)
127
+ Graded = LazyImport('sage.categories.graded_algebras_with_basis', 'GradedAlgebrasWithBasis')
128
+ Super = LazyImport('sage.categories.super_algebras_with_basis', 'SuperAlgebrasWithBasis')
129
+
130
+ class ParentMethods:
131
+
132
+ # For backward compatibility
133
+ one = UnitalAlgebras.WithBasis.ParentMethods.one
134
+
135
+ def hochschild_complex(self, M):
136
+ """
137
+ Return the Hochschild complex of ``self`` with coefficients
138
+ in ``M``.
139
+
140
+ .. SEEALSO::
141
+
142
+ :class:`~sage.homology.hochschild_complex.HochschildComplex`
143
+
144
+ EXAMPLES::
145
+
146
+ sage: R.<x> = QQ[]
147
+ sage: A = algebras.DifferentialWeyl(R) # needs sage.modules
148
+ sage: H = A.hochschild_complex(A) # needs sage.modules
149
+
150
+ sage: # needs sage.combinat sage.groups sage.modules
151
+ sage: SGA = SymmetricGroupAlgebra(QQ, 3)
152
+ sage: T = SGA.trivial_representation()
153
+ sage: H = SGA.hochschild_complex(T)
154
+ """
155
+ from sage.homology.hochschild_complex import HochschildComplex
156
+ return HochschildComplex(self, M)
157
+
158
+ class ElementMethods:
159
+
160
+ def __invert__(self):
161
+ """
162
+ Return the inverse of ``self`` if ``self`` is a multiple of one,
163
+ and one is in the basis of this algebra. Otherwise throws
164
+ an error.
165
+
166
+ Caveat: this generic implementation is not complete; there
167
+ may be invertible elements in the algebra that can't be
168
+ inversed this way. It is correct though for graded
169
+ connected algebras with basis.
170
+
171
+ .. WARNING::
172
+
173
+ This might produce a result which does not belong to
174
+ the parent of ``self``, yet believes to do so. For
175
+ instance, inverting 2 times the unity will produce 1/2
176
+ times the unity, even if 1/2 is not in the base ring.
177
+ Handle with care.
178
+
179
+ EXAMPLES::
180
+
181
+ sage: # needs sage.combinat sage.modules
182
+ sage: C = AlgebrasWithBasis(QQ).example()
183
+ sage: x = C(2); x
184
+ 2*B[word: ]
185
+ sage: ~x
186
+ 1/2*B[word: ]
187
+ sage: a = C.algebra_generators().first(); a
188
+ B[word: a]
189
+ sage: ~a
190
+ Traceback (most recent call last):
191
+ ...
192
+ ValueError: cannot invert self (= B[word: a])
193
+ """
194
+ # FIXME: make this generic
195
+ mcs = self.monomial_coefficients(copy=False)
196
+ one = self.parent().one_basis()
197
+ if len(mcs) == 1 and one in mcs:
198
+ return self.parent().term(one, ~mcs[one])
199
+ else:
200
+ raise ValueError("cannot invert self (= %s)" % self)
201
+
202
+ class CartesianProducts(CartesianProductsCategory):
203
+ """
204
+ The category of algebras with basis, constructed as Cartesian
205
+ products of algebras with basis.
206
+
207
+ Note: this construction give the direct products of algebras with basis.
208
+ See comment in :class:`Algebras.CartesianProducts
209
+ <sage.categories.algebras.Algebras.CartesianProducts>`
210
+ """
211
+
212
+ def extra_super_categories(self):
213
+ """
214
+ A Cartesian product of algebras with basis is endowed with
215
+ a natural algebra with basis structure.
216
+
217
+ EXAMPLES::
218
+
219
+ sage: AlgebrasWithBasis(QQ).CartesianProducts().extra_super_categories()
220
+ [Category of algebras with basis over Rational Field]
221
+ sage: AlgebrasWithBasis(QQ).CartesianProducts().super_categories()
222
+ [Category of algebras with basis over Rational Field,
223
+ Category of Cartesian products of algebras over Rational Field,
224
+ Category of Cartesian products of vector spaces with basis over Rational Field]
225
+ """
226
+ return [self.base_category()]
227
+
228
+ class ParentMethods:
229
+ @cached_method
230
+ def one_from_cartesian_product_of_one_basis(self):
231
+ """
232
+ Return the one of this Cartesian product of algebras, as per
233
+ ``Monoids.ParentMethods.one``
234
+
235
+ It is constructed as the Cartesian product of the ones of the
236
+ summands, using their :meth:`~AlgebrasWithBasis.ParentMethods.one_basis` methods.
237
+
238
+ This implementation does not require multiplication by
239
+ scalars nor calling cartesian_product. This might help keeping
240
+ things as lazy as possible upon initialization.
241
+
242
+ EXAMPLES::
243
+
244
+ sage: # needs sage.combinat sage.modules
245
+ sage: A = AlgebrasWithBasis(QQ).example(); A
246
+ An example of an algebra with basis: the free algebra
247
+ on the generators ('a', 'b', 'c') over Rational Field
248
+ sage: A.one_basis()
249
+ word:
250
+ sage: B = cartesian_product((A, A, A))
251
+ sage: B.one_from_cartesian_product_of_one_basis()
252
+ B[(0, word: )] + B[(1, word: )] + B[(2, word: )]
253
+ sage: B.one()
254
+ B[(0, word: )] + B[(1, word: )] + B[(2, word: )]
255
+
256
+ sage: cartesian_product([SymmetricGroupAlgebra(QQ, 3), # needs sage.combinat sage.groups sage.modules
257
+ ....: SymmetricGroupAlgebra(QQ, 4)]).one()
258
+ B[(0, [1, 2, 3])] + B[(1, [1, 2, 3, 4])]
259
+ """
260
+ return self.sum_of_monomials(zip(self._sets_keys(), (set.one_basis() for set in self._sets)))
261
+
262
+ @lazy_attribute
263
+ def one(self):
264
+ """
265
+ TESTS::
266
+
267
+ sage: A = AlgebrasWithBasis(QQ).example(); A # needs sage.combinat sage.modules
268
+ An example of an algebra with basis: the free algebra
269
+ on the generators ('a', 'b', 'c') over Rational Field
270
+ sage: B = cartesian_product((A, A, A)) # needs sage.combinat sage.modules
271
+ sage: B.one() # needs sage.combinat sage.modules
272
+ B[(0, word: )] + B[(1, word: )] + B[(2, word: )]
273
+ """
274
+ if all(hasattr(module, "one_basis") and module.one_basis is not NotImplemented for module in self._sets):
275
+ return self.one_from_cartesian_product_of_one_basis
276
+ return self._one_generic
277
+
278
+ _one_generic = UnitalAlgebras.CartesianProducts.ParentMethods.one
279
+
280
+ # def product_on_basis(self, t1, t2):
281
+ # would be easy to implement, but without a special
282
+ # version of module morphism, this would not take
283
+ # advantage of the block structure
284
+
285
+ class TensorProducts(TensorProductsCategory):
286
+ """
287
+ The category of algebras with basis constructed by tensor product of algebras with basis
288
+ """
289
+
290
+ @cached_method
291
+ def extra_super_categories(self):
292
+ """
293
+ EXAMPLES::
294
+
295
+ sage: AlgebrasWithBasis(QQ).TensorProducts().extra_super_categories()
296
+ [Category of algebras with basis over Rational Field]
297
+ sage: AlgebrasWithBasis(QQ).TensorProducts().super_categories()
298
+ [Category of algebras with basis over Rational Field,
299
+ Category of tensor products of algebras over Rational Field,
300
+ Category of tensor products of vector spaces with basis over Rational Field]
301
+ """
302
+ return [self.base_category()]
303
+
304
+ class ParentMethods:
305
+ """
306
+ implements operations on tensor products of algebras with basis
307
+ """
308
+
309
+ @cached_method
310
+ def one_basis(self):
311
+ """
312
+ Return the index of the one of this tensor product of
313
+ algebras, as per ``AlgebrasWithBasis.ParentMethods.one_basis``
314
+
315
+ It is the tuple whose operands are the indices of the
316
+ ones of the operands, as returned by their
317
+ :meth:`.one_basis` methods.
318
+
319
+ EXAMPLES::
320
+
321
+ sage: # needs sage.combinat sage.modules
322
+ sage: A = AlgebrasWithBasis(QQ).example(); A
323
+ An example of an algebra with basis: the free algebra
324
+ on the generators ('a', 'b', 'c') over Rational Field
325
+ sage: A.one_basis()
326
+ word:
327
+ sage: B = tensor((A, A, A))
328
+ sage: B.one_basis()
329
+ (word: , word: , word: )
330
+ sage: B.one()
331
+ B[word: ] # B[word: ] # B[word: ]
332
+ """
333
+ # FIXME: this method should be conditionally defined,
334
+ # so that B.one_basis returns NotImplemented if not
335
+ # all modules provide one_basis
336
+ if all(hasattr(module, "one_basis") for module in self._sets):
337
+ return tuple(module.one_basis() for module in self._sets)
338
+ else:
339
+ raise NotImplementedError
340
+
341
+ def product_on_basis(self, t1, t2):
342
+ """
343
+ The product of the algebra on the basis, as per
344
+ ``AlgebrasWithBasis.ParentMethods.product_on_basis``.
345
+
346
+ EXAMPLES::
347
+
348
+ sage: # needs sage.combinat sage.modules
349
+ sage: A = AlgebrasWithBasis(QQ).example(); A
350
+ An example of an algebra with basis: the free algebra
351
+ on the generators ('a', 'b', 'c') over Rational Field
352
+ sage: (a,b,c) = A.algebra_generators()
353
+ sage: x = tensor((a, b, c)); x
354
+ B[word: a] # B[word: b] # B[word: c]
355
+ sage: y = tensor((c, b, a)); y
356
+ B[word: c] # B[word: b] # B[word: a]
357
+ sage: x * y
358
+ B[word: ac] # B[word: bb] # B[word: ca]
359
+ sage: x = tensor(((a + 2*b), c)); x
360
+ B[word: a] # B[word: c] + 2*B[word: b] # B[word: c]
361
+ sage: y = tensor((c, a)) + 1; y
362
+ B[word: ] # B[word: ] + B[word: c] # B[word: a]
363
+ sage: x * y
364
+ B[word: a] # B[word: c] + B[word: ac] # B[word: ca]
365
+ + 2*B[word: b] # B[word: c] + 2*B[word: bc] # B[word: ca]
366
+
367
+
368
+ TODO: optimize this implementation!
369
+ """
370
+ return tensor(module.monomial(x1) * module.monomial(x2)
371
+ for module, x1, x2 in zip(self._sets, t1, t2))
372
+
373
+ class ElementMethods:
374
+ """
375
+ Implement operations on elements of tensor products of algebras with basis
376
+ """
377
+ pass
sage/categories/all.py ADDED
@@ -0,0 +1,160 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Sage categories quickref
4
+
5
+ - ``sage.categories.primer?`` a primer on Elements, Parents, and Categories
6
+ - ``sage.categories.tutorial?`` a tutorial on Elements, Parents, and Categories
7
+ - ``Category?`` technical background on categories
8
+ - ``Sets()``, ``Semigroups()``, ``Algebras(QQ)`` some categories
9
+ - ``SemiGroups().example()??`` sample implementation of a semigroup
10
+ - ``Hom(A, B)``, ``End(A, Algebras())`` homomorphisms sets
11
+ - ``tensor``, ``cartesian_product`` functorial constructions
12
+
13
+ Module layout:
14
+
15
+ - :mod:`sage.categories.basic` the basic categories
16
+ - :mod:`sage.categories.all` all categories
17
+ - :mod:`sage.categories.semigroups` the ``Semigroups()`` category
18
+ - :mod:`sage.categories.examples.semigroups` the example of ``Semigroups()``
19
+ - :mod:`sage.categories.homset` morphisms, ...
20
+ - :mod:`sage.categories.map`
21
+ - :mod:`sage.categories.morphism`
22
+ - :mod:`sage.categories.functors`
23
+ - :mod:`sage.categories.cartesian_product` functorial constructions
24
+ - :mod:`sage.categories.tensor`
25
+ - :mod:`sage.categories.dual`
26
+ """
27
+ # install the docstring of this module to the containing package
28
+ from sage.misc.namespace_package import install_doc
29
+ install_doc(__package__, __doc__)
30
+
31
+ from sage.categories import primer
32
+
33
+ from sage.misc.lazy_import import lazy_import
34
+
35
+ from sage.categories.all__sagemath_objects import *
36
+
37
+ from sage.categories.basic import *
38
+
39
+ from sage.categories.chain_complexes import ChainComplexes, HomologyFunctor
40
+
41
+ from sage.categories.simplicial_complexes import SimplicialComplexes
42
+
43
+ from sage.categories.tensor import tensor
44
+ from sage.categories.signed_tensor import tensor_signed
45
+
46
+ from sage.categories.g_sets import GSets
47
+ from sage.categories.pointed_sets import PointedSets
48
+
49
+ from sage.categories.sets_with_grading import SetsWithGrading
50
+
51
+ from sage.categories.groupoid import Groupoid
52
+ from sage.categories.permutation_groups import PermutationGroups
53
+
54
+ # enumerated sets
55
+ from sage.categories.finite_sets import FiniteSets
56
+ from sage.categories.enumerated_sets import EnumeratedSets
57
+ from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets
58
+ from sage.categories.infinite_enumerated_sets import InfiniteEnumeratedSets
59
+
60
+ # posets
61
+ from sage.categories.posets import Posets
62
+ from sage.categories.finite_posets import FinitePosets
63
+ from sage.categories.lattice_posets import LatticePosets
64
+ from sage.categories.finite_lattice_posets import FiniteLatticePosets
65
+
66
+ # finite groups/...
67
+ from sage.categories.finite_semigroups import FiniteSemigroups
68
+ from sage.categories.finite_monoids import FiniteMonoids
69
+ from sage.categories.finite_groups import FiniteGroups
70
+ from sage.categories.finite_permutation_groups import FinitePermutationGroups
71
+
72
+ # fields
73
+ from sage.categories.number_fields import NumberFields
74
+ from sage.categories.function_fields import FunctionFields
75
+
76
+ # modules
77
+ from sage.categories.left_modules import LeftModules
78
+ from sage.categories.right_modules import RightModules
79
+ from sage.categories.bimodules import Bimodules
80
+
81
+ from sage.categories.modules import Modules
82
+ RingModules = Modules
83
+ from sage.categories.vector_spaces import VectorSpaces
84
+
85
+ # (Hopf) algebra structures
86
+ from sage.categories.algebras import Algebras
87
+ from sage.categories.commutative_algebras import CommutativeAlgebras
88
+ from sage.categories.coalgebras import Coalgebras
89
+ from sage.categories.bialgebras import Bialgebras
90
+ from sage.categories.hopf_algebras import HopfAlgebras
91
+ from sage.categories.lie_algebras import LieAlgebras
92
+
93
+ # specific algebras
94
+ from sage.categories.monoid_algebras import MonoidAlgebras
95
+ from sage.categories.group_algebras import GroupAlgebras
96
+ from sage.categories.matrix_algebras import MatrixAlgebras
97
+
98
+ # ideals
99
+ from sage.categories.ring_ideals import RingIdeals
100
+ Ideals = RingIdeals
101
+ from sage.categories.commutative_ring_ideals import CommutativeRingIdeals
102
+ from sage.categories.algebra_modules import AlgebraModules
103
+ from sage.categories.algebra_ideals import AlgebraIdeals
104
+ from sage.categories.commutative_algebra_ideals import CommutativeAlgebraIdeals
105
+
106
+ # schemes and varieties
107
+ from sage.categories.modular_abelian_varieties import ModularAbelianVarieties
108
+ from sage.categories.schemes import Schemes, AbelianVarieties, Jacobians
109
+
110
+ # * with basis
111
+ from sage.categories.modules_with_basis import ModulesWithBasis
112
+ FreeModules = ModulesWithBasis
113
+ from sage.categories.hecke_modules import HeckeModules
114
+ from sage.categories.algebras_with_basis import AlgebrasWithBasis
115
+ from sage.categories.coalgebras_with_basis import CoalgebrasWithBasis
116
+ from sage.categories.bialgebras_with_basis import BialgebrasWithBasis
117
+ from sage.categories.hopf_algebras_with_basis import HopfAlgebrasWithBasis
118
+
119
+ # finite dimensional * with basis
120
+ from sage.categories.finite_dimensional_modules_with_basis import FiniteDimensionalModulesWithBasis
121
+ from sage.categories.finite_dimensional_algebras_with_basis import FiniteDimensionalAlgebrasWithBasis
122
+ from sage.categories.finite_dimensional_coalgebras_with_basis import FiniteDimensionalCoalgebrasWithBasis
123
+ from sage.categories.finite_dimensional_bialgebras_with_basis import FiniteDimensionalBialgebrasWithBasis
124
+ from sage.categories.finite_dimensional_hopf_algebras_with_basis import FiniteDimensionalHopfAlgebrasWithBasis
125
+
126
+ # graded *
127
+ from sage.categories.graded_modules import GradedModules
128
+ from sage.categories.graded_algebras import GradedAlgebras
129
+ from sage.categories.graded_coalgebras import GradedCoalgebras
130
+ from sage.categories.graded_bialgebras import GradedBialgebras
131
+ from sage.categories.graded_hopf_algebras import GradedHopfAlgebras
132
+
133
+ # graded * with basis
134
+ from sage.categories.graded_modules_with_basis import GradedModulesWithBasis
135
+ from sage.categories.graded_algebras_with_basis import GradedAlgebrasWithBasis
136
+ from sage.categories.graded_coalgebras_with_basis import GradedCoalgebrasWithBasis
137
+ from sage.categories.graded_bialgebras_with_basis import GradedBialgebrasWithBasis
138
+ from sage.categories.graded_hopf_algebras_with_basis import GradedHopfAlgebrasWithBasis
139
+
140
+ # Coxeter groups
141
+ from sage.categories.coxeter_groups import CoxeterGroups
142
+ lazy_import('sage.categories.finite_coxeter_groups', 'FiniteCoxeterGroups')
143
+ from sage.categories.weyl_groups import WeylGroups
144
+ from sage.categories.finite_weyl_groups import FiniteWeylGroups
145
+ from sage.categories.affine_weyl_groups import AffineWeylGroups
146
+
147
+ # crystal bases
148
+ from sage.categories.crystals import Crystals
149
+ from sage.categories.highest_weight_crystals import HighestWeightCrystals
150
+ from sage.categories.regular_crystals import RegularCrystals
151
+ from sage.categories.finite_crystals import FiniteCrystals
152
+ from sage.categories.classical_crystals import ClassicalCrystals
153
+
154
+ # polyhedra
155
+ lazy_import('sage.categories.polyhedra', 'PolyhedralSets')
156
+
157
+ # lie conformal algebras
158
+ lazy_import('sage.categories.lie_conformal_algebras', 'LieConformalAlgebras')
159
+ del lazy_import
160
+ del install_doc
@@ -0,0 +1,29 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Aperiodic semigroups
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2016 Nicolas M. Thiéry <nthiery at users.sf.net>
7
+ #
8
+ # This program is free software: you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation, either version 2 of the License, or
11
+ # (at your option) any later version.
12
+ # http://www.gnu.org/licenses/
13
+ #*****************************************************************************
14
+
15
+ from sage.categories.category_with_axiom import CategoryWithAxiom
16
+ from sage.categories.semigroups import Semigroups
17
+
18
+
19
+ class AperiodicSemigroups(CategoryWithAxiom):
20
+ def extra_super_categories(self):
21
+ r"""
22
+ Implement the fact that an aperiodic semigroup is `H`-trivial.
23
+
24
+ EXAMPLES::
25
+
26
+ sage: Semigroups().Aperiodic().extra_super_categories()
27
+ [Category of h trivial semigroups]
28
+ """
29
+ return [Semigroups().HTrivial()]
@@ -0,0 +1,47 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Associative algebras
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2011 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.lazy_import import LazyImport
13
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
14
+ from sage.categories.magmatic_algebras import MagmaticAlgebras
15
+
16
+
17
+ class AssociativeAlgebras(CategoryWithAxiom_over_base_ring):
18
+ r"""
19
+ The category of associative algebras over a given base ring.
20
+
21
+ An associative algebra over a ring `R` is a module over `R` which
22
+ is also a not necessarily unital ring.
23
+
24
+ .. WARNING::
25
+
26
+ Until :issue:`15043` is implemented, :class:`Algebras` is the
27
+ category of associative unital algebras; thus, unlike the name
28
+ suggests, :class:`AssociativeAlgebras` is not a subcategory of
29
+ :class:`Algebras` but of
30
+ :class:`~.magmatic_algebras.MagmaticAlgebras`.
31
+
32
+ EXAMPLES::
33
+
34
+ sage: from sage.categories.associative_algebras import AssociativeAlgebras
35
+ sage: C = AssociativeAlgebras(ZZ); C
36
+ Category of associative algebras over Integer Ring
37
+
38
+ TESTS::
39
+
40
+ sage: from sage.categories.magmatic_algebras import MagmaticAlgebras
41
+ sage: C is MagmaticAlgebras(ZZ).Associative()
42
+ True
43
+ sage: TestSuite(C).run()
44
+ """
45
+ _base_category_class_and_axiom = (MagmaticAlgebras, "Associative")
46
+
47
+ Unital = LazyImport('sage.categories.algebras', 'Algebras', at_startup=True)