passagemath-combinat 10.6.42__cp314-cp314t-win_amd64.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 (401) hide show
  1. passagemath_combinat/__init__.py +3 -0
  2. passagemath_combinat-10.6.42.dist-info/DELVEWHEEL +2 -0
  3. passagemath_combinat-10.6.42.dist-info/METADATA +160 -0
  4. passagemath_combinat-10.6.42.dist-info/RECORD +401 -0
  5. passagemath_combinat-10.6.42.dist-info/WHEEL +5 -0
  6. passagemath_combinat-10.6.42.dist-info/top_level.txt +3 -0
  7. passagemath_combinat.libs/libgmp-10-3a5f019e2510aeaad918cab2b57a689d.dll +0 -0
  8. passagemath_combinat.libs/libsymmetrica-3-7dcf900932804d0df5fd0919b4668720.dll +0 -0
  9. sage/algebras/affine_nil_temperley_lieb.py +263 -0
  10. sage/algebras/all.py +24 -0
  11. sage/algebras/all__sagemath_combinat.py +35 -0
  12. sage/algebras/askey_wilson.py +935 -0
  13. sage/algebras/associated_graded.py +345 -0
  14. sage/algebras/cellular_basis.py +350 -0
  15. sage/algebras/cluster_algebra.py +2766 -0
  16. sage/algebras/down_up_algebra.py +860 -0
  17. sage/algebras/free_algebra.py +1698 -0
  18. sage/algebras/free_algebra_element.py +345 -0
  19. sage/algebras/free_algebra_quotient.py +405 -0
  20. sage/algebras/free_algebra_quotient_element.py +295 -0
  21. sage/algebras/free_zinbiel_algebra.py +885 -0
  22. sage/algebras/hall_algebra.py +783 -0
  23. sage/algebras/hecke_algebras/all.py +4 -0
  24. sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
  25. sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
  26. sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
  27. sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
  28. sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
  29. sage/algebras/iwahori_hecke_algebra.py +3095 -0
  30. sage/algebras/jordan_algebra.py +1773 -0
  31. sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
  32. sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
  33. sage/algebras/lie_conformal_algebras/all.py +18 -0
  34. sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
  35. sage/algebras/lie_conformal_algebras/examples.py +43 -0
  36. sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
  37. sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
  38. sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
  39. sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
  40. sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
  41. sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
  42. sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
  43. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
  44. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
  45. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
  46. sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
  47. sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
  48. sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
  49. sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
  50. sage/algebras/nil_coxeter_algebra.py +191 -0
  51. sage/algebras/q_commuting_polynomials.py +673 -0
  52. sage/algebras/q_system.py +608 -0
  53. sage/algebras/quantum_clifford.py +959 -0
  54. sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
  55. sage/algebras/quantum_groups/all.py +9 -0
  56. sage/algebras/quantum_groups/fock_space.py +2219 -0
  57. sage/algebras/quantum_groups/q_numbers.py +207 -0
  58. sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
  59. sage/algebras/quantum_groups/representations.py +591 -0
  60. sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
  61. sage/algebras/quantum_oscillator.py +623 -0
  62. sage/algebras/quaternion_algebra.py +20 -0
  63. sage/algebras/quaternion_algebra_element.py +55 -0
  64. sage/algebras/rational_cherednik_algebra.py +525 -0
  65. sage/algebras/schur_algebra.py +670 -0
  66. sage/algebras/shuffle_algebra.py +1011 -0
  67. sage/algebras/splitting_algebra.py +779 -0
  68. sage/algebras/tensor_algebra.py +709 -0
  69. sage/algebras/yangian.py +1082 -0
  70. sage/algebras/yokonuma_hecke_algebra.py +1018 -0
  71. sage/all__sagemath_combinat.py +44 -0
  72. sage/combinat/SJT.py +255 -0
  73. sage/combinat/affine_permutation.py +2405 -0
  74. sage/combinat/algebraic_combinatorics.py +55 -0
  75. sage/combinat/all.py +53 -0
  76. sage/combinat/all__sagemath_combinat.py +195 -0
  77. sage/combinat/alternating_sign_matrix.py +2063 -0
  78. sage/combinat/baxter_permutations.py +346 -0
  79. sage/combinat/bijectionist.py +3220 -0
  80. sage/combinat/binary_recurrence_sequences.py +1180 -0
  81. sage/combinat/blob_algebra.py +685 -0
  82. sage/combinat/catalog_partitions.py +27 -0
  83. sage/combinat/chas/all.py +23 -0
  84. sage/combinat/chas/fsym.py +1180 -0
  85. sage/combinat/chas/wqsym.py +2601 -0
  86. sage/combinat/cluster_complex.py +326 -0
  87. sage/combinat/colored_permutations.py +2039 -0
  88. sage/combinat/colored_permutations_representations.py +964 -0
  89. sage/combinat/composition_signed.py +142 -0
  90. sage/combinat/composition_tableau.py +855 -0
  91. sage/combinat/constellation.py +1729 -0
  92. sage/combinat/core.py +751 -0
  93. sage/combinat/counting.py +12 -0
  94. sage/combinat/crystals/affine.py +742 -0
  95. sage/combinat/crystals/affine_factorization.py +518 -0
  96. sage/combinat/crystals/affinization.py +331 -0
  97. sage/combinat/crystals/alcove_path.py +2013 -0
  98. sage/combinat/crystals/all.py +22 -0
  99. sage/combinat/crystals/bkk_crystals.py +141 -0
  100. sage/combinat/crystals/catalog.py +115 -0
  101. sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
  102. sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
  103. sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
  104. sage/combinat/crystals/crystals.py +257 -0
  105. sage/combinat/crystals/direct_sum.py +260 -0
  106. sage/combinat/crystals/elementary_crystals.py +1251 -0
  107. sage/combinat/crystals/fast_crystals.py +441 -0
  108. sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
  109. sage/combinat/crystals/generalized_young_walls.py +1076 -0
  110. sage/combinat/crystals/highest_weight_crystals.py +436 -0
  111. sage/combinat/crystals/induced_structure.py +695 -0
  112. sage/combinat/crystals/infinity_crystals.py +730 -0
  113. sage/combinat/crystals/kac_modules.py +863 -0
  114. sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
  115. sage/combinat/crystals/kyoto_path_model.py +497 -0
  116. sage/combinat/crystals/letters.cp314t-win_amd64.pyd +0 -0
  117. sage/combinat/crystals/letters.pxd +79 -0
  118. sage/combinat/crystals/letters.pyx +3056 -0
  119. sage/combinat/crystals/littelmann_path.py +1518 -0
  120. sage/combinat/crystals/monomial_crystals.py +1262 -0
  121. sage/combinat/crystals/multisegments.py +462 -0
  122. sage/combinat/crystals/mv_polytopes.py +467 -0
  123. sage/combinat/crystals/pbw_crystal.py +511 -0
  124. sage/combinat/crystals/pbw_datum.cp314t-win_amd64.pyd +0 -0
  125. sage/combinat/crystals/pbw_datum.pxd +4 -0
  126. sage/combinat/crystals/pbw_datum.pyx +487 -0
  127. sage/combinat/crystals/polyhedral_realization.py +372 -0
  128. sage/combinat/crystals/spins.cp314t-win_amd64.pyd +0 -0
  129. sage/combinat/crystals/spins.pxd +21 -0
  130. sage/combinat/crystals/spins.pyx +756 -0
  131. sage/combinat/crystals/star_crystal.py +290 -0
  132. sage/combinat/crystals/subcrystal.py +464 -0
  133. sage/combinat/crystals/tensor_product.py +1177 -0
  134. sage/combinat/crystals/tensor_product_element.cp314t-win_amd64.pyd +0 -0
  135. sage/combinat/crystals/tensor_product_element.pxd +35 -0
  136. sage/combinat/crystals/tensor_product_element.pyx +1870 -0
  137. sage/combinat/crystals/virtual_crystal.py +420 -0
  138. sage/combinat/cyclic_sieving_phenomenon.py +204 -0
  139. sage/combinat/debruijn_sequence.cp314t-win_amd64.pyd +0 -0
  140. sage/combinat/debruijn_sequence.pyx +355 -0
  141. sage/combinat/decorated_permutation.py +270 -0
  142. sage/combinat/degree_sequences.cp314t-win_amd64.pyd +0 -0
  143. sage/combinat/degree_sequences.pyx +588 -0
  144. sage/combinat/derangements.py +527 -0
  145. sage/combinat/descent_algebra.py +1008 -0
  146. sage/combinat/diagram.py +1551 -0
  147. sage/combinat/diagram_algebras.py +5886 -0
  148. sage/combinat/dyck_word.py +4349 -0
  149. sage/combinat/e_one_star.py +1623 -0
  150. sage/combinat/enumerated_sets.py +123 -0
  151. sage/combinat/expnums.cp314t-win_amd64.pyd +0 -0
  152. sage/combinat/expnums.pyx +148 -0
  153. sage/combinat/fast_vector_partitions.cp314t-win_amd64.pyd +0 -0
  154. sage/combinat/fast_vector_partitions.pyx +346 -0
  155. sage/combinat/fqsym.py +1977 -0
  156. sage/combinat/free_dendriform_algebra.py +954 -0
  157. sage/combinat/free_prelie_algebra.py +1141 -0
  158. sage/combinat/fully_commutative_elements.py +1077 -0
  159. sage/combinat/fully_packed_loop.py +1523 -0
  160. sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
  161. sage/combinat/gray_codes.py +311 -0
  162. sage/combinat/grossman_larson_algebras.py +667 -0
  163. sage/combinat/growth.py +4352 -0
  164. sage/combinat/hall_polynomial.py +188 -0
  165. sage/combinat/hillman_grassl.py +866 -0
  166. sage/combinat/integer_matrices.py +329 -0
  167. sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
  168. sage/combinat/k_tableau.py +4564 -0
  169. sage/combinat/kazhdan_lusztig.py +215 -0
  170. sage/combinat/key_polynomial.py +885 -0
  171. sage/combinat/knutson_tao_puzzles.py +2286 -0
  172. sage/combinat/lr_tableau.py +311 -0
  173. sage/combinat/matrices/all.py +24 -0
  174. sage/combinat/matrices/hadamard_matrix.py +3790 -0
  175. sage/combinat/matrices/latin.py +2912 -0
  176. sage/combinat/misc.py +401 -0
  177. sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
  178. sage/combinat/ncsf_qsym/all.py +21 -0
  179. sage/combinat/ncsf_qsym/combinatorics.py +317 -0
  180. sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
  181. sage/combinat/ncsf_qsym/ncsf.py +5637 -0
  182. sage/combinat/ncsf_qsym/qsym.py +4053 -0
  183. sage/combinat/ncsf_qsym/tutorial.py +447 -0
  184. sage/combinat/ncsym/all.py +21 -0
  185. sage/combinat/ncsym/bases.py +855 -0
  186. sage/combinat/ncsym/dual.py +593 -0
  187. sage/combinat/ncsym/ncsym.py +2076 -0
  188. sage/combinat/necklace.py +551 -0
  189. sage/combinat/non_decreasing_parking_function.py +634 -0
  190. sage/combinat/nu_dyck_word.py +1474 -0
  191. sage/combinat/output.py +861 -0
  192. sage/combinat/parallelogram_polyomino.py +4326 -0
  193. sage/combinat/parking_functions.py +1602 -0
  194. sage/combinat/partition_algebra.py +1998 -0
  195. sage/combinat/partition_kleshchev.py +1982 -0
  196. sage/combinat/partition_shifting_algebras.py +584 -0
  197. sage/combinat/partition_tuple.py +3114 -0
  198. sage/combinat/path_tableaux/all.py +13 -0
  199. sage/combinat/path_tableaux/catalog.py +29 -0
  200. sage/combinat/path_tableaux/dyck_path.py +380 -0
  201. sage/combinat/path_tableaux/frieze.py +476 -0
  202. sage/combinat/path_tableaux/path_tableau.py +728 -0
  203. sage/combinat/path_tableaux/semistandard.py +510 -0
  204. sage/combinat/perfect_matching.py +779 -0
  205. sage/combinat/plane_partition.py +3300 -0
  206. sage/combinat/q_bernoulli.cp314t-win_amd64.pyd +0 -0
  207. sage/combinat/q_bernoulli.pyx +128 -0
  208. sage/combinat/quickref.py +81 -0
  209. sage/combinat/recognizable_series.py +2051 -0
  210. sage/combinat/regular_sequence.py +4316 -0
  211. sage/combinat/regular_sequence_bounded.py +543 -0
  212. sage/combinat/restricted_growth.py +81 -0
  213. sage/combinat/ribbon.py +20 -0
  214. sage/combinat/ribbon_shaped_tableau.py +489 -0
  215. sage/combinat/ribbon_tableau.py +1180 -0
  216. sage/combinat/rigged_configurations/all.py +46 -0
  217. sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
  218. sage/combinat/rigged_configurations/bij_infinity.py +370 -0
  219. sage/combinat/rigged_configurations/bij_type_A.py +163 -0
  220. sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
  221. sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
  222. sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
  223. sage/combinat/rigged_configurations/bij_type_B.py +900 -0
  224. sage/combinat/rigged_configurations/bij_type_C.py +267 -0
  225. sage/combinat/rigged_configurations/bij_type_D.py +771 -0
  226. sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
  227. sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
  228. sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
  229. sage/combinat/rigged_configurations/bijection.py +143 -0
  230. sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
  231. sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
  232. sage/combinat/rigged_configurations/rc_crystal.py +461 -0
  233. sage/combinat/rigged_configurations/rc_infinity.py +540 -0
  234. sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
  235. sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
  236. sage/combinat/rigged_configurations/rigged_partition.cp314t-win_amd64.pyd +0 -0
  237. sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
  238. sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
  239. sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
  240. sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
  241. sage/combinat/rsk.py +3438 -0
  242. sage/combinat/schubert_polynomial.py +508 -0
  243. sage/combinat/set_partition.py +3318 -0
  244. sage/combinat/set_partition_iterator.cp314t-win_amd64.pyd +0 -0
  245. sage/combinat/set_partition_iterator.pyx +136 -0
  246. sage/combinat/set_partition_ordered.py +1590 -0
  247. sage/combinat/sf/abreu_nigro.py +346 -0
  248. sage/combinat/sf/all.py +52 -0
  249. sage/combinat/sf/character.py +576 -0
  250. sage/combinat/sf/classical.py +319 -0
  251. sage/combinat/sf/dual.py +996 -0
  252. sage/combinat/sf/elementary.py +549 -0
  253. sage/combinat/sf/hall_littlewood.py +1028 -0
  254. sage/combinat/sf/hecke.py +336 -0
  255. sage/combinat/sf/homogeneous.py +464 -0
  256. sage/combinat/sf/jack.py +1428 -0
  257. sage/combinat/sf/k_dual.py +1458 -0
  258. sage/combinat/sf/kfpoly.py +447 -0
  259. sage/combinat/sf/llt.py +789 -0
  260. sage/combinat/sf/macdonald.py +2019 -0
  261. sage/combinat/sf/monomial.py +525 -0
  262. sage/combinat/sf/multiplicative.py +113 -0
  263. sage/combinat/sf/new_kschur.py +1786 -0
  264. sage/combinat/sf/ns_macdonald.py +964 -0
  265. sage/combinat/sf/orthogonal.py +246 -0
  266. sage/combinat/sf/orthotriang.py +355 -0
  267. sage/combinat/sf/powersum.py +963 -0
  268. sage/combinat/sf/schur.py +880 -0
  269. sage/combinat/sf/sf.py +1653 -0
  270. sage/combinat/sf/sfa.py +7053 -0
  271. sage/combinat/sf/symplectic.py +253 -0
  272. sage/combinat/sf/witt.py +721 -0
  273. sage/combinat/shifted_primed_tableau.py +2735 -0
  274. sage/combinat/shuffle.py +830 -0
  275. sage/combinat/sidon_sets.py +146 -0
  276. sage/combinat/similarity_class_type.py +1721 -0
  277. sage/combinat/sine_gordon.py +618 -0
  278. sage/combinat/six_vertex_model.py +784 -0
  279. sage/combinat/skew_partition.py +2053 -0
  280. sage/combinat/skew_tableau.py +2989 -0
  281. sage/combinat/sloane_functions.py +8935 -0
  282. sage/combinat/specht_module.py +1403 -0
  283. sage/combinat/species/all.py +48 -0
  284. sage/combinat/species/characteristic_species.py +321 -0
  285. sage/combinat/species/composition_species.py +273 -0
  286. sage/combinat/species/cycle_species.py +284 -0
  287. sage/combinat/species/empty_species.py +155 -0
  288. sage/combinat/species/functorial_composition_species.py +148 -0
  289. sage/combinat/species/generating_series.py +673 -0
  290. sage/combinat/species/library.py +148 -0
  291. sage/combinat/species/linear_order_species.py +169 -0
  292. sage/combinat/species/misc.py +83 -0
  293. sage/combinat/species/partition_species.py +290 -0
  294. sage/combinat/species/permutation_species.py +268 -0
  295. sage/combinat/species/product_species.py +423 -0
  296. sage/combinat/species/recursive_species.py +476 -0
  297. sage/combinat/species/set_species.py +192 -0
  298. sage/combinat/species/species.py +820 -0
  299. sage/combinat/species/structure.py +539 -0
  300. sage/combinat/species/subset_species.py +243 -0
  301. sage/combinat/species/sum_species.py +225 -0
  302. sage/combinat/subword.py +564 -0
  303. sage/combinat/subword_complex.py +2122 -0
  304. sage/combinat/subword_complex_c.cp314t-win_amd64.pyd +0 -0
  305. sage/combinat/subword_complex_c.pyx +119 -0
  306. sage/combinat/super_tableau.py +821 -0
  307. sage/combinat/superpartition.py +1154 -0
  308. sage/combinat/symmetric_group_algebra.py +3774 -0
  309. sage/combinat/symmetric_group_representations.py +1830 -0
  310. sage/combinat/t_sequences.py +877 -0
  311. sage/combinat/tableau.py +9506 -0
  312. sage/combinat/tableau_residues.py +860 -0
  313. sage/combinat/tableau_tuple.py +5353 -0
  314. sage/combinat/tiling.py +2432 -0
  315. sage/combinat/triangles_FHM.py +777 -0
  316. sage/combinat/tutorial.py +1857 -0
  317. sage/combinat/vector_partition.py +337 -0
  318. sage/combinat/words/abstract_word.py +1722 -0
  319. sage/combinat/words/all.py +59 -0
  320. sage/combinat/words/alphabet.py +268 -0
  321. sage/combinat/words/finite_word.py +7201 -0
  322. sage/combinat/words/infinite_word.py +113 -0
  323. sage/combinat/words/lyndon_word.py +652 -0
  324. sage/combinat/words/morphic.py +351 -0
  325. sage/combinat/words/morphism.py +3878 -0
  326. sage/combinat/words/paths.py +2932 -0
  327. sage/combinat/words/shuffle_product.py +278 -0
  328. sage/combinat/words/suffix_trees.py +1873 -0
  329. sage/combinat/words/word.py +769 -0
  330. sage/combinat/words/word_char.cp314t-win_amd64.pyd +0 -0
  331. sage/combinat/words/word_char.pyx +847 -0
  332. sage/combinat/words/word_datatypes.cp314t-win_amd64.pyd +0 -0
  333. sage/combinat/words/word_datatypes.pxd +4 -0
  334. sage/combinat/words/word_datatypes.pyx +1067 -0
  335. sage/combinat/words/word_generators.py +2026 -0
  336. sage/combinat/words/word_infinite_datatypes.py +1218 -0
  337. sage/combinat/words/word_options.py +99 -0
  338. sage/combinat/words/words.py +2396 -0
  339. sage/data_structures/all__sagemath_combinat.py +1 -0
  340. sage/databases/all__sagemath_combinat.py +13 -0
  341. sage/databases/findstat.py +4897 -0
  342. sage/databases/oeis.py +2058 -0
  343. sage/databases/sloane.py +393 -0
  344. sage/dynamics/all__sagemath_combinat.py +14 -0
  345. sage/dynamics/cellular_automata/all.py +7 -0
  346. sage/dynamics/cellular_automata/catalog.py +34 -0
  347. sage/dynamics/cellular_automata/elementary.py +612 -0
  348. sage/dynamics/cellular_automata/glca.py +477 -0
  349. sage/dynamics/cellular_automata/solitons.py +1463 -0
  350. sage/dynamics/finite_dynamical_system.py +1249 -0
  351. sage/dynamics/finite_dynamical_system_catalog.py +382 -0
  352. sage/games/all.py +7 -0
  353. sage/games/hexad.py +704 -0
  354. sage/games/quantumino.py +591 -0
  355. sage/games/sudoku.py +889 -0
  356. sage/games/sudoku_backtrack.cp314t-win_amd64.pyd +0 -0
  357. sage/games/sudoku_backtrack.pyx +189 -0
  358. sage/groups/all__sagemath_combinat.py +1 -0
  359. sage/groups/indexed_free_group.py +489 -0
  360. sage/libs/all__sagemath_combinat.py +6 -0
  361. sage/libs/lrcalc/__init__.py +1 -0
  362. sage/libs/lrcalc/lrcalc.py +525 -0
  363. sage/libs/symmetrica/__init__.py +7 -0
  364. sage/libs/symmetrica/all.py +101 -0
  365. sage/libs/symmetrica/kostka.pxi +168 -0
  366. sage/libs/symmetrica/part.pxi +193 -0
  367. sage/libs/symmetrica/plet.pxi +42 -0
  368. sage/libs/symmetrica/sab.pxi +196 -0
  369. sage/libs/symmetrica/sb.pxi +332 -0
  370. sage/libs/symmetrica/sc.pxi +192 -0
  371. sage/libs/symmetrica/schur.pxi +956 -0
  372. sage/libs/symmetrica/symmetrica.cp314t-win_amd64.pyd +0 -0
  373. sage/libs/symmetrica/symmetrica.pxi +1172 -0
  374. sage/libs/symmetrica/symmetrica.pyx +39 -0
  375. sage/monoids/all.py +13 -0
  376. sage/monoids/automatic_semigroup.py +1054 -0
  377. sage/monoids/free_abelian_monoid.py +315 -0
  378. sage/monoids/free_abelian_monoid_element.cp314t-win_amd64.pyd +0 -0
  379. sage/monoids/free_abelian_monoid_element.pxd +16 -0
  380. sage/monoids/free_abelian_monoid_element.pyx +397 -0
  381. sage/monoids/free_monoid.py +335 -0
  382. sage/monoids/free_monoid_element.py +431 -0
  383. sage/monoids/hecke_monoid.py +65 -0
  384. sage/monoids/string_monoid.py +817 -0
  385. sage/monoids/string_monoid_element.py +547 -0
  386. sage/monoids/string_ops.py +143 -0
  387. sage/monoids/trace_monoid.py +972 -0
  388. sage/rings/all__sagemath_combinat.py +2 -0
  389. sage/sat/all.py +4 -0
  390. sage/sat/boolean_polynomials.py +405 -0
  391. sage/sat/converters/__init__.py +6 -0
  392. sage/sat/converters/anf2cnf.py +14 -0
  393. sage/sat/converters/polybori.py +611 -0
  394. sage/sat/solvers/__init__.py +5 -0
  395. sage/sat/solvers/cryptominisat.py +287 -0
  396. sage/sat/solvers/dimacs.py +783 -0
  397. sage/sat/solvers/picosat.py +228 -0
  398. sage/sat/solvers/sat_lp.py +156 -0
  399. sage/sat/solvers/satsolver.cp314t-win_amd64.pyd +0 -0
  400. sage/sat/solvers/satsolver.pxd +3 -0
  401. sage/sat/solvers/satsolver.pyx +405 -0
@@ -0,0 +1,311 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs lrcalc_python
3
+ r"""
4
+ Littlewood-Richardson tableaux
5
+
6
+ A semistandard tableau is Littlewood-Richardson with respect to
7
+ the sequence of partitions `(\mu^{(1)},\ldots,\mu^{(k)})` if,
8
+ when restricted to each alphabet `\{|\mu^{(1)}|+\cdots+|\mu^{(i-1)}|+1,
9
+ \ldots, |\mu^{(1)}|+\cdots+|\mu^{(i)}|-1\}`, is Yamanouchi.
10
+
11
+ AUTHORS:
12
+
13
+ - Maria Gillespie, Jake Levinson, Anne Schilling (2016): initial version
14
+ """
15
+
16
+ #*****************************************************************************
17
+ # Copyright (C) 2016 Maria Gillespie
18
+ # Anne Schilling <anne at math.ucdavis.edu>
19
+ #
20
+ # Distributed under the terms of the GNU General Public License (GPL)
21
+ #
22
+ # This code is distributed in the hope that it will be useful,
23
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
24
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
25
+ # General Public License for more details.
26
+ #
27
+ # The full text of the GPL is available at:
28
+ #
29
+ # https://www.gnu.org/licenses/
30
+ #****************************************************************************
31
+
32
+ from itertools import zip_longest, accumulate
33
+
34
+ from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets
35
+ from sage.combinat.tableau import SemistandardTableau, SemistandardTableaux
36
+ from sage.combinat.partition import Partition, Partitions
37
+
38
+
39
+ class LittlewoodRichardsonTableau(SemistandardTableau):
40
+ r"""
41
+ A semistandard tableau is Littlewood-Richardson with respect to
42
+ the sequence of partitions `(\mu^{(1)}, \ldots, \mu^{(k)})` if,
43
+ when restricted to each alphabet `\{|\mu^{(1)}|+\cdots+|\mu^{(i-1)}|+1,
44
+ \ldots, |\mu^{(1)}|+\cdots+|\mu^{(i)}|-1\}`, is Yamanouchi.
45
+
46
+ INPUT:
47
+
48
+ - ``t`` -- Littlewood-Richardson tableau; the input is supposed to be
49
+ a list of lists specifying the rows of the tableau
50
+
51
+ EXAMPLES::
52
+
53
+ sage: from sage.combinat.lr_tableau import LittlewoodRichardsonTableau
54
+ sage: LittlewoodRichardsonTableau([[1,1,3],[2,3],[4]], [[2,1],[2,1]])
55
+ [[1, 1, 3], [2, 3], [4]]
56
+ """
57
+ @staticmethod
58
+ def __classcall_private__(cls, t, weight):
59
+ r"""
60
+ Implement the shortcut ``LittlewoodRichardsonTableau(t, weight)`` to
61
+ ``LittlewoodRichardsonTableaux(shape , weight)(t)``
62
+ where ``shape`` is the shape of the tableau.
63
+
64
+ TESTS::
65
+
66
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1],[[2,1],[2,1]])
67
+ sage: t = LR([[1, 1, 3], [2, 3], [4]])
68
+ sage: t.check()
69
+ sage: type(t)
70
+ <class 'sage.combinat.lr_tableau.LittlewoodRichardsonTableaux_with_category.element_class'>
71
+ sage: TestSuite(t).run()
72
+ sage: from sage.combinat.lr_tableau import LittlewoodRichardsonTableau
73
+ sage: LittlewoodRichardsonTableau([[1,1,3],[2,3],[4]], [[2,1],[2,1]])
74
+ [[1, 1, 3], [2, 3], [4]]
75
+ """
76
+ if isinstance(t, cls):
77
+ return t
78
+ tab = SemistandardTableau(list(t))
79
+ shape = tab.shape()
80
+ return LittlewoodRichardsonTableaux(shape, weight)(t)
81
+
82
+ def __init__(self, parent, t):
83
+ r"""
84
+ Initialize ``self``.
85
+
86
+ TESTS::
87
+
88
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1],[[2,1],[2,1]])
89
+ sage: t = LR([[1, 1, 3], [2, 3], [4]])
90
+ sage: from sage.combinat.lr_tableau import LittlewoodRichardsonTableau
91
+ sage: s = LittlewoodRichardsonTableau([[1,1,3],[2,3],[4]], [[2,1],[2,1]])
92
+ sage: s == t
93
+ True
94
+ sage: type(t)
95
+ <class 'sage.combinat.lr_tableau.LittlewoodRichardsonTableaux_with_category.element_class'>
96
+ sage: t.parent()
97
+ Littlewood-Richardson Tableaux of shape [3, 2, 1] and weight ([2, 1], [2, 1])
98
+ sage: TestSuite(t).run()
99
+ """
100
+ self._shape = parent._shape
101
+ self._weight = parent._weight
102
+ super().__init__(parent, list(t))
103
+
104
+ def check(self):
105
+ r"""
106
+ Check that ``self`` is a valid Littlewood-Richardson tableau.
107
+
108
+ EXAMPLES::
109
+
110
+ sage: from sage.combinat.lr_tableau import LittlewoodRichardsonTableau
111
+ sage: t = LittlewoodRichardsonTableau([[1,1,3],[2,3],[4]], [[2,1],[2,1]])
112
+ sage: t.check()
113
+
114
+ TESTS::
115
+
116
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1],[[2,1],[2,1]])
117
+ sage: LR([[1, 1, 2], [3, 3], [4]])
118
+ Traceback (most recent call last):
119
+ ...
120
+ ValueError: [[1, 1, 2], [3, 3], [4]] is not an element of
121
+ Littlewood-Richardson Tableaux of shape [3, 2, 1] and weight ([2, 1], [2, 1])
122
+ sage: LR([[1, 1, 2, 3], [3], [4]])
123
+ Traceback (most recent call last):
124
+ ...
125
+ ValueError: [[1, 1, 2, 3], [3], [4]] is not an element of
126
+ Littlewood-Richardson Tableaux of shape [3, 2, 1] and weight ([2, 1], [2, 1])
127
+ sage: LR([[1, 1, 3], [3, 3], [4]])
128
+ Traceback (most recent call last):
129
+ ...
130
+ ValueError: weight of the parent does not agree with the weight of the tableau
131
+ """
132
+ super().check()
133
+ if not [i for a in self.parent()._weight for i in a] == self.weight():
134
+ raise ValueError("weight of the parent does not agree "
135
+ "with the weight of the tableau")
136
+ if not self.shape() == self.parent()._shape:
137
+ raise ValueError("shape of the parent does not agree "
138
+ "with the shape of the tableau")
139
+
140
+
141
+ class LittlewoodRichardsonTableaux(SemistandardTableaux):
142
+ r"""
143
+ Littlewood-Richardson tableaux.
144
+
145
+ A semistandard tableau `t` is *Littlewood-Richardson* with respect to
146
+ the sequence of partitions `(\mu^{(1)}, \ldots, \mu^{(k)})` (called
147
+ the weight) if `t` is Yamanouchi when restricted to each alphabet
148
+ `\{|\mu^{(1)}| + \cdots + |\mu^{(i-1)}| + 1, \ldots,
149
+ |\mu^{(1)}| + \cdots + |\mu^{(i)}| - 1\}`.
150
+
151
+ INPUT:
152
+
153
+ - ``shape`` -- the shape of the Littlewood-Richardson tableaux
154
+ - ``weight`` -- the weight is a sequence of partitions
155
+
156
+ EXAMPLES::
157
+
158
+ sage: LittlewoodRichardsonTableaux([3,2,1],[[2,1],[2,1]])
159
+ Littlewood-Richardson Tableaux of shape [3, 2, 1] and weight ([2, 1], [2, 1])
160
+ """
161
+ @staticmethod
162
+ def __classcall_private__(cls, shape, weight):
163
+ r"""
164
+ Straighten arguments before unique representation.
165
+
166
+ TESTS::
167
+
168
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1],[[2,1],[2,1]])
169
+ sage: TestSuite(LR).run()
170
+ sage: LittlewoodRichardsonTableaux([3,2,1],[[2,1]])
171
+ Traceback (most recent call last):
172
+ ...
173
+ ValueError: the sizes of shapes and sequence of weights do not match
174
+ """
175
+ shape = Partition(shape)
176
+ weight = tuple(Partition(a) for a in weight)
177
+ if shape.size() != sum(a.size() for a in weight):
178
+ raise ValueError("the sizes of shapes and sequence of weights do not match")
179
+ return super().__classcall__(cls, shape, weight)
180
+
181
+ def __init__(self, shape, weight):
182
+ r"""
183
+ Initialize the parent class of Littlewood-Richardson tableaux.
184
+
185
+ INPUT:
186
+
187
+ - ``shape`` -- the shape of the Littlewood-Richardson tableaux
188
+ - ``weight`` -- the weight is a sequence of partitions
189
+
190
+ TESTS::
191
+
192
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1],[[2,1],[2,1]])
193
+ sage: TestSuite(LR).run()
194
+ """
195
+ self._shape = shape
196
+ self._weight = weight
197
+ self._heights = [a.length() for a in self._weight]
198
+ super().__init__(category=FiniteEnumeratedSets())
199
+
200
+ def _repr_(self):
201
+ """
202
+ TESTS::
203
+
204
+ sage: LittlewoodRichardsonTableaux([3,2,1],[[2,1],[2,1]])
205
+ Littlewood-Richardson Tableaux of shape [3, 2, 1] and weight ([2, 1], [2, 1])
206
+ """
207
+ return "Littlewood-Richardson Tableaux of shape %s and weight %s" % (self._shape, self._weight)
208
+
209
+ def __iter__(self):
210
+ r"""
211
+ TESTS::
212
+
213
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1], [[2,1],[2,1]])
214
+ sage: LR.list()
215
+ [[[1, 1, 3], [2, 3], [4]], [[1, 1, 3], [2, 4], [3]]]
216
+ """
217
+ from sage.libs.lrcalc.lrcalc import lrskew
218
+ if not self._weight:
219
+ yield self.element_class(self, [])
220
+ return
221
+
222
+ for nu in Partitions(self._shape.size() - self._weight[-1].size(),
223
+ outer=self._shape):
224
+ for s in lrskew(self._shape, nu, weight=self._weight[-1]):
225
+ for t in LittlewoodRichardsonTableaux(nu, self._weight[:-1]):
226
+ shift = sum(a.length() for a in self._weight[:-1])
227
+ yield self.element_class(self, _tableau_join(t, s, shift=shift))
228
+
229
+ def __contains__(self, t):
230
+ """
231
+ Check if ``t`` is contained in ``self``.
232
+
233
+ TESTS::
234
+
235
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1], [[2,1],[2,1]])
236
+ sage: SST = SemistandardTableaux([3,2,1], [2,1,2,1])
237
+ sage: [t for t in SST if t in LR]
238
+ [[[1, 1, 3], [2, 3], [4]], [[1, 1, 3], [2, 4], [3]]]
239
+ sage: [t for t in SST if t in LR] == LR.list()
240
+ True
241
+
242
+ sage: LR = LittlewoodRichardsonTableaux([3,2,1], [[2,1],[2,1]])
243
+ sage: T = [[1,1,3], [2,3], [4]]
244
+ sage: T in LR
245
+ True
246
+ """
247
+ return (SemistandardTableaux.__contains__(self, t)
248
+ and is_littlewood_richardson(t, self._heights))
249
+
250
+ Element = LittlewoodRichardsonTableau
251
+
252
+ #### common or global functions related to LR tableaux
253
+
254
+
255
+ def is_littlewood_richardson(t, heights):
256
+ r"""
257
+ Return whether semistandard tableau ``t`` is Littleword-Richardson
258
+ with respect to ``heights``.
259
+
260
+ A tableau is Littlewood-Richardson with respect to ``heights`` given
261
+ by `(h_1, h_2, \ldots)` if each subtableau with respect to the
262
+ alphabets `\{1, 2, \ldots, h_1\}`, `\{h_1+1, \ldots, h_1+h_2\}`,
263
+ etc. is Yamanouchi.
264
+
265
+ EXAMPLES::
266
+
267
+ sage: from sage.combinat.lr_tableau import is_littlewood_richardson
268
+ sage: t = Tableau([[1,1,2,3,4],[2,3,3],[3]])
269
+ sage: is_littlewood_richardson(t,[2,2])
270
+ False
271
+ sage: t = Tableau([[1,1,3],[2,3],[4,4]])
272
+ sage: is_littlewood_richardson(t,[2,2])
273
+ True
274
+ sage: t = Tableau([[7],[8]])
275
+ sage: is_littlewood_richardson(t,[2,3,3])
276
+ False
277
+ sage: is_littlewood_richardson([[2],[3]],[3,3])
278
+ False
279
+ """
280
+ from sage.combinat.words.word import Word
281
+ try:
282
+ w = t.to_word()
283
+ except AttributeError: # Not an instance of Tableau
284
+ w = sum(reversed(t), [])
285
+
286
+ partial = list(accumulate(heights, initial=0))
287
+ for i in range(len(heights)):
288
+ subword = Word([j for j in w if partial[i]+1 <= j <= partial[i+1]],
289
+ alphabet=list(range(partial[i]+1, partial[i+1]+1)))
290
+ if not subword.is_yamanouchi():
291
+ return False
292
+ return True
293
+
294
+
295
+ def _tableau_join(t1, t2, shift=0):
296
+ """
297
+ Join semistandard tableau ``t1`` with semistandard tableau ``t2``
298
+ shifted by ``shift``.
299
+
300
+ Concatenate the rows of ``t1`` and ``t2``, dropping any ``None``'s
301
+ from ``t2``. This method is intended for the case when the outer
302
+ shape of ``t1`` is equal to the inner shape of ``t2``.
303
+
304
+ EXAMPLES::
305
+
306
+ sage: from sage.combinat.lr_tableau import _tableau_join
307
+ sage: _tableau_join([[1,2]],[[None,None,2],[3]],shift=5)
308
+ [[1, 2, 7], [8]]
309
+ """
310
+ return [list(row1) + [e2 + shift for e2 in row2 if e2 is not None]
311
+ for row1, row2 in zip_longest(t1, t2, fillvalue=[])]
@@ -0,0 +1,24 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ r"""
3
+ Combinatorics on matrices
4
+
5
+ - :ref:`sage.combinat.matrices.dancing_links`
6
+ - :ref:`sage.combinat.matrices.dlxcpp`
7
+ - :ref:`sage.combinat.matrices.hadamard_matrix`
8
+ - :ref:`sage.combinat.matrices.latin`
9
+ """
10
+ # install the docstring of this module to the containing package
11
+ from sage.misc.namespace_package import install_doc
12
+ install_doc(__package__, __doc__)
13
+
14
+ from sage.combinat.matrices.all__sagemath_categories import *
15
+
16
+ from sage.misc.lazy_import import lazy_import
17
+
18
+ lazy_import('sage.combinat.matrices.latin',
19
+ ['LatinSquare', 'LatinSquare_generator'])
20
+ lazy_import('sage.combinat.matrices.hadamard_matrix',
21
+ ['hadamard_matrix', 'hadamard_matrix_www'])
22
+
23
+ del install_doc
24
+ del lazy_import