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,59 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ r"""
3
+ Combinatorics on words
4
+
5
+ **Main modules and their methods:**
6
+
7
+ - :ref:`sage.combinat.words.abstract_word`
8
+ - :ref:`sage.combinat.words.finite_word`
9
+ - :ref:`sage.combinat.words.infinite_word`
10
+ - :ref:`sage.combinat.words.alphabet`
11
+ - :ref:`sage.combinat.words.words`
12
+ - :ref:`sage.combinat.words.paths`
13
+ - :ref:`sage.combinat.words.morphism`
14
+ - :ref:`sage.combinat.words.shuffle_product`
15
+ - :ref:`sage.combinat.words.suffix_trees`
16
+
17
+ Main classes and functions meant to be used by the user:
18
+
19
+ :func:`~sage.combinat.words.word.Word`,
20
+ :class:`~sage.combinat.words.words.FiniteWords`,
21
+ :class:`~sage.combinat.words.words.InfiniteWords`,
22
+ :func:`~sage.combinat.words.words.Words`,
23
+ :func:`~sage.combinat.words.alphabet.Alphabet`,
24
+ :class:`~sage.combinat.words.morphism.WordMorphism`,
25
+ :class:`~sage.combinat.words.paths.WordPaths`.
26
+
27
+ A list of common words can be accessed through ``words.<tab>`` and are listed in
28
+ the :ref:`words catalog <sage.combinat.words.word_generators>`.
29
+
30
+ **Internal representation of words:**
31
+
32
+ - :ref:`sage.combinat.words.word`
33
+ - :ref:`sage.combinat.words.word_char`
34
+ - :ref:`sage.combinat.words.word_datatypes`
35
+ - :ref:`sage.combinat.words.word_infinite_datatypes`
36
+
37
+ **Options:**
38
+
39
+ - :ref:`sage.combinat.words.word_options`
40
+
41
+ See :func:`~sage.combinat.words.word_options.WordOptions`.
42
+ """
43
+ # install the docstring of this module to the containing package
44
+ from sage.misc.namespace_package import install_doc
45
+ install_doc(__package__, __doc__)
46
+
47
+ from sage.misc.lazy_import import lazy_import
48
+
49
+ from sage.combinat.words.alphabet import Alphabet, build_alphabet
50
+ from sage.combinat.words.morphism import WordMorphism
51
+ lazy_import('sage.combinat.words.paths', 'WordPaths')
52
+ from sage.combinat.words.word import Word
53
+ from sage.combinat.words.word_options import WordOptions
54
+ from sage.combinat.words.word_generators import words
55
+ from sage.combinat.words.words import Words, FiniteWords, InfiniteWords
56
+ from sage.combinat.words.lyndon_word import LyndonWord, LyndonWords, StandardBracketedLyndonWords
57
+
58
+ del install_doc
59
+ del lazy_import
@@ -0,0 +1,268 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ r"""
3
+ Alphabet
4
+
5
+ AUTHORS:
6
+
7
+ - Franco Saliola (2008-12-17) : merged into sage
8
+ - Vincent Delecroix and Stepan Starosta (2012): remove classes for alphabet and
9
+ use other Sage classes otherwise (TotallyOrderedFiniteSet,
10
+ FiniteEnumeratedSet, ...). More shortcut to standard alphabets.
11
+
12
+ EXAMPLES::
13
+
14
+ sage: build_alphabet("ab")
15
+ {'a', 'b'}
16
+ sage: build_alphabet([0,1,2])
17
+ {0, 1, 2}
18
+ sage: build_alphabet(name='PP')
19
+ Positive integers
20
+ sage: build_alphabet(name='NN')
21
+ Non negative integers
22
+ sage: build_alphabet(name='lower')
23
+ {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}
24
+ """
25
+ # ****************************************************************************
26
+ # Copyright (C) 2008 Franco Saliola <saliola@gmail.com>
27
+ #
28
+ # This program is free software: you can redistribute it and/or modify
29
+ # it under the terms of the GNU General Public License as published by
30
+ # the Free Software Foundation, either version 2 of the License, or
31
+ # (at your option) any later version.
32
+ # http://www.gnu.org/licenses/
33
+ # ****************************************************************************
34
+
35
+ import collections.abc
36
+
37
+ from sage.categories.sets_cat import Sets
38
+ from sage.rings.infinity import Infinity
39
+ from sage.rings.integer import Integer
40
+ from sage.sets.family import Family
41
+ from sage.sets.non_negative_integers import NonNegativeIntegers
42
+ from sage.sets.totally_ordered_finite_set import TotallyOrderedFiniteSet
43
+
44
+
45
+ set_of_letters = {
46
+ 'lower' : "abcdefghijklmnopqrstuvwxyz",
47
+ 'upper' : "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
48
+ 'space' : " ",
49
+ 'underscore' : "_",
50
+ 'punctuation' : " ,.;:!?",
51
+ 'printable' : "!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",
52
+ 'binary' : "01",
53
+ 'octal' : "01234567",
54
+ 'decimal' : "0123456789",
55
+ 'hexadecimal' : "0123456789abcdef",
56
+ 'radix64' : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"}
57
+
58
+
59
+ def build_alphabet(data=None, names=None, name=None):
60
+ r"""
61
+ Return an object representing an ordered alphabet.
62
+
63
+ INPUT:
64
+
65
+ - ``data`` -- the letters of the alphabet; it can be:
66
+
67
+ * a list/tuple/iterable of letters; the iterable may be infinite
68
+ * an integer `n` to represent `\{1, \ldots, n\}`, or infinity to
69
+ represent `\NN`
70
+
71
+ - ``names`` -- (optional) a list for the letters (i.e. variable names) or
72
+ a string for prefix for all letters; if given a list, it must have the
73
+ same cardinality as the set represented by ``data``
74
+
75
+ - ``name`` -- (optional) if given, then return a named set and can be
76
+ equal to : ``'lower', 'upper', 'space',
77
+ 'underscore', 'punctuation', 'printable', 'binary', 'octal', 'decimal',
78
+ 'hexadecimal', 'radix64'``.
79
+
80
+ You can use many of them at once, separated by spaces : ``'lower
81
+ punctuation'`` represents the union of the two alphabets ``'lower'`` and
82
+ ``'punctuation'``.
83
+
84
+ Alternatively, ``name`` can be set to ``'positive integers'`` (or
85
+ ``'PP'``) or ``'natural numbers'`` (or ``'NN'``).
86
+
87
+ ``name`` cannot be combined with ``data``.
88
+
89
+ EXAMPLES:
90
+
91
+ If the argument is a Set, it just returns it::
92
+
93
+ sage: build_alphabet(ZZ) is ZZ
94
+ True
95
+ sage: F = FiniteEnumeratedSet('abc')
96
+ sage: build_alphabet(F) is F
97
+ True
98
+
99
+ If a list, tuple or string is provided, then it builds a proper Sage class
100
+ (:class:`~sage.sets.totally_ordered_finite_set.TotallyOrderedFiniteSet`)::
101
+
102
+ sage: build_alphabet([0,1,2])
103
+ {0, 1, 2}
104
+ sage: F = build_alphabet('abc'); F
105
+ {'a', 'b', 'c'}
106
+ sage: print(type(F).__name__)
107
+ TotallyOrderedFiniteSet_with_category
108
+
109
+ If an integer and a set is given, then it constructs a
110
+ :class:`~sage.sets.totally_ordered_finite_set.TotallyOrderedFiniteSet`::
111
+
112
+ sage: build_alphabet(3, ['a','b','c'])
113
+ {'a', 'b', 'c'}
114
+
115
+ If an integer and a string is given, then it considers that string as a
116
+ prefix::
117
+
118
+ sage: build_alphabet(3, 'x')
119
+ {'x0', 'x1', 'x2'}
120
+
121
+ If no data is provided, ``name`` may be a string which describe an alphabet.
122
+ The available names decompose into two families. The first one are 'positive
123
+ integers', 'PP', 'natural numbers' or 'NN' which refer to standard set of
124
+ numbers::
125
+
126
+ sage: build_alphabet(name="positive integers")
127
+ Positive integers
128
+ sage: build_alphabet(name='PP')
129
+ Positive integers
130
+ sage: build_alphabet(name="natural numbers")
131
+ Non negative integers
132
+ sage: build_alphabet(name="NN")
133
+ Non negative integers
134
+
135
+ The other families for the option ``name`` are among 'lower', 'upper',
136
+ 'space', 'underscore', 'punctuation', 'printable', 'binary', 'octal',
137
+ 'decimal', 'hexadecimal', 'radix64' which refer to standard set of
138
+ characters. Theses names may be combined by separating them by a space::
139
+
140
+ sage: build_alphabet(name='lower')
141
+ {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'}
142
+ sage: build_alphabet(name='hexadecimal')
143
+ {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}
144
+ sage: build_alphabet(name="decimal punctuation")
145
+ {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' ', ',', '.', ';', ':', '!', '?'}
146
+
147
+ In the case the alphabet is built from a list or a tuple, the order on the
148
+ alphabet is given by the elements themselves::
149
+
150
+ sage: A = build_alphabet([0,2,1])
151
+ sage: A(0) < A(2)
152
+ True
153
+ sage: A(2) < A(1)
154
+ False
155
+
156
+ If a different order is needed, you may use
157
+ :class:`~sage.sets.totally_ordered_finite_set.TotallyOrderedFiniteSet` and
158
+ set the option ``facade`` to ``False``. That way, the comparison fits the
159
+ order of the input::
160
+
161
+ sage: A = TotallyOrderedFiniteSet([4,2,6,1], facade=False)
162
+ sage: A(4) < A(2)
163
+ True
164
+ sage: A(1) < A(6)
165
+ False
166
+
167
+ Be careful, the element of the set in the last example are no more
168
+ integers and do not compare equal with integers::
169
+
170
+ sage: type(A.an_element())
171
+ <class 'sage.sets.totally_ordered_finite_set.TotallyOrderedFiniteSet_with_category.element_class'>
172
+ sage: A(1) == 1
173
+ False
174
+ sage: 1 == A(1)
175
+ False
176
+
177
+ We give an example of an infinite alphabet indexed by the positive
178
+ integers and the prime numbers::
179
+
180
+ sage: build_alphabet(oo, 'x')
181
+ Lazy family (x(i))_{i in Non negative integers}
182
+ sage: build_alphabet(Primes(), 'y')
183
+ Lazy family (y(i))_{i in Set of all prime numbers: 2, 3, 5, 7, ...}
184
+
185
+ TESTS::
186
+
187
+ sage: Alphabet(3, name='punctuation')
188
+ Traceback (most recent call last):
189
+ ...
190
+ ValueError: name cannot be specified with any other argument
191
+ sage: Alphabet(8, ['e']*10)
192
+ Traceback (most recent call last):
193
+ ...
194
+ ValueError: invalid value for names
195
+ sage: Alphabet(8, x) # needs sage.symbolic
196
+ Traceback (most recent call last):
197
+ ...
198
+ ValueError: invalid value for names
199
+ sage: Alphabet(name=x, names='punctuation') # needs sage.symbolic
200
+ Traceback (most recent call last):
201
+ ...
202
+ ValueError: name cannot be specified with any other argument
203
+ sage: Alphabet(x) # needs sage.symbolic
204
+ Traceback (most recent call last):
205
+ ...
206
+ ValueError: unable to construct an alphabet from the given parameters
207
+ """
208
+ # If both 'names' and 'data' are defined
209
+ if name is not None and (data is not None or names is not None):
210
+ raise ValueError("name cannot be specified with any other argument")
211
+
212
+ # Swap arguments if we need to try and make sure we have "good" user input
213
+ if isinstance(names, (int, Integer)) or names == Infinity \
214
+ or (data is None and names is not None):
215
+ data, names = names, data
216
+
217
+ # data is an integer
218
+ if isinstance(data, (int, Integer)):
219
+ if names is None:
220
+ from sage.sets.integer_range import IntegerRange
221
+ return IntegerRange(Integer(data))
222
+ if isinstance(names, str):
223
+ return TotallyOrderedFiniteSet([names + '%d' % i for i in range(data)])
224
+ if isinstance(names, collections.abc.Sequence) and len(names) == data:
225
+ return TotallyOrderedFiniteSet(names)
226
+ raise ValueError("invalid value for names")
227
+
228
+ if data == Infinity:
229
+ data = NonNegativeIntegers()
230
+
231
+ # data is an iterable
232
+ if isinstance(data, (tuple, list, str, range)) or data in Sets():
233
+ if names is not None:
234
+ if not isinstance(names, str):
235
+ raise TypeError("names must be a string when data is a set")
236
+ return Family(data, lambda i: names + str(i), name=names)
237
+ if data in Sets():
238
+ return data
239
+ return TotallyOrderedFiniteSet(data)
240
+
241
+ # Alphabet defined from a name
242
+ if name is not None:
243
+ if not isinstance(name, str):
244
+ raise TypeError("name must be a string")
245
+ if name == "positive integers" or name == "PP":
246
+ from sage.sets.positive_integers import PositiveIntegers
247
+ return PositiveIntegers()
248
+ if name == "natural numbers" or name == "NN":
249
+ return NonNegativeIntegers()
250
+
251
+ data = []
252
+ for alpha_name in name.split(' '):
253
+ try:
254
+ data.extend(list(set_of_letters[alpha_name]))
255
+ except KeyError:
256
+ raise TypeError("name is not recognized")
257
+ return TotallyOrderedFiniteSet(data)
258
+
259
+ # Alphabet(**nothing**)
260
+ if data is None: # name is also None
261
+ from sage.sets.pythonclass import Set_PythonType
262
+ return Set_PythonType(object)
263
+
264
+ raise ValueError("unable to construct an alphabet from the given parameters")
265
+
266
+
267
+ # TODO: should it be deprecated as it is no more a class ?
268
+ Alphabet = build_alphabet