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,113 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Abelian Lie Conformal Algebra
5
+
6
+ For a commutative ring `R` and a free `R`-module `M`. The *Abelian Lie
7
+ conformal algebra* generated by `M` is the free `R[T]` module
8
+ generated by `M` with vanishing `\lambda`-brackets.
9
+
10
+ AUTHORS:
11
+
12
+ - Reimundo Heluani (2020-06-15): Initial implementation.
13
+ """
14
+
15
+ #******************************************************************************
16
+ # Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
17
+ #
18
+ # This program is free software: you can redistribute it and/or modify
19
+ # it under the terms of the GNU General Public License as published by
20
+ # the Free Software Foundation, either version 2 of the License, or
21
+ # (at your option) any later version.
22
+ # http://www.gnu.org/licenses/
23
+ #*****************************************************************************
24
+
25
+ from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
26
+ from sage.structure.indexed_generators import standardize_names_index_set
27
+
28
+
29
+ class AbelianLieConformalAlgebra(GradedLieConformalAlgebra):
30
+ r"""
31
+ The Abelian Lie conformal algebra.
32
+
33
+ INPUT:
34
+
35
+ - ``R`` -- a commutative ring; the base ring of this Lie
36
+ conformal algebra
37
+ - ``ngens`` -- positive integer (default: `1`); the number
38
+ of generators of this Lie conformal algebra
39
+ - ``weights`` -- list of positive rational numbers (default:
40
+ `1` for each generator); the weights of the generators. The resulting
41
+ Lie conformal algebra is `H`-graded.
42
+ - ``parity`` -- ``None`` or a list of ``0`` or ``1`` (default:
43
+ ``None``); the parity of the generators. If not ``None`` the
44
+ resulting Lie Conformal algebra is a Super Lie conformal
45
+ algebra
46
+ - ``names`` -- tuple of strings or ``None`` (default: ``None``);
47
+ the list of names of the generators of this algebra.
48
+ - ``index_set`` -- an enumerated set or ``None`` (default:
49
+ ``None``); a set indexing the generators of this Lie
50
+ conformal algebra
51
+
52
+ OUTPUT:
53
+
54
+ The Abelian Lie conformal algebra with generators `a_i`,
55
+ `i=1,...,n` and vanishing `\lambda`-brackets, where `n` is
56
+ ``ngens``.
57
+
58
+ EXAMPLES::
59
+
60
+ sage: R = lie_conformal_algebras.Abelian(QQ,2); R
61
+ The Abelian Lie conformal algebra with generators (a0, a1) over Rational Field
62
+ sage: R.inject_variables()
63
+ Defining a0, a1
64
+ sage: a0.bracket(a1.T(2))
65
+ {}
66
+
67
+ TESTS::
68
+
69
+ sage: R.central_elements()
70
+ ()
71
+ sage: R.structure_coefficients()
72
+ Finite family {}
73
+
74
+ .. TODO::
75
+
76
+ implement its own class to speed up arithmetics in this
77
+ case.
78
+ """
79
+ def __init__(self, R, ngens=1, weights=None,
80
+ parity=None, names=None, index_set=None):
81
+ """
82
+ Initialize ``self``.
83
+
84
+ EXAMPLES::
85
+
86
+ sage: V = lie_conformal_algebras.Abelian(QQ)
87
+ sage: TestSuite(V).run()
88
+ """
89
+ if (names is None) and (index_set is None):
90
+ names = 'a'
91
+ self._latex_names = tuple(r'a_{%d}' % i for i in range(ngens))
92
+
93
+ names, index_set = standardize_names_index_set(names=names,
94
+ index_set=index_set,
95
+ ngens=ngens)
96
+ abeliandict = {}
97
+
98
+ GradedLieConformalAlgebra.__init__(self, R, abeliandict, names=names,
99
+ index_set=index_set,
100
+ weights=weights,
101
+ parity=parity)
102
+
103
+ def _repr_(self) -> str:
104
+ """
105
+ String representation.
106
+
107
+ EXAMPLES::
108
+
109
+ sage: lie_conformal_algebras.Abelian(QQ)
110
+ The Abelian Lie conformal algebra with generators (a,) over Rational Field
111
+ """
112
+ return "The Abelian Lie conformal algebra with generators {} over {}"\
113
+ .format(self.gens(), self.base_ring())
@@ -0,0 +1,156 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Affine Lie Conformal Algebra
5
+
6
+ The affine Kac-Moody Lie conformal algebra associated to the
7
+ finite dimensional simple Lie algebra `\mathfrak{g}`. For a commutative
8
+ ring `R`, it is the `R[T]`-module freely generated by `\mathfrak{g}`
9
+ plus a central element `K` satisfying `TK = 0`. The non-vanishing
10
+ `\lambda`-brackets are given by
11
+
12
+ .. MATH::
13
+
14
+ [a_\lambda b] = [a,b] + \lambda (a,b)K,
15
+
16
+ where `a,b \in \mathfrak{g}` and `(a,b)` is the normalized
17
+ form of `\mathfrak{g}` so that its longest root has square-norm
18
+ `2`.
19
+
20
+ AUTHORS:
21
+
22
+ - Reimundo Heluani (2019-08-09): Initial implementation.
23
+ """
24
+
25
+ #******************************************************************************
26
+ # Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
27
+ #
28
+ # This program is free software: you can redistribute it and/or modify
29
+ # it under the terms of the GNU General Public License as published by
30
+ # the Free Software Foundation, either version 2 of the License, or
31
+ # (at your option) any later version.
32
+ # http://www.gnu.org/licenses/
33
+ #*****************************************************************************
34
+
35
+ from sage.rings.integer import Integer
36
+ from sage.algebras.lie_algebras.lie_algebra import LieAlgebra
37
+ from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
38
+
39
+
40
+ class AffineLieConformalAlgebra(GradedLieConformalAlgebra):
41
+ r"""
42
+ The current or affine Kac-Moody Lie conformal algebra.
43
+
44
+ INPUT:
45
+
46
+ - ``R`` -- a commutative Ring; the base ring for this Lie
47
+ conformal algebra
48
+ - ``ct`` -- a ``str`` or a :mod:`CartanType<sage.combinat.\
49
+ root_system.cartan_type>`; the Cartan Type for
50
+ the corresponding finite dimensional Lie algebra. It must
51
+ correspond to a simple finite dimensional Lie algebra.
52
+ - ``names`` -- list of ``str`` or ``None`` (default: ``None``);
53
+ alternative names for the generators. If ``None`` the
54
+ generators are labeled by the corresponding root and coroot
55
+ vectors.
56
+ - ``prefix`` -- a ``str``; parameter passed to
57
+ :class:`IndexedGenerators<sage.structure.indexed_generators.IndexedGenerators>`
58
+ - ``bracket`` -- a ``str``; parameter passed to
59
+ :class:`IndexedGenerators<sage.structure.indexed_generators.IndexedGenerators>`
60
+
61
+ EXAMPLES::
62
+
63
+ sage: R = lie_conformal_algebras.Affine(QQ, 'A1')
64
+ sage: R
65
+ The affine Lie conformal algebra of type ['A', 1] over Rational Field
66
+ sage: R.an_element()
67
+ B[alpha[1]] + B[alphacheck[1]] + B[-alpha[1]] + B['K']
68
+
69
+ sage: R = lie_conformal_algebras.Affine(QQ, 'A1', names = ('e', 'h','f'))
70
+ sage: R.inject_variables()
71
+ Defining e, h, f, K
72
+ sage: Family(e.bracket(f.T(3)))
73
+ Finite family {0: 6*T^(3)h, 1: 6*T^(2)h, 2: 6*Th, 3: 6*h, 4: 24*K}
74
+
75
+ sage: V = lie_conformal_algebras.Affine(QQ, CartanType(["A",2,1]))
76
+ Traceback (most recent call last):
77
+ ...
78
+ ValueError: only affine algebras of simple finite dimensionalLie algebras are implemented
79
+
80
+ OUTPUT:
81
+
82
+ The Affine Lie conformal algebra associated with the finite
83
+ dimensional simple Lie algebra of Cartan type ``ct``.
84
+ """
85
+ def __init__(self, R, ct, names=None, prefix=None, bracket=None):
86
+ """
87
+ Initialize ``self``.
88
+
89
+ TESTS::
90
+
91
+ sage: V = lie_conformal_algebras.Affine(QQ,'A1')
92
+ sage: TestSuite(V).run()
93
+ """
94
+ if type(ct) is str:
95
+ from sage.combinat.root_system.cartan_type import CartanType
96
+ try:
97
+ ct = CartanType(ct)
98
+ except IndexError:
99
+ raise ValueError("ct must be a valid Cartan Type")
100
+ if not (ct.is_finite() and ct.is_irreducible):
101
+ raise ValueError("only affine algebras of simple finite dimensional"
102
+ "Lie algebras are implemented")
103
+ hv = Integer(ct.dual_coxeter_number())
104
+ g = LieAlgebra(R, cartan_type=ct)
105
+ B = g.basis()
106
+ S = B.keys()
107
+ gdict = {}
108
+ for k1 in S:
109
+ for k2 in S:
110
+ if S.rank(k2) <= S.rank(k1):
111
+ myb = B[k1].bracket(B[k2]).monomial_coefficients()
112
+ myf = R(2).inverse_of_unit()*R(hv).inverse_of_unit()\
113
+ * g.killing_form(B[k1], B[k2])
114
+ if myb or myf:
115
+ gdict[(k1, k2)] = {}
116
+ if myb:
117
+ gdict[(k1, k2)][0] = {(nk, 0): v
118
+ for nk, v in myb.items()}
119
+ if myf:
120
+ gdict[(k1, k2)][1] = {('K', 0): myf}
121
+
122
+ weights = (1,) * B.cardinality()
123
+ self._ct = ct
124
+ if prefix is None and names is None:
125
+ prefix = 'B'
126
+
127
+ GradedLieConformalAlgebra.__init__(self,
128
+ R, gdict, index_set=S,
129
+ central_elements=('K',), weights=weights,
130
+ names=names, prefix=prefix, bracket=bracket)
131
+
132
+ def cartan_type(self):
133
+ """
134
+ The Cartan type of this Lie conformal algbera.
135
+
136
+ EXAMPLES::
137
+
138
+ sage: R = lie_conformal_algebras.Affine(QQ, 'B3')
139
+ sage: R
140
+ The affine Lie conformal algebra of type ['B', 3] over Rational Field
141
+ sage: R.cartan_type()
142
+ ['B', 3]
143
+ """
144
+ return self._ct
145
+
146
+ def _repr_(self) -> str:
147
+ """
148
+ The name of this Lie conformal algebra.
149
+
150
+ EXAMPLES::
151
+
152
+ sage: lie_conformal_algebras.Affine(QQ, 'A1')
153
+ The affine Lie conformal algebra of type ['A', 1] over Rational Field
154
+ """
155
+ return "The affine Lie conformal algebra of type {} over {}".format(
156
+ self._ct, self.base_ring())
@@ -0,0 +1,18 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # ******************************************************************************
3
+ # Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
4
+ #
5
+ # This program is free software: you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation, either version 2 of the License, or
8
+ # (at your option) any later version.
9
+ # https://www.gnu.org/licenses/
10
+ # *****************************************************************************
11
+
12
+
13
+ from sage.misc.lazy_import import lazy_import
14
+ lazy_import('sage.algebras.lie_conformal_algebras.lie_conformal_algebra',
15
+ 'LieConformalAlgebra')
16
+ lazy_import('sage.algebras.lie_conformal_algebras',
17
+ 'examples', 'lie_conformal_algebras')
18
+ del lazy_import
@@ -0,0 +1,134 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Bosonic Ghosts Lie Conformal Algebra
5
+
6
+ The *Bosonic-ghosts* or `\beta-\gamma`-system Lie conformal algebra
7
+ with `2n` generators is the H-graded Lie conformal algebra generated
8
+ by `\beta_i, \gamma_i, i = 1,\ldots,n` and a central element `K`, with
9
+ non-vanishing `\lambda`-brackets:
10
+
11
+ .. MATH::
12
+
13
+ [{\beta_i}_\lambda \gamma_j] = \delta_{ij} K.
14
+
15
+ The generators `\beta_i` have degree `1` while the generators `\gamma_i`
16
+ have degree `0`.
17
+
18
+ AUTHORS:
19
+
20
+ - Reimundo Heluani (2020-06-15): Initial implementation.
21
+ """
22
+
23
+ #******************************************************************************
24
+ # Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
25
+ #
26
+ # This program is free software: you can redistribute it and/or modify
27
+ # it under the terms of the GNU General Public License as published by
28
+ # the Free Software Foundation, either version 2 of the License, or
29
+ # (at your option) any later version.
30
+ # http://www.gnu.org/licenses/
31
+ #*****************************************************************************
32
+
33
+ from sage.matrix.special import identity_matrix
34
+ from sage.structure.indexed_generators import standardize_names_index_set
35
+ from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
36
+
37
+
38
+ class BosonicGhostsLieConformalAlgebra(GradedLieConformalAlgebra):
39
+ r"""
40
+ The Bosonic ghosts or `\beta-\gamma`-system Lie conformal
41
+ algebra.
42
+
43
+ INPUT:
44
+
45
+ - ``R`` -- a commutative ring
46
+ - ``ngens`` -- an even positive Integer (default: ``2``); the
47
+ number of non-central generators of this Lie conformal
48
+ algebra.
49
+ - ``names`` -- list of ``str``; alternative names for the
50
+ generators
51
+ - ``index_set`` -- an enumerated set; an indexing set for the
52
+ generators
53
+
54
+ OUTPUT:
55
+
56
+ The Bosonic Ghosts Lie conformal algebra with generators
57
+ `\beta_i,\gamma_i, i=1,\ldots,n` and `K`, where `2n` is
58
+ ``ngens``.
59
+
60
+ EXAMPLES::
61
+
62
+ sage: R = lie_conformal_algebras.BosonicGhosts(QQ); R
63
+ The Bosonic ghosts Lie conformal algebra with generators (beta, gamma, K) over Rational Field
64
+ sage: R.inject_variables(); beta.bracket(gamma)
65
+ Defining beta, gamma, K
66
+ {0: K}
67
+ sage: beta.degree()
68
+ 1
69
+ sage: gamma.degree()
70
+ 0
71
+
72
+ sage: R = lie_conformal_algebras.BosonicGhosts(QQbar, ngens = 4, names = 'abcd'); R
73
+ The Bosonic ghosts Lie conformal algebra with generators (a, b, c, d, K) over Algebraic Field
74
+ sage: R.structure_coefficients()
75
+ Finite family {('a', 'c'): ((0, K),), ('b', 'd'): ((0, K),), ('c', 'a'): ((0, -K),), ('d', 'b'): ((0, -K),)}
76
+
77
+ TESTS::
78
+
79
+ sage: lie_conformal_algebras.BosonicGhosts(AA).category()
80
+ Category of H-graded finitely generated Lie conformal algebras with basis over Algebraic Real Field
81
+ """
82
+
83
+ def __init__(self, R, ngens=2, names=None, index_set=None):
84
+ """
85
+ Initialize ``self``.
86
+
87
+ TESTS::
88
+
89
+ sage: V = lie_conformal_algebras.BosonicGhosts(QQ)
90
+ sage: TestSuite(V).run()
91
+ """
92
+ from sage.rings.integer_ring import ZZ
93
+ try:
94
+ assert (ngens in ZZ and ngens > 0 and not ngens % 2)
95
+ except AssertionError:
96
+ raise ValueError("ngens should be an even positive integer, " +
97
+ "got {}".format(ngens))
98
+ latex_names = None
99
+ half = ngens // 2
100
+ if (names is None) and (index_set is None):
101
+ from sage.misc.defaults import variable_names as varnames
102
+ from sage.misc.defaults import latex_variable_names as laxnames
103
+ names = varnames(half, 'beta') + varnames(half, 'gamma')
104
+ latex_names = tuple(laxnames(half, r'\beta') +
105
+ laxnames(half, r'\gamma')) + ('K',)
106
+
107
+ names, index_set = standardize_names_index_set(names=names,
108
+ index_set=index_set,
109
+ ngens=ngens)
110
+ A = identity_matrix(R, half)
111
+ from sage.matrix.special import block_matrix
112
+ gram_matrix = block_matrix([[R.zero(), A], [-A, R.zero()]])
113
+ ghostsdict = {(i, j): {0: {('K', 0): gram_matrix[index_set.rank(i),
114
+ index_set.rank(j)]}}
115
+ for i in index_set for j in index_set}
116
+ weights = (1,) * half + (0,) * half
117
+ super().__init__(R,
118
+ ghostsdict, names=names,
119
+ latex_names=latex_names,
120
+ index_set=index_set,
121
+ weights=weights,
122
+ central_elements=('K',))
123
+
124
+ def _repr_(self) -> str:
125
+ """
126
+ String representation.
127
+
128
+ EXAMPLES::
129
+
130
+ sage: lie_conformal_algebras.BosonicGhosts(QQbar)
131
+ The Bosonic ghosts Lie conformal algebra with generators (beta, gamma, K) over Algebraic Field
132
+ """
133
+ return "The Bosonic ghosts Lie conformal algebra with generators {} "\
134
+ "over {}".format(self.gens(), self.base_ring())
@@ -0,0 +1,43 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ r"""
3
+ Examples of Lie Conformal Algebras
4
+
5
+ We implement the following examples of Lie conformal algebras:
6
+
7
+ - :mod:`Abelian Lie conformal algebra<.abelian_lie_conformal_algebra>`
8
+ - :mod:`Affine Lie conformal algebra<.affine_lie_conformal_algebra>`
9
+ - :mod:`Bosonic Ghosts<.bosonic_ghosts_lie_conformal_algebra>`
10
+ - :mod:`Fermionic Ghosts<.fermionic_ghosts_lie_conformal_algebra>`
11
+ - :mod:`Free Bosons<.free_bosons_lie_conformal_algebra>`
12
+ - :mod:`Free Fermions<.free_fermions_lie_conformal_algebra>`
13
+ - :mod:`N=2 super Lie Conformal algebra<.n2_lie_conformal_algebra>`
14
+ - :mod:`Neveu-Schwarz super Lie conformal
15
+ algebra<.neveu_schwarz_lie_conformal_algebra>`
16
+ - :mod:`Virasoro Lie conformal algebra<.virasoro_lie_conformal_algebra>`
17
+ - :mod:`Weyl Lie conformal algebra<.weyl_lie_conformal_algebra>`
18
+
19
+ AUTHORS:
20
+
21
+ - Reimundo Heluani (2020-06-15): Initial implementation.
22
+ """
23
+
24
+ # *****************************************************************************
25
+ # Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
26
+ #
27
+ # This program is free software: you can redistribute it and/or modify
28
+ # it under the terms of the GNU General Public License as published by
29
+ # the Free Software Foundation, either version 2 of the License, or
30
+ # (at your option) any later version.
31
+ # https://www.gnu.org/licenses/
32
+ # ****************************************************************************
33
+
34
+ from .abelian_lie_conformal_algebra import AbelianLieConformalAlgebra as Abelian
35
+ from .affine_lie_conformal_algebra import AffineLieConformalAlgebra as Affine
36
+ from .bosonic_ghosts_lie_conformal_algebra import BosonicGhostsLieConformalAlgebra as BosonicGhosts
37
+ from .fermionic_ghosts_lie_conformal_algebra import FermionicGhostsLieConformalAlgebra as FermionicGhosts
38
+ from .free_bosons_lie_conformal_algebra import FreeBosonsLieConformalAlgebra as FreeBosons
39
+ from .free_fermions_lie_conformal_algebra import FreeFermionsLieConformalAlgebra as FreeFermions
40
+ from .n2_lie_conformal_algebra import N2LieConformalAlgebra as N2
41
+ from .neveu_schwarz_lie_conformal_algebra import NeveuSchwarzLieConformalAlgebra as NeveuSchwarz
42
+ from .virasoro_lie_conformal_algebra import VirasoroLieConformalAlgebra as Virasoro
43
+ from .weyl_lie_conformal_algebra import WeylLieConformalAlgebra as Weyl
@@ -0,0 +1,131 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Fermionic Ghosts Super Lie Conformal Algebra
5
+
6
+ The *Fermionic-ghosts* or b--c system super Lie conformal algebra
7
+ with `2n` generators is the H-graded super Lie conformal algebra
8
+ generated by odd vectors `b_i, c_i, i = 1,\ldots,n` and a central
9
+ element `K`, with non-vanishing `\lambda`-brackets:
10
+
11
+ .. MATH::
12
+
13
+ [{b_i}_\lambda c_j] = \delta_{ij} K.
14
+
15
+ The generators `b_i` have degree `1` while the generators `c_i`
16
+ have degree `0`.
17
+
18
+ AUTHORS:
19
+
20
+ - Reimundo Heluani (2020-06-03): Initial implementation.
21
+ """
22
+ #******************************************************************************
23
+ # Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
24
+ #
25
+ # This program is free software: you can redistribute it and/or modify
26
+ # it under the terms of the GNU General Public License as published by
27
+ # the Free Software Foundation, either version 2 of the License, or
28
+ # (at your option) any later version.
29
+ # http://www.gnu.org/licenses/
30
+ #*****************************************************************************
31
+
32
+ from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
33
+
34
+
35
+ class FermionicGhostsLieConformalAlgebra(GradedLieConformalAlgebra):
36
+ r"""
37
+ The Fermionic ghosts or `bc`-system super Lie conformal algebra.
38
+
39
+ INPUT:
40
+
41
+ - ``R`` -- a commutative ring; the base ring of this Lie
42
+ conformal algebra
43
+ - ``ngens`` -- an even positive Integer (default: ``2``); the
44
+ number of non-central generators of this Lie conformal
45
+ algebra
46
+ - ``names`` -- tuple of strings; alternative names for the
47
+ generators
48
+ - ``index_set`` -- an enumerated set; alternative indexing
49
+ set for the generators
50
+
51
+ OUTPUT:
52
+
53
+ The Fermionic Ghosts super Lie conformal algebra with generators
54
+ `b_i,c_i, i=1,\ldots,n` and `K` where `2n` is ``ngens``.
55
+
56
+ EXAMPLES::
57
+
58
+ sage: R = lie_conformal_algebras.FermionicGhosts(QQ); R
59
+ The Fermionic ghosts Lie conformal algebra with generators (b, c, K) over Rational Field
60
+ sage: R.inject_variables()
61
+ Defining b, c, K
62
+ sage: b.bracket(c) == c.bracket(b)
63
+ True
64
+ sage: b.degree()
65
+ 1
66
+ sage: c.degree()
67
+ 0
68
+ sage: R.category()
69
+ Category of H-graded super finitely generated Lie conformal algebras with basis over Rational Field
70
+
71
+ sage: R = lie_conformal_algebras.FermionicGhosts(QQbar, ngens=4, names = 'abcd');R
72
+ The Fermionic ghosts Lie conformal algebra with generators (a, b, c, d, K) over Algebraic Field
73
+ sage: R.structure_coefficients()
74
+ Finite family {('a', 'c'): ((0, K),), ('b', 'd'): ((0, K),), ('c', 'a'): ((0, K),), ('d', 'b'): ((0, K),)}
75
+ """
76
+ def __init__(self, R, ngens=2, names=None, index_set=None):
77
+ """
78
+ Initialize ``self``.
79
+
80
+ TESTS::
81
+
82
+ sage: V = lie_conformal_algebras.BosonicGhosts(QQ)
83
+ sage: TestSuite(V).run()
84
+ """
85
+ try:
86
+ assert (ngens > 0 and not ngens % 2)
87
+ except AssertionError:
88
+ raise ValueError("ngens should be an even positive integer, " +
89
+ "got {}".format(ngens))
90
+ latex_names = None
91
+ half = ngens // 2
92
+ if (names is None) and (index_set is None):
93
+ from sage.misc.defaults import variable_names as varnames
94
+ from sage.misc.defaults import latex_variable_names as laxnames
95
+ names = varnames(half, 'b') + varnames(half, 'c')
96
+ latex_names = tuple(laxnames(half, 'b') +
97
+ laxnames(half, 'c')) + ('K',)
98
+
99
+ from sage.structure.indexed_generators import \
100
+ standardize_names_index_set
101
+ names, index_set = standardize_names_index_set(names=names,
102
+ index_set=index_set,
103
+ ngens=ngens)
104
+ from sage.matrix.special import identity_matrix
105
+ A = identity_matrix(R, half)
106
+ from sage.matrix.special import block_matrix
107
+ gram_matrix = block_matrix([[R.zero(), A], [A, R.zero()]])
108
+ ghostsdict = {(i, j): {0: {('K', 0): gram_matrix[index_set.rank(i),
109
+ index_set.rank(j)]}}
110
+ for i in index_set for j in index_set}
111
+ weights = (1,) * half + (0,) * half
112
+ parity = (1,) * ngens
113
+ super().__init__(R,
114
+ ghostsdict, names=names,
115
+ latex_names=latex_names,
116
+ index_set=index_set,
117
+ weights=weights,
118
+ parity=parity,
119
+ central_elements=('K',))
120
+
121
+ def _repr_(self) -> str:
122
+ """
123
+ String representation.
124
+
125
+ EXAMPLES::
126
+
127
+ sage: lie_conformal_algebras.FermionicGhosts(QQ)
128
+ The Fermionic ghosts Lie conformal algebra with generators (b, c, K) over Rational Field
129
+ """
130
+ return "The Fermionic ghosts Lie conformal algebra with generators {} "\
131
+ "over {}".format(self.gens(), self.base_ring())