passagemath-combinat 10.6.31rc3__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.

Potentially problematic release.


This version of passagemath-combinat might be problematic. Click here for more details.

Files changed (399) hide show
  1. passagemath_combinat-10.6.31rc3.dist-info/METADATA +159 -0
  2. passagemath_combinat-10.6.31rc3.dist-info/RECORD +399 -0
  3. passagemath_combinat-10.6.31rc3.dist-info/WHEEL +5 -0
  4. passagemath_combinat-10.6.31rc3.dist-info/top_level.txt +2 -0
  5. passagemath_combinat.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  6. passagemath_combinat.libs/libsymmetrica-81fe8739.so.3.0.0 +0 -0
  7. sage/algebras/affine_nil_temperley_lieb.py +263 -0
  8. sage/algebras/all.py +25 -0
  9. sage/algebras/all__sagemath_combinat.py +35 -0
  10. sage/algebras/askey_wilson.py +935 -0
  11. sage/algebras/associated_graded.py +345 -0
  12. sage/algebras/cellular_basis.py +350 -0
  13. sage/algebras/cluster_algebra.py +2766 -0
  14. sage/algebras/down_up_algebra.py +860 -0
  15. sage/algebras/free_algebra.py +1698 -0
  16. sage/algebras/free_algebra_element.py +345 -0
  17. sage/algebras/free_algebra_quotient.py +405 -0
  18. sage/algebras/free_algebra_quotient_element.py +295 -0
  19. sage/algebras/free_zinbiel_algebra.py +885 -0
  20. sage/algebras/hall_algebra.py +783 -0
  21. sage/algebras/hecke_algebras/all.py +4 -0
  22. sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
  23. sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
  24. sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
  25. sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
  26. sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
  27. sage/algebras/iwahori_hecke_algebra.py +3095 -0
  28. sage/algebras/jordan_algebra.py +1773 -0
  29. sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
  30. sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
  31. sage/algebras/lie_conformal_algebras/all.py +18 -0
  32. sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
  33. sage/algebras/lie_conformal_algebras/examples.py +43 -0
  34. sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
  35. sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
  36. sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
  37. sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
  38. sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
  39. sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
  40. sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
  41. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
  42. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
  43. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
  44. sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
  45. sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
  46. sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
  47. sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
  48. sage/algebras/nil_coxeter_algebra.py +191 -0
  49. sage/algebras/q_commuting_polynomials.py +673 -0
  50. sage/algebras/q_system.py +608 -0
  51. sage/algebras/quantum_clifford.py +959 -0
  52. sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
  53. sage/algebras/quantum_groups/all.py +9 -0
  54. sage/algebras/quantum_groups/fock_space.py +2219 -0
  55. sage/algebras/quantum_groups/q_numbers.py +207 -0
  56. sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
  57. sage/algebras/quantum_groups/representations.py +591 -0
  58. sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
  59. sage/algebras/quantum_oscillator.py +623 -0
  60. sage/algebras/quaternion_algebra.py +20 -0
  61. sage/algebras/quaternion_algebra_element.py +55 -0
  62. sage/algebras/rational_cherednik_algebra.py +525 -0
  63. sage/algebras/schur_algebra.py +670 -0
  64. sage/algebras/shuffle_algebra.py +1011 -0
  65. sage/algebras/splitting_algebra.py +779 -0
  66. sage/algebras/tensor_algebra.py +709 -0
  67. sage/algebras/yangian.py +1082 -0
  68. sage/algebras/yokonuma_hecke_algebra.py +1018 -0
  69. sage/all__sagemath_combinat.py +35 -0
  70. sage/combinat/SJT.py +255 -0
  71. sage/combinat/affine_permutation.py +2405 -0
  72. sage/combinat/algebraic_combinatorics.py +55 -0
  73. sage/combinat/all.py +53 -0
  74. sage/combinat/all__sagemath_combinat.py +195 -0
  75. sage/combinat/alternating_sign_matrix.py +2063 -0
  76. sage/combinat/baxter_permutations.py +346 -0
  77. sage/combinat/bijectionist.py +3220 -0
  78. sage/combinat/binary_recurrence_sequences.py +1180 -0
  79. sage/combinat/blob_algebra.py +685 -0
  80. sage/combinat/catalog_partitions.py +27 -0
  81. sage/combinat/chas/all.py +23 -0
  82. sage/combinat/chas/fsym.py +1180 -0
  83. sage/combinat/chas/wqsym.py +2601 -0
  84. sage/combinat/cluster_complex.py +326 -0
  85. sage/combinat/colored_permutations.py +2039 -0
  86. sage/combinat/colored_permutations_representations.py +964 -0
  87. sage/combinat/composition_signed.py +142 -0
  88. sage/combinat/composition_tableau.py +855 -0
  89. sage/combinat/constellation.py +1729 -0
  90. sage/combinat/core.py +751 -0
  91. sage/combinat/counting.py +12 -0
  92. sage/combinat/crystals/affine.py +742 -0
  93. sage/combinat/crystals/affine_factorization.py +518 -0
  94. sage/combinat/crystals/affinization.py +331 -0
  95. sage/combinat/crystals/alcove_path.py +2013 -0
  96. sage/combinat/crystals/all.py +22 -0
  97. sage/combinat/crystals/bkk_crystals.py +141 -0
  98. sage/combinat/crystals/catalog.py +115 -0
  99. sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
  100. sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
  101. sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
  102. sage/combinat/crystals/crystals.py +257 -0
  103. sage/combinat/crystals/direct_sum.py +260 -0
  104. sage/combinat/crystals/elementary_crystals.py +1251 -0
  105. sage/combinat/crystals/fast_crystals.py +441 -0
  106. sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
  107. sage/combinat/crystals/generalized_young_walls.py +1076 -0
  108. sage/combinat/crystals/highest_weight_crystals.py +436 -0
  109. sage/combinat/crystals/induced_structure.py +695 -0
  110. sage/combinat/crystals/infinity_crystals.py +730 -0
  111. sage/combinat/crystals/kac_modules.py +863 -0
  112. sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
  113. sage/combinat/crystals/kyoto_path_model.py +497 -0
  114. sage/combinat/crystals/letters.cpython-314-x86_64-linux-musl.so +0 -0
  115. sage/combinat/crystals/letters.pxd +79 -0
  116. sage/combinat/crystals/letters.pyx +3056 -0
  117. sage/combinat/crystals/littelmann_path.py +1518 -0
  118. sage/combinat/crystals/monomial_crystals.py +1262 -0
  119. sage/combinat/crystals/multisegments.py +462 -0
  120. sage/combinat/crystals/mv_polytopes.py +467 -0
  121. sage/combinat/crystals/pbw_crystal.py +511 -0
  122. sage/combinat/crystals/pbw_datum.cpython-314-x86_64-linux-musl.so +0 -0
  123. sage/combinat/crystals/pbw_datum.pxd +4 -0
  124. sage/combinat/crystals/pbw_datum.pyx +487 -0
  125. sage/combinat/crystals/polyhedral_realization.py +372 -0
  126. sage/combinat/crystals/spins.cpython-314-x86_64-linux-musl.so +0 -0
  127. sage/combinat/crystals/spins.pxd +21 -0
  128. sage/combinat/crystals/spins.pyx +756 -0
  129. sage/combinat/crystals/star_crystal.py +290 -0
  130. sage/combinat/crystals/subcrystal.py +464 -0
  131. sage/combinat/crystals/tensor_product.py +1177 -0
  132. sage/combinat/crystals/tensor_product_element.cpython-314-x86_64-linux-musl.so +0 -0
  133. sage/combinat/crystals/tensor_product_element.pxd +35 -0
  134. sage/combinat/crystals/tensor_product_element.pyx +1870 -0
  135. sage/combinat/crystals/virtual_crystal.py +420 -0
  136. sage/combinat/cyclic_sieving_phenomenon.py +204 -0
  137. sage/combinat/debruijn_sequence.cpython-314-x86_64-linux-musl.so +0 -0
  138. sage/combinat/debruijn_sequence.pyx +355 -0
  139. sage/combinat/decorated_permutation.py +270 -0
  140. sage/combinat/degree_sequences.cpython-314-x86_64-linux-musl.so +0 -0
  141. sage/combinat/degree_sequences.pyx +588 -0
  142. sage/combinat/derangements.py +527 -0
  143. sage/combinat/descent_algebra.py +1008 -0
  144. sage/combinat/diagram.py +1551 -0
  145. sage/combinat/diagram_algebras.py +5886 -0
  146. sage/combinat/dyck_word.py +4349 -0
  147. sage/combinat/e_one_star.py +1623 -0
  148. sage/combinat/enumerated_sets.py +123 -0
  149. sage/combinat/expnums.cpython-314-x86_64-linux-musl.so +0 -0
  150. sage/combinat/expnums.pyx +148 -0
  151. sage/combinat/fast_vector_partitions.cpython-314-x86_64-linux-musl.so +0 -0
  152. sage/combinat/fast_vector_partitions.pyx +346 -0
  153. sage/combinat/fqsym.py +1977 -0
  154. sage/combinat/free_dendriform_algebra.py +954 -0
  155. sage/combinat/free_prelie_algebra.py +1141 -0
  156. sage/combinat/fully_commutative_elements.py +1077 -0
  157. sage/combinat/fully_packed_loop.py +1523 -0
  158. sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
  159. sage/combinat/gray_codes.py +311 -0
  160. sage/combinat/grossman_larson_algebras.py +667 -0
  161. sage/combinat/growth.py +4352 -0
  162. sage/combinat/hall_polynomial.py +188 -0
  163. sage/combinat/hillman_grassl.py +866 -0
  164. sage/combinat/integer_matrices.py +329 -0
  165. sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
  166. sage/combinat/k_tableau.py +4564 -0
  167. sage/combinat/kazhdan_lusztig.py +215 -0
  168. sage/combinat/key_polynomial.py +885 -0
  169. sage/combinat/knutson_tao_puzzles.py +2286 -0
  170. sage/combinat/lr_tableau.py +311 -0
  171. sage/combinat/matrices/all.py +24 -0
  172. sage/combinat/matrices/hadamard_matrix.py +3790 -0
  173. sage/combinat/matrices/latin.py +2912 -0
  174. sage/combinat/misc.py +401 -0
  175. sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
  176. sage/combinat/ncsf_qsym/all.py +21 -0
  177. sage/combinat/ncsf_qsym/combinatorics.py +317 -0
  178. sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
  179. sage/combinat/ncsf_qsym/ncsf.py +5637 -0
  180. sage/combinat/ncsf_qsym/qsym.py +4053 -0
  181. sage/combinat/ncsf_qsym/tutorial.py +447 -0
  182. sage/combinat/ncsym/all.py +21 -0
  183. sage/combinat/ncsym/bases.py +855 -0
  184. sage/combinat/ncsym/dual.py +593 -0
  185. sage/combinat/ncsym/ncsym.py +2076 -0
  186. sage/combinat/necklace.py +551 -0
  187. sage/combinat/non_decreasing_parking_function.py +634 -0
  188. sage/combinat/nu_dyck_word.py +1474 -0
  189. sage/combinat/output.py +861 -0
  190. sage/combinat/parallelogram_polyomino.py +4326 -0
  191. sage/combinat/parking_functions.py +1602 -0
  192. sage/combinat/partition_algebra.py +1998 -0
  193. sage/combinat/partition_kleshchev.py +1982 -0
  194. sage/combinat/partition_shifting_algebras.py +584 -0
  195. sage/combinat/partition_tuple.py +3114 -0
  196. sage/combinat/path_tableaux/all.py +13 -0
  197. sage/combinat/path_tableaux/catalog.py +29 -0
  198. sage/combinat/path_tableaux/dyck_path.py +380 -0
  199. sage/combinat/path_tableaux/frieze.py +476 -0
  200. sage/combinat/path_tableaux/path_tableau.py +728 -0
  201. sage/combinat/path_tableaux/semistandard.py +510 -0
  202. sage/combinat/perfect_matching.py +779 -0
  203. sage/combinat/plane_partition.py +3300 -0
  204. sage/combinat/q_bernoulli.cpython-314-x86_64-linux-musl.so +0 -0
  205. sage/combinat/q_bernoulli.pyx +128 -0
  206. sage/combinat/quickref.py +81 -0
  207. sage/combinat/recognizable_series.py +2051 -0
  208. sage/combinat/regular_sequence.py +4316 -0
  209. sage/combinat/regular_sequence_bounded.py +543 -0
  210. sage/combinat/restricted_growth.py +81 -0
  211. sage/combinat/ribbon.py +20 -0
  212. sage/combinat/ribbon_shaped_tableau.py +489 -0
  213. sage/combinat/ribbon_tableau.py +1180 -0
  214. sage/combinat/rigged_configurations/all.py +46 -0
  215. sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
  216. sage/combinat/rigged_configurations/bij_infinity.py +370 -0
  217. sage/combinat/rigged_configurations/bij_type_A.py +163 -0
  218. sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
  219. sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
  220. sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
  221. sage/combinat/rigged_configurations/bij_type_B.py +900 -0
  222. sage/combinat/rigged_configurations/bij_type_C.py +267 -0
  223. sage/combinat/rigged_configurations/bij_type_D.py +771 -0
  224. sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
  225. sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
  226. sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
  227. sage/combinat/rigged_configurations/bijection.py +143 -0
  228. sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
  229. sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
  230. sage/combinat/rigged_configurations/rc_crystal.py +461 -0
  231. sage/combinat/rigged_configurations/rc_infinity.py +540 -0
  232. sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
  233. sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
  234. sage/combinat/rigged_configurations/rigged_partition.cpython-314-x86_64-linux-musl.so +0 -0
  235. sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
  236. sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
  237. sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
  238. sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
  239. sage/combinat/rsk.py +3438 -0
  240. sage/combinat/schubert_polynomial.py +508 -0
  241. sage/combinat/set_partition.py +3318 -0
  242. sage/combinat/set_partition_iterator.cpython-314-x86_64-linux-musl.so +0 -0
  243. sage/combinat/set_partition_iterator.pyx +136 -0
  244. sage/combinat/set_partition_ordered.py +1590 -0
  245. sage/combinat/sf/abreu_nigro.py +346 -0
  246. sage/combinat/sf/all.py +52 -0
  247. sage/combinat/sf/character.py +576 -0
  248. sage/combinat/sf/classical.py +319 -0
  249. sage/combinat/sf/dual.py +996 -0
  250. sage/combinat/sf/elementary.py +549 -0
  251. sage/combinat/sf/hall_littlewood.py +1028 -0
  252. sage/combinat/sf/hecke.py +336 -0
  253. sage/combinat/sf/homogeneous.py +464 -0
  254. sage/combinat/sf/jack.py +1428 -0
  255. sage/combinat/sf/k_dual.py +1458 -0
  256. sage/combinat/sf/kfpoly.py +447 -0
  257. sage/combinat/sf/llt.py +789 -0
  258. sage/combinat/sf/macdonald.py +2019 -0
  259. sage/combinat/sf/monomial.py +525 -0
  260. sage/combinat/sf/multiplicative.py +113 -0
  261. sage/combinat/sf/new_kschur.py +1786 -0
  262. sage/combinat/sf/ns_macdonald.py +964 -0
  263. sage/combinat/sf/orthogonal.py +246 -0
  264. sage/combinat/sf/orthotriang.py +355 -0
  265. sage/combinat/sf/powersum.py +963 -0
  266. sage/combinat/sf/schur.py +880 -0
  267. sage/combinat/sf/sf.py +1653 -0
  268. sage/combinat/sf/sfa.py +7053 -0
  269. sage/combinat/sf/symplectic.py +253 -0
  270. sage/combinat/sf/witt.py +721 -0
  271. sage/combinat/shifted_primed_tableau.py +2735 -0
  272. sage/combinat/shuffle.py +830 -0
  273. sage/combinat/sidon_sets.py +146 -0
  274. sage/combinat/similarity_class_type.py +1721 -0
  275. sage/combinat/sine_gordon.py +618 -0
  276. sage/combinat/six_vertex_model.py +784 -0
  277. sage/combinat/skew_partition.py +2053 -0
  278. sage/combinat/skew_tableau.py +2989 -0
  279. sage/combinat/sloane_functions.py +8935 -0
  280. sage/combinat/specht_module.py +1403 -0
  281. sage/combinat/species/all.py +48 -0
  282. sage/combinat/species/characteristic_species.py +321 -0
  283. sage/combinat/species/composition_species.py +273 -0
  284. sage/combinat/species/cycle_species.py +284 -0
  285. sage/combinat/species/empty_species.py +155 -0
  286. sage/combinat/species/functorial_composition_species.py +148 -0
  287. sage/combinat/species/generating_series.py +673 -0
  288. sage/combinat/species/library.py +148 -0
  289. sage/combinat/species/linear_order_species.py +169 -0
  290. sage/combinat/species/misc.py +83 -0
  291. sage/combinat/species/partition_species.py +290 -0
  292. sage/combinat/species/permutation_species.py +268 -0
  293. sage/combinat/species/product_species.py +423 -0
  294. sage/combinat/species/recursive_species.py +476 -0
  295. sage/combinat/species/set_species.py +192 -0
  296. sage/combinat/species/species.py +820 -0
  297. sage/combinat/species/structure.py +539 -0
  298. sage/combinat/species/subset_species.py +243 -0
  299. sage/combinat/species/sum_species.py +225 -0
  300. sage/combinat/subword.py +564 -0
  301. sage/combinat/subword_complex.py +2122 -0
  302. sage/combinat/subword_complex_c.cpython-314-x86_64-linux-musl.so +0 -0
  303. sage/combinat/subword_complex_c.pyx +119 -0
  304. sage/combinat/super_tableau.py +821 -0
  305. sage/combinat/superpartition.py +1154 -0
  306. sage/combinat/symmetric_group_algebra.py +3774 -0
  307. sage/combinat/symmetric_group_representations.py +1830 -0
  308. sage/combinat/t_sequences.py +877 -0
  309. sage/combinat/tableau.py +9506 -0
  310. sage/combinat/tableau_residues.py +860 -0
  311. sage/combinat/tableau_tuple.py +5353 -0
  312. sage/combinat/tiling.py +2432 -0
  313. sage/combinat/triangles_FHM.py +777 -0
  314. sage/combinat/tutorial.py +1857 -0
  315. sage/combinat/vector_partition.py +337 -0
  316. sage/combinat/words/abstract_word.py +1722 -0
  317. sage/combinat/words/all.py +59 -0
  318. sage/combinat/words/alphabet.py +268 -0
  319. sage/combinat/words/finite_word.py +7201 -0
  320. sage/combinat/words/infinite_word.py +113 -0
  321. sage/combinat/words/lyndon_word.py +652 -0
  322. sage/combinat/words/morphic.py +351 -0
  323. sage/combinat/words/morphism.py +3878 -0
  324. sage/combinat/words/paths.py +2932 -0
  325. sage/combinat/words/shuffle_product.py +278 -0
  326. sage/combinat/words/suffix_trees.py +1873 -0
  327. sage/combinat/words/word.py +765 -0
  328. sage/combinat/words/word_char.cpython-314-x86_64-linux-musl.so +0 -0
  329. sage/combinat/words/word_char.pyx +847 -0
  330. sage/combinat/words/word_datatypes.cpython-314-x86_64-linux-musl.so +0 -0
  331. sage/combinat/words/word_datatypes.pxd +4 -0
  332. sage/combinat/words/word_datatypes.pyx +1067 -0
  333. sage/combinat/words/word_generators.py +2026 -0
  334. sage/combinat/words/word_infinite_datatypes.py +1218 -0
  335. sage/combinat/words/word_options.py +99 -0
  336. sage/combinat/words/words.py +2396 -0
  337. sage/data_structures/all__sagemath_combinat.py +1 -0
  338. sage/databases/all__sagemath_combinat.py +13 -0
  339. sage/databases/findstat.py +4897 -0
  340. sage/databases/oeis.py +2058 -0
  341. sage/databases/sloane.py +393 -0
  342. sage/dynamics/all__sagemath_combinat.py +14 -0
  343. sage/dynamics/cellular_automata/all.py +7 -0
  344. sage/dynamics/cellular_automata/catalog.py +34 -0
  345. sage/dynamics/cellular_automata/elementary.py +612 -0
  346. sage/dynamics/cellular_automata/glca.py +477 -0
  347. sage/dynamics/cellular_automata/solitons.py +1463 -0
  348. sage/dynamics/finite_dynamical_system.py +1249 -0
  349. sage/dynamics/finite_dynamical_system_catalog.py +382 -0
  350. sage/games/all.py +7 -0
  351. sage/games/hexad.py +704 -0
  352. sage/games/quantumino.py +591 -0
  353. sage/games/sudoku.py +889 -0
  354. sage/games/sudoku_backtrack.cpython-314-x86_64-linux-musl.so +0 -0
  355. sage/games/sudoku_backtrack.pyx +189 -0
  356. sage/groups/all__sagemath_combinat.py +1 -0
  357. sage/groups/indexed_free_group.py +489 -0
  358. sage/libs/all__sagemath_combinat.py +6 -0
  359. sage/libs/lrcalc/__init__.py +1 -0
  360. sage/libs/lrcalc/lrcalc.py +525 -0
  361. sage/libs/symmetrica/__init__.py +7 -0
  362. sage/libs/symmetrica/all.py +101 -0
  363. sage/libs/symmetrica/kostka.pxi +168 -0
  364. sage/libs/symmetrica/part.pxi +193 -0
  365. sage/libs/symmetrica/plet.pxi +42 -0
  366. sage/libs/symmetrica/sab.pxi +196 -0
  367. sage/libs/symmetrica/sb.pxi +332 -0
  368. sage/libs/symmetrica/sc.pxi +192 -0
  369. sage/libs/symmetrica/schur.pxi +956 -0
  370. sage/libs/symmetrica/symmetrica.cpython-314-x86_64-linux-musl.so +0 -0
  371. sage/libs/symmetrica/symmetrica.pxi +1172 -0
  372. sage/libs/symmetrica/symmetrica.pyx +39 -0
  373. sage/monoids/all.py +13 -0
  374. sage/monoids/automatic_semigroup.py +1054 -0
  375. sage/monoids/free_abelian_monoid.py +315 -0
  376. sage/monoids/free_abelian_monoid_element.cpython-314-x86_64-linux-musl.so +0 -0
  377. sage/monoids/free_abelian_monoid_element.pxd +16 -0
  378. sage/monoids/free_abelian_monoid_element.pyx +397 -0
  379. sage/monoids/free_monoid.py +335 -0
  380. sage/monoids/free_monoid_element.py +431 -0
  381. sage/monoids/hecke_monoid.py +65 -0
  382. sage/monoids/string_monoid.py +817 -0
  383. sage/monoids/string_monoid_element.py +547 -0
  384. sage/monoids/string_ops.py +143 -0
  385. sage/monoids/trace_monoid.py +972 -0
  386. sage/rings/all__sagemath_combinat.py +2 -0
  387. sage/sat/all.py +4 -0
  388. sage/sat/boolean_polynomials.py +405 -0
  389. sage/sat/converters/__init__.py +6 -0
  390. sage/sat/converters/anf2cnf.py +14 -0
  391. sage/sat/converters/polybori.py +611 -0
  392. sage/sat/solvers/__init__.py +5 -0
  393. sage/sat/solvers/cryptominisat.py +287 -0
  394. sage/sat/solvers/dimacs.py +783 -0
  395. sage/sat/solvers/picosat.py +228 -0
  396. sage/sat/solvers/sat_lp.py +156 -0
  397. sage/sat/solvers/satsolver.cpython-314-x86_64-linux-musl.so +0 -0
  398. sage/sat/solvers/satsolver.pxd +3 -0
  399. sage/sat/solvers/satsolver.pyx +405 -0
@@ -0,0 +1,462 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.graphs sage.modules
3
+ r"""
4
+ Crystal of Bernstein-Zelevinsky multisegments
5
+ """
6
+
7
+ #*****************************************************************************
8
+ # Copyright (C) 2017 Travis Scrimshaw <tcscrims at gmail.com>
9
+ #
10
+ # This program is free software: you can redistribute it and/or modify
11
+ # it under the terms of the GNU General Public License as published by
12
+ # the Free Software Foundation, either version 2 of the License, or
13
+ # (at your option) any later version.
14
+ # http://www.gnu.org/licenses/
15
+ #*****************************************************************************
16
+
17
+ from sage.misc.cachefunc import cached_method
18
+ from sage.structure.parent import Parent
19
+ from sage.structure.unique_representation import UniqueRepresentation
20
+ from sage.structure.element_wrapper import ElementWrapper
21
+ from sage.categories.highest_weight_crystals import HighestWeightCrystals
22
+ from sage.categories.infinite_enumerated_sets import InfiniteEnumeratedSets
23
+ from sage.combinat.root_system.cartan_type import CartanType
24
+ from sage.rings.finite_rings.integer_mod_ring import IntegerModRing
25
+ from sage.rings.integer_ring import ZZ
26
+
27
+
28
+ class InfinityCrystalOfMultisegments(Parent, UniqueRepresentation):
29
+ r"""
30
+ The type `A_n^{(1)}` crystal `B(\infty)` realized using
31
+ Bernstein-Zelevinsky (BZ) multisegments.
32
+
33
+ Using (a modified version of the) notation from [JL2009]_, for `\ell \in
34
+ \ZZ_{>0}` and `i \in \ZZ / (n+1)\ZZ`, a segment of length `\ell` and head
35
+ `i` is the sequence of consecutive residues `[i,i+1,\dots,i+\ell-1]`. The
36
+ notation for a segment of length `\ell` and head `i` is simplified to
37
+ `[i; \ell)`. Similarly, a segment of length `\ell` and tail `i` is the
38
+ sequence of consecutive residues `[i-\ell+1, \ldots, i-1, i]`. The latter
39
+ is denoted simply by `(\ell;i]`. Finally, a multisegment is a formal
40
+ linear combination of segments, usually written in the form
41
+
42
+ .. MATH::
43
+
44
+ \psi =
45
+ \sum_{\substack{i \in \ZZ/(n+1)\ZZ \\ \ell \in \ZZ_{>0}}}
46
+ m_{(\ell;i]} (\ell; i].
47
+
48
+ Such a multisegment is called aperiodic if, for every `\ell > 0`, there
49
+ exists some `i \in \ZZ / (n+1)\ZZ` such that `(\ell; i]` does not appear
50
+ in `\psi`. Denote the set of all periodic multisegments, together with
51
+ the empty multisegment `\varnothing`, by `\Psi`. We define a crystal
52
+ structure on multisegments as follows. Set `S_{\ell,i} = \sum_{k \ge \ell}
53
+ (m_{(k;i-1]} - m_{(k;i]})` and let `\ell_f` be the minimal `\ell` that
54
+ attains the value `\min_{\ell > 0} S_{\ell,i}`. Then we have
55
+
56
+ .. MATH::
57
+
58
+ f_i \psi =
59
+ \begin{cases}
60
+ \psi + (1;i] & \text{ if } \ell_f = 1,\\
61
+ \psi + (\ell_f;i] - (\ell_f-1;i-1] & \text{ if } \ell_f > 1.
62
+ \end{cases}
63
+
64
+ Similarly, let `\ell_e` be the maximal `\ell` that attains the value
65
+ `\min_{\ell > 0} S_{\ell,i}`. Then we have
66
+
67
+ .. MATH::
68
+
69
+ e_i \psi =
70
+ \begin{cases}
71
+ 0 & \text{ if } \min_{\ell > 0} S_{\ell,i} = 0, \\
72
+ \psi + (1; i] & \text{ if } \ell_e = 1,\\
73
+ \psi - (\ell_e; i] + (\ell_e-1; i-1] & \text{ if } \ell_e > 1.
74
+ \end{cases}
75
+
76
+ Alternatively, the crystal operators may be defined using a signature
77
+ rule, as detailed in Section 4 of [JL2009]_ (following [AJL2011]_). For
78
+ `\psi \in \Psi` and `i \in \ZZ/(n+1)\ZZ`, encode all segments in `\psi`
79
+ with tail `i` by the symbol `R` and all segments in `\psi` with tail
80
+ `i-1` by `A`. For `\ell > 0`, set
81
+ `w_{i,\ell} = R^{m_{(\ell;i]}} A^{m_{(\ell;i-1]}}` and
82
+ `w_i = \prod_{\ell\ge 1} w_{i,\ell}`. By successively canceling out
83
+ as many `RA` factors as possible, set
84
+ `\widetilde{w}_i = A^{a_i(\psi)} R^{r_i(\psi)}`. If `a_i(\psi) > 0`,
85
+ denote by `\ell_f > 0` the length of the rightmost segment `A` in
86
+ `\widetilde{w}_i`. If `a_i(\psi) = 0`, set `\ell_f = 0`. Then
87
+
88
+ .. MATH::
89
+
90
+ f_i \psi =
91
+ \begin{cases}
92
+ \psi + (1; i] & \text{ if } a_i(\psi) = 0,\\
93
+ \psi + (\ell_f; i] - (\ell_f-1; i-1] & \text{ if } a_i(\psi) > 0.
94
+ \end{cases}
95
+
96
+ The rule for computing `e_i \psi` is similar.
97
+
98
+ INPUT:
99
+
100
+ - ``n`` -- for type `A_n^{(1)}`
101
+
102
+ EXAMPLES::
103
+
104
+ sage: B = crystals.infinity.Multisegments(2)
105
+ sage: x = B([(8,1),(6,0),(5,1),(5,0),(4,0),(4,1),(4,1),(3,0),(3,0),(3,1),(3,1),(1,0),(1,2),(1,2)]); x
106
+ (8; 1] + (6; 0] + (5; 0] + (5; 1] + (4; 0] + 2 * (4; 1]
107
+ + 2 * (3; 0] + 2 * (3; 1] + (1; 0] + 2 * (1; 2]
108
+ sage: x.f(1)
109
+ (8; 1] + (6; 0] + (5; 0] + (5; 1] + (4; 0] + 2 * (4; 1]
110
+ + 2 * (3; 0] + 2 * (3; 1] + (2; 1] + 2 * (1; 2]
111
+ sage: x.f(1).f(1)
112
+ (8; 1] + (6; 0] + (5; 0] + (5; 1] + (4; 0] + 2 * (4; 1]
113
+ + 2 * (3; 0] + 2 * (3; 1] + (2; 1] + (1; 1] + 2 * (1; 2]
114
+ sage: x.e(1)
115
+ (7; 0] + (6; 0] + (5; 0] + (5; 1] + (4; 0] + 2 * (4; 1]
116
+ + 2 * (3; 0] + 2 * (3; 1] + (1; 0] + 2 * (1; 2]
117
+ sage: x.e(1).e(1)
118
+ sage: x.f(0)
119
+ (8; 1] + (6; 0] + (5; 0] + (5; 1] + (4; 0] + 2 * (4; 1]
120
+ + 2 * (3; 0] + 2 * (3; 1] + (2; 0] + (1; 0] + (1; 2]
121
+
122
+ We check an `\widehat{\mathfrak{sl}}_2` example against the generalized
123
+ Young walls::
124
+
125
+ sage: B = crystals.infinity.Multisegments(1)
126
+ sage: G = B.subcrystal(max_depth=4).digraph()
127
+ sage: C = crystals.infinity.GeneralizedYoungWalls(1)
128
+ sage: GC = C.subcrystal(max_depth=4).digraph()
129
+ sage: G.is_isomorphic(GC, edge_labels=True)
130
+ True
131
+
132
+ REFERENCES:
133
+
134
+ - [AJL2011]_
135
+ - [JL2009]_
136
+ - [LTV1999]_
137
+ """
138
+
139
+ def __init__(self, n):
140
+ """
141
+ Initialize ``self``.
142
+
143
+ EXAMPLES::
144
+
145
+ sage: B = crystals.infinity.Multisegments(2)
146
+ sage: TestSuite(B).run()
147
+ """
148
+ self._cartan_type = CartanType(['A', n, 1])
149
+ self._Zn = IntegerModRing(n+1)
150
+ Parent.__init__(self, category=(HighestWeightCrystals(), InfiniteEnumeratedSets()))
151
+ self.module_generators = (self.highest_weight_vector(),)
152
+
153
+ def _repr_(self):
154
+ """
155
+ Return a string representation of ``self``.
156
+
157
+ EXAMPLES::
158
+
159
+ sage: crystals.infinity.Multisegments(2)
160
+ Infinity crystal of multisegments of type ['A', 2, 1]
161
+ """
162
+ return "Infinity crystal of multisegments of type {}".format(self._cartan_type)
163
+
164
+ @cached_method
165
+ def highest_weight_vector(self):
166
+ """
167
+ Return the highest weight vector of ``self``.
168
+
169
+ EXAMPLES::
170
+
171
+ sage: B = crystals.infinity.Multisegments(2)
172
+ sage: B.highest_weight_vector()
173
+ 0
174
+ """
175
+ return self.element_class(self, ())
176
+
177
+ def weight_lattice_realization(self):
178
+ """
179
+ Return a realization of the weight lattice of ``self``.
180
+
181
+ EXAMPLES::
182
+
183
+ sage: B = crystals.infinity.Multisegments(2)
184
+ sage: B.weight_lattice_realization()
185
+ Extended weight lattice of the Root system of type ['A', 2, 1]
186
+ """
187
+ return self._cartan_type.root_system().weight_lattice(extended=True)
188
+
189
+ class Element(ElementWrapper):
190
+ """
191
+ An element in a BZ multisegments crystal.
192
+ """
193
+
194
+ def __init__(self, parent, value):
195
+ """
196
+ Initialize ``self``.
197
+
198
+ EXAMPLES::
199
+
200
+ sage: B = crystals.infinity.Multisegments(2)
201
+ sage: mg = B.highest_weight_vector()
202
+ sage: TestSuite(mg).run()
203
+ """
204
+ def sort_key(x):
205
+ return (-x[0], ZZ(x[1]))
206
+ ZM = parent._Zn
207
+ value = [(k, ZM(i)) for k,i in value]
208
+ ElementWrapper.__init__(self, parent, tuple(sorted(value, key=sort_key)))
209
+
210
+ def _repr_(self):
211
+ r"""
212
+ Return a string representation of ``self``.
213
+
214
+ EXAMPLES::
215
+
216
+ sage: B = crystals.infinity.Multisegments(2)
217
+ sage: B.highest_weight_vector()
218
+ 0
219
+ sage: B([(4,2), (3,0), (3,1), (3,1), (1,1), (1,0)])
220
+ (4; 2] + (3; 0] + 2 * (3; 1] + (1; 0] + (1; 1]
221
+ """
222
+ if not self.value:
223
+ return '0'
224
+
225
+ def sort_key(mc):
226
+ x = mc[0]
227
+ return (-x[0], ZZ(x[1]))
228
+
229
+ def seg(x):
230
+ m, c = x
231
+ if c != 1:
232
+ return "{} * ({}; {}]".format(c, m[0], m[1])
233
+ return "({}; {}]".format(m[0], m[1])
234
+ d = {}
235
+ for x in self.value:
236
+ d[x] = d.get(x, 0) + 1
237
+ return " + ".join(seg(x) for x in sorted(d.items(), key=sort_key))
238
+
239
+ def _latex_(self):
240
+ r"""
241
+ Return a LaTeX representation of ``self``.
242
+
243
+ EXAMPLES::
244
+
245
+ sage: B = crystals.infinity.Multisegments(2)
246
+ sage: latex(B.highest_weight_vector())
247
+ 0
248
+ sage: latex(B([(4,2), (3,0), (3,1), (3,1), (1,1), (1,0)]))
249
+ (4; 2] + (3; 0] + 2 (3; 1] + (1; 0] + (1; 1]
250
+ """
251
+ if not self.value:
252
+ return "0"
253
+
254
+ def sort_key(mc):
255
+ x = mc[0]
256
+ return (-x[0], ZZ(x[1]))
257
+
258
+ def seg(x):
259
+ m, c = x
260
+ if c != 1:
261
+ return "{} ({}; {}]".format(c, m[0], m[1])
262
+ return "({}; {}]".format(m[0], m[1])
263
+ d = {}
264
+ for x in self.value:
265
+ d[x] = d.get(x, 0) + 1
266
+ return " + ".join(seg(x) for x in sorted(d.items(), key=sort_key))
267
+
268
+ def _sig(self, i):
269
+ r"""
270
+ Return an `i`-signature of ``self``.
271
+
272
+ INPUT:
273
+
274
+ - ``i`` -- an element of the indexing set
275
+
276
+ OUTPUT:
277
+
278
+ A pair ``(m, p, ep)`` where ``m`` and ``p`` correspond to the
279
+ block length of the unmatched `-` and `+` respectively or ``None``
280
+ if there is no such block and ``ep`` is the number of unmatched
281
+ `-`.
282
+
283
+ EXAMPLES::
284
+
285
+ sage: B = crystals.infinity.Multisegments(2)
286
+ sage: b = B([(4,2), (3,0), (3,1), (1,1), (1,0)])
287
+ sage: b._sig(0)
288
+ (1, None, 1)
289
+ sage: b._sig(1)
290
+ (None, None, 0)
291
+
292
+ TESTS:
293
+
294
+ Check that :issue:`23439` is fixed::
295
+
296
+ sage: B = crystals.infinity.Multisegments(2)
297
+ sage: b = B.highest_weight_vector()
298
+ sage: b._sig(1)
299
+ (None, None, 0)
300
+ sage: b.epsilon(1)
301
+ 0
302
+ """
303
+ if not self.value:
304
+ return (None, None, 0)
305
+ pos = []
306
+ block = self.value[0][0]
307
+ cur = 0
308
+ for k,j in self.value:
309
+ if k != block:
310
+ if cur != 0:
311
+ pos.append((block, cur))
312
+ cur = 0
313
+ block = k
314
+ if j + 1 == i: # + or (
315
+ cur += 1
316
+ elif j == i: # - or )
317
+ cur -= 1
318
+ if cur != 0:
319
+ pos.append((block, cur))
320
+ # Now cancel all +- pairs
321
+ cur = 0
322
+ m = None
323
+ p = None
324
+ ep = 0
325
+ for k,c in pos:
326
+ old = cur
327
+ cur += c
328
+ if cur < 0:
329
+ m = k
330
+ p = None
331
+ ep -= cur
332
+ cur = 0
333
+ elif not cur:
334
+ p = None
335
+ elif cur > 0 and old <= 0:
336
+ p = k
337
+ return (m, p, ep)
338
+
339
+ def e(self, i):
340
+ r"""
341
+ Return the action of `e_i` on ``self``.
342
+
343
+ INPUT:
344
+
345
+ - ``i`` -- an element of the index set
346
+
347
+ EXAMPLES::
348
+
349
+ sage: B = crystals.infinity.Multisegments(2)
350
+ sage: b = B([(4,2), (3,0), (3,1), (1,1), (1,0)])
351
+ sage: b.e(0)
352
+ (4; 2] + (3; 0] + (3; 1] + (1; 1]
353
+ sage: b.e(1)
354
+ sage: b.e(2)
355
+ (3; 0] + 2 * (3; 1] + (1; 0] + (1; 1]
356
+ """
357
+ i = self.parent()._Zn(i)
358
+ m = self._sig(i)[0]
359
+ if m is None:
360
+ return None
361
+
362
+ M = self.value
363
+ a = M.index((m, i))
364
+ k = M[a][0]
365
+ if k == 1:
366
+ return self.__class__(self.parent(), M[:a] + M[a+1:])
367
+ return self.__class__(self.parent(), M[:a] + ((k-1,i-1),) + M[a+1:])
368
+
369
+ def f(self, i):
370
+ r"""
371
+ Return the action of `f_i` on ``self``.
372
+
373
+ INPUT:
374
+
375
+ - ``i`` -- an element of the index set
376
+
377
+ EXAMPLES::
378
+
379
+ sage: B = crystals.infinity.Multisegments(2)
380
+ sage: b = B([(4,2), (3,0), (3,1), (1,1), (1,0)])
381
+ sage: b.f(0)
382
+ (4; 2] + (3; 0] + (3; 1] + 2 * (1; 0] + (1; 1]
383
+ sage: b.f(1)
384
+ (4; 2] + (3; 0] + (3; 1] + (1; 0] + 2 * (1; 1]
385
+ sage: b.f(2)
386
+ 2 * (4; 2] + (3; 0] + (1; 0] + (1; 1]
387
+ """
388
+ i = self.parent()._Zn(i)
389
+ p = self._sig(i)[1]
390
+ M = self.value
391
+ if p is None:
392
+ return self.__class__(self.parent(), ((1, i),) + M)
393
+
394
+ a = M.index((p, i-1))
395
+ return self.__class__(self.parent(), M[:a] + ((M[a][0]+1,i),) + M[a+1:])
396
+
397
+ def epsilon(self, i):
398
+ r"""
399
+ Return `\varepsilon_i` of ``self``.
400
+
401
+ INPUT:
402
+
403
+ - ``i`` -- an element of the index set
404
+
405
+ EXAMPLES::
406
+
407
+ sage: B = crystals.infinity.Multisegments(2)
408
+ sage: b = B([(4,2), (3,0), (3,1), (1,1), (1,0)])
409
+ sage: b.epsilon(0)
410
+ 1
411
+ sage: b.epsilon(1)
412
+ 0
413
+ sage: b.epsilon(2)
414
+ 1
415
+ """
416
+ i = self.parent()._Zn(i)
417
+ return self._sig(i)[2]
418
+
419
+ def phi(self, i):
420
+ r"""
421
+ Return `\varphi_i` of ``self``.
422
+
423
+ Let `\psi \in \Psi`. Define `\varphi_i(\psi) :=
424
+ \varepsilon_i(\psi) + \langle h_i, \mathrm{wt}(\psi) \rangle`,
425
+ where `h_i` is the `i`-th simple coroot and `\mathrm{wt}(\psi)` is the
426
+ :meth:`weight` of `\psi`.
427
+
428
+ INPUT:
429
+
430
+ - ``i`` -- an element of the index set
431
+
432
+ EXAMPLES::
433
+
434
+ sage: B = crystals.infinity.Multisegments(2)
435
+ sage: b = B([(4,2), (3,0), (3,1), (1,1), (1,0)])
436
+ sage: b.phi(0)
437
+ 1
438
+ sage: b.phi(1)
439
+ 0
440
+ sage: mg = B.highest_weight_vector()
441
+ sage: mg.f(1).phi(0)
442
+ 1
443
+ """
444
+ h = self.parent().weight_lattice_realization().simple_coroots()
445
+ return self.epsilon(i) + self.weight().scalar(h[i])
446
+
447
+ def weight(self):
448
+ """
449
+ Return the weight of ``self``.
450
+
451
+ EXAMPLES::
452
+
453
+ sage: B = crystals.infinity.Multisegments(2)
454
+ sage: b = B([(4,2), (3,0), (3,1), (1,1), (1,0)])
455
+ sage: b.weight()
456
+ -4*delta
457
+ """
458
+ WLR = self.parent().weight_lattice_realization()
459
+ alpha = WLR.simple_roots()
460
+ n = self.parent()._cartan_type.rank()
461
+ return WLR.sum(-1*alpha[j % n] for k,i in self.value
462
+ for j in range(ZZ(i),ZZ(i)+k))