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.
- passagemath_combinat/__init__.py +3 -0
- passagemath_combinat-10.6.42.dist-info/METADATA +160 -0
- passagemath_combinat-10.6.42.dist-info/RECORD +400 -0
- passagemath_combinat-10.6.42.dist-info/WHEEL +5 -0
- passagemath_combinat-10.6.42.dist-info/top_level.txt +3 -0
- passagemath_combinat.libs/libgmp-0e7fc84e.so.10.5.0 +0 -0
- passagemath_combinat.libs/libsymmetrica-81fe8739.so.3.0.0 +0 -0
- sage/algebras/affine_nil_temperley_lieb.py +263 -0
- sage/algebras/all.py +24 -0
- sage/algebras/all__sagemath_combinat.py +35 -0
- sage/algebras/askey_wilson.py +935 -0
- sage/algebras/associated_graded.py +345 -0
- sage/algebras/cellular_basis.py +350 -0
- sage/algebras/cluster_algebra.py +2766 -0
- sage/algebras/down_up_algebra.py +860 -0
- sage/algebras/free_algebra.py +1698 -0
- sage/algebras/free_algebra_element.py +345 -0
- sage/algebras/free_algebra_quotient.py +405 -0
- sage/algebras/free_algebra_quotient_element.py +295 -0
- sage/algebras/free_zinbiel_algebra.py +885 -0
- sage/algebras/hall_algebra.py +783 -0
- sage/algebras/hecke_algebras/all.py +4 -0
- sage/algebras/hecke_algebras/ariki_koike_algebra.py +1796 -0
- sage/algebras/hecke_algebras/ariki_koike_specht_modules.py +475 -0
- sage/algebras/hecke_algebras/cubic_hecke_algebra.py +3520 -0
- sage/algebras/hecke_algebras/cubic_hecke_base_ring.py +1473 -0
- sage/algebras/hecke_algebras/cubic_hecke_matrix_rep.py +1079 -0
- sage/algebras/iwahori_hecke_algebra.py +3095 -0
- sage/algebras/jordan_algebra.py +1773 -0
- sage/algebras/lie_conformal_algebras/abelian_lie_conformal_algebra.py +113 -0
- sage/algebras/lie_conformal_algebras/affine_lie_conformal_algebra.py +156 -0
- sage/algebras/lie_conformal_algebras/all.py +18 -0
- sage/algebras/lie_conformal_algebras/bosonic_ghosts_lie_conformal_algebra.py +134 -0
- sage/algebras/lie_conformal_algebras/examples.py +43 -0
- sage/algebras/lie_conformal_algebras/fermionic_ghosts_lie_conformal_algebra.py +131 -0
- sage/algebras/lie_conformal_algebras/finitely_freely_generated_lca.py +139 -0
- sage/algebras/lie_conformal_algebras/free_bosons_lie_conformal_algebra.py +174 -0
- sage/algebras/lie_conformal_algebras/free_fermions_lie_conformal_algebra.py +167 -0
- sage/algebras/lie_conformal_algebras/freely_generated_lie_conformal_algebra.py +107 -0
- sage/algebras/lie_conformal_algebras/graded_lie_conformal_algebra.py +135 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra.py +353 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_element.py +236 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_basis.py +78 -0
- sage/algebras/lie_conformal_algebras/lie_conformal_algebra_with_structure_coefs.py +328 -0
- sage/algebras/lie_conformal_algebras/n2_lie_conformal_algebra.py +117 -0
- sage/algebras/lie_conformal_algebras/neveu_schwarz_lie_conformal_algebra.py +86 -0
- sage/algebras/lie_conformal_algebras/virasoro_lie_conformal_algebra.py +82 -0
- sage/algebras/lie_conformal_algebras/weyl_lie_conformal_algebra.py +205 -0
- sage/algebras/nil_coxeter_algebra.py +191 -0
- sage/algebras/q_commuting_polynomials.py +673 -0
- sage/algebras/q_system.py +608 -0
- sage/algebras/quantum_clifford.py +959 -0
- sage/algebras/quantum_groups/ace_quantum_onsager.py +693 -0
- sage/algebras/quantum_groups/all.py +9 -0
- sage/algebras/quantum_groups/fock_space.py +2219 -0
- sage/algebras/quantum_groups/q_numbers.py +207 -0
- sage/algebras/quantum_groups/quantum_group_gap.py +2695 -0
- sage/algebras/quantum_groups/representations.py +591 -0
- sage/algebras/quantum_matrix_coordinate_algebra.py +1006 -0
- sage/algebras/quantum_oscillator.py +623 -0
- sage/algebras/quaternion_algebra.py +20 -0
- sage/algebras/quaternion_algebra_element.py +55 -0
- sage/algebras/rational_cherednik_algebra.py +525 -0
- sage/algebras/schur_algebra.py +670 -0
- sage/algebras/shuffle_algebra.py +1011 -0
- sage/algebras/splitting_algebra.py +779 -0
- sage/algebras/tensor_algebra.py +709 -0
- sage/algebras/yangian.py +1082 -0
- sage/algebras/yokonuma_hecke_algebra.py +1018 -0
- sage/all__sagemath_combinat.py +35 -0
- sage/combinat/SJT.py +255 -0
- sage/combinat/affine_permutation.py +2405 -0
- sage/combinat/algebraic_combinatorics.py +55 -0
- sage/combinat/all.py +53 -0
- sage/combinat/all__sagemath_combinat.py +195 -0
- sage/combinat/alternating_sign_matrix.py +2063 -0
- sage/combinat/baxter_permutations.py +346 -0
- sage/combinat/bijectionist.py +3220 -0
- sage/combinat/binary_recurrence_sequences.py +1180 -0
- sage/combinat/blob_algebra.py +685 -0
- sage/combinat/catalog_partitions.py +27 -0
- sage/combinat/chas/all.py +23 -0
- sage/combinat/chas/fsym.py +1180 -0
- sage/combinat/chas/wqsym.py +2601 -0
- sage/combinat/cluster_complex.py +326 -0
- sage/combinat/colored_permutations.py +2039 -0
- sage/combinat/colored_permutations_representations.py +964 -0
- sage/combinat/composition_signed.py +142 -0
- sage/combinat/composition_tableau.py +855 -0
- sage/combinat/constellation.py +1729 -0
- sage/combinat/core.py +751 -0
- sage/combinat/counting.py +12 -0
- sage/combinat/crystals/affine.py +742 -0
- sage/combinat/crystals/affine_factorization.py +518 -0
- sage/combinat/crystals/affinization.py +331 -0
- sage/combinat/crystals/alcove_path.py +2013 -0
- sage/combinat/crystals/all.py +22 -0
- sage/combinat/crystals/bkk_crystals.py +141 -0
- sage/combinat/crystals/catalog.py +115 -0
- sage/combinat/crystals/catalog_elementary_crystals.py +18 -0
- sage/combinat/crystals/catalog_infinity_crystals.py +33 -0
- sage/combinat/crystals/catalog_kirillov_reshetikhin.py +18 -0
- sage/combinat/crystals/crystals.py +257 -0
- sage/combinat/crystals/direct_sum.py +260 -0
- sage/combinat/crystals/elementary_crystals.py +1251 -0
- sage/combinat/crystals/fast_crystals.py +441 -0
- sage/combinat/crystals/fully_commutative_stable_grothendieck.py +1205 -0
- sage/combinat/crystals/generalized_young_walls.py +1076 -0
- sage/combinat/crystals/highest_weight_crystals.py +436 -0
- sage/combinat/crystals/induced_structure.py +695 -0
- sage/combinat/crystals/infinity_crystals.py +730 -0
- sage/combinat/crystals/kac_modules.py +863 -0
- sage/combinat/crystals/kirillov_reshetikhin.py +4196 -0
- sage/combinat/crystals/kyoto_path_model.py +497 -0
- sage/combinat/crystals/letters.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/letters.pxd +79 -0
- sage/combinat/crystals/letters.pyx +3056 -0
- sage/combinat/crystals/littelmann_path.py +1518 -0
- sage/combinat/crystals/monomial_crystals.py +1262 -0
- sage/combinat/crystals/multisegments.py +462 -0
- sage/combinat/crystals/mv_polytopes.py +467 -0
- sage/combinat/crystals/pbw_crystal.py +511 -0
- sage/combinat/crystals/pbw_datum.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/pbw_datum.pxd +4 -0
- sage/combinat/crystals/pbw_datum.pyx +487 -0
- sage/combinat/crystals/polyhedral_realization.py +372 -0
- sage/combinat/crystals/spins.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/spins.pxd +21 -0
- sage/combinat/crystals/spins.pyx +756 -0
- sage/combinat/crystals/star_crystal.py +290 -0
- sage/combinat/crystals/subcrystal.py +464 -0
- sage/combinat/crystals/tensor_product.py +1177 -0
- sage/combinat/crystals/tensor_product_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/crystals/tensor_product_element.pxd +35 -0
- sage/combinat/crystals/tensor_product_element.pyx +1870 -0
- sage/combinat/crystals/virtual_crystal.py +420 -0
- sage/combinat/cyclic_sieving_phenomenon.py +204 -0
- sage/combinat/debruijn_sequence.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/debruijn_sequence.pyx +355 -0
- sage/combinat/decorated_permutation.py +270 -0
- sage/combinat/degree_sequences.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/degree_sequences.pyx +588 -0
- sage/combinat/derangements.py +527 -0
- sage/combinat/descent_algebra.py +1008 -0
- sage/combinat/diagram.py +1551 -0
- sage/combinat/diagram_algebras.py +5886 -0
- sage/combinat/dyck_word.py +4349 -0
- sage/combinat/e_one_star.py +1623 -0
- sage/combinat/enumerated_sets.py +123 -0
- sage/combinat/expnums.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/expnums.pyx +148 -0
- sage/combinat/fast_vector_partitions.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/fast_vector_partitions.pyx +346 -0
- sage/combinat/fqsym.py +1977 -0
- sage/combinat/free_dendriform_algebra.py +954 -0
- sage/combinat/free_prelie_algebra.py +1141 -0
- sage/combinat/fully_commutative_elements.py +1077 -0
- sage/combinat/fully_packed_loop.py +1523 -0
- sage/combinat/gelfand_tsetlin_patterns.py +1409 -0
- sage/combinat/gray_codes.py +311 -0
- sage/combinat/grossman_larson_algebras.py +667 -0
- sage/combinat/growth.py +4352 -0
- sage/combinat/hall_polynomial.py +188 -0
- sage/combinat/hillman_grassl.py +866 -0
- sage/combinat/integer_matrices.py +329 -0
- sage/combinat/integer_vectors_mod_permgroup.py +1238 -0
- sage/combinat/k_tableau.py +4564 -0
- sage/combinat/kazhdan_lusztig.py +215 -0
- sage/combinat/key_polynomial.py +885 -0
- sage/combinat/knutson_tao_puzzles.py +2286 -0
- sage/combinat/lr_tableau.py +311 -0
- sage/combinat/matrices/all.py +24 -0
- sage/combinat/matrices/hadamard_matrix.py +3790 -0
- sage/combinat/matrices/latin.py +2912 -0
- sage/combinat/misc.py +401 -0
- sage/combinat/multiset_partition_into_sets_ordered.py +3541 -0
- sage/combinat/ncsf_qsym/all.py +21 -0
- sage/combinat/ncsf_qsym/combinatorics.py +317 -0
- sage/combinat/ncsf_qsym/generic_basis_code.py +1427 -0
- sage/combinat/ncsf_qsym/ncsf.py +5637 -0
- sage/combinat/ncsf_qsym/qsym.py +4053 -0
- sage/combinat/ncsf_qsym/tutorial.py +447 -0
- sage/combinat/ncsym/all.py +21 -0
- sage/combinat/ncsym/bases.py +855 -0
- sage/combinat/ncsym/dual.py +593 -0
- sage/combinat/ncsym/ncsym.py +2076 -0
- sage/combinat/necklace.py +551 -0
- sage/combinat/non_decreasing_parking_function.py +634 -0
- sage/combinat/nu_dyck_word.py +1474 -0
- sage/combinat/output.py +861 -0
- sage/combinat/parallelogram_polyomino.py +4326 -0
- sage/combinat/parking_functions.py +1602 -0
- sage/combinat/partition_algebra.py +1998 -0
- sage/combinat/partition_kleshchev.py +1982 -0
- sage/combinat/partition_shifting_algebras.py +584 -0
- sage/combinat/partition_tuple.py +3114 -0
- sage/combinat/path_tableaux/all.py +13 -0
- sage/combinat/path_tableaux/catalog.py +29 -0
- sage/combinat/path_tableaux/dyck_path.py +380 -0
- sage/combinat/path_tableaux/frieze.py +476 -0
- sage/combinat/path_tableaux/path_tableau.py +728 -0
- sage/combinat/path_tableaux/semistandard.py +510 -0
- sage/combinat/perfect_matching.py +779 -0
- sage/combinat/plane_partition.py +3300 -0
- sage/combinat/q_bernoulli.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/q_bernoulli.pyx +128 -0
- sage/combinat/quickref.py +81 -0
- sage/combinat/recognizable_series.py +2051 -0
- sage/combinat/regular_sequence.py +4316 -0
- sage/combinat/regular_sequence_bounded.py +543 -0
- sage/combinat/restricted_growth.py +81 -0
- sage/combinat/ribbon.py +20 -0
- sage/combinat/ribbon_shaped_tableau.py +489 -0
- sage/combinat/ribbon_tableau.py +1180 -0
- sage/combinat/rigged_configurations/all.py +46 -0
- sage/combinat/rigged_configurations/bij_abstract_class.py +548 -0
- sage/combinat/rigged_configurations/bij_infinity.py +370 -0
- sage/combinat/rigged_configurations/bij_type_A.py +163 -0
- sage/combinat/rigged_configurations/bij_type_A2_dual.py +338 -0
- sage/combinat/rigged_configurations/bij_type_A2_even.py +218 -0
- sage/combinat/rigged_configurations/bij_type_A2_odd.py +199 -0
- sage/combinat/rigged_configurations/bij_type_B.py +900 -0
- sage/combinat/rigged_configurations/bij_type_C.py +267 -0
- sage/combinat/rigged_configurations/bij_type_D.py +771 -0
- sage/combinat/rigged_configurations/bij_type_D_tri.py +392 -0
- sage/combinat/rigged_configurations/bij_type_D_twisted.py +576 -0
- sage/combinat/rigged_configurations/bij_type_E67.py +402 -0
- sage/combinat/rigged_configurations/bijection.py +143 -0
- sage/combinat/rigged_configurations/kleber_tree.py +1475 -0
- sage/combinat/rigged_configurations/kr_tableaux.py +1898 -0
- sage/combinat/rigged_configurations/rc_crystal.py +461 -0
- sage/combinat/rigged_configurations/rc_infinity.py +540 -0
- sage/combinat/rigged_configurations/rigged_configuration_element.py +2403 -0
- sage/combinat/rigged_configurations/rigged_configurations.py +1918 -0
- sage/combinat/rigged_configurations/rigged_partition.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/rigged_configurations/rigged_partition.pxd +15 -0
- sage/combinat/rigged_configurations/rigged_partition.pyx +680 -0
- sage/combinat/rigged_configurations/tensor_product_kr_tableaux.py +499 -0
- sage/combinat/rigged_configurations/tensor_product_kr_tableaux_element.py +428 -0
- sage/combinat/rsk.py +3438 -0
- sage/combinat/schubert_polynomial.py +508 -0
- sage/combinat/set_partition.py +3318 -0
- sage/combinat/set_partition_iterator.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/set_partition_iterator.pyx +136 -0
- sage/combinat/set_partition_ordered.py +1590 -0
- sage/combinat/sf/abreu_nigro.py +346 -0
- sage/combinat/sf/all.py +52 -0
- sage/combinat/sf/character.py +576 -0
- sage/combinat/sf/classical.py +319 -0
- sage/combinat/sf/dual.py +996 -0
- sage/combinat/sf/elementary.py +549 -0
- sage/combinat/sf/hall_littlewood.py +1028 -0
- sage/combinat/sf/hecke.py +336 -0
- sage/combinat/sf/homogeneous.py +464 -0
- sage/combinat/sf/jack.py +1428 -0
- sage/combinat/sf/k_dual.py +1458 -0
- sage/combinat/sf/kfpoly.py +447 -0
- sage/combinat/sf/llt.py +789 -0
- sage/combinat/sf/macdonald.py +2019 -0
- sage/combinat/sf/monomial.py +525 -0
- sage/combinat/sf/multiplicative.py +113 -0
- sage/combinat/sf/new_kschur.py +1786 -0
- sage/combinat/sf/ns_macdonald.py +964 -0
- sage/combinat/sf/orthogonal.py +246 -0
- sage/combinat/sf/orthotriang.py +355 -0
- sage/combinat/sf/powersum.py +963 -0
- sage/combinat/sf/schur.py +880 -0
- sage/combinat/sf/sf.py +1653 -0
- sage/combinat/sf/sfa.py +7053 -0
- sage/combinat/sf/symplectic.py +253 -0
- sage/combinat/sf/witt.py +721 -0
- sage/combinat/shifted_primed_tableau.py +2735 -0
- sage/combinat/shuffle.py +830 -0
- sage/combinat/sidon_sets.py +146 -0
- sage/combinat/similarity_class_type.py +1721 -0
- sage/combinat/sine_gordon.py +618 -0
- sage/combinat/six_vertex_model.py +784 -0
- sage/combinat/skew_partition.py +2053 -0
- sage/combinat/skew_tableau.py +2989 -0
- sage/combinat/sloane_functions.py +8935 -0
- sage/combinat/specht_module.py +1403 -0
- sage/combinat/species/all.py +48 -0
- sage/combinat/species/characteristic_species.py +321 -0
- sage/combinat/species/composition_species.py +273 -0
- sage/combinat/species/cycle_species.py +284 -0
- sage/combinat/species/empty_species.py +155 -0
- sage/combinat/species/functorial_composition_species.py +148 -0
- sage/combinat/species/generating_series.py +673 -0
- sage/combinat/species/library.py +148 -0
- sage/combinat/species/linear_order_species.py +169 -0
- sage/combinat/species/misc.py +83 -0
- sage/combinat/species/partition_species.py +290 -0
- sage/combinat/species/permutation_species.py +268 -0
- sage/combinat/species/product_species.py +423 -0
- sage/combinat/species/recursive_species.py +476 -0
- sage/combinat/species/set_species.py +192 -0
- sage/combinat/species/species.py +820 -0
- sage/combinat/species/structure.py +539 -0
- sage/combinat/species/subset_species.py +243 -0
- sage/combinat/species/sum_species.py +225 -0
- sage/combinat/subword.py +564 -0
- sage/combinat/subword_complex.py +2122 -0
- sage/combinat/subword_complex_c.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/subword_complex_c.pyx +119 -0
- sage/combinat/super_tableau.py +821 -0
- sage/combinat/superpartition.py +1154 -0
- sage/combinat/symmetric_group_algebra.py +3774 -0
- sage/combinat/symmetric_group_representations.py +1830 -0
- sage/combinat/t_sequences.py +877 -0
- sage/combinat/tableau.py +9506 -0
- sage/combinat/tableau_residues.py +860 -0
- sage/combinat/tableau_tuple.py +5353 -0
- sage/combinat/tiling.py +2432 -0
- sage/combinat/triangles_FHM.py +777 -0
- sage/combinat/tutorial.py +1857 -0
- sage/combinat/vector_partition.py +337 -0
- sage/combinat/words/abstract_word.py +1722 -0
- sage/combinat/words/all.py +59 -0
- sage/combinat/words/alphabet.py +268 -0
- sage/combinat/words/finite_word.py +7201 -0
- sage/combinat/words/infinite_word.py +113 -0
- sage/combinat/words/lyndon_word.py +652 -0
- sage/combinat/words/morphic.py +351 -0
- sage/combinat/words/morphism.py +3878 -0
- sage/combinat/words/paths.py +2932 -0
- sage/combinat/words/shuffle_product.py +278 -0
- sage/combinat/words/suffix_trees.py +1873 -0
- sage/combinat/words/word.py +769 -0
- sage/combinat/words/word_char.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/words/word_char.pyx +847 -0
- sage/combinat/words/word_datatypes.cpython-314-x86_64-linux-musl.so +0 -0
- sage/combinat/words/word_datatypes.pxd +4 -0
- sage/combinat/words/word_datatypes.pyx +1067 -0
- sage/combinat/words/word_generators.py +2026 -0
- sage/combinat/words/word_infinite_datatypes.py +1218 -0
- sage/combinat/words/word_options.py +99 -0
- sage/combinat/words/words.py +2396 -0
- sage/data_structures/all__sagemath_combinat.py +1 -0
- sage/databases/all__sagemath_combinat.py +13 -0
- sage/databases/findstat.py +4897 -0
- sage/databases/oeis.py +2058 -0
- sage/databases/sloane.py +393 -0
- sage/dynamics/all__sagemath_combinat.py +14 -0
- sage/dynamics/cellular_automata/all.py +7 -0
- sage/dynamics/cellular_automata/catalog.py +34 -0
- sage/dynamics/cellular_automata/elementary.py +612 -0
- sage/dynamics/cellular_automata/glca.py +477 -0
- sage/dynamics/cellular_automata/solitons.py +1463 -0
- sage/dynamics/finite_dynamical_system.py +1249 -0
- sage/dynamics/finite_dynamical_system_catalog.py +382 -0
- sage/games/all.py +7 -0
- sage/games/hexad.py +704 -0
- sage/games/quantumino.py +591 -0
- sage/games/sudoku.py +889 -0
- sage/games/sudoku_backtrack.cpython-314-x86_64-linux-musl.so +0 -0
- sage/games/sudoku_backtrack.pyx +189 -0
- sage/groups/all__sagemath_combinat.py +1 -0
- sage/groups/indexed_free_group.py +489 -0
- sage/libs/all__sagemath_combinat.py +6 -0
- sage/libs/lrcalc/__init__.py +1 -0
- sage/libs/lrcalc/lrcalc.py +525 -0
- sage/libs/symmetrica/__init__.py +7 -0
- sage/libs/symmetrica/all.py +101 -0
- sage/libs/symmetrica/kostka.pxi +168 -0
- sage/libs/symmetrica/part.pxi +193 -0
- sage/libs/symmetrica/plet.pxi +42 -0
- sage/libs/symmetrica/sab.pxi +196 -0
- sage/libs/symmetrica/sb.pxi +332 -0
- sage/libs/symmetrica/sc.pxi +192 -0
- sage/libs/symmetrica/schur.pxi +956 -0
- sage/libs/symmetrica/symmetrica.cpython-314-x86_64-linux-musl.so +0 -0
- sage/libs/symmetrica/symmetrica.pxi +1172 -0
- sage/libs/symmetrica/symmetrica.pyx +39 -0
- sage/monoids/all.py +13 -0
- sage/monoids/automatic_semigroup.py +1054 -0
- sage/monoids/free_abelian_monoid.py +315 -0
- sage/monoids/free_abelian_monoid_element.cpython-314-x86_64-linux-musl.so +0 -0
- sage/monoids/free_abelian_monoid_element.pxd +16 -0
- sage/monoids/free_abelian_monoid_element.pyx +397 -0
- sage/monoids/free_monoid.py +335 -0
- sage/monoids/free_monoid_element.py +431 -0
- sage/monoids/hecke_monoid.py +65 -0
- sage/monoids/string_monoid.py +817 -0
- sage/monoids/string_monoid_element.py +547 -0
- sage/monoids/string_ops.py +143 -0
- sage/monoids/trace_monoid.py +972 -0
- sage/rings/all__sagemath_combinat.py +2 -0
- sage/sat/all.py +4 -0
- sage/sat/boolean_polynomials.py +405 -0
- sage/sat/converters/__init__.py +6 -0
- sage/sat/converters/anf2cnf.py +14 -0
- sage/sat/converters/polybori.py +611 -0
- sage/sat/solvers/__init__.py +5 -0
- sage/sat/solvers/cryptominisat.py +287 -0
- sage/sat/solvers/dimacs.py +783 -0
- sage/sat/solvers/picosat.py +228 -0
- sage/sat/solvers/sat_lp.py +156 -0
- sage/sat/solvers/satsolver.cpython-314-x86_64-linux-musl.so +0 -0
- sage/sat/solvers/satsolver.pxd +3 -0
- sage/sat/solvers/satsolver.pyx +405 -0
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Graded Lie Conformal Algebras
|
|
5
|
+
|
|
6
|
+
A (super) Lie conformal algebra `V` is called `H`-graded if there
|
|
7
|
+
exists a decomposition `V = \oplus_n V_n` such that the `\lambda`-
|
|
8
|
+
bracket is graded of degree `-1`, that is for homogeneous elements
|
|
9
|
+
`a \in V_p`, `b \in V_q` with `\lambda`-brackets:
|
|
10
|
+
|
|
11
|
+
.. MATH::
|
|
12
|
+
|
|
13
|
+
[a_\lambda b] = \sum \frac{\lambda^n}{n!} c_n,
|
|
14
|
+
|
|
15
|
+
we have `c_n \in V_{p+q-n-1}`. This situation arises typically when `V`
|
|
16
|
+
has a vector `L \in V` that generates the Virasoro Lie conformal
|
|
17
|
+
algebra. Such that for every `a \in V` we have
|
|
18
|
+
|
|
19
|
+
.. MATH::
|
|
20
|
+
|
|
21
|
+
[L_\lambda a] = Ta + \lambda \Delta_a a + O(\lambda^2).
|
|
22
|
+
|
|
23
|
+
In this situation `V` is graded by the eigenvalues `\Delta_a` of
|
|
24
|
+
`L_{(1)}`, the `(1)`-th product with `L`. When the higher order terms
|
|
25
|
+
`O(\lambda^2)` vanish we say that `a` is a *primary vector* of
|
|
26
|
+
*conformal weight* or degree `\Delta_a`.
|
|
27
|
+
|
|
28
|
+
.. NOTE::
|
|
29
|
+
|
|
30
|
+
Although arbitrary gradings are allowed, many of the constructions
|
|
31
|
+
we implement in these classes work only for positive rational
|
|
32
|
+
gradings.
|
|
33
|
+
|
|
34
|
+
AUTHORS:
|
|
35
|
+
|
|
36
|
+
- Reimundo Heluani (2019-08-09): Initial implementation.
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
#******************************************************************************
|
|
41
|
+
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
42
|
+
#
|
|
43
|
+
# This program is free software: you can redistribute it and/or modify
|
|
44
|
+
# it under the terms of the GNU General Public License as published by
|
|
45
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
46
|
+
# (at your option) any later version.
|
|
47
|
+
# http://www.gnu.org/licenses/
|
|
48
|
+
#*****************************************************************************
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
from sage.categories.lie_conformal_algebras import LieConformalAlgebras
|
|
52
|
+
from .lie_conformal_algebra_with_structure_coefs import \
|
|
53
|
+
LieConformalAlgebraWithStructureCoefficients
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class GradedLieConformalAlgebra(LieConformalAlgebraWithStructureCoefficients):
|
|
57
|
+
r"""
|
|
58
|
+
An H-Graded Lie conformal algebra.
|
|
59
|
+
|
|
60
|
+
INPUT:
|
|
61
|
+
|
|
62
|
+
- ``R`` -- a commutative ring (default: ``None``); the base
|
|
63
|
+
ring of this Lie conformal algebra. Behaviour is undefined if
|
|
64
|
+
it is not a field of characteristic zero
|
|
65
|
+
|
|
66
|
+
- ``s_coeff`` -- dictionary (default: ``None``); as in the
|
|
67
|
+
input of :class:`LieConformalAlgebra`
|
|
68
|
+
|
|
69
|
+
- ``names`` -- tuple of strings (default: ``None``); as in the
|
|
70
|
+
input of :class:`LieConformalAlgebra`
|
|
71
|
+
|
|
72
|
+
- ``central_elements`` -- tuple of strings (default: ``None``);
|
|
73
|
+
as in the input of :class:`LieConformalAlgebra`
|
|
74
|
+
|
|
75
|
+
- ``index_set`` -- enumerated set (default: ``None``); as in the
|
|
76
|
+
input of :class:`LieConformalAlgebra`
|
|
77
|
+
|
|
78
|
+
- ``weights`` -- tuple of nonnegative rational numbers
|
|
79
|
+
(default: tuple of ``1``); a list of degrees for this Lie
|
|
80
|
+
conformal algebra.
|
|
81
|
+
This tuple needs to have the same cardinality as
|
|
82
|
+
``index_set`` or ``names``. Central elements are assumed
|
|
83
|
+
to have weight ``0``.
|
|
84
|
+
|
|
85
|
+
- ``category`` -- the category that this Lie conformal algebra
|
|
86
|
+
belongs to
|
|
87
|
+
|
|
88
|
+
- ``parity`` -- tuple of ``0`` or ``1`` (default: tuple of
|
|
89
|
+
``0``); a tuple specifying the parity of each non-central
|
|
90
|
+
generator
|
|
91
|
+
|
|
92
|
+
EXAMPLES::
|
|
93
|
+
|
|
94
|
+
sage: bosondict = {('a','a'):{1:{('K',0):1}}}
|
|
95
|
+
sage: R = LieConformalAlgebra(QQ,bosondict,names=('a',),central_elements=('K',), weights=(1,))
|
|
96
|
+
sage: R.inject_variables()
|
|
97
|
+
Defining a, K
|
|
98
|
+
sage: a.T(3).degree()
|
|
99
|
+
4
|
|
100
|
+
sage: K.degree()
|
|
101
|
+
0
|
|
102
|
+
sage: R.category()
|
|
103
|
+
Category of H-graded finitely generated Lie conformal algebras with basis over Rational Field
|
|
104
|
+
"""
|
|
105
|
+
def __init__(self, R, s_coeff, index_set=None, central_elements=None,
|
|
106
|
+
category=None, prefix=None, names=None, latex_names=None,
|
|
107
|
+
parity=None, weights=None, **kwds):
|
|
108
|
+
"""
|
|
109
|
+
Initialize ``self``.
|
|
110
|
+
|
|
111
|
+
TESTS::
|
|
112
|
+
|
|
113
|
+
sage: V = lie_conformal_algebras.Virasoro(QQ)
|
|
114
|
+
sage: TestSuite(V).run()
|
|
115
|
+
"""
|
|
116
|
+
is_super = kwds.get('super', None)
|
|
117
|
+
default_category = LieConformalAlgebras(R).WithBasis().FinitelyGenerated().Graded()
|
|
118
|
+
if is_super or parity:
|
|
119
|
+
category = default_category.Super().or_subcategory(category)
|
|
120
|
+
else:
|
|
121
|
+
category = default_category.or_subcategory(category)
|
|
122
|
+
|
|
123
|
+
LieConformalAlgebraWithStructureCoefficients.__init__(self, R,
|
|
124
|
+
s_coeff, index_set=index_set, central_elements=central_elements,
|
|
125
|
+
category=category, prefix=prefix,
|
|
126
|
+
names=names, latex_names=latex_names, parity=parity, **kwds)
|
|
127
|
+
|
|
128
|
+
if weights is None:
|
|
129
|
+
weights = (1,) * (len(self._generators) -
|
|
130
|
+
len(self.central_elements()))
|
|
131
|
+
if len(weights) != (len(self._generators) -
|
|
132
|
+
len(self.central_elements())):
|
|
133
|
+
raise ValueError("weights and (non-central) generator lists "
|
|
134
|
+
"must be of same length")
|
|
135
|
+
self._weights = weights
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Lie Conformal Algebra
|
|
5
|
+
|
|
6
|
+
Let `R` be a commutative ring, a *super Lie conformal algebra*
|
|
7
|
+
[Kac1997]_ over `R`
|
|
8
|
+
(also known as a *vertex Lie algebra*) is an `R[T]` super module `L`
|
|
9
|
+
together with a `\mathbb{Z}/2\mathbb{Z}`-graded `R`-bilinear
|
|
10
|
+
operation (called the `\lambda`-bracket)
|
|
11
|
+
`L\otimes L \rightarrow L[\lambda]`
|
|
12
|
+
(polynomials in `\lambda` with
|
|
13
|
+
coefficients in `L`), `a \otimes b \mapsto [a_\lambda b]` satisfying
|
|
14
|
+
|
|
15
|
+
1. Sesquilinearity:
|
|
16
|
+
|
|
17
|
+
.. MATH::
|
|
18
|
+
|
|
19
|
+
[Ta_\lambda b] = - \lambda [a_\lambda b], \qquad [a_\lambda Tb] =
|
|
20
|
+
(\lambda+ T) [a_\lambda b].
|
|
21
|
+
|
|
22
|
+
2. Skew-Symmetry:
|
|
23
|
+
|
|
24
|
+
.. MATH::
|
|
25
|
+
|
|
26
|
+
[a_\lambda b] = - (-1)^{p(a)p(b)} [b_{-\lambda - T} a],
|
|
27
|
+
|
|
28
|
+
where `p(a)` is `0` if `a` is *even* and `1` if `a` is *odd*. The
|
|
29
|
+
bracket in the RHS is computed as follows. First we evaluate
|
|
30
|
+
`[b_\mu a]` with the formal
|
|
31
|
+
parameter `\mu` to the *left*, then
|
|
32
|
+
replace each appearance of the formal variable `\mu` by `-\lambda - T`.
|
|
33
|
+
Finally apply `T` to the coefficients in `L`.
|
|
34
|
+
|
|
35
|
+
3. Jacobi identity:
|
|
36
|
+
|
|
37
|
+
.. MATH::
|
|
38
|
+
|
|
39
|
+
[a_\lambda [b_\mu c]] = [ [a_{\lambda + \mu} b]_\mu c] +
|
|
40
|
+
(-1)^{p(a)p(b)} [b_\mu [a_\lambda c ]],
|
|
41
|
+
|
|
42
|
+
which is understood as an equality in `L[\lambda,\mu]`.
|
|
43
|
+
|
|
44
|
+
`T` is usually called the *translation operation* or the *derivative*.
|
|
45
|
+
For an element `a \in L` we will say that `Ta` is the *derivative of*
|
|
46
|
+
`a`. We define the *`n`-th products* `a_{(n)} b` for `a,b \in L` by
|
|
47
|
+
|
|
48
|
+
.. MATH::
|
|
49
|
+
|
|
50
|
+
[a_\lambda b] = \sum_{n \geq 0} \frac{\lambda^n}{n!} a_{(n)} b.
|
|
51
|
+
|
|
52
|
+
A Lie conformal algebra is called *H-Graded* [DSK2006]_ if there exists
|
|
53
|
+
a decomposition `L = \oplus L_n` such that the
|
|
54
|
+
`\lambda`-bracket becomes graded of degree `-1`, that is:
|
|
55
|
+
|
|
56
|
+
.. MATH::
|
|
57
|
+
|
|
58
|
+
a_{(n)} b \in L_{p + q -n -1} \qquad
|
|
59
|
+
a \in L_p, \: b \in L_q, \: n \geq 0.
|
|
60
|
+
|
|
61
|
+
In particular this implies that the action of `T` increases
|
|
62
|
+
degree by `1`.
|
|
63
|
+
|
|
64
|
+
.. NOTE::
|
|
65
|
+
|
|
66
|
+
In the literature arbitrary gradings are allowed. In this
|
|
67
|
+
implementation we only support nonnegative rational gradings.
|
|
68
|
+
|
|
69
|
+
EXAMPLES:
|
|
70
|
+
|
|
71
|
+
1. The **Virasoro** Lie conformal algebra `Vir` over a ring `R`
|
|
72
|
+
where `12` is invertible has two generators `L, C` as an `R[T]`-module.
|
|
73
|
+
It is the direct sum of a free module of rank `1` generated by `L`, and
|
|
74
|
+
a free rank one `R` module generated by `C` satisfying `TC = 0`. `C`
|
|
75
|
+
is central (the `\lambda`-bracket of `C` with any other vector
|
|
76
|
+
vanishes). The remaining `\lambda`-bracket is given by
|
|
77
|
+
|
|
78
|
+
.. MATH::
|
|
79
|
+
|
|
80
|
+
[L_\lambda L] = T L + 2 \lambda L + \frac{\lambda^3}{12} C.
|
|
81
|
+
|
|
82
|
+
2. The **affine** or current Lie conformal algebra `L(\mathfrak{g})`
|
|
83
|
+
associated to a finite dimensional Lie algebra `\mathfrak{g}` with
|
|
84
|
+
non-degenerate, invariant `R`-bilinear form `(,)` is given as a central
|
|
85
|
+
extension of the free
|
|
86
|
+
`R[T]` module generated by `\mathfrak{g}` by a central element `K`. The
|
|
87
|
+
`\lambda`-bracket of generators is given by
|
|
88
|
+
|
|
89
|
+
.. MATH::
|
|
90
|
+
|
|
91
|
+
[a_\lambda b] = [a,b] + \lambda (a,b) K, \qquad a,b \in \mathfrak{g}
|
|
92
|
+
|
|
93
|
+
3. The **Weyl** Lie conformal algebra, or `\beta-\gamma` system is
|
|
94
|
+
given as the central extension of a free `R[T]` module with two
|
|
95
|
+
generators `\beta` and `\gamma`, by a central element `K`.
|
|
96
|
+
The only non-trivial brackets among generators are
|
|
97
|
+
|
|
98
|
+
.. MATH::
|
|
99
|
+
|
|
100
|
+
[\beta_\lambda \gamma] = - [\gamma_\lambda \beta] = K
|
|
101
|
+
|
|
102
|
+
4. The **Neveu-Schwarz** super Lie conformal algebra is a super Lie
|
|
103
|
+
conformal algebra which is an extension of the Virasoro Lie conformal
|
|
104
|
+
algebra. It consists of a Virasoro generator `L` as in example 1 above
|
|
105
|
+
and an *odd* generator `G`. The remaining brackets are given by:
|
|
106
|
+
|
|
107
|
+
.. MATH::
|
|
108
|
+
|
|
109
|
+
[L_\lambda G] = \left( T + \frac{3}{2} \lambda \right) G \qquad
|
|
110
|
+
[G_\lambda G] = 2 L + \frac{\lambda^2}{3} C
|
|
111
|
+
|
|
112
|
+
.. SEEALSO::
|
|
113
|
+
|
|
114
|
+
:mod:`sage.algebras.lie_conformal_algebras.examples`
|
|
115
|
+
|
|
116
|
+
The base class for all Lie conformal algebras is
|
|
117
|
+
:class:`LieConformalAlgebra`.
|
|
118
|
+
All subclasses are called through its method ``__classcall_private__``.
|
|
119
|
+
This class provides no functionality besides calling the appropriate
|
|
120
|
+
constructor.
|
|
121
|
+
|
|
122
|
+
We provide some convenience classes to define named Lie conformal
|
|
123
|
+
algebras. See
|
|
124
|
+
:mod:`sage.algebras.lie_conformal_algebras.examples`.
|
|
125
|
+
|
|
126
|
+
EXAMPLES:
|
|
127
|
+
|
|
128
|
+
- We construct the Virasoro Lie conformal algebra, its universal
|
|
129
|
+
enveloping vertex algebra and lift some elements::
|
|
130
|
+
|
|
131
|
+
sage: Vir = lie_conformal_algebras.Virasoro(QQ)
|
|
132
|
+
sage: Vir.inject_variables()
|
|
133
|
+
Defining L, C
|
|
134
|
+
sage: L.bracket(L)
|
|
135
|
+
{0: TL, 1: 2*L, 3: 1/2*C}
|
|
136
|
+
|
|
137
|
+
- We construct the Current algebra for `\mathfrak{sl}_2`::
|
|
138
|
+
|
|
139
|
+
sage: R = lie_conformal_algebras.Affine(QQ, 'A1', names = ('e', 'h', 'f'))
|
|
140
|
+
sage: R.gens()
|
|
141
|
+
(e, h, f, K)
|
|
142
|
+
sage: R.inject_variables()
|
|
143
|
+
Defining e, h, f, K
|
|
144
|
+
sage: e.bracket(f.T())
|
|
145
|
+
{0: Th, 1: h, 2: 2*K}
|
|
146
|
+
sage: e.T(3)
|
|
147
|
+
6*T^(3)e
|
|
148
|
+
|
|
149
|
+
- We construct the `\beta-\gamma` system by directly giving the
|
|
150
|
+
`\lambda`-brackets of the generators::
|
|
151
|
+
|
|
152
|
+
sage: betagamma_dict = {('b','a'):{0:{('K',0):1}}}
|
|
153
|
+
sage: V = LieConformalAlgebra(QQ, betagamma_dict, names=('a','b'), weights=(1,0), central_elements=('K',))
|
|
154
|
+
sage: V.category()
|
|
155
|
+
Category of H-graded finitely generated Lie conformal algebras with basis over Rational Field
|
|
156
|
+
sage: V.inject_variables()
|
|
157
|
+
Defining a, b, K
|
|
158
|
+
sage: a.bracket(b)
|
|
159
|
+
{0: -K}
|
|
160
|
+
|
|
161
|
+
AUTHORS:
|
|
162
|
+
|
|
163
|
+
- Reimundo Heluani (2019-08-09): Initial implementation.
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
#******************************************************************************
|
|
168
|
+
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
169
|
+
#
|
|
170
|
+
# This program is free software: you can redistribute it and/or modify
|
|
171
|
+
# it under the terms of the GNU General Public License as published by
|
|
172
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
173
|
+
# (at your option) any later version.
|
|
174
|
+
# http://www.gnu.org/licenses/
|
|
175
|
+
#*****************************************************************************
|
|
176
|
+
|
|
177
|
+
from sage.structure.unique_representation import UniqueRepresentation
|
|
178
|
+
from sage.sets.family import Family
|
|
179
|
+
from sage.categories.commutative_rings import CommutativeRings
|
|
180
|
+
from sage.structure.parent import Parent
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
class LieConformalAlgebra(UniqueRepresentation, Parent):
|
|
184
|
+
r"""
|
|
185
|
+
Lie Conformal Algebras base class and factory.
|
|
186
|
+
|
|
187
|
+
INPUT:
|
|
188
|
+
|
|
189
|
+
- ``R`` -- a commutative ring (default: ``None``); the base
|
|
190
|
+
ring of this Lie conformal algebra. Behaviour is undefined
|
|
191
|
+
if it is not a field of characteristic zero.
|
|
192
|
+
|
|
193
|
+
- ``arg0`` -- dictionary (default: ``None``);
|
|
194
|
+
a dictionary containing the `\lambda` brackets of the
|
|
195
|
+
generators of this Lie conformal algebra. The keys of this
|
|
196
|
+
dictionary are pairs of either names or indices of the
|
|
197
|
+
generators and the values are themselves dictionaries. For a
|
|
198
|
+
pair of generators ``'a'`` and ``'b'``, the value of
|
|
199
|
+
``arg0[('a','b')]`` is a dictionary whose keys are positive
|
|
200
|
+
integer numbers and the corresponding value for the
|
|
201
|
+
key ``j`` is a dictionary itself representing the `j`-th product
|
|
202
|
+
`a_{(j)}b`. Thus, for a positive integer number `j`, the
|
|
203
|
+
value of ``arg0[('a','b')][j]`` is a dictionary whose entries
|
|
204
|
+
are pairs ``('c',n)`` where ``'c'`` is the name of a generator
|
|
205
|
+
and ``n`` is a positive number. The value for this key is the
|
|
206
|
+
coefficient of `\frac{T^{n}}{n!} c` in `a_{(j)}b`. For
|
|
207
|
+
example the ``arg0`` for the *Virasoro* Lie conformal algebra
|
|
208
|
+
is::
|
|
209
|
+
|
|
210
|
+
{('L','L'):{0:{('L',1):1}, 1:{('L',0):2}, 3:{('C',0):1/2}}}
|
|
211
|
+
|
|
212
|
+
|
|
213
|
+
Do not include central elements as keys in this dictionary. Also,
|
|
214
|
+
if the key ``('a','b')`` is present, there is no need to include
|
|
215
|
+
``('b','a')`` as it is defined by skew-symmetry. Any missing
|
|
216
|
+
pair (besides the ones defined by skew-symmetry) is assumed
|
|
217
|
+
to have vanishing `\lambda`-bracket.
|
|
218
|
+
|
|
219
|
+
- ``names`` -- tuple of strings (default: ``None``); the list of
|
|
220
|
+
names for generators of this Lie conformal algebra. Do not
|
|
221
|
+
include central elements in this list.
|
|
222
|
+
|
|
223
|
+
- ``central_elements`` -- tuple of strings (default: ``None``);
|
|
224
|
+
a list of names for central elements of this Lie conformal algebra
|
|
225
|
+
|
|
226
|
+
- ``index_set`` -- enumerated set (default: ``None``); an
|
|
227
|
+
indexing set for the generators of this Lie conformal algebra.
|
|
228
|
+
Do not include central elements in this list.
|
|
229
|
+
|
|
230
|
+
- ``weights`` -- tuple of nonnegative rational numbers
|
|
231
|
+
(default: ``None``); a list of degrees for this Lie
|
|
232
|
+
conformal algebra.
|
|
233
|
+
The returned Lie conformal algebra is H-Graded. This tuple
|
|
234
|
+
needs to have the same cardinality as ``index_set`` or
|
|
235
|
+
``names``. Central elements are assumed to have weight `0`.
|
|
236
|
+
|
|
237
|
+
- ``parity`` -- tuple of `0` or `1` (default: tuple of `0`);
|
|
238
|
+
if this is a super Lie conformal algebra, this tuple
|
|
239
|
+
specifies the parity of each of the non-central generators of
|
|
240
|
+
this Lie conformal algebra. Central elements are assumed to
|
|
241
|
+
be even. Notice that if this tuple is present, the category
|
|
242
|
+
of this Lie conformal algebra is set to be a subcategory of
|
|
243
|
+
``LieConformalAlgebras(R).Super()``, even if all generators
|
|
244
|
+
are even.
|
|
245
|
+
|
|
246
|
+
- ``category`` -- the category that this Lie conformal algebra
|
|
247
|
+
belongs to
|
|
248
|
+
|
|
249
|
+
In addition we accept the following keywords:
|
|
250
|
+
|
|
251
|
+
- ``graded`` -- boolean (default: ``False``);
|
|
252
|
+
if ``True``, the returned algebra is H-Graded.
|
|
253
|
+
If ``weights`` is not specified, all non-central generators
|
|
254
|
+
are assigned degree `1`. This keyword is ignored if
|
|
255
|
+
``weights`` is specified
|
|
256
|
+
|
|
257
|
+
- ``super`` -- boolean (default: ``False``);
|
|
258
|
+
if ``True``, the returned algebra is a super
|
|
259
|
+
Lie conformal algebra even if all generators are even.
|
|
260
|
+
If ``parity`` is not specified, all generators are
|
|
261
|
+
assigned even parity. This keyword is ignored if
|
|
262
|
+
``parity`` is specified.
|
|
263
|
+
|
|
264
|
+
.. Note::
|
|
265
|
+
|
|
266
|
+
Any remaining keyword is currently passed to
|
|
267
|
+
:class:`CombinatorialFreeModule<sage.combinat.free_module.CombinatorialFreeModule>`.
|
|
268
|
+
|
|
269
|
+
EXAMPLES:
|
|
270
|
+
|
|
271
|
+
We construct the `\beta-\gamma` system or *Weyl* Lie conformal
|
|
272
|
+
algebra::
|
|
273
|
+
|
|
274
|
+
sage: betagamma_dict = {('b','a'):{0:{('K',0):1}}}
|
|
275
|
+
sage: V = LieConformalAlgebra(QQbar, betagamma_dict, names=('a','b'), weights=(1,0), central_elements=('K',))
|
|
276
|
+
sage: V.category()
|
|
277
|
+
Category of H-graded finitely generated Lie conformal algebras with basis over Algebraic Field
|
|
278
|
+
sage: V.inject_variables()
|
|
279
|
+
Defining a, b, K
|
|
280
|
+
sage: a.bracket(b)
|
|
281
|
+
{0: -K}
|
|
282
|
+
|
|
283
|
+
We construct the current algebra for `\mathfrak{sl}_2`::
|
|
284
|
+
|
|
285
|
+
sage: sl2dict = {('e','f'):{0:{('h',0):1}, 1:{('K',0):1}}, ('e','h'):{0:{('e',0):-2}}, ('f','h'):{0:{('f',0):2}}, ('h', 'h'):{1:{('K', 0):2}}}
|
|
286
|
+
sage: V = LieConformalAlgebra(QQ, sl2dict, names=('e', 'h', 'f'), central_elements=('K',), graded=True)
|
|
287
|
+
sage: V.inject_variables()
|
|
288
|
+
Defining e, h, f, K
|
|
289
|
+
sage: e.bracket(f)
|
|
290
|
+
{0: h, 1: K}
|
|
291
|
+
sage: h.bracket(e)
|
|
292
|
+
{0: 2*e}
|
|
293
|
+
sage: e.bracket(f.T())
|
|
294
|
+
{0: Th, 1: h, 2: 2*K}
|
|
295
|
+
sage: V.category()
|
|
296
|
+
Category of H-graded finitely generated Lie conformal algebras with basis over Rational Field
|
|
297
|
+
sage: e.degree()
|
|
298
|
+
1
|
|
299
|
+
|
|
300
|
+
.. TODO::
|
|
301
|
+
|
|
302
|
+
This class checks that the provided dictionary is consistent
|
|
303
|
+
with skew-symmetry. It does not check that it is consistent
|
|
304
|
+
with the Jacobi identity.
|
|
305
|
+
|
|
306
|
+
.. SEEALSO::
|
|
307
|
+
|
|
308
|
+
:mod:`sage.algebras.lie_conformal_algebras.graded_lie_conformal_algebra`
|
|
309
|
+
"""
|
|
310
|
+
@staticmethod
|
|
311
|
+
def __classcall_private__(cls, R=None, arg0=None, index_set=None,
|
|
312
|
+
central_elements=None, category=None,
|
|
313
|
+
prefix=None, names=None, latex_names=None,
|
|
314
|
+
parity=None, weights=None, **kwds):
|
|
315
|
+
"""
|
|
316
|
+
Lie conformal algebra factory.
|
|
317
|
+
|
|
318
|
+
EXAMPLES::
|
|
319
|
+
|
|
320
|
+
sage: betagamma_dict = {('b','a'):{0:{('K',0):1}}}
|
|
321
|
+
sage: V = LieConformalAlgebra(QQ, betagamma_dict, names=('a','b'), weights=(1,0), central_elements=('K',))
|
|
322
|
+
sage: type(V)
|
|
323
|
+
<class 'sage.algebras.lie_conformal_algebras.graded_lie_conformal_algebra.GradedLieConformalAlgebra_with_category'>
|
|
324
|
+
"""
|
|
325
|
+
if R not in CommutativeRings():
|
|
326
|
+
raise ValueError(f"arg0 must be a commutative ring got {R}")
|
|
327
|
+
|
|
328
|
+
# This is the only exposed class so we clean keywords here
|
|
329
|
+
known_keywords = ['category', 'prefix', 'bracket', 'latex_bracket',
|
|
330
|
+
'string_quotes', 'sorting_key', 'graded', 'super']
|
|
331
|
+
for key in kwds:
|
|
332
|
+
if key not in known_keywords:
|
|
333
|
+
raise ValueError("got an unexpected keyword argument '%s'" % key)
|
|
334
|
+
|
|
335
|
+
if isinstance(arg0, dict) and arg0:
|
|
336
|
+
graded = kwds.pop("graded", False)
|
|
337
|
+
if weights is not None or graded:
|
|
338
|
+
from .graded_lie_conformal_algebra import \
|
|
339
|
+
GradedLieConformalAlgebra
|
|
340
|
+
return GradedLieConformalAlgebra(R, Family(arg0),
|
|
341
|
+
index_set=index_set, central_elements=central_elements,
|
|
342
|
+
category=category, prefix=prefix, names=names,
|
|
343
|
+
latex_names=latex_names, parity=parity, weights=weights,
|
|
344
|
+
**kwds)
|
|
345
|
+
else:
|
|
346
|
+
from .lie_conformal_algebra_with_structure_coefs import \
|
|
347
|
+
LieConformalAlgebraWithStructureCoefficients
|
|
348
|
+
return LieConformalAlgebraWithStructureCoefficients(R,
|
|
349
|
+
Family(arg0), index_set=index_set,
|
|
350
|
+
central_elements=central_elements, category=category,
|
|
351
|
+
prefix=prefix, names=names, latex_names=latex_names,
|
|
352
|
+
parity=parity, **kwds)
|
|
353
|
+
raise NotImplementedError("not implemented")
|