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,372 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.graphs sage.modules
3
+ r"""
4
+ Polyhedral realization of `B(\infty)`
5
+ """
6
+
7
+ # ***************************************************************************
8
+ # Copyright (C) 2015 Travis Scrimshaw <tscrim at ucdavis.edu>
9
+ #
10
+ # Distributed under the terms of the GNU General Public License (GPL)
11
+ #
12
+ # This code is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ # General Public License for more details.
16
+ #
17
+ # The full text of the GPL is available at:
18
+ #
19
+ # http://www.gnu.org/licenses/
20
+ # ***************************************************************************
21
+
22
+ from sage.structure.parent import Parent
23
+ from sage.categories.infinite_enumerated_sets import InfiniteEnumeratedSets
24
+ from sage.categories.highest_weight_crystals import HighestWeightCrystals
25
+ from sage.combinat.crystals.tensor_product import TensorProductOfCrystals, \
26
+ TensorProductOfCrystalsElement
27
+ from sage.combinat.crystals.elementary_crystals import ElementaryCrystal
28
+ from sage.combinat.root_system.cartan_type import CartanType
29
+
30
+
31
+ class InfinityCrystalAsPolyhedralRealization(TensorProductOfCrystals):
32
+ r"""
33
+ The polyhedral realization of `B(\infty)`.
34
+
35
+ .. NOTE::
36
+
37
+ Here we are using anti-Kashiwara notation and might differ from
38
+ some of the literature.
39
+
40
+ Consider a Kac-Moody algebra `\mathfrak{g}` of Cartan type `X` with
41
+ index set `I`, and consider a finite sequence `J = (j_1, j_2, \ldots, j_m)`
42
+ whose support equals `I`. We extend this to an infinite sequence
43
+ by taking `\bar{J} = J \cdot J \cdot J \cdots`, where `\cdot` denotes
44
+ concatenation of sequences. Let
45
+
46
+ .. MATH::
47
+
48
+ B_J = B_{j_m} \otimes \cdots \otimes B_{j_2} \otimes B_{j_1},
49
+
50
+ where `B_i` is an
51
+ :class:`~sage.combinat.crystals.elementary_crystals.ElementaryCrystal`.
52
+
53
+ As given in Theorem 2.1.1 of [Ka1993]_, there exists a strict crystal embedding
54
+ `\Psi_i \colon B(\infty) \to B_i \otimes B(\infty)` defined by `u_{\infty}
55
+ \mapsto b_i(0) \otimes u_{\infty}`, where `b_i(0) \in B_i` and `u_{\infty}`
56
+ is the (unique) highest weight element in `B(\infty)`. This is sometimes
57
+ known as the *Kashiwara embedding* [NZ1997]_ (though, in [NZ1997]_, the target
58
+ of this map is denoted by `\ZZ_J^\infty`). By iterating this embedding by
59
+ taking `\Psi_J = \Psi_{j_n} \circ \Psi_{j_{n-1}} \circ \cdots \circ
60
+ \Psi_{j_1}`, we obtain the following strict crystal embedding:
61
+
62
+ .. MATH::
63
+
64
+ \Psi_J^n \colon B(\infty) \to B_J^{\otimes n} \otimes B(\infty).
65
+
66
+ We note there is a natural analog of Lemma 10.6.2 in [HK2002]_ that
67
+ for any `b \in B(\infty)`, there exists a positive integer `N` such that
68
+
69
+ .. MATH::
70
+
71
+ \Psi^N_J(b) = \left( \bigotimes_{k=1}^N b^{(k)} \right)
72
+ \otimes u_{\infty}.
73
+
74
+ Therefore we can model elements `b \in B(\infty)` by considering
75
+ an infinite list of elements `b^{(k)} \in B_J` and defining the crystal
76
+ structure by:
77
+
78
+ .. MATH::
79
+
80
+ \begin{aligned}
81
+ \mathrm{wt}(b) & = \sum_{k=1}^N \mathrm{wt}(b^{(k)})
82
+ \\ e_i(b) & = e_i\left( \left( \bigotimes_{k=1}^N b^{(k)} \right)
83
+ \right) \otimes u_{\infty},
84
+ \\ f_i(b) & = f_i\left( \left( \bigotimes_{k=1}^N b^{(k)} \right)
85
+ \right) \otimes u_{\infty},
86
+ \\ \varepsilon_i(b) & = \max_{ e_i^k(b) \neq 0 } k,
87
+ \\ \varphi_i(b) & = \varepsilon_i(b) - \langle \mathrm{wt}(b),
88
+ h_i^{\vee} \rangle.
89
+ \end{aligned}
90
+
91
+ To translate this into a finite list, we consider a finite sequence
92
+ `b_1 \otimes \cdots \otimes b_N` and if
93
+
94
+ .. MATH::
95
+
96
+ f_i\left( b^{(1)} \otimes \cdots b^{(N-1)} \otimes b^{(N)} \right)
97
+ = b^{(1)} \otimes \cdots \otimes b^{(N-1)} \otimes
98
+ f_i\left( b^{(N)} \right),
99
+
100
+ then we take the image as `b^{(1)} \otimes \cdots \otimes f_i\left(
101
+ b^{(N)} \right) \otimes b^{(N+1)}`. Similarly we remove `b^{(N)}` if
102
+ we have `b^{(N)} = \bigotimes_{k=1}^m b_{j_k}(0)`. Additionally if
103
+
104
+ .. MATH::
105
+
106
+ e_i\left( b^{(1)} \otimes \cdots \otimes b^{(N-1)} \otimes
107
+ b^{(N)} \right) = b^{(1)} \otimes \cdots \otimes b^{(N-1)}
108
+ \otimes e_i\left( b^{(N)} \right),
109
+
110
+ then we consider this to be `0`.
111
+
112
+ INPUT:
113
+
114
+ - ``cartan_type`` -- a Cartan type
115
+ - ``seq`` -- (default: ``None``) a finite sequence whose support
116
+ equals the index set of the Cartan type; if ``None``, then this
117
+ is the index set
118
+
119
+ EXAMPLES::
120
+
121
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2])
122
+ sage: mg = B.module_generators[0]; mg
123
+ [0, 0]
124
+ sage: mg.f_string([2,1,2,2])
125
+ [0, -3, -1, 0, 0, 0]
126
+
127
+ An example of type `B_2`::
128
+
129
+ sage: B = crystals.infinity.PolyhedralRealization(['B',2])
130
+ sage: mg = B.module_generators[0]; mg
131
+ [0, 0]
132
+ sage: mg.f_string([2,1,2,2])
133
+ [0, -2, -1, -1, 0, 0]
134
+
135
+ An example of type `G_2`::
136
+
137
+ sage: B = crystals.infinity.PolyhedralRealization(['G',2])
138
+ sage: mg = B.module_generators[0]; mg
139
+ [0, 0]
140
+ sage: mg.f_string([2,1,2,2])
141
+ [0, -3, -1, 0, 0, 0]
142
+ """
143
+ @staticmethod
144
+ def __classcall_private__(cls, cartan_type, seq=None):
145
+ """
146
+ Normalize input to ensure a unique representation.
147
+
148
+ EXAMPLES::
149
+
150
+ sage: B1 = crystals.infinity.PolyhedralRealization(['A',2])
151
+ sage: B2 = crystals.infinity.PolyhedralRealization(['A',2], [1,2])
152
+ sage: B1 is B2
153
+ True
154
+ """
155
+ cartan_type = CartanType(cartan_type)
156
+ if seq is None:
157
+ seq = cartan_type.index_set()
158
+ else:
159
+ seq = tuple(seq)
160
+ if set(seq) != set(cartan_type.index_set()):
161
+ raise ValueError("the support of seq is not the index set")
162
+ return super().__classcall__(cls, cartan_type, seq)
163
+
164
+ def __init__(self, cartan_type, seq):
165
+ """
166
+ Initialize ``self``.
167
+
168
+ EXAMPLES::
169
+
170
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2])
171
+ sage: TestSuite(B).run() # long time
172
+ """
173
+ cat = (HighestWeightCrystals(), InfiniteEnumeratedSets())
174
+ Parent.__init__(self, category=cat)
175
+ self._cartan_type = cartan_type
176
+ self._seq = seq
177
+ # These are the additional factors we add as necessary
178
+ self._factors = tuple([ElementaryCrystal(cartan_type, i) for i in seq])
179
+ # public for TensorProductOfCrystals
180
+ self.crystals = self._factors
181
+ self._tp = [C.module_generators[0] for C in self.crystals]
182
+ self.module_generators = (self.element_class(self, self._tp),)
183
+
184
+ def _repr_(self):
185
+ """
186
+ Return a string representation of ``self``.
187
+
188
+ EXAMPLES::
189
+
190
+ sage: crystals.infinity.PolyhedralRealization(['A',2])
191
+ Polyhedral realization of B(oo) of type ['A', 2] using (1, 2)
192
+ """
193
+ return "Polyhedral realization of B(oo) of type {} using {}".format(self._cartan_type, self._seq)
194
+
195
+ def finite_tensor_product(self, k):
196
+ """
197
+ Return the finite tensor product of crystals of length ``k``
198
+ by truncating ``self``.
199
+
200
+ EXAMPLES::
201
+
202
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2])
203
+ sage: B.finite_tensor_product(5)
204
+ Full tensor product of the crystals
205
+ [The 1-elementary crystal of type ['A', 2],
206
+ The 2-elementary crystal of type ['A', 2],
207
+ The 1-elementary crystal of type ['A', 2],
208
+ The 2-elementary crystal of type ['A', 2],
209
+ The 1-elementary crystal of type ['A', 2]]
210
+ """
211
+ N = len(self._factors)
212
+ crystals = [self._factors[i % N] for i in range(k)]
213
+ return TensorProductOfCrystals(*crystals)
214
+
215
+ class Element(TensorProductOfCrystalsElement):
216
+ r"""
217
+ An element in the polyhedral realization of `B(\infty)`.
218
+ """
219
+ # For simplicity (and safety), we use the regular crystals implementation
220
+
221
+ def epsilon(self, i):
222
+ r"""
223
+ Return `\varepsilon_i` of ``self``.
224
+
225
+ EXAMPLES::
226
+
227
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2,1])
228
+ sage: mg = B.module_generators[0]
229
+ sage: [mg.epsilon(i) for i in B.index_set()]
230
+ [0, 0, 0]
231
+ sage: elt = mg.f(0)
232
+ sage: [elt.epsilon(i) for i in B.index_set()]
233
+ [1, 0, 0]
234
+ sage: elt = mg.f_string([0,1,2])
235
+ sage: [elt.epsilon(i) for i in B.index_set()]
236
+ [0, 0, 1]
237
+ sage: elt = mg.f_string([0,1,2,2])
238
+ sage: [elt.epsilon(i) for i in B.index_set()]
239
+ [0, 0, 2]
240
+ """
241
+ x = self.e(i)
242
+ eps = 0
243
+ while x is not None:
244
+ x = x.e(i)
245
+ eps = eps + 1
246
+ return eps
247
+
248
+ def phi(self, i):
249
+ r"""
250
+ Return `\varphi_i` of ``self``.
251
+
252
+ EXAMPLES::
253
+
254
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2,1])
255
+ sage: mg = B.module_generators[0]
256
+ sage: [mg.phi(i) for i in B.index_set()]
257
+ [0, 0, 0]
258
+ sage: elt = mg.f(0)
259
+ sage: [elt.phi(i) for i in B.index_set()]
260
+ [-1, 1, 1]
261
+ sage: elt = mg.f_string([0,1])
262
+ sage: [elt.phi(i) for i in B.index_set()]
263
+ [-1, 0, 2]
264
+ sage: elt = mg.f_string([0,1,2,2])
265
+ sage: [elt.phi(i) for i in B.index_set()]
266
+ [1, 1, 0]
267
+ """
268
+ P = self.parent().weight_lattice_realization()
269
+ h = P.simple_coroots()
270
+ omega = P(self.weight()).scalar(h[i])
271
+ return self.epsilon(i) + omega
272
+
273
+ def e(self, i):
274
+ """
275
+ Return the action of `e_i` on ``self``.
276
+
277
+ EXAMPLES::
278
+
279
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2])
280
+ sage: mg = B.module_generators[0]
281
+ sage: all(mg.e(i) is None for i in B.index_set())
282
+ True
283
+ sage: mg.f(1).e(1) == mg
284
+ True
285
+ """
286
+ N = len(self) + 1
287
+ pos = None
288
+ for k in range(1, N):
289
+ if all(self._sig(i,k) > self._sig(i,j) for j in range(1, k)) and \
290
+ all(self._sig(i,k) >= self._sig(i,j) for j in range(k+1, N)):
291
+ crystal = self[-k].e(i)
292
+ pos = k
293
+ break
294
+
295
+ nf = len(self.parent()._factors)
296
+ if pos is None or pos <= nf:
297
+ return None
298
+
299
+ l = list(self)
300
+ l[-pos] = crystal
301
+ if pos <= 2*nf and all(b._m == 0 for b in l[-2*nf:-nf]):
302
+ return self.__class__(self.parent(), l[:-nf])
303
+ return self.__class__(self.parent(), l)
304
+
305
+ def f(self, i):
306
+ """
307
+ Return the action of `f_i` on ``self``.
308
+
309
+ EXAMPLES::
310
+
311
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2])
312
+ sage: mg = B.module_generators[0]
313
+ sage: mg.f(1)
314
+ [-1, 0, 0, 0]
315
+ sage: mg.f_string([1,2,2,1])
316
+ [-1, -2, -1, 0, 0, 0]
317
+ """
318
+ N = len(self) + 1
319
+ pos = None
320
+ for k in range(1, N):
321
+ if all(self._sig(i,k) >= self._sig(i,j) for j in range(1, k)) and \
322
+ all(self._sig(i,k) > self._sig(i,j) for j in range(k+1, N)):
323
+ crystal = self[-k].f(i)
324
+ pos = k
325
+ break
326
+
327
+ nf = len(self.parent()._factors)
328
+ if pos <= nf:
329
+ l = list(self)
330
+ l[-pos] = l[-pos].f(i)
331
+ return self.__class__(self.parent(), l + self.parent()._tp)
332
+ return self._set_index(-pos, crystal)
333
+
334
+ def truncate(self, k=None):
335
+ r"""
336
+ Truncate ``self`` to have length ``k`` and return as an element
337
+ in a (finite) tensor product of crystals.
338
+
339
+ INPUT:
340
+
341
+ - ``k`` -- (optional) the length of the truncation; if not
342
+ specified, then returns one more than the current non-ground-state
343
+ elements (i.e. the current list in ``self``)
344
+
345
+ EXAMPLES::
346
+
347
+ sage: B = crystals.infinity.PolyhedralRealization(['A',2])
348
+ sage: mg = B.module_generators[0]
349
+ sage: elt = mg.f_string([1,2,2,1]); elt
350
+ [-1, -2, -1, 0, 0, 0]
351
+ sage: t = elt.truncate(); t
352
+ [-1, -2, -1, 0, 0, 0]
353
+ sage: t.parent() is B.finite_tensor_product(6)
354
+ True
355
+ sage: elt.truncate(2)
356
+ [-1, -2]
357
+ sage: elt.truncate(10)
358
+ [-1, -2, -1, 0, 0, 0, 0, 0, 0, 0]
359
+ """
360
+ if k is None:
361
+ k = len(self)
362
+
363
+ P = self.parent().finite_tensor_product(k)
364
+ if k <= len(self):
365
+ l = self[:k]
366
+ else:
367
+ l = list(self)
368
+ N = len(self.parent()._tp)
369
+ while len(l) < k:
370
+ i = len(l) % N
371
+ l.append(self.parent()._tp[i])
372
+ return P(*l)
@@ -0,0 +1,21 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ from sage.structure.element cimport Element
3
+
4
+ cdef class Spin(Element):
5
+ cdef bint* _value
6
+ cdef int _n
7
+ cdef long _hash
8
+
9
+ cdef Spin _new_c(self, bint* value)
10
+
11
+ cdef class Spin_crystal_type_B_element(Spin):
12
+ cpdef Spin e(self, int i)
13
+ cpdef Spin f(self, int i)
14
+ cpdef int epsilon(self, int i) noexcept
15
+ cpdef int phi(self, int i) noexcept
16
+
17
+ cdef class Spin_crystal_type_D_element(Spin):
18
+ cpdef Spin e(self, int i)
19
+ cpdef Spin f(self, int i)
20
+ cpdef int epsilon(self, int i) noexcept
21
+ cpdef int phi(self, int i) noexcept