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,258 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Graded algebras with basis
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 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.categories.graded_modules import GradedModulesCategory
14
+ from sage.categories.signed_tensor import SignedTensorProductsCategory, tensor_signed
15
+ from sage.misc.cachefunc import cached_method
16
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
17
+
18
+
19
+ class GradedAlgebrasWithBasis(GradedModulesCategory):
20
+ """
21
+ The category of graded algebras with a distinguished basis.
22
+
23
+ EXAMPLES::
24
+
25
+ sage: C = GradedAlgebrasWithBasis(ZZ); C
26
+ Category of graded algebras with basis over Integer Ring
27
+ sage: sorted(C.super_categories(), key=str)
28
+ [Category of filtered algebras with basis over Integer Ring,
29
+ Category of graded algebras over Integer Ring,
30
+ Category of graded modules with basis over Integer Ring]
31
+
32
+ TESTS::
33
+
34
+ sage: TestSuite(C).run()
35
+ """
36
+ class ParentMethods:
37
+ # This needs to be copied in GradedAlgebras because we need to have
38
+ # FilteredAlgebrasWithBasis as an extra super category
39
+ def graded_algebra(self):
40
+ """
41
+ Return the associated graded algebra to ``self``.
42
+
43
+ This is ``self``, because ``self`` is already graded.
44
+ See :meth:`~sage.categories.filtered_algebras_with_basis.FilteredAlgebrasWithBasis.graded_algebra`
45
+ for the general behavior of this method, and see
46
+ :class:`~sage.algebras.associated_graded.AssociatedGradedAlgebra`
47
+ for the definition and properties of associated graded
48
+ algebras.
49
+
50
+ EXAMPLES::
51
+
52
+ sage: m = SymmetricFunctions(QQ).m() # needs sage.combinat sage.modules
53
+ sage: m.graded_algebra() is m # needs sage.combinat sage.modules
54
+ True
55
+
56
+ TESTS:
57
+
58
+ Let us check that the three methods
59
+ :meth:`to_graded_conversion`, :meth:`from_graded_conversion`
60
+ and :meth:`projection` (which form the interface of the
61
+ associated graded algebra) work correctly here::
62
+
63
+ sage: # needs sage.combinat sage.modules
64
+ sage: to_gr = m.to_graded_conversion()
65
+ sage: from_gr = m.from_graded_conversion()
66
+ sage: m[2] == to_gr(m[2]) == from_gr(m[2])
67
+ True
68
+ sage: u = 3*m[1] - (1/2)*m[3]
69
+ sage: u == to_gr(u) == from_gr(u)
70
+ True
71
+ sage: m.zero() == to_gr(m.zero()) == from_gr(m.zero())
72
+ True
73
+ sage: p2 = m.projection(2)
74
+ sage: p2(m[2] - 4*m[1,1] + 3*m[1] - 2*m[[]])
75
+ -4*m[1, 1] + m[2]
76
+ sage: p2(4*m[1])
77
+ 0
78
+ sage: p2(m.zero()) == m.zero()
79
+ True
80
+ """
81
+ return self
82
+
83
+ # .. TODO::
84
+ # Possibly override ``to_graded_conversion`` and
85
+ # ``from_graded_conversion`` with identity morphisms?
86
+ # I have to admit I don't know the right way to construct
87
+ # identity morphisms other than using the identity matrix.
88
+ # Also, ``projection`` could be overridden by, well, a
89
+ # projection.
90
+
91
+ def free_graded_module(self, generator_degrees, names=None):
92
+ """
93
+ Create a finitely generated free graded module over ``self``.
94
+
95
+ INPUT:
96
+
97
+ - ``generator_degrees`` -- tuple of integers defining the
98
+ number of generators of the module and their degrees
99
+
100
+ - ``names`` -- (optional) the names of the generators. If
101
+ ``names`` is a comma-separated string like ``'a, b,
102
+ c'``, then those will be the names. Otherwise, for
103
+ example if ``names`` is ``abc``, then the names will be
104
+ ``abc[d,i]``.
105
+
106
+ By default, if all generators are in distinct degrees,
107
+ then the ``names`` of the generators will have the form
108
+ ``g[d]`` where ``d`` is the degree of the generator. If
109
+ the degrees are not distinct, then the generators will be
110
+ called ``g[d,i]`` where ``d`` is the degree and ``i`` is
111
+ its index in the list of generators in that degree.
112
+
113
+ See :mod:`sage.modules.fp_graded.free_module` for more
114
+ examples and details.
115
+
116
+ EXAMPLES::
117
+
118
+ sage: # needs sage.combinat sage.modules
119
+ sage: Q = QuadraticForm(QQ, 3, [1,2,3,4,5,6])
120
+ sage: Cl = CliffordAlgebra(Q)
121
+ sage: M = Cl.free_graded_module((0, 2, 3))
122
+ sage: M.gens()
123
+ (g[0], g[2], g[3])
124
+ sage: N.<xy, z> = Cl.free_graded_module((1, 2))
125
+ sage: N.generators()
126
+ (xy, z)
127
+ """
128
+ try:
129
+ return self._free_graded_module_class(self, generator_degrees, names=names)
130
+ except AttributeError:
131
+ from sage.modules.fp_graded.free_module import FreeGradedModule
132
+ return FreeGradedModule(self, generator_degrees, names=names)
133
+
134
+ def formal_series_ring(self):
135
+ r"""
136
+ Return the completion of all formal linear combinations of
137
+ ``self`` with finite linear combinations in each homogeneous
138
+ degree (computed lazily).
139
+
140
+ EXAMPLES::
141
+
142
+ sage: # needs sage.combinat sage.modules
143
+ sage: NCSF = NonCommutativeSymmetricFunctions(QQ)
144
+ sage: S = NCSF.Complete()
145
+ sage: L = S.formal_series_ring()
146
+ sage: L
147
+ Lazy completion of Non-Commutative Symmetric Functions over
148
+ the Rational Field in the Complete basis
149
+ """
150
+ from sage.rings.lazy_series_ring import LazyCompletionGradedAlgebra
151
+ return LazyCompletionGradedAlgebra(self)
152
+
153
+ completion = formal_series_ring
154
+
155
+ class ElementMethods:
156
+ pass
157
+
158
+ class FiniteDimensional(CategoryWithAxiom_over_base_ring):
159
+ class ParentMethods:
160
+ @cached_method
161
+ def top_degree(self):
162
+ r"""
163
+ Return the top degree of the finite dimensional graded algebra.
164
+
165
+ EXAMPLES::
166
+
167
+ sage: # needs sage.graphs sage.modules
168
+ sage: ch = matroids.Uniform(4,6).chow_ring(QQ, False)
169
+ sage: ch.top_degree()
170
+ 3
171
+ sage: ch = matroids.Wheel(3).chow_ring(QQ, True, 'atom-free')
172
+ sage: ch.top_degree()
173
+ 3
174
+ """
175
+ return max(b.degree() for b in self.basis())
176
+
177
+ class SignedTensorProducts(SignedTensorProductsCategory):
178
+ """
179
+ The category of algebras with basis constructed by signed tensor
180
+ product of algebras with basis.
181
+ """
182
+ @cached_method
183
+ def extra_super_categories(self):
184
+ """
185
+ EXAMPLES::
186
+
187
+ sage: Cat = AlgebrasWithBasis(QQ).Graded()
188
+ sage: Cat.SignedTensorProducts().extra_super_categories()
189
+ [Category of graded algebras with basis over Rational Field]
190
+ sage: Cat.SignedTensorProducts().super_categories()
191
+ [Category of graded algebras with basis over Rational Field,
192
+ Category of signed tensor products of graded algebras over Rational Field]
193
+ """
194
+ return [self.base_category()]
195
+
196
+ class ParentMethods:
197
+ """
198
+ Implement operations on tensor products of super algebras
199
+ with basis.
200
+ """
201
+ @cached_method
202
+ def one_basis(self):
203
+ """
204
+ Return the index of the one of this signed tensor product of
205
+ algebras, as per ``AlgebrasWithBasis.ParentMethods.one_basis``.
206
+
207
+ It is the tuple whose operands are the indices of the
208
+ ones of the operands, as returned by their
209
+ :meth:`.one_basis` methods.
210
+
211
+ EXAMPLES::
212
+
213
+ sage: # needs sage.combinat sage.modules
214
+ sage: A.<x,y> = ExteriorAlgebra(QQ)
215
+ sage: A.one_basis()
216
+ 0
217
+ sage: B = tensor((A, A, A))
218
+ sage: B.one_basis()
219
+ (0, 0, 0)
220
+ sage: B.one()
221
+ 1 # 1 # 1
222
+ """
223
+ # FIXME: this method should be conditionally defined,
224
+ # so that B.one_basis returns NotImplemented if not
225
+ # all modules provide one_basis
226
+ if all(hasattr(module, "one_basis") for module in self._sets):
227
+ return tuple(module.one_basis() for module in self._sets)
228
+ else:
229
+ raise NotImplementedError
230
+
231
+ def product_on_basis(self, t0, t1):
232
+ """
233
+ The product of the algebra on the basis, as per
234
+ ``AlgebrasWithBasis.ParentMethods.product_on_basis``.
235
+
236
+ EXAMPLES:
237
+
238
+ Test the sign in the super tensor product::
239
+
240
+ sage: # needs sage.combinat sage.modules
241
+ sage: A = SteenrodAlgebra(3)
242
+ sage: x = A.Q(0)
243
+ sage: y = x.coproduct()
244
+ sage: y^2
245
+ 0
246
+
247
+ TODO: optimize this implementation!
248
+ """
249
+ basic = tensor_signed(module.monomial(x0) * module.monomial(x1)
250
+ for (module, x0, x1) in zip(self._sets, t0, t1))
251
+ n = len(self._sets)
252
+ parity0 = [self._sets[idx].degree_on_basis(x0)
253
+ for (idx, x0) in enumerate(t0)]
254
+ parity1 = [self._sets[idx].degree_on_basis(x1)
255
+ for (idx, x1) in enumerate(t1)]
256
+ parity = sum(parity0[i] * parity1[j]
257
+ for j in range(n) for i in range(j+1,n))
258
+ return (-1)**parity * basic
@@ -0,0 +1,32 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Graded bialgebras
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 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
+
14
+ def GradedBialgebras(base_ring):
15
+ """
16
+ The category of graded bialgebras.
17
+
18
+ EXAMPLES::
19
+
20
+ sage: C = GradedBialgebras(QQ); C
21
+ Join of Category of graded algebras over Rational Field
22
+ and Category of bialgebras over Rational Field
23
+ and Category of graded coalgebras over Rational Field
24
+ sage: C is Bialgebras(QQ).Graded()
25
+ True
26
+
27
+ TESTS::
28
+
29
+ sage: TestSuite(C).run()
30
+ """
31
+ from sage.categories.bialgebras import Bialgebras
32
+ return Bialgebras(base_ring).Graded()
@@ -0,0 +1,32 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Graded bialgebras with basis
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 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
+
14
+ def GradedBialgebrasWithBasis(base_ring):
15
+ """
16
+ The category of graded bialgebras with a distinguished basis.
17
+
18
+ EXAMPLES::
19
+
20
+ sage: C = GradedBialgebrasWithBasis(QQ); C
21
+ Join of Category of ...
22
+ sage: sorted(C.super_categories(), key=str)
23
+ [Category of bialgebras with basis over Rational Field,
24
+ Category of graded algebras with basis over Rational Field,
25
+ Category of graded coalgebras with basis over Rational Field]
26
+
27
+ TESTS::
28
+
29
+ sage: TestSuite(C).run()
30
+ """
31
+ from sage.categories.bialgebras_with_basis import BialgebrasWithBasis
32
+ return BialgebrasWithBasis(base_ring).Graded()
@@ -0,0 +1,65 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Graded Coalgebras
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 2011-2013 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.categories.graded_modules import GradedModulesCategory
14
+ from sage.categories.signed_tensor import SignedTensorProductsCategory
15
+ from sage.misc.cachefunc import cached_method
16
+
17
+
18
+ class GradedCoalgebras(GradedModulesCategory):
19
+ """
20
+ The category of graded coalgebras.
21
+
22
+ EXAMPLES::
23
+
24
+ sage: C = GradedCoalgebras(QQ); C
25
+ Category of graded coalgebras over Rational Field
26
+ sage: C is Coalgebras(QQ).Graded()
27
+ True
28
+
29
+ TESTS::
30
+
31
+ sage: TestSuite(C).run()
32
+ """
33
+ class SubcategoryMethods:
34
+ def SignedTensorProducts(self):
35
+ r"""
36
+ Return the full subcategory of objects of ``self`` constructed
37
+ as signed tensor products.
38
+
39
+ .. SEEALSO::
40
+
41
+ - :class:`~sage.categories.signed_tensor.SignedTensorProductsCategory`
42
+ - :class:`~.covariant_functorial_construction.CovariantFunctorialConstruction`
43
+
44
+ EXAMPLES::
45
+
46
+ sage: CoalgebrasWithBasis(QQ).Graded().SignedTensorProducts()
47
+ Category of signed tensor products of graded coalgebras with basis
48
+ over Rational Field
49
+ """
50
+ return SignedTensorProductsCategory.category_of(self)
51
+
52
+ class SignedTensorProducts(SignedTensorProductsCategory):
53
+ @cached_method
54
+ def extra_super_categories(self):
55
+ """
56
+ EXAMPLES::
57
+
58
+ sage: Coalgebras(QQ).Graded().SignedTensorProducts().extra_super_categories()
59
+ [Category of graded coalgebras over Rational Field]
60
+ sage: Coalgebras(QQ).Graded().SignedTensorProducts().super_categories()
61
+ [Category of graded coalgebras over Rational Field]
62
+
63
+ Meaning: a signed tensor product of coalgebras is a coalgebra
64
+ """
65
+ return [self.base_category()]
@@ -0,0 +1,51 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Graded coalgebras with basis
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 2011 Nicolas M. Thiery <nthiery at users.sf.net>
8
+ # 2019 Travis Scrimshaw <tcscrims at gmail.com>
9
+ #
10
+ # Distributed under the terms of the GNU General Public License (GPL)
11
+ # http://www.gnu.org/licenses/
12
+ #******************************************************************************
13
+
14
+ from sage.misc.cachefunc import cached_method
15
+ from sage.categories.graded_modules import GradedModulesCategory
16
+ from sage.categories.signed_tensor import SignedTensorProductsCategory
17
+
18
+
19
+ class GradedCoalgebrasWithBasis(GradedModulesCategory):
20
+ """
21
+ The category of graded coalgebras with a distinguished basis.
22
+
23
+ EXAMPLES::
24
+
25
+ sage: C = GradedCoalgebrasWithBasis(QQ); C
26
+ Category of graded coalgebras with basis over Rational Field
27
+ sage: C is Coalgebras(QQ).WithBasis().Graded()
28
+ True
29
+
30
+ TESTS::
31
+
32
+ sage: TestSuite(C).run()
33
+ """
34
+ class SignedTensorProducts(SignedTensorProductsCategory):
35
+ """
36
+ The category of coalgebras with basis constructed by signed tensor
37
+ product of coalgebras with basis.
38
+ """
39
+ @cached_method
40
+ def extra_super_categories(self):
41
+ """
42
+ EXAMPLES::
43
+
44
+ sage: Cat = CoalgebrasWithBasis(QQ).Graded()
45
+ sage: Cat.SignedTensorProducts().extra_super_categories()
46
+ [Category of graded coalgebras with basis over Rational Field]
47
+ sage: Cat.SignedTensorProducts().super_categories()
48
+ [Category of graded coalgebras with basis over Rational Field,
49
+ Category of signed tensor products of graded coalgebras over Rational Field]
50
+ """
51
+ return [self.base_category()]
@@ -0,0 +1,41 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Graded Hopf algebras
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 2008-2011 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
+
14
+ def GradedHopfAlgebras(base_ring):
15
+ r"""
16
+ The category of graded Hopf algebras.
17
+
18
+ EXAMPLES::
19
+
20
+ sage: C = GradedHopfAlgebras(QQ); C
21
+ Join of Category of Hopf algebras over Rational Field
22
+ and Category of graded algebras over Rational Field
23
+ and Category of graded coalgebras over Rational Field
24
+ sage: C is HopfAlgebras(QQ).Graded()
25
+ True
26
+
27
+ TESTS::
28
+
29
+ sage: TestSuite(C).run()
30
+
31
+ .. NOTE::
32
+
33
+ This is not a graded Hopf algebra as is typically defined
34
+ in algebraic topology as the product in the tensor square
35
+ `(x \otimes y) (a \otimes b) = (xa) \otimes (yb)` does
36
+ not carry an additional sign. For this, instead use
37
+ :class:`super Hopf algebras
38
+ <sage.categories.hopf_algebras.HopfAlgebras.Super>`.
39
+ """
40
+ from sage.categories.hopf_algebras import HopfAlgebras
41
+ return HopfAlgebras(base_ring).Graded()
@@ -0,0 +1,169 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Graded Hopf algebras with basis
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
7
+ # 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
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
13
+ from sage.categories.tensor import tensor
14
+ from sage.categories.graded_modules import GradedModulesCategory
15
+ from sage.categories.with_realizations import WithRealizationsCategory
16
+ from sage.misc.cachefunc import cached_method
17
+
18
+
19
+ class GradedHopfAlgebrasWithBasis(GradedModulesCategory):
20
+ """
21
+ The category of graded Hopf algebras with a distinguished basis.
22
+
23
+ EXAMPLES::
24
+
25
+ sage: C = GradedHopfAlgebrasWithBasis(ZZ); C
26
+ Category of graded Hopf algebras with basis over Integer Ring
27
+ sage: C.super_categories()
28
+ [Category of filtered Hopf algebras with basis over Integer Ring,
29
+ Category of graded algebras with basis over Integer Ring,
30
+ Category of graded coalgebras with basis over Integer Ring]
31
+
32
+ sage: C is HopfAlgebras(ZZ).WithBasis().Graded()
33
+ True
34
+ sage: C is HopfAlgebras(ZZ).Graded().WithBasis()
35
+ False
36
+
37
+ TESTS::
38
+
39
+ sage: TestSuite(C).run()
40
+ """
41
+ def example(self):
42
+ """
43
+ Return an example of a graded Hopf algebra with
44
+ a distinguished basis.
45
+
46
+ TESTS::
47
+
48
+ sage: GradedHopfAlgebrasWithBasis(QQ).example() # needs sage.modules
49
+ An example of a graded connected Hopf algebra with basis over Rational Field
50
+ """
51
+ from sage.categories.examples.graded_connected_hopf_algebras_with_basis import \
52
+ GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator
53
+ return GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator(self.base())
54
+
55
+ class ParentMethods:
56
+ pass
57
+
58
+ class ElementMethods:
59
+ pass
60
+
61
+ class WithRealizations(WithRealizationsCategory):
62
+ @cached_method
63
+ def super_categories(self):
64
+ """
65
+ EXAMPLES::
66
+
67
+ sage: GradedHopfAlgebrasWithBasis(QQ).WithRealizations().super_categories()
68
+ [Join of Category of Hopf algebras over Rational Field
69
+ and Category of graded algebras over Rational Field
70
+ and Category of graded coalgebras over Rational Field]
71
+
72
+ TESTS::
73
+
74
+ sage: TestSuite(GradedHopfAlgebrasWithBasis(QQ).WithRealizations()).run()
75
+ """
76
+ from sage.categories.graded_hopf_algebras import GradedHopfAlgebras
77
+ R = self.base_category().base_ring()
78
+ return [GradedHopfAlgebras(R)]
79
+
80
+ class Connected(CategoryWithAxiom_over_base_ring):
81
+ def example(self):
82
+ """
83
+ Return an example of a graded connected Hopf algebra with
84
+ a distinguished basis.
85
+
86
+ TESTS::
87
+
88
+ sage: GradedHopfAlgebrasWithBasis(QQ).Connected().example() # needs sage.modules
89
+ An example of a graded connected Hopf algebra with basis over Rational Field
90
+ """
91
+ from sage.categories.examples.graded_connected_hopf_algebras_with_basis import \
92
+ GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator
93
+ return GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator(self.base())
94
+
95
+ class ParentMethods:
96
+ def counit_on_basis(self, i):
97
+ r"""
98
+ The default counit of a graded connected Hopf algebra.
99
+
100
+ INPUT:
101
+
102
+ - ``i`` -- an element of the index set
103
+
104
+ OUTPUT: an element of the base ring
105
+
106
+ .. MATH::
107
+
108
+ c(i) := \begin{cases}
109
+ 1 & \hbox{if $i$ indexes the $1$ of the algebra}\\
110
+ 0 & \hbox{otherwise}.
111
+ \end{cases}
112
+
113
+ EXAMPLES::
114
+
115
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example() # needs sage.modules
116
+ sage: H.monomial(4).counit() # indirect doctest # needs sage.modules
117
+ 0
118
+ sage: H.monomial(0).counit() # indirect doctest # needs sage.modules
119
+ 1
120
+ """
121
+ if i == self.one_basis():
122
+ return self.base_ring().one()
123
+ return self.base_ring().zero()
124
+
125
+ @cached_method
126
+ def antipode_on_basis(self, index):
127
+ r"""
128
+ The antipode on the basis element indexed by ``index``.
129
+
130
+ INPUT:
131
+
132
+ - ``index`` -- an element of the index set
133
+
134
+ For a graded connected Hopf algebra, we can define
135
+ an antipode recursively by
136
+
137
+ .. MATH::
138
+
139
+ S(x) := -\sum_{x^L \neq x} S(x^L) \times x^R
140
+
141
+ when `|x| > 0`, and by `S(x) = x` when `|x| = 0`.
142
+
143
+ TESTS::
144
+
145
+ sage: # needs sage.modules
146
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
147
+ sage: H.monomial(0).antipode() # indirect doctest
148
+ P0
149
+ sage: H.monomial(1).antipode() # indirect doctest
150
+ -P1
151
+ sage: H.monomial(2).antipode() # indirect doctest
152
+ P2
153
+ sage: H.monomial(3).antipode() # indirect doctest
154
+ -P3
155
+ """
156
+ if self.monomial(index) == self.one():
157
+ return self.one()
158
+
159
+ S = self.antipode_on_basis
160
+ x__S_Id = tensor([self, self]).module_morphism(
161
+ lambda ab: S(ab[0]) * self.monomial(ab[1]),
162
+ codomain=self)
163
+ return -x__S_Id(
164
+ self.monomial(index).coproduct()
165
+ - tensor([self.monomial(index), self.one()])
166
+ )
167
+
168
+ class ElementMethods:
169
+ pass