passagemath-categories 10.6.31rc3__cp314-cp314-macosx_13_0_arm64.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 (717) hide show
  1. passagemath_categories-10.6.31rc3.dist-info/METADATA +156 -0
  2. passagemath_categories-10.6.31rc3.dist-info/RECORD +717 -0
  3. passagemath_categories-10.6.31rc3.dist-info/WHEEL +6 -0
  4. passagemath_categories-10.6.31rc3.dist-info/top_level.txt +2 -0
  5. passagemath_categories.dylibs/libgmp.10.dylib +0 -0
  6. sage/all__sagemath_categories.py +28 -0
  7. sage/arith/all.py +38 -0
  8. sage/arith/constants.pxd +27 -0
  9. sage/arith/functions.cpython-314-darwin.so +0 -0
  10. sage/arith/functions.pxd +4 -0
  11. sage/arith/functions.pyx +221 -0
  12. sage/arith/misc.py +6552 -0
  13. sage/arith/multi_modular.cpython-314-darwin.so +0 -0
  14. sage/arith/multi_modular.pxd +39 -0
  15. sage/arith/multi_modular.pyx +994 -0
  16. sage/arith/rational_reconstruction.cpython-314-darwin.so +0 -0
  17. sage/arith/rational_reconstruction.pxd +4 -0
  18. sage/arith/rational_reconstruction.pyx +115 -0
  19. sage/arith/srange.cpython-314-darwin.so +0 -0
  20. sage/arith/srange.pyx +571 -0
  21. sage/calculus/all__sagemath_categories.py +2 -0
  22. sage/calculus/functional.py +481 -0
  23. sage/calculus/functions.py +151 -0
  24. sage/categories/additive_groups.py +73 -0
  25. sage/categories/additive_magmas.py +1044 -0
  26. sage/categories/additive_monoids.py +114 -0
  27. sage/categories/additive_semigroups.py +184 -0
  28. sage/categories/affine_weyl_groups.py +238 -0
  29. sage/categories/algebra_ideals.py +95 -0
  30. sage/categories/algebra_modules.py +96 -0
  31. sage/categories/algebras.py +349 -0
  32. sage/categories/algebras_with_basis.py +377 -0
  33. sage/categories/all.py +160 -0
  34. sage/categories/aperiodic_semigroups.py +29 -0
  35. sage/categories/associative_algebras.py +47 -0
  36. sage/categories/bialgebras.py +101 -0
  37. sage/categories/bialgebras_with_basis.py +414 -0
  38. sage/categories/bimodules.py +206 -0
  39. sage/categories/chain_complexes.py +268 -0
  40. sage/categories/classical_crystals.py +480 -0
  41. sage/categories/coalgebras.py +405 -0
  42. sage/categories/coalgebras_with_basis.py +232 -0
  43. sage/categories/coercion_methods.cpython-314-darwin.so +0 -0
  44. sage/categories/coercion_methods.pyx +52 -0
  45. sage/categories/commutative_additive_groups.py +104 -0
  46. sage/categories/commutative_additive_monoids.py +45 -0
  47. sage/categories/commutative_additive_semigroups.py +48 -0
  48. sage/categories/commutative_algebra_ideals.py +87 -0
  49. sage/categories/commutative_algebras.py +94 -0
  50. sage/categories/commutative_ring_ideals.py +58 -0
  51. sage/categories/commutative_rings.py +736 -0
  52. sage/categories/complete_discrete_valuation.py +293 -0
  53. sage/categories/complex_reflection_groups.py +145 -0
  54. sage/categories/complex_reflection_or_generalized_coxeter_groups.py +1249 -0
  55. sage/categories/coxeter_group_algebras.py +186 -0
  56. sage/categories/coxeter_groups.py +3402 -0
  57. sage/categories/crystals.py +2628 -0
  58. sage/categories/cw_complexes.py +216 -0
  59. sage/categories/dedekind_domains.py +137 -0
  60. sage/categories/discrete_valuation.py +325 -0
  61. sage/categories/distributive_magmas_and_additive_magmas.py +100 -0
  62. sage/categories/division_rings.py +114 -0
  63. sage/categories/domains.py +95 -0
  64. sage/categories/drinfeld_modules.py +789 -0
  65. sage/categories/dual.py +42 -0
  66. sage/categories/enumerated_sets.py +1146 -0
  67. sage/categories/euclidean_domains.py +271 -0
  68. sage/categories/examples/algebras_with_basis.py +102 -0
  69. sage/categories/examples/all.py +1 -0
  70. sage/categories/examples/commutative_additive_monoids.py +130 -0
  71. sage/categories/examples/commutative_additive_semigroups.py +199 -0
  72. sage/categories/examples/coxeter_groups.py +8 -0
  73. sage/categories/examples/crystals.py +236 -0
  74. sage/categories/examples/cw_complexes.py +163 -0
  75. sage/categories/examples/facade_sets.py +187 -0
  76. sage/categories/examples/filtered_algebras_with_basis.py +204 -0
  77. sage/categories/examples/filtered_modules_with_basis.py +154 -0
  78. sage/categories/examples/finite_coxeter_groups.py +252 -0
  79. sage/categories/examples/finite_dimensional_algebras_with_basis.py +148 -0
  80. sage/categories/examples/finite_dimensional_lie_algebras_with_basis.py +495 -0
  81. sage/categories/examples/finite_enumerated_sets.py +208 -0
  82. sage/categories/examples/finite_monoids.py +150 -0
  83. sage/categories/examples/finite_semigroups.py +190 -0
  84. sage/categories/examples/finite_weyl_groups.py +191 -0
  85. sage/categories/examples/graded_connected_hopf_algebras_with_basis.py +152 -0
  86. sage/categories/examples/graded_modules_with_basis.py +168 -0
  87. sage/categories/examples/graphs.py +122 -0
  88. sage/categories/examples/hopf_algebras_with_basis.py +145 -0
  89. sage/categories/examples/infinite_enumerated_sets.py +190 -0
  90. sage/categories/examples/lie_algebras.py +352 -0
  91. sage/categories/examples/lie_algebras_with_basis.py +196 -0
  92. sage/categories/examples/magmas.py +162 -0
  93. sage/categories/examples/manifolds.py +94 -0
  94. sage/categories/examples/monoids.py +144 -0
  95. sage/categories/examples/posets.py +178 -0
  96. sage/categories/examples/semigroups.py +580 -0
  97. sage/categories/examples/semigroups_cython.cpython-314-darwin.so +0 -0
  98. sage/categories/examples/semigroups_cython.pyx +221 -0
  99. sage/categories/examples/semirings.py +249 -0
  100. sage/categories/examples/sets_cat.py +706 -0
  101. sage/categories/examples/sets_with_grading.py +101 -0
  102. sage/categories/examples/with_realizations.py +542 -0
  103. sage/categories/fields.py +991 -0
  104. sage/categories/filtered_algebras.py +63 -0
  105. sage/categories/filtered_algebras_with_basis.py +548 -0
  106. sage/categories/filtered_hopf_algebras_with_basis.py +138 -0
  107. sage/categories/filtered_modules.py +210 -0
  108. sage/categories/filtered_modules_with_basis.py +1209 -0
  109. sage/categories/finite_complex_reflection_groups.py +1506 -0
  110. sage/categories/finite_coxeter_groups.py +1138 -0
  111. sage/categories/finite_crystals.py +103 -0
  112. sage/categories/finite_dimensional_algebras_with_basis.py +1860 -0
  113. sage/categories/finite_dimensional_bialgebras_with_basis.py +33 -0
  114. sage/categories/finite_dimensional_coalgebras_with_basis.py +33 -0
  115. sage/categories/finite_dimensional_graded_lie_algebras_with_basis.py +231 -0
  116. sage/categories/finite_dimensional_hopf_algebras_with_basis.py +38 -0
  117. sage/categories/finite_dimensional_lie_algebras_with_basis.py +2774 -0
  118. sage/categories/finite_dimensional_modules_with_basis.py +1407 -0
  119. sage/categories/finite_dimensional_nilpotent_lie_algebras_with_basis.py +167 -0
  120. sage/categories/finite_dimensional_semisimple_algebras_with_basis.py +270 -0
  121. sage/categories/finite_enumerated_sets.py +769 -0
  122. sage/categories/finite_fields.py +252 -0
  123. sage/categories/finite_groups.py +256 -0
  124. sage/categories/finite_lattice_posets.py +242 -0
  125. sage/categories/finite_monoids.py +316 -0
  126. sage/categories/finite_permutation_groups.py +339 -0
  127. sage/categories/finite_posets.py +1994 -0
  128. sage/categories/finite_semigroups.py +136 -0
  129. sage/categories/finite_sets.py +93 -0
  130. sage/categories/finite_weyl_groups.py +39 -0
  131. sage/categories/finitely_generated_lambda_bracket_algebras.py +112 -0
  132. sage/categories/finitely_generated_lie_conformal_algebras.py +114 -0
  133. sage/categories/finitely_generated_magmas.py +57 -0
  134. sage/categories/finitely_generated_semigroups.py +214 -0
  135. sage/categories/function_fields.py +76 -0
  136. sage/categories/g_sets.py +77 -0
  137. sage/categories/gcd_domains.py +65 -0
  138. sage/categories/generalized_coxeter_groups.py +94 -0
  139. sage/categories/graded_algebras.py +85 -0
  140. sage/categories/graded_algebras_with_basis.py +258 -0
  141. sage/categories/graded_bialgebras.py +32 -0
  142. sage/categories/graded_bialgebras_with_basis.py +32 -0
  143. sage/categories/graded_coalgebras.py +65 -0
  144. sage/categories/graded_coalgebras_with_basis.py +51 -0
  145. sage/categories/graded_hopf_algebras.py +41 -0
  146. sage/categories/graded_hopf_algebras_with_basis.py +169 -0
  147. sage/categories/graded_lie_algebras.py +91 -0
  148. sage/categories/graded_lie_algebras_with_basis.py +44 -0
  149. sage/categories/graded_lie_conformal_algebras.py +74 -0
  150. sage/categories/graded_modules.py +133 -0
  151. sage/categories/graded_modules_with_basis.py +329 -0
  152. sage/categories/graphs.py +138 -0
  153. sage/categories/group_algebras.py +430 -0
  154. sage/categories/groupoid.py +94 -0
  155. sage/categories/groups.py +667 -0
  156. sage/categories/h_trivial_semigroups.py +64 -0
  157. sage/categories/hecke_modules.py +185 -0
  158. sage/categories/highest_weight_crystals.py +980 -0
  159. sage/categories/hopf_algebras.py +219 -0
  160. sage/categories/hopf_algebras_with_basis.py +309 -0
  161. sage/categories/infinite_enumerated_sets.py +115 -0
  162. sage/categories/integral_domains.py +203 -0
  163. sage/categories/j_trivial_semigroups.py +29 -0
  164. sage/categories/kac_moody_algebras.py +82 -0
  165. sage/categories/kahler_algebras.py +203 -0
  166. sage/categories/l_trivial_semigroups.py +63 -0
  167. sage/categories/lambda_bracket_algebras.py +280 -0
  168. sage/categories/lambda_bracket_algebras_with_basis.py +107 -0
  169. sage/categories/lattice_posets.py +89 -0
  170. sage/categories/left_modules.py +49 -0
  171. sage/categories/lie_algebras.py +1070 -0
  172. sage/categories/lie_algebras_with_basis.py +261 -0
  173. sage/categories/lie_conformal_algebras.py +350 -0
  174. sage/categories/lie_conformal_algebras_with_basis.py +147 -0
  175. sage/categories/lie_groups.py +73 -0
  176. sage/categories/loop_crystals.py +1290 -0
  177. sage/categories/magmas.py +1189 -0
  178. sage/categories/magmas_and_additive_magmas.py +149 -0
  179. sage/categories/magmatic_algebras.py +365 -0
  180. sage/categories/manifolds.py +352 -0
  181. sage/categories/matrix_algebras.py +40 -0
  182. sage/categories/metric_spaces.py +387 -0
  183. sage/categories/modular_abelian_varieties.py +78 -0
  184. sage/categories/modules.py +989 -0
  185. sage/categories/modules_with_basis.py +2794 -0
  186. sage/categories/monoid_algebras.py +38 -0
  187. sage/categories/monoids.py +739 -0
  188. sage/categories/noetherian_rings.py +87 -0
  189. sage/categories/number_fields.py +242 -0
  190. sage/categories/ore_modules.py +189 -0
  191. sage/categories/partially_ordered_monoids.py +49 -0
  192. sage/categories/permutation_groups.py +63 -0
  193. sage/categories/pointed_sets.py +42 -0
  194. sage/categories/polyhedra.py +74 -0
  195. sage/categories/poor_man_map.py +270 -0
  196. sage/categories/posets.py +722 -0
  197. sage/categories/principal_ideal_domains.py +270 -0
  198. sage/categories/quantum_group_representations.py +543 -0
  199. sage/categories/quotient_fields.py +728 -0
  200. sage/categories/r_trivial_semigroups.py +45 -0
  201. sage/categories/regular_crystals.py +898 -0
  202. sage/categories/regular_supercrystals.py +170 -0
  203. sage/categories/right_modules.py +49 -0
  204. sage/categories/ring_ideals.py +74 -0
  205. sage/categories/rings.py +1904 -0
  206. sage/categories/rngs.py +175 -0
  207. sage/categories/schemes.py +393 -0
  208. sage/categories/semigroups.py +1060 -0
  209. sage/categories/semirings.py +71 -0
  210. sage/categories/semisimple_algebras.py +114 -0
  211. sage/categories/sets_with_grading.py +235 -0
  212. sage/categories/shephard_groups.py +43 -0
  213. sage/categories/signed_tensor.py +120 -0
  214. sage/categories/simplicial_complexes.py +134 -0
  215. sage/categories/simplicial_sets.py +1206 -0
  216. sage/categories/super_algebras.py +149 -0
  217. sage/categories/super_algebras_with_basis.py +144 -0
  218. sage/categories/super_hopf_algebras_with_basis.py +126 -0
  219. sage/categories/super_lie_conformal_algebras.py +193 -0
  220. sage/categories/super_modules.py +229 -0
  221. sage/categories/super_modules_with_basis.py +193 -0
  222. sage/categories/supercommutative_algebras.py +99 -0
  223. sage/categories/supercrystals.py +406 -0
  224. sage/categories/tensor.py +110 -0
  225. sage/categories/topological_spaces.py +170 -0
  226. sage/categories/triangular_kac_moody_algebras.py +439 -0
  227. sage/categories/tutorial.py +58 -0
  228. sage/categories/unique_factorization_domains.py +318 -0
  229. sage/categories/unital_algebras.py +426 -0
  230. sage/categories/vector_bundles.py +159 -0
  231. sage/categories/vector_spaces.py +357 -0
  232. sage/categories/weyl_groups.py +853 -0
  233. sage/combinat/all__sagemath_categories.py +34 -0
  234. sage/combinat/backtrack.py +180 -0
  235. sage/combinat/combinat.py +2269 -0
  236. sage/combinat/combinat_cython.cpython-314-darwin.so +0 -0
  237. sage/combinat/combinat_cython.pxd +6 -0
  238. sage/combinat/combinat_cython.pyx +390 -0
  239. sage/combinat/combination.py +796 -0
  240. sage/combinat/combinatorial_map.py +416 -0
  241. sage/combinat/composition.py +2192 -0
  242. sage/combinat/dlx.py +510 -0
  243. sage/combinat/integer_lists/__init__.py +7 -0
  244. sage/combinat/integer_lists/base.cpython-314-darwin.so +0 -0
  245. sage/combinat/integer_lists/base.pxd +16 -0
  246. sage/combinat/integer_lists/base.pyx +713 -0
  247. sage/combinat/integer_lists/invlex.cpython-314-darwin.so +0 -0
  248. sage/combinat/integer_lists/invlex.pxd +4 -0
  249. sage/combinat/integer_lists/invlex.pyx +1650 -0
  250. sage/combinat/integer_lists/lists.py +328 -0
  251. sage/combinat/integer_lists/nn.py +48 -0
  252. sage/combinat/integer_vector.py +1818 -0
  253. sage/combinat/integer_vector_weighted.py +413 -0
  254. sage/combinat/matrices/all__sagemath_categories.py +5 -0
  255. sage/combinat/matrices/dancing_links.cpython-314-darwin.so +0 -0
  256. sage/combinat/matrices/dancing_links.pyx +1159 -0
  257. sage/combinat/matrices/dancing_links_c.h +380 -0
  258. sage/combinat/matrices/dlxcpp.py +136 -0
  259. sage/combinat/partition.py +10070 -0
  260. sage/combinat/partitions.cpython-314-darwin.so +0 -0
  261. sage/combinat/partitions.pyx +743 -0
  262. sage/combinat/permutation.py +10168 -0
  263. sage/combinat/permutation_cython.cpython-314-darwin.so +0 -0
  264. sage/combinat/permutation_cython.pxd +11 -0
  265. sage/combinat/permutation_cython.pyx +407 -0
  266. sage/combinat/q_analogues.py +1090 -0
  267. sage/combinat/ranker.py +268 -0
  268. sage/combinat/subset.py +1561 -0
  269. sage/combinat/subsets_hereditary.py +202 -0
  270. sage/combinat/subsets_pairwise.py +184 -0
  271. sage/combinat/tools.py +63 -0
  272. sage/combinat/tuple.py +348 -0
  273. sage/data_structures/all.py +2 -0
  274. sage/data_structures/all__sagemath_categories.py +2 -0
  275. sage/data_structures/binary_matrix.pxd +138 -0
  276. sage/data_structures/binary_search.cpython-314-darwin.so +0 -0
  277. sage/data_structures/binary_search.pxd +3 -0
  278. sage/data_structures/binary_search.pyx +66 -0
  279. sage/data_structures/bitset.cpython-314-darwin.so +0 -0
  280. sage/data_structures/bitset.pxd +40 -0
  281. sage/data_structures/bitset.pyx +2385 -0
  282. sage/data_structures/bitset_base.cpython-314-darwin.so +0 -0
  283. sage/data_structures/bitset_base.pxd +926 -0
  284. sage/data_structures/bitset_base.pyx +117 -0
  285. sage/data_structures/bitset_intrinsics.h +487 -0
  286. sage/data_structures/blas_dict.cpython-314-darwin.so +0 -0
  287. sage/data_structures/blas_dict.pxd +12 -0
  288. sage/data_structures/blas_dict.pyx +469 -0
  289. sage/data_structures/list_of_pairs.cpython-314-darwin.so +0 -0
  290. sage/data_structures/list_of_pairs.pxd +16 -0
  291. sage/data_structures/list_of_pairs.pyx +122 -0
  292. sage/data_structures/mutable_poset.py +3312 -0
  293. sage/data_structures/pairing_heap.cpython-314-darwin.so +0 -0
  294. sage/data_structures/pairing_heap.h +346 -0
  295. sage/data_structures/pairing_heap.pxd +88 -0
  296. sage/data_structures/pairing_heap.pyx +1464 -0
  297. sage/data_structures/sparse_bitset.pxd +62 -0
  298. sage/data_structures/stream.py +5070 -0
  299. sage/databases/all__sagemath_categories.py +7 -0
  300. sage/databases/sql_db.py +2236 -0
  301. sage/ext/all__sagemath_categories.py +3 -0
  302. sage/ext/fast_callable.cpython-314-darwin.so +0 -0
  303. sage/ext/fast_callable.pxd +4 -0
  304. sage/ext/fast_callable.pyx +2746 -0
  305. sage/ext/fast_eval.cpython-314-darwin.so +0 -0
  306. sage/ext/fast_eval.pxd +1 -0
  307. sage/ext/fast_eval.pyx +102 -0
  308. sage/ext/interpreters/__init__.py +1 -0
  309. sage/ext/interpreters/all__sagemath_categories.py +2 -0
  310. sage/ext/interpreters/wrapper_el.cpython-314-darwin.so +0 -0
  311. sage/ext/interpreters/wrapper_el.pxd +18 -0
  312. sage/ext/interpreters/wrapper_el.pyx +148 -0
  313. sage/ext/interpreters/wrapper_py.cpython-314-darwin.so +0 -0
  314. sage/ext/interpreters/wrapper_py.pxd +17 -0
  315. sage/ext/interpreters/wrapper_py.pyx +133 -0
  316. sage/functions/airy.py +937 -0
  317. sage/functions/all.py +97 -0
  318. sage/functions/bessel.py +2102 -0
  319. sage/functions/error.py +784 -0
  320. sage/functions/exp_integral.py +1529 -0
  321. sage/functions/gamma.py +1087 -0
  322. sage/functions/generalized.py +672 -0
  323. sage/functions/hyperbolic.py +747 -0
  324. sage/functions/hypergeometric.py +1156 -0
  325. sage/functions/jacobi.py +1705 -0
  326. sage/functions/log.py +1402 -0
  327. sage/functions/min_max.py +338 -0
  328. sage/functions/orthogonal_polys.py +3106 -0
  329. sage/functions/other.py +2303 -0
  330. sage/functions/piecewise.py +1505 -0
  331. sage/functions/prime_pi.cpython-314-darwin.so +0 -0
  332. sage/functions/prime_pi.pyx +262 -0
  333. sage/functions/special.py +1212 -0
  334. sage/functions/spike_function.py +278 -0
  335. sage/functions/transcendental.py +690 -0
  336. sage/functions/trig.py +1062 -0
  337. sage/functions/wigner.py +726 -0
  338. sage/geometry/abc.cpython-314-darwin.so +0 -0
  339. sage/geometry/abc.pyx +82 -0
  340. sage/geometry/all__sagemath_categories.py +1 -0
  341. sage/groups/all__sagemath_categories.py +11 -0
  342. sage/groups/generic.py +1733 -0
  343. sage/groups/groups_catalog.py +113 -0
  344. sage/groups/perm_gps/all__sagemath_categories.py +1 -0
  345. sage/groups/perm_gps/partn_ref/all.py +1 -0
  346. sage/groups/perm_gps/partn_ref/all__sagemath_categories.py +1 -0
  347. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.cpython-314-darwin.so +0 -0
  348. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd +52 -0
  349. sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx +906 -0
  350. sage/groups/perm_gps/partn_ref/canonical_augmentation.cpython-314-darwin.so +0 -0
  351. sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd +85 -0
  352. sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx +534 -0
  353. sage/groups/perm_gps/partn_ref/data_structures.cpython-314-darwin.so +0 -0
  354. sage/groups/perm_gps/partn_ref/data_structures.pxd +576 -0
  355. sage/groups/perm_gps/partn_ref/data_structures.pyx +1792 -0
  356. sage/groups/perm_gps/partn_ref/double_coset.cpython-314-darwin.so +0 -0
  357. sage/groups/perm_gps/partn_ref/double_coset.pxd +45 -0
  358. sage/groups/perm_gps/partn_ref/double_coset.pyx +739 -0
  359. sage/groups/perm_gps/partn_ref/refinement_lists.cpython-314-darwin.so +0 -0
  360. sage/groups/perm_gps/partn_ref/refinement_lists.pxd +18 -0
  361. sage/groups/perm_gps/partn_ref/refinement_lists.pyx +82 -0
  362. sage/groups/perm_gps/partn_ref/refinement_python.cpython-314-darwin.so +0 -0
  363. sage/groups/perm_gps/partn_ref/refinement_python.pxd +16 -0
  364. sage/groups/perm_gps/partn_ref/refinement_python.pyx +564 -0
  365. sage/groups/perm_gps/partn_ref/refinement_sets.cpython-314-darwin.so +0 -0
  366. sage/groups/perm_gps/partn_ref/refinement_sets.pxd +60 -0
  367. sage/groups/perm_gps/partn_ref/refinement_sets.pyx +858 -0
  368. sage/interfaces/abc.py +140 -0
  369. sage/interfaces/all.py +58 -0
  370. sage/interfaces/all__sagemath_categories.py +1 -0
  371. sage/interfaces/expect.py +1643 -0
  372. sage/interfaces/interface.py +1682 -0
  373. sage/interfaces/process.cpython-314-darwin.so +0 -0
  374. sage/interfaces/process.pxd +5 -0
  375. sage/interfaces/process.pyx +288 -0
  376. sage/interfaces/quit.py +167 -0
  377. sage/interfaces/sage0.py +604 -0
  378. sage/interfaces/sagespawn.cpython-314-darwin.so +0 -0
  379. sage/interfaces/sagespawn.pyx +308 -0
  380. sage/interfaces/tab_completion.py +101 -0
  381. sage/misc/all__sagemath_categories.py +78 -0
  382. sage/misc/allocator.cpython-314-darwin.so +0 -0
  383. sage/misc/allocator.pxd +6 -0
  384. sage/misc/allocator.pyx +47 -0
  385. sage/misc/binary_tree.cpython-314-darwin.so +0 -0
  386. sage/misc/binary_tree.pxd +29 -0
  387. sage/misc/binary_tree.pyx +537 -0
  388. sage/misc/callable_dict.cpython-314-darwin.so +0 -0
  389. sage/misc/callable_dict.pyx +89 -0
  390. sage/misc/citation.cpython-314-darwin.so +0 -0
  391. sage/misc/citation.pyx +159 -0
  392. sage/misc/converting_dict.py +293 -0
  393. sage/misc/defaults.py +129 -0
  394. sage/misc/derivative.cpython-314-darwin.so +0 -0
  395. sage/misc/derivative.pyx +223 -0
  396. sage/misc/functional.py +2005 -0
  397. sage/misc/html.py +589 -0
  398. sage/misc/latex.py +2673 -0
  399. sage/misc/latex_macros.py +236 -0
  400. sage/misc/latex_standalone.py +1833 -0
  401. sage/misc/map_threaded.py +38 -0
  402. sage/misc/mathml.py +76 -0
  403. sage/misc/method_decorator.py +88 -0
  404. sage/misc/mrange.py +755 -0
  405. sage/misc/multireplace.py +41 -0
  406. sage/misc/object_multiplexer.py +92 -0
  407. sage/misc/parser.cpython-314-darwin.so +0 -0
  408. sage/misc/parser.pyx +1107 -0
  409. sage/misc/random_testing.py +264 -0
  410. sage/misc/rest_index_of_methods.py +377 -0
  411. sage/misc/search.cpython-314-darwin.so +0 -0
  412. sage/misc/search.pxd +2 -0
  413. sage/misc/search.pyx +68 -0
  414. sage/misc/stopgap.cpython-314-darwin.so +0 -0
  415. sage/misc/stopgap.pyx +95 -0
  416. sage/misc/table.py +853 -0
  417. sage/monoids/all__sagemath_categories.py +1 -0
  418. sage/monoids/indexed_free_monoid.py +1071 -0
  419. sage/monoids/monoid.py +82 -0
  420. sage/numerical/all__sagemath_categories.py +1 -0
  421. sage/numerical/backends/all__sagemath_categories.py +1 -0
  422. sage/numerical/backends/generic_backend.cpython-314-darwin.so +0 -0
  423. sage/numerical/backends/generic_backend.pxd +61 -0
  424. sage/numerical/backends/generic_backend.pyx +1893 -0
  425. sage/numerical/backends/generic_sdp_backend.cpython-314-darwin.so +0 -0
  426. sage/numerical/backends/generic_sdp_backend.pxd +38 -0
  427. sage/numerical/backends/generic_sdp_backend.pyx +755 -0
  428. sage/parallel/all.py +6 -0
  429. sage/parallel/decorate.py +575 -0
  430. sage/parallel/map_reduce.py +1997 -0
  431. sage/parallel/multiprocessing_sage.py +76 -0
  432. sage/parallel/ncpus.py +35 -0
  433. sage/parallel/parallelism.py +364 -0
  434. sage/parallel/reference.py +47 -0
  435. sage/parallel/use_fork.py +333 -0
  436. sage/rings/abc.cpython-314-darwin.so +0 -0
  437. sage/rings/abc.pxd +31 -0
  438. sage/rings/abc.pyx +526 -0
  439. sage/rings/algebraic_closure_finite_field.py +1154 -0
  440. sage/rings/all__sagemath_categories.py +91 -0
  441. sage/rings/big_oh.py +227 -0
  442. sage/rings/continued_fraction.py +2754 -0
  443. sage/rings/continued_fraction_gosper.py +220 -0
  444. sage/rings/factorint.cpython-314-darwin.so +0 -0
  445. sage/rings/factorint.pyx +295 -0
  446. sage/rings/fast_arith.cpython-314-darwin.so +0 -0
  447. sage/rings/fast_arith.pxd +21 -0
  448. sage/rings/fast_arith.pyx +535 -0
  449. sage/rings/finite_rings/all__sagemath_categories.py +9 -0
  450. sage/rings/finite_rings/conway_polynomials.py +542 -0
  451. sage/rings/finite_rings/element_base.cpython-314-darwin.so +0 -0
  452. sage/rings/finite_rings/element_base.pxd +12 -0
  453. sage/rings/finite_rings/element_base.pyx +1176 -0
  454. sage/rings/finite_rings/finite_field_base.cpython-314-darwin.so +0 -0
  455. sage/rings/finite_rings/finite_field_base.pxd +7 -0
  456. sage/rings/finite_rings/finite_field_base.pyx +2171 -0
  457. sage/rings/finite_rings/finite_field_constructor.py +827 -0
  458. sage/rings/finite_rings/finite_field_prime_modn.py +372 -0
  459. sage/rings/finite_rings/galois_group.py +154 -0
  460. sage/rings/finite_rings/hom_finite_field.cpython-314-darwin.so +0 -0
  461. sage/rings/finite_rings/hom_finite_field.pxd +23 -0
  462. sage/rings/finite_rings/hom_finite_field.pyx +856 -0
  463. sage/rings/finite_rings/hom_prime_finite_field.cpython-314-darwin.so +0 -0
  464. sage/rings/finite_rings/hom_prime_finite_field.pxd +15 -0
  465. sage/rings/finite_rings/hom_prime_finite_field.pyx +164 -0
  466. sage/rings/finite_rings/homset.py +357 -0
  467. sage/rings/finite_rings/integer_mod.cpython-314-darwin.so +0 -0
  468. sage/rings/finite_rings/integer_mod.pxd +56 -0
  469. sage/rings/finite_rings/integer_mod.pyx +4586 -0
  470. sage/rings/finite_rings/integer_mod_limits.h +11 -0
  471. sage/rings/finite_rings/integer_mod_ring.py +2044 -0
  472. sage/rings/finite_rings/residue_field.cpython-314-darwin.so +0 -0
  473. sage/rings/finite_rings/residue_field.pxd +30 -0
  474. sage/rings/finite_rings/residue_field.pyx +1811 -0
  475. sage/rings/finite_rings/stdint.pxd +19 -0
  476. sage/rings/fraction_field.py +1452 -0
  477. sage/rings/fraction_field_element.cpython-314-darwin.so +0 -0
  478. sage/rings/fraction_field_element.pyx +1357 -0
  479. sage/rings/function_field/all.py +7 -0
  480. sage/rings/function_field/all__sagemath_categories.py +2 -0
  481. sage/rings/function_field/constructor.py +218 -0
  482. sage/rings/function_field/element.cpython-314-darwin.so +0 -0
  483. sage/rings/function_field/element.pxd +11 -0
  484. sage/rings/function_field/element.pyx +1008 -0
  485. sage/rings/function_field/element_rational.cpython-314-darwin.so +0 -0
  486. sage/rings/function_field/element_rational.pyx +513 -0
  487. sage/rings/function_field/extensions.py +230 -0
  488. sage/rings/function_field/function_field.py +1468 -0
  489. sage/rings/function_field/function_field_rational.py +1005 -0
  490. sage/rings/function_field/ideal.py +1155 -0
  491. sage/rings/function_field/ideal_rational.py +629 -0
  492. sage/rings/function_field/jacobian_base.py +826 -0
  493. sage/rings/function_field/jacobian_hess.py +1053 -0
  494. sage/rings/function_field/jacobian_khuri_makdisi.py +1027 -0
  495. sage/rings/function_field/maps.py +1039 -0
  496. sage/rings/function_field/order.py +281 -0
  497. sage/rings/function_field/order_basis.py +586 -0
  498. sage/rings/function_field/order_rational.py +576 -0
  499. sage/rings/function_field/place.py +426 -0
  500. sage/rings/function_field/place_rational.py +181 -0
  501. sage/rings/generic.py +320 -0
  502. sage/rings/homset.py +332 -0
  503. sage/rings/ideal.py +1885 -0
  504. sage/rings/ideal_monoid.py +215 -0
  505. sage/rings/infinity.py +1890 -0
  506. sage/rings/integer.cpython-314-darwin.so +0 -0
  507. sage/rings/integer.pxd +45 -0
  508. sage/rings/integer.pyx +7871 -0
  509. sage/rings/integer_ring.cpython-314-darwin.so +0 -0
  510. sage/rings/integer_ring.pxd +8 -0
  511. sage/rings/integer_ring.pyx +1693 -0
  512. sage/rings/laurent_series_ring.py +931 -0
  513. sage/rings/laurent_series_ring_element.cpython-314-darwin.so +0 -0
  514. sage/rings/laurent_series_ring_element.pxd +11 -0
  515. sage/rings/laurent_series_ring_element.pyx +1927 -0
  516. sage/rings/lazy_series.py +7815 -0
  517. sage/rings/lazy_series_ring.py +4356 -0
  518. sage/rings/localization.py +1043 -0
  519. sage/rings/morphism.cpython-314-darwin.so +0 -0
  520. sage/rings/morphism.pxd +39 -0
  521. sage/rings/morphism.pyx +3299 -0
  522. sage/rings/multi_power_series_ring.py +1145 -0
  523. sage/rings/multi_power_series_ring_element.py +2184 -0
  524. sage/rings/noncommutative_ideals.cpython-314-darwin.so +0 -0
  525. sage/rings/noncommutative_ideals.pyx +423 -0
  526. sage/rings/number_field/all__sagemath_categories.py +1 -0
  527. sage/rings/number_field/number_field_base.cpython-314-darwin.so +0 -0
  528. sage/rings/number_field/number_field_base.pxd +8 -0
  529. sage/rings/number_field/number_field_base.pyx +507 -0
  530. sage/rings/number_field/number_field_element_base.cpython-314-darwin.so +0 -0
  531. sage/rings/number_field/number_field_element_base.pxd +6 -0
  532. sage/rings/number_field/number_field_element_base.pyx +36 -0
  533. sage/rings/number_field/number_field_ideal.py +3550 -0
  534. sage/rings/padics/all__sagemath_categories.py +4 -0
  535. sage/rings/padics/local_generic.py +1670 -0
  536. sage/rings/padics/local_generic_element.cpython-314-darwin.so +0 -0
  537. sage/rings/padics/local_generic_element.pxd +5 -0
  538. sage/rings/padics/local_generic_element.pyx +1017 -0
  539. sage/rings/padics/misc.py +256 -0
  540. sage/rings/padics/padic_generic.py +1911 -0
  541. sage/rings/padics/pow_computer.cpython-314-darwin.so +0 -0
  542. sage/rings/padics/pow_computer.pxd +38 -0
  543. sage/rings/padics/pow_computer.pyx +671 -0
  544. sage/rings/padics/precision_error.py +24 -0
  545. sage/rings/polynomial/all__sagemath_categories.py +25 -0
  546. sage/rings/polynomial/commutative_polynomial.cpython-314-darwin.so +0 -0
  547. sage/rings/polynomial/commutative_polynomial.pxd +6 -0
  548. sage/rings/polynomial/commutative_polynomial.pyx +24 -0
  549. sage/rings/polynomial/cyclotomic.cpython-314-darwin.so +0 -0
  550. sage/rings/polynomial/cyclotomic.pyx +404 -0
  551. sage/rings/polynomial/flatten.py +711 -0
  552. sage/rings/polynomial/ideal.py +102 -0
  553. sage/rings/polynomial/infinite_polynomial_element.py +1768 -0
  554. sage/rings/polynomial/infinite_polynomial_ring.py +1653 -0
  555. sage/rings/polynomial/laurent_polynomial.cpython-314-darwin.so +0 -0
  556. sage/rings/polynomial/laurent_polynomial.pxd +18 -0
  557. sage/rings/polynomial/laurent_polynomial.pyx +2190 -0
  558. sage/rings/polynomial/laurent_polynomial_ideal.py +590 -0
  559. sage/rings/polynomial/laurent_polynomial_ring.py +832 -0
  560. sage/rings/polynomial/laurent_polynomial_ring_base.py +708 -0
  561. sage/rings/polynomial/multi_polynomial.cpython-314-darwin.so +0 -0
  562. sage/rings/polynomial/multi_polynomial.pxd +12 -0
  563. sage/rings/polynomial/multi_polynomial.pyx +3082 -0
  564. sage/rings/polynomial/multi_polynomial_element.py +2570 -0
  565. sage/rings/polynomial/multi_polynomial_ideal.py +5771 -0
  566. sage/rings/polynomial/multi_polynomial_ring.py +947 -0
  567. sage/rings/polynomial/multi_polynomial_ring_base.cpython-314-darwin.so +0 -0
  568. sage/rings/polynomial/multi_polynomial_ring_base.pxd +15 -0
  569. sage/rings/polynomial/multi_polynomial_ring_base.pyx +1855 -0
  570. sage/rings/polynomial/multi_polynomial_sequence.py +2204 -0
  571. sage/rings/polynomial/polydict.cpython-314-darwin.so +0 -0
  572. sage/rings/polynomial/polydict.pxd +45 -0
  573. sage/rings/polynomial/polydict.pyx +2701 -0
  574. sage/rings/polynomial/polynomial_compiled.cpython-314-darwin.so +0 -0
  575. sage/rings/polynomial/polynomial_compiled.pxd +59 -0
  576. sage/rings/polynomial/polynomial_compiled.pyx +509 -0
  577. sage/rings/polynomial/polynomial_element.cpython-314-darwin.so +0 -0
  578. sage/rings/polynomial/polynomial_element.pxd +64 -0
  579. sage/rings/polynomial/polynomial_element.pyx +13255 -0
  580. sage/rings/polynomial/polynomial_element_generic.py +1637 -0
  581. sage/rings/polynomial/polynomial_fateman.py +97 -0
  582. sage/rings/polynomial/polynomial_quotient_ring.py +2465 -0
  583. sage/rings/polynomial/polynomial_quotient_ring_element.py +779 -0
  584. sage/rings/polynomial/polynomial_ring.py +3784 -0
  585. sage/rings/polynomial/polynomial_ring_constructor.py +1051 -0
  586. sage/rings/polynomial/polynomial_ring_homomorphism.cpython-314-darwin.so +0 -0
  587. sage/rings/polynomial/polynomial_ring_homomorphism.pxd +5 -0
  588. sage/rings/polynomial/polynomial_ring_homomorphism.pyx +121 -0
  589. sage/rings/polynomial/polynomial_singular_interface.py +549 -0
  590. sage/rings/polynomial/symmetric_ideal.py +989 -0
  591. sage/rings/polynomial/symmetric_reduction.cpython-314-darwin.so +0 -0
  592. sage/rings/polynomial/symmetric_reduction.pxd +8 -0
  593. sage/rings/polynomial/symmetric_reduction.pyx +669 -0
  594. sage/rings/polynomial/term_order.py +2279 -0
  595. sage/rings/polynomial/toy_buchberger.py +449 -0
  596. sage/rings/polynomial/toy_d_basis.py +387 -0
  597. sage/rings/polynomial/toy_variety.py +362 -0
  598. sage/rings/power_series_mpoly.cpython-314-darwin.so +0 -0
  599. sage/rings/power_series_mpoly.pxd +9 -0
  600. sage/rings/power_series_mpoly.pyx +161 -0
  601. sage/rings/power_series_poly.cpython-314-darwin.so +0 -0
  602. sage/rings/power_series_poly.pxd +10 -0
  603. sage/rings/power_series_poly.pyx +1317 -0
  604. sage/rings/power_series_ring.py +1441 -0
  605. sage/rings/power_series_ring_element.cpython-314-darwin.so +0 -0
  606. sage/rings/power_series_ring_element.pxd +12 -0
  607. sage/rings/power_series_ring_element.pyx +3028 -0
  608. sage/rings/puiseux_series_ring.py +487 -0
  609. sage/rings/puiseux_series_ring_element.cpython-314-darwin.so +0 -0
  610. sage/rings/puiseux_series_ring_element.pxd +7 -0
  611. sage/rings/puiseux_series_ring_element.pyx +1055 -0
  612. sage/rings/qqbar_decorators.py +167 -0
  613. sage/rings/quotient_ring.py +1598 -0
  614. sage/rings/quotient_ring_element.py +979 -0
  615. sage/rings/rational.cpython-314-darwin.so +0 -0
  616. sage/rings/rational.pxd +20 -0
  617. sage/rings/rational.pyx +4284 -0
  618. sage/rings/rational_field.py +1730 -0
  619. sage/rings/real_double.cpython-314-darwin.so +0 -0
  620. sage/rings/real_double.pxd +16 -0
  621. sage/rings/real_double.pyx +2215 -0
  622. sage/rings/real_lazy.cpython-314-darwin.so +0 -0
  623. sage/rings/real_lazy.pxd +30 -0
  624. sage/rings/real_lazy.pyx +1773 -0
  625. sage/rings/ring.cpython-314-darwin.so +0 -0
  626. sage/rings/ring.pxd +30 -0
  627. sage/rings/ring.pyx +850 -0
  628. sage/rings/semirings/all.py +3 -0
  629. sage/rings/semirings/non_negative_integer_semiring.py +107 -0
  630. sage/rings/semirings/tropical_mpolynomial.py +972 -0
  631. sage/rings/semirings/tropical_polynomial.py +997 -0
  632. sage/rings/semirings/tropical_semiring.cpython-314-darwin.so +0 -0
  633. sage/rings/semirings/tropical_semiring.pyx +676 -0
  634. sage/rings/semirings/tropical_variety.py +1701 -0
  635. sage/rings/sum_of_squares.cpython-314-darwin.so +0 -0
  636. sage/rings/sum_of_squares.pxd +3 -0
  637. sage/rings/sum_of_squares.pyx +336 -0
  638. sage/rings/tests.py +504 -0
  639. sage/schemes/affine/affine_homset.py +508 -0
  640. sage/schemes/affine/affine_morphism.py +1574 -0
  641. sage/schemes/affine/affine_point.py +460 -0
  642. sage/schemes/affine/affine_rational_point.py +308 -0
  643. sage/schemes/affine/affine_space.py +1264 -0
  644. sage/schemes/affine/affine_subscheme.py +592 -0
  645. sage/schemes/affine/all.py +25 -0
  646. sage/schemes/all__sagemath_categories.py +5 -0
  647. sage/schemes/generic/algebraic_scheme.py +2092 -0
  648. sage/schemes/generic/all.py +5 -0
  649. sage/schemes/generic/ambient_space.py +400 -0
  650. sage/schemes/generic/divisor.py +465 -0
  651. sage/schemes/generic/divisor_group.py +313 -0
  652. sage/schemes/generic/glue.py +84 -0
  653. sage/schemes/generic/homset.py +820 -0
  654. sage/schemes/generic/hypersurface.py +234 -0
  655. sage/schemes/generic/morphism.py +2107 -0
  656. sage/schemes/generic/point.py +237 -0
  657. sage/schemes/generic/scheme.py +1190 -0
  658. sage/schemes/generic/spec.py +199 -0
  659. sage/schemes/product_projective/all.py +6 -0
  660. sage/schemes/product_projective/homset.py +236 -0
  661. sage/schemes/product_projective/morphism.py +517 -0
  662. sage/schemes/product_projective/point.py +568 -0
  663. sage/schemes/product_projective/rational_point.py +550 -0
  664. sage/schemes/product_projective/space.py +1301 -0
  665. sage/schemes/product_projective/subscheme.py +466 -0
  666. sage/schemes/projective/all.py +24 -0
  667. sage/schemes/projective/proj_bdd_height.py +453 -0
  668. sage/schemes/projective/projective_homset.py +718 -0
  669. sage/schemes/projective/projective_morphism.py +2792 -0
  670. sage/schemes/projective/projective_point.py +1484 -0
  671. sage/schemes/projective/projective_rational_point.py +569 -0
  672. sage/schemes/projective/projective_space.py +2571 -0
  673. sage/schemes/projective/projective_subscheme.py +1574 -0
  674. sage/sets/all.py +17 -0
  675. sage/sets/cartesian_product.py +376 -0
  676. sage/sets/condition_set.py +525 -0
  677. sage/sets/disjoint_set.cpython-314-darwin.so +0 -0
  678. sage/sets/disjoint_set.pxd +36 -0
  679. sage/sets/disjoint_set.pyx +998 -0
  680. sage/sets/disjoint_union_enumerated_sets.py +625 -0
  681. sage/sets/family.cpython-314-darwin.so +0 -0
  682. sage/sets/family.pxd +12 -0
  683. sage/sets/family.pyx +1556 -0
  684. sage/sets/finite_enumerated_set.py +406 -0
  685. sage/sets/finite_set_map_cy.cpython-314-darwin.so +0 -0
  686. sage/sets/finite_set_map_cy.pxd +34 -0
  687. sage/sets/finite_set_map_cy.pyx +708 -0
  688. sage/sets/finite_set_maps.py +591 -0
  689. sage/sets/image_set.py +448 -0
  690. sage/sets/integer_range.py +829 -0
  691. sage/sets/non_negative_integers.py +241 -0
  692. sage/sets/positive_integers.py +93 -0
  693. sage/sets/primes.py +188 -0
  694. sage/sets/real_set.py +2760 -0
  695. sage/sets/recursively_enumerated_set.cpython-314-darwin.so +0 -0
  696. sage/sets/recursively_enumerated_set.pxd +31 -0
  697. sage/sets/recursively_enumerated_set.pyx +2082 -0
  698. sage/sets/set.py +2083 -0
  699. sage/sets/set_from_iterator.py +1021 -0
  700. sage/sets/totally_ordered_finite_set.py +329 -0
  701. sage/symbolic/all__sagemath_categories.py +1 -0
  702. sage/symbolic/function.cpython-314-darwin.so +0 -0
  703. sage/symbolic/function.pxd +29 -0
  704. sage/symbolic/function.pyx +1488 -0
  705. sage/symbolic/symbols.py +56 -0
  706. sage/tests/all__sagemath_categories.py +1 -0
  707. sage/tests/cython.cpython-314-darwin.so +0 -0
  708. sage/tests/cython.pyx +37 -0
  709. sage/tests/stl_vector.cpython-314-darwin.so +0 -0
  710. sage/tests/stl_vector.pyx +171 -0
  711. sage/typeset/all.py +6 -0
  712. sage/typeset/ascii_art.py +295 -0
  713. sage/typeset/character_art.py +789 -0
  714. sage/typeset/character_art_factory.py +572 -0
  715. sage/typeset/symbols.py +334 -0
  716. sage/typeset/unicode_art.py +183 -0
  717. sage/typeset/unicode_characters.py +101 -0
@@ -0,0 +1,629 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Ideals 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
+ # 2017-2021 Kwankyu Lee
10
+ # 2018 Frédéric Chapoton
11
+ # 2019 Brent Baccala
12
+ # 2021 Jonathan Kliem
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 sage.misc.cachefunc import cached_method
21
+ from sage.structure.richcmp import richcmp
22
+ from sage.rings.infinity import infinity
23
+
24
+ from .ideal import FunctionFieldIdeal, FunctionFieldIdealInfinite
25
+
26
+
27
+ class FunctionFieldIdeal_rational(FunctionFieldIdeal):
28
+ """
29
+ Fractional ideals of the maximal order of a rational function field.
30
+
31
+ INPUT:
32
+
33
+ - ``ring`` -- the maximal order of the rational function field
34
+
35
+ - ``gen`` -- generator of the ideal, an element of the function field
36
+
37
+ EXAMPLES::
38
+
39
+ sage: K.<x> = FunctionField(QQ)
40
+ sage: O = K.maximal_order()
41
+ sage: I = O.ideal(1/(x^2+x)); I
42
+ Ideal (1/(x^2 + x)) of Maximal order of Rational function field in x over Rational Field
43
+ """
44
+ def __init__(self, ring, gen):
45
+ """
46
+ Initialize.
47
+
48
+ TESTS::
49
+
50
+ sage: K.<x> = FunctionField(QQ)
51
+ sage: O = K.maximal_order()
52
+ sage: I = O.ideal(1/(x^2+x))
53
+ sage: TestSuite(I).run()
54
+ """
55
+ FunctionFieldIdeal.__init__(self, ring)
56
+ self._gen = gen
57
+
58
+ def __hash__(self):
59
+ """
60
+ Return the hash computed from the data.
61
+
62
+ EXAMPLES::
63
+
64
+ sage: K.<x> = FunctionField(QQ)
65
+ sage: O = K.maximal_order()
66
+ sage: I = O.ideal(1/(x^2+x))
67
+ sage: d = { I: 1, I^2: 2 }
68
+ """
69
+ return hash( (self._ring, self._gen) )
70
+
71
+ def __contains__(self, element):
72
+ """
73
+ Test if ``element`` is in this ideal.
74
+
75
+ INPUT:
76
+
77
+ - ``element`` -- element of the function field
78
+
79
+ EXAMPLES::
80
+
81
+ sage: K.<x> = FunctionField(QQ)
82
+ sage: O = K.maximal_order()
83
+ sage: I = O.ideal(1/(x+1))
84
+ sage: x in I
85
+ True
86
+ """
87
+ return (element / self._gen) in self._ring
88
+
89
+ def _richcmp_(self, other, op):
90
+ """
91
+ Compare the element with the other element with respect
92
+ to the comparison operator.
93
+
94
+ INPUT:
95
+
96
+ - ``other`` -- element
97
+
98
+ - ``op`` -- comparison operator
99
+
100
+ EXAMPLES::
101
+
102
+ sage: K.<x> = FunctionField(QQ)
103
+ sage: O = K.maximal_order()
104
+ sage: I = O.ideal(x, x^2 + 1)
105
+ sage: J = O.ideal(x^2 + x + 1, x)
106
+ sage: I == J
107
+ True
108
+ sage: I = O.ideal(x)
109
+ sage: J = O.ideal(x + 1)
110
+ sage: I < J
111
+ True
112
+ """
113
+ return richcmp(self._gen, other._gen, op)
114
+
115
+ def _add_(self, other):
116
+ """
117
+ Add this ideal with the ``other`` ideal.
118
+
119
+ INPUT:
120
+
121
+ - ``other`` -- ideal
122
+
123
+ EXAMPLES::
124
+
125
+ sage: K.<x> = FunctionField(QQ)
126
+ sage: O = K.maximal_order()
127
+ sage: I = O.ideal(x, x^2 + 1)
128
+ sage: J = O.ideal(x^2 + x + 1, x)
129
+ sage: I + J == J + I
130
+ True
131
+ """
132
+ return self._ring.ideal([self._gen, other._gen])
133
+
134
+ def _mul_(self, other):
135
+ """
136
+ Multiply this ideal with the ``other`` ideal.
137
+
138
+ INPUT:
139
+
140
+ - ``other`` -- ideal
141
+
142
+ EXAMPLES::
143
+
144
+ sage: K.<x> = FunctionField(QQ)
145
+ sage: O = K.maximal_order()
146
+ sage: I = O.ideal(x, x^2 + x)
147
+ sage: J = O.ideal(x^2, x)
148
+ sage: I * J == J * I
149
+ True
150
+ """
151
+ return self._ring.ideal([self._gen * other._gen])
152
+
153
+ def _acted_upon_(self, other, on_left):
154
+ """
155
+ Multiply ``other`` with this ideal on the right.
156
+
157
+ INPUT:
158
+
159
+ - ``other`` -- ideal
160
+
161
+ EXAMPLES::
162
+
163
+ sage: K.<x> = FunctionField(QQ)
164
+ sage: O = K.maximal_order()
165
+ sage: I = O.ideal(x^3 + x^2)
166
+ sage: 2 * I
167
+ Ideal (x^3 + x^2) of Maximal order of Rational function field in x over Rational Field
168
+ sage: x * I
169
+ Ideal (x^4 + x^3) of Maximal order of Rational function field in x over Rational Field
170
+ """
171
+ return self._ring.ideal([other * self._gen])
172
+
173
+ def __invert__(self):
174
+ """
175
+ Return the ideal inverse of this fractional ideal.
176
+
177
+ EXAMPLES::
178
+
179
+ sage: F.<x> = FunctionField(QQ)
180
+ sage: O = F.maximal_order()
181
+ sage: I = O.ideal(x/(x^2+1))
182
+ sage: ~I
183
+ Ideal ((x^2 + 1)/x) of Maximal order of Rational function field
184
+ in x over Rational Field
185
+ """
186
+ return self._ring.ideal([~(self._gen)])
187
+
188
+ def denominator(self):
189
+ """
190
+ Return the denominator of this fractional ideal.
191
+
192
+ EXAMPLES::
193
+
194
+ sage: F.<x> = FunctionField(QQ)
195
+ sage: O = F.maximal_order()
196
+ sage: I = O.ideal(x/(x^2+1))
197
+ sage: I.denominator()
198
+ x^2 + 1
199
+ """
200
+ return self._gen.denominator()
201
+
202
+ def is_prime(self):
203
+ """
204
+ Return ``True`` if this is a prime ideal.
205
+
206
+ EXAMPLES::
207
+
208
+ sage: K.<x> = FunctionField(QQ)
209
+ sage: O = K.maximal_order()
210
+ sage: I = O.ideal(x^3 + x^2)
211
+ sage: [f.is_prime() for f,m in I.factor()] # needs sage.libs.pari
212
+ [True, True]
213
+ """
214
+ return self._gen.denominator() == 1 and self._gen.numerator().is_prime()
215
+
216
+ @cached_method
217
+ def module(self):
218
+ """
219
+ Return the module, that is the ideal viewed as a module over the ring.
220
+
221
+ EXAMPLES::
222
+
223
+ sage: K.<x> = FunctionField(QQ)
224
+ sage: O = K.maximal_order()
225
+ sage: I = O.ideal(x^3 + x^2)
226
+ sage: I.module() # needs sage.modules
227
+ Free module of degree 1 and rank 1 over Maximal order of Rational
228
+ function field in x over Rational Field
229
+ Echelon basis matrix:
230
+ [x^3 + x^2]
231
+ sage: J = 0*I
232
+ sage: J.module() # needs sage.modules
233
+ Free module of degree 1 and rank 0 over Maximal order of Rational
234
+ function field in x over Rational Field
235
+ Echelon basis matrix:
236
+ []
237
+ """
238
+ V, fr, to = self.ring().fraction_field().vector_space()
239
+ return V.span([to(g) for g in self.gens()], base_ring=self.ring())
240
+
241
+ def gen(self):
242
+ """
243
+ Return the unique generator of this ideal.
244
+
245
+ EXAMPLES::
246
+
247
+ sage: # needs sage.rings.finite_rings
248
+ sage: K.<x> = FunctionField(GF(4))
249
+ sage: O = K.maximal_order()
250
+ sage: I = O.ideal(x^2 + x)
251
+ sage: I.gen()
252
+ x^2 + x
253
+ """
254
+ return self._gen
255
+
256
+ def gens(self) -> tuple:
257
+ """
258
+ Return the tuple of the unique generator of this ideal.
259
+
260
+ EXAMPLES::
261
+
262
+ sage: # needs sage.rings.finite_rings
263
+ sage: K.<x> = FunctionField(GF(4))
264
+ sage: O = K.maximal_order()
265
+ sage: I = O.ideal(x^2 + x)
266
+ sage: I.gens()
267
+ (x^2 + x,)
268
+ """
269
+ return (self._gen,)
270
+
271
+ def gens_over_base(self) -> tuple:
272
+ """
273
+ Return the generator of this ideal as a rank one module over the maximal
274
+ order.
275
+
276
+ EXAMPLES::
277
+
278
+ sage: # needs sage.rings.finite_rings
279
+ sage: K.<x> = FunctionField(GF(4))
280
+ sage: O = K.maximal_order()
281
+ sage: I = O.ideal(x^2 + x)
282
+ sage: I.gens_over_base()
283
+ (x^2 + x,)
284
+ """
285
+ return (self._gen,)
286
+
287
+ def valuation(self, ideal):
288
+ """
289
+ Return the valuation of the ideal at this prime ideal.
290
+
291
+ INPUT:
292
+
293
+ - ``ideal`` -- fractional ideal
294
+
295
+ EXAMPLES::
296
+
297
+ sage: F.<x> = FunctionField(QQ)
298
+ sage: O = F.maximal_order()
299
+ sage: I = O.ideal(x^2*(x^2+x+1)^3)
300
+ sage: [f.valuation(I) for f,_ in I.factor()] # needs sage.libs.pari
301
+ [2, 3]
302
+ """
303
+ if not self.is_prime():
304
+ raise TypeError("not a prime ideal")
305
+
306
+ O = self.ring()
307
+ d = ideal.denominator()
308
+ return self._valuation(d*ideal) - self._valuation(O.ideal(d))
309
+
310
+ def _valuation(self, ideal):
311
+ """
312
+ Return the valuation of the integral ideal at this prime ideal.
313
+
314
+ INPUT:
315
+
316
+ - ``ideal`` -- ideal
317
+
318
+ EXAMPLES::
319
+
320
+ sage: F.<x> = FunctionField(QQ)
321
+ sage: O = F.maximal_order()
322
+ sage: p = O.ideal(x)
323
+ sage: p.valuation(O.ideal(x + 1)) # indirect doctest # needs sage.libs.pari
324
+ 0
325
+ sage: p.valuation(O.ideal(x^2)) # indirect doctest # needs sage.libs.pari
326
+ 2
327
+ sage: p.valuation(O.ideal(1/x^3)) # indirect doctest # needs sage.libs.pari
328
+ -3
329
+ sage: p.valuation(O.ideal(0)) # indirect doctest # needs sage.libs.pari
330
+ +Infinity
331
+ """
332
+ return ideal.gen().valuation(self.gen())
333
+
334
+ def _factor(self):
335
+ """
336
+ Return the list of prime and multiplicity pairs of the
337
+ factorization of this ideal.
338
+
339
+ EXAMPLES::
340
+
341
+ sage: # needs sage.rings.finite_rings
342
+ sage: K.<x> = FunctionField(GF(4))
343
+ sage: O = K.maximal_order()
344
+ sage: I = O.ideal(x^3*(x+1)^2)
345
+ sage: I.factor() # indirect doctest
346
+ (Ideal (x) of Maximal order of Rational function field in x
347
+ over Finite Field in z2 of size 2^2)^3 *
348
+ (Ideal (x + 1) of Maximal order of Rational function field in x
349
+ over Finite Field in z2 of size 2^2)^2
350
+ """
351
+ return [(self.ring().ideal(f), m) for f, m in self._gen.factor()]
352
+
353
+
354
+ class FunctionFieldIdealInfinite_rational(FunctionFieldIdealInfinite):
355
+ """
356
+ Fractional ideal of the maximal order of rational function field.
357
+
358
+ INPUT:
359
+
360
+ - ``ring`` -- infinite maximal order
361
+
362
+ - ``gen`` -- generator
363
+
364
+ Note that the infinite maximal order is a principal ideal domain.
365
+
366
+ EXAMPLES::
367
+
368
+ sage: K.<x> = FunctionField(GF(2))
369
+ sage: Oinf = K.maximal_order_infinite()
370
+ sage: Oinf.ideal(x)
371
+ Ideal (x) of Maximal infinite order of Rational function field in x over Finite Field of size 2
372
+ """
373
+ def __init__(self, ring, gen):
374
+ """
375
+ Initialize.
376
+
377
+ TESTS::
378
+
379
+ sage: # needs sage.rings.finite_rings
380
+ sage: K.<x> = FunctionField(GF(2))
381
+ sage: Oinf = K.maximal_order_infinite()
382
+ sage: I = Oinf.ideal(x)
383
+ sage: TestSuite(I).run()
384
+ """
385
+ FunctionFieldIdealInfinite.__init__(self, ring)
386
+ self._gen = gen
387
+
388
+ def __hash__(self):
389
+ """
390
+ Return the hash of this fractional ideal.
391
+
392
+ EXAMPLES::
393
+
394
+ sage: # needs sage.rings.finite_rings
395
+ sage: K.<x> = FunctionField(GF(2))
396
+ sage: Oinf = K.maximal_order_infinite()
397
+ sage: I = Oinf.ideal(x)
398
+ sage: J = Oinf.ideal(1/x)
399
+ sage: d = { I: 1, J: 2 }
400
+ """
401
+ return hash( (self.ring(), self._gen) )
402
+
403
+ def __contains__(self, element):
404
+ """
405
+ Test if ``element`` is in this ideal.
406
+
407
+ INPUT:
408
+
409
+ - ``element`` -- element of the function field
410
+
411
+ EXAMPLES::
412
+
413
+ sage: K.<x> = FunctionField(QQ)
414
+ sage: O = K.maximal_order_infinite()
415
+ sage: I = O.ideal(1/(x+1))
416
+ sage: x in I
417
+ False
418
+ sage: 1/x in I
419
+ True
420
+ sage: x/(x+1) in I
421
+ False
422
+ sage: 1/(x*(x+1)) in I
423
+ True
424
+ """
425
+ return (element / self._gen) in self._ring
426
+
427
+ def _richcmp_(self, other, op):
428
+ """
429
+ Compare this ideal and ``other`` with respect to ``op``.
430
+
431
+ EXAMPLES::
432
+
433
+ sage: # needs sage.rings.finite_rings
434
+ sage: K.<x> = FunctionField(GF(2))
435
+ sage: Oinf = K.maximal_order_infinite()
436
+ sage: I = Oinf.ideal(x + 1)
437
+ sage: J = Oinf.ideal(x^2 + x)
438
+ sage: I + J == J
439
+ True
440
+ """
441
+ return richcmp(self._gen, other._gen, op)
442
+
443
+ def _add_(self, other):
444
+ """
445
+ Add this ideal with the other ideal.
446
+
447
+ INPUT:
448
+
449
+ - ``other`` -- ideal
450
+
451
+ EXAMPLES::
452
+
453
+ sage: # needs sage.rings.finite_rings
454
+ sage: K.<x> = FunctionField(GF(2))
455
+ sage: Oinf = K.maximal_order_infinite()
456
+ sage: I = Oinf.ideal(x/(x^2+1))
457
+ sage: J = Oinf.ideal(1/(x+1))
458
+ sage: I + J
459
+ Ideal (1/x) of Maximal infinite order of Rational function field
460
+ in x over Finite Field of size 2
461
+ """
462
+ return self._ring.ideal([self._gen, other._gen])
463
+
464
+ def _mul_(self, other):
465
+ """
466
+ Multiply this ideal with the ``other`` ideal.
467
+
468
+ INPUT:
469
+
470
+ - ``other`` -- ideal
471
+
472
+ EXAMPLES::
473
+
474
+ sage: # needs sage.rings.finite_rings
475
+ sage: K.<x> = FunctionField(GF(2))
476
+ sage: Oinf = K.maximal_order_infinite()
477
+ sage: I = Oinf.ideal(x/(x^2+1))
478
+ sage: J = Oinf.ideal(1/(x+1))
479
+ sage: I * J
480
+ Ideal (1/x^2) of Maximal infinite order of Rational function field
481
+ in x over Finite Field of size 2
482
+ """
483
+ return self._ring.ideal([self._gen * other._gen])
484
+
485
+ def _acted_upon_(self, other, on_left):
486
+ """
487
+ Multiply this ideal with the ``other`` ideal.
488
+
489
+ INPUT:
490
+
491
+ - ``other`` -- ideal
492
+
493
+ EXAMPLES::
494
+
495
+ sage: # needs sage.rings.finite_rings
496
+ sage: K.<x> = FunctionField(GF(2))
497
+ sage: Oinf = K.maximal_order_infinite()
498
+ sage: I = Oinf.ideal(x/(x^2+1))
499
+ sage: x * I
500
+ Ideal (1) of Maximal infinite order of Rational function field
501
+ in x over Finite Field of size 2
502
+ """
503
+ return self._ring.ideal([other * self._gen])
504
+
505
+ def __invert__(self):
506
+ """
507
+ Return the multiplicative inverse of this ideal.
508
+
509
+ EXAMPLES::
510
+
511
+ sage: # needs sage.rings.finite_rings
512
+ sage: K.<x> = FunctionField(GF(2))
513
+ sage: Oinf = K.maximal_order_infinite()
514
+ sage: I = Oinf.ideal(x/(x^2 + 1))
515
+ sage: ~I # indirect doctest
516
+ Ideal (x) of Maximal infinite order of Rational function field in x
517
+ over Finite Field of size 2
518
+ """
519
+ return self._ring.ideal([~self._gen])
520
+
521
+ def is_prime(self):
522
+ """
523
+ Return ``True`` if this ideal is a prime ideal.
524
+
525
+ EXAMPLES::
526
+
527
+ sage: # needs sage.rings.finite_rings
528
+ sage: K.<x> = FunctionField(GF(2))
529
+ sage: Oinf = K.maximal_order_infinite()
530
+ sage: I = Oinf.ideal(x/(x^2 + 1))
531
+ sage: I.is_prime()
532
+ True
533
+ """
534
+ x = self._ring.fraction_field().gen()
535
+ return self._gen == 1/x
536
+
537
+ def gen(self):
538
+ """
539
+ Return the generator of this principal ideal.
540
+
541
+ EXAMPLES::
542
+
543
+ sage: # needs sage.rings.finite_rings
544
+ sage: K.<x> = FunctionField(GF(2))
545
+ sage: Oinf = K.maximal_order_infinite()
546
+ sage: I = Oinf.ideal((x+1)/(x^3+x), (x^2+1)/x^4)
547
+ sage: I.gen()
548
+ 1/x^2
549
+ """
550
+ return self._gen
551
+
552
+ def gens(self) -> tuple:
553
+ """
554
+ Return the generator of this principal ideal.
555
+
556
+ EXAMPLES::
557
+
558
+ sage: # needs sage.rings.finite_rings
559
+ sage: K.<x> = FunctionField(GF(2))
560
+ sage: Oinf = K.maximal_order_infinite()
561
+ sage: I = Oinf.ideal((x+1)/(x^3+x), (x^2+1)/x^4)
562
+ sage: I.gens()
563
+ (1/x^2,)
564
+ """
565
+ return (self._gen,)
566
+
567
+ def gens_over_base(self) -> tuple:
568
+ """
569
+ Return the generator of this ideal as a rank one module
570
+ over the infinite maximal order.
571
+
572
+ EXAMPLES::
573
+
574
+ sage: # needs sage.rings.finite_rings
575
+ sage: K.<x> = FunctionField(GF(2))
576
+ sage: Oinf = K.maximal_order_infinite()
577
+ sage: I = Oinf.ideal((x+1)/(x^3+x), (x^2+1)/x^4)
578
+ sage: I.gens_over_base()
579
+ (1/x^2,)
580
+ """
581
+ return (self._gen,)
582
+
583
+ def valuation(self, ideal):
584
+ """
585
+ Return the valuation of ``ideal`` at this prime ideal.
586
+
587
+ INPUT:
588
+
589
+ - ``ideal`` -- fractional ideal
590
+
591
+ EXAMPLES::
592
+
593
+ sage: F.<x> = FunctionField(QQ)
594
+ sage: O = F.maximal_order_infinite()
595
+ sage: p = O.ideal(1/x)
596
+ sage: p.valuation(O.ideal(x/(x+1)))
597
+ 0
598
+ sage: p.valuation(O.ideal(0))
599
+ +Infinity
600
+ """
601
+ if not self.is_prime():
602
+ raise TypeError("not a prime ideal")
603
+
604
+ f = ideal.gen()
605
+ if f == 0:
606
+ return infinity
607
+ else:
608
+ return f.denominator().degree() - f.numerator().degree()
609
+
610
+ def _factor(self):
611
+ """
612
+ Return the factorization of this ideal into prime ideals.
613
+
614
+ EXAMPLES::
615
+
616
+ sage: # needs sage.rings.finite_rings
617
+ sage: K.<x> = FunctionField(GF(2))
618
+ sage: Oinf = K.maximal_order_infinite()
619
+ sage: I = Oinf.ideal((x+1)/(x^3+1))
620
+ sage: I._factor()
621
+ [(Ideal (1/x) of Maximal infinite order of Rational function field in x
622
+ over Finite Field of size 2, 2)]
623
+ """
624
+ g = ~(self.ring().fraction_field().gen())
625
+ m = self._gen.denominator().degree() - self._gen.numerator().degree()
626
+ if m == 0:
627
+ return []
628
+ else:
629
+ return [(self.ring().ideal(g), m)]