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,576 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Orders of function fields: rational
4
+ """
5
+
6
+ # ****************************************************************************
7
+ # Copyright (C) 2010 William Stein <wstein@gmail.com>
8
+ # 2011 Maarten Derickx <m.derickx.student@gmail.com>
9
+ # 2011 Julian Rueth <julian.rueth@gmail.com>
10
+ # 2017-2020 Kwankyu Lee
11
+ # 2019 Brent Baccala
12
+ #
13
+ # Distributed under the terms of the GNU General Public License (GPL)
14
+ # as published by the Free Software Foundation; either version 2 of
15
+ # the License, or (at your option) any later version.
16
+ # https://www.gnu.org/licenses/
17
+ # ****************************************************************************
18
+
19
+ import sage.rings.abc
20
+
21
+ from sage.arith.functions import lcm
22
+ from sage.arith.misc import GCD as gcd
23
+ from sage.categories.euclidean_domains import EuclideanDomains
24
+ from sage.categories.principal_ideal_domains import PrincipalIdealDomains
25
+ from sage.rings.number_field.number_field_base import NumberField
26
+
27
+ from .ideal import FunctionFieldIdeal
28
+ from .ideal_rational import FunctionFieldIdeal_rational, FunctionFieldIdealInfinite_rational
29
+ from .order import FunctionFieldMaximalOrder, FunctionFieldMaximalOrderInfinite
30
+
31
+
32
+ class FunctionFieldMaximalOrder_rational(FunctionFieldMaximalOrder):
33
+ """
34
+ Maximal orders of rational function fields.
35
+
36
+ INPUT:
37
+
38
+ - ``field`` -- a function field
39
+
40
+ EXAMPLES::
41
+
42
+ sage: K.<t> = FunctionField(GF(19)); K
43
+ Rational function field in t over Finite Field of size 19
44
+ sage: R = K.maximal_order(); R
45
+ Maximal order of Rational function field in t over Finite Field of size 19
46
+ """
47
+ def __init__(self, field) -> None:
48
+ """
49
+ Initialize.
50
+
51
+ TESTS::
52
+
53
+ sage: K.<t> = FunctionField(QQ)
54
+ sage: O = K.maximal_order()
55
+ sage: TestSuite(O).run(skip='_test_gcd_vs_xgcd')
56
+ """
57
+ FunctionFieldMaximalOrder.__init__(self, field, ideal_class=FunctionFieldIdeal_rational,
58
+ category=EuclideanDomains())
59
+
60
+ self._populate_coercion_lists_(coerce_list=[field._ring])
61
+
62
+ self._ring = field._ring
63
+ self._gen = self(self._ring.gen()) # generator as a ring
64
+ self._basis = (self.one(),) # basis as a module over itself
65
+
66
+ def _element_constructor_(self, f):
67
+ """
68
+ Make ``f`` a function field element of this order.
69
+
70
+ EXAMPLES::
71
+
72
+ sage: K.<y> = FunctionField(QQ)
73
+ sage: O = K.maximal_order()
74
+ sage: O._element_constructor_(y)
75
+ y
76
+
77
+ sage: O._element_constructor_(1/y)
78
+ Traceback (most recent call last):
79
+ ...
80
+ TypeError: 1/y is not an element of Maximal order of
81
+ Rational function field in y over Rational Field
82
+ """
83
+ F = self.function_field()
84
+ try:
85
+ f = F(f)
86
+ except TypeError:
87
+ raise TypeError("unable to convert to an element of {}".format(F))
88
+
89
+ if f.denominator() not in self.function_field().constant_base_field():
90
+ raise TypeError("%r is not an element of %r" % (f, self))
91
+
92
+ return f
93
+
94
+ def ideal_with_gens_over_base(self, gens):
95
+ """
96
+ Return the fractional ideal with generators ``gens``.
97
+
98
+ INPUT:
99
+
100
+ - ``gens`` -- elements of the function field
101
+
102
+ EXAMPLES::
103
+
104
+ sage: # needs sage.rings.function_field
105
+ sage: K.<x> = FunctionField(QQ); R.<y> = K[]
106
+ sage: L.<y> = K.extension(y^2 - x^3 - 1)
107
+ sage: O = L.equation_order()
108
+ sage: O.ideal_with_gens_over_base([x^3 + 1, -y])
109
+ Ideal (x^3 + 1, -y) of Order in Function field in y defined by y^2 - x^3 - 1
110
+ """
111
+ return self.ideal(gens)
112
+
113
+ def _residue_field(self, ideal, name=None):
114
+ """
115
+ Return a field isomorphic to the residue field at the prime ideal.
116
+
117
+ The residue field is by definition `k[x]/q` where `q` is the
118
+ irreducible polynomial generating the prime ideal and `k` is
119
+ the constant base field.
120
+
121
+ INPUT:
122
+
123
+ - ``ideal`` -- prime ideal of the order
124
+
125
+ - ``name`` -- string; name of the generator of the residue field
126
+
127
+ OUTPUT:
128
+
129
+ - a field isomorphic to the residue field
130
+
131
+ - a morphism from the field to `k[x]` via the residue field
132
+
133
+ - a morphism from `k[x]` to the field via the residue field
134
+
135
+ EXAMPLES::
136
+
137
+ sage: # needs sage.modules sage.rings.finite_rings
138
+ sage: F.<x> = FunctionField(GF(2))
139
+ sage: O = F.maximal_order()
140
+ sage: I = O.ideal(x^2 + x + 1)
141
+ sage: R, fr_R, to_R = O._residue_field(I)
142
+ sage: R
143
+ Finite Field in z2 of size 2^2
144
+ sage: [to_R(fr_R(e)) == e for e in R]
145
+ [True, True, True, True]
146
+ sage: [to_R(fr_R(e)).parent() is R for e in R]
147
+ [True, True, True, True]
148
+ sage: e1, e2 = fr_R(R.random_element()), fr_R(R.random_element())
149
+ sage: to_R(e1 * e2) == to_R(e1) * to_R(e2)
150
+ True
151
+ sage: to_R(e1 + e2) == to_R(e1) + to_R(e2)
152
+ True
153
+ sage: to_R(e1).parent() is R
154
+ True
155
+ sage: to_R(e2).parent() is R
156
+ True
157
+
158
+ sage: # needs sage.modules sage.rings.finite_rings
159
+ sage: F.<x> = FunctionField(GF(2))
160
+ sage: O = F.maximal_order()
161
+ sage: I = O.ideal(x + 1)
162
+ sage: R, fr_R, to_R = O._residue_field(I)
163
+ sage: R
164
+ Finite Field of size 2
165
+ sage: [to_R(fr_R(e)) == e for e in R]
166
+ [True, True]
167
+ sage: [to_R(fr_R(e)).parent() is R for e in R]
168
+ [True, True]
169
+ sage: e1, e2 = fr_R(R.random_element()), fr_R(R.random_element())
170
+ sage: to_R(e1 * e2) == to_R(e1) * to_R(e2)
171
+ True
172
+ sage: to_R(e1 + e2) == to_R(e1) + to_R(e2)
173
+ True
174
+ sage: to_R(e1).parent() is R
175
+ True
176
+ sage: to_R(e2).parent() is R
177
+ True
178
+
179
+ sage: # needs sage.modules sage.rings.number_field
180
+ sage: F.<x> = FunctionField(QQ)
181
+ sage: O = F.maximal_order()
182
+ sage: I = O.ideal(x^2 + x + 1)
183
+ sage: R, fr_R, to_R = O._residue_field(I)
184
+ sage: R
185
+ Number Field in a with defining polynomial x^2 + x + 1
186
+ sage: e1, e2 = fr_R(R.random_element()), fr_R(R.random_element())
187
+ sage: to_R(e1 * e2) == to_R(e1) * to_R(e2)
188
+ True
189
+ sage: to_R(e1 + e2) == to_R(e1) + to_R(e2)
190
+ True
191
+ sage: to_R(e1).parent() is R
192
+ True
193
+ sage: to_R(e2).parent() is R
194
+ True
195
+
196
+ sage: F.<x> = FunctionField(QQ)
197
+ sage: O = F.maximal_order()
198
+ sage: I = O.ideal(x + 1)
199
+ sage: R, fr_R, to_R = O._residue_field(I)
200
+ sage: R
201
+ Rational Field
202
+ sage: e1, e2 = fr_R(R.random_element()), fr_R(R.random_element())
203
+ sage: to_R(e1 * e2) == to_R(e1) * to_R(e2)
204
+ True
205
+ sage: to_R(e1 + e2) == to_R(e1) + to_R(e2)
206
+ True
207
+ sage: to_R(e1).parent() is R
208
+ True
209
+ sage: to_R(e2).parent() is R
210
+ True
211
+ """
212
+ F = self.function_field()
213
+ K = F.constant_base_field()
214
+
215
+ q = ideal.gen().element().numerator()
216
+
217
+ if F.is_global():
218
+ R, _from_R, _to_R = self._residue_field_global(q, name=name)
219
+ elif isinstance(K, (NumberField, sage.rings.abc.AlgebraicField)):
220
+ if name is None:
221
+ name = 'a'
222
+ if q.degree() == 1:
223
+ R = K
224
+ _from_R = lambda e: e
225
+ _to_R = lambda e: R(e % q)
226
+ else:
227
+ R = K.extension(q, names=name)
228
+ _from_R = lambda e: self._ring(list(R(e)))
229
+ _to_R = lambda e: (e % q)(R.gen(0))
230
+ else:
231
+ raise NotImplementedError
232
+
233
+ def from_R(e):
234
+ return F(_from_R(e))
235
+
236
+ def to_R(f):
237
+ return _to_R(f.numerator())
238
+
239
+ return R, from_R, to_R
240
+
241
+ def _residue_field_global(self, q, name=None):
242
+ """
243
+ Return a finite field isomorphic to the residue field at q.
244
+
245
+ This method assumes a global rational function field, that is,
246
+ the constant base field is a finite field.
247
+
248
+ INPUT:
249
+
250
+ - ``q`` -- irreducible polynomial
251
+
252
+ - ``name`` -- string; name of the generator of the extension field
253
+
254
+ OUTPUT:
255
+
256
+ - a finite field
257
+
258
+ - a function that outputs a polynomial lifting a finite field element
259
+
260
+ - a function that outputs a finite field element for a polynomial
261
+
262
+ The residue field is by definition `k[x]/q` where `k` is the base field.
263
+
264
+ EXAMPLES::
265
+
266
+ sage: # needs sage.rings.finite_rings
267
+ sage: k.<a> = GF(4)
268
+ sage: F.<x> = FunctionField(k)
269
+ sage: O = F.maximal_order()
270
+ sage: O._ring
271
+ Univariate Polynomial Ring in x over Finite Field in a of size 2^2
272
+ sage: f = x^3 + x + 1
273
+ sage: _f = f.numerator()
274
+ sage: _f.is_irreducible()
275
+ True
276
+ sage: K, fr_K, to_K = O._residue_field_global(_f) # needs sage.modules
277
+ sage: K # needs sage.modules
278
+ Finite Field in z6 of size 2^6
279
+ sage: all(to_K(fr_K(e)) == e for e in K) # needs sage.modules
280
+ True
281
+
282
+ sage: # needs sage.rings.finite_rings
283
+ sage: k.<a> = GF(2)
284
+ sage: F.<x> = FunctionField(k)
285
+ sage: O = F.maximal_order()
286
+ sage: O._ring # needs sage.libs.ntl
287
+ Univariate Polynomial Ring in x over Finite Field of size 2 (using GF2X)
288
+ sage: f = x^3 + x + 1
289
+ sage: _f = f.numerator()
290
+ sage: _f.is_irreducible()
291
+ True
292
+ sage: K, fr_K, to_K = O._residue_field_global(_f) # needs sage.modules
293
+ sage: all(to_K(fr_K(e)) == e for e in K) # needs sage.modules
294
+ True
295
+ """
296
+ # polynomial ring over the base field
297
+ R = self._ring
298
+
299
+ # base field of extension degree r over the prime field
300
+ k = R.base_ring()
301
+ a = k.gen()
302
+ r = k.degree()
303
+
304
+ # extend the base field to a field of degree r*s over the
305
+ # prime field
306
+ s = q.degree()
307
+ K, sigma = k.extension(s, map=True, name=name)
308
+
309
+ # find a root beta in K satisfying the irreducible q
310
+ S = K['X']
311
+ beta = S([sigma(c) for c in q.list()]).roots()[0][0]
312
+
313
+ # V is a vector space over the prime subfield of k of degree r*s
314
+ V = K.vector_space(map=False)
315
+
316
+ w = K.one()
317
+ beta_pow = []
318
+ for i in range(s):
319
+ beta_pow.append(w)
320
+ w *= beta
321
+
322
+ w = K.one()
323
+ sigma_a = sigma(a)
324
+ sigma_a_pow = []
325
+ for i in range(r):
326
+ sigma_a_pow.append(w)
327
+ w *= sigma_a
328
+
329
+ basis = [V(sap * bp) for bp in beta_pow for sap in sigma_a_pow]
330
+ W = V.span_of_basis(basis)
331
+
332
+ def to_K(f):
333
+ coeffs = (f % q).list()
334
+ return sum((sigma(c) * beta_pow[i] for i, c in enumerate(coeffs)), K.zero())
335
+
336
+ if r == 1: # take care of the prime field case
337
+ def fr_K(g):
338
+ co = W.coordinates(V(g), check=False)
339
+ return R([k(co[j]) for j in range(s)])
340
+ else:
341
+ def fr_K(g):
342
+ co = W.coordinates(V(g), check=False)
343
+ return R([k(co[i:i + r]) for i in range(0, r * s, r)])
344
+
345
+ return K, fr_K, to_K
346
+
347
+ def basis(self) -> tuple:
348
+ """
349
+ Return the basis of the order as a module over the polynomial ring.
350
+
351
+ This is the tuple (1,).
352
+
353
+ EXAMPLES::
354
+
355
+ sage: K.<t> = FunctionField(GF(19))
356
+ sage: O = K.maximal_order()
357
+ sage: O.basis()
358
+ (1,)
359
+ """
360
+ return self._basis
361
+
362
+ def gen(self, n=0):
363
+ """
364
+ Return the ``n``-th generator of the order.
365
+
366
+ Since there is only one generator ``n`` must be 0.
367
+
368
+ EXAMPLES::
369
+
370
+ sage: O = FunctionField(QQ,'y').maximal_order()
371
+ sage: O.gen()
372
+ y
373
+
374
+ TESTS::
375
+
376
+ sage: O.gen(1)
377
+ Traceback (most recent call last):
378
+ ...
379
+ IndexError: there is only one generator
380
+ """
381
+ if n != 0:
382
+ raise IndexError("there is only one generator")
383
+ return self._gen
384
+
385
+ def ngens(self) -> int:
386
+ """
387
+ Return the number of generators of the order.
388
+
389
+ This is 1.
390
+
391
+ EXAMPLES::
392
+
393
+ sage: FunctionField(QQ,'y').maximal_order().ngens()
394
+ 1
395
+ """
396
+ return 1
397
+
398
+ def ideal(self, *gens):
399
+ """
400
+ Return the fractional ideal generated by ``gens``.
401
+
402
+ INPUT:
403
+
404
+ - ``gens`` -- elements of the function field
405
+
406
+ EXAMPLES::
407
+
408
+ sage: K.<x> = FunctionField(QQ)
409
+ sage: O = K.maximal_order()
410
+ sage: O.ideal(x)
411
+ Ideal (x) of Maximal order of Rational function field in x over Rational Field
412
+ sage: O.ideal([x, 1/x]) == O.ideal(x, 1/x) # multiple generators may be given as a list
413
+ True
414
+ sage: O.ideal(x^3 + 1, x^3 + 6)
415
+ Ideal (1) of Maximal order of Rational function field in x over Rational Field
416
+ sage: I = O.ideal((x^2+1)*(x^3+1), (x^3+6)*(x^2+1)); I
417
+ Ideal (x^2 + 1) of Maximal order of Rational function field in x over Rational Field
418
+ sage: O.ideal(I)
419
+ Ideal (x^2 + 1) of Maximal order of Rational function field in x over Rational Field
420
+ """
421
+ if len(gens) == 1:
422
+ gens = gens[0]
423
+ if not isinstance(gens, (list, tuple)):
424
+ if isinstance(gens, FunctionFieldIdeal):
425
+ gens = gens.gens()
426
+ else:
427
+ gens = (gens,)
428
+ K = self.function_field()
429
+ gens = [K(e) for e in gens if e != 0]
430
+ if not gens:
431
+ gen = K.zero()
432
+ else:
433
+ d = lcm([c.denominator() for c in gens]).monic()
434
+ g = gcd([(d * c).numerator() for c in gens]).monic()
435
+ gen = K(g / d)
436
+
437
+ return self.ideal_monoid().element_class(self, gen)
438
+
439
+
440
+ class FunctionFieldMaximalOrderInfinite_rational(FunctionFieldMaximalOrderInfinite):
441
+ """
442
+ Maximal infinite orders of rational function fields.
443
+
444
+ INPUT:
445
+
446
+ - ``field`` -- a rational function field
447
+
448
+ EXAMPLES::
449
+
450
+ sage: K.<t> = FunctionField(GF(19)); K
451
+ Rational function field in t over Finite Field of size 19
452
+ sage: R = K.maximal_order_infinite(); R
453
+ Maximal infinite order of Rational function field in t over Finite Field of size 19
454
+ """
455
+ def __init__(self, field, category=None) -> None:
456
+ """
457
+ Initialize.
458
+
459
+ TESTS::
460
+
461
+ sage: K.<t> = FunctionField(GF(19))
462
+ sage: O = K.maximal_order_infinite()
463
+ sage: TestSuite(O).run(skip='_test_gcd_vs_xgcd')
464
+
465
+ sage: K.<t> = FunctionField(QQ)
466
+ sage: O = K.maximal_order_infinite()
467
+ sage: TestSuite(O).run(skip='_test_gcd_vs_xgcd') # needs sage.rings.real_interval_field
468
+ """
469
+ FunctionFieldMaximalOrderInfinite.__init__(self, field, ideal_class=FunctionFieldIdealInfinite_rational,
470
+ category=PrincipalIdealDomains().or_subcategory(category))
471
+ self._populate_coercion_lists_(coerce_list=[field.constant_base_field()])
472
+
473
+ def _element_constructor_(self, f):
474
+ """
475
+ Make ``f`` an element of this order.
476
+
477
+ EXAMPLES::
478
+
479
+ sage: K.<y> = FunctionField(GF(7))
480
+ sage: O = K.maximal_order_infinite()
481
+ sage: O._element_constructor_(1/y)
482
+ 1/y
483
+
484
+ sage: O._element_constructor_(y)
485
+ Traceback (most recent call last):
486
+ ...
487
+ TypeError: y is not an element of Maximal infinite order of
488
+ Rational function field in y over Finite Field of size 7
489
+ """
490
+ F = self.function_field()
491
+ try:
492
+ f = F(f)
493
+ except TypeError:
494
+ raise TypeError("unable to convert to an element of {}".format(F))
495
+
496
+ if f.denominator().degree() < f.numerator().degree():
497
+ raise TypeError("{} is not an element of {}".format(f, self))
498
+
499
+ return f
500
+
501
+ def basis(self) -> tuple:
502
+ """
503
+ Return the basis of the maximal infinite order as a module over itself.
504
+
505
+ EXAMPLES::
506
+
507
+ sage: K.<t> = FunctionField(GF(19))
508
+ sage: O = K.maximal_order_infinite()
509
+ sage: O.basis()
510
+ (1,)
511
+
512
+ sage: K.<t> = FunctionField(QQ)
513
+ sage: O = K.maximal_order_infinite()
514
+ sage: O.basis()
515
+ (1,)
516
+ """
517
+ return (1,)
518
+
519
+ def prime_ideal(self):
520
+ """
521
+ Return the unique prime ideal of the order.
522
+
523
+ EXAMPLES::
524
+
525
+ sage: K.<t> = FunctionField(GF(19))
526
+ sage: O = K.maximal_order_infinite()
527
+ sage: O.prime_ideal()
528
+ Ideal (1/t) of Maximal infinite order of Rational function field in t
529
+ over Finite Field of size 19
530
+ """
531
+ return self.ideal(1 / self.function_field().gen())
532
+
533
+ def ideal(self, *gens):
534
+ """
535
+ Return the fractional ideal generated by ``gens``.
536
+
537
+ INPUT:
538
+
539
+ - ``gens`` -- elements of the function field
540
+
541
+ EXAMPLES::
542
+
543
+ sage: K.<x> = FunctionField(QQ)
544
+ sage: O = K.maximal_order_infinite()
545
+ sage: O.ideal(x)
546
+ Ideal (x) of Maximal infinite order of Rational function field in x
547
+ over Rational Field
548
+ sage: O.ideal([x, 1/x]) == O.ideal(x ,1/x) # multiple generators may be given as a list
549
+ True
550
+ sage: O.ideal(x^3 + 1, x^3 + 6)
551
+ Ideal (x^3) of Maximal infinite order of Rational function field in x
552
+ over Rational Field
553
+ sage: I = O.ideal((x^2+1)*(x^3+1), (x^3+6)*(x^2+1)); I
554
+ Ideal (x^5) of Maximal infinite order of Rational function field in x
555
+ over Rational Field
556
+ sage: O.ideal(I)
557
+ Ideal (x^5) of Maximal infinite order of Rational function field in x
558
+ over Rational Field
559
+ """
560
+ if len(gens) == 1:
561
+ gens = gens[0]
562
+ if not isinstance(gens, (list, tuple)):
563
+ if isinstance(gens, FunctionFieldIdeal):
564
+ gens = gens.gens()
565
+ else:
566
+ gens = (gens,)
567
+ K = self.function_field()
568
+ gens = [K(g) for g in gens]
569
+ try:
570
+ d = max(g.numerator().degree() - g.denominator().degree()
571
+ for g in gens if g != 0)
572
+ gen = K.gen() ** d
573
+ except ValueError: # all gens are zero
574
+ gen = K.zero()
575
+
576
+ return self.ideal_monoid().element_class(self, gen)