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,150 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ """
3
+ Examples of finite monoids
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ # http://www.gnu.org/licenses/
10
+ #******************************************************************************
11
+
12
+ from sage.misc.cachefunc import cached_method
13
+ from sage.sets.family import Family
14
+ from sage.structure.parent import Parent
15
+ from sage.structure.unique_representation import UniqueRepresentation
16
+ from sage.structure.element_wrapper import ElementWrapper
17
+ from sage.categories.monoids import Monoids
18
+ from sage.rings.integer import Integer
19
+ from sage.rings.integer_ring import ZZ
20
+
21
+
22
+ class IntegerModMonoid(UniqueRepresentation, Parent):
23
+ r"""
24
+ An example of a finite monoid: the integers mod `n`.
25
+
26
+ This class illustrates a minimal implementation of a finite monoid.
27
+
28
+ EXAMPLES::
29
+
30
+ sage: S = FiniteMonoids().example(); S
31
+ An example of a finite multiplicative monoid: the integers modulo 12
32
+
33
+ sage: S.category()
34
+ Category of finitely generated finite enumerated monoids
35
+
36
+ We conclude by running systematic tests on this monoid::
37
+
38
+ sage: TestSuite(S).run(verbose = True)
39
+ running ._test_an_element() . . . pass
40
+ running ._test_associativity() . . . pass
41
+ running ._test_cardinality() . . . pass
42
+ running ._test_category() . . . pass
43
+ running ._test_construction() . . . pass
44
+ running ._test_elements() . . .
45
+ Running the test suite of self.an_element()
46
+ running ._test_category() . . . pass
47
+ running ._test_eq() . . . pass
48
+ running ._test_new() . . . pass
49
+ running ._test_not_implemented_methods() . . . pass
50
+ running ._test_pickling() . . . pass
51
+ pass
52
+ running ._test_elements_eq_reflexive() . . . pass
53
+ running ._test_elements_eq_symmetric() . . . pass
54
+ running ._test_elements_eq_transitive() . . . pass
55
+ running ._test_elements_neq() . . . pass
56
+ running ._test_enumerated_set_contains() . . . pass
57
+ running ._test_enumerated_set_iter_cardinality() . . . pass
58
+ running ._test_enumerated_set_iter_list() . . . pass
59
+ running ._test_eq() . . . pass
60
+ running ._test_new() . . . pass
61
+ running ._test_not_implemented_methods() . . . pass
62
+ running ._test_one() . . . pass
63
+ running ._test_pickling() . . . pass
64
+ running ._test_prod() . . . pass
65
+ running ._test_some_elements() . . . pass
66
+ """
67
+
68
+ def __init__(self, n=12):
69
+ r"""
70
+ EXAMPLES::
71
+
72
+ sage: M = FiniteMonoids().example(6); M
73
+ An example of a finite multiplicative monoid: the integers modulo 6
74
+
75
+ TESTS::
76
+
77
+ sage: TestSuite(M).run()
78
+ """
79
+ self.n = n
80
+ Parent.__init__(self, category=Monoids().Finite().FinitelyGenerated())
81
+
82
+ def _repr_(self):
83
+ r"""
84
+ TESTS::
85
+
86
+ sage: M = FiniteMonoids().example()
87
+ sage: M._repr_()
88
+ 'An example of a finite multiplicative monoid: the integers modulo 12'
89
+ """
90
+ return "An example of a finite multiplicative monoid: the integers modulo %s" % self.n
91
+
92
+ def semigroup_generators(self):
93
+ r"""
94
+
95
+ Returns a set of generators for ``self``, as per
96
+ :meth:`Semigroups.ParentMethods.semigroup_generators`.
97
+ Currently this returns all integers mod `n`, which is of
98
+ course far from optimal!
99
+
100
+ EXAMPLES::
101
+
102
+ sage: M = FiniteMonoids().example()
103
+ sage: M.semigroup_generators()
104
+ Family (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
105
+ """
106
+ return Family(tuple(self(ZZ(i)) for i in range(self.n)))
107
+
108
+ @cached_method
109
+ def one(self):
110
+ r"""
111
+ Return the one of the monoid, as per :meth:`Monoids.ParentMethods.one`.
112
+
113
+ EXAMPLES::
114
+
115
+ sage: M = FiniteMonoids().example()
116
+ sage: M.one()
117
+ 1
118
+ """
119
+ return self(ZZ.one())
120
+
121
+ def product(self, x, y):
122
+ r"""
123
+ Return the product of two elements `x` and `y` of the monoid, as
124
+ per :meth:`Semigroups.ParentMethods.product`.
125
+
126
+ EXAMPLES::
127
+
128
+ sage: M = FiniteMonoids().example()
129
+ sage: M.product(M(3), M(5))
130
+ 3
131
+ """
132
+ return self((x.value * y.value) % self.n)
133
+
134
+ def an_element(self):
135
+ r"""
136
+ Return an element of the monoid, as per :meth:`Sets.ParentMethods.an_element`.
137
+
138
+ EXAMPLES::
139
+
140
+ sage: M = FiniteMonoids().example()
141
+ sage: M.an_element()
142
+ 6
143
+ """
144
+ return self(ZZ(42) % self.n)
145
+
146
+ class Element (ElementWrapper):
147
+ wrapped_class = Integer
148
+
149
+
150
+ Example = IntegerModMonoid
@@ -0,0 +1,190 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ """
3
+ Examples of finite semigroups
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ # http://www.gnu.org/licenses/
10
+ #******************************************************************************
11
+
12
+ from sage.misc.cachefunc import cached_method
13
+ from sage.sets.family import Family
14
+ from sage.categories.semigroups import Semigroups
15
+ from sage.structure.parent import Parent
16
+ from sage.structure.unique_representation import UniqueRepresentation
17
+ from sage.structure.element_wrapper import ElementWrapper
18
+
19
+
20
+ class LeftRegularBand(UniqueRepresentation, Parent):
21
+ r"""
22
+ An example of a finite semigroup.
23
+
24
+ This class provides a minimal implementation of a finite semigroup.
25
+
26
+ EXAMPLES::
27
+
28
+ sage: S = FiniteSemigroups().example(); S
29
+ An example of a finite semigroup:
30
+ the left regular band generated by ('a', 'b', 'c', 'd')
31
+
32
+ This is the semigroup generated by::
33
+
34
+ sage: S.semigroup_generators()
35
+ Family ('a', 'b', 'c', 'd')
36
+
37
+ such that `x^2 = x` and `x y x = xy` for any `x` and `y` in `S`::
38
+
39
+ sage: S('dab')
40
+ 'dab'
41
+ sage: S('dab') * S('acb')
42
+ 'dabc'
43
+
44
+ It follows that the elements of `S` are strings without
45
+ repetitions over the alphabet `a`, `b`, `c`, `d`::
46
+
47
+ sage: sorted(S.list())
48
+ ['a', 'ab', 'abc', 'abcd', 'abd', 'abdc', 'ac', 'acb', 'acbd', 'acd',
49
+ 'acdb', 'ad', 'adb', 'adbc', 'adc', 'adcb', 'b', 'ba', 'bac',
50
+ 'bacd', 'bad', 'badc', 'bc', 'bca', 'bcad', 'bcd', 'bcda', 'bd',
51
+ 'bda', 'bdac', 'bdc', 'bdca', 'c', 'ca', 'cab', 'cabd', 'cad',
52
+ 'cadb', 'cb', 'cba', 'cbad', 'cbd', 'cbda', 'cd', 'cda', 'cdab',
53
+ 'cdb', 'cdba', 'd', 'da', 'dab', 'dabc', 'dac', 'dacb', 'db',
54
+ 'dba', 'dbac', 'dbc', 'dbca', 'dc', 'dca', 'dcab', 'dcb', 'dcba']
55
+
56
+ It also follows that there are finitely many of them::
57
+
58
+ sage: S.cardinality()
59
+ 64
60
+
61
+ Indeed::
62
+
63
+ sage: 4 * ( 1 + 3 * (1 + 2 * (1 + 1)))
64
+ 64
65
+
66
+ As expected, all the elements of `S` are idempotents::
67
+
68
+ sage: all( x.is_idempotent() for x in S )
69
+ True
70
+
71
+ Now, let us look at the structure of the semigroup::
72
+
73
+ sage: S = FiniteSemigroups().example(alphabet = ('a','b','c'))
74
+ sage: S.cayley_graph(side='left', simple=True).plot() # needs sage.graphs sage.plot
75
+ Graphics object consisting of 60 graphics primitives
76
+ sage: S.j_transversal_of_idempotents() # random (arbitrary choice) # needs sage.graphs
77
+ ['acb', 'ac', 'ab', 'bc', 'a', 'c', 'b']
78
+
79
+ We conclude by running systematic tests on this semigroup::
80
+
81
+ sage: TestSuite(S).run(verbose = True)
82
+ running ._test_an_element() . . . pass
83
+ running ._test_associativity() . . . pass
84
+ running ._test_cardinality() . . . pass
85
+ running ._test_category() . . . pass
86
+ running ._test_construction() . . . pass
87
+ running ._test_elements() . . .
88
+ Running the test suite of self.an_element()
89
+ running ._test_category() . . . pass
90
+ running ._test_eq() . . . pass
91
+ running ._test_new() . . . pass
92
+ running ._test_not_implemented_methods() . . . pass
93
+ running ._test_pickling() . . . pass
94
+ pass
95
+ running ._test_elements_eq_reflexive() . . . pass
96
+ running ._test_elements_eq_symmetric() . . . pass
97
+ running ._test_elements_eq_transitive() . . . pass
98
+ running ._test_elements_neq() . . . pass
99
+ running ._test_enumerated_set_contains() . . . pass
100
+ running ._test_enumerated_set_iter_cardinality() . . . pass
101
+ running ._test_enumerated_set_iter_list() . . . pass
102
+ running ._test_eq() . . . pass
103
+ running ._test_new() . . . pass
104
+ running ._test_not_implemented_methods() . . . pass
105
+ running ._test_pickling() . . . pass
106
+ running ._test_some_elements() . . . pass
107
+ """
108
+
109
+ def __init__(self, alphabet=('a','b','c','d')):
110
+ r"""
111
+ A left regular band.
112
+
113
+ EXAMPLES::
114
+
115
+ sage: S = FiniteSemigroups().example(); S
116
+ An example of a finite semigroup: the left regular band generated by ('a', 'b', 'c', 'd')
117
+ sage: S = FiniteSemigroups().example(alphabet=('x','y')); S
118
+ An example of a finite semigroup: the left regular band generated by ('x', 'y')
119
+ sage: TestSuite(S).run()
120
+ """
121
+ self.alphabet = alphabet
122
+ Parent.__init__(self,
123
+ category=Semigroups().Finite().FinitelyGenerated())
124
+
125
+ def _repr_(self):
126
+ r"""
127
+ TESTS::
128
+
129
+ sage: S = FiniteSemigroups().example()
130
+ sage: S._repr_()
131
+ "An example of a finite semigroup: the left regular band generated by ('a', 'b', 'c', 'd')"
132
+ """
133
+ return "An example of a finite semigroup: the left regular band generated by %s" % (self.alphabet,)
134
+
135
+ def product(self, x, y):
136
+ r"""
137
+ Return the product of two elements of the semigroup.
138
+
139
+ EXAMPLES::
140
+
141
+ sage: S = FiniteSemigroups().example()
142
+ sage: S('a') * S('b')
143
+ 'ab'
144
+ sage: S('a') * S('b') * S('a')
145
+ 'ab'
146
+ sage: S('a') * S('a')
147
+ 'a'
148
+ """
149
+ assert x in self
150
+ assert y in self
151
+ x = x.value
152
+ y = y.value
153
+ return self(x + ''.join(c for c in y if c not in x))
154
+
155
+ @cached_method
156
+ def semigroup_generators(self):
157
+ r"""
158
+ Return the generators of the semigroup.
159
+
160
+ EXAMPLES::
161
+
162
+ sage: S = FiniteSemigroups().example(alphabet=('x','y'))
163
+ sage: S.semigroup_generators()
164
+ Family ('x', 'y')
165
+ """
166
+ return Family([self(i) for i in self.alphabet])
167
+
168
+ def an_element(self):
169
+ r"""
170
+ Return an element of the semigroup.
171
+
172
+ EXAMPLES::
173
+
174
+ sage: S = FiniteSemigroups().example()
175
+ sage: S.an_element()
176
+ 'cdab'
177
+
178
+ sage: S = FiniteSemigroups().example(("b"))
179
+ sage: S.an_element()
180
+ 'b'
181
+ """
182
+
183
+ return self(''.join(self.alphabet[2:]+self.alphabet[0:2]))
184
+
185
+ class Element (ElementWrapper):
186
+ wrapped_class = str
187
+ __lt__ = ElementWrapper._lt_by_value
188
+
189
+
190
+ Example = LeftRegularBand
@@ -0,0 +1,191 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Examples of finite Weyl groups
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ # https://www.gnu.org/licenses/
10
+ # *****************************************************************************
11
+
12
+ from sage.misc.cachefunc import cached_method
13
+ from sage.structure.parent import Parent
14
+ from sage.structure.element_wrapper import ElementWrapper
15
+ from sage.categories.finite_weyl_groups import FiniteWeylGroups
16
+ from sage.structure.unique_representation import UniqueRepresentation
17
+
18
+
19
+ class SymmetricGroup(UniqueRepresentation, Parent):
20
+ r"""
21
+ An example of finite Weyl group: the symmetric group, with
22
+ elements in list notation.
23
+
24
+ The purpose of this class is to provide a minimal template for
25
+ implementing finite Weyl groups. See
26
+ :class:`~sage.groups.perm_gps.permgroup_named.SymmetricGroup` for
27
+ a full featured and optimized implementation.
28
+
29
+ EXAMPLES::
30
+
31
+ sage: S = FiniteWeylGroups().example()
32
+ sage: S
33
+ The symmetric group on {0, ..., 3}
34
+ sage: S.category()
35
+ Category of finite irreducible Weyl groups
36
+
37
+ The elements of this group are permutations of the set `\{0,\ldots,3\}`::
38
+
39
+ sage: S.one()
40
+ (0, 1, 2, 3)
41
+ sage: S.an_element()
42
+ (1, 2, 3, 0)
43
+
44
+ The group itself is generated by the elementary transpositions::
45
+
46
+ sage: S.simple_reflections()
47
+ Finite family {0: (1, 0, 2, 3), 1: (0, 2, 1, 3), 2: (0, 1, 3, 2)}
48
+
49
+ Only the following basic operations are implemented:
50
+
51
+ - :meth:`.one`
52
+ - :meth:`.product`
53
+ - :meth:`.simple_reflection`
54
+ - :meth:`.cartan_type`
55
+ - :meth:`.Element.has_right_descent`.
56
+
57
+ All the other usual Weyl group operations are inherited from the
58
+ categories::
59
+
60
+ sage: S.cardinality()
61
+ 24
62
+ sage: S.long_element()
63
+ (3, 2, 1, 0)
64
+ sage: S.cayley_graph(side='left').plot() # needs sage.graphs sage.plot
65
+ Graphics object consisting of 120 graphics primitives
66
+
67
+ Alternatively, one could have implemented
68
+ :meth:`sage.categories.coxeter_groups.CoxeterGroups.ElementMethods.apply_simple_reflection`
69
+ instead of :meth:`.simple_reflection` and :meth:`.product`. See
70
+ ``CoxeterGroups().example()``.
71
+
72
+ TESTS::
73
+
74
+ sage: TestSuite(S).run()
75
+ """
76
+
77
+ def __init__(self, n=4):
78
+ """
79
+ EXAMPLES::
80
+
81
+ sage: S = sage.categories.examples.finite_weyl_groups.SymmetricGroup(4)
82
+ sage: S == FiniteWeylGroups().example(4)
83
+ True
84
+ """
85
+ Parent.__init__(self, category=FiniteWeylGroups().Irreducible())
86
+ self.n = n
87
+
88
+ def _repr_(self):
89
+ """
90
+ EXAMPLES::
91
+
92
+ sage: FiniteWeylGroups().example()
93
+ The symmetric group on {0, ..., 3}
94
+ """
95
+ return "The symmetric group on {0, ..., %s}" % (self.n-1)
96
+
97
+ @cached_method
98
+ def one(self):
99
+ """
100
+ Implement :meth:`Monoids.ParentMethods.one`.
101
+
102
+ EXAMPLES::
103
+
104
+ sage: FiniteWeylGroups().example().one()
105
+ (0, 1, 2, 3)
106
+ """
107
+ return self(tuple(range(self.n)))
108
+
109
+ def index_set(self):
110
+ """
111
+ Implement :meth:`CoxeterGroups.ParentMethods.index_set`.
112
+
113
+ EXAMPLES::
114
+
115
+ sage: FiniteWeylGroups().example().index_set()
116
+ [0, 1, 2]
117
+ """
118
+ return list(range(self.n - 1))
119
+
120
+ def simple_reflection(self, i):
121
+ """
122
+ Implement :meth:`CoxeterGroups.ParentMethods.simple_reflection`
123
+ by returning the transposition `(i, i+1)`.
124
+
125
+ EXAMPLES::
126
+
127
+ sage: FiniteWeylGroups().example().simple_reflection(2)
128
+ (0, 1, 3, 2)
129
+ """
130
+ assert i in self.index_set()
131
+ return self(tuple(range(i)) + (i + 1, i) + tuple(range(i + 2, self.n)))
132
+
133
+ def cartan_type(self):
134
+ """
135
+ Return the Cartan type of ``self``.
136
+
137
+ EXAMPLES::
138
+
139
+ sage: FiniteWeylGroups().example().cartan_type() # needs sage.modules
140
+ ['A', 3] relabelled by {1: 0, 2: 1, 3: 2}
141
+ """
142
+ from sage.combinat.root_system.cartan_type import CartanType
143
+ C = CartanType(['A',self.n-1])
144
+ C = C.relabel(lambda i:i-1)
145
+ return C
146
+
147
+ def product(self, x, y):
148
+ """
149
+ Implement :meth:`Semigroups.ParentMethods.product`.
150
+
151
+ EXAMPLES::
152
+
153
+ sage: s = FiniteWeylGroups().example().simple_reflections()
154
+ sage: s[1] * s[2]
155
+ (0, 2, 3, 1)
156
+ """
157
+ assert x in self
158
+ assert y in self
159
+ return self(tuple(x.value[i] for i in y.value))
160
+
161
+ def degrees(self):
162
+ """
163
+ Return the degrees of ``self``.
164
+
165
+ EXAMPLES::
166
+
167
+ sage: W = FiniteWeylGroups().example()
168
+ sage: W.degrees()
169
+ (2, 3, 4)
170
+ """
171
+ from sage.rings.integer_ring import ZZ
172
+ return tuple(ZZ(i) for i in range(2, self.n + 1))
173
+
174
+ class Element(ElementWrapper):
175
+
176
+ def has_right_descent(self, i) -> bool:
177
+ """
178
+ Implement :meth:`CoxeterGroups.ElementMethods.has_right_descent`.
179
+
180
+ EXAMPLES::
181
+
182
+ sage: S = FiniteWeylGroups().example()
183
+ sage: s = S.simple_reflections()
184
+ sage: (s[1] * s[2]).has_descent(2)
185
+ True
186
+ sage: S._test_has_descent()
187
+ """
188
+ return (self.value[i] > self.value[i + 1])
189
+
190
+
191
+ Example = SymmetricGroup
@@ -0,0 +1,152 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ # sage.doctest: needs sage.modules
3
+ r"""
4
+ Examples of graded connected Hopf algebras with basis
5
+ """
6
+ # ****************************************************************************
7
+ # Copyright (C) 2015 Jean-Baptiste Priez <jbp@kerios.fr>
8
+ #
9
+ # Distributed under the terms of the GNU General Public License (GPL)
10
+ # https://www.gnu.org/licenses/
11
+ # ****************************************************************************
12
+
13
+ from sage.categories.graded_hopf_algebras_with_basis import GradedHopfAlgebrasWithBasis
14
+ from sage.combinat.free_module import CombinatorialFreeModule
15
+ from sage.rings.integer import Integer
16
+ from sage.misc.cachefunc import cached_method
17
+ from sage.sets.non_negative_integers import NonNegativeIntegers
18
+
19
+
20
+ class GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator(CombinatorialFreeModule):
21
+ r"""
22
+ This class illustrates an implementation of a graded Hopf algebra
23
+ with basis that has one primitive generator of degree 1 and basis
24
+ elements indexed by nonnegative integers.
25
+
26
+ This Hopf algebra example differs from what topologists refer to as
27
+ a graded Hopf algebra because the twist operation in the tensor rule
28
+ satisfies
29
+
30
+ .. MATH::
31
+
32
+ (\mu \otimes \mu) \circ (id \otimes \tau \otimes id) \circ
33
+ (\Delta \otimes \Delta) = \Delta \circ \mu
34
+
35
+ where `\tau(x\otimes y) = y\otimes x`.
36
+ """
37
+ def __init__(self, base_ring):
38
+ """
39
+ EXAMPLES::
40
+
41
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
42
+ sage: TestSuite(H).run()
43
+ """
44
+ CombinatorialFreeModule.__init__(self, base_ring, NonNegativeIntegers(),
45
+ category=GradedHopfAlgebrasWithBasis(base_ring).Connected())
46
+
47
+ @cached_method
48
+ def one_basis(self):
49
+ """
50
+ Return 0, which index the unit of the Hopf algebra.
51
+
52
+ OUTPUT: the nonnegative integer 0
53
+
54
+ EXAMPLES::
55
+
56
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
57
+ sage: H.one_basis()
58
+ 0
59
+ sage: H.one()
60
+ P0
61
+ """
62
+ return self.basis().keys()(0)
63
+
64
+ def degree_on_basis(self, i):
65
+ """
66
+ The degree of a nonnegative integer is itself.
67
+
68
+ INPUT:
69
+
70
+ - ``i`` -- nonnegative integer
71
+
72
+ OUTPUT: nonnegative integer
73
+
74
+ TESTS::
75
+
76
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
77
+ sage: H.degree_on_basis(45)
78
+ 45
79
+ """
80
+ return i
81
+
82
+ def _repr_(self):
83
+ """
84
+ Representation of the graded connected Hopf algebra.
85
+
86
+ EXAMPLES::
87
+
88
+ sage: GradedHopfAlgebrasWithBasis(QQ).Connected().example()
89
+ An example of a graded connected Hopf algebra with basis over Rational Field
90
+ """
91
+ return "An example of a graded connected Hopf algebra with basis over %s" % self.base_ring()
92
+
93
+ def _repr_term(self, i):
94
+ """
95
+ Representation for the basis element indexed by the integer ``i``.
96
+
97
+ EXAMPLES::
98
+
99
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
100
+ sage: H._repr_term(45)
101
+ 'P45'
102
+ """
103
+ return 'P' + repr(i)
104
+
105
+ def product_on_basis(self, i, j):
106
+ """
107
+ The product of two basis elements.
108
+
109
+ The product of elements of degree ``i`` and ``j`` is an element
110
+ of degree ``i+j``.
111
+
112
+ INPUT:
113
+
114
+ - ``i``, ``j`` -- nonnegative integers
115
+
116
+ OUTPUT: a basis element indexed by ``i+j``
117
+
118
+ TESTS::
119
+
120
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
121
+ sage: H.monomial(4) * H.monomial(5)
122
+ P9
123
+ """
124
+ return self.monomial(i+j)
125
+
126
+ def coproduct_on_basis(self, i):
127
+ r"""
128
+ The coproduct of a basis element.
129
+
130
+ .. MATH::
131
+
132
+ \Delta(P_i) = \sum_{j=0}^i P_{i-j} \otimes P_j
133
+
134
+ INPUT:
135
+
136
+ - ``i`` -- nonnegative integer
137
+
138
+ OUTPUT: an element of the tensor square of ``self``
139
+
140
+ TESTS::
141
+
142
+ sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
143
+ sage: H.monomial(3).coproduct()
144
+ P0 # P3 + 3*P1 # P2 + 3*P2 # P1 + P3 # P0
145
+ """
146
+ return self.sum_of_terms(
147
+ ((i - j, j), Integer(i).binomial(j))
148
+ for j in range(i + 1)
149
+ )
150
+
151
+
152
+ Example = GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator