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,405 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ # sage.doctest: needs sage.combinat
3
+ r"""
4
+ Coalgebras
5
+ """
6
+ # ****************************************************************************
7
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
8
+ # Copyright (C) 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.category_types import Category_over_base_ring
15
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
16
+ from sage.categories.dual import DualObjectsCategory
17
+ from sage.categories.filtered_modules import FilteredModulesCategory
18
+ from sage.categories.modules import Modules
19
+ from sage.categories.realizations import RealizationsCategory
20
+ from sage.categories.super_modules import SuperModulesCategory
21
+ from sage.categories.tensor import TensorProductsCategory
22
+ from sage.categories.with_realizations import WithRealizationsCategory
23
+ from sage.misc.abstract_method import abstract_method
24
+ from sage.misc.cachefunc import cached_method
25
+ from sage.misc.lazy_import import LazyImport
26
+
27
+
28
+ class Coalgebras(Category_over_base_ring):
29
+ """
30
+ The category of coalgebras.
31
+
32
+ EXAMPLES::
33
+
34
+ sage: Coalgebras(QQ)
35
+ Category of coalgebras over Rational Field
36
+ sage: Coalgebras(QQ).super_categories()
37
+ [Category of vector spaces over Rational Field]
38
+
39
+ TESTS::
40
+
41
+ sage: TestSuite(Coalgebras(ZZ)).run()
42
+ """
43
+ def super_categories(self):
44
+ """
45
+ EXAMPLES::
46
+
47
+ sage: Coalgebras(QQ).super_categories()
48
+ [Category of vector spaces over Rational Field]
49
+ """
50
+ return [Modules(self.base_ring())]
51
+
52
+ WithBasis = LazyImport('sage.categories.coalgebras_with_basis', 'CoalgebrasWithBasis')
53
+ Graded = LazyImport('sage.categories.graded_coalgebras', 'GradedCoalgebras')
54
+
55
+ class ParentMethods:
56
+ #def __init_add__(self): # The analogue of initDomainAdd
57
+ # # Will declare the coproduct of self to the coercion mechanism when it exists
58
+ # pass
59
+
60
+ @abstract_method
61
+ def counit(self, x):
62
+ """
63
+ Return the counit of ``x``.
64
+
65
+ Eventually, there will be a default implementation,
66
+ delegating to the overloading mechanism and forcing the
67
+ conversion back
68
+
69
+ EXAMPLES::
70
+
71
+ sage: # needs sage.groups sage.modules
72
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A
73
+ An example of Hopf algebra with basis:
74
+ the group algebra of the Dihedral group of order 6 as a permutation group
75
+ over Rational Field
76
+ sage: [a,b] = A.algebra_generators()
77
+ sage: a, A.counit(a)
78
+ (B[(1,2,3)], 1)
79
+ sage: b, A.counit(b)
80
+ (B[(1,3)], 1)
81
+
82
+ TODO: implement some tests of the axioms of coalgebras, bialgebras
83
+ and Hopf algebras using the counit.
84
+ """
85
+
86
+ @abstract_method
87
+ def coproduct(self, x):
88
+ """
89
+ Return the coproduct of ``x``.
90
+
91
+ Eventually, there will be a default implementation,
92
+ delegating to the overloading mechanism and forcing the
93
+ conversion back
94
+
95
+ EXAMPLES::
96
+
97
+ sage: # needs sage.groups sage.modules
98
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A
99
+ An example of Hopf algebra with basis:
100
+ the group algebra of the Dihedral group of order 6 as a permutation group
101
+ over Rational Field
102
+ sage: [a,b] = A.algebra_generators()
103
+ sage: a, A.coproduct(a)
104
+ (B[(1,2,3)], B[(1,2,3)] # B[(1,2,3)])
105
+ sage: b, A.coproduct(b)
106
+ (B[(1,3)], B[(1,3)] # B[(1,3)])
107
+ """
108
+ #return self.tensor_square()(overloaded_coproduct(x))
109
+
110
+ class ElementMethods:
111
+ def coproduct(self):
112
+ """
113
+ Return the coproduct of ``self``.
114
+
115
+ EXAMPLES::
116
+
117
+ sage: # needs sage.groups sage.modules
118
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A
119
+ An example of Hopf algebra with basis:
120
+ the group algebra of the Dihedral group of order 6 as a permutation group
121
+ over Rational Field
122
+ sage: [a,b] = A.algebra_generators()
123
+ sage: a, a.coproduct()
124
+ (B[(1,2,3)], B[(1,2,3)] # B[(1,2,3)])
125
+ sage: b, b.coproduct()
126
+ (B[(1,3)], B[(1,3)] # B[(1,3)])
127
+ """
128
+ return self.parent().coproduct(self)
129
+
130
+ def counit(self):
131
+ """
132
+ Return the counit of ``self``.
133
+
134
+ EXAMPLES::
135
+
136
+ sage: # needs sage.groups sage.modules
137
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A
138
+ An example of Hopf algebra with basis:
139
+ the group algebra of the Dihedral group of order 6 as a permutation group
140
+ over Rational Field
141
+ sage: [a,b] = A.algebra_generators()
142
+ sage: a, a.counit()
143
+ (B[(1,2,3)], 1)
144
+ sage: b, b.counit()
145
+ (B[(1,3)], 1)
146
+ """
147
+ return self.parent().counit(self)
148
+
149
+ class SubcategoryMethods:
150
+ @cached_method
151
+ def Cocommutative(self):
152
+ r"""
153
+ Return the full subcategory of the cocommutative objects
154
+ of ``self``.
155
+
156
+ A coalgebra `C` is said to be *cocommutative* if
157
+
158
+ .. MATH::
159
+
160
+ \Delta(c) = \sum_{(c)} c_{(1)} \otimes c_{(2)}
161
+ = \sum_{(c)} c_{(2)} \otimes c_{(1)}
162
+
163
+ in Sweedler's notation for all `c \in C`.
164
+
165
+ EXAMPLES::
166
+
167
+ sage: C1 = Coalgebras(ZZ).Cocommutative().WithBasis(); C1
168
+ Category of cocommutative coalgebras with basis over Integer Ring
169
+ sage: C2 = Coalgebras(ZZ).WithBasis().Cocommutative()
170
+ sage: C1 is C2
171
+ True
172
+ sage: BialgebrasWithBasis(QQ).Cocommutative()
173
+ Category of cocommutative bialgebras with basis over Rational Field
174
+
175
+ TESTS::
176
+
177
+ sage: TestSuite(Coalgebras(ZZ).Cocommutative()).run()
178
+ """
179
+ return self._with_axiom("Cocommutative")
180
+
181
+ class Cocommutative(CategoryWithAxiom_over_base_ring):
182
+ """
183
+ Category of cocommutative coalgebras.
184
+ """
185
+
186
+ class TensorProducts(TensorProductsCategory):
187
+ @cached_method
188
+ def extra_super_categories(self):
189
+ """
190
+ EXAMPLES::
191
+
192
+ sage: Coalgebras(QQ).TensorProducts().extra_super_categories()
193
+ [Category of coalgebras over Rational Field]
194
+ sage: Coalgebras(QQ).TensorProducts().super_categories()
195
+ [Category of tensor products of vector spaces over Rational Field,
196
+ Category of coalgebras over Rational Field]
197
+
198
+ Meaning: a tensor product of coalgebras is a coalgebra
199
+ """
200
+ return [self.base_category()]
201
+
202
+ class ParentMethods:
203
+ # TODO: provide this default implementation of one if one_basis is not implemented
204
+ #def one(self):
205
+ # return tensor(module.one() for module in self.modules)
206
+ pass
207
+
208
+ class ElementMethods:
209
+ pass
210
+
211
+ class DualObjects(DualObjectsCategory):
212
+
213
+ def extra_super_categories(self):
214
+ r"""
215
+ Return the dual category.
216
+
217
+ EXAMPLES:
218
+
219
+ The category of coalgebras over the Rational Field is dual
220
+ to the category of algebras over the same field::
221
+
222
+ sage: C = Coalgebras(QQ)
223
+ sage: C.dual()
224
+ Category of duals of coalgebras over Rational Field
225
+ sage: C.dual().super_categories() # indirect doctest
226
+ [Category of algebras over Rational Field,
227
+ Category of duals of vector spaces over Rational Field]
228
+
229
+ .. WARNING::
230
+
231
+ This is only correct in certain cases (finite dimension, ...).
232
+ See :issue:`15647`.
233
+ """
234
+ from sage.categories.algebras import Algebras
235
+ return [Algebras(self.base_category().base_ring())]
236
+
237
+ class Super(SuperModulesCategory):
238
+ def extra_super_categories(self):
239
+ """
240
+ EXAMPLES::
241
+
242
+ sage: Coalgebras(ZZ).Super().extra_super_categories()
243
+ [Category of graded coalgebras over Integer Ring]
244
+ sage: Coalgebras(ZZ).Super().super_categories()
245
+ [Category of graded coalgebras over Integer Ring,
246
+ Category of super modules over Integer Ring]
247
+
248
+ Compare this with the situation for bialgebras::
249
+
250
+ sage: Bialgebras(ZZ).Super().extra_super_categories()
251
+ []
252
+ sage: Bialgebras(ZZ).Super().super_categories()
253
+ [Category of super algebras over Integer Ring,
254
+ Category of super coalgebras over Integer Ring]
255
+
256
+ The category of bialgebras does not occur in these results,
257
+ since super bialgebras are not bialgebras.
258
+ """
259
+ return [self.base_category().Graded()]
260
+
261
+ class SubcategoryMethods:
262
+ @cached_method
263
+ def Supercocommutative(self):
264
+ r"""
265
+ Return the full subcategory of the supercocommutative
266
+ objects of ``self``.
267
+
268
+ EXAMPLES::
269
+
270
+ sage: Coalgebras(ZZ).WithBasis().Super().Supercocommutative()
271
+ Category of supercocommutative super coalgebras with basis over Integer Ring
272
+ sage: BialgebrasWithBasis(QQ).Super().Supercocommutative()
273
+ Join of Category of super algebras with basis over Rational Field
274
+ and Category of super bialgebras over Rational Field
275
+ and Category of super coalgebras with basis over Rational Field
276
+ and Category of supercocommutative super coalgebras over Rational Field
277
+
278
+ TESTS::
279
+
280
+ sage: TestSuite(HopfAlgebras(ZZ).Super().Supercocommutative()).run()
281
+ """
282
+ return self._with_axiom("Supercocommutative")
283
+
284
+ class Supercocommutative(CategoryWithAxiom_over_base_ring):
285
+ """
286
+ Category of supercocommutative coalgebras.
287
+ """
288
+
289
+ class Filtered(FilteredModulesCategory):
290
+ """
291
+ Category of filtered coalgebras.
292
+ """
293
+
294
+ class WithRealizations(WithRealizationsCategory):
295
+
296
+ class ParentMethods:
297
+
298
+ def coproduct(self, x):
299
+ r"""
300
+ Return the coproduct of ``x``.
301
+
302
+ EXAMPLES::
303
+
304
+ sage: # needs sage.modules
305
+ sage: N = NonCommutativeSymmetricFunctions(QQ)
306
+ sage: S = N.complete()
307
+ sage: N.coproduct.__module__
308
+ 'sage.categories.coalgebras'
309
+ sage: N.coproduct(S[2])
310
+ S[] # S[2] + S[1] # S[1] + S[2] # S[]
311
+ """
312
+ return self.a_realization()(x).coproduct()
313
+
314
+ def counit(self, x):
315
+ r"""
316
+ Return the counit of ``x``.
317
+
318
+ EXAMPLES::
319
+
320
+ sage: # needs sage.modules
321
+ sage: Sym = SymmetricFunctions(QQ)
322
+ sage: s = Sym.schur()
323
+ sage: f = s[2,1]
324
+ sage: f.counit.__module__
325
+ 'sage.categories.coalgebras'
326
+ sage: f.counit()
327
+ 0
328
+
329
+ ::
330
+
331
+ sage: # needs sage.modules
332
+ sage: N = NonCommutativeSymmetricFunctions(QQ)
333
+ sage: N.counit.__module__
334
+ 'sage.categories.coalgebras'
335
+ sage: N.counit(N.one())
336
+ 1
337
+ sage: x = N.an_element(); x
338
+ 2*S[] + 2*S[1] + 3*S[1, 1]
339
+ sage: N.counit(x)
340
+ 2
341
+ """
342
+ return self.a_realization()(x).counit()
343
+
344
+ class Realizations(RealizationsCategory):
345
+
346
+ class ParentMethods:
347
+
348
+ def coproduct_by_coercion(self, x):
349
+ r"""
350
+ Return the coproduct by coercion if ``coproduct_by_basis``
351
+ is not implemented.
352
+
353
+ EXAMPLES::
354
+
355
+ sage: # needs sage.modules
356
+ sage: Sym = SymmetricFunctions(QQ)
357
+ sage: m = Sym.monomial()
358
+ sage: f = m[2,1]
359
+ sage: f.coproduct.__module__
360
+ 'sage.categories.coalgebras'
361
+ sage: m.coproduct_on_basis
362
+ NotImplemented
363
+ sage: m.coproduct == m.coproduct_by_coercion
364
+ True
365
+ sage: f.coproduct() # needs lrcalc_python
366
+ m[] # m[2, 1] + m[1] # m[2] + m[2] # m[1] + m[2, 1] # m[]
367
+
368
+ ::
369
+
370
+ sage: # needs sage.modules
371
+ sage: N = NonCommutativeSymmetricFunctions(QQ)
372
+ sage: R = N.ribbon()
373
+ sage: R.coproduct_by_coercion.__module__
374
+ 'sage.categories.coalgebras'
375
+ sage: R.coproduct_on_basis
376
+ NotImplemented
377
+ sage: R.coproduct == R.coproduct_by_coercion
378
+ True
379
+ sage: R[1].coproduct()
380
+ R[] # R[1] + R[1] # R[]
381
+ """
382
+ R = self.realization_of().a_realization()
383
+ return self.tensor_square()(R(x).coproduct())
384
+
385
+ def counit_by_coercion(self, x):
386
+ r"""
387
+ Return the counit of ``x`` if ``counit_by_basis`` is
388
+ not implemented.
389
+
390
+ EXAMPLES::
391
+
392
+ sage: # needs lrcalc_python sage.modules
393
+ sage: sp = SymmetricFunctions(QQ).sp()
394
+ sage: sp.an_element()
395
+ 2*sp[] + 2*sp[1] + 3*sp[2]
396
+ sage: sp.counit(sp.an_element())
397
+ 2
398
+ sage: o = SymmetricFunctions(QQ).o()
399
+ sage: o.an_element()
400
+ 2*o[] + 2*o[1] + 3*o[2]
401
+ sage: o.counit(o.an_element())
402
+ -1
403
+ """
404
+ R = self.realization_of().a_realization()
405
+ return R(x).counit()
@@ -0,0 +1,232 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Coalgebras with basis
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # Copyright (C) 2008-2011 Nicolas M. Thiery <nthiery at users.sf.net>
8
+ #
9
+ # Distributed under the terms of the GNU General Public License (GPL)
10
+ # http://www.gnu.org/licenses/
11
+ #******************************************************************************
12
+
13
+ from sage.misc.abstract_method import abstract_method
14
+ from sage.misc.lazy_attribute import lazy_attribute
15
+ from sage.misc.lazy_import import LazyImport
16
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
17
+ from sage.categories.modules_with_basis import ModulesWithBasis
18
+ from sage.categories.tensor import tensor
19
+ from sage.categories.homset import Hom
20
+ from sage.categories.super_modules import SuperModulesCategory
21
+ from sage.categories.filtered_modules import FilteredModulesCategory
22
+
23
+
24
+ class CoalgebrasWithBasis(CategoryWithAxiom_over_base_ring):
25
+ """
26
+ The category of coalgebras with a distinguished basis.
27
+
28
+ EXAMPLES::
29
+
30
+ sage: CoalgebrasWithBasis(ZZ)
31
+ Category of coalgebras with basis over Integer Ring
32
+ sage: sorted(CoalgebrasWithBasis(ZZ).super_categories(), key=str)
33
+ [Category of coalgebras over Integer Ring,
34
+ Category of modules with basis over Integer Ring]
35
+
36
+ TESTS::
37
+
38
+ sage: TestSuite(CoalgebrasWithBasis(ZZ)).run()
39
+ """
40
+ Graded = LazyImport('sage.categories.graded_coalgebras_with_basis',
41
+ 'GradedCoalgebrasWithBasis')
42
+
43
+ class Filtered(FilteredModulesCategory):
44
+ """
45
+ Category of filtered coalgebras.
46
+ """
47
+
48
+ class ParentMethods:
49
+
50
+ @abstract_method(optional=True)
51
+ def coproduct_on_basis(self, i):
52
+ """
53
+ The coproduct of the algebra on the basis (optional).
54
+
55
+ INPUT:
56
+
57
+ - ``i`` -- the indices of an element of the basis of ``self``
58
+
59
+ Returns the coproduct of the corresponding basis elements
60
+ If implemented, the coproduct of the algebra is defined
61
+ from it by linearity.
62
+
63
+ EXAMPLES::
64
+
65
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A # needs sage.groups sage.modules
66
+ An example of Hopf algebra with basis:
67
+ the group algebra of the Dihedral group of order 6
68
+ as a permutation group over Rational Field
69
+ sage: (a, b) = A._group.gens() # needs sage.groups sage.modules
70
+ sage: A.coproduct_on_basis(a) # needs sage.groups sage.modules
71
+ B[(1,2,3)] # B[(1,2,3)]
72
+ """
73
+
74
+ @lazy_attribute
75
+ def coproduct(self):
76
+ r"""
77
+ If :meth:`coproduct_on_basis` is available, construct the
78
+ coproduct morphism from ``self`` to ``self`` `\otimes`
79
+ ``self`` by extending it by linearity. Otherwise, use
80
+ :meth:`~Coalgebras.Realizations.ParentMethods.coproduct_by_coercion`,
81
+ if available.
82
+
83
+ EXAMPLES::
84
+
85
+ sage: # needs sage.groups sage.modules
86
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A
87
+ An example of Hopf algebra with basis:
88
+ the group algebra of the Dihedral group of order 6
89
+ as a permutation group over Rational Field
90
+ sage: a, b = A.algebra_generators()
91
+ sage: a, A.coproduct(a)
92
+ (B[(1,2,3)], B[(1,2,3)] # B[(1,2,3)])
93
+ sage: b, A.coproduct(b)
94
+ (B[(1,3)], B[(1,3)] # B[(1,3)])
95
+ """
96
+ if self.coproduct_on_basis is not NotImplemented:
97
+ # TODO: if self is a Hopf algebra, then one would want
98
+ # to create a morphism of algebras with basis instead
99
+ # should there be a method self.coproduct_homset_category?
100
+ return Hom(self, tensor([self, self]), ModulesWithBasis(self.base_ring()))(on_basis=self.coproduct_on_basis)
101
+ elif hasattr(self, "coproduct_by_coercion"):
102
+ return self.coproduct_by_coercion
103
+
104
+ @abstract_method(optional=True)
105
+ def counit_on_basis(self, i):
106
+ """
107
+ The counit of the algebra on the basis (optional).
108
+
109
+ INPUT:
110
+
111
+ - ``i`` -- the indices of an element of the basis of ``self``
112
+
113
+ Returns the counit of the corresponding basis elements
114
+ If implemented, the counit of the algebra is defined
115
+ from it by linearity.
116
+
117
+ EXAMPLES::
118
+
119
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A # needs sage.groups sage.modules
120
+ An example of Hopf algebra with basis:
121
+ the group algebra of the Dihedral group of order 6
122
+ as a permutation group over Rational Field
123
+ sage: (a, b) = A._group.gens() # needs sage.groups sage.modules
124
+ sage: A.counit_on_basis(a) # needs sage.groups sage.modules
125
+ 1
126
+ """
127
+
128
+ @lazy_attribute
129
+ def counit(self):
130
+ r"""
131
+ If :meth:`counit_on_basis` is available, construct the
132
+ counit morphism from ``self`` to ``self`` `\otimes`
133
+ ``self`` by extending it by linearity
134
+
135
+ EXAMPLES::
136
+
137
+ sage: # needs sage.groups sage.modules
138
+ sage: A = HopfAlgebrasWithBasis(QQ).example(); A
139
+ An example of Hopf algebra with basis:
140
+ the group algebra of the Dihedral group of order 6
141
+ as a permutation group over Rational Field
142
+ sage: a, b = A.algebra_generators()
143
+ sage: a, A.counit(a)
144
+ (B[(1,2,3)], 1)
145
+ sage: b, A.counit(b)
146
+ (B[(1,3)], 1)
147
+ """
148
+ if self.counit_on_basis is not NotImplemented:
149
+ return self.module_morphism(self.counit_on_basis,codomain=self.base_ring())
150
+ elif hasattr(self, "counit_by_coercion"):
151
+ return self.counit_by_coercion
152
+
153
+ class ElementMethods:
154
+ def coproduct_iterated(self, n=1):
155
+ r"""
156
+ Apply ``n`` coproducts to ``self``.
157
+
158
+ .. TODO::
159
+
160
+ Remove dependency on ``modules_with_basis`` methods.
161
+
162
+ EXAMPLES::
163
+
164
+ sage: Psi = NonCommutativeSymmetricFunctions(QQ).Psi() # needs sage.combinat sage.modules
165
+ sage: Psi[2,2].coproduct_iterated(0) # needs sage.combinat sage.modules
166
+ Psi[2, 2]
167
+ sage: Psi[2,2].coproduct_iterated(2) # needs sage.combinat sage.modules
168
+ Psi[] # Psi[] # Psi[2, 2] + 2*Psi[] # Psi[2] # Psi[2]
169
+ + Psi[] # Psi[2, 2] # Psi[] + 2*Psi[2] # Psi[] # Psi[2]
170
+ + 2*Psi[2] # Psi[2] # Psi[] + Psi[2, 2] # Psi[] # Psi[]
171
+
172
+ TESTS::
173
+
174
+ sage: p = SymmetricFunctions(QQ).p() # needs sage.combinat sage.modules
175
+ sage: p[5,2,2].coproduct_iterated() # needs sage.combinat sage.modules
176
+ p[] # p[5, 2, 2] + 2*p[2] # p[5, 2] + p[2, 2] # p[5]
177
+ + p[5] # p[2, 2] + 2*p[5, 2] # p[2] + p[5, 2, 2] # p[]
178
+ sage: p([]).coproduct_iterated(3) # needs sage.combinat sage.modules
179
+ p[] # p[] # p[] # p[]
180
+
181
+ ::
182
+
183
+ sage: Psi = NonCommutativeSymmetricFunctions(QQ).Psi() # needs sage.combinat sage.modules
184
+ sage: Psi[2,2].coproduct_iterated(0) # needs sage.combinat sage.modules
185
+ Psi[2, 2]
186
+ sage: Psi[2,2].coproduct_iterated(3) # needs sage.combinat sage.modules
187
+ Psi[] # Psi[] # Psi[] # Psi[2, 2] + 2*Psi[] # Psi[] # Psi[2] # Psi[2]
188
+ + Psi[] # Psi[] # Psi[2, 2] # Psi[] + 2*Psi[] # Psi[2] # Psi[] # Psi[2]
189
+ + 2*Psi[] # Psi[2] # Psi[2] # Psi[] + Psi[] # Psi[2, 2] # Psi[] # Psi[]
190
+ + 2*Psi[2] # Psi[] # Psi[] # Psi[2] + 2*Psi[2] # Psi[] # Psi[2] # Psi[]
191
+ + 2*Psi[2] # Psi[2] # Psi[] # Psi[] + Psi[2, 2] # Psi[] # Psi[] # Psi[]
192
+
193
+ ::
194
+
195
+ sage: # needs sage.combinat sage.graphs sage.modules
196
+ sage: m = SymmetricFunctionsNonCommutingVariables(QQ).m()
197
+ sage: m[[1,3],[2]].coproduct_iterated(2)
198
+ m{} # m{} # m{{1, 3}, {2}} + m{} # m{{1}} # m{{1, 2}}
199
+ + m{} # m{{1, 2}} # m{{1}} + m{} # m{{1, 3}, {2}} # m{}
200
+ + m{{1}} # m{} # m{{1, 2}} + m{{1}} # m{{1, 2}} # m{}
201
+ + m{{1, 2}} # m{} # m{{1}} + m{{1, 2}} # m{{1}} # m{}
202
+ + m{{1, 3}, {2}} # m{} # m{}
203
+ sage: m[[]].coproduct_iterated(3), m[[1,3],[2]].coproduct_iterated(0)
204
+ (m{} # m{} # m{} # m{}, m{{1, 3}, {2}})
205
+ """
206
+ if n < 0:
207
+ raise ValueError("cannot take fewer than 0 coproduct iterations: %s < 0" % str(n))
208
+ if n == 0:
209
+ return self
210
+ if n == 1:
211
+ return self.coproduct()
212
+ from sage.rings.integer import Integer
213
+
214
+ # Use coassociativity of `\Delta` to perform many coproducts simultaneously.
215
+ fn = Integer(n - 1) // 2
216
+ cn = Integer(n - 1) // 2 if n % 2 else Integer(n) // 2
217
+ split = lambda a, b: tensor([a.coproduct_iterated(fn),
218
+ b.coproduct_iterated(cn)])
219
+ return self.coproduct().apply_multilinear_morphism(split)
220
+
221
+ class Super(SuperModulesCategory):
222
+ def extra_super_categories(self):
223
+ """
224
+ EXAMPLES::
225
+
226
+ sage: C = Coalgebras(ZZ).WithBasis().Super()
227
+ sage: sorted(C.super_categories(), key=str) # indirect doctest
228
+ [Category of graded coalgebras with basis over Integer Ring,
229
+ Category of super coalgebras over Integer Ring,
230
+ Category of super modules with basis over Integer Ring]
231
+ """
232
+ return [self.base_category().Graded()]
@@ -0,0 +1,52 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ """
3
+ Coercion methods for categories
4
+
5
+ The purpose of this Cython module is to hold special coercion methods,
6
+ which are inserted by their respective categories.
7
+ """
8
+
9
+ from sage.structure.element cimport Element
10
+ cimport cython
11
+
12
+
13
+ @cython.binding
14
+ def _mul_parent(self, other):
15
+ r"""
16
+ Return the product of the two elements, calculated using
17
+ the ``product`` method of the parent.
18
+
19
+ This is inserted by :meth:`Magmas.ParentMethods.__init_extra__` as
20
+ default implementation of ``Magmas.ElementMethods._mul_`` if
21
+ ``product`` is implemented in the parent.
22
+
23
+ INPUT:
24
+
25
+ - ``other`` -- an element of the parent of ``self``
26
+
27
+ OUTPUT: an element of the parent of ``self``
28
+
29
+ EXAMPLES::
30
+
31
+ sage: S = Semigroups().example("free")
32
+ sage: x = S('a'); y = S('b')
33
+ sage: x._mul_parent(y)
34
+ 'ab'
35
+
36
+ .. SEEALSO::
37
+
38
+ - :meth:`Magmas.ElementMethods._mul_parent`
39
+ - :meth:`Magmas.ElementMethods.__init_extra__`
40
+ - :meth:`Magmas.ParentMethods.product`
41
+
42
+ This is :meth:`Magmas.ElementMethods._mul_parent`, implemented as
43
+ a Cython method in :mod:`sage.categories.coercion_methods`::
44
+
45
+ sage: from sage.cpython.getattr import raw_getattr
46
+ sage: x._mul_parent.__func__ is raw_getattr(Magmas.ElementMethods,
47
+ ....: '_mul_parent')
48
+ True
49
+ sage: x._mul_parent.__func__ is sage.categories.coercion_methods._mul_parent
50
+ True
51
+ """
52
+ return (<Element>self)._parent.product(self, other)