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,261 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Lie Algebras With Basis
4
+
5
+ AUTHORS:
6
+
7
+ - Travis Scrimshaw (07-15-2013): Initial implementation
8
+ """
9
+
10
+ #*****************************************************************************
11
+ # Copyright (C) 2013-2024 Travis Scrimshaw <tcscrims at gmail.com>
12
+ #
13
+ # This program is free software: you can redistribute it and/or modify
14
+ # it under the terms of the GNU General Public License as published by
15
+ # the Free Software Foundation, either version 2 of the License, or
16
+ # (at your option) any later version.
17
+ # https://www.gnu.org/licenses/
18
+ #*****************************************************************************
19
+
20
+ from sage.misc.abstract_method import abstract_method
21
+ from sage.misc.lazy_import import LazyImport
22
+ from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
23
+ from sage.categories.lie_algebras import LieAlgebras
24
+
25
+
26
+ class LieAlgebrasWithBasis(CategoryWithAxiom_over_base_ring):
27
+ """
28
+ Category of Lie algebras with a basis.
29
+ """
30
+ _base_category_class_and_axiom = (LieAlgebras, "WithBasis")
31
+
32
+ def example(self, gens=None):
33
+ """
34
+ Return an example of a Lie algebra as per
35
+ :meth:`Category.example <sage.categories.category.Category.example>`.
36
+
37
+ EXAMPLES::
38
+
39
+ sage: LieAlgebras(QQ).WithBasis().example() # needs sage.modules
40
+ An example of a Lie algebra: the abelian Lie algebra on the
41
+ generators indexed by Partitions over Rational Field
42
+
43
+ Another set of generators can be specified as an optional argument::
44
+
45
+ sage: LieAlgebras(QQ).WithBasis().example(Compositions()) # needs sage.modules
46
+ An example of a Lie algebra: the abelian Lie algebra on the
47
+ generators indexed by Compositions of nonnegative integers
48
+ over Rational Field
49
+ """
50
+ if gens is None:
51
+ from sage.combinat.partition import Partitions
52
+ gens = Partitions()
53
+ from sage.categories.examples.lie_algebras_with_basis import Example
54
+ return Example(self.base_ring(), gens)
55
+
56
+ Graded = LazyImport('sage.categories.graded_lie_algebras_with_basis',
57
+ 'GradedLieAlgebrasWithBasis',
58
+ as_name='Graded')
59
+
60
+ class ParentMethods:
61
+ def _basis_key(self, x):
62
+ """
63
+ Return the key used to compare two basis element indices.
64
+
65
+ The default is to call the element itself.
66
+
67
+ TESTS::
68
+
69
+ sage: L = LieAlgebras(QQ).WithBasis().example() # needs sage.modules
70
+ sage: L._basis_key(Partition([3,1])) # needs sage.modules
71
+ [3, 1]
72
+ """
73
+ return x
74
+
75
+ @abstract_method(optional=True)
76
+ def bracket_on_basis(self, x, y):
77
+ """
78
+ Return the bracket of basis elements indexed by ``x`` and ``y``
79
+ where ``x < y``. If this is not implemented, then the method
80
+ ``_bracket_()`` for the elements must be overwritten.
81
+
82
+ EXAMPLES::
83
+
84
+ sage: L = LieAlgebras(QQ).WithBasis().example() # needs sage.modules
85
+ sage: L.bracket_on_basis(Partition([3,1]), Partition([2,2,1,1])) # needs sage.modules
86
+ 0
87
+ """
88
+
89
+ def module(self):
90
+ """
91
+ Return an `R`-module which is isomorphic to the
92
+ underlying `R`-module of ``self``.
93
+
94
+ See
95
+ :meth:`sage.categories.lie_algebras.LieAlgebras.module` for
96
+ an explanation.
97
+
98
+ EXAMPLES::
99
+
100
+ sage: L = LieAlgebras(QQ).WithBasis().example() # needs sage.modules
101
+ sage: L.module() # needs sage.modules
102
+ Free module generated by Partitions over Rational Field
103
+ """
104
+ from sage.combinat.free_module import CombinatorialFreeModule
105
+ try:
106
+ # Try to see if it has an indexing set
107
+ return CombinatorialFreeModule(self.base_ring(), self.basis().keys())
108
+ except AttributeError:
109
+ # Otherwise just index by the basis of ``self`` as a fallback
110
+ return CombinatorialFreeModule(self.base_ring(), self.basis())
111
+
112
+ def from_vector(self, v, order=None, coerce=False):
113
+ """
114
+ Return the element of ``self`` corresponding to the
115
+ vector ``v`` in ``self.module()``.
116
+
117
+ Implement this if you implement :meth:`module`; see the
118
+ documentation of
119
+ :meth:`sage.categories.lie_algebras.LieAlgebras.module`
120
+ for how this is to be done.
121
+
122
+ EXAMPLES::
123
+
124
+ sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example() # needs sage.combinat sage.libs.singular sage.modules
125
+ sage: u = L.from_vector(vector(QQ, (1, 0, 0))); u # needs sage.combinat sage.libs.singular sage.modules
126
+ (1, 0, 0)
127
+ sage: parent(u) is L # needs sage.combinat sage.libs.singular sage.modules
128
+ True
129
+ """
130
+ B = self.basis()
131
+ return self.sum(v[i] * B[i] for i in v.support())
132
+
133
+ # Remove once #22629 is merged
134
+ def dimension(self):
135
+ """
136
+ Return the dimension of ``self``.
137
+
138
+ EXAMPLES::
139
+
140
+ sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example() # needs sage.combinat sage.libs.singular sage.modules
141
+ sage: L.dimension() # needs sage.combinat sage.libs.singular sage.modules
142
+ 3
143
+
144
+ ::
145
+
146
+ sage: L = LieAlgebra(QQ, 'x,y', {('x','y'): {'x':1}}) # needs sage.combinat sage.modules
147
+ sage: L.dimension() # needs sage.combinat sage.modules
148
+ 2
149
+ """
150
+ return self.basis().cardinality()
151
+
152
+ def pbw_basis(self, basis_key=None, **kwds):
153
+ """
154
+ Return the Poincare-Birkhoff-Witt basis of the universal
155
+ enveloping algebra corresponding to ``self``.
156
+
157
+ EXAMPLES::
158
+
159
+ sage: L = lie_algebras.sl(QQ, 2) # needs sage.combinat sage.graphs sage.modules
160
+ sage: PBW = L.pbw_basis() # needs sage.combinat sage.graphs sage.modules
161
+ """
162
+ from sage.algebras.lie_algebras.poincare_birkhoff_witt \
163
+ import PoincareBirkhoffWittBasis
164
+ return PoincareBirkhoffWittBasis(self, basis_key, **kwds)
165
+
166
+ poincare_birkhoff_witt_basis = pbw_basis
167
+
168
+ _construct_UEA = pbw_basis
169
+
170
+ class ElementMethods:
171
+ def _bracket_(self, y):
172
+ """
173
+ Return the Lie bracket ``[self, y]``, where ``y`` is an
174
+ element of the same Lie algebra as ``self``.
175
+
176
+ EXAMPLES::
177
+
178
+ sage: # needs sage.combinat sage.modules
179
+ sage: L = LieAlgebras(QQ).WithBasis().example()
180
+ sage: G = L.lie_algebra_generators()
181
+ sage: x = G[Partition([4,3,3,1])]
182
+ sage: y = G[Partition([6,1])]
183
+ sage: x.bracket(y)
184
+ 0
185
+ """
186
+ P = self.parent()
187
+
188
+ def term(ml, mr):
189
+ key_ml = P._basis_key(ml)
190
+ key_mr = P._basis_key(mr)
191
+ if key_ml == key_mr:
192
+ return P.zero()
193
+ if key_ml < key_mr:
194
+ return P.bracket_on_basis(ml, mr)
195
+ return -P.bracket_on_basis(mr, ml)
196
+
197
+ return P.sum(cl * cr * term(ml, mr)
198
+ for ml, cl in self for mr, cr in y)
199
+
200
+ def to_vector(self, order=None):
201
+ """
202
+ Return the vector in ``g.module()`` corresponding to the
203
+ element ``self`` of ``g`` (where ``g`` is the parent of
204
+ ``self``).
205
+
206
+ Implement this if you implement ``g.module()``.
207
+ See :meth:`sage.categories.lie_algebras.LieAlgebras.module`
208
+ for how this is to be done.
209
+
210
+ EXAMPLES::
211
+
212
+ sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example() # needs sage.combinat sage.libs.singular sage.modules
213
+ sage: L.an_element().to_vector() # needs sage.combinat sage.libs.singular sage.modules
214
+ (0, 0, 0)
215
+
216
+ .. TODO::
217
+
218
+ Doctest this implementation on an example not overshadowed.
219
+ """
220
+ M = self.parent().module()
221
+ B = M.basis()
222
+ return M.sum(self[i] * B[i] for i in self.support())
223
+
224
+ def lift(self):
225
+ """
226
+ Lift ``self`` to the universal enveloping algebra.
227
+
228
+ EXAMPLES::
229
+
230
+ sage: # needs sage.combinat sage.groups
231
+ sage: S = SymmetricGroup(3).algebra(QQ)
232
+ sage: L = LieAlgebra(associative=S)
233
+ sage: x = L.gen(3)
234
+ sage: y = L.gen(1)
235
+ sage: x.lift()
236
+ b3
237
+ sage: y.lift()
238
+ b1
239
+ sage: x * y
240
+ b1*b3 + b4 - b5
241
+ """
242
+ P = self.parent()
243
+ UEA = P.universal_enveloping_algebra()
244
+ s = UEA.zero()
245
+ if not self:
246
+ return s
247
+ # Special hook for when the index set of the parent of ``self``
248
+ # does not match the generators index set of the UEA.
249
+ if hasattr(P, '_UEA_names_map'):
250
+ names_map = P._UEA_names_map
251
+ gen_dict = UEA.gens_dict()
252
+ for t, c in self.monomial_coefficients(copy=False).items():
253
+ s += c * gen_dict[names_map[t]]
254
+ else:
255
+ try:
256
+ gen_dict = UEA.algebra_generators()
257
+ except (TypeError, AttributeError):
258
+ gen_dict = UEA.gens_dict()
259
+ for t, c in self.monomial_coefficients(copy=False).items():
260
+ s += c * gen_dict[t]
261
+ return s
@@ -0,0 +1,350 @@
1
+ # sage_setup: distribution = sagemath-categories
2
+ r"""
3
+ Lie Conformal Algebras
4
+
5
+ Let `R` be a commutative ring, a *super Lie conformal algebra*
6
+ [Kac1997]_ over `R` (also known as a *vertex Lie algebra*) is an `R[T]`
7
+ super module `L` together with a `\mathbb{Z}/2\mathbb{Z}`-graded `R`-bilinear
8
+ operation (called the `\lambda`-bracket) `L\otimes L \rightarrow L[\lambda]`
9
+ (polynomials in `\lambda` with coefficients in `L`),
10
+ `a \otimes b \mapsto [a_\lambda b]` satisfying
11
+
12
+ 1. Sesquilinearity:
13
+
14
+ .. MATH::
15
+
16
+ [Ta_\lambda b] = - \lambda [a_\lambda b], \qquad [a_\lambda Tb] =
17
+ (\lambda+ T) [a_\lambda b].
18
+
19
+ 2. Skew-Symmetry:
20
+
21
+ .. MATH::
22
+
23
+ [a_\lambda b] = - (-1)^{p(a)p(b)} [b_{-\lambda - T} a],
24
+
25
+ where `p(a)` is `0` if `a` is *even* and `1` if `a` is *odd*. The
26
+ bracket in the RHS is computed as follows. First we evaluate
27
+ `[b_\mu a]` with the formal parameter `\mu` to the *left*, then
28
+ replace each appearance of the formal variable `\mu` by `-\lambda - T`.
29
+ Finally apply `T` to the coefficients in `L`.
30
+
31
+ 3. Jacobi identity:
32
+
33
+ .. MATH::
34
+
35
+ [a_\lambda [b_\mu c]] = [ [a_{\lambda + \mu} b]_\mu c] +
36
+ (-1)^{p(a)p(b)} [b_\mu [a_\lambda c]],
37
+
38
+ which is understood as an equality in `L[\lambda, \mu]`.
39
+
40
+ `T` is usually called the *translation operation* or the *derivative*.
41
+ For an element `a \in L` we will say that `Ta` is the *derivative of*
42
+ `a`. We define the `n`-*th products* `a_{(n)} b` for `a,b \in L` by
43
+
44
+ .. MATH::
45
+
46
+ [a_\lambda b] = \sum_{n \geq 0} \frac{\lambda^n}{n!} a_{(n)} b.
47
+
48
+ A Lie conformal algebra is called *H-Graded* [DSK2006]_ if there exists
49
+ a decomposition `L = \oplus L_n` such that the
50
+ `\lambda`-bracket becomes graded of degree `-1`, that is:
51
+
52
+ .. MATH::
53
+
54
+ a_{(n)} b \in L_{p + q -n -1} \qquad
55
+ a \in L_p, \: b \in L_q, \: n \geq 0.
56
+
57
+ In particular this implies that the action of `T` increases
58
+ degree by `1`.
59
+
60
+ .. NOTE::
61
+
62
+ In the literature arbitrary gradings are allowed. In this
63
+ implementation we only support nonnegative rational gradings.
64
+
65
+ EXAMPLES:
66
+
67
+ 1. The **Virasoro** Lie conformal algebra `Vir` over a ring `R`
68
+ where `12` is invertible has two generators `L, C` as an `R[T]`-module.
69
+ It is the direct sum of a free module of rank `1` generated by `L`, and
70
+ a free rank one `R` module generated by `C` satisfying `TC = 0`. `C`
71
+ is central (the `\lambda`-bracket of `C` with any other vector
72
+ vanishes). The remaining `\lambda`-bracket is given by
73
+
74
+ .. MATH::
75
+
76
+ [L_\lambda L] = T L + 2 \lambda L + \frac{\lambda^3}{12} C.
77
+
78
+ 2. The **affine** or current Lie conformal algebra `L(\mathfrak{g})`
79
+ associated to a finite dimensional Lie algebra `\mathfrak{g}` with
80
+ non-degenerate, invariant `R`-bilinear form `(,)` is given as a central
81
+ extension of the free
82
+ `R[T]` module generated by `\mathfrak{g}` by a central element `K`. The
83
+ `\lambda`-bracket of generators is given by
84
+
85
+ .. MATH::
86
+
87
+ [a_\lambda b] = [a,b] + \lambda (a,b) K, \qquad a,b \in \mathfrak{g}
88
+
89
+ 3. The **Weyl** Lie conformal algebra, or `\beta-\gamma` system is
90
+ given as the central extension of a free `R[T]` module with two
91
+ generators `\beta` and `\gamma`, by a central element `K`.
92
+ The only non-trivial brackets among generators are
93
+
94
+ .. MATH::
95
+
96
+ [\beta_\lambda \gamma] = - [\gamma_\lambda \beta] = K
97
+
98
+ 4. The **Neveu-Schwarz** super Lie conformal algebra is a super Lie
99
+ conformal algebra which is an extension of the Virasoro Lie conformal
100
+ algebra. It consists of a Virasoro generator `L` as in example 1 above
101
+ and an *odd* generator `G`. The remaining brackets are given by:
102
+
103
+ .. MATH::
104
+
105
+ [L_\lambda G] = \left( T + \frac{3}{2} \lambda \right) G \qquad
106
+ [G_\lambda G] = 2 L + \frac{\lambda^2}{3} C
107
+
108
+ .. SEEALSO::
109
+
110
+ - :mod:`sage.algebras.lie_conformal_algebras.lie_conformal_algebra`
111
+ - :mod:`sage.algebras.lie_conformal_algebras.examples`
112
+
113
+ AUTHORS:
114
+
115
+ - Reimundo Heluani (2019-10-05): Initial implementation.
116
+ """
117
+
118
+ #******************************************************************************
119
+ # Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
120
+ #
121
+ # This program is free software: you can redistribute it and/or modify
122
+ # it under the terms of the GNU General Public License as published by
123
+ # the Free Software Foundation, either version 2 of the License, or
124
+ # (at your option) any later version.
125
+ # http://www.gnu.org/licenses/
126
+ #*****************************************************************************
127
+
128
+ from sage.categories.category_types import Category_over_base_ring
129
+ from sage.categories.lambda_bracket_algebras import LambdaBracketAlgebras
130
+ from sage.misc.cachefunc import cached_method
131
+ from sage.misc.lazy_import import LazyImport
132
+
133
+
134
+ class LieConformalAlgebras(Category_over_base_ring):
135
+ r"""
136
+ The category of Lie conformal algebras.
137
+
138
+ This is the base category for all Lie conformal algebras.
139
+ Subcategories with axioms are ``FinitelyGenerated`` and
140
+ ``WithBasis``. A *finitely generated* Lie conformal algebra is a
141
+ Lie conformal algebra over `R` which is finitely generated as an
142
+ `R[T]`-module. A Lie conformal algebra *with basis* is one with a
143
+ preferred basis as an `R`-module.
144
+
145
+ EXAMPLES:
146
+
147
+ The base category::
148
+
149
+ sage: C = LieConformalAlgebras(QQ); C
150
+ Category of Lie conformal algebras over Rational Field
151
+ sage: C.is_subcategory(VectorSpaces(QQ))
152
+ True
153
+
154
+ Some subcategories::
155
+
156
+ sage: LieConformalAlgebras(QQbar).FinitelyGenerated().WithBasis() # needs sage.rings.number_field
157
+ Category of finitely generated Lie conformal algebras with basis
158
+ over Algebraic Field
159
+
160
+ In addition we support functorial constructions ``Graded`` and
161
+ ``Super``. These functors commute::
162
+
163
+ sage: CGS = LieConformalAlgebras(AA).Graded().Super(); CGS # needs sage.rings.number_field
164
+ Category of H-graded super Lie conformal algebras over Algebraic Real Field
165
+ sage: CGS is LieConformalAlgebras(AA).Super().Graded() # needs sage.rings.number_field
166
+ True
167
+
168
+ That is, we only consider gradings on super Lie conformal algebras
169
+ that are compatible with the `\ZZ/2\ZZ` grading.
170
+
171
+ The base ring needs to be a commutative ring::
172
+
173
+ sage: LieConformalAlgebras(QuaternionAlgebra(2)) # needs sage.combinat sage.libs.singular sage.modules
174
+ Traceback (most recent call last):
175
+ ValueError: base must be a commutative ring
176
+ got Quaternion Algebra (-1, -1) with base ring Rational Field
177
+ """
178
+ @cached_method
179
+ def super_categories(self):
180
+ """
181
+ The list of super categories of this category.
182
+
183
+ EXAMPLES::
184
+
185
+ sage: C = LieConformalAlgebras(QQ)
186
+ sage: C.super_categories()
187
+ [Category of Lambda bracket algebras over Rational Field]
188
+ sage: C = LieConformalAlgebras(QQ).FinitelyGenerated(); C
189
+ Category of finitely generated Lie conformal algebras over Rational Field
190
+ sage: C.super_categories()
191
+ [Category of finitely generated lambda bracket algebras over Rational Field,
192
+ Category of Lie conformal algebras over Rational Field]
193
+ sage: C.all_super_categories()
194
+ [Category of finitely generated Lie conformal algebras over Rational Field,
195
+ Category of finitely generated lambda bracket algebras over Rational Field,
196
+ Category of Lie conformal algebras over Rational Field,
197
+ Category of Lambda bracket algebras over Rational Field,
198
+ Category of vector spaces over Rational Field,
199
+ Category of modules over Rational Field,
200
+ Category of bimodules over Rational Field on the left and Rational Field on the right,
201
+ Category of right modules over Rational Field,
202
+ Category of left modules over Rational Field,
203
+ Category of commutative additive groups,
204
+ Category of additive groups,
205
+ Category of additive inverse additive unital additive magmas,
206
+ Category of commutative additive monoids,
207
+ Category of additive monoids,
208
+ Category of additive unital additive magmas,
209
+ Category of commutative additive semigroups,
210
+ Category of additive commutative additive magmas,
211
+ Category of additive semigroups,
212
+ Category of additive magmas,
213
+ Category of sets,
214
+ Category of sets with partial maps,
215
+ Category of objects]
216
+ """
217
+ return [LambdaBracketAlgebras(self.base_ring())]
218
+
219
+ def example(self):
220
+ """
221
+ An example of parent in this category.
222
+
223
+ EXAMPLES::
224
+
225
+ sage: LieConformalAlgebras(QQ).example() # needs sage.combinat sage.modules
226
+ The Virasoro Lie conformal algebra over Rational Field
227
+ """
228
+ from sage.algebras.lie_conformal_algebras.virasoro_lie_conformal_algebra import (
229
+ VirasoroLieConformalAlgebra,
230
+ )
231
+ return VirasoroLieConformalAlgebra(self.base_ring())
232
+
233
+ def _repr_object_names(self):
234
+ """
235
+ The name of the objects of this category.
236
+
237
+ EXAMPLES::
238
+
239
+ sage: LieConformalAlgebras(QQ)
240
+ Category of Lie conformal algebras over Rational Field
241
+ """
242
+ return "Lie conformal algebras over {}".format(self.base_ring())
243
+
244
+ class ParentMethods:
245
+
246
+ def _test_jacobi(self, **options):
247
+ """
248
+ Test the Jacobi axiom of this Lie conformal algebra.
249
+
250
+ INPUT:
251
+
252
+ - ``options`` -- any keyword arguments acceptde by :meth:`_tester`
253
+
254
+ EXAMPLES:
255
+
256
+ By default, this method tests only the elements returned by
257
+ ``self.some_elements()``::
258
+
259
+ sage: V = lie_conformal_algebras.Affine(QQ, 'B2') # needs sage.combinat sage.modules
260
+ sage: V._test_jacobi() # long time (6 seconds) # needs sage.combinat sage.modules
261
+
262
+ It works for super Lie conformal algebras too::
263
+
264
+ sage: V = lie_conformal_algebras.NeveuSchwarz(QQ) # needs sage.combinat sage.modules
265
+ sage: V._test_jacobi() # needs sage.combinat sage.modules
266
+
267
+ We can use specific elements by passing the ``elements``
268
+ keyword argument::
269
+
270
+ sage: V = lie_conformal_algebras.Affine(QQ, 'A1', # needs sage.combinat sage.modules
271
+ ....: names=('e', 'h', 'f'))
272
+ sage: V.inject_variables() # needs sage.combinat sage.modules
273
+ Defining e, h, f, K
274
+ sage: V._test_jacobi(elements=(e, 2*f+h, 3*h)) # needs sage.combinat sage.modules
275
+
276
+ TESTS::
277
+
278
+ sage: wrongdict = {('a', 'a'): {0: {('b', 0): 1}}, ('b', 'a'): {0: {('a', 0): 1}}}
279
+ sage: V = LieConformalAlgebra(QQ, wrongdict, names=('a', 'b'), parity=(1, 0)) # needs sage.combinat sage.modules
280
+ sage: V._test_jacobi() # needs sage.combinat sage.modules
281
+ Traceback (most recent call last):
282
+ ...
283
+ AssertionError: {(0, 0): -3*a} != {}
284
+ - {(0, 0): -3*a}
285
+ + {}
286
+ """
287
+ tester = self._tester(**options)
288
+ S = tester.some_elements()
289
+ from sage.arith.misc import binomial
290
+ from sage.misc.misc import some_tuples
291
+ pz = tester._instance.zero()
292
+ for x,y,z in some_tuples(S, 3, tester._max_runs):
293
+ brxy = x.bracket(y)
294
+ brxz = x.bracket(z)
295
+ bryz = y.bracket(z)
296
+ br1 = {k: x.bracket(v) for k,v in bryz.items()}
297
+ br2 = {k: v.bracket(z) for k,v in brxy.items()}
298
+ br3 = {k: y.bracket(v) for k,v in brxz.items()}
299
+ jac1 = {(j,k): v for k in br1 for j,v in br1[k].items()}
300
+ jac3 = {(k,j): v for k in br3 for j,v in br3[k].items()}
301
+ jac2 = {}
302
+ for k,br in br2.items():
303
+ for j,v in br.items():
304
+ for r in range(j+1):
305
+ jac2[(k+r, j-r)] = (jac2.get((k+r, j-r), pz)
306
+ + binomial(k+r, r)*v)
307
+ for k,v in jac2.items():
308
+ jac1[k] = jac1.get(k, pz) - v
309
+ for k,v in jac3.items():
310
+ jac1[k] = jac1.get(k, pz) - v
311
+ jacobiator = {k: v for k,v in jac1.items() if v}
312
+ tester.assertDictEqual(jacobiator, {})
313
+
314
+ class ElementMethods:
315
+
316
+ def is_even_odd(self):
317
+ """
318
+ Return ``0`` if this element is *even* and ``1`` if it is
319
+ *odd*.
320
+
321
+ .. NOTE::
322
+
323
+ This method returns ``0`` by default since every Lie
324
+ conformal algebra can be thought as a purely even Lie
325
+ conformal algebra. In order to
326
+ implement a super Lie conformal algebra, the user
327
+ needs to implement this method.
328
+
329
+ EXAMPLES::
330
+
331
+ sage: R = lie_conformal_algebras.NeveuSchwarz(QQ) # needs sage.combinat sage.modules
332
+ sage: R.inject_variables() # needs sage.combinat sage.modules
333
+ Defining L, G, C
334
+ sage: G.is_even_odd() # needs sage.combinat sage.modules
335
+ 1
336
+ """
337
+ return 0
338
+
339
+ Graded = LazyImport("sage.categories.graded_lie_conformal_algebras",
340
+ "GradedLieConformalAlgebras", "Graded")
341
+
342
+ Super = LazyImport("sage.categories.super_lie_conformal_algebras",
343
+ "SuperLieConformalAlgebras", "Super")
344
+
345
+ WithBasis = LazyImport("sage.categories.lie_conformal_algebras_with_basis",
346
+ "LieConformalAlgebrasWithBasis", "WithBasis")
347
+
348
+ FinitelyGeneratedAsLambdaBracketAlgebra = LazyImport(
349
+ 'sage.categories.finitely_generated_lie_conformal_algebras',
350
+ 'FinitelyGeneratedLieConformalAlgebras')