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,426 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Unital algebras
4
+ """
5
+ # ****************************************************************************
6
+ # Copyright (C) 2011 Nicolas M. Thiery <nthiery at users.sf.net>
7
+ #
8
+ # Distributed under the terms of the GNU General Public License (GPL)
9
+ # https://www.gnu.org/licenses/
10
+ # *****************************************************************************
11
+ from sage.misc.abstract_method import abstract_method
12
+ from sage.misc.cachefunc import cached_method
13
+ from sage.misc.lazy_attribute import lazy_attribute
14
+ from sage.categories.category import Category
15
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
16
+ from sage.categories.commutative_additive_groups import CommutativeAdditiveGroups
17
+ from sage.categories.magmas import Magmas
18
+ from sage.categories.morphism import SetMorphism
19
+ from sage.categories.homset import Hom
20
+ from sage.categories.rings import Rings
21
+ from sage.categories.magmatic_algebras import MagmaticAlgebras
22
+ from sage.categories.cartesian_product import CartesianProductsCategory
23
+
24
+
25
+ class UnitalAlgebras(CategoryWithAxiom_over_base_ring):
26
+ """
27
+ The category of non-associative algebras over a given base ring.
28
+
29
+ A non-associative algebra over a ring `R` is a module over `R`
30
+ which is also a unital magma.
31
+
32
+ .. WARNING::
33
+
34
+ Until :issue:`15043` is implemented, :class:`Algebras` is the
35
+ category of associative unital algebras; thus, unlike the name
36
+ suggests, :class:`UnitalAlgebras` is not a subcategory of
37
+ :class:`Algebras` but of
38
+ :class:`~.magmatic_algebras.MagmaticAlgebras`.
39
+
40
+ EXAMPLES::
41
+
42
+ sage: from sage.categories.unital_algebras import UnitalAlgebras
43
+ sage: C = UnitalAlgebras(ZZ); C
44
+ Category of unital algebras over Integer Ring
45
+
46
+ TESTS::
47
+
48
+ sage: from sage.categories.magmatic_algebras import MagmaticAlgebras
49
+ sage: C is MagmaticAlgebras(ZZ).Unital()
50
+ True
51
+ sage: TestSuite(C).run()
52
+ """
53
+ _base_category_class_and_axiom = (MagmaticAlgebras, "Unital")
54
+
55
+ class ParentMethods:
56
+ def from_base_ring(self, r):
57
+ """
58
+ Return the canonical embedding of ``r`` into ``self``.
59
+
60
+ INPUT:
61
+
62
+ - ``r`` -- an element of ``self.base_ring()``
63
+
64
+ EXAMPLES::
65
+
66
+ sage: A = AlgebrasWithBasis(QQ).example(); A # needs sage.combinat sage.modules
67
+ An example of an algebra with basis:
68
+ the free algebra on the generators ('a', 'b', 'c') over Rational Field
69
+ sage: A.from_base_ring(1) # needs sage.combinat sage.modules
70
+ B[word: ]
71
+ """
72
+ return self.one()._lmul_(r)
73
+
74
+ def __init_extra__(self):
75
+ """
76
+ Declare the canonical coercion from ``self.base_ring()``
77
+ to ``self``, if there has been none before.
78
+
79
+ EXAMPLES::
80
+
81
+ sage: A = AlgebrasWithBasis(QQ).example(); A # needs sage.combinat sage.modules
82
+ An example of an algebra with basis:
83
+ the free algebra on the generators ('a', 'b', 'c') over Rational Field
84
+ sage: coercion_model = sage.structure.element.get_coercion_model()
85
+ sage: coercion_model.discover_coercion(QQ, A) # needs sage.combinat sage.modules
86
+ ((map internal to coercion system -- copy before use)
87
+ Generic morphism:
88
+ From: Rational Field
89
+ To: An example of an algebra with basis:
90
+ the free algebra on the generators ('a', 'b', 'c') over Rational Field,
91
+ None)
92
+ sage: A(1) # indirect doctest # needs sage.combinat sage.modules
93
+ B[word: ]
94
+
95
+ TESTS:
96
+
97
+ Ensure that :issue:`28328` is fixed and that non-associative
98
+ algebras are supported::
99
+
100
+ sage: # needs sage.modules
101
+ sage: class Foo(CombinatorialFreeModule):
102
+ ....: def one(self):
103
+ ....: return self.monomial(0)
104
+ sage: from sage.categories.magmatic_algebras import MagmaticAlgebras
105
+ sage: C = MagmaticAlgebras(QQ).WithBasis().Unital()
106
+ sage: F = Foo(QQ, (1,), category=C)
107
+ sage: F(0)
108
+ 0
109
+ sage: F(3)
110
+ 3*B[0]
111
+ """
112
+ base_ring = self.base_ring()
113
+ if base_ring is self:
114
+ # There are rings that are their own base rings. No need to register that.
115
+ return
116
+ if self._is_coercion_cached(base_ring):
117
+ # We will not use any generic stuff, since a (presumably) better conversion
118
+ # has already been registered.
119
+ return
120
+ if base_ring is None:
121
+ # It may happen that self.base_ring() is not initialised at this point.
122
+ return
123
+
124
+ mor = self._coerce_map_from_base_ring()
125
+ if mor is not None:
126
+ mor._make_weak_references()
127
+ try:
128
+ self.register_coercion(mor)
129
+ except AssertionError:
130
+ pass
131
+
132
+ def _coerce_map_from_(self, other):
133
+ """
134
+ Return a coercion map from ``other`` to ``self``, or ``None``.
135
+
136
+ TESTS:
137
+
138
+ Check that :issue:`19225` is solved::
139
+
140
+ sage: A = cartesian_product((QQ['z'],)); A
141
+ The Cartesian product of (Univariate Polynomial Ring in z over Rational Field,)
142
+ sage: A.coerce_map_from(ZZ)
143
+ Composite map:
144
+ From: Integer Ring
145
+ To: The Cartesian product of (Univariate Polynomial Ring in z over Rational Field,)
146
+ Defn: Natural morphism:
147
+ From: Integer Ring
148
+ To: Rational Field
149
+ then
150
+ Generic morphism:
151
+ From: Rational Field
152
+ To: The Cartesian product of (Univariate Polynomial Ring in z over Rational Field,)
153
+ sage: A(1)
154
+ (1,)
155
+ """
156
+ if other is self.base_ring():
157
+ return self._coerce_map_from_base_ring()
158
+ else:
159
+ return self._coerce_map_via([self.base_ring()], other)
160
+
161
+ def _coerce_map_from_base_ring(self):
162
+ """
163
+ Return a suitable coercion map from the base ring of ``self``.
164
+
165
+ TESTS::
166
+
167
+ sage: A = cartesian_product((QQ['z'],)); A
168
+ The Cartesian product of (Univariate Polynomial Ring in z over Rational Field,)
169
+ sage: A.base_ring()
170
+ Rational Field
171
+ sage: A._coerce_map_from_base_ring()
172
+ Generic morphism:
173
+ From: Rational Field
174
+ To: The Cartesian product of (Univariate Polynomial Ring in z over Rational Field,)
175
+
176
+ Check that :issue:`29312` is fixed::
177
+
178
+ sage: F.<x,y,z> = FreeAlgebra(QQ, implementation='letterplace') # needs sage.combinat sage.libs.singular sage.modules
179
+ sage: F._coerce_map_from_base_ring() # needs sage.combinat sage.libs.singular sage.modules
180
+ Generic morphism:
181
+ From: Rational Field
182
+ To: Free Associative Unital Algebra on 3 generators (x, y, z) over Rational Field
183
+ """
184
+ base_ring = self.base_ring()
185
+
186
+ # Pick a homset for the morphism to live in...
187
+ if self in Rings():
188
+ # The algebra is associative, and thus a ring. The
189
+ # base ring is also a ring. Everything is OK.
190
+ H = Hom(base_ring, self, Rings())
191
+ else:
192
+ # If the algebra isn't associative, we would like to
193
+ # use the category of unital magmatic algebras (which
194
+ # are not necessarily associative) instead. But,
195
+ # unfortunately, certain important rings like QQ
196
+ # aren't in that category. As a result, we have to use
197
+ # something weaker.
198
+ cat = Magmas().Unital()
199
+ cat = Category.join([cat, CommutativeAdditiveGroups()])
200
+ cat = cat.Distributive()
201
+ H = Hom(base_ring, self, cat)
202
+
203
+ # We need to construct a coercion from the base ring to self.
204
+ #
205
+ # There is a generic method from_base_ring(), that just does
206
+ # multiplication with the multiplicative unit. However, the
207
+ # unit is constructed repeatedly, which is slow.
208
+ # So, if the unit is available *now*, then we can create a
209
+ # faster coercion map.
210
+ #
211
+ # This only applies for the generic from_base_ring() method.
212
+ # If there is a specialised from_base_ring(), then it should
213
+ # be used unconditionally.
214
+ generic_from_base_ring = self.category().parent_class.from_base_ring
215
+ from_base_ring = self.from_base_ring # bound method
216
+ if from_base_ring.__func__ != generic_from_base_ring:
217
+ # Custom from_base_ring()
218
+ use_from_base_ring = True
219
+ elif isinstance(generic_from_base_ring, lazy_attribute):
220
+ # If the category implements from_base_ring() as lazy
221
+ # attribute, then we always use it.
222
+ # This is for backwards compatibility, see Issue #25181
223
+ use_from_base_ring = True
224
+ else:
225
+ try:
226
+ one = self.one()
227
+ use_from_base_ring = False
228
+ except (NotImplementedError, AttributeError, TypeError):
229
+ # The unit is not available, yet. But there are cases
230
+ # in which it will be available later. So, we use
231
+ # the generic from_base_ring() after all.
232
+ use_from_base_ring = True
233
+
234
+ mor = None
235
+ if use_from_base_ring:
236
+ mor = SetMorphism(function=from_base_ring, parent=H)
237
+ else:
238
+ # We have the multiplicative unit, so implement the
239
+ # coercion from the base ring as multiplying with that.
240
+ #
241
+ # But first we check that it actually works. If not,
242
+ # then the generic implementation of from_base_ring()
243
+ # would fail as well so we don't use it.
244
+ try:
245
+ if one._lmul_(base_ring.an_element()) is not None:
246
+ # There are cases in which lmul returns None,
247
+ # which means that it's not implemented.
248
+ # One example: Hecke algebras.
249
+ mor = SetMorphism(function=one._lmul_, parent=H)
250
+ except (NotImplementedError, AttributeError, TypeError):
251
+ pass
252
+ return mor
253
+
254
+ class WithBasis(CategoryWithAxiom_over_base_ring):
255
+
256
+ class ParentMethods:
257
+
258
+ @abstract_method(optional=True)
259
+ def one_basis(self):
260
+ """
261
+ When the one of an algebra with basis is an element of
262
+ this basis, this optional method can return the index of
263
+ this element. This is used to provide a default
264
+ implementation of :meth:`.one`, and an optimized default
265
+ implementation of :meth:`.from_base_ring`.
266
+
267
+ EXAMPLES::
268
+
269
+ sage: # needs sage.combinat sage.modules
270
+ sage: A = AlgebrasWithBasis(QQ).example()
271
+ sage: A.one_basis()
272
+ word:
273
+ sage: A.one()
274
+ B[word: ]
275
+ sage: A.from_base_ring(4)
276
+ 4*B[word: ]
277
+ """
278
+
279
+ @cached_method
280
+ def one_from_one_basis(self):
281
+ """
282
+ Return the one of the algebra, as per
283
+ :meth:`Monoids.ParentMethods.one()
284
+ <sage.categories.monoids.Monoids.ParentMethods.one>`
285
+
286
+ By default, this is implemented from
287
+ :meth:`.one_basis`, if available.
288
+
289
+ EXAMPLES::
290
+
291
+ sage: # needs sage.combinat sage.modules
292
+ sage: A = AlgebrasWithBasis(QQ).example()
293
+ sage: A.one_basis()
294
+ word:
295
+ sage: A.one_from_one_basis()
296
+ B[word: ]
297
+ sage: A.one()
298
+ B[word: ]
299
+
300
+ TESTS:
301
+
302
+ Try to check that :issue:`5843` Heisenbug is fixed::
303
+
304
+ sage: # needs sage.combinat sage.modules
305
+ sage: A = AlgebrasWithBasis(QQ).example()
306
+ sage: B = AlgebrasWithBasis(QQ).example(('a', 'c'))
307
+ sage: A == B
308
+ False
309
+ sage: Aone = A.one_from_one_basis
310
+ sage: Bone = B.one_from_one_basis
311
+ sage: Aone is Bone
312
+ False
313
+
314
+ Even if called in the wrong order, they should returns their
315
+ respective one::
316
+
317
+ sage: Bone().parent() is B # needs sage.combinat sage.modules
318
+ True
319
+ sage: Aone().parent() is A # needs sage.combinat sage.modules
320
+ True
321
+ """
322
+ return self.monomial(self.one_basis())
323
+
324
+ @lazy_attribute
325
+ def one(self):
326
+ r"""
327
+ Return the multiplicative unit element.
328
+
329
+ EXAMPLES::
330
+
331
+ sage: A = AlgebrasWithBasis(QQ).example() # needs sage.combinat sage.modules
332
+ sage: A.one_basis() # needs sage.combinat sage.modules
333
+ word:
334
+ sage: A.one() # needs sage.combinat sage.modules
335
+ B[word: ]
336
+ """
337
+ if self.one_basis is NotImplemented:
338
+ return NotImplemented
339
+ return self.one_from_one_basis
340
+
341
+ @lazy_attribute
342
+ def from_base_ring(self):
343
+ """
344
+ TESTS::
345
+
346
+ sage: A = AlgebrasWithBasis(QQ).example() # needs sage.combinat sage.modules
347
+ sage: A.from_base_ring(3) # needs sage.combinat sage.modules
348
+ 3*B[word: ]
349
+ """
350
+ if self.one_basis is NotImplemented:
351
+ return NotImplemented
352
+ return self.from_base_ring_from_one_basis
353
+
354
+ def from_base_ring_from_one_basis(self, r):
355
+ """
356
+ Implement the canonical embedding from the ground ring.
357
+
358
+ INPUT:
359
+
360
+ - ``r`` -- an element of the coefficient ring
361
+
362
+ EXAMPLES::
363
+
364
+ sage: # needs sage.combinat sage.modules
365
+ sage: A = AlgebrasWithBasis(QQ).example()
366
+ sage: A.from_base_ring_from_one_basis(3)
367
+ 3*B[word: ]
368
+ sage: A.from_base_ring(3)
369
+ 3*B[word: ]
370
+ sage: A(3)
371
+ 3*B[word: ]
372
+ """
373
+ return self.term(self.one_basis(), r)
374
+
375
+ class CartesianProducts(CartesianProductsCategory):
376
+ r"""
377
+ The category of unital algebras constructed as Cartesian products
378
+ of unital algebras.
379
+
380
+ This construction gives the direct product of algebras. See
381
+ discussion on:
382
+
383
+ - http://groups.google.fr/group/sage-devel/browse_thread/thread/35a72b1d0a2fc77a/348f42ae77a66d16#348f42ae77a66d16
384
+ - :wikipedia:`Direct_product`
385
+ """
386
+ def extra_super_categories(self):
387
+ """
388
+ A Cartesian product of algebras is endowed with a natural
389
+ unital algebra structure.
390
+
391
+ EXAMPLES::
392
+
393
+ sage: from sage.categories.unital_algebras import UnitalAlgebras
394
+ sage: C = UnitalAlgebras(QQ).CartesianProducts()
395
+ sage: C.extra_super_categories()
396
+ [Category of unital algebras over Rational Field]
397
+ sage: sorted(C.super_categories(), key=str)
398
+ [Category of Cartesian products of distributive magmas and additive magmas,
399
+ Category of Cartesian products of unital magmas,
400
+ Category of Cartesian products of vector spaces over Rational Field,
401
+ Category of unital algebras over Rational Field]
402
+ """
403
+ return [self.base_category()]
404
+
405
+ class ParentMethods:
406
+ @cached_method
407
+ def one(self):
408
+ r"""
409
+ Return the multiplicative unit element.
410
+
411
+ EXAMPLES::
412
+
413
+ sage: # needs sage.graphs sage.modules
414
+ sage: S2 = simplicial_complexes.Sphere(2)
415
+ sage: H = S2.cohomology_ring(QQ)
416
+ sage: C = cartesian_product([H, H])
417
+ sage: one = C.one()
418
+ sage: one
419
+ B[(0, (0, 0))] + B[(1, (0, 0))]
420
+ sage: one == one * one
421
+ True
422
+ sage: all(b == b * one for b in C.basis())
423
+ True
424
+ """
425
+ data = enumerate(self.cartesian_factors())
426
+ return self._cartesian_product_of_elements([C.one() for i, C in data])
@@ -0,0 +1,159 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ # sage.doctest: needs sage.symbolic
3
+ r"""
4
+ Vector Bundles
5
+ """
6
+ #*****************************************************************************
7
+ # Copyright (C) 2019 Michael Jung <micjung at uni-potsdam.de>
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.category_types import Category_over_base_ring
14
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
15
+ from sage.misc.cachefunc import cached_method
16
+ from sage.categories.sets_cat import Sets
17
+ from sage.categories.fields import Fields
18
+
19
+
20
+ class VectorBundles(Category_over_base_ring):
21
+ r"""
22
+ The category of vector bundles over any base space and base field.
23
+
24
+ .. SEEALSO:: :class:`~sage.manifolds.vector_bundle.TopologicalVectorBundle`
25
+
26
+ EXAMPLES::
27
+
28
+ sage: M = Manifold(2, 'M', structure='top')
29
+ sage: from sage.categories.vector_bundles import VectorBundles
30
+ sage: C = VectorBundles(M, RR); C
31
+ Category of vector bundles over Real Field with 53 bits of precision
32
+ with base space 2-dimensional topological manifold M
33
+ sage: C.super_categories()
34
+ [Category of topological spaces]
35
+
36
+ TESTS::
37
+
38
+ sage: TestSuite(C).run(skip='_test_category_over_bases')
39
+ """
40
+ def __init__(self, base_space, base_field, name=None):
41
+ r"""
42
+ Initialize ``self``.
43
+
44
+ EXAMPLES::
45
+
46
+ sage: M = Manifold(2, 'M')
47
+ sage: from sage.categories.vector_bundles import VectorBundles
48
+ sage: C = VectorBundles(M, RR)
49
+ sage: TestSuite(C).run(skip='_test_category_over_bases')
50
+ """
51
+ if base_field not in Fields().Topological():
52
+ raise ValueError("base field must be a topological field")
53
+ self._base_space = base_space
54
+ Category_over_base_ring.__init__(self, base_field, name)
55
+
56
+ @cached_method
57
+ def super_categories(self):
58
+ r"""
59
+ EXAMPLES::
60
+
61
+ sage: M = Manifold(2, 'M')
62
+ sage: from sage.categories.vector_bundles import VectorBundles
63
+ sage: VectorBundles(M, RR).super_categories()
64
+ [Category of topological spaces]
65
+ """
66
+ return [Sets().Topological()]
67
+
68
+ def base_space(self):
69
+ r"""
70
+ Return the base space of this category.
71
+
72
+ EXAMPLES::
73
+
74
+ sage: M = Manifold(2, 'M', structure='top')
75
+ sage: from sage.categories.vector_bundles import VectorBundles
76
+ sage: VectorBundles(M, RR).base_space()
77
+ 2-dimensional topological manifold M
78
+ """
79
+ return self._base_space
80
+
81
+ def _repr_object_names(self):
82
+ r"""
83
+ Return the name of the objects of this category.
84
+
85
+ .. SEEALSO:: :meth:`Category._repr_object_names`
86
+
87
+ EXAMPLES::
88
+
89
+ sage: M = Manifold(2, 'M')
90
+ sage: from sage.categories.vector_bundles import VectorBundles
91
+ sage: VectorBundles(M, RR)._repr_object_names()
92
+ 'vector bundles over Real Field with 53 bits of precision with base
93
+ space 2-dimensional differentiable manifold M'
94
+ """
95
+ base_space = self._base_space
96
+ return Category_over_base_ring._repr_object_names(self) + \
97
+ " with base space %s" % base_space
98
+
99
+ class SubcategoryMethods:
100
+ @cached_method
101
+ def Differentiable(self):
102
+ r"""
103
+ Return the subcategory of the differentiable objects
104
+ of ``self``.
105
+
106
+ EXAMPLES::
107
+
108
+ sage: M = Manifold(2, 'M')
109
+ sage: from sage.categories.vector_bundles import VectorBundles
110
+ sage: VectorBundles(M, RR).Differentiable()
111
+ Category of differentiable vector bundles over Real Field with
112
+ 53 bits of precision with base space 2-dimensional
113
+ differentiable manifold M
114
+
115
+ TESTS::
116
+
117
+ sage: TestSuite(VectorBundles(M, RR).Differentiable()).run()
118
+ sage: VectorBundles(M, RR).Differentiable.__module__
119
+ 'sage.categories.vector_bundles'
120
+ """
121
+ return self._with_axiom('Differentiable')
122
+
123
+ @cached_method
124
+ def Smooth(self):
125
+ """
126
+ Return the subcategory of the smooth objects of ``self``.
127
+
128
+ EXAMPLES::
129
+
130
+ sage: M = Manifold(2, 'M')
131
+ sage: from sage.categories.vector_bundles import VectorBundles
132
+ sage: VectorBundles(M, RR).Smooth()
133
+ Category of smooth vector bundles over Real Field with 53 bits
134
+ of precision with base space 2-dimensional differentiable
135
+ manifold M
136
+
137
+ TESTS::
138
+
139
+ sage: TestSuite(VectorBundles(M, RR).Smooth()).run()
140
+ sage: VectorBundles(M, RR).Smooth.__module__
141
+ 'sage.categories.vector_bundles'
142
+ """
143
+ return self._with_axiom('Smooth')
144
+
145
+ class Differentiable(CategoryWithAxiom_over_base_ring):
146
+ """
147
+ The category of differentiable vector bundles.
148
+
149
+ A differentiable vector bundle is a differentiable manifold with
150
+ differentiable surjective projection on a differentiable base space.
151
+ """
152
+
153
+ class Smooth(CategoryWithAxiom_over_base_ring):
154
+ """
155
+ The category of smooth vector bundles.
156
+
157
+ A smooth vector bundle is a smooth manifold with
158
+ smooth surjective projection on a smooth base space.
159
+ """