passagemath-combinat 10.6.42__cp314-cp314-musllinux_1_2_x86_64.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 (400) hide show
  1. passagemath_combinat/__init__.py +3 -0
  2. passagemath_combinat-10.6.42.dist-info/METADATA +160 -0
  3. passagemath_combinat-10.6.42.dist-info/RECORD +400 -0
  4. passagemath_combinat-10.6.42.dist-info/WHEEL +5 -0
  5. passagemath_combinat-10.6.42.dist-info/top_level.txt +3 -0
  6. passagemath_combinat.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  7. passagemath_combinat.libs/libsymmetrica-81fe8739.so.3.0.0 +0 -0
  8. sage/algebras/affine_nil_temperley_lieb.py +263 -0
  9. sage/algebras/all.py +24 -0
  10. sage/algebras/all__sagemath_combinat.py +35 -0
  11. sage/algebras/askey_wilson.py +935 -0
  12. sage/algebras/associated_graded.py +345 -0
  13. sage/algebras/cellular_basis.py +350 -0
  14. sage/algebras/cluster_algebra.py +2766 -0
  15. sage/algebras/down_up_algebra.py +860 -0
  16. sage/algebras/free_algebra.py +1698 -0
  17. sage/algebras/free_algebra_element.py +345 -0
  18. sage/algebras/free_algebra_quotient.py +405 -0
  19. sage/algebras/free_algebra_quotient_element.py +295 -0
  20. sage/algebras/free_zinbiel_algebra.py +885 -0
  21. sage/algebras/hall_algebra.py +783 -0
  22. sage/algebras/hecke_algebras/all.py +4 -0
  23. sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
  24. sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
  25. sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
  26. sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
  27. sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
  28. sage/algebras/iwahori_hecke_algebra.py +3095 -0
  29. sage/algebras/jordan_algebra.py +1773 -0
  30. sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
  31. sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
  32. sage/algebras/lie_conformal_algebras/all.py +18 -0
  33. sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
  34. sage/algebras/lie_conformal_algebras/examples.py +43 -0
  35. sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
  36. sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
  37. sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
  38. sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
  39. sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
  40. sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
  41. sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
  42. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
  43. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
  44. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
  45. sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
  46. sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
  47. sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
  48. sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
  49. sage/algebras/nil_coxeter_algebra.py +191 -0
  50. sage/algebras/q_commuting_polynomials.py +673 -0
  51. sage/algebras/q_system.py +608 -0
  52. sage/algebras/quantum_clifford.py +959 -0
  53. sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
  54. sage/algebras/quantum_groups/all.py +9 -0
  55. sage/algebras/quantum_groups/fock_space.py +2219 -0
  56. sage/algebras/quantum_groups/q_numbers.py +207 -0
  57. sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
  58. sage/algebras/quantum_groups/representations.py +591 -0
  59. sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
  60. sage/algebras/quantum_oscillator.py +623 -0
  61. sage/algebras/quaternion_algebra.py +20 -0
  62. sage/algebras/quaternion_algebra_element.py +55 -0
  63. sage/algebras/rational_cherednik_algebra.py +525 -0
  64. sage/algebras/schur_algebra.py +670 -0
  65. sage/algebras/shuffle_algebra.py +1011 -0
  66. sage/algebras/splitting_algebra.py +779 -0
  67. sage/algebras/tensor_algebra.py +709 -0
  68. sage/algebras/yangian.py +1082 -0
  69. sage/algebras/yokonuma_hecke_algebra.py +1018 -0
  70. sage/all__sagemath_combinat.py +35 -0
  71. sage/combinat/SJT.py +255 -0
  72. sage/combinat/affine_permutation.py +2405 -0
  73. sage/combinat/algebraic_combinatorics.py +55 -0
  74. sage/combinat/all.py +53 -0
  75. sage/combinat/all__sagemath_combinat.py +195 -0
  76. sage/combinat/alternating_sign_matrix.py +2063 -0
  77. sage/combinat/baxter_permutations.py +346 -0
  78. sage/combinat/bijectionist.py +3220 -0
  79. sage/combinat/binary_recurrence_sequences.py +1180 -0
  80. sage/combinat/blob_algebra.py +685 -0
  81. sage/combinat/catalog_partitions.py +27 -0
  82. sage/combinat/chas/all.py +23 -0
  83. sage/combinat/chas/fsym.py +1180 -0
  84. sage/combinat/chas/wqsym.py +2601 -0
  85. sage/combinat/cluster_complex.py +326 -0
  86. sage/combinat/colored_permutations.py +2039 -0
  87. sage/combinat/colored_permutations_representations.py +964 -0
  88. sage/combinat/composition_signed.py +142 -0
  89. sage/combinat/composition_tableau.py +855 -0
  90. sage/combinat/constellation.py +1729 -0
  91. sage/combinat/core.py +751 -0
  92. sage/combinat/counting.py +12 -0
  93. sage/combinat/crystals/affine.py +742 -0
  94. sage/combinat/crystals/affine_factorization.py +518 -0
  95. sage/combinat/crystals/affinization.py +331 -0
  96. sage/combinat/crystals/alcove_path.py +2013 -0
  97. sage/combinat/crystals/all.py +22 -0
  98. sage/combinat/crystals/bkk_crystals.py +141 -0
  99. sage/combinat/crystals/catalog.py +115 -0
  100. sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
  101. sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
  102. sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
  103. sage/combinat/crystals/crystals.py +257 -0
  104. sage/combinat/crystals/direct_sum.py +260 -0
  105. sage/combinat/crystals/elementary_crystals.py +1251 -0
  106. sage/combinat/crystals/fast_crystals.py +441 -0
  107. sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
  108. sage/combinat/crystals/generalized_young_walls.py +1076 -0
  109. sage/combinat/crystals/highest_weight_crystals.py +436 -0
  110. sage/combinat/crystals/induced_structure.py +695 -0
  111. sage/combinat/crystals/infinity_crystals.py +730 -0
  112. sage/combinat/crystals/kac_modules.py +863 -0
  113. sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
  114. sage/combinat/crystals/kyoto_path_model.py +497 -0
  115. sage/combinat/crystals/letters.cpython-314-x86_64-linux-musl.so +0 -0
  116. sage/combinat/crystals/letters.pxd +79 -0
  117. sage/combinat/crystals/letters.pyx +3056 -0
  118. sage/combinat/crystals/littelmann_path.py +1518 -0
  119. sage/combinat/crystals/monomial_crystals.py +1262 -0
  120. sage/combinat/crystals/multisegments.py +462 -0
  121. sage/combinat/crystals/mv_polytopes.py +467 -0
  122. sage/combinat/crystals/pbw_crystal.py +511 -0
  123. sage/combinat/crystals/pbw_datum.cpython-314-x86_64-linux-musl.so +0 -0
  124. sage/combinat/crystals/pbw_datum.pxd +4 -0
  125. sage/combinat/crystals/pbw_datum.pyx +487 -0
  126. sage/combinat/crystals/polyhedral_realization.py +372 -0
  127. sage/combinat/crystals/spins.cpython-314-x86_64-linux-musl.so +0 -0
  128. sage/combinat/crystals/spins.pxd +21 -0
  129. sage/combinat/crystals/spins.pyx +756 -0
  130. sage/combinat/crystals/star_crystal.py +290 -0
  131. sage/combinat/crystals/subcrystal.py +464 -0
  132. sage/combinat/crystals/tensor_product.py +1177 -0
  133. sage/combinat/crystals/tensor_product_element.cpython-314-x86_64-linux-musl.so +0 -0
  134. sage/combinat/crystals/tensor_product_element.pxd +35 -0
  135. sage/combinat/crystals/tensor_product_element.pyx +1870 -0
  136. sage/combinat/crystals/virtual_crystal.py +420 -0
  137. sage/combinat/cyclic_sieving_phenomenon.py +204 -0
  138. sage/combinat/debruijn_sequence.cpython-314-x86_64-linux-musl.so +0 -0
  139. sage/combinat/debruijn_sequence.pyx +355 -0
  140. sage/combinat/decorated_permutation.py +270 -0
  141. sage/combinat/degree_sequences.cpython-314-x86_64-linux-musl.so +0 -0
  142. sage/combinat/degree_sequences.pyx +588 -0
  143. sage/combinat/derangements.py +527 -0
  144. sage/combinat/descent_algebra.py +1008 -0
  145. sage/combinat/diagram.py +1551 -0
  146. sage/combinat/diagram_algebras.py +5886 -0
  147. sage/combinat/dyck_word.py +4349 -0
  148. sage/combinat/e_one_star.py +1623 -0
  149. sage/combinat/enumerated_sets.py +123 -0
  150. sage/combinat/expnums.cpython-314-x86_64-linux-musl.so +0 -0
  151. sage/combinat/expnums.pyx +148 -0
  152. sage/combinat/fast_vector_partitions.cpython-314-x86_64-linux-musl.so +0 -0
  153. sage/combinat/fast_vector_partitions.pyx +346 -0
  154. sage/combinat/fqsym.py +1977 -0
  155. sage/combinat/free_dendriform_algebra.py +954 -0
  156. sage/combinat/free_prelie_algebra.py +1141 -0
  157. sage/combinat/fully_commutative_elements.py +1077 -0
  158. sage/combinat/fully_packed_loop.py +1523 -0
  159. sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
  160. sage/combinat/gray_codes.py +311 -0
  161. sage/combinat/grossman_larson_algebras.py +667 -0
  162. sage/combinat/growth.py +4352 -0
  163. sage/combinat/hall_polynomial.py +188 -0
  164. sage/combinat/hillman_grassl.py +866 -0
  165. sage/combinat/integer_matrices.py +329 -0
  166. sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
  167. sage/combinat/k_tableau.py +4564 -0
  168. sage/combinat/kazhdan_lusztig.py +215 -0
  169. sage/combinat/key_polynomial.py +885 -0
  170. sage/combinat/knutson_tao_puzzles.py +2286 -0
  171. sage/combinat/lr_tableau.py +311 -0
  172. sage/combinat/matrices/all.py +24 -0
  173. sage/combinat/matrices/hadamard_matrix.py +3790 -0
  174. sage/combinat/matrices/latin.py +2912 -0
  175. sage/combinat/misc.py +401 -0
  176. sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
  177. sage/combinat/ncsf_qsym/all.py +21 -0
  178. sage/combinat/ncsf_qsym/combinatorics.py +317 -0
  179. sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
  180. sage/combinat/ncsf_qsym/ncsf.py +5637 -0
  181. sage/combinat/ncsf_qsym/qsym.py +4053 -0
  182. sage/combinat/ncsf_qsym/tutorial.py +447 -0
  183. sage/combinat/ncsym/all.py +21 -0
  184. sage/combinat/ncsym/bases.py +855 -0
  185. sage/combinat/ncsym/dual.py +593 -0
  186. sage/combinat/ncsym/ncsym.py +2076 -0
  187. sage/combinat/necklace.py +551 -0
  188. sage/combinat/non_decreasing_parking_function.py +634 -0
  189. sage/combinat/nu_dyck_word.py +1474 -0
  190. sage/combinat/output.py +861 -0
  191. sage/combinat/parallelogram_polyomino.py +4326 -0
  192. sage/combinat/parking_functions.py +1602 -0
  193. sage/combinat/partition_algebra.py +1998 -0
  194. sage/combinat/partition_kleshchev.py +1982 -0
  195. sage/combinat/partition_shifting_algebras.py +584 -0
  196. sage/combinat/partition_tuple.py +3114 -0
  197. sage/combinat/path_tableaux/all.py +13 -0
  198. sage/combinat/path_tableaux/catalog.py +29 -0
  199. sage/combinat/path_tableaux/dyck_path.py +380 -0
  200. sage/combinat/path_tableaux/frieze.py +476 -0
  201. sage/combinat/path_tableaux/path_tableau.py +728 -0
  202. sage/combinat/path_tableaux/semistandard.py +510 -0
  203. sage/combinat/perfect_matching.py +779 -0
  204. sage/combinat/plane_partition.py +3300 -0
  205. sage/combinat/q_bernoulli.cpython-314-x86_64-linux-musl.so +0 -0
  206. sage/combinat/q_bernoulli.pyx +128 -0
  207. sage/combinat/quickref.py +81 -0
  208. sage/combinat/recognizable_series.py +2051 -0
  209. sage/combinat/regular_sequence.py +4316 -0
  210. sage/combinat/regular_sequence_bounded.py +543 -0
  211. sage/combinat/restricted_growth.py +81 -0
  212. sage/combinat/ribbon.py +20 -0
  213. sage/combinat/ribbon_shaped_tableau.py +489 -0
  214. sage/combinat/ribbon_tableau.py +1180 -0
  215. sage/combinat/rigged_configurations/all.py +46 -0
  216. sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
  217. sage/combinat/rigged_configurations/bij_infinity.py +370 -0
  218. sage/combinat/rigged_configurations/bij_type_A.py +163 -0
  219. sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
  220. sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
  221. sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
  222. sage/combinat/rigged_configurations/bij_type_B.py +900 -0
  223. sage/combinat/rigged_configurations/bij_type_C.py +267 -0
  224. sage/combinat/rigged_configurations/bij_type_D.py +771 -0
  225. sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
  226. sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
  227. sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
  228. sage/combinat/rigged_configurations/bijection.py +143 -0
  229. sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
  230. sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
  231. sage/combinat/rigged_configurations/rc_crystal.py +461 -0
  232. sage/combinat/rigged_configurations/rc_infinity.py +540 -0
  233. sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
  234. sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
  235. sage/combinat/rigged_configurations/rigged_partition.cpython-314-x86_64-linux-musl.so +0 -0
  236. sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
  237. sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
  238. sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
  239. sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
  240. sage/combinat/rsk.py +3438 -0
  241. sage/combinat/schubert_polynomial.py +508 -0
  242. sage/combinat/set_partition.py +3318 -0
  243. sage/combinat/set_partition_iterator.cpython-314-x86_64-linux-musl.so +0 -0
  244. sage/combinat/set_partition_iterator.pyx +136 -0
  245. sage/combinat/set_partition_ordered.py +1590 -0
  246. sage/combinat/sf/abreu_nigro.py +346 -0
  247. sage/combinat/sf/all.py +52 -0
  248. sage/combinat/sf/character.py +576 -0
  249. sage/combinat/sf/classical.py +319 -0
  250. sage/combinat/sf/dual.py +996 -0
  251. sage/combinat/sf/elementary.py +549 -0
  252. sage/combinat/sf/hall_littlewood.py +1028 -0
  253. sage/combinat/sf/hecke.py +336 -0
  254. sage/combinat/sf/homogeneous.py +464 -0
  255. sage/combinat/sf/jack.py +1428 -0
  256. sage/combinat/sf/k_dual.py +1458 -0
  257. sage/combinat/sf/kfpoly.py +447 -0
  258. sage/combinat/sf/llt.py +789 -0
  259. sage/combinat/sf/macdonald.py +2019 -0
  260. sage/combinat/sf/monomial.py +525 -0
  261. sage/combinat/sf/multiplicative.py +113 -0
  262. sage/combinat/sf/new_kschur.py +1786 -0
  263. sage/combinat/sf/ns_macdonald.py +964 -0
  264. sage/combinat/sf/orthogonal.py +246 -0
  265. sage/combinat/sf/orthotriang.py +355 -0
  266. sage/combinat/sf/powersum.py +963 -0
  267. sage/combinat/sf/schur.py +880 -0
  268. sage/combinat/sf/sf.py +1653 -0
  269. sage/combinat/sf/sfa.py +7053 -0
  270. sage/combinat/sf/symplectic.py +253 -0
  271. sage/combinat/sf/witt.py +721 -0
  272. sage/combinat/shifted_primed_tableau.py +2735 -0
  273. sage/combinat/shuffle.py +830 -0
  274. sage/combinat/sidon_sets.py +146 -0
  275. sage/combinat/similarity_class_type.py +1721 -0
  276. sage/combinat/sine_gordon.py +618 -0
  277. sage/combinat/six_vertex_model.py +784 -0
  278. sage/combinat/skew_partition.py +2053 -0
  279. sage/combinat/skew_tableau.py +2989 -0
  280. sage/combinat/sloane_functions.py +8935 -0
  281. sage/combinat/specht_module.py +1403 -0
  282. sage/combinat/species/all.py +48 -0
  283. sage/combinat/species/characteristic_species.py +321 -0
  284. sage/combinat/species/composition_species.py +273 -0
  285. sage/combinat/species/cycle_species.py +284 -0
  286. sage/combinat/species/empty_species.py +155 -0
  287. sage/combinat/species/functorial_composition_species.py +148 -0
  288. sage/combinat/species/generating_series.py +673 -0
  289. sage/combinat/species/library.py +148 -0
  290. sage/combinat/species/linear_order_species.py +169 -0
  291. sage/combinat/species/misc.py +83 -0
  292. sage/combinat/species/partition_species.py +290 -0
  293. sage/combinat/species/permutation_species.py +268 -0
  294. sage/combinat/species/product_species.py +423 -0
  295. sage/combinat/species/recursive_species.py +476 -0
  296. sage/combinat/species/set_species.py +192 -0
  297. sage/combinat/species/species.py +820 -0
  298. sage/combinat/species/structure.py +539 -0
  299. sage/combinat/species/subset_species.py +243 -0
  300. sage/combinat/species/sum_species.py +225 -0
  301. sage/combinat/subword.py +564 -0
  302. sage/combinat/subword_complex.py +2122 -0
  303. sage/combinat/subword_complex_c.cpython-314-x86_64-linux-musl.so +0 -0
  304. sage/combinat/subword_complex_c.pyx +119 -0
  305. sage/combinat/super_tableau.py +821 -0
  306. sage/combinat/superpartition.py +1154 -0
  307. sage/combinat/symmetric_group_algebra.py +3774 -0
  308. sage/combinat/symmetric_group_representations.py +1830 -0
  309. sage/combinat/t_sequences.py +877 -0
  310. sage/combinat/tableau.py +9506 -0
  311. sage/combinat/tableau_residues.py +860 -0
  312. sage/combinat/tableau_tuple.py +5353 -0
  313. sage/combinat/tiling.py +2432 -0
  314. sage/combinat/triangles_FHM.py +777 -0
  315. sage/combinat/tutorial.py +1857 -0
  316. sage/combinat/vector_partition.py +337 -0
  317. sage/combinat/words/abstract_word.py +1722 -0
  318. sage/combinat/words/all.py +59 -0
  319. sage/combinat/words/alphabet.py +268 -0
  320. sage/combinat/words/finite_word.py +7201 -0
  321. sage/combinat/words/infinite_word.py +113 -0
  322. sage/combinat/words/lyndon_word.py +652 -0
  323. sage/combinat/words/morphic.py +351 -0
  324. sage/combinat/words/morphism.py +3878 -0
  325. sage/combinat/words/paths.py +2932 -0
  326. sage/combinat/words/shuffle_product.py +278 -0
  327. sage/combinat/words/suffix_trees.py +1873 -0
  328. sage/combinat/words/word.py +769 -0
  329. sage/combinat/words/word_char.cpython-314-x86_64-linux-musl.so +0 -0
  330. sage/combinat/words/word_char.pyx +847 -0
  331. sage/combinat/words/word_datatypes.cpython-314-x86_64-linux-musl.so +0 -0
  332. sage/combinat/words/word_datatypes.pxd +4 -0
  333. sage/combinat/words/word_datatypes.pyx +1067 -0
  334. sage/combinat/words/word_generators.py +2026 -0
  335. sage/combinat/words/word_infinite_datatypes.py +1218 -0
  336. sage/combinat/words/word_options.py +99 -0
  337. sage/combinat/words/words.py +2396 -0
  338. sage/data_structures/all__sagemath_combinat.py +1 -0
  339. sage/databases/all__sagemath_combinat.py +13 -0
  340. sage/databases/findstat.py +4897 -0
  341. sage/databases/oeis.py +2058 -0
  342. sage/databases/sloane.py +393 -0
  343. sage/dynamics/all__sagemath_combinat.py +14 -0
  344. sage/dynamics/cellular_automata/all.py +7 -0
  345. sage/dynamics/cellular_automata/catalog.py +34 -0
  346. sage/dynamics/cellular_automata/elementary.py +612 -0
  347. sage/dynamics/cellular_automata/glca.py +477 -0
  348. sage/dynamics/cellular_automata/solitons.py +1463 -0
  349. sage/dynamics/finite_dynamical_system.py +1249 -0
  350. sage/dynamics/finite_dynamical_system_catalog.py +382 -0
  351. sage/games/all.py +7 -0
  352. sage/games/hexad.py +704 -0
  353. sage/games/quantumino.py +591 -0
  354. sage/games/sudoku.py +889 -0
  355. sage/games/sudoku_backtrack.cpython-314-x86_64-linux-musl.so +0 -0
  356. sage/games/sudoku_backtrack.pyx +189 -0
  357. sage/groups/all__sagemath_combinat.py +1 -0
  358. sage/groups/indexed_free_group.py +489 -0
  359. sage/libs/all__sagemath_combinat.py +6 -0
  360. sage/libs/lrcalc/__init__.py +1 -0
  361. sage/libs/lrcalc/lrcalc.py +525 -0
  362. sage/libs/symmetrica/__init__.py +7 -0
  363. sage/libs/symmetrica/all.py +101 -0
  364. sage/libs/symmetrica/kostka.pxi +168 -0
  365. sage/libs/symmetrica/part.pxi +193 -0
  366. sage/libs/symmetrica/plet.pxi +42 -0
  367. sage/libs/symmetrica/sab.pxi +196 -0
  368. sage/libs/symmetrica/sb.pxi +332 -0
  369. sage/libs/symmetrica/sc.pxi +192 -0
  370. sage/libs/symmetrica/schur.pxi +956 -0
  371. sage/libs/symmetrica/symmetrica.cpython-314-x86_64-linux-musl.so +0 -0
  372. sage/libs/symmetrica/symmetrica.pxi +1172 -0
  373. sage/libs/symmetrica/symmetrica.pyx +39 -0
  374. sage/monoids/all.py +13 -0
  375. sage/monoids/automatic_semigroup.py +1054 -0
  376. sage/monoids/free_abelian_monoid.py +315 -0
  377. sage/monoids/free_abelian_monoid_element.cpython-314-x86_64-linux-musl.so +0 -0
  378. sage/monoids/free_abelian_monoid_element.pxd +16 -0
  379. sage/monoids/free_abelian_monoid_element.pyx +397 -0
  380. sage/monoids/free_monoid.py +335 -0
  381. sage/monoids/free_monoid_element.py +431 -0
  382. sage/monoids/hecke_monoid.py +65 -0
  383. sage/monoids/string_monoid.py +817 -0
  384. sage/monoids/string_monoid_element.py +547 -0
  385. sage/monoids/string_ops.py +143 -0
  386. sage/monoids/trace_monoid.py +972 -0
  387. sage/rings/all__sagemath_combinat.py +2 -0
  388. sage/sat/all.py +4 -0
  389. sage/sat/boolean_polynomials.py +405 -0
  390. sage/sat/converters/__init__.py +6 -0
  391. sage/sat/converters/anf2cnf.py +14 -0
  392. sage/sat/converters/polybori.py +611 -0
  393. sage/sat/solvers/__init__.py +5 -0
  394. sage/sat/solvers/cryptominisat.py +287 -0
  395. sage/sat/solvers/dimacs.py +783 -0
  396. sage/sat/solvers/picosat.py +228 -0
  397. sage/sat/solvers/sat_lp.py +156 -0
  398. sage/sat/solvers/satsolver.cpython-314-x86_64-linux-musl.so +0 -0
  399. sage/sat/solvers/satsolver.pxd +3 -0
  400. sage/sat/solvers/satsolver.pyx +405 -0
@@ -0,0 +1,139 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ """
4
+ Finitely and Freely Generated Lie Conformal Algebras.
5
+
6
+ AUTHORS:
7
+
8
+ - Reimundo Heluani (2019-08-09): Initial implementation.
9
+ """
10
+
11
+ #******************************************************************************
12
+ # Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
13
+ #
14
+ # This program is free software: you can redistribute it and/or modify
15
+ # it under the terms of the GNU General Public License as published by
16
+ # the Free Software Foundation, either version 2 of the License, or
17
+ # (at your option) any later version.
18
+ # http://www.gnu.org/licenses/
19
+ #*****************************************************************************
20
+
21
+ from sage.misc.cachefunc import cached_method
22
+ from sage.categories.lie_conformal_algebras import LieConformalAlgebras
23
+ from .freely_generated_lie_conformal_algebra import \
24
+ FreelyGeneratedLieConformalAlgebra
25
+
26
+
27
+ class FinitelyFreelyGeneratedLCA(FreelyGeneratedLieConformalAlgebra):
28
+ """
29
+ Abstract base class for finitely generated Lie conformal
30
+ algebras.
31
+
32
+ This class provides minimal functionality, simply sets the
33
+ number of generators.
34
+ """
35
+ def __init__(self, R, index_set=None, central_elements=None, category=None,
36
+ element_class=None, prefix=None, names=None, latex_names=None,
37
+ **kwds):
38
+ """
39
+ Initialize ``self``.
40
+
41
+ TESTS::
42
+
43
+ sage: V = lie_conformal_algebras.Virasoro(QQ)
44
+ sage: TestSuite(V).run()
45
+ """
46
+ default_category = LieConformalAlgebras(R).FinitelyGenerated()
47
+ try:
48
+ category = default_category.or_subcategory(category)
49
+ except ValueError:
50
+ category = default_category.Super().or_subcategory(category)
51
+
52
+ from sage.categories.sets_cat import Sets
53
+ if index_set not in Sets().Finite():
54
+ raise TypeError("index_set must be a finite set")
55
+
56
+ super().__init__(R,
57
+ index_set=index_set, central_elements=central_elements,
58
+ category=category, element_class=element_class,
59
+ prefix=prefix, **kwds)
60
+ self._ngens = len(self._generators)
61
+ self._names = names
62
+ self._latex_names = latex_names
63
+
64
+ def _repr_(self) -> str:
65
+ """
66
+ The name of this Lie conformal algebra.
67
+
68
+ EXAMPLES::
69
+
70
+ sage: bosondict = {('a','a'):{1:{('K',0):1}}}
71
+ sage: R = LieConformalAlgebra(QQ,bosondict,names=('a',),central_elements=('K',))
72
+ sage: R
73
+ Lie conformal algebra with generators (a, K) over Rational Field
74
+ """
75
+ if self._ngens == 1:
76
+ return "Lie conformal algebra generated by {} over {}".format(
77
+ self.gen(0), self.base_ring())
78
+ return "Lie conformal algebra with generators {} over {}".format(
79
+ self.gens(), self.base_ring())
80
+
81
+ def _an_element_(self):
82
+ """
83
+ An element of this Lie conformal algebra.
84
+
85
+ EXAMPLES::
86
+
87
+ sage: R = lie_conformal_algebras.NeveuSchwarz(QQ); R.an_element()
88
+ L + G + C
89
+ """
90
+ return self.sum(self.gens())
91
+
92
+ def ngens(self):
93
+ """
94
+ The number of generators of this Lie conformal algebra.
95
+
96
+ EXAMPLES::
97
+
98
+ sage: Vir = lie_conformal_algebras.Virasoro(QQ); Vir.ngens()
99
+ 2
100
+ sage: V = lie_conformal_algebras.Affine(QQ, 'A1'); V.ngens()
101
+ 4
102
+ """
103
+ return self._ngens
104
+
105
+ @cached_method
106
+ def gens(self):
107
+ """
108
+ The generators for this Lie conformal algebra.
109
+
110
+ OUTPUT:
111
+
112
+ This method returns a tuple with the (finite) generators
113
+ of this Lie conformal algebra.
114
+
115
+ EXAMPLES::
116
+
117
+ sage: Vir = lie_conformal_algebras.Virasoro(QQ);
118
+ sage: Vir.gens()
119
+ (L, C)
120
+
121
+ .. SEEALSO::
122
+
123
+ :meth:`lie_conformal_algebra_generators<\
124
+ FreelyGeneratedLieConformalAlgebra.\
125
+ lie_conformal_algebra_generators>`
126
+ """
127
+ return self.lie_conformal_algebra_generators()
128
+
129
+ @cached_method
130
+ def central_elements(self):
131
+ """
132
+ The central elements of this Lie conformal algebra.
133
+
134
+ EXAMPLES::
135
+
136
+ sage: R = lie_conformal_algebras.NeveuSchwarz(QQ); R.central_elements()
137
+ (C,)
138
+ """
139
+ return tuple(FreelyGeneratedLieConformalAlgebra.central_elements(self))
@@ -0,0 +1,174 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Free Bosons Lie Conformal Algebra
5
+
6
+ Given an `R`-module `M` with a symmetric, bilinear pairing
7
+ `(\cdot, \cdot): M\otimes_R M \rightarrow R`. The *Free Bosons*
8
+ Lie conformal algebra associated to this datum is the free
9
+ `R[T]`-module generated by `M` plus a central vector `K` satisfying
10
+ `TK=0`. The remaining `\lambda`-brackets are given by:
11
+
12
+ .. MATH::
13
+
14
+ [v_\lambda w] = \lambda (v,w)K,
15
+
16
+ where `v,w \in M`.
17
+
18
+ This is an H-graded Lie conformal algebra where every generator
19
+ `v \in M` has degree 1.
20
+
21
+ AUTHORS:
22
+
23
+ - Reimundo Heluani (2019-08-09): Initial implementation.
24
+ """
25
+
26
+ #******************************************************************************
27
+ # Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
28
+ #
29
+ # This program is free software: you can redistribute it and/or modify
30
+ # it under the terms of the GNU General Public License as published by
31
+ # the Free Software Foundation, either version 2 of the License, or
32
+ # (at your option) any later version.
33
+ # http://www.gnu.org/licenses/
34
+ #*****************************************************************************
35
+
36
+ from sage.matrix.special import identity_matrix
37
+ from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
38
+ from sage.structure.indexed_generators import standardize_names_index_set
39
+
40
+
41
+ class FreeBosonsLieConformalAlgebra(GradedLieConformalAlgebra):
42
+ r"""
43
+ The Free Bosons Lie conformal algebra.
44
+
45
+ INPUT:
46
+
47
+ - ``R`` -- a commutative ring
48
+ - ``ngens`` -- a positive Integer (default: `1`); the number of
49
+ non-central generators of this Lie conformal algebra.
50
+ - ``gram_matrix`` -- a symmetric square matrix with coefficients
51
+ in ``R`` (default: ``identity_matrix(ngens)``); the Gram
52
+ matrix of the inner product
53
+ - ``names`` -- tuple of strings; alternative names for the
54
+ generators
55
+ - ``index_set`` -- an enumerated set; alternative indexing set
56
+ for the generators
57
+
58
+ OUTPUT:
59
+
60
+ The Free Bosons Lie conformal algebra with generators
61
+ `\alpha_i`, `i=1,...,n` and `\lambda`-brackets
62
+
63
+ .. MATH::
64
+
65
+ [{\alpha_i}_{\lambda} \alpha_j] = \lambda M_{ij} K,
66
+
67
+ where `n` is the number of generators ``ngens`` and `M` is
68
+ the ``gram_matrix``. This Lie conformal
69
+ algebra is `H`-graded where every generator has conformal weight
70
+ `1`.
71
+
72
+ EXAMPLES::
73
+
74
+ sage: R = lie_conformal_algebras.FreeBosons(AA); R
75
+ The free Bosons Lie conformal algebra with generators (alpha, K) over Algebraic Real Field
76
+ sage: R.inject_variables()
77
+ Defining alpha, K
78
+ sage: alpha.bracket(alpha)
79
+ {1: K}
80
+ sage: M = identity_matrix(QQ,2); R = lie_conformal_algebras.FreeBosons(QQ,gram_matrix=M, names='alpha,beta'); R
81
+ The free Bosons Lie conformal algebra with generators (alpha, beta, K) over Rational Field
82
+ sage: R.inject_variables(); alpha.bracket(beta)
83
+ Defining alpha, beta, K
84
+ {}
85
+ sage: alpha.bracket(alpha)
86
+ {1: K}
87
+ sage: R = lie_conformal_algebras.FreeBosons(QQbar, ngens=3); R
88
+ The free Bosons Lie conformal algebra with generators (alpha0, alpha1, alpha2, K) over Algebraic Field
89
+
90
+ TESTS::
91
+ sage: R = lie_conformal_algebras.FreeBosons(QQ); R.0.degree()
92
+ 1
93
+ sage: R = lie_conformal_algebras.FreeBosons(QQbar, ngens=2, gram_matrix=identity_matrix(QQ,1,1))
94
+ Traceback (most recent call last):
95
+ ...
96
+ ValueError: the gram_matrix should be a symmetric 2 x 2 matrix, got [1]
97
+ sage: R = lie_conformal_algebras.FreeBosons(QQbar, ngens=2, gram_matrix=Matrix(QQ,[[0,1],[-1,0]]))
98
+ Traceback (most recent call last):
99
+ ...
100
+ ValueError: the gram_matrix should be a symmetric 2 x 2 matrix, got [ 0 1]
101
+ [-1 0]
102
+ """
103
+ def __init__(self, R, ngens=None, gram_matrix=None, names=None,
104
+ index_set=None):
105
+ """
106
+ Initialize ``self``.
107
+
108
+ TESTS::
109
+
110
+ sage: V = lie_conformal_algebras.FreeBosons(QQ)
111
+ sage: TestSuite(V).run()
112
+ """
113
+ from sage.matrix.matrix_space import MatrixSpace
114
+ if (gram_matrix is not None):
115
+ if ngens is None:
116
+ ngens = gram_matrix.dimensions()[0]
117
+ try:
118
+ assert (gram_matrix in MatrixSpace(R, ngens, ngens))
119
+ except AssertionError:
120
+ raise ValueError("the gram_matrix should be a symmetric " +
121
+ "{0} x {0} matrix, got {1}".format(ngens, gram_matrix))
122
+ if not gram_matrix.is_symmetric():
123
+ raise ValueError("the gram_matrix should be a symmetric " +
124
+ "{0} x {0} matrix, got {1}".format(ngens, gram_matrix))
125
+ else:
126
+ if ngens is None:
127
+ ngens = 1
128
+ gram_matrix = identity_matrix(R, ngens, ngens)
129
+
130
+ latex_names = None
131
+ if names is None and index_set is None:
132
+ names = 'alpha'
133
+ latex_names = tuple(r'\alpha_{%d}' % i
134
+ for i in range(ngens)) + ('K',)
135
+ names, index_set = standardize_names_index_set(names=names,
136
+ index_set=index_set,
137
+ ngens=ngens)
138
+ bosondict = {(i, j): {1: {('K', 0): gram_matrix[index_set.rank(i),
139
+ index_set.rank(j)]}}
140
+ for i in index_set for j in index_set}
141
+
142
+ GradedLieConformalAlgebra.__init__(self, R, bosondict,
143
+ names=names,
144
+ latex_names=latex_names,
145
+ index_set=index_set,
146
+ central_elements=('K',))
147
+
148
+ self._gram_matrix = gram_matrix
149
+
150
+ def _repr_(self) -> str:
151
+ """
152
+ String representation.
153
+
154
+ EXAMPLES::
155
+
156
+ sage: lie_conformal_algebras.FreeBosons(AA)
157
+ The free Bosons Lie conformal algebra with generators (alpha, K) over Algebraic Real Field
158
+ """
159
+ return "The free Bosons Lie conformal algebra with generators {}"\
160
+ " over {}".format(self.gens(), self.base_ring())
161
+
162
+ def gram_matrix(self):
163
+ r"""
164
+ The Gram matrix that specifies the `\lambda`-brackets of the
165
+ generators.
166
+
167
+ EXAMPLES::
168
+
169
+ sage: R = lie_conformal_algebras.FreeBosons(QQ,ngens=2);
170
+ sage: R.gram_matrix()
171
+ [1 0]
172
+ [0 1]
173
+ """
174
+ return self._gram_matrix
@@ -0,0 +1,167 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Free Fermions Super Lie Conformal Algebra.
5
+
6
+ Given an `R`-module `M` with a skew-symmetric, bilinear pairing
7
+ `\langle\cdot, \cdot\rangle: M\otimes_R M \rightarrow R`. The
8
+ *Free Fermions* super Lie conformal algebra associated to this datum is
9
+ the free `R[T]`-super module generated by `\Pi M` (a purely odd copy
10
+ of `M`) plus a central vector `K` satisfying `TK=0`. The remaining
11
+ `\lambda`-brackets are given by:
12
+
13
+ .. MATH::
14
+
15
+ [v_\lambda w] = \langle v,w \rangle K,
16
+
17
+ where `v,w \in M`.
18
+
19
+ This is an H-graded Lie conformal algebra where every generator
20
+ `v \in M` has degree `1/2`.
21
+
22
+
23
+ AUTHORS:
24
+
25
+ - Reimundo Heluani (2020-06-03): Initial implementation.
26
+ """
27
+ #******************************************************************************
28
+ # Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
29
+ #
30
+ # This program is free software: you can redistribute it and/or modify
31
+ # it under the terms of the GNU General Public License as published by
32
+ # the Free Software Foundation, either version 2 of the License, or
33
+ # (at your option) any later version.
34
+ # http://www.gnu.org/licenses/
35
+ #*****************************************************************************
36
+
37
+ from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
38
+
39
+
40
+ class FreeFermionsLieConformalAlgebra(GradedLieConformalAlgebra):
41
+ r"""
42
+ The Free Fermions Super Lie conformal algebra.
43
+
44
+ INPUT:
45
+
46
+ - ``R`` -- a commutative ring
47
+ - ``ngens`` -- a positive Integer (default: ``1``); the number of
48
+ non-central generators of this Lie conformal algebra
49
+ - ``gram_matrix`` -- a symmetric square matrix with coefficients
50
+ in ``R`` (default: ``identity_matrix(ngens)``); the Gram
51
+ matrix of the inner product
52
+
53
+ OUTPUT:
54
+
55
+ The Free Fermions Lie conformal algebra with generators
56
+ `\psi_i`, `i=1,...,n` and `\lambda`-brackets
57
+
58
+ .. MATH::
59
+
60
+ [{\psi_i}_{\lambda} \psi_j] = M_{ij} K,
61
+
62
+ where `n` is the number of generators ``ngens`` and `M` is the
63
+ ``gram_matrix``. This super Lie conformal
64
+ algebra is `H`-graded where every generator has degree `1/2`.
65
+
66
+ EXAMPLES::
67
+
68
+ sage: R = lie_conformal_algebras.FreeFermions(QQbar); R
69
+ The free Fermions super Lie conformal algebra with generators (psi, K) over Algebraic Field
70
+ sage: R.inject_variables()
71
+ Defining psi, K
72
+ sage: psi.bracket(psi)
73
+ {0: K}
74
+
75
+ sage: R = lie_conformal_algebras.FreeFermions(QQbar,gram_matrix=Matrix([[0,1],[1,0]])); R
76
+ The free Fermions super Lie conformal algebra with generators (psi_0, psi_1, K) over Algebraic Field
77
+ sage: R.inject_variables()
78
+ Defining psi_0, psi_1, K
79
+ sage: psi_0.bracket(psi_1)
80
+ {0: K}
81
+ sage: psi_0.degree()
82
+ 1/2
83
+ sage: R.category()
84
+ Category of H-graded super finitely generated Lie conformal algebras with basis over Algebraic Field
85
+ """
86
+ def __init__(self, R, ngens=None, gram_matrix=None, names=None,
87
+ index_set=None):
88
+ """
89
+ Initialize ``self``.
90
+
91
+ TESTS::
92
+
93
+ sage: V = lie_conformal_algebras.FreeFermions(QQ)
94
+ sage: TestSuite(V).run()
95
+ """
96
+ from sage.matrix.matrix_space import MatrixSpace
97
+ from sage.matrix.special import identity_matrix
98
+ if gram_matrix is not None:
99
+ if ngens is None:
100
+ ngens = gram_matrix.dimensions()[0]
101
+ try:
102
+ assert (gram_matrix in MatrixSpace(R, ngens, ngens))
103
+ except AssertionError:
104
+ raise ValueError("the Gram_matrix should be a symmetric " +
105
+ "{0} x {0} matrix, got {1}".format(ngens, gram_matrix))
106
+ if not gram_matrix.is_symmetric():
107
+ raise ValueError("the Gram_matrix should be a symmetric " +
108
+ "{0} x {0} matrix, got {1}".format(ngens, gram_matrix))
109
+ else:
110
+ if ngens is None:
111
+ ngens = 1
112
+ gram_matrix = identity_matrix(R, ngens, ngens)
113
+
114
+ latex_names = None
115
+
116
+ if names is None and index_set is None:
117
+ names = 'psi' if ngens == 1 else 'psi_'
118
+ latex_names = tuple(r"\psi_{%d}" % i
119
+ for i in range(ngens)) + ('K',)
120
+
121
+ from sage.structure.indexed_generators import \
122
+ standardize_names_index_set
123
+ names, index_set = standardize_names_index_set(names=names,
124
+ index_set=index_set,
125
+ ngens=ngens)
126
+ fermiondict = {(i, j): {0: {('K', 0): gram_matrix[index_set.rank(i),
127
+ index_set.rank(j)]}}
128
+ for i in index_set for j in index_set}
129
+
130
+ from sage.rings.rational_field import QQ
131
+ weights = (QQ((1, 2)),) * ngens
132
+ parity = (1,) * ngens
133
+ GradedLieConformalAlgebra.__init__(self, R, fermiondict, names=names,
134
+ latex_names=latex_names,
135
+ index_set=index_set,
136
+ weights=weights,
137
+ parity=parity,
138
+ central_elements=('K',))
139
+
140
+ self._gram_matrix = gram_matrix
141
+
142
+ def _repr_(self) -> str:
143
+ """
144
+ String representation.
145
+
146
+ EXAMPLES::
147
+
148
+ sage: lie_conformal_algebras.FreeFermions(QQ)
149
+ The free Fermions super Lie conformal algebra with generators (psi, K) over Rational Field
150
+ """
151
+ return "The free Fermions super Lie conformal algebra "\
152
+ "with generators {} over {}".format(self.gens(),
153
+ self.base_ring())
154
+
155
+ def gram_matrix(self):
156
+ r"""
157
+ The Gram matrix that specifies the `\lambda`-brackets of the
158
+ generators.
159
+
160
+ EXAMPLES::
161
+
162
+ sage: R = lie_conformal_algebras.FreeFermions(QQ,ngens=2);
163
+ sage: R.gram_matrix()
164
+ [1 0]
165
+ [0 1]
166
+ """
167
+ return self._gram_matrix
@@ -0,0 +1,107 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ """
4
+ Freely Generated Lie Conformal Algebras
5
+
6
+ AUTHORS:
7
+
8
+ - Reimundo Heluani (2019-08-09): Initial implementation
9
+ """
10
+
11
+ #******************************************************************************
12
+ # Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
13
+ #
14
+ # This program is free software: you can redistribute it and/or modify
15
+ # it under the terms of the GNU General Public License as published by
16
+ # the Free Software Foundation, either version 2 of the License, or
17
+ # (at your option) any later version.
18
+ # http://www.gnu.org/licenses/
19
+ #*****************************************************************************
20
+
21
+ from .lie_conformal_algebra_with_basis import LieConformalAlgebraWithBasis
22
+ from sage.sets.non_negative_integers import NonNegativeIntegers
23
+ from sage.categories.cartesian_product import cartesian_product
24
+ from sage.rings.integer import Integer
25
+ from sage.sets.family import Family
26
+ from sage.sets.disjoint_union_enumerated_sets import DisjointUnionEnumeratedSets
27
+
28
+
29
+ class FreelyGeneratedLieConformalAlgebra(LieConformalAlgebraWithBasis):
30
+ """
31
+ Base class for a central extension of a freely generated Lie
32
+ conformal algebra.
33
+
34
+ This class provides minimal functionality, it sets up the
35
+ family of Lie conformal algebra generators.
36
+
37
+ .. NOTE::
38
+
39
+ We now only accept direct sums of free modules plus
40
+ some central generators `C_i` such that `TC_i = 0`.
41
+ """
42
+ def __init__(self, R, index_set=None, central_elements=None, category=None,
43
+ element_class=None, prefix=None, **kwds):
44
+ """
45
+ Initialize ``self``.
46
+
47
+ TESTS::
48
+
49
+ sage: V = lie_conformal_algebras.Virasoro(QQ)
50
+ sage: TestSuite(V).run()
51
+ """
52
+ self._generators = Family(index_set)
53
+ E = cartesian_product([index_set, NonNegativeIntegers()])
54
+ if central_elements is not None:
55
+ self._generators = DisjointUnionEnumeratedSets([index_set,
56
+ Family(central_elements)])
57
+ E = DisjointUnionEnumeratedSets((cartesian_product([
58
+ Family(central_elements), {Integer(0)}]), E))
59
+
60
+ super().__init__(R, basis_keys=E, element_class=element_class,
61
+ category=category, prefix=prefix, **kwds)
62
+
63
+ if central_elements is not None:
64
+ self._central_elements = Family(central_elements)
65
+ else:
66
+ self._central_elements = ()
67
+
68
+ def lie_conformal_algebra_generators(self):
69
+ """
70
+ The generators of this Lie conformal algebra.
71
+
72
+ OUTPUT: a (possibly infinite) family of generators (as an
73
+ `R[T]`-module) of this Lie conformal algebra.
74
+
75
+ EXAMPLES::
76
+
77
+ sage: Vir = lie_conformal_algebras.Virasoro(QQ)
78
+ sage: Vir.lie_conformal_algebra_generators()
79
+ (L, C)
80
+ sage: V = lie_conformal_algebras.Affine(QQ,'A1')
81
+ sage: V.lie_conformal_algebra_generators()
82
+ (B[alpha[1]], B[alphacheck[1]], B[-alpha[1]], B['K'])
83
+ """
84
+ F = Family(self._generators,
85
+ lambda i: self.monomial((i, Integer(0))),
86
+ name="generator map")
87
+ from sage.categories.sets_cat import Sets
88
+ if F in Sets().Finite():
89
+ return tuple(F)
90
+ return F
91
+
92
+ def central_elements(self):
93
+ """
94
+ The central generators of this Lie conformal algebra.
95
+
96
+ EXAMPLES::
97
+
98
+ sage: Vir = lie_conformal_algebras.Virasoro(QQ)
99
+ sage: Vir.central_elements()
100
+ (C,)
101
+ sage: V = lie_conformal_algebras.Affine(QQ, 'A1')
102
+ sage: V.central_elements()
103
+ (B['K'],)
104
+ """
105
+ return Family(self._central_elements,
106
+ lambda i: self.monomial((i, Integer(0))),
107
+ name="central_element map")