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,447 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+ r"""
4
+ Introduction to quasisymmetric functions
5
+
6
+ In this document we briefly explain the quasisymmetric function bases and
7
+ related functionality in Sage. We assume the reader is familiar with the
8
+ package :class:`SymmetricFunctions`.
9
+
10
+ Quasisymmetric functions, denoted `QSym`, form a subring of the power
11
+ series ring in countably many variables. `QSym` contains the symmetric
12
+ functions. These functions first arose in the theory of
13
+ `P`-partitions. The initial ideas in this field are attributed to
14
+ MacMahon, Knuth, Kreweras, Glânffrwd Thomas, Stanley. In 1984, Gessel
15
+ formalized the study of quasisymmetric functions and introduced the
16
+ basis of fundamental quasisymmetric functions [Ges]_. In 1995, Gelfand,
17
+ Krob, Lascoux, Leclerc, Retakh, and Thibon showed that the ring of
18
+ quasisymmetric functions is Hopf dual to the noncommutative symmetric
19
+ functions [NCSF]_. Many results have built on these.
20
+
21
+ One advantage of working in `QSym` is that many interesting families of
22
+ symmetric functions have explicit expansions in fundamental quasisymmetric
23
+ functions such as Schur functions [Ges]_, Macdonald polynomials
24
+ [HHL05]_, and plethysm of Schur functions [LW12]_.
25
+
26
+ For more background see :wikipedia:`Quasisymmetric_function`.
27
+
28
+ To begin, initialize the ring. Below we chose to use the rational
29
+ numbers `\QQ`. Other options include the integers `\ZZ` and `\CC`::
30
+
31
+ sage: QSym = QuasiSymmetricFunctions(QQ)
32
+ sage: QSym
33
+ Quasisymmetric functions over the Rational Field
34
+
35
+ sage: QSym = QuasiSymmetricFunctions(CC); QSym
36
+ Quasisymmetric functions over the Complex Field with 53 bits of precision
37
+
38
+ sage: QSym = QuasiSymmetricFunctions(ZZ); QSym
39
+ Quasisymmetric functions over the Integer Ring
40
+
41
+ All bases of `QSym` are indexed by compositions e.g. `[3,1,1,4]`. The
42
+ convention is to use capital letters for bases of `QSym` and lowercase
43
+ letters for bases of the symmetric functions `Sym`. Next set up names for the
44
+ known bases by running ``inject_shorthands()``. As with symmetric functions,
45
+ you do not need to run this command and you could assign these bases other
46
+ names. ::
47
+
48
+ sage: QSym = QuasiSymmetricFunctions(QQ)
49
+ sage: QSym.inject_shorthands()
50
+ Defining M as shorthand for Quasisymmetric functions over the Rational Field in the Monomial basis
51
+ Defining F as shorthand for Quasisymmetric functions over the Rational Field in the Fundamental basis
52
+ Defining E as shorthand for Quasisymmetric functions over the Rational Field in the Essential basis
53
+ Defining dI as shorthand for Quasisymmetric functions over the Rational Field in the dualImmaculate basis
54
+ Defining QS as shorthand for Quasisymmetric functions over the Rational Field in the Quasisymmetric Schur basis
55
+ Defining YQS as shorthand for Quasisymmetric functions over the Rational Field in the Young Quasisymmetric Schur basis
56
+ Defining phi as shorthand for Quasisymmetric functions over the Rational Field in the phi basis
57
+ Defining psi as shorthand for Quasisymmetric functions over the Rational Field in the psi basis
58
+
59
+ Now one can start constructing quasisymmetric functions.
60
+
61
+ .. NOTE::
62
+
63
+ It is best to use variables other than ``M`` and ``F``.
64
+
65
+ ::
66
+
67
+ sage: x = M[2,1] + M[1,2]
68
+ sage: x
69
+ M[1, 2] + M[2, 1]
70
+
71
+ sage: y = 3*M[1,2] + M[3]^2; y
72
+ 3*M[1, 2] + 2*M[3, 3] + M[6]
73
+
74
+ sage: F[3,1,3] + 7*F[2,1]
75
+ 7*F[2, 1] + F[3, 1, 3]
76
+
77
+ sage: 3*F[2,1,2] + F[3]^2
78
+ F[1, 2, 2, 1] + F[1, 2, 3] + 2*F[1, 3, 2] + F[1, 4, 1] + F[1, 5] + 3*F[2, 1, 2]
79
+ + 2*F[2, 2, 2] + 2*F[2, 3, 1] + 2*F[2, 4] + F[3, 2, 1] + 3*F[3, 3] + 2*F[4, 2] + F[5, 1] + F[6]
80
+
81
+ To convert from one basis to another is easy::
82
+
83
+ sage: z = M[1,2,1]
84
+ sage: z
85
+ M[1, 2, 1]
86
+
87
+ sage: F(z)
88
+ -F[1, 1, 1, 1] + F[1, 2, 1]
89
+
90
+ sage: M(F(z))
91
+ M[1, 2, 1]
92
+
93
+ To expand in variables, one can specify a finite size alphabet `x_1, x_2,
94
+ \ldots, x_m`::
95
+
96
+ sage: y = M[1,2,1]
97
+ sage: y.expand(4)
98
+ x0*x1^2*x2 + x0*x1^2*x3 + x0*x2^2*x3 + x1*x2^2*x3
99
+
100
+ The usual methods on free modules are available such as coefficients,
101
+ degrees, and the support::
102
+
103
+ sage: z = 3*M[1,2]+M[3]^2; z
104
+ 3*M[1, 2] + 2*M[3, 3] + M[6]
105
+
106
+ sage: z.coefficient([1,2])
107
+ 3
108
+
109
+ sage: z.degree()
110
+ 6
111
+
112
+ sage: sorted(z.coefficients())
113
+ [1, 2, 3]
114
+
115
+ sage: sorted(z.monomials(), key=lambda x: tuple(x.support()))
116
+ [M[1, 2], M[3, 3], M[6]]
117
+
118
+ sage: z.monomial_coefficients()
119
+ {[1, 2]: 3, [3, 3]: 2, [6]: 1}
120
+
121
+ As with the symmetric functions package, the quasisymmetric function ``1``
122
+ has several instantiations. However, the most obvious way to write ``1``
123
+ leads to an error (this is due to the semantics of python)::
124
+
125
+ sage: M[[]]
126
+ M[]
127
+ sage: M.one()
128
+ M[]
129
+ sage: M(1)
130
+ M[]
131
+ sage: M[[]] == 1
132
+ True
133
+ sage: M[]
134
+ Traceback (most recent call last):
135
+ ...
136
+ SyntaxError: invalid ...
137
+
138
+
139
+ Working with symmetric functions
140
+ --------------------------------
141
+
142
+ The quasisymmetric functions are a ring which contains the symmetric
143
+ functions as a subring. The Monomial quasisymmetric functions are
144
+ related to the monomial symmetric functions by `m_\lambda =
145
+ \sum_{\mathrm{sort}(c) = \lambda} M_c`, where `\mathrm{sort}(c)`
146
+ means the partition obtained by sorting the composition `c`::
147
+
148
+ sage: SymmetricFunctions(QQ).inject_shorthands()
149
+ Defining e as shorthand for Symmetric Functions over Rational Field in the elementary basis
150
+ Defining f as shorthand for Symmetric Functions over Rational Field in the forgotten basis
151
+ Defining h as shorthand for Symmetric Functions over Rational Field in the homogeneous basis
152
+ Defining m as shorthand for Symmetric Functions over Rational Field in the monomial basis
153
+ Defining p as shorthand for Symmetric Functions over Rational Field in the powersum basis
154
+ Defining s as shorthand for Symmetric Functions over Rational Field in the Schur basis
155
+
156
+ sage: m[2,1]
157
+ m[2, 1]
158
+ sage: M(m[2,1])
159
+ M[1, 2] + M[2, 1]
160
+ sage: M(s[2,1])
161
+ 2*M[1, 1, 1] + M[1, 2] + M[2, 1]
162
+
163
+ There are methods to test if an expression `f` in the quasisymmetric functions
164
+ is a symmetric function::
165
+
166
+ sage: f = M[1,1,2] + M[1,2,1]
167
+ sage: f.is_symmetric()
168
+ False
169
+ sage: f = M[3,1] + M[1,3]
170
+ sage: f.is_symmetric()
171
+ True
172
+
173
+ If `f` is symmetric, there are methods to convert `f` to an expression in the
174
+ symmetric functions::
175
+
176
+ sage: f.to_symmetric_function()
177
+ m[3, 1]
178
+
179
+ The expansion of the Schur function in terms of the Fundamental quasisymmetric
180
+ functions is due to [Ges]_. There is one term in the expansion for each
181
+ standard tableau of shape equal to the partition indexing the Schur function.
182
+ ::
183
+
184
+ sage: f = F[3,2] + F[2,2,1] + F[2,3] + F[1,3,1] + F[1,2,2]
185
+ sage: f.is_symmetric()
186
+ True
187
+ sage: f.to_symmetric_function()
188
+ 5*m[1, 1, 1, 1, 1] + 3*m[2, 1, 1, 1] + 2*m[2, 2, 1] + m[3, 1, 1] + m[3, 2]
189
+ sage: s(f.to_symmetric_function())
190
+ s[3, 2]
191
+
192
+ It is also possible to convert any symmetric function to the quasisymmetric
193
+ function expansion in any known basis. The converse is not true::
194
+
195
+ sage: M( m[3,1,1] )
196
+ M[1, 1, 3] + M[1, 3, 1] + M[3, 1, 1]
197
+ sage: F( s[2,2,1] )
198
+ F[1, 1, 2, 1] + F[1, 2, 1, 1] + F[1, 2, 2] + F[2, 1, 2] + F[2, 2, 1]
199
+
200
+ sage: s(M[2,1])
201
+ Traceback (most recent call last):
202
+ ...
203
+ TypeError: do not know how to make x (= M[2, 1]) an element of self
204
+
205
+ It is possible to experiment with the quasisymmetric function expansion of other
206
+ bases, but it is important that the base ring be the same for both algebras.
207
+ ::
208
+
209
+ sage: R = QQ['t']
210
+ sage: Qp = SymmetricFunctions(R).hall_littlewood().Qp()
211
+ sage: QSymt = QuasiSymmetricFunctions(R)
212
+ sage: Ft = QSymt.F()
213
+ sage: Ft( Qp[2,2] )
214
+ F[1, 2, 1] + t*F[1, 3] + (t+1)*F[2, 2] + t*F[3, 1] + t^2*F[4]
215
+
216
+ ::
217
+
218
+ sage: K = QQ['q','t'].fraction_field()
219
+ sage: Ht = SymmetricFunctions(K).macdonald().Ht()
220
+ sage: Fqt = QuasiSymmetricFunctions(Ht.base_ring()).F()
221
+ sage: Fqt(Ht[2,1])
222
+ q*t*F[1, 1, 1] + (q+t)*F[1, 2] + (q+t)*F[2, 1] + F[3]
223
+
224
+ The following will raise an error because the base ring of ``F`` is not
225
+ equal to the base ring of ``Ht``::
226
+
227
+ sage: F(Ht[2,1])
228
+ Traceback (most recent call last):
229
+ ...
230
+ TypeError: do not know how to make x (= McdHt[2, 1]) an element of self (=Quasisymmetric functions over the Rational Field in the Fundamental basis)
231
+
232
+ QSym is a Hopf algebra
233
+ ----------------------
234
+
235
+ The product on `QSym` is commutative and is inherited from the
236
+ product by the realization within the polynomial ring::
237
+
238
+ sage: M[3]*M[1,1] == M[1,1]*M[3]
239
+ True
240
+ sage: M[3]*M[1,1]
241
+ M[1, 1, 3] + M[1, 3, 1] + M[1, 4] + M[3, 1, 1] + M[4, 1]
242
+ sage: F[3]*F[1,1]
243
+ F[1, 1, 3] + F[1, 2, 2] + F[1, 3, 1] + F[1, 4] + F[2, 1, 2] + F[2, 2, 1] + F[2, 3] + F[3, 1, 1] + F[3, 2] + F[4, 1]
244
+ sage: M[3]*F[2]
245
+ M[1, 1, 3] + M[1, 3, 1] + M[1, 4] + M[2, 3] + M[3, 1, 1] + M[3, 2] + M[4, 1] + M[5]
246
+ sage: F[2]*M[3]
247
+ F[1, 1, 1, 2] - F[1, 2, 2] + F[2, 1, 1, 1] - F[2, 1, 2] - F[2, 2, 1] + F[5]
248
+
249
+ There is a coproduct on this ring as well, which in the Monomial basis acts by
250
+ cutting the composition into a left half and a right half. The co-product is
251
+ non-co-commutative::
252
+
253
+ sage: M[1,3,1].coproduct()
254
+ M[] # M[1, 3, 1] + M[1] # M[3, 1] + M[1, 3] # M[1] + M[1, 3, 1] # M[]
255
+ sage: F[1,3,1].coproduct()
256
+ F[] # F[1, 3, 1] + F[1] # F[3, 1] + F[1, 1] # F[2, 1] + F[1, 2] # F[1, 1] + F[1, 3] # F[1] + F[1, 3, 1] # F[]
257
+
258
+ .. rubric:: The Duality Pairing with Non-Commutative Symmetric Functions
259
+
260
+ These two operations endow `QSym` with the structure of a Hopf algebra. It is
261
+ the dual Hopf algebra of the non-commutative symmetric functions `NCSF`. Under
262
+ this duality, the Monomial basis of `QSym` is dual to the Complete basis of
263
+ `NCSF`, and the Fundamental basis of `QSym` is dual to the Ribbon basis of
264
+ `NCSF` (see [MR]_)::
265
+
266
+ sage: S = M.dual(); S
267
+ Non-Commutative Symmetric Functions over the Rational Field in the Complete basis
268
+ sage: M[1,3,1].duality_pairing( S[1,3,1] )
269
+ 1
270
+ sage: M.duality_pairing_matrix( S, degree=4 )
271
+ [1 0 0 0 0 0 0 0]
272
+ [0 1 0 0 0 0 0 0]
273
+ [0 0 1 0 0 0 0 0]
274
+ [0 0 0 1 0 0 0 0]
275
+ [0 0 0 0 1 0 0 0]
276
+ [0 0 0 0 0 1 0 0]
277
+ [0 0 0 0 0 0 1 0]
278
+ [0 0 0 0 0 0 0 1]
279
+ sage: F.duality_pairing_matrix( S, degree=4 )
280
+ [1 0 0 0 0 0 0 0]
281
+ [1 1 0 0 0 0 0 0]
282
+ [1 0 1 0 0 0 0 0]
283
+ [1 1 1 1 0 0 0 0]
284
+ [1 0 0 0 1 0 0 0]
285
+ [1 1 0 0 1 1 0 0]
286
+ [1 0 1 0 1 0 1 0]
287
+ [1 1 1 1 1 1 1 1]
288
+ sage: NCSF = M.realization_of().dual()
289
+ sage: R = NCSF.Ribbon()
290
+ sage: F.duality_pairing_matrix( R, degree=4 )
291
+ [1 0 0 0 0 0 0 0]
292
+ [0 1 0 0 0 0 0 0]
293
+ [0 0 1 0 0 0 0 0]
294
+ [0 0 0 1 0 0 0 0]
295
+ [0 0 0 0 1 0 0 0]
296
+ [0 0 0 0 0 1 0 0]
297
+ [0 0 0 0 0 0 1 0]
298
+ [0 0 0 0 0 0 0 1]
299
+ sage: M.duality_pairing_matrix( R, degree=4 )
300
+ [ 1 0 0 0 0 0 0 0]
301
+ [-1 1 0 0 0 0 0 0]
302
+ [-1 0 1 0 0 0 0 0]
303
+ [ 1 -1 -1 1 0 0 0 0]
304
+ [-1 0 0 0 1 0 0 0]
305
+ [ 1 -1 0 0 -1 1 0 0]
306
+ [ 1 0 -1 0 -1 0 1 0]
307
+ [-1 1 1 -1 1 -1 -1 1]
308
+
309
+ Let `H` and `G` be elements of `QSym` and `h` an element of `NCSF`. Then if
310
+ we represent the duality pairing with the mathematical notation `[ \cdot,
311
+ \cdot ]`, we have:
312
+
313
+ .. MATH::
314
+
315
+ [H \cdot G, h] = [H \otimes G, \Delta(h)].
316
+
317
+ For example, the coefficient of ``M[2,1,4,1]`` in ``M[1,3]*M[2,1,1]`` may be
318
+ computed with the duality pairing::
319
+
320
+ sage: I, J = Composition([1,3]), Composition([2,1,1])
321
+ sage: (M[I]*M[J]).duality_pairing(S[2,1,4,1])
322
+ 1
323
+
324
+ And the coefficient of ``S[1,3] # S[2,1,1]`` in ``S[2,1,4,1].coproduct()`` is
325
+ equal to this result::
326
+
327
+ sage: S[2,1,4,1].coproduct()
328
+ S[] # S[2, 1, 4, 1] + ... + S[1, 3] # S[2, 1, 1] + ... + S[4, 1] # S[2, 1]
329
+
330
+ The duality pairing on the tensor space is another way of getting this
331
+ coefficient, but currently the method
332
+ :meth:`~sage.combinat.ncsf_qsym.generic_basis_code.BasesOfQSymOrNCSF.ParentMethods.duality_pairing()`
333
+ is not defined on the tensor squared space. However, we can extend this
334
+ functionality by applying a linear morphism to the terms in the coproduct,
335
+ as follows::
336
+
337
+ sage: X = S[2,1,4,1].coproduct()
338
+ sage: def linear_morphism(x, y):
339
+ ....: return x.duality_pairing(M[1,3]) * y.duality_pairing(M[2,1,1])
340
+ sage: X.apply_multilinear_morphism(linear_morphism, codomain=ZZ)
341
+ 1
342
+
343
+ Similarly, if `H` is an element of `QSym` and `g` and `h` are elements of
344
+ `NCSF`, then
345
+
346
+ .. MATH::
347
+
348
+ [ H, g \cdot h ] = [ \Delta(H), g \otimes h ].
349
+
350
+ For example, the coefficient of ``R[2,3,1]`` in ``R[2,1]*R[2,1]`` is computed
351
+ with the duality pairing by the following command::
352
+
353
+ sage: (R[2,1]*R[2,1]).duality_pairing(F[2,3,1])
354
+ 1
355
+ sage: R[2,1]*R[2,1]
356
+ R[2, 1, 2, 1] + R[2, 3, 1]
357
+
358
+ This coefficient should then be equal to the coefficient of ``F[2,1] # F[2,1]``
359
+ in ``F[2,3,1].coproduct()``::
360
+
361
+ sage: F[2,3,1].coproduct()
362
+ F[] # F[2, 3, 1] + ... + F[2, 1] # F[2, 1] + ... + F[2, 3, 1] # F[]
363
+
364
+ This can also be computed by the duality pairing on the tensor space,
365
+ as above::
366
+
367
+ sage: X = F[2,3,1].coproduct()
368
+ sage: def linear_morphism(x, y):
369
+ ....: return x.duality_pairing(R[2,1]) * y.duality_pairing(R[2,1])
370
+ sage: X.apply_multilinear_morphism(linear_morphism, codomain=ZZ)
371
+ 1
372
+
373
+ .. rubric:: The Operation Adjoint to Multiplication by a Non-Commutative Symmetric Function
374
+
375
+ Let `g \in NCSF` and consider the linear endomorphism of `NCSF` defined by
376
+ left (respectively, right) multiplication by `g`. Since there is a duality
377
+ between `QSym` and `NCSF`, this linear transformation induces an operator
378
+ `g^\perp` on `QSym` satisfying
379
+
380
+ .. MATH::
381
+
382
+ [ g^\perp(H), h ] = [ H, g \cdot h ].
383
+
384
+ for any non-commutative symmetric function `h`.
385
+
386
+ This is implemented by the method
387
+ :meth:`~sage.combinat.ncsf_qsym.generic_basis_code.BasesOfQSymOrNCSF.ElementMethods.skew_by()`.
388
+ Explicitly, if ``H`` is a quasisymmetric function and ``g``
389
+ a non-commutative symmetric function, then ``H.skew_by(g)`` and
390
+ ``H.skew_by(g, side='right')`` are expressions that satisfy,
391
+ for any non-commutative symmetric function ``h``, the following
392
+ identities::
393
+
394
+ H.skew_by(g).duality_pairing(h) == H.duality_pairing(g*h)
395
+ H.skew_by(g, side='right').duality_pairing(h) == H.duality_pairing(h*g)
396
+
397
+ For example, ``M[J].skew_by(S[I])`` is `0` unless the composition `J`
398
+ begins with `I` and ``M(J).skew_by(S(I), side='right')`` is `0` unless
399
+ the composition `J` ends with `I`::
400
+
401
+ sage: M[3,2,2].skew_by(S[3])
402
+ M[2, 2]
403
+ sage: M[3,2,2].skew_by(S[2])
404
+ 0
405
+ sage: M[3,2,2].coproduct().apply_multilinear_morphism( lambda x,y: x.duality_pairing(S[3])*y )
406
+ M[2, 2]
407
+ sage: M[3,2,2].skew_by(S[3], side='right')
408
+ 0
409
+ sage: M[3,2,2].skew_by(S[2], side='right')
410
+ M[3, 2]
411
+
412
+ .. rubric:: The antipode
413
+
414
+ The antipode sends the Fundamental basis element indexed by the
415
+ composition `I` to `-1` to the size of `I` times the Fundamental
416
+ basis element indexed by the conjugate composition to `I`::
417
+
418
+ sage: F[3,2,2].antipode()
419
+ -F[1, 2, 2, 1, 1]
420
+ sage: Composition([3,2,2]).conjugate()
421
+ [1, 2, 2, 1, 1]
422
+ sage: M[3,2,2].antipode()
423
+ -M[2, 2, 3] - M[2, 5] - M[4, 3] - M[7]
424
+
425
+ We demonstrate here the defining relation of the antipode::
426
+
427
+ sage: X = F[3,2,2].coproduct()
428
+ sage: X.apply_multilinear_morphism(lambda x,y: x*y.antipode())
429
+ 0
430
+ sage: X.apply_multilinear_morphism(lambda x,y: x.antipode()*y)
431
+ 0
432
+
433
+ REFERENCES:
434
+
435
+ .. [HHL05] *A combinatorial formula for Macdonald polynomials*.
436
+ Haiman, Haglund, and Loehr.
437
+ J. Amer. Math. Soc. 18 (2005), no. 3, 735-761.
438
+
439
+ .. [LW12] *Quasisymmetric expansions of Schur-function plethysms*.
440
+ Loehr and Warrington.
441
+ Proc. Amer. Math. Soc. 140 (2012), no. 4, 1159-1171.
442
+
443
+ .. [KT97] *Noncommutative symmetric functions IV: Quantum linear groups and
444
+ Hecke algebras at* `q = 0`.
445
+ Krob and Thibon.
446
+ Journal of Algebraic Combinatorics 6 (1997), 339-376.
447
+ """
@@ -0,0 +1,21 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ r"""
3
+ Symmetric functions in non-commuting variables
4
+
5
+ - :class:`Introduction to Symmetric Functions in Non-Commuting Variables <sage.combinat.ncsym.ncsym.SymmetricFunctionsNonCommutingVariables>`
6
+
7
+ - :ref:`sage.combinat.ncsym.bases`
8
+ - :ref:`sage.combinat.ncsym.dual`
9
+ - :ref:`sage.combinat.ncsym.ncsym`
10
+ """
11
+ # install the docstring of this module to the containing package
12
+ from sage.misc.namespace_package import install_doc
13
+ install_doc(__package__, __doc__)
14
+
15
+ from sage.misc.lazy_import import lazy_import
16
+
17
+ lazy_import('sage.combinat.ncsym.ncsym', 'SymmetricFunctionsNonCommutingVariables')
18
+ lazy_import('sage.combinat.ncsym.dual', 'SymmetricFunctionsNonCommutingVariablesDual')
19
+
20
+ del install_doc
21
+ del lazy_import