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,406 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ # sage.doctest: needs sage.graphs sage.combinat sage.modules
3
+ r"""
4
+ Supercrystals
5
+ """
6
+
7
+ #*****************************************************************************
8
+ # Copyright (C) 2017 Franco Saliola <saliola@gmail.com>
9
+ # 2017 Anne Schilling <anne at math.ucdavis.edu>
10
+ # 2019 Travis Scrimshaw <tcscrims at gmail.com>
11
+ #
12
+ # This program is free software: you can redistribute it and/or modify
13
+ # it under the terms of the GNU General Public License as published by
14
+ # the Free Software Foundation, either version 2 of the License, or
15
+ # (at your option) any later version.
16
+ # http://www.gnu.org/licenses/
17
+ #*****************************************************************************
18
+
19
+ from sage.misc.cachefunc import cached_method
20
+ from sage.categories.category_singleton import Category_singleton
21
+ from sage.categories.category_with_axiom import CategoryWithAxiom
22
+ from sage.categories.crystals import Crystals
23
+ from sage.categories.tensor import TensorProductsCategory
24
+
25
+
26
+ class SuperCrystals(Category_singleton):
27
+ def super_categories(self):
28
+ r"""
29
+ EXAMPLES::
30
+
31
+ sage: from sage.categories.supercrystals import SuperCrystals
32
+ sage: C = SuperCrystals()
33
+ sage: C.super_categories()
34
+ [Category of crystals]
35
+ """
36
+ return [Crystals()]
37
+
38
+ class ParentMethods:
39
+ def tensor(self, *crystals, **options):
40
+ """
41
+ Return the tensor product of ``self`` with the crystals ``B``.
42
+
43
+ EXAMPLES::
44
+
45
+ sage: B = crystals.Letters(['A',[1,2]])
46
+ sage: C = crystals.Tableaux(['A',[1,2]], shape = [2,1])
47
+ sage: T = C.tensor(B); T
48
+ Full tensor product of the crystals
49
+ [Crystal of BKK tableaux of shape [2, 1] of gl(2|3),
50
+ The crystal of letters for type ['A', [1, 2]]]
51
+ sage: S = B.tensor(C); S
52
+ Full tensor product of the crystals
53
+ [The crystal of letters for type ['A', [1, 2]],
54
+ Crystal of BKK tableaux of shape [2, 1] of gl(2|3)]
55
+ sage: G = T.digraph()
56
+ sage: H = S.digraph()
57
+ sage: G.is_isomorphic(H, edge_labels=True)
58
+ True
59
+ """
60
+ cartan_type = self.cartan_type()
61
+ if any(c.cartan_type() != cartan_type for c in crystals):
62
+ raise ValueError("all crystals must be of the same Cartan type")
63
+
64
+ if cartan_type.letter == 'Q':
65
+ from sage.combinat.crystals.tensor_product import FullTensorProductOfQueerSuperCrystals
66
+ return FullTensorProductOfQueerSuperCrystals((self,) + tuple(crystals), **options)
67
+ else:
68
+ from sage.combinat.crystals.tensor_product import FullTensorProductOfSuperCrystals
69
+ return FullTensorProductOfSuperCrystals((self,) + tuple(crystals), **options)
70
+
71
+ class Finite(CategoryWithAxiom):
72
+ class ParentMethods:
73
+ @cached_method(key=lambda s,i: tuple(i) if i is not None else s.index_set())
74
+ def digraph(self, index_set=None):
75
+ r"""
76
+ Return the :class:`DiGraph` associated to ``self``.
77
+
78
+ EXAMPLES::
79
+
80
+ sage: B = crystals.Letters(['A', [1,3]])
81
+ sage: G = B.digraph(); G
82
+ Multi-digraph on 6 vertices
83
+ sage: Q = crystals.Letters(['Q',3])
84
+ sage: G = Q.digraph(); G
85
+ Multi-digraph on 3 vertices
86
+ sage: G.edges(sort=True)
87
+ [(1, 2, -1), (1, 2, 1), (2, 3, -2), (2, 3, 2)]
88
+
89
+ The edges of the crystal graph are by default colored using
90
+ blue for edge 1, red for edge 2, green for edge 3, and dashed with
91
+ the corresponding color for barred edges. Edge 0 is dotted black::
92
+
93
+ sage: view(G) # optional - dot2tex graphviz, not tested (opens external window)
94
+ """
95
+ from sage.graphs.digraph import DiGraph
96
+ from sage.misc.latex import LatexExpr
97
+ from sage.combinat.root_system.cartan_type import CartanType
98
+
99
+ if index_set is None:
100
+ index_set = self.index_set()
101
+
102
+ G = DiGraph(multiedges=True)
103
+ G.add_vertices(self)
104
+ for i in index_set:
105
+ for x in G:
106
+ y = x.f(i)
107
+ if y is not None:
108
+ G.add_edge(x, y, i)
109
+
110
+ def edge_options(data):
111
+ u, v, l = data
112
+ edge_opts = { 'edge_string': '->', 'color': 'black' }
113
+ if l > 0:
114
+ edge_opts['color'] = CartanType._colors.get(l, 'black')
115
+ edge_opts['label'] = LatexExpr(str(l))
116
+ elif l < 0:
117
+ edge_opts['color'] = "dashed," + CartanType._colors.get(-l, 'black')
118
+ edge_opts['label'] = LatexExpr("\\overline{%s}" % str(-l))
119
+ else:
120
+ edge_opts['color'] = "dotted," + CartanType._colors.get(l, 'black')
121
+ edge_opts['label'] = LatexExpr(str(l))
122
+ return edge_opts
123
+
124
+ G.set_latex_options(format='dot2tex', edge_labels=True, edge_options=edge_options)
125
+ return G
126
+
127
+ def genuine_highest_weight_vectors(self):
128
+ r"""
129
+ Return the tuple of genuine highest weight elements of ``self``.
130
+
131
+ EXAMPLES::
132
+
133
+ sage: B = crystals.Letters(['A', [1,2]])
134
+ sage: B.genuine_highest_weight_vectors()
135
+ (-2,)
136
+
137
+ sage: T = B.tensor(B)
138
+ sage: T.genuine_highest_weight_vectors()
139
+ ([-2, -1], [-2, -2])
140
+ sage: s1, s2 = T.connected_components()
141
+ sage: s = s1 + s2
142
+ sage: s.genuine_highest_weight_vectors()
143
+ ([-2, -1], [-2, -2])
144
+ """
145
+ return tuple([x[0] for x in self._genuine_highest_lowest_weight_vectors()])
146
+
147
+ connected_components_generators = genuine_highest_weight_vectors
148
+
149
+ def connected_components(self):
150
+ r"""
151
+ Return the connected components of ``self`` as subcrystals.
152
+
153
+ EXAMPLES::
154
+
155
+ sage: B = crystals.Letters(['A', [1,2]])
156
+ sage: B.connected_components()
157
+ [Subcrystal of The crystal of letters for type ['A', [1, 2]]]
158
+
159
+ sage: T = B.tensor(B)
160
+ sage: T.connected_components()
161
+ [Subcrystal of Full tensor product of the crystals
162
+ [The crystal of letters for type ['A', [1, 2]],
163
+ The crystal of letters for type ['A', [1, 2]]],
164
+ Subcrystal of Full tensor product of the crystals
165
+ [The crystal of letters for type ['A', [1, 2]],
166
+ The crystal of letters for type ['A', [1, 2]]]]
167
+ """
168
+ category = SuperCrystals()
169
+ from sage.categories.regular_supercrystals import RegularSuperCrystals
170
+ if self in RegularSuperCrystals():
171
+ category = RegularSuperCrystals()
172
+ index_set = self.index_set()
173
+ cartan_type = self.cartan_type()
174
+ CCs = []
175
+
176
+ for mg in self.connected_components_generators():
177
+ if not isinstance(mg, tuple):
178
+ mg = (mg,)
179
+ subcrystal = self.subcrystal(generators=mg,
180
+ index_set=index_set,
181
+ cartan_type=cartan_type,
182
+ category=category)
183
+ CCs.append(subcrystal)
184
+
185
+ return CCs
186
+
187
+ def genuine_lowest_weight_vectors(self):
188
+ r"""
189
+ Return the tuple of genuine lowest weight elements of ``self``.
190
+
191
+ EXAMPLES::
192
+
193
+ sage: B = crystals.Letters(['A', [1,2]])
194
+ sage: B.genuine_lowest_weight_vectors()
195
+ (3,)
196
+
197
+ sage: T = B.tensor(B)
198
+ sage: T.genuine_lowest_weight_vectors()
199
+ ([3, 3], [3, 2])
200
+ sage: s1, s2 = T.connected_components()
201
+ sage: s = s1 + s2
202
+ sage: s.genuine_lowest_weight_vectors()
203
+ ([3, 3], [3, 2])
204
+ """
205
+ return tuple([x[1] for x in self._genuine_highest_lowest_weight_vectors()])
206
+
207
+ @cached_method
208
+ def _genuine_highest_lowest_weight_vectors(self):
209
+ r"""
210
+ Return the genuine lowest and highest weight elements of ``self``.
211
+
212
+ EXAMPLES::
213
+
214
+ sage: B = crystals.Letters(['A', [1,2]])
215
+ sage: B._genuine_highest_lowest_weight_vectors()
216
+ ((-2, 3),)
217
+
218
+ sage: T = B.tensor(B)
219
+ sage: T._genuine_highest_lowest_weight_vectors()
220
+ (([-2, -1], [3, 3]), ([-2, -2], [3, 2]))
221
+ sage: s1, s2 = T.connected_components()
222
+ sage: s = s1 + s2
223
+ sage: s._genuine_highest_lowest_weight_vectors()
224
+ (([-2, -1], [3, 3]), ([-2, -2], [3, 2]))
225
+
226
+ An example with fake highest/lowest weight elements
227
+ from [BKK2000]_::
228
+
229
+ sage: B = crystals.Tableaux(['A', [1,1]], shape=[3,2,1])
230
+ sage: B._genuine_highest_lowest_weight_vectors()
231
+ (([[-2, -2, -2], [-1, -1], [1]], [[-1, 1, 2], [1, 2], [2]]),)
232
+ """
233
+ X = []
234
+ for G in self.digraph().connected_components_subgraphs():
235
+ src = G.sources()
236
+ sinks = G.sinks()
237
+ max_dist = -1
238
+ pair = None
239
+ for s in src:
240
+ for t in sinks:
241
+ d = G.distance(s, t)
242
+ if d < float('inf') and d > max_dist:
243
+ pair = (s, t)
244
+ max_dist = d
245
+ X.append(pair)
246
+ return tuple(X)
247
+
248
+ def character(self):
249
+ """
250
+ Return the character of ``self``.
251
+
252
+ .. TODO::
253
+
254
+ Once the `WeylCharacterRing` is implemented, make this
255
+ consistent with the implementation in
256
+ :meth:`sage.categories.classical_crystals.ClassicalCrystals.ParentMethods.character`.
257
+
258
+ EXAMPLES::
259
+
260
+ sage: B = crystals.Letters(['A',[1,2]])
261
+ sage: B.character()
262
+ B[(1, 0, 0, 0, 0)] + B[(0, 1, 0, 0, 0)] + B[(0, 0, 1, 0, 0)]
263
+ + B[(0, 0, 0, 1, 0)] + B[(0, 0, 0, 0, 1)]
264
+ """
265
+ from sage.rings.integer_ring import ZZ
266
+ A = self.weight_lattice_realization().algebra(ZZ)
267
+ return A.sum(A(x.weight()) for x in self)
268
+
269
+ @cached_method
270
+ def highest_weight_vectors(self):
271
+ """
272
+ Return the highest weight vectors of ``self``.
273
+
274
+ EXAMPLES::
275
+
276
+ sage: B = crystals.Letters(['A', [1,2]])
277
+ sage: B.highest_weight_vectors()
278
+ (-2,)
279
+
280
+ sage: T = B.tensor(B)
281
+ sage: T.highest_weight_vectors()
282
+ ([-2, -2], [-2, -1])
283
+
284
+ We give an example from [BKK2000]_ that has fake
285
+ highest weight vectors::
286
+
287
+ sage: B = crystals.Tableaux(['A', [1,1]], shape=[3,2,1])
288
+ sage: B.highest_weight_vectors()
289
+ ([[-2, -2, -2], [-1, -1], [1]],
290
+ [[-2, -2, -2], [-1, 2], [1]],
291
+ [[-2, -2, 2], [-1, -1], [1]])
292
+ sage: B.genuine_highest_weight_vectors()
293
+ ([[-2, -2, -2], [-1, -1], [1]],)
294
+ """
295
+ return tuple(self.digraph().sources())
296
+
297
+ @cached_method
298
+ def lowest_weight_vectors(self):
299
+ """
300
+ Return the lowest weight vectors of ``self``.
301
+
302
+ EXAMPLES::
303
+
304
+ sage: B = crystals.Letters(['A', [1,2]])
305
+ sage: B.lowest_weight_vectors()
306
+ (3,)
307
+
308
+ sage: T = B.tensor(B)
309
+ sage: sorted(T.lowest_weight_vectors())
310
+ [[3, 2], [3, 3]]
311
+
312
+ We give an example from [BKK2000]_ that has fake
313
+ lowest weight vectors::
314
+
315
+ sage: B = crystals.Tableaux(['A', [1,1]], shape=[3,2,1])
316
+ sage: sorted(B.lowest_weight_vectors())
317
+ [[[-2, 1, 2], [-1, 2], [1]],
318
+ [[-2, 1, 2], [-1, 2], [2]],
319
+ [[-1, 1, 2], [1, 2], [2]]]
320
+ sage: B.genuine_lowest_weight_vectors()
321
+ ([[-1, 1, 2], [1, 2], [2]],)
322
+ """
323
+ return tuple(self.digraph().sinks())
324
+
325
+ class ElementMethods:
326
+ def is_genuine_highest_weight(self, index_set=None):
327
+ """
328
+ Return whether ``self`` is a genuine highest weight element.
329
+
330
+ INPUT:
331
+
332
+ - ``index_set`` -- (optional) the index set of the (sub)crystal
333
+ on which to check
334
+
335
+ EXAMPLES::
336
+
337
+ sage: B = crystals.Tableaux(['A', [1,1]], shape=[3,2,1])
338
+ sage: for b in B.highest_weight_vectors():
339
+ ....: print("{} {}".format(b, b.is_genuine_highest_weight()))
340
+ [[-2, -2, -2], [-1, -1], [1]] True
341
+ [[-2, -2, -2], [-1, 2], [1]] False
342
+ [[-2, -2, 2], [-1, -1], [1]] False
343
+ sage: [b for b in B if b.is_genuine_highest_weight([-1,0])]
344
+ [[[-2, -2, -2], [-1, -1], [1]],
345
+ [[-2, -2, -2], [-1, -1], [2]],
346
+ [[-2, -2, -2], [-1, 2], [2]],
347
+ [[-2, -2, 2], [-1, -1], [2]],
348
+ [[-2, -2, 2], [-1, 2], [2]],
349
+ [[-2, -2, -2], [-1, 2], [1]],
350
+ [[-2, -2, 2], [-1, -1], [1]],
351
+ [[-2, -2, 2], [-1, 2], [1]]]
352
+ """
353
+ P = self.parent()
354
+ if index_set is None or set(index_set) == set(P.index_set()):
355
+ return self in P.genuine_highest_weight_vectors()
356
+ S = P.subcrystal(generators=P, index_set=index_set, category=P.category())
357
+ return any(self == x.value for x in S.genuine_highest_weight_vectors())
358
+
359
+ def is_genuine_lowest_weight(self, index_set=None):
360
+ """
361
+ Return whether ``self`` is a genuine lowest weight element.
362
+
363
+ INPUT:
364
+
365
+ - ``index_set`` -- (optional) the index set of the (sub)crystal
366
+ on which to check
367
+
368
+ EXAMPLES::
369
+
370
+ sage: B = crystals.Tableaux(['A', [1,1]], shape=[3,2,1])
371
+ sage: for b in sorted(B.lowest_weight_vectors()):
372
+ ....: print("{} {}".format(b, b.is_genuine_lowest_weight()))
373
+ [[-2, 1, 2], [-1, 2], [1]] False
374
+ [[-2, 1, 2], [-1, 2], [2]] False
375
+ [[-1, 1, 2], [1, 2], [2]] True
376
+ sage: [b for b in B if b.is_genuine_lowest_weight([-1,0])]
377
+ [[[-2, -1, 1], [-1, 1], [1]],
378
+ [[-2, -1, 1], [-1, 1], [2]],
379
+ [[-2, 1, 2], [-1, 1], [2]],
380
+ [[-2, 1, 2], [-1, 1], [1]],
381
+ [[-1, -1, 1], [1, 2], [2]],
382
+ [[-1, -1, 1], [1, 2], [1]],
383
+ [[-1, 1, 2], [1, 2], [2]],
384
+ [[-1, 1, 2], [1, 2], [1]]]
385
+ """
386
+ P = self.parent()
387
+ if index_set is None or set(index_set) == set(P.index_set()):
388
+ return self in P.genuine_lowest_weight_vectors()
389
+ S = P.subcrystal(generators=P, index_set=index_set, category=P.category())
390
+ return any(self == x.value for x in S.genuine_lowest_weight_vectors())
391
+
392
+ class TensorProducts(TensorProductsCategory):
393
+ """
394
+ The category of regular crystals constructed by tensor
395
+ product of regular crystals.
396
+ """
397
+ @cached_method
398
+ def extra_super_categories(self):
399
+ """
400
+ EXAMPLES::
401
+
402
+ sage: from sage.categories.supercrystals import SuperCrystals
403
+ sage: SuperCrystals().TensorProducts().extra_super_categories()
404
+ [Category of super crystals]
405
+ """
406
+ return [self.base_category()]
@@ -0,0 +1,110 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ """
3
+ Tensor Product Functorial Construction
4
+
5
+ AUTHORS:
6
+
7
+ - Nicolas M. Thiéry (2008-2010): initial revision and refactorization
8
+ """
9
+ # ****************************************************************************
10
+ # Copyright (C) 2008-2010 Nicolas M. Thiéry <nthiery at users.sf.net>
11
+ #
12
+ # Distributed under the terms of the GNU General Public License (GPL)
13
+ # https://www.gnu.org/licenses/
14
+ # ****************************************************************************
15
+
16
+ from sage.categories.covariant_functorial_construction import CovariantFunctorialConstruction, CovariantConstructionCategory
17
+ from sage.typeset.unicode_characters import unicode_otimes
18
+
19
+
20
+ class TensorProductFunctor(CovariantFunctorialConstruction):
21
+ """
22
+ A singleton class for the tensor functor.
23
+
24
+ This functor takes a collection of vector spaces (or modules with
25
+ basis), and constructs the tensor product of those vector spaces.
26
+ If this vector space is in a subcategory, say that of
27
+ ``Algebras(QQ)``, it is automatically endowed with its natural
28
+ algebra structure, thanks to the category
29
+ ``Algebras(QQ).TensorProducts()`` of tensor products of algebras.
30
+ For elements, it constructs the natural tensor product element in the
31
+ corresponding tensor product of their parents.
32
+
33
+ The tensor functor is covariant: if ``A`` is a subcategory of ``B``, then
34
+ ``A.TensorProducts()`` is a subcategory of ``B.TensorProducts()`` (see
35
+ also
36
+ :class:`~sage.categories.covariant_functorial_construction.CovariantFunctorialConstruction`). Hence,
37
+ the role of ``Algebras(QQ).TensorProducts()`` is solely to provide
38
+ mathematical information and algorithms which are relevant to tensor
39
+ product of algebras.
40
+
41
+ Those are implemented in the nested class
42
+ :class:`~sage.categories.algebras.Algebras.TensorProducts`
43
+ of ``Algebras(QQ)``. This nested class is itself a subclass of
44
+ :class:`~sage.categories.tensor.TensorProductsCategory`.
45
+
46
+
47
+ TESTS::
48
+
49
+ sage: TestSuite(tensor).run()
50
+ """
51
+ _functor_name = "tensor"
52
+ _functor_category = "TensorProducts"
53
+ symbol = " # "
54
+ unicode_symbol = f" {unicode_otimes} "
55
+
56
+
57
+ tensor = TensorProductFunctor()
58
+ """
59
+ The tensor product functorial construction
60
+
61
+ See :class:`TensorProductFunctor` for more information
62
+
63
+ EXAMPLES::
64
+
65
+ sage: tensor
66
+ The tensor functorial construction
67
+ """
68
+
69
+
70
+ class TensorProductsCategory(CovariantConstructionCategory):
71
+ r"""
72
+ An abstract base class for all TensorProducts's categories.
73
+
74
+ TESTS::
75
+
76
+ sage: C = ModulesWithBasis(QQ).TensorProducts()
77
+ sage: C
78
+ Category of tensor products of vector spaces with basis over Rational Field
79
+ sage: C.base_category()
80
+ Category of vector spaces with basis over Rational Field
81
+ sage: latex(C)
82
+ \mathbf{TensorProducts}(\mathbf{WithBasis}_{\Bold{Q}})
83
+ sage: TestSuite(C).run()
84
+ """
85
+ _functor_category = "TensorProducts"
86
+
87
+ def TensorProducts(self):
88
+ """
89
+ Return the category of tensor products of objects of ``self``.
90
+
91
+ By associativity of tensor products, this is ``self`` (a tensor
92
+ product of tensor products of `Cat`'s is a tensor product of `Cat`'s)
93
+
94
+ EXAMPLES::
95
+
96
+ sage: ModulesWithBasis(QQ).TensorProducts().TensorProducts()
97
+ Category of tensor products of vector spaces with basis over Rational Field
98
+ """
99
+ return self
100
+
101
+ def base(self):
102
+ """
103
+ The base of a tensor product is the base (usually a ring) of the underlying category.
104
+
105
+ EXAMPLES::
106
+
107
+ sage: ModulesWithBasis(ZZ).TensorProducts().base()
108
+ Integer Ring
109
+ """
110
+ return self.base_category().base()
@@ -0,0 +1,170 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Topological Spaces
4
+ """
5
+ #*****************************************************************************
6
+ # Copyright (C) 2015 Travis Scrimshaw <tscrim at ucdavis.edu>
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.categories.category_with_axiom import CategoryWithAxiom
14
+ from sage.categories.cartesian_product import CartesianProductsCategory
15
+ from sage.categories.covariant_functorial_construction import RegressiveCovariantConstructionCategory
16
+ from sage.categories.sets_cat import Sets
17
+
18
+
19
+ class TopologicalSpacesCategory(RegressiveCovariantConstructionCategory):
20
+
21
+ _functor_category = "Topological"
22
+
23
+ def _repr_object_names(self):
24
+ """
25
+ EXAMPLES::
26
+
27
+ sage: Groups().Topological() # indirect doctest
28
+ Category of topological groups
29
+ """
30
+ return "topological {}".format(self.base_category()._repr_object_names())
31
+
32
+
33
+ class TopologicalSpaces(TopologicalSpacesCategory):
34
+ """
35
+ The category of topological spaces.
36
+
37
+ EXAMPLES::
38
+
39
+ sage: Sets().Topological()
40
+ Category of topological spaces
41
+ sage: Sets().Topological().super_categories()
42
+ [Category of sets]
43
+
44
+ The category of topological spaces defines the topological structure,
45
+ which shall be preserved by morphisms::
46
+
47
+ sage: Sets().Topological().additional_structure()
48
+ Category of topological spaces
49
+
50
+ TESTS::
51
+
52
+ sage: TestSuite(Sets().Topological()).run()
53
+ """
54
+ # We must override the general object because the names don't match
55
+ _base_category_class = (Sets,)
56
+
57
+ def _repr_object_names(self):
58
+ """
59
+ EXAMPLES::
60
+
61
+ sage: Sets().Topological() # indirect doctest
62
+ Category of topological spaces
63
+ """
64
+ return "topological spaces"
65
+
66
+ class CartesianProducts(CartesianProductsCategory):
67
+ def extra_super_categories(self):
68
+ r"""
69
+ Implement the fact that a (finite) Cartesian product of topological spaces is
70
+ a topological space.
71
+
72
+ EXAMPLES::
73
+
74
+ sage: from sage.categories.topological_spaces import TopologicalSpaces
75
+ sage: C = TopologicalSpaces().CartesianProducts()
76
+ sage: C.extra_super_categories()
77
+ [Category of topological spaces]
78
+ sage: C.super_categories()
79
+ [Category of Cartesian products of sets, Category of topological spaces]
80
+ sage: C.axioms()
81
+ frozenset()
82
+ """
83
+ return [TopologicalSpaces()]
84
+
85
+ class SubcategoryMethods:
86
+ @cached_method
87
+ def Connected(self):
88
+ """
89
+ Return the full subcategory of the connected objects of ``self``.
90
+
91
+ EXAMPLES::
92
+
93
+ sage: Sets().Topological().Connected()
94
+ Category of connected topological spaces
95
+
96
+ TESTS::
97
+
98
+ sage: TestSuite(Sets().Topological().Connected()).run()
99
+ sage: Sets().Topological().Connected.__module__
100
+ 'sage.categories.topological_spaces'
101
+ """
102
+ return self._with_axiom('Connected')
103
+
104
+ @cached_method
105
+ def Compact(self):
106
+ """
107
+ Return the subcategory of the compact objects of ``self``.
108
+
109
+ EXAMPLES::
110
+
111
+ sage: Sets().Topological().Compact()
112
+ Category of compact topological spaces
113
+
114
+ TESTS::
115
+
116
+ sage: TestSuite(Sets().Topological().Compact()).run()
117
+ sage: Sets().Topological().Compact.__module__
118
+ 'sage.categories.topological_spaces'
119
+ """
120
+ return self._with_axiom('Compact')
121
+
122
+ class Connected(CategoryWithAxiom):
123
+ """
124
+ The category of connected topological spaces.
125
+ """
126
+
127
+ class CartesianProducts(CartesianProductsCategory):
128
+ def extra_super_categories(self):
129
+ r"""
130
+ Implement the fact that a (finite) Cartesian product of connected
131
+ topological spaces is connected.
132
+
133
+ EXAMPLES::
134
+
135
+ sage: from sage.categories.topological_spaces import TopologicalSpaces
136
+ sage: C = TopologicalSpaces().Connected().CartesianProducts()
137
+ sage: C.extra_super_categories()
138
+ [Category of connected topological spaces]
139
+ sage: C.super_categories()
140
+ [Category of Cartesian products of topological spaces,
141
+ Category of connected topological spaces]
142
+ sage: C.axioms()
143
+ frozenset({'Connected'})
144
+ """
145
+ return [TopologicalSpaces().Connected()]
146
+
147
+ class Compact(CategoryWithAxiom):
148
+ """
149
+ The category of compact topological spaces.
150
+ """
151
+
152
+ class CartesianProducts(CartesianProductsCategory):
153
+ def extra_super_categories(self):
154
+ r"""
155
+ Implement the fact that a (finite) Cartesian product of compact
156
+ topological spaces is compact.
157
+
158
+ EXAMPLES::
159
+
160
+ sage: from sage.categories.topological_spaces import TopologicalSpaces
161
+ sage: C = TopologicalSpaces().Compact().CartesianProducts()
162
+ sage: C.extra_super_categories()
163
+ [Category of compact topological spaces]
164
+ sage: C.super_categories()
165
+ [Category of Cartesian products of topological spaces,
166
+ Category of compact topological spaces]
167
+ sage: C.axioms()
168
+ frozenset({'Compact'})
169
+ """
170
+ return [TopologicalSpaces().Compact()]