passagemath-combinat 10.6.42__cp314-cp314-musllinux_1_2_x86_64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (400) hide show
  1. passagemath_combinat/__init__.py +3 -0
  2. passagemath_combinat-10.6.42.dist-info/METADATA +160 -0
  3. passagemath_combinat-10.6.42.dist-info/RECORD +400 -0
  4. passagemath_combinat-10.6.42.dist-info/WHEEL +5 -0
  5. passagemath_combinat-10.6.42.dist-info/top_level.txt +3 -0
  6. passagemath_combinat.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
  7. passagemath_combinat.libs/libsymmetrica-81fe8739.so.3.0.0 +0 -0
  8. sage/algebras/affine_nil_temperley_lieb.py +263 -0
  9. sage/algebras/all.py +24 -0
  10. sage/algebras/all__sagemath_combinat.py +35 -0
  11. sage/algebras/askey_wilson.py +935 -0
  12. sage/algebras/associated_graded.py +345 -0
  13. sage/algebras/cellular_basis.py +350 -0
  14. sage/algebras/cluster_algebra.py +2766 -0
  15. sage/algebras/down_up_algebra.py +860 -0
  16. sage/algebras/free_algebra.py +1698 -0
  17. sage/algebras/free_algebra_element.py +345 -0
  18. sage/algebras/free_algebra_quotient.py +405 -0
  19. sage/algebras/free_algebra_quotient_element.py +295 -0
  20. sage/algebras/free_zinbiel_algebra.py +885 -0
  21. sage/algebras/hall_algebra.py +783 -0
  22. sage/algebras/hecke_algebras/all.py +4 -0
  23. sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
  24. sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
  25. sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
  26. sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
  27. sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
  28. sage/algebras/iwahori_hecke_algebra.py +3095 -0
  29. sage/algebras/jordan_algebra.py +1773 -0
  30. sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
  31. sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
  32. sage/algebras/lie_conformal_algebras/all.py +18 -0
  33. sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
  34. sage/algebras/lie_conformal_algebras/examples.py +43 -0
  35. sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
  36. sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
  37. sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
  38. sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
  39. sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
  40. sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
  41. sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
  42. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
  43. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
  44. sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
  45. sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
  46. sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
  47. sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
  48. sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
  49. sage/algebras/nil_coxeter_algebra.py +191 -0
  50. sage/algebras/q_commuting_polynomials.py +673 -0
  51. sage/algebras/q_system.py +608 -0
  52. sage/algebras/quantum_clifford.py +959 -0
  53. sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
  54. sage/algebras/quantum_groups/all.py +9 -0
  55. sage/algebras/quantum_groups/fock_space.py +2219 -0
  56. sage/algebras/quantum_groups/q_numbers.py +207 -0
  57. sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
  58. sage/algebras/quantum_groups/representations.py +591 -0
  59. sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
  60. sage/algebras/quantum_oscillator.py +623 -0
  61. sage/algebras/quaternion_algebra.py +20 -0
  62. sage/algebras/quaternion_algebra_element.py +55 -0
  63. sage/algebras/rational_cherednik_algebra.py +525 -0
  64. sage/algebras/schur_algebra.py +670 -0
  65. sage/algebras/shuffle_algebra.py +1011 -0
  66. sage/algebras/splitting_algebra.py +779 -0
  67. sage/algebras/tensor_algebra.py +709 -0
  68. sage/algebras/yangian.py +1082 -0
  69. sage/algebras/yokonuma_hecke_algebra.py +1018 -0
  70. sage/all__sagemath_combinat.py +35 -0
  71. sage/combinat/SJT.py +255 -0
  72. sage/combinat/affine_permutation.py +2405 -0
  73. sage/combinat/algebraic_combinatorics.py +55 -0
  74. sage/combinat/all.py +53 -0
  75. sage/combinat/all__sagemath_combinat.py +195 -0
  76. sage/combinat/alternating_sign_matrix.py +2063 -0
  77. sage/combinat/baxter_permutations.py +346 -0
  78. sage/combinat/bijectionist.py +3220 -0
  79. sage/combinat/binary_recurrence_sequences.py +1180 -0
  80. sage/combinat/blob_algebra.py +685 -0
  81. sage/combinat/catalog_partitions.py +27 -0
  82. sage/combinat/chas/all.py +23 -0
  83. sage/combinat/chas/fsym.py +1180 -0
  84. sage/combinat/chas/wqsym.py +2601 -0
  85. sage/combinat/cluster_complex.py +326 -0
  86. sage/combinat/colored_permutations.py +2039 -0
  87. sage/combinat/colored_permutations_representations.py +964 -0
  88. sage/combinat/composition_signed.py +142 -0
  89. sage/combinat/composition_tableau.py +855 -0
  90. sage/combinat/constellation.py +1729 -0
  91. sage/combinat/core.py +751 -0
  92. sage/combinat/counting.py +12 -0
  93. sage/combinat/crystals/affine.py +742 -0
  94. sage/combinat/crystals/affine_factorization.py +518 -0
  95. sage/combinat/crystals/affinization.py +331 -0
  96. sage/combinat/crystals/alcove_path.py +2013 -0
  97. sage/combinat/crystals/all.py +22 -0
  98. sage/combinat/crystals/bkk_crystals.py +141 -0
  99. sage/combinat/crystals/catalog.py +115 -0
  100. sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
  101. sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
  102. sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
  103. sage/combinat/crystals/crystals.py +257 -0
  104. sage/combinat/crystals/direct_sum.py +260 -0
  105. sage/combinat/crystals/elementary_crystals.py +1251 -0
  106. sage/combinat/crystals/fast_crystals.py +441 -0
  107. sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
  108. sage/combinat/crystals/generalized_young_walls.py +1076 -0
  109. sage/combinat/crystals/highest_weight_crystals.py +436 -0
  110. sage/combinat/crystals/induced_structure.py +695 -0
  111. sage/combinat/crystals/infinity_crystals.py +730 -0
  112. sage/combinat/crystals/kac_modules.py +863 -0
  113. sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
  114. sage/combinat/crystals/kyoto_path_model.py +497 -0
  115. sage/combinat/crystals/letters.cpython-314-x86_64-linux-musl.so +0 -0
  116. sage/combinat/crystals/letters.pxd +79 -0
  117. sage/combinat/crystals/letters.pyx +3056 -0
  118. sage/combinat/crystals/littelmann_path.py +1518 -0
  119. sage/combinat/crystals/monomial_crystals.py +1262 -0
  120. sage/combinat/crystals/multisegments.py +462 -0
  121. sage/combinat/crystals/mv_polytopes.py +467 -0
  122. sage/combinat/crystals/pbw_crystal.py +511 -0
  123. sage/combinat/crystals/pbw_datum.cpython-314-x86_64-linux-musl.so +0 -0
  124. sage/combinat/crystals/pbw_datum.pxd +4 -0
  125. sage/combinat/crystals/pbw_datum.pyx +487 -0
  126. sage/combinat/crystals/polyhedral_realization.py +372 -0
  127. sage/combinat/crystals/spins.cpython-314-x86_64-linux-musl.so +0 -0
  128. sage/combinat/crystals/spins.pxd +21 -0
  129. sage/combinat/crystals/spins.pyx +756 -0
  130. sage/combinat/crystals/star_crystal.py +290 -0
  131. sage/combinat/crystals/subcrystal.py +464 -0
  132. sage/combinat/crystals/tensor_product.py +1177 -0
  133. sage/combinat/crystals/tensor_product_element.cpython-314-x86_64-linux-musl.so +0 -0
  134. sage/combinat/crystals/tensor_product_element.pxd +35 -0
  135. sage/combinat/crystals/tensor_product_element.pyx +1870 -0
  136. sage/combinat/crystals/virtual_crystal.py +420 -0
  137. sage/combinat/cyclic_sieving_phenomenon.py +204 -0
  138. sage/combinat/debruijn_sequence.cpython-314-x86_64-linux-musl.so +0 -0
  139. sage/combinat/debruijn_sequence.pyx +355 -0
  140. sage/combinat/decorated_permutation.py +270 -0
  141. sage/combinat/degree_sequences.cpython-314-x86_64-linux-musl.so +0 -0
  142. sage/combinat/degree_sequences.pyx +588 -0
  143. sage/combinat/derangements.py +527 -0
  144. sage/combinat/descent_algebra.py +1008 -0
  145. sage/combinat/diagram.py +1551 -0
  146. sage/combinat/diagram_algebras.py +5886 -0
  147. sage/combinat/dyck_word.py +4349 -0
  148. sage/combinat/e_one_star.py +1623 -0
  149. sage/combinat/enumerated_sets.py +123 -0
  150. sage/combinat/expnums.cpython-314-x86_64-linux-musl.so +0 -0
  151. sage/combinat/expnums.pyx +148 -0
  152. sage/combinat/fast_vector_partitions.cpython-314-x86_64-linux-musl.so +0 -0
  153. sage/combinat/fast_vector_partitions.pyx +346 -0
  154. sage/combinat/fqsym.py +1977 -0
  155. sage/combinat/free_dendriform_algebra.py +954 -0
  156. sage/combinat/free_prelie_algebra.py +1141 -0
  157. sage/combinat/fully_commutative_elements.py +1077 -0
  158. sage/combinat/fully_packed_loop.py +1523 -0
  159. sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
  160. sage/combinat/gray_codes.py +311 -0
  161. sage/combinat/grossman_larson_algebras.py +667 -0
  162. sage/combinat/growth.py +4352 -0
  163. sage/combinat/hall_polynomial.py +188 -0
  164. sage/combinat/hillman_grassl.py +866 -0
  165. sage/combinat/integer_matrices.py +329 -0
  166. sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
  167. sage/combinat/k_tableau.py +4564 -0
  168. sage/combinat/kazhdan_lusztig.py +215 -0
  169. sage/combinat/key_polynomial.py +885 -0
  170. sage/combinat/knutson_tao_puzzles.py +2286 -0
  171. sage/combinat/lr_tableau.py +311 -0
  172. sage/combinat/matrices/all.py +24 -0
  173. sage/combinat/matrices/hadamard_matrix.py +3790 -0
  174. sage/combinat/matrices/latin.py +2912 -0
  175. sage/combinat/misc.py +401 -0
  176. sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
  177. sage/combinat/ncsf_qsym/all.py +21 -0
  178. sage/combinat/ncsf_qsym/combinatorics.py +317 -0
  179. sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
  180. sage/combinat/ncsf_qsym/ncsf.py +5637 -0
  181. sage/combinat/ncsf_qsym/qsym.py +4053 -0
  182. sage/combinat/ncsf_qsym/tutorial.py +447 -0
  183. sage/combinat/ncsym/all.py +21 -0
  184. sage/combinat/ncsym/bases.py +855 -0
  185. sage/combinat/ncsym/dual.py +593 -0
  186. sage/combinat/ncsym/ncsym.py +2076 -0
  187. sage/combinat/necklace.py +551 -0
  188. sage/combinat/non_decreasing_parking_function.py +634 -0
  189. sage/combinat/nu_dyck_word.py +1474 -0
  190. sage/combinat/output.py +861 -0
  191. sage/combinat/parallelogram_polyomino.py +4326 -0
  192. sage/combinat/parking_functions.py +1602 -0
  193. sage/combinat/partition_algebra.py +1998 -0
  194. sage/combinat/partition_kleshchev.py +1982 -0
  195. sage/combinat/partition_shifting_algebras.py +584 -0
  196. sage/combinat/partition_tuple.py +3114 -0
  197. sage/combinat/path_tableaux/all.py +13 -0
  198. sage/combinat/path_tableaux/catalog.py +29 -0
  199. sage/combinat/path_tableaux/dyck_path.py +380 -0
  200. sage/combinat/path_tableaux/frieze.py +476 -0
  201. sage/combinat/path_tableaux/path_tableau.py +728 -0
  202. sage/combinat/path_tableaux/semistandard.py +510 -0
  203. sage/combinat/perfect_matching.py +779 -0
  204. sage/combinat/plane_partition.py +3300 -0
  205. sage/combinat/q_bernoulli.cpython-314-x86_64-linux-musl.so +0 -0
  206. sage/combinat/q_bernoulli.pyx +128 -0
  207. sage/combinat/quickref.py +81 -0
  208. sage/combinat/recognizable_series.py +2051 -0
  209. sage/combinat/regular_sequence.py +4316 -0
  210. sage/combinat/regular_sequence_bounded.py +543 -0
  211. sage/combinat/restricted_growth.py +81 -0
  212. sage/combinat/ribbon.py +20 -0
  213. sage/combinat/ribbon_shaped_tableau.py +489 -0
  214. sage/combinat/ribbon_tableau.py +1180 -0
  215. sage/combinat/rigged_configurations/all.py +46 -0
  216. sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
  217. sage/combinat/rigged_configurations/bij_infinity.py +370 -0
  218. sage/combinat/rigged_configurations/bij_type_A.py +163 -0
  219. sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
  220. sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
  221. sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
  222. sage/combinat/rigged_configurations/bij_type_B.py +900 -0
  223. sage/combinat/rigged_configurations/bij_type_C.py +267 -0
  224. sage/combinat/rigged_configurations/bij_type_D.py +771 -0
  225. sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
  226. sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
  227. sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
  228. sage/combinat/rigged_configurations/bijection.py +143 -0
  229. sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
  230. sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
  231. sage/combinat/rigged_configurations/rc_crystal.py +461 -0
  232. sage/combinat/rigged_configurations/rc_infinity.py +540 -0
  233. sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
  234. sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
  235. sage/combinat/rigged_configurations/rigged_partition.cpython-314-x86_64-linux-musl.so +0 -0
  236. sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
  237. sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
  238. sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
  239. sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
  240. sage/combinat/rsk.py +3438 -0
  241. sage/combinat/schubert_polynomial.py +508 -0
  242. sage/combinat/set_partition.py +3318 -0
  243. sage/combinat/set_partition_iterator.cpython-314-x86_64-linux-musl.so +0 -0
  244. sage/combinat/set_partition_iterator.pyx +136 -0
  245. sage/combinat/set_partition_ordered.py +1590 -0
  246. sage/combinat/sf/abreu_nigro.py +346 -0
  247. sage/combinat/sf/all.py +52 -0
  248. sage/combinat/sf/character.py +576 -0
  249. sage/combinat/sf/classical.py +319 -0
  250. sage/combinat/sf/dual.py +996 -0
  251. sage/combinat/sf/elementary.py +549 -0
  252. sage/combinat/sf/hall_littlewood.py +1028 -0
  253. sage/combinat/sf/hecke.py +336 -0
  254. sage/combinat/sf/homogeneous.py +464 -0
  255. sage/combinat/sf/jack.py +1428 -0
  256. sage/combinat/sf/k_dual.py +1458 -0
  257. sage/combinat/sf/kfpoly.py +447 -0
  258. sage/combinat/sf/llt.py +789 -0
  259. sage/combinat/sf/macdonald.py +2019 -0
  260. sage/combinat/sf/monomial.py +525 -0
  261. sage/combinat/sf/multiplicative.py +113 -0
  262. sage/combinat/sf/new_kschur.py +1786 -0
  263. sage/combinat/sf/ns_macdonald.py +964 -0
  264. sage/combinat/sf/orthogonal.py +246 -0
  265. sage/combinat/sf/orthotriang.py +355 -0
  266. sage/combinat/sf/powersum.py +963 -0
  267. sage/combinat/sf/schur.py +880 -0
  268. sage/combinat/sf/sf.py +1653 -0
  269. sage/combinat/sf/sfa.py +7053 -0
  270. sage/combinat/sf/symplectic.py +253 -0
  271. sage/combinat/sf/witt.py +721 -0
  272. sage/combinat/shifted_primed_tableau.py +2735 -0
  273. sage/combinat/shuffle.py +830 -0
  274. sage/combinat/sidon_sets.py +146 -0
  275. sage/combinat/similarity_class_type.py +1721 -0
  276. sage/combinat/sine_gordon.py +618 -0
  277. sage/combinat/six_vertex_model.py +784 -0
  278. sage/combinat/skew_partition.py +2053 -0
  279. sage/combinat/skew_tableau.py +2989 -0
  280. sage/combinat/sloane_functions.py +8935 -0
  281. sage/combinat/specht_module.py +1403 -0
  282. sage/combinat/species/all.py +48 -0
  283. sage/combinat/species/characteristic_species.py +321 -0
  284. sage/combinat/species/composition_species.py +273 -0
  285. sage/combinat/species/cycle_species.py +284 -0
  286. sage/combinat/species/empty_species.py +155 -0
  287. sage/combinat/species/functorial_composition_species.py +148 -0
  288. sage/combinat/species/generating_series.py +673 -0
  289. sage/combinat/species/library.py +148 -0
  290. sage/combinat/species/linear_order_species.py +169 -0
  291. sage/combinat/species/misc.py +83 -0
  292. sage/combinat/species/partition_species.py +290 -0
  293. sage/combinat/species/permutation_species.py +268 -0
  294. sage/combinat/species/product_species.py +423 -0
  295. sage/combinat/species/recursive_species.py +476 -0
  296. sage/combinat/species/set_species.py +192 -0
  297. sage/combinat/species/species.py +820 -0
  298. sage/combinat/species/structure.py +539 -0
  299. sage/combinat/species/subset_species.py +243 -0
  300. sage/combinat/species/sum_species.py +225 -0
  301. sage/combinat/subword.py +564 -0
  302. sage/combinat/subword_complex.py +2122 -0
  303. sage/combinat/subword_complex_c.cpython-314-x86_64-linux-musl.so +0 -0
  304. sage/combinat/subword_complex_c.pyx +119 -0
  305. sage/combinat/super_tableau.py +821 -0
  306. sage/combinat/superpartition.py +1154 -0
  307. sage/combinat/symmetric_group_algebra.py +3774 -0
  308. sage/combinat/symmetric_group_representations.py +1830 -0
  309. sage/combinat/t_sequences.py +877 -0
  310. sage/combinat/tableau.py +9506 -0
  311. sage/combinat/tableau_residues.py +860 -0
  312. sage/combinat/tableau_tuple.py +5353 -0
  313. sage/combinat/tiling.py +2432 -0
  314. sage/combinat/triangles_FHM.py +777 -0
  315. sage/combinat/tutorial.py +1857 -0
  316. sage/combinat/vector_partition.py +337 -0
  317. sage/combinat/words/abstract_word.py +1722 -0
  318. sage/combinat/words/all.py +59 -0
  319. sage/combinat/words/alphabet.py +268 -0
  320. sage/combinat/words/finite_word.py +7201 -0
  321. sage/combinat/words/infinite_word.py +113 -0
  322. sage/combinat/words/lyndon_word.py +652 -0
  323. sage/combinat/words/morphic.py +351 -0
  324. sage/combinat/words/morphism.py +3878 -0
  325. sage/combinat/words/paths.py +2932 -0
  326. sage/combinat/words/shuffle_product.py +278 -0
  327. sage/combinat/words/suffix_trees.py +1873 -0
  328. sage/combinat/words/word.py +769 -0
  329. sage/combinat/words/word_char.cpython-314-x86_64-linux-musl.so +0 -0
  330. sage/combinat/words/word_char.pyx +847 -0
  331. sage/combinat/words/word_datatypes.cpython-314-x86_64-linux-musl.so +0 -0
  332. sage/combinat/words/word_datatypes.pxd +4 -0
  333. sage/combinat/words/word_datatypes.pyx +1067 -0
  334. sage/combinat/words/word_generators.py +2026 -0
  335. sage/combinat/words/word_infinite_datatypes.py +1218 -0
  336. sage/combinat/words/word_options.py +99 -0
  337. sage/combinat/words/words.py +2396 -0
  338. sage/data_structures/all__sagemath_combinat.py +1 -0
  339. sage/databases/all__sagemath_combinat.py +13 -0
  340. sage/databases/findstat.py +4897 -0
  341. sage/databases/oeis.py +2058 -0
  342. sage/databases/sloane.py +393 -0
  343. sage/dynamics/all__sagemath_combinat.py +14 -0
  344. sage/dynamics/cellular_automata/all.py +7 -0
  345. sage/dynamics/cellular_automata/catalog.py +34 -0
  346. sage/dynamics/cellular_automata/elementary.py +612 -0
  347. sage/dynamics/cellular_automata/glca.py +477 -0
  348. sage/dynamics/cellular_automata/solitons.py +1463 -0
  349. sage/dynamics/finite_dynamical_system.py +1249 -0
  350. sage/dynamics/finite_dynamical_system_catalog.py +382 -0
  351. sage/games/all.py +7 -0
  352. sage/games/hexad.py +704 -0
  353. sage/games/quantumino.py +591 -0
  354. sage/games/sudoku.py +889 -0
  355. sage/games/sudoku_backtrack.cpython-314-x86_64-linux-musl.so +0 -0
  356. sage/games/sudoku_backtrack.pyx +189 -0
  357. sage/groups/all__sagemath_combinat.py +1 -0
  358. sage/groups/indexed_free_group.py +489 -0
  359. sage/libs/all__sagemath_combinat.py +6 -0
  360. sage/libs/lrcalc/__init__.py +1 -0
  361. sage/libs/lrcalc/lrcalc.py +525 -0
  362. sage/libs/symmetrica/__init__.py +7 -0
  363. sage/libs/symmetrica/all.py +101 -0
  364. sage/libs/symmetrica/kostka.pxi +168 -0
  365. sage/libs/symmetrica/part.pxi +193 -0
  366. sage/libs/symmetrica/plet.pxi +42 -0
  367. sage/libs/symmetrica/sab.pxi +196 -0
  368. sage/libs/symmetrica/sb.pxi +332 -0
  369. sage/libs/symmetrica/sc.pxi +192 -0
  370. sage/libs/symmetrica/schur.pxi +956 -0
  371. sage/libs/symmetrica/symmetrica.cpython-314-x86_64-linux-musl.so +0 -0
  372. sage/libs/symmetrica/symmetrica.pxi +1172 -0
  373. sage/libs/symmetrica/symmetrica.pyx +39 -0
  374. sage/monoids/all.py +13 -0
  375. sage/monoids/automatic_semigroup.py +1054 -0
  376. sage/monoids/free_abelian_monoid.py +315 -0
  377. sage/monoids/free_abelian_monoid_element.cpython-314-x86_64-linux-musl.so +0 -0
  378. sage/monoids/free_abelian_monoid_element.pxd +16 -0
  379. sage/monoids/free_abelian_monoid_element.pyx +397 -0
  380. sage/monoids/free_monoid.py +335 -0
  381. sage/monoids/free_monoid_element.py +431 -0
  382. sage/monoids/hecke_monoid.py +65 -0
  383. sage/monoids/string_monoid.py +817 -0
  384. sage/monoids/string_monoid_element.py +547 -0
  385. sage/monoids/string_ops.py +143 -0
  386. sage/monoids/trace_monoid.py +972 -0
  387. sage/rings/all__sagemath_combinat.py +2 -0
  388. sage/sat/all.py +4 -0
  389. sage/sat/boolean_polynomials.py +405 -0
  390. sage/sat/converters/__init__.py +6 -0
  391. sage/sat/converters/anf2cnf.py +14 -0
  392. sage/sat/converters/polybori.py +611 -0
  393. sage/sat/solvers/__init__.py +5 -0
  394. sage/sat/solvers/cryptominisat.py +287 -0
  395. sage/sat/solvers/dimacs.py +783 -0
  396. sage/sat/solvers/picosat.py +228 -0
  397. sage/sat/solvers/sat_lp.py +156 -0
  398. sage/sat/solvers/satsolver.cpython-314-x86_64-linux-musl.so +0 -0
  399. sage/sat/solvers/satsolver.pxd +3 -0
  400. sage/sat/solvers/satsolver.pyx +405 -0
@@ -0,0 +1,436 @@
1
+ # sage_setup: distribution = sagemath-combinat
2
+ # sage.doctest: needs sage.combinat sage.graphs sage.modules
3
+ r"""
4
+ Highest weight crystals
5
+ """
6
+
7
+ #*****************************************************************************
8
+ # Copyright (C) 2009 Anne Schilling <anne at math.ucdavis.edu>
9
+ #
10
+ # Distributed under the terms of the GNU General Public License (GPL)
11
+ #
12
+ # This code is distributed in the hope that it will be useful,
13
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ # General Public License for more details.
16
+ #
17
+ # The full text of the GPL is available at:
18
+ #
19
+ # http://www.gnu.org/licenses/
20
+ #****************************************************************************
21
+
22
+ from sage.categories.classical_crystals import ClassicalCrystals
23
+ from sage.structure.parent import Parent
24
+ from sage.combinat.crystals.letters import CrystalOfLetters
25
+ from sage.combinat.crystals.tensor_product import TensorProductOfCrystals, \
26
+ TensorProductOfRegularCrystalsElement
27
+
28
+ from sage.combinat.crystals.tensor_product import CrystalOfTableaux
29
+ from sage.combinat.crystals.alcove_path import CrystalOfAlcovePaths
30
+ from sage.combinat.crystals.littelmann_path import CrystalOfLSPaths
31
+ from sage.combinat.crystals.generalized_young_walls import CrystalOfGeneralizedYoungWalls
32
+ from sage.combinat.crystals.monomial_crystals import CrystalOfNakajimaMonomials
33
+ from sage.combinat.rigged_configurations.rc_crystal import CrystalOfRiggedConfigurations
34
+ from sage.rings.integer_ring import ZZ
35
+
36
+
37
+ def HighestWeightCrystal(dominant_weight, model=None):
38
+ r"""
39
+ Return the highest weight crystal of highest weight ``dominant_weight``
40
+ of the given ``model``.
41
+
42
+ INPUT:
43
+
44
+ - ``dominant_weight`` -- a dominant weight
45
+ - ``model`` -- (optional) if not specified, then we have the following
46
+ default models:
47
+
48
+ * types `A_n, B_n, C_n, D_n, G_2` - :class:`tableaux
49
+ <sage.combinat.crystals.tensor_product.CrystalOfTableaux>`
50
+ * types `E_{6,7}` - :class:`type E finite dimensional crystal
51
+ <FiniteDimensionalHighestWeightCrystal_TypeE>`
52
+ * all other types - :class:`LS paths
53
+ <sage.combinat.crystals.littelmann_path.CrystalOfLSPaths>`
54
+
55
+ otherwise can be one of the following:
56
+
57
+ * ``'Tableaux'`` - :class:`KN tableaux
58
+ <sage.combinat.crystals.tensor_product.CrystalOfTableaux>`
59
+ * ``'TypeE'`` - :class:`type E finite dimensional crystal
60
+ <FiniteDimensionalHighestWeightCrystal_TypeE>`
61
+ * ``'NakajimaMonomials'`` - :class:`Nakajima monomials
62
+ <sage.combinat.crystals.monomial_crystals.CrystalOfNakajimaMonomials>`
63
+ * ``'LSPaths'`` - :class:`LS paths
64
+ <sage.combinat.crystals.littelmann_path.CrystalOfLSPaths>`
65
+ * ``'AlcovePaths'`` - :class:`alcove paths
66
+ <sage.combinat.crystals.alcove_path.CrystalOfAlcovePaths>`
67
+ * ``'GeneralizedYoungWalls'`` - :class:`generalized Young walls
68
+ <sage.combinat.crystals.generalized_young_walls.CrystalOfGeneralizedYoungWalls>`
69
+ * ``'RiggedConfigurations'`` - :class:`rigged configurations
70
+ <sage.combinat.rigged_configurations.rc_crystal.CrystalOfRiggedConfigurations>`
71
+
72
+ EXAMPLES::
73
+
74
+ sage: La = RootSystem(['A',2]).weight_lattice().fundamental_weights()
75
+ sage: wt = La[1] + La[2]
76
+ sage: crystals.HighestWeight(wt)
77
+ The crystal of tableaux of type ['A', 2] and shape(s) [[2, 1]]
78
+
79
+ sage: La = RootSystem(['C',2]).weight_lattice().fundamental_weights()
80
+ sage: wt = 5*La[1] + La[2]
81
+ sage: crystals.HighestWeight(wt)
82
+ The crystal of tableaux of type ['C', 2] and shape(s) [[6, 1]]
83
+
84
+ sage: La = RootSystem(['B',2]).weight_lattice().fundamental_weights()
85
+ sage: wt = La[1] + La[2]
86
+ sage: crystals.HighestWeight(wt)
87
+ The crystal of tableaux of type ['B', 2] and shape(s) [[3/2, 1/2]]
88
+
89
+ Some type `E` examples::
90
+
91
+ sage: C = CartanType(['E',6])
92
+ sage: La = C.root_system().weight_lattice().fundamental_weights()
93
+ sage: T = crystals.HighestWeight(La[1])
94
+ sage: T.cardinality()
95
+ 27
96
+ sage: T = crystals.HighestWeight(La[6])
97
+ sage: T.cardinality()
98
+ 27
99
+ sage: T = crystals.HighestWeight(La[2])
100
+ sage: T.cardinality()
101
+ 78
102
+ sage: T = crystals.HighestWeight(La[4])
103
+ sage: T.cardinality()
104
+ 2925
105
+ sage: T = crystals.HighestWeight(La[3])
106
+ sage: T.cardinality()
107
+ 351
108
+ sage: T = crystals.HighestWeight(La[5])
109
+ sage: T.cardinality()
110
+ 351
111
+
112
+ sage: C = CartanType(['E',7])
113
+ sage: La = C.root_system().weight_lattice().fundamental_weights()
114
+ sage: T = crystals.HighestWeight(La[1])
115
+ sage: T.cardinality()
116
+ 133
117
+ sage: T = crystals.HighestWeight(La[2])
118
+ sage: T.cardinality()
119
+ 912
120
+ sage: T = crystals.HighestWeight(La[3])
121
+ sage: T.cardinality()
122
+ 8645
123
+ sage: T = crystals.HighestWeight(La[4])
124
+ sage: T.cardinality()
125
+ 365750
126
+ sage: T = crystals.HighestWeight(La[5])
127
+ sage: T.cardinality()
128
+ 27664
129
+ sage: T = crystals.HighestWeight(La[6])
130
+ sage: T.cardinality()
131
+ 1539
132
+ sage: T = crystals.HighestWeight(La[7])
133
+ sage: T.cardinality()
134
+ 56
135
+
136
+ An example with an affine type::
137
+
138
+ sage: C = CartanType(['C',2,1])
139
+ sage: La = C.root_system().weight_lattice().fundamental_weights()
140
+ sage: T = crystals.HighestWeight(La[1])
141
+ sage: sorted(T.subcrystal(max_depth=3), key=str)
142
+ [(-Lambda[0] + 3*Lambda[1] - Lambda[2] - delta,),
143
+ (-Lambda[0] + Lambda[1] + Lambda[2] - delta,),
144
+ (-Lambda[1] + 2*Lambda[2] - delta,),
145
+ (2*Lambda[0] - Lambda[1],),
146
+ (Lambda[0] + Lambda[1] - Lambda[2],),
147
+ (Lambda[0] - Lambda[1] + Lambda[2],),
148
+ (Lambda[1],)]
149
+
150
+ Using the various models::
151
+
152
+ sage: La = RootSystem(['F',4]).weight_lattice().fundamental_weights()
153
+ sage: wt = La[1] + La[4]
154
+ sage: crystals.HighestWeight(wt)
155
+ The crystal of LS paths of type ['F', 4] and weight Lambda[1] + Lambda[4]
156
+ sage: crystals.HighestWeight(wt, model='NakajimaMonomials')
157
+ Highest weight crystal of modified Nakajima monomials of
158
+ Cartan type ['F', 4] and highest weight Lambda[1] + Lambda[4]
159
+ sage: crystals.HighestWeight(wt, model='AlcovePaths')
160
+ Highest weight crystal of alcove paths of type ['F', 4] and weight Lambda[1] + Lambda[4]
161
+ sage: crystals.HighestWeight(wt, model='RiggedConfigurations')
162
+ Crystal of rigged configurations of type ['F', 4] and weight Lambda[1] + Lambda[4]
163
+ sage: La = RootSystem(['A',3,1]).weight_lattice().fundamental_weights()
164
+ sage: wt = La[0] + La[2]
165
+ sage: crystals.HighestWeight(wt, model='GeneralizedYoungWalls')
166
+ Highest weight crystal of generalized Young walls of
167
+ Cartan type ['A', 3, 1] and highest weight Lambda[0] + Lambda[2]
168
+
169
+ TESTS:
170
+
171
+ Check that the correct crystal is constructed for the fundamental weights::
172
+
173
+ sage: for ct in CartanType.samples(finite=True, crystallographic=True): # long time
174
+ ....: L = ct.root_system().weight_lattice()
175
+ ....: La = L.fundamental_weights()
176
+ ....: for model in ['Tableaux', 'NakajimaMonomials', 'AlcovePaths', 'RiggedConfigurations']:
177
+ ....: if model == 'Tableaux' and ct.type() in ["E", "F"]:
178
+ ....: continue
179
+ ....: for wt in La:
180
+ ....: C = crystals.HighestWeight(wt, model=model)
181
+ ....: assert L.weyl_dimension(wt) == C.cardinality(), "wrong cardinality in %s, weight %s" % (ct, wt)
182
+ ....: assert C.highest_weight_vector().weight() == wt, "wrong weight in %s, weight %s" % (ct, wt)
183
+
184
+ Same thing for weights constructed from the simple roots::
185
+
186
+ sage: for ct in CartanType.samples(finite=True, crystallographic=True):
187
+ ....: L = ct.root_system().root_space()
188
+ ....: La = L.fundamental_weights_from_simple_roots()
189
+ ....: for model in ['Tableaux', 'NakajimaMonomials', 'AlcovePaths', 'RiggedConfigurations']:
190
+ ....: if model == 'Tableaux' and ct.type() in ["E", "F"]:
191
+ ....: continue
192
+ ....: for wt in La:
193
+ ....: C1 = crystals.HighestWeight(wt.to_ambient().to_weight_space(ZZ), model=model)
194
+ ....: C2 = crystals.HighestWeight(wt, model=model)
195
+ ....: assert C1 == C2
196
+ """
197
+ cartan_type = dominant_weight.parent().cartan_type()
198
+ if model is None:
199
+ if cartan_type.is_finite():
200
+ if cartan_type.type() == 'E':
201
+ model = 'TypeE'
202
+ elif cartan_type.type() in ['A','B','C','D','G']:
203
+ model = 'Tableaux'
204
+ else:
205
+ model = 'LSPaths'
206
+ else:
207
+ model = 'LSPaths'
208
+
209
+ # Make sure dominant_weight in the weight space
210
+ if cartan_type.is_finite():
211
+ dominant_weight = dominant_weight.to_ambient().to_weight_space(ZZ)
212
+
213
+ if model == 'Tableaux':
214
+ # we rely on the specific choice of positive roots here
215
+ # except in type G_2, the fundamental weights are realized by
216
+ # vectors with weakly decreasing nonnegative integer (or in
217
+ # type B_n and D_n, half-integer) entries
218
+ sh = dominant_weight.to_ambient().to_vector()
219
+ if cartan_type.type() == "G":
220
+ sh = (-sh)[2:0:-1]
221
+ return CrystalOfTableaux(cartan_type, shape=sh)
222
+
223
+ if model == 'TypeE':
224
+ if not cartan_type.is_finite() or cartan_type.type() != 'E':
225
+ raise ValueError("only for finite type E")
226
+ if cartan_type.rank() == 6:
227
+ return FiniteDimensionalHighestWeightCrystal_TypeE6(dominant_weight)
228
+ elif cartan_type.rank() == 7:
229
+ return FiniteDimensionalHighestWeightCrystal_TypeE7(dominant_weight)
230
+ raise NotImplementedError
231
+
232
+ if model == 'NakajimaMonomials':
233
+ return CrystalOfNakajimaMonomials(cartan_type, dominant_weight)
234
+
235
+ if model == 'LSPaths':
236
+ # Make sure it's in the (extended) weight space
237
+ if cartan_type.is_affine():
238
+ P = dominant_weight.parent().root_system.weight_space(extended=True)
239
+ else:
240
+ P = dominant_weight.parent().root_system.weight_space()
241
+ wt = P.sum_of_terms((i, c) for i,c in dominant_weight)
242
+ return CrystalOfLSPaths(wt)
243
+
244
+ if model == 'AlcovePaths':
245
+ return CrystalOfAlcovePaths(dominant_weight, highest_weight_crystal=True)
246
+
247
+ if model == 'GeneralizedYoungWalls':
248
+ if not cartan_type.is_affine():
249
+ raise ValueError("only for affine types")
250
+ if cartan_type.type() != 'A':
251
+ raise NotImplementedError("only for affine type A")
252
+ # Make sure it's in the weight lattice
253
+ P = dominant_weight.parent().root_system.weight_lattice(extended=True)
254
+ wt = P.sum_of_terms((i, c) for i,c in dominant_weight)
255
+ return CrystalOfGeneralizedYoungWalls(cartan_type.rank()-1, wt)
256
+
257
+ if model == 'RiggedConfigurations':
258
+ return CrystalOfRiggedConfigurations(cartan_type, dominant_weight)
259
+
260
+ raise ValueError("invalid model")
261
+
262
+
263
+ class FiniteDimensionalHighestWeightCrystal_TypeE(TensorProductOfCrystals):
264
+ """
265
+ Commonalities for all finite dimensional type `E` highest weight crystals.
266
+
267
+ Subclasses should setup an attribute column_crystal in their
268
+ ``__init__`` method before calling the ``__init__`` method of this class.
269
+ """
270
+
271
+ def __init__(self, dominant_weight):
272
+ """
273
+ EXAMPLES::
274
+
275
+ sage: C = CartanType(['E',6])
276
+ sage: La = C.root_system().weight_lattice().fundamental_weights()
277
+ sage: T = crystals.HighestWeight(2*La[2])
278
+ sage: T.cartan_type()
279
+ ['E', 6]
280
+ sage: T.module_generators
281
+ [[[(2, -1), (1,)], [(2, -1), (1,)]]]
282
+ sage: T.cardinality()
283
+ 2430
284
+ sage: T = crystals.HighestWeight(La[2])
285
+ sage: T.cardinality()
286
+ 78
287
+ """
288
+ self._cartan_type = dominant_weight.parent().cartan_type()
289
+ self._highest_weight = dominant_weight
290
+ assert dominant_weight.is_dominant()
291
+ self.rename()
292
+ Parent.__init__(self, category=ClassicalCrystals())
293
+ self.module_generators = [self.module_generator()]
294
+
295
+ def _repr_(self):
296
+ """
297
+ Return a string representation of ``self``.
298
+
299
+ EXAMPLES::
300
+
301
+ sage: C = CartanType(['E',6])
302
+ sage: La = C.root_system().weight_lattice().fundamental_weights()
303
+ sage: crystals.HighestWeight(2*La[2])
304
+ Finite dimensional highest weight crystal of type ['E', 6] and highest weight 2*Lambda[2]
305
+ """
306
+ return "Finite dimensional highest weight crystal of type {} and highest weight {}".format(
307
+ self._cartan_type, self._highest_weight)
308
+
309
+ Element = TensorProductOfRegularCrystalsElement
310
+
311
+ def module_generator(self):
312
+ """
313
+ Yield the module generator (or highest weight element) of the classical
314
+ crystal of given dominant weight in ``self``.
315
+
316
+ EXAMPLES::
317
+
318
+ sage: C=CartanType(['E',6])
319
+ sage: La=C.root_system().weight_lattice().fundamental_weights()
320
+ sage: T = crystals.HighestWeight(La[2])
321
+ sage: T.module_generator()
322
+ [[(2, -1), (1,)]]
323
+ sage: T = crystals.HighestWeight(0*La[2])
324
+ sage: T.module_generator()
325
+ []
326
+
327
+ sage: C=CartanType(['E',7])
328
+ sage: La=C.root_system().weight_lattice().fundamental_weights()
329
+ sage: T = crystals.HighestWeight(La[1])
330
+ sage: T.module_generator()
331
+ [[(-7, 1), (7,)]]
332
+ """
333
+ dominant_weight = self._highest_weight
334
+ tensor = sum(( [self.column_crystal[i]]*dominant_weight.coefficient(i) for i in dominant_weight.support()), [])
335
+ return self._element_constructor_(*[B.module_generators[0] for B in tensor])
336
+
337
+
338
+ class FiniteDimensionalHighestWeightCrystal_TypeE6(FiniteDimensionalHighestWeightCrystal_TypeE):
339
+ r"""
340
+ Class of finite dimensional highest weight crystals of type `E_6`.
341
+
342
+ EXAMPLES::
343
+
344
+ sage: C=CartanType(['E',6])
345
+ sage: La=C.root_system().weight_lattice().fundamental_weights()
346
+ sage: T = crystals.HighestWeight(La[2]); T
347
+ Finite dimensional highest weight crystal of type ['E', 6] and highest weight Lambda[2]
348
+ sage: B1 = T.column_crystal[1]; B1
349
+ The crystal of letters for type ['E', 6]
350
+ sage: B6 = T.column_crystal[6]; B6
351
+ The crystal of letters for type ['E', 6] (dual)
352
+ sage: t = T(B6([-1]),B1([-1,3])); t
353
+ [(-1,), (-1, 3)]
354
+ sage: [t.epsilon(i) for i in T.index_set()]
355
+ [2, 0, 0, 0, 0, 0]
356
+ sage: [t.phi(i) for i in T.index_set()]
357
+ [0, 0, 1, 0, 0, 0]
358
+ sage: TestSuite(t).run()
359
+ """
360
+
361
+ def __init__(self, dominant_weight):
362
+ """
363
+ EXAMPLES::
364
+
365
+ sage: C=CartanType(['E',6])
366
+ sage: La=C.root_system().weight_lattice().fundamental_weights()
367
+ sage: p2=2*La[2]
368
+ sage: p1=La[2]
369
+ sage: p0=0*La[2]
370
+ sage: T = crystals.HighestWeight(0*La[2])
371
+ sage: T.cardinality()
372
+ 1
373
+ sage: T = crystals.HighestWeight(La[2])
374
+ sage: T.cardinality()
375
+ 78
376
+ sage: T = crystals.HighestWeight(2*La[2])
377
+ sage: T.cardinality()
378
+ 2430
379
+ """
380
+ B1 = CrystalOfLetters(['E',6])
381
+ B6 = CrystalOfLetters(['E',6], dual=True)
382
+ self.column_crystal = {1 : B1, 6 : B6,
383
+ 4 : TensorProductOfCrystals(B1,B1,B1,generators=[[B1([-3,4]),B1([-1,3]),B1([1])]]),
384
+ 3 : TensorProductOfCrystals(B1,B1,generators=[[B1([-1,3]),B1([1])]]),
385
+ 5 : TensorProductOfCrystals(B6,B6,generators=[[B6([5,-6]),B6([6])]]),
386
+ 2 : TensorProductOfCrystals(B6,B1,generators=[[B6([2,-1]),B1([1])]])}
387
+ FiniteDimensionalHighestWeightCrystal_TypeE.__init__(self, dominant_weight)
388
+
389
+
390
+ class FiniteDimensionalHighestWeightCrystal_TypeE7(FiniteDimensionalHighestWeightCrystal_TypeE):
391
+ r"""
392
+ Class of finite dimensional highest weight crystals of type `E_7`.
393
+
394
+ EXAMPLES::
395
+
396
+ sage: C=CartanType(['E',7])
397
+ sage: La=C.root_system().weight_lattice().fundamental_weights()
398
+ sage: T = crystals.HighestWeight(La[1])
399
+ sage: T.cardinality()
400
+ 133
401
+ sage: B7 = T.column_crystal[7]; B7
402
+ The crystal of letters for type ['E', 7]
403
+ sage: t = T(B7([-5, 6]), B7([-2, 3])); t
404
+ [(-5, 6), (-2, 3)]
405
+ sage: [t.epsilon(i) for i in T.index_set()]
406
+ [0, 1, 0, 0, 1, 0, 0]
407
+ sage: [t.phi(i) for i in T.index_set()]
408
+ [0, 0, 1, 0, 0, 1, 0]
409
+ sage: TestSuite(t).run()
410
+ """
411
+
412
+ def __init__(self, dominant_weight):
413
+ """
414
+ EXAMPLES::
415
+
416
+ sage: C=CartanType(['E',7])
417
+ sage: La=C.root_system().weight_lattice().fundamental_weights()
418
+ sage: T = crystals.HighestWeight(0*La[1])
419
+ sage: T.cardinality()
420
+ 1
421
+ sage: T = crystals.HighestWeight(La[1])
422
+ sage: T.cardinality()
423
+ 133
424
+ sage: T = crystals.HighestWeight(2*La[1])
425
+ sage: T.cardinality()
426
+ 7371
427
+ """
428
+ B = CrystalOfLetters(['E',7])
429
+ self.column_crystal = {7 : B,
430
+ 1 : TensorProductOfCrystals(B,B,generators=[[B([-7,1]),B([7])]]),
431
+ 2 : TensorProductOfCrystals(B,B,B,generators=[[B([-1,2]),B([-7,1]),B([7])]]),
432
+ 3 : TensorProductOfCrystals(B,B,B,B,generators=[[B([-2,3]),B([-1,2]),B([-7,1]),B([7])]]),
433
+ 4 : TensorProductOfCrystals(B,B,B,B,generators=[[B([-5,4]),B([-6,5]),B([-7,6]),B([7])]]),
434
+ 5 : TensorProductOfCrystals(B,B,B,generators=[[B([-6,5]),B([-7,6]),B([7])]]),
435
+ 6 : TensorProductOfCrystals(B,B,generators=[[B([-7,6]),B([7])]])}
436
+ FiniteDimensionalHighestWeightCrystal_TypeE.__init__(self, dominant_weight)