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
+ """
3
+ Places of function fields
4
+
5
+ The places of a function field correspond, one-to-one, to valuation rings of
6
+ the function field, each of which defines a discrete valuation for the elements
7
+ of the function field. "Finite" places are in one-to-one correspondence with
8
+ the prime ideals of the finite maximal order while places "at infinity" are in
9
+ one-to-one correspondence with the prime ideals of the infinite maximal order.
10
+
11
+ EXAMPLES:
12
+
13
+ All rational places of a function field can be computed::
14
+
15
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
16
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
17
+ sage: L.places() # needs sage.rings.function_field
18
+ [Place (1/x, 1/x^3*y^2 + 1/x),
19
+ Place (1/x, 1/x^3*y^2 + 1/x^2*y + 1),
20
+ Place (x, y)]
21
+
22
+ The residue field associated with a place is given as an extension of the
23
+ constant field::
24
+
25
+ sage: F.<x> = FunctionField(GF(2))
26
+ sage: O = F.maximal_order()
27
+ sage: p = O.ideal(x^2 + x + 1).place() # needs sage.libs.pari
28
+ sage: k, fr_k, to_k = p.residue_field() # needs sage.libs.pari sage.rings.function_field
29
+ sage: k # needs sage.libs.pari sage.rings.function_field
30
+ Finite Field in z2 of size 2^2
31
+
32
+ The homomorphisms are between the valuation ring and the residue field::
33
+
34
+ sage: fr_k # needs sage.libs.pari sage.rings.function_field
35
+ Ring morphism:
36
+ From: Finite Field in z2 of size 2^2
37
+ To: Valuation ring at Place (x^2 + x + 1)
38
+ sage: to_k # needs sage.libs.pari sage.rings.function_field
39
+ Ring morphism:
40
+ From: Valuation ring at Place (x^2 + x + 1)
41
+ To: Finite Field in z2 of size 2^2
42
+
43
+ AUTHORS:
44
+
45
+ - Kwankyu Lee (2017-04-30): initial version
46
+
47
+ - Brent Baccala (2019-12-20): function fields of characteristic zero
48
+ """
49
+
50
+ # ****************************************************************************
51
+ # Copyright (C) 2016-2022 Kwankyu Lee <ekwankyu@gmail.com>
52
+ # 2019 Brent Baccala
53
+ # 2021 Jonathan Kliem
54
+ #
55
+ # Distributed under the terms of the GNU General Public License (GPL)
56
+ # as published by the Free Software Foundation; either version 2 of
57
+ # the License, or (at your option) any later version.
58
+ # http://www.gnu.org/licenses/
59
+ # ****************************************************************************
60
+
61
+ from sage.structure.unique_representation import UniqueRepresentation
62
+ from sage.structure.parent import Parent
63
+ from sage.structure.element import Element
64
+ from sage.structure.richcmp import richcmp
65
+ from sage.categories.sets_cat import Sets
66
+
67
+
68
+ class FunctionFieldPlace(Element):
69
+ """
70
+ Places of function fields.
71
+
72
+ INPUT:
73
+
74
+ - ``parent`` -- place set of a function field
75
+
76
+ - ``prime`` -- prime ideal associated with the place
77
+
78
+ EXAMPLES::
79
+
80
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
81
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
82
+ sage: L.places_finite()[0] # needs sage.rings.function_field
83
+ Place (x, y)
84
+ """
85
+ def __init__(self, parent, prime):
86
+ """
87
+ Initialize the place.
88
+
89
+ TESTS::
90
+
91
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
92
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
93
+ sage: p = L.places_finite()[0] # needs sage.rings.function_field
94
+ sage: TestSuite(p).run() # needs sage.rings.function_field
95
+ """
96
+ Element.__init__(self, parent)
97
+
98
+ self._prime = prime
99
+
100
+ def __hash__(self):
101
+ """
102
+ Return the hash of the place.
103
+
104
+ EXAMPLES::
105
+
106
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
107
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
108
+ sage: p = L.places_finite()[0] # needs sage.rings.function_field
109
+ sage: {p: 1} # needs sage.rings.function_field
110
+ {Place (x, y): 1}
111
+ """
112
+ return hash((self.function_field(), self._prime))
113
+
114
+ def _repr_(self):
115
+ """
116
+ Return the string representation of the place.
117
+
118
+ EXAMPLES::
119
+
120
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
121
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.function_field
122
+ sage: p = L.places_finite()[0] # needs sage.rings.function_field
123
+ sage: p # needs sage.rings.function_field
124
+ Place (x, y)
125
+ """
126
+ try:
127
+ gens = self._prime.gens_two()
128
+ except AttributeError:
129
+ gens = self._prime.gens()
130
+ gens_str = ', '.join(repr(g) for g in gens)
131
+ return "Place ({})".format(gens_str)
132
+
133
+ def _latex_(self):
134
+ r"""
135
+ Return the LaTeX representation of the place.
136
+
137
+ EXAMPLES::
138
+
139
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
140
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y) # needs sage.rings.function_field
141
+ sage: p = L.places_finite()[0] # needs sage.rings.function_field
142
+ sage: latex(p) # needs sage.rings.function_field
143
+ \left(y\right)
144
+ """
145
+ return self._prime._latex_()
146
+
147
+ def _richcmp_(self, other, op):
148
+ """
149
+ Compare the place with ``other`` place.
150
+
151
+ EXAMPLES::
152
+
153
+ sage: # needs sage.rings.function_field
154
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
155
+ sage: L.<y> = K.extension(Y^3 + x + x^3*Y)
156
+ sage: p1, p2, p3 = L.places()[:3]
157
+ sage: p1 < p2
158
+ True
159
+ sage: p2 < p1
160
+ False
161
+ sage: p1 == p3
162
+ False
163
+ """
164
+ from sage.rings.function_field.order import FunctionFieldOrderInfinite
165
+
166
+ # effect that places at infinity are ordered first
167
+ s = not isinstance(self._prime.ring(), FunctionFieldOrderInfinite)
168
+ o = not isinstance(other._prime.ring(), FunctionFieldOrderInfinite)
169
+ return richcmp((s, self._prime), (o, other._prime), op)
170
+
171
+ def _acted_upon_(self, other, self_on_left):
172
+ """
173
+ Define integer multiplication upon the prime divisor
174
+ of the place on the left.
175
+
176
+ The output is a divisor.
177
+
178
+ EXAMPLES::
179
+
180
+ sage: # needs sage.rings.function_field
181
+ sage: K.<x> = FunctionField(GF(5)); R.<Y> = PolynomialRing(K)
182
+ sage: F.<y> = K.extension(Y^2 - x^3 - 1)
183
+ sage: O = F.maximal_order()
184
+ sage: I = O.ideal(x + 1, y)
185
+ sage: P = I.place()
186
+ sage: -3*P + 5*P
187
+ 2*Place (x + 1, y)
188
+ """
189
+ if self_on_left:
190
+ raise TypeError("only left multiplication by integers is allowed")
191
+ return other * self.divisor()
192
+
193
+ def _neg_(self):
194
+ """
195
+ Return the negative of the prime divisor of this place.
196
+
197
+ EXAMPLES::
198
+
199
+ sage: # needs sage.rings.function_field
200
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
201
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
202
+ sage: p1, p2, p3 = L.places()[:3]
203
+ sage: -p1 + p2
204
+ - Place (1/x, 1/x^3*y^2 + 1/x)
205
+ + Place (1/x, 1/x^3*y^2 + 1/x^2*y + 1)
206
+ """
207
+ from .divisor import divisor
208
+ return divisor(self.function_field(), {self: -1})
209
+
210
+ def _add_(self, other):
211
+ """
212
+ Return the divisor that is the sum of the place and ``other``.
213
+
214
+ EXAMPLES::
215
+
216
+ sage: # needs sage.rings.function_field
217
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
218
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
219
+ sage: p1, p2, p3 = L.places()[:3]
220
+ sage: p1 + p2 + p3
221
+ Place (1/x, 1/x^3*y^2 + 1/x)
222
+ + Place (1/x, 1/x^3*y^2 + 1/x^2*y + 1)
223
+ + Place (x, y)
224
+ """
225
+ from .divisor import prime_divisor
226
+ return prime_divisor(self.function_field(), self) + other
227
+
228
+ def _sub_(self, other):
229
+ """
230
+ Return the divisor that is this place minus ``other``.
231
+
232
+ EXAMPLES::
233
+
234
+ sage: # needs sage.rings.function_field
235
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
236
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
237
+ sage: p1, p2 = L.places()[:2]
238
+ sage: p1 - p2
239
+ Place (1/x, 1/x^3*y^2 + 1/x)
240
+ - Place (1/x, 1/x^3*y^2 + 1/x^2*y + 1)
241
+ """
242
+ from .divisor import prime_divisor
243
+ return prime_divisor(self.function_field(), self) - other
244
+
245
+ def __radd__(self, other):
246
+ """
247
+ Return the prime divisor of the place if ``other`` is zero.
248
+
249
+ This is only to support the ``sum`` function, that adds
250
+ the argument to initial (int) zero.
251
+
252
+ EXAMPLES::
253
+
254
+ sage: k.<a> = GF(2)
255
+ sage: K.<x> = FunctionField(k)
256
+ sage: sum(K.places_finite()) # needs sage.libs.pari sage.modules
257
+ Place (x) + Place (x + 1)
258
+
259
+ Note that this does not work, as wanted::
260
+
261
+ sage: 0 + K.place_infinite()
262
+ Traceback (most recent call last):
263
+ ...
264
+ TypeError: unsupported operand parent(s) for +: ...
265
+
266
+ The reason is that the ``0`` is a Sage integer, for which
267
+ the coercion system applies.
268
+ """
269
+ if other == 0:
270
+ from .divisor import prime_divisor
271
+ return prime_divisor(self.function_field(), self)
272
+ raise NotImplementedError
273
+
274
+ def function_field(self):
275
+ """
276
+ Return the function field to which the place belongs.
277
+
278
+ EXAMPLES::
279
+
280
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
281
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.function_field
282
+ sage: p = L.places()[0] # needs sage.rings.function_field
283
+ sage: p.function_field() == L # needs sage.rings.function_field
284
+ True
285
+ """
286
+ return self.parent()._field
287
+
288
+ def prime_ideal(self):
289
+ """
290
+ Return the prime ideal associated with the place.
291
+
292
+ EXAMPLES::
293
+
294
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
295
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.function_field
296
+ sage: p = L.places()[0] # needs sage.rings.function_field
297
+ sage: p.prime_ideal() # needs sage.rings.function_field
298
+ Ideal (1/x^3*y^2 + 1/x) of Maximal infinite order of Function field
299
+ in y defined by y^3 + x^3*y + x
300
+ """
301
+ return self._prime
302
+
303
+ def divisor(self, multiplicity=1):
304
+ """
305
+ Return the prime divisor corresponding to the place.
306
+
307
+ EXAMPLES::
308
+
309
+ sage: # needs sage.rings.function_field
310
+ sage: K.<x> = FunctionField(GF(5)); R.<Y> = PolynomialRing(K)
311
+ sage: F.<y> = K.extension(Y^2 - x^3 - 1)
312
+ sage: O = F.maximal_order()
313
+ sage: I = O.ideal(x + 1, y)
314
+ sage: P = I.place()
315
+ sage: P.divisor()
316
+ Place (x + 1, y)
317
+ """
318
+ from .divisor import prime_divisor
319
+ return prime_divisor(self.function_field(), self, multiplicity)
320
+
321
+
322
+ class PlaceSet(UniqueRepresentation, Parent):
323
+ """
324
+ Sets of Places of function fields.
325
+
326
+ INPUT:
327
+
328
+ - ``field`` -- function field
329
+
330
+ EXAMPLES::
331
+
332
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
333
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.function_field
334
+ sage: L.place_set() # needs sage.rings.function_field
335
+ Set of places of Function field in y defined by y^3 + x^3*y + x
336
+ """
337
+ Element = FunctionFieldPlace
338
+
339
+ def __init__(self, field):
340
+ """
341
+ Initialize the set of places of the function ``field``.
342
+
343
+ TESTS::
344
+
345
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
346
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.function_field
347
+ sage: places = L.place_set() # needs sage.rings.function_field
348
+ sage: TestSuite(places).run() # needs sage.rings.function_field
349
+ """
350
+ self.Element = field._place_class
351
+ Parent.__init__(self, category=Sets().Infinite())
352
+
353
+ self._field = field
354
+
355
+ def _repr_(self):
356
+ """
357
+ Return the string representation of the place.
358
+
359
+ EXAMPLES::
360
+
361
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
362
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x) # needs sage.rings.function_field
363
+ sage: L.place_set() # needs sage.rings.function_field
364
+ Set of places of Function field in y defined by y^3 + x^3*y + x
365
+ """
366
+ return "Set of places of {}".format(self._field)
367
+
368
+ def _element_constructor_(self, x):
369
+ """
370
+ Create a place from ``x`` if ``x`` is a prime ideal.
371
+
372
+ EXAMPLES::
373
+
374
+ sage: # needs sage.rings.function_field
375
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
376
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
377
+ sage: places = L.place_set()
378
+ sage: O = L.maximal_order()
379
+ sage: places(O.ideal(x, y))
380
+ Place (x, y)
381
+ """
382
+ from .ideal import FunctionFieldIdeal
383
+
384
+ if isinstance(x, FunctionFieldIdeal) and x.is_prime():
385
+ return self.element_class(self, x)
386
+ else:
387
+ raise ValueError("not a prime ideal")
388
+
389
+ def _an_element_(self):
390
+ """
391
+ Return a place.
392
+
393
+ EXAMPLES::
394
+
395
+ sage: # needs sage.rings.function_field
396
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
397
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
398
+ sage: places = L.place_set()
399
+ sage: places.an_element() # random
400
+ Ideal (x) of Maximal order of Rational function field in x
401
+ over Finite Field of size 2
402
+ """
403
+ d = 1
404
+ while True:
405
+ try:
406
+ p = self._field.places(d).pop()
407
+ except IndexError:
408
+ d = d + 1
409
+ else:
410
+ break
411
+ return p
412
+
413
+ def function_field(self):
414
+ """
415
+ Return the function field to which this place set belongs.
416
+
417
+ EXAMPLES::
418
+
419
+ sage: # needs sage.rings.function_field
420
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
421
+ sage: L.<y> = K.extension(Y^3 + x^3*Y + x)
422
+ sage: PS = L.place_set()
423
+ sage: PS.function_field() == L
424
+ True
425
+ """
426
+ return self._field
@@ -0,0 +1,181 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ # sage.doctest: needs sage.rings.finite_rings (because all doctests use finite fields)
3
+ """
4
+ Places of function fields: rational
5
+ """
6
+
7
+ # ****************************************************************************
8
+ # Copyright (C) 2016-2022 Kwankyu Lee <ekwankyu@gmail.com>
9
+ # 2019 Brent Baccala
10
+ # 2021 Jonathan Kliem
11
+ #
12
+ # Distributed under the terms of the GNU General Public License (GPL)
13
+ # as published by the Free Software Foundation; either version 2 of
14
+ # the License, or (at your option) any later version.
15
+ # http://www.gnu.org/licenses/
16
+ # ****************************************************************************
17
+
18
+ from .place import FunctionFieldPlace
19
+
20
+
21
+ class FunctionFieldPlace_rational(FunctionFieldPlace):
22
+ """
23
+ Places of rational function fields.
24
+ """
25
+ def degree(self):
26
+ """
27
+ Return the degree of the place.
28
+
29
+ EXAMPLES::
30
+
31
+ sage: F.<x> = FunctionField(GF(2))
32
+ sage: O = F.maximal_order()
33
+ sage: i = O.ideal(x^2 + x + 1)
34
+ sage: p = i.place()
35
+ sage: p.degree()
36
+ 2
37
+ """
38
+ if self.is_infinite_place():
39
+ return 1
40
+ else:
41
+ return self._prime.gen().numerator().degree()
42
+
43
+ def is_infinite_place(self):
44
+ """
45
+ Return ``True`` if the place is at infinite.
46
+
47
+ EXAMPLES::
48
+
49
+ sage: F.<x> = FunctionField(GF(2))
50
+ sage: F.places()
51
+ [Place (1/x), Place (x), Place (x + 1)]
52
+ sage: [p.is_infinite_place() for p in F.places()]
53
+ [True, False, False]
54
+ """
55
+ F = self.function_field()
56
+ return self.prime_ideal().ring() == F.maximal_order_infinite()
57
+
58
+ def local_uniformizer(self):
59
+ """
60
+ Return a local uniformizer of the place.
61
+
62
+ EXAMPLES::
63
+
64
+ sage: F.<x> = FunctionField(GF(2))
65
+ sage: F.places()
66
+ [Place (1/x), Place (x), Place (x + 1)]
67
+ sage: [p.local_uniformizer() for p in F.places()]
68
+ [1/x, x, x + 1]
69
+ """
70
+ return self.prime_ideal().gen()
71
+
72
+ def residue_field(self, name=None):
73
+ """
74
+ Return the residue field of the place.
75
+
76
+ EXAMPLES::
77
+
78
+ sage: F.<x> = FunctionField(GF(2))
79
+ sage: O = F.maximal_order()
80
+ sage: p = O.ideal(x^2 + x + 1).place()
81
+ sage: k, fr_k, to_k = p.residue_field() # needs sage.rings.function_field
82
+ sage: k # needs sage.rings.function_field
83
+ Finite Field in z2 of size 2^2
84
+ sage: fr_k # needs sage.rings.function_field
85
+ Ring morphism:
86
+ From: Finite Field in z2 of size 2^2
87
+ To: Valuation ring at Place (x^2 + x + 1)
88
+ sage: to_k # needs sage.rings.function_field
89
+ Ring morphism:
90
+ From: Valuation ring at Place (x^2 + x + 1)
91
+ To: Finite Field in z2 of size 2^2
92
+ """
93
+ return self.valuation_ring().residue_field(name=name)
94
+
95
+ def _residue_field(self, name=None):
96
+ """
97
+ Return the residue field of the place along with the maps from
98
+ and to it.
99
+
100
+ INPUT:
101
+
102
+ - ``name`` -- string; name of the generator of the residue field
103
+
104
+ EXAMPLES::
105
+
106
+ sage: # needs sage.modules
107
+ sage: F.<x> = FunctionField(GF(2))
108
+ sage: O = F.maximal_order()
109
+ sage: i = O.ideal(x^2 + x + 1)
110
+ sage: p = i.place()
111
+ sage: R, fr, to = p._residue_field()
112
+ sage: R
113
+ Finite Field in z2 of size 2^2
114
+ sage: [fr(e) for e in R.list()]
115
+ [0, x, x + 1, 1]
116
+ sage: to(x*(x+1)) == to(x) * to(x+1)
117
+ True
118
+ """
119
+ F = self.function_field()
120
+ prime = self.prime_ideal()
121
+
122
+ if self.is_infinite_place():
123
+ K = F.constant_base_field()
124
+
125
+ def from_K(e):
126
+ return F(e)
127
+
128
+ def to_K(f):
129
+ n = f.numerator()
130
+ d = f.denominator()
131
+
132
+ n_deg = n.degree()
133
+ d_deg = d.degree()
134
+
135
+ if n_deg < d_deg:
136
+ return K(0)
137
+ elif n_deg == d_deg:
138
+ return n.lc() / d.lc()
139
+ else:
140
+ raise TypeError("not in the valuation ring")
141
+ else:
142
+ O = F.maximal_order()
143
+ K, from_K, _to_K = O._residue_field(prime, name=name)
144
+
145
+ def to_K(f):
146
+ if f in O: # f.denominator() is 1
147
+ return _to_K(f.numerator())
148
+ else:
149
+ d = F(f.denominator())
150
+ n = d * f
151
+
152
+ nv = prime.valuation(O.ideal(n))
153
+ dv = prime.valuation(O.ideal(d))
154
+
155
+ if nv > dv:
156
+ return K(0)
157
+ elif dv > nv:
158
+ raise TypeError("not in the valuation ring")
159
+
160
+ s = ~prime.gen()
161
+ rd = d * s**dv # in O but not in prime
162
+ rn = n * s**nv # in O but not in prime
163
+ return to_K(rn) / to_K(rd)
164
+
165
+ return K, from_K, to_K
166
+
167
+ def valuation_ring(self):
168
+ """
169
+ Return the valuation ring at the place.
170
+
171
+ EXAMPLES::
172
+
173
+ sage: K.<x> = FunctionField(GF(2)); _.<Y> = K[]
174
+ sage: L.<y> = K.extension(Y^2 + Y + x + 1/x) # needs sage.rings.function_field
175
+ sage: p = L.places_finite()[0] # needs sage.rings.function_field
176
+ sage: p.valuation_ring() # needs sage.rings.function_field
177
+ Valuation ring at Place (x, x*y)
178
+ """
179
+ from .valuation_ring import FunctionFieldValuationRing
180
+
181
+ return FunctionFieldValuationRing(self.function_field(), self)