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,332 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+
4
+ cdef extern from 'symmetrica/def.h':
5
+ INT mult_schubert_schubert(OP a, OP b, OP result)
6
+ INT m_perm_sch(OP a, OP b)
7
+ INT t_SCHUBERT_POLYNOM(OP a, OP b)
8
+ INT t_POLYNOM_SCHUBERT(OP a, OP b)
9
+ INT mult_schubert_variable(OP a, OP i, OP r)
10
+ INT divdiff_perm_schubert(OP perm, OP sb, OP res)
11
+ INT scalarproduct_schubert(OP a, OP b, OP c)
12
+ INT divdiff_schubert(OP a, OP schub, OP res)
13
+
14
+ INT t_2SCHUBERT_POLYNOM(OP a,OP b)
15
+ INT mult_schubert_polynom(OP a,OP b,OP c)
16
+
17
+
18
+ cdef object _check_schubert(object a, OP ca):
19
+ if a in Permutations():
20
+ if isinstance(a, builtinlist):
21
+ a = Permutation(a)
22
+ _op_schubert_perm(a, ca)
23
+ return max(a.reduced_word()+[0])
24
+ elif isinstance(a, SchubertPolynomial_class):
25
+ br = a.parent().base_ring()
26
+ if (br == QQ or br == ZZ):
27
+ _op_schubert_sp(a, ca)
28
+ return min(max(i.reduced_word(), default=0) for i in a.support())
29
+ else:
30
+ raise ValueError("a must be a Schubert polynomial over ZZ or QQ")
31
+ else:
32
+ raise TypeError("a must be a permutation or a Schubert polynomial")
33
+
34
+
35
+ def mult_schubert_schubert_symmetrica(a, b):
36
+ """
37
+ Multiply the Schubert polynomials `a` and `b`.
38
+
39
+ EXAMPLES::
40
+
41
+ sage: symmetrica.mult_schubert_schubert([3,2,1], [3,2,1])
42
+ X[5, 3, 1, 2, 4]
43
+ """
44
+ late_import()
45
+
46
+ cdef OP ca = callocobject(), cb = callocobject(), cres = callocobject()
47
+
48
+ try:
49
+ max_a = _check_schubert(a, ca)
50
+ max_b = _check_schubert(b, cb)
51
+ except (ValueError, TypeError), err:
52
+ freeall(ca)
53
+ freeall(cb)
54
+ freeall(cres)
55
+ raise err
56
+
57
+ sig_on()
58
+ mult_schubert_schubert(ca, cb, cres)
59
+ sig_off()
60
+
61
+ res = _py(cres)
62
+
63
+ freeall(ca)
64
+ freeall(cb)
65
+ freeall(cres)
66
+
67
+ return res
68
+
69
+
70
+ def t_SCHUBERT_POLYNOM_symmetrica(a):
71
+ """
72
+ Convert a Schubert polynomial to a 'regular' multivariate
73
+ polynomial.
74
+
75
+ EXAMPLES::
76
+
77
+ sage: symmetrica.t_SCHUBERT_POLYNOM([3,2,1])
78
+ x0^2*x1
79
+ """
80
+ late_import()
81
+
82
+ cdef OP ca = callocobject(), cres = callocobject()
83
+
84
+ try:
85
+ max_a = _check_schubert(a, ca)
86
+ except (ValueError, TypeError), err:
87
+ freeall(ca)
88
+ freeall(cres)
89
+ raise err
90
+
91
+ sig_on()
92
+ t_SCHUBERT_POLYNOM(ca, cres)
93
+ sig_off()
94
+
95
+ res = _py(cres)
96
+
97
+ freeall(ca)
98
+ freeall(cres)
99
+
100
+ return res
101
+
102
+
103
+ def t_POLYNOM_SCHUBERT_symmetrica(a):
104
+ """
105
+ Convert a multivariate polynomial a to a Schubert polynomial.
106
+
107
+ EXAMPLES::
108
+
109
+ sage: R.<x1,x2,x3> = QQ[]
110
+ sage: w0 = x1^2*x2
111
+ sage: symmetrica.t_POLYNOM_SCHUBERT(w0)
112
+ X[3, 2, 1]
113
+ """
114
+ late_import()
115
+
116
+ cdef OP ca = callocobject(), cres = callocobject()
117
+
118
+ if not isinstance(a, MPolynomial):
119
+ freeall(ca)
120
+ freeall(cres)
121
+ raise TypeError("a (= %s) must be a multivariate polynomial")
122
+ else:
123
+ br = a.parent().base_ring()
124
+ if br != QQ and br != ZZ:
125
+ freeall(ca)
126
+ freeall(cres)
127
+ raise ValueError("a's base ring must be either ZZ or QQ")
128
+ else:
129
+ _op_polynom(a, ca)
130
+
131
+ sig_on()
132
+ t_POLYNOM_SCHUBERT(ca, cres)
133
+ sig_off()
134
+
135
+ res = _py(cres)
136
+
137
+ freeall(ca)
138
+ freeall(cres)
139
+
140
+ return res
141
+
142
+
143
+ def mult_schubert_variable_symmetrica(a, i):
144
+ """
145
+ Return the product of `a` and `x_i`. Note that indexing with `i`
146
+ starts at 1.
147
+
148
+ EXAMPLES::
149
+
150
+ sage: symmetrica.mult_schubert_variable([3,2,1], 2)
151
+ X[3, 2, 4, 1]
152
+ sage: symmetrica.mult_schubert_variable([3,2,1], 4)
153
+ X[3, 2, 1, 4, 6, 5] - X[3, 2, 1, 5, 4]
154
+ """
155
+ late_import()
156
+
157
+ cdef OP ca = callocobject(), ci = callocobject(), cres = callocobject()
158
+
159
+ try:
160
+ max_a = _check_schubert(a, ca)
161
+ except (ValueError, TypeError), err:
162
+ freeall(ca)
163
+ freeall(ci)
164
+ freeall(cres)
165
+ raise err
166
+
167
+ _op_integer(i, ci)
168
+
169
+ sig_on()
170
+ mult_schubert_variable(ca, ci, cres)
171
+ sig_off()
172
+
173
+ res = _py(cres)
174
+
175
+ freeall(ca)
176
+ freeall(ci)
177
+ freeall(cres)
178
+
179
+ return res
180
+
181
+
182
+ def divdiff_perm_schubert_symmetrica(perm, a):
183
+ r"""
184
+ Return the result of applying the divided difference operator
185
+ `\delta_i` to `a` where `a` is either a permutation or a
186
+ Schubert polynomial over `\QQ`.
187
+
188
+ EXAMPLES::
189
+
190
+ sage: symmetrica.divdiff_perm_schubert([2,3,1], [3,2,1])
191
+ X[2, 1]
192
+ sage: symmetrica.divdiff_perm_schubert([3,1,2], [3,2,1])
193
+ X[1, 3, 2]
194
+ sage: symmetrica.divdiff_perm_schubert([3,2,4,1], [3,2,1])
195
+ Traceback (most recent call last):
196
+ ...
197
+ ValueError: cannot apply \delta_{[3, 2, 4, 1]} to a (= [3, 2, 1])
198
+ """
199
+ late_import()
200
+
201
+ cdef OP ca = callocobject(), cperm = callocobject(), cres = callocobject()
202
+
203
+ try:
204
+ max_a = _check_schubert(a, ca)
205
+ except (ValueError, TypeError), err:
206
+ freeall(ca)
207
+ freeall(cperm)
208
+ freeall(cres)
209
+ raise err
210
+
211
+ if perm not in Permutations():
212
+ freeall(ca)
213
+ freeall(cperm)
214
+ freeall(cres)
215
+ raise TypeError("perm must be a permutation")
216
+ else:
217
+ perm = Permutation(perm)
218
+ rw = perm.reduced_word()
219
+ max_perm = max(rw)
220
+ _op_permutation(perm, cperm)
221
+
222
+ if max_perm > max_a:
223
+ freeall(ca)
224
+ freeall(cperm)
225
+ freeall(cres)
226
+ raise ValueError(r"cannot apply \delta_{%s} to a (= %s)" % (perm, a))
227
+
228
+ sig_on()
229
+ divdiff_perm_schubert(cperm, ca, cres)
230
+ sig_off()
231
+
232
+ res = _py(cres)
233
+
234
+ freeall(ca)
235
+ freeall(cperm)
236
+ freeall(cres)
237
+
238
+ return res
239
+
240
+
241
+ def scalarproduct_schubert_symmetrica(a, b):
242
+ """
243
+ EXAMPLES::
244
+
245
+ sage: symmetrica.scalarproduct_schubert([3,2,1], [3,2,1])
246
+ X[1, 3, 5, 2, 4]
247
+ sage: symmetrica.scalarproduct_schubert([3,2,1], [2,1,3])
248
+ X[1, 2, 4, 3]
249
+ """
250
+ late_import()
251
+
252
+ cdef OP ca = callocobject(), cb = callocobject(), cres = callocobject()
253
+
254
+ try:
255
+ max_a = _check_schubert(a, ca)
256
+ max_b = _check_schubert(b, cb)
257
+ except (ValueError, TypeError), err:
258
+ freeall(ca)
259
+ freeall(cb)
260
+ freeall(cres)
261
+ raise err
262
+
263
+ sig_on()
264
+ scalarproduct_schubert(ca, cb, cres)
265
+ sig_off()
266
+
267
+ if empty_listp(cres):
268
+ res = Integer(0)
269
+ else:
270
+ res = _py(cres)
271
+
272
+ freeall(ca)
273
+ freeall(cb)
274
+ freeall(cres)
275
+
276
+ return res
277
+
278
+
279
+ def divdiff_schubert_symmetrica(i, a):
280
+ r"""
281
+ Return the result of applying the divided difference operator
282
+ `\delta_i` to `a` where `a` is either a permutation or a
283
+ Schubert polynomial over `\QQ`.
284
+
285
+ EXAMPLES::
286
+
287
+ sage: symmetrica.divdiff_schubert(1, [3,2,1])
288
+ X[2, 3, 1]
289
+ sage: symmetrica.divdiff_schubert(2, [3,2,1])
290
+ X[3, 1, 2]
291
+ sage: symmetrica.divdiff_schubert(3, [3,2,1])
292
+ Traceback (most recent call last):
293
+ ...
294
+ ValueError: cannot apply \delta_{3} to a (= [3, 2, 1])
295
+ """
296
+ late_import()
297
+
298
+ cdef OP ca = callocobject(), ci = callocobject(), cres = callocobject()
299
+
300
+ try:
301
+ max_a = _check_schubert(a, ca)
302
+ except (ValueError, TypeError), err:
303
+ freeall(ca)
304
+ freeall(ci)
305
+ freeall(cres)
306
+ raise err
307
+
308
+ if not isinstance(i, (int, Integer)):
309
+ freeall(ca)
310
+ freeall(ci)
311
+ freeall(cres)
312
+ raise TypeError("i must be an integer")
313
+ else:
314
+ _op_integer(i, ci)
315
+
316
+ if i > max_a or i <= 0:
317
+ freeall(ca)
318
+ freeall(ci)
319
+ freeall(cres)
320
+ raise ValueError(r"cannot apply \delta_{%s} to a (= %s)" % (i, a))
321
+
322
+ sig_on()
323
+ divdiff_schubert(ci, ca, cres)
324
+ sig_off()
325
+
326
+ res = _py(cres)
327
+
328
+ freeall(ca)
329
+ freeall(ci)
330
+ freeall(cres)
331
+
332
+ return res
@@ -0,0 +1,192 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.modules
3
+
4
+ cdef extern from 'symmetrica/def.h':
5
+ INT chartafel(OP degree, OP result)
6
+ INT charvalue(OP irred, OP cls, OP result, OP table)
7
+ INT kranztafel(OP a, OP b, OP res, OP co, OP cl)
8
+ INT c_ijk_sn(OP i, OP j, OP k, OP res)
9
+
10
+
11
+ def chartafel_symmetrica(n):
12
+ """
13
+ You enter the degree of the symmetric group, as INTEGER
14
+ object and the result is a MATRIX object: the charactertable
15
+ of the symmetric group of the given degree.
16
+
17
+ EXAMPLES::
18
+
19
+ sage: symmetrica.chartafel(3)
20
+ [ 1 1 1]
21
+ [-1 0 2]
22
+ [ 1 -1 1]
23
+ sage: symmetrica.chartafel(4)
24
+ [ 1 1 1 1 1]
25
+ [-1 0 -1 1 3]
26
+ [ 0 -1 2 0 2]
27
+ [ 1 0 -1 -1 3]
28
+ [-1 1 1 -1 1]
29
+ """
30
+ cdef OP cn, cres
31
+
32
+ cn = callocobject()
33
+ cres = callocobject()
34
+
35
+ _op_integer(n, cn)
36
+
37
+ chartafel(cn, cres)
38
+
39
+ res = _py(cres)
40
+
41
+ freeall(cn)
42
+ freeall(cres)
43
+
44
+ return res
45
+
46
+
47
+ def charvalue_symmetrica(irred, cls, table=None):
48
+ """
49
+ You enter a PARTITION object part, labelling the irreducible
50
+ character, you enter a PARTITION object class, labeling the class
51
+ or class may be a PERMUTATION object, then result becomes the value
52
+ of that character on that class or permutation. Note that the
53
+ table may be NULL, in which case the value is computed, or it may be
54
+ taken from a precalculated charactertable.
55
+
56
+ FIXME: add table parameter
57
+
58
+ EXAMPLES::
59
+
60
+ sage: n = 3
61
+ sage: m = matrix([[symmetrica.charvalue(irred, cls) for cls in Partitions(n)]
62
+ ....: for irred in Partitions(n)]); m
63
+ [ 1 1 1]
64
+ [-1 0 2]
65
+ [ 1 -1 1]
66
+ sage: m == symmetrica.chartafel(n)
67
+ True
68
+ sage: n = 4
69
+ sage: m = matrix([[symmetrica.charvalue(irred, cls) for cls in Partitions(n)]
70
+ ....: for irred in Partitions(n)])
71
+ sage: m == symmetrica.chartafel(n)
72
+ True
73
+ """
74
+ cdef OP cirred, cclass, ctable, cresult
75
+
76
+ cirred = callocobject()
77
+ cclass = callocobject()
78
+ cresult = callocobject()
79
+
80
+ if table is None:
81
+ ctable = NULL
82
+ else:
83
+ ctable = callocobject()
84
+ _op_matrix(table, ctable)
85
+
86
+ #FIXME: assume that class is a partition
87
+ _op_partition(cls, cclass)
88
+
89
+ _op_partition(irred, cirred)
90
+
91
+ charvalue(cirred, cclass, cresult, ctable)
92
+
93
+ res = _py(cresult)
94
+
95
+ freeall(cirred)
96
+ freeall(cclass)
97
+ freeall(cresult)
98
+ if ctable != NULL:
99
+ freeall(ctable)
100
+
101
+ return res
102
+
103
+
104
+ def kranztafel_symmetrica(a, b):
105
+ r"""
106
+ You enter the INTEGER objects, say `a` and `b`, and ``res`` becomes a
107
+ MATRIX object, the charactertable of `S_b \wr S_a`, ``co`` becomes a
108
+ VECTOR object of classorders and ``cl`` becomes a VECTOR object of
109
+ the classlabels.
110
+
111
+ EXAMPLES::
112
+
113
+ sage: (a,b,c) = symmetrica.kranztafel(2,2)
114
+ sage: a
115
+ [ 1 -1 1 -1 1]
116
+ [ 1 1 1 1 1]
117
+ [-1 1 1 -1 1]
118
+ [ 0 0 2 0 -2]
119
+ [-1 -1 1 1 1]
120
+ sage: b
121
+ [2, 2, 1, 2, 1]
122
+ sage: for m in c: print(m)
123
+ [0 0]
124
+ [0 1]
125
+ [0 0]
126
+ [1 0]
127
+ [0 2]
128
+ [0 0]
129
+ [1 1]
130
+ [0 0]
131
+ [2 0]
132
+ [0 0]
133
+ """
134
+ cdef OP ca, cb, cres, cco, ccl
135
+
136
+ ca = callocobject()
137
+ cb = callocobject()
138
+ cres = callocobject()
139
+ cco = callocobject()
140
+ ccl = callocobject()
141
+
142
+ _op_integer(a, ca)
143
+ _op_integer(b, cb)
144
+
145
+ kranztafel(ca,cb,cres,cco,ccl)
146
+
147
+ res = _py(cres)
148
+ co = _py(cco)
149
+ cl = _py(ccl)
150
+
151
+ freeall(ca)
152
+ freeall(cb)
153
+ freeall(cres)
154
+ freeall(cco)
155
+ freeall(ccl)
156
+
157
+ return (res, co, cl)
158
+
159
+
160
+ ## def c_ijk_sn_symmetrica(i, j, k):
161
+ ## """
162
+ ## computes the coefficients of the class multiplication in the
163
+ ## group algebra of the S_n. It uses the method described in
164
+ ## Curtis/Reiner: Methods of representation theory I p. 216
165
+
166
+ ## EXAMPLES:
167
+
168
+ ## """
169
+
170
+ ## cdef OP ci, cj, ck, cresult
171
+
172
+
173
+ ## ci = callocobject()
174
+ ## cj = callocobject()
175
+ ## cresult = callocobject()
176
+ ## ck = callocobject()
177
+
178
+
179
+ ## _op_partition(i, ci)
180
+ ## _op_partition(j, cj)
181
+ ## _op_partition(k, ck)
182
+
183
+ ## c_ijk_sn(ci, cj, ck, cresult)
184
+
185
+ ## res = _py(cresult)
186
+
187
+ ## freeall(ci)
188
+ ## freeall(cj)
189
+ ## freeall(cresult)
190
+ ## freeall(ck)
191
+
192
+ ## return res