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,586 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ # sage.doctest: needs sage.modules (because __init__ constructs a vector space)
3
+ r"""
4
+ Orders of function fields: basis
5
+ """
6
+
7
+ # ****************************************************************************
8
+ # Copyright (C) 2010 William Stein <wstein@gmail.com>
9
+ # 2011 Maarten Derickx <m.derickx.student@gmail.com>
10
+ # 2011 Julian Rueth <julian.rueth@gmail.com>
11
+ # 2017-2020 Kwankyu Lee
12
+ # 2019 Brent Baccala
13
+ #
14
+ # Distributed under the terms of the GNU General Public License (GPL)
15
+ # as published by the Free Software Foundation; either version 2 of
16
+ # the License, or (at your option) any later version.
17
+ # http://www.gnu.org/licenses/
18
+ # ****************************************************************************
19
+
20
+ from .ideal import FunctionFieldIdeal, FunctionFieldIdeal_module, FunctionFieldIdealInfinite_module
21
+ from .order import FunctionFieldOrder, FunctionFieldOrderInfinite
22
+
23
+
24
+ class FunctionFieldOrder_basis(FunctionFieldOrder):
25
+ """
26
+ Order given by a basis over the maximal order of the base field.
27
+
28
+ INPUT:
29
+
30
+ - ``basis`` -- list of elements of the function field
31
+
32
+ - ``check`` -- boolean (default: ``True``); if ``True``, check whether the
33
+ module that ``basis`` generates forms an order
34
+
35
+ EXAMPLES::
36
+
37
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
38
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1) # needs sage.rings.function_field
39
+ sage: O = L.equation_order(); O # needs sage.rings.function_field
40
+ Order in Function field in y defined by y^4 + x*y + 4*x + 1
41
+
42
+ The basis only defines an order if the module it generates is closed under
43
+ multiplication and contains the identity element::
44
+
45
+ sage: K.<x> = FunctionField(QQ)
46
+ sage: R.<y> = K[]
47
+ sage: L.<y> = K.extension(y^5 - (x^3 + 2*x*y + 1/x)) # needs sage.rings.function_field
48
+ sage: y.is_integral() # needs sage.rings.function_field
49
+ False
50
+ sage: L.order(y) # needs sage.rings.function_field
51
+ Traceback (most recent call last):
52
+ ...
53
+ ValueError: the module generated by basis (1, y, y^2, y^3, y^4)
54
+ must be closed under multiplication
55
+
56
+ The basis also has to be linearly independent and of the same rank as the
57
+ degree of the function field of its elements (only checked when ``check``
58
+ is ``True``)::
59
+
60
+ sage: # needs sage.rings.function_field
61
+ sage: L.order(L(x))
62
+ Traceback (most recent call last):
63
+ ...
64
+ ValueError: basis (1, x, x^2, x^3, x^4) is not linearly independent
65
+ sage: from sage.rings.function_field.order_basis import FunctionFieldOrder_basis
66
+ sage: FunctionFieldOrder_basis((y,y,y^3,y^4,y^5))
67
+ Traceback (most recent call last):
68
+ ...
69
+ ValueError: basis (y, y, y^3, y^4, 2*x*y + (x^4 + 1)/x) is not linearly independent
70
+ """
71
+ def __init__(self, basis, check=True):
72
+ """
73
+ Initialize.
74
+
75
+ TESTS::
76
+
77
+ sage: # needs sage.rings.function_field
78
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
79
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1)
80
+ sage: O = L.equation_order()
81
+ sage: TestSuite(O).run()
82
+ """
83
+ if len(basis) == 0:
84
+ raise ValueError("basis must have positive length")
85
+
86
+ field = basis[0].parent()
87
+ if len(basis) != field.degree():
88
+ raise ValueError("length of basis must equal degree of field")
89
+
90
+ FunctionFieldOrder.__init__(self, field, ideal_class=FunctionFieldIdeal_module)
91
+
92
+ V, from_V, to_V = field.vector_space()
93
+
94
+ R = V.base_field().maximal_order()
95
+ self._module = V.span([to_V(b) for b in basis], base_ring=R)
96
+
97
+ self._from_module = from_V
98
+ self._to_module = to_V
99
+ self._basis = tuple(basis)
100
+ self._ring = field.polynomial_ring()
101
+ self._populate_coercion_lists_(coerce_list=[self._ring])
102
+
103
+ if check:
104
+ if self._module.rank() != field.degree():
105
+ raise ValueError("basis {} is not linearly independent".format(basis))
106
+ if to_V(field(1)) not in self._module:
107
+ raise ValueError("the identity element must be in the module spanned by basis {}".format(basis))
108
+ if not all(to_V(a*b) in self._module for a in basis for b in basis):
109
+ raise ValueError("the module generated by basis {} must be closed under multiplication".format(basis))
110
+
111
+ def _element_constructor_(self, f):
112
+ """
113
+ Construct an element of this order from ``f``.
114
+
115
+ INPUT:
116
+
117
+ - ``f`` -- element
118
+
119
+ EXAMPLES::
120
+
121
+ sage: K.<x> = FunctionField(QQ)
122
+ sage: K.maximal_order()._element_constructor_(x)
123
+ x
124
+ """
125
+ F = self.function_field()
126
+
127
+ try:
128
+ f = F(f)
129
+ except TypeError:
130
+ raise TypeError("unable to convert to an element of {}".format(F))
131
+
132
+ V, fr_V, to_V = F.vector_space()
133
+ f_vector = to_V(f)
134
+ if f_vector not in self._module:
135
+ raise TypeError("{} is not an element of {}".format(f_vector, self))
136
+
137
+ return f
138
+
139
+ def ideal_with_gens_over_base(self, gens):
140
+ """
141
+ Return the fractional ideal with basis ``gens`` over the
142
+ maximal order of the base field.
143
+
144
+ It is not checked that the ``gens`` really generates an ideal.
145
+
146
+ INPUT:
147
+
148
+ - ``gens`` -- list of elements of the function field
149
+
150
+ EXAMPLES:
151
+
152
+ We construct an ideal in a rational function field::
153
+
154
+ sage: K.<y> = FunctionField(QQ)
155
+ sage: O = K.maximal_order()
156
+ sage: I = O.ideal([y]); I
157
+ Ideal (y) of Maximal order of Rational function field in y over Rational Field
158
+ sage: I * I
159
+ Ideal (y^2) of Maximal order of Rational function field in y over Rational Field
160
+
161
+ We construct some ideals in a nontrivial function field::
162
+
163
+ sage: # needs sage.rings.function_field
164
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
165
+ sage: L.<y> = K.extension(y^2 - x^3 - 1)
166
+ sage: O = L.equation_order(); O
167
+ Order in Function field in y defined by y^2 + 6*x^3 + 6
168
+ sage: I = O.ideal_with_gens_over_base([1, y]); I
169
+ Ideal (1) of Order in Function field in y defined by y^2 + 6*x^3 + 6
170
+ sage: I.module()
171
+ Free module of degree 2 and rank 2 over
172
+ Maximal order of Rational function field in x over Finite Field of size 7
173
+ Echelon basis matrix:
174
+ [1 0]
175
+ [0 1]
176
+
177
+ There is no check if the resulting object is really an ideal::
178
+
179
+ sage: # needs sage.rings.function_field
180
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
181
+ sage: L.<y> = K.extension(y^2 - x^3 - 1)
182
+ sage: O = L.equation_order()
183
+ sage: I = O.ideal_with_gens_over_base([y]); I
184
+ Ideal (y) of Order in Function field in y defined by y^2 + 6*x^3 + 6
185
+ sage: y in I
186
+ True
187
+ sage: y^2 in I
188
+ False
189
+ """
190
+ F = self.function_field()
191
+ S = F.base_field().maximal_order()
192
+
193
+ gens = [F(a) for a in gens]
194
+
195
+ V, from_V, to_V = F.vector_space()
196
+ M = V.span([to_V(b) for b in gens], base_ring=S)
197
+
198
+ return self.ideal_monoid().element_class(self, M)
199
+
200
+ def ideal(self, *gens):
201
+ """
202
+ Return the fractional ideal generated by the elements in ``gens``.
203
+
204
+ INPUT:
205
+
206
+ - ``gens`` -- list of generators or an ideal in a ring which
207
+ coerces to this order
208
+
209
+ EXAMPLES::
210
+
211
+ sage: K.<y> = FunctionField(QQ)
212
+ sage: O = K.maximal_order()
213
+ sage: O.ideal(y)
214
+ Ideal (y) of Maximal order of Rational function field in y over Rational Field
215
+ sage: O.ideal([y,1/y]) == O.ideal(y,1/y) # multiple generators may be given as a list
216
+ True
217
+
218
+ A fractional ideal of a nontrivial extension::
219
+
220
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
221
+ sage: O = K.maximal_order()
222
+ sage: I = O.ideal(x^2 - 4)
223
+
224
+ sage: # needs sage.rings.function_field
225
+ sage: L.<y> = K.extension(y^2 - x^3 - 1)
226
+ sage: S = L.equation_order()
227
+ sage: S.ideal(1/y)
228
+ Ideal (1, (6/(x^3 + 1))*y) of
229
+ Order in Function field in y defined by y^2 + 6*x^3 + 6
230
+ sage: I2 = S.ideal(x^2 - 4); I2
231
+ Ideal (x^2 + 3) of Order in Function field in y defined by y^2 + 6*x^3 + 6
232
+ sage: I2 == S.ideal(I)
233
+ True
234
+ """
235
+ if len(gens) == 1:
236
+ gens = gens[0]
237
+ if not isinstance(gens, (list, tuple)):
238
+ if isinstance(gens, FunctionFieldIdeal):
239
+ gens = gens.gens()
240
+ else:
241
+ gens = [gens]
242
+ K = self.function_field()
243
+
244
+ return self.ideal_with_gens_over_base([b*K(g) for b in self.basis() for g in gens])
245
+
246
+ def polynomial(self):
247
+ """
248
+ Return the defining polynomial of the function field of which this is an order.
249
+
250
+ EXAMPLES::
251
+
252
+ sage: # needs sage.rings.function_field
253
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
254
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1)
255
+ sage: O = L.equation_order()
256
+ sage: O.polynomial()
257
+ y^4 + x*y + 4*x + 1
258
+ """
259
+ return self._field.polynomial()
260
+
261
+ def basis(self):
262
+ """
263
+ Return a basis of the order over the maximal order of the base field.
264
+
265
+ EXAMPLES::
266
+
267
+ sage: # needs sage.rings.function_field
268
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
269
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1)
270
+ sage: O = L.equation_order()
271
+ sage: O.basis()
272
+ (1, y, y^2, y^3)
273
+ """
274
+ return self._basis
275
+
276
+ def free_module(self):
277
+ """
278
+ Return the free module formed by the basis over the maximal order
279
+ of the base function field.
280
+
281
+ EXAMPLES::
282
+
283
+ sage: # needs sage.rings.function_field
284
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
285
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1)
286
+ sage: O = L.equation_order()
287
+ sage: O.free_module()
288
+ Free module of degree 4 and rank 4 over Maximal order of Rational
289
+ function field in x over Finite Field of size 7
290
+ Echelon basis matrix:
291
+ [1 0 0 0]
292
+ [0 1 0 0]
293
+ [0 0 1 0]
294
+ [0 0 0 1]
295
+ """
296
+ return self._module
297
+
298
+ def coordinate_vector(self, e):
299
+ """
300
+ Return the coordinates of ``e`` with respect to the basis of the order.
301
+
302
+ INPUT:
303
+
304
+ - ``e`` -- element of the order or the function field
305
+
306
+ EXAMPLES::
307
+
308
+ sage: # needs sage.rings.function_field
309
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
310
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1)
311
+ sage: O = L.equation_order()
312
+ sage: f = (x + y)^3
313
+ sage: O.coordinate_vector(f)
314
+ (x^3, 3*x^2, 3*x, 1)
315
+ """
316
+ return self._module.coordinate_vector(self._to_module(e), check=False)
317
+
318
+
319
+ class FunctionFieldOrderInfinite_basis(FunctionFieldOrderInfinite):
320
+ """
321
+ Order given by a basis over the infinite maximal order of the base field.
322
+
323
+ INPUT:
324
+
325
+ - ``basis`` -- elements of the function field
326
+
327
+ - ``check`` -- boolean (default: ``True``); if ``True``, check the basis generates
328
+ an order
329
+
330
+ EXAMPLES::
331
+
332
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
333
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1) # needs sage.rings.function_field
334
+ sage: O = L.equation_order_infinite(); O # needs sage.rings.function_field
335
+ Infinite order in Function field in y defined by y^4 + x*y + 4*x + 1
336
+
337
+ The basis only defines an order if the module it generates is closed under
338
+ multiplication and contains the identity element (only checked when
339
+ ``check`` is ``True``)::
340
+
341
+ sage: O = L.order_infinite_with_basis([1, y, 1/x^2*y^2, y^3]); O # needs sage.rings.function_field
342
+ Traceback (most recent call last):
343
+ ...
344
+ ValueError: the module generated by basis (1, y, 1/x^2*y^2, y^3)
345
+ must be closed under multiplication
346
+
347
+ The basis also has to be linearly independent and of the same rank as the
348
+ degree of the function field of its elements (only checked when ``check``
349
+ is ``True``)::
350
+
351
+ sage: O = L.order_infinite_with_basis([1, y, 1/x^2*y^2, 1 + y]); O # needs sage.rings.function_field
352
+ Traceback (most recent call last):
353
+ ...
354
+ ValueError: The given basis vectors must be linearly independent.
355
+
356
+ Note that 1 does not need to be an element of the basis, as long as it is
357
+ in the module spanned by it::
358
+
359
+ sage: # needs sage.rings.function_field
360
+ sage: O = L.order_infinite_with_basis([1 + 1/x*y, 1/x*y, 1/x^2*y^2, 1/x^3*y^3]); O
361
+ Infinite order in Function field in y defined by y^4 + x*y + 4*x + 1
362
+ sage: O.basis()
363
+ (1/x*y + 1, 1/x*y, 1/x^2*y^2, 1/x^3*y^3)
364
+ """
365
+ def __init__(self, basis, check=True):
366
+ """
367
+ Initialize.
368
+
369
+ TESTS::
370
+
371
+ sage: # needs sage.rings.function_field
372
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
373
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1)
374
+ sage: O = L.equation_order_infinite()
375
+ sage: TestSuite(O).run()
376
+ """
377
+ if len(basis) == 0:
378
+ raise ValueError("basis must have positive length")
379
+
380
+ field = basis[0].parent()
381
+ if len(basis) != field.degree():
382
+ raise ValueError("length of basis must equal degree of field")
383
+
384
+ FunctionFieldOrderInfinite.__init__(self, field, ideal_class=FunctionFieldIdealInfinite_module)
385
+
386
+ # function field element f is in this order if and only if
387
+ # W.coordinate_vector(to(f)) in M
388
+ V, fr, to = field.vector_space()
389
+ R = field.base_field().maximal_order_infinite()
390
+ W = V.span_of_basis([to(v) for v in basis])
391
+ from sage.modules.free_module import FreeModule
392
+ M = FreeModule(R, W.dimension())
393
+ self._basis = tuple(basis)
394
+ self._ambient_space = W
395
+ self._module = M
396
+
397
+ self._ring = field.polynomial_ring()
398
+ self._populate_coercion_lists_(coerce_list=[self._ring])
399
+
400
+ if check:
401
+ if self._module.rank() != field.degree():
402
+ raise ValueError("basis {} is not linearly independent".format(basis))
403
+ if W.coordinate_vector(to(field(1))) not in self._module:
404
+ raise ValueError("the identity element must be in the module spanned by basis {}".format(basis))
405
+ if not all(W.coordinate_vector(to(a*b)) in self._module for a in basis for b in basis):
406
+ raise ValueError("the module generated by basis {} must be closed under multiplication".format(basis))
407
+
408
+ def _element_constructor_(self, f):
409
+ """
410
+ Construct an element of this order.
411
+
412
+ INPUT:
413
+
414
+ - ``f`` -- element
415
+
416
+ EXAMPLES::
417
+
418
+ sage: K.<x> = FunctionField(QQ)
419
+ sage: O = K.maximal_order()
420
+ sage: O(x)
421
+ x
422
+ sage: O(1/x)
423
+ Traceback (most recent call last):
424
+ ...
425
+ TypeError: 1/x is not an element of Maximal order of Rational function field in x over Rational Field
426
+ """
427
+ F = self.function_field()
428
+ try:
429
+ f = F(f)
430
+ except TypeError:
431
+ raise TypeError("unable to convert to an element of {}".format(F))
432
+
433
+ V, fr_V, to_V = F.vector_space()
434
+ W = self._ambient_space
435
+ if W.coordinate_vector(to_V(f)) not in self._module:
436
+ raise TypeError("{} is not an element of {}".format(f, self))
437
+
438
+ return f
439
+
440
+ def ideal_with_gens_over_base(self, gens):
441
+ """
442
+ Return the fractional ideal with basis ``gens`` over the
443
+ maximal order of the base field.
444
+
445
+ It is not checked that ``gens`` really generates an ideal.
446
+
447
+ INPUT:
448
+
449
+ - ``gens`` -- list of elements that are a basis for the ideal over the
450
+ maximal order of the base field
451
+
452
+ EXAMPLES:
453
+
454
+ We construct an ideal in a rational function field::
455
+
456
+ sage: K.<y> = FunctionField(QQ)
457
+ sage: O = K.maximal_order()
458
+ sage: I = O.ideal([y]); I
459
+ Ideal (y) of Maximal order of Rational function field in y over Rational Field
460
+ sage: I*I
461
+ Ideal (y^2) of Maximal order of Rational function field in y over Rational Field
462
+
463
+ We construct some ideals in a nontrivial function field::
464
+
465
+ sage: # needs sage.rings.function_field
466
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
467
+ sage: L.<y> = K.extension(y^2 - x^3 - 1)
468
+ sage: O = L.equation_order(); O
469
+ Order in Function field in y defined by y^2 + 6*x^3 + 6
470
+ sage: I = O.ideal_with_gens_over_base([1, y]); I
471
+ Ideal (1) of Order in Function field in y defined by y^2 + 6*x^3 + 6
472
+ sage: I.module()
473
+ Free module of degree 2 and rank 2 over
474
+ Maximal order of Rational function field in x over Finite Field of size 7
475
+ Echelon basis matrix:
476
+ [1 0]
477
+ [0 1]
478
+
479
+ There is no check if the resulting object is really an ideal::
480
+
481
+ sage: # needs sage.rings.function_field
482
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
483
+ sage: L.<y> = K.extension(y^2 - x^3 - 1)
484
+ sage: O = L.equation_order()
485
+ sage: I = O.ideal_with_gens_over_base([y]); I
486
+ Ideal (y) of Order in Function field in y defined by y^2 + 6*x^3 + 6
487
+ sage: y in I
488
+ True
489
+ sage: y^2 in I
490
+ False
491
+ """
492
+ F = self.function_field()
493
+ S = F.base_field().maximal_order_infinite()
494
+
495
+ gens = [F(a) for a in gens]
496
+
497
+ V, from_V, to_V = F.vector_space()
498
+ M = V.span([to_V(b) for b in gens], base_ring=S) # not work
499
+
500
+ return self.ideal_monoid().element_class(self, M)
501
+
502
+ def ideal(self, *gens):
503
+ """
504
+ Return the fractional ideal generated by the elements in ``gens``.
505
+
506
+ INPUT:
507
+
508
+ - ``gens`` -- list of generators or an ideal in a ring which coerces
509
+ to this order
510
+
511
+ EXAMPLES::
512
+
513
+ sage: K.<y> = FunctionField(QQ)
514
+ sage: O = K.maximal_order()
515
+ sage: O.ideal(y)
516
+ Ideal (y) of Maximal order of Rational function field in y over Rational Field
517
+ sage: O.ideal([y,1/y]) == O.ideal(y,1/y) # multiple generators may be given as a list
518
+ True
519
+
520
+ A fractional ideal of a nontrivial extension::
521
+
522
+ sage: K.<x> = FunctionField(QQ); R.<y> = K[]
523
+ sage: O = K.maximal_order_infinite()
524
+ sage: I = O.ideal(x^2 - 4)
525
+ sage: L.<y> = K.extension(y^2 - x^3 - 1) # needs sage.rings.function_field
526
+ sage: S = L.order_infinite_with_basis([1, 1/x^2*y]) # needs sage.rings.function_field
527
+ """
528
+ if len(gens) == 1:
529
+ gens = gens[0]
530
+ if not isinstance(gens, (list, tuple)):
531
+ if isinstance(gens, FunctionFieldIdeal):
532
+ gens = gens.gens()
533
+ else:
534
+ gens = [gens]
535
+ K = self.function_field()
536
+
537
+ return self.ideal_with_gens_over_base([b*K(g) for b in self.basis() for g in gens])
538
+
539
+ def polynomial(self):
540
+ """
541
+ Return the defining polynomial of the function field of which this is an order.
542
+
543
+ EXAMPLES::
544
+
545
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
546
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1) # needs sage.rings.function_field
547
+ sage: O = L.equation_order() # needs sage.rings.function_field
548
+ sage: O.polynomial() # needs sage.rings.function_field
549
+ y^4 + x*y + 4*x + 1
550
+ """
551
+ return self._field.polynomial()
552
+
553
+ def basis(self):
554
+ """
555
+ Return a basis of this order over the maximal order of the base field.
556
+
557
+ EXAMPLES::
558
+
559
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
560
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1) # needs sage.rings.function_field
561
+ sage: O = L.equation_order() # needs sage.rings.function_field
562
+ sage: O.basis() # needs sage.rings.function_field
563
+ (1, y, y^2, y^3)
564
+ """
565
+ return self._basis
566
+
567
+ def free_module(self):
568
+ """
569
+ Return the free module formed by the basis over the maximal order of
570
+ the base field.
571
+
572
+ EXAMPLES::
573
+
574
+ sage: K.<x> = FunctionField(GF(7)); R.<y> = K[]
575
+ sage: L.<y> = K.extension(y^4 + x*y + 4*x + 1) # needs sage.rings.function_field
576
+ sage: O = L.equation_order() # needs sage.rings.function_field
577
+ sage: O.free_module() # needs sage.rings.function_field
578
+ Free module of degree 4 and rank 4 over Maximal order of Rational
579
+ function field in x over Finite Field of size 7
580
+ Echelon basis matrix:
581
+ [1 0 0 0]
582
+ [0 1 0 0]
583
+ [0 0 1 0]
584
+ [0 0 0 1]
585
+ """
586
+ return self._module