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,113 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Abelian Lie Conformal Algebra
|
|
5
|
+
|
|
6
|
+
For a commutative ring `R` and a free `R`-module `M`. The *Abelian Lie
|
|
7
|
+
conformal algebra* generated by `M` is the free `R[T]` module
|
|
8
|
+
generated by `M` with vanishing `\lambda`-brackets.
|
|
9
|
+
|
|
10
|
+
AUTHORS:
|
|
11
|
+
|
|
12
|
+
- Reimundo Heluani (2020-06-15): Initial implementation.
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
#******************************************************************************
|
|
16
|
+
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
17
|
+
#
|
|
18
|
+
# This program is free software: you can redistribute it and/or modify
|
|
19
|
+
# it under the terms of the GNU General Public License as published by
|
|
20
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
21
|
+
# (at your option) any later version.
|
|
22
|
+
# http://www.gnu.org/licenses/
|
|
23
|
+
#*****************************************************************************
|
|
24
|
+
|
|
25
|
+
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
26
|
+
from sage.structure.indexed_generators import standardize_names_index_set
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class AbelianLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
30
|
+
r"""
|
|
31
|
+
The Abelian Lie conformal algebra.
|
|
32
|
+
|
|
33
|
+
INPUT:
|
|
34
|
+
|
|
35
|
+
- ``R`` -- a commutative ring; the base ring of this Lie
|
|
36
|
+
conformal algebra
|
|
37
|
+
- ``ngens`` -- positive integer (default: `1`); the number
|
|
38
|
+
of generators of this Lie conformal algebra
|
|
39
|
+
- ``weights`` -- list of positive rational numbers (default:
|
|
40
|
+
`1` for each generator); the weights of the generators. The resulting
|
|
41
|
+
Lie conformal algebra is `H`-graded.
|
|
42
|
+
- ``parity`` -- ``None`` or a list of ``0`` or ``1`` (default:
|
|
43
|
+
``None``); the parity of the generators. If not ``None`` the
|
|
44
|
+
resulting Lie Conformal algebra is a Super Lie conformal
|
|
45
|
+
algebra
|
|
46
|
+
- ``names`` -- tuple of strings or ``None`` (default: ``None``);
|
|
47
|
+
the list of names of the generators of this algebra.
|
|
48
|
+
- ``index_set`` -- an enumerated set or ``None`` (default:
|
|
49
|
+
``None``); a set indexing the generators of this Lie
|
|
50
|
+
conformal algebra
|
|
51
|
+
|
|
52
|
+
OUTPUT:
|
|
53
|
+
|
|
54
|
+
The Abelian Lie conformal algebra with generators `a_i`,
|
|
55
|
+
`i=1,...,n` and vanishing `\lambda`-brackets, where `n` is
|
|
56
|
+
``ngens``.
|
|
57
|
+
|
|
58
|
+
EXAMPLES::
|
|
59
|
+
|
|
60
|
+
sage: R = lie_conformal_algebras.Abelian(QQ,2); R
|
|
61
|
+
The Abelian Lie conformal algebra with generators (a0, a1) over Rational Field
|
|
62
|
+
sage: R.inject_variables()
|
|
63
|
+
Defining a0, a1
|
|
64
|
+
sage: a0.bracket(a1.T(2))
|
|
65
|
+
{}
|
|
66
|
+
|
|
67
|
+
TESTS::
|
|
68
|
+
|
|
69
|
+
sage: R.central_elements()
|
|
70
|
+
()
|
|
71
|
+
sage: R.structure_coefficients()
|
|
72
|
+
Finite family {}
|
|
73
|
+
|
|
74
|
+
.. TODO::
|
|
75
|
+
|
|
76
|
+
implement its own class to speed up arithmetics in this
|
|
77
|
+
case.
|
|
78
|
+
"""
|
|
79
|
+
def __init__(self, R, ngens=1, weights=None,
|
|
80
|
+
parity=None, names=None, index_set=None):
|
|
81
|
+
"""
|
|
82
|
+
Initialize ``self``.
|
|
83
|
+
|
|
84
|
+
EXAMPLES::
|
|
85
|
+
|
|
86
|
+
sage: V = lie_conformal_algebras.Abelian(QQ)
|
|
87
|
+
sage: TestSuite(V).run()
|
|
88
|
+
"""
|
|
89
|
+
if (names is None) and (index_set is None):
|
|
90
|
+
names = 'a'
|
|
91
|
+
self._latex_names = tuple(r'a_{%d}' % i for i in range(ngens))
|
|
92
|
+
|
|
93
|
+
names, index_set = standardize_names_index_set(names=names,
|
|
94
|
+
index_set=index_set,
|
|
95
|
+
ngens=ngens)
|
|
96
|
+
abeliandict = {}
|
|
97
|
+
|
|
98
|
+
GradedLieConformalAlgebra.__init__(self, R, abeliandict, names=names,
|
|
99
|
+
index_set=index_set,
|
|
100
|
+
weights=weights,
|
|
101
|
+
parity=parity)
|
|
102
|
+
|
|
103
|
+
def _repr_(self) -> str:
|
|
104
|
+
"""
|
|
105
|
+
String representation.
|
|
106
|
+
|
|
107
|
+
EXAMPLES::
|
|
108
|
+
|
|
109
|
+
sage: lie_conformal_algebras.Abelian(QQ)
|
|
110
|
+
The Abelian Lie conformal algebra with generators (a,) over Rational Field
|
|
111
|
+
"""
|
|
112
|
+
return "The Abelian Lie conformal algebra with generators {} over {}"\
|
|
113
|
+
.format(self.gens(), self.base_ring())
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Affine Lie Conformal Algebra
|
|
5
|
+
|
|
6
|
+
The affine Kac-Moody Lie conformal algebra associated to the
|
|
7
|
+
finite dimensional simple Lie algebra `\mathfrak{g}`. For a commutative
|
|
8
|
+
ring `R`, it is the `R[T]`-module freely generated by `\mathfrak{g}`
|
|
9
|
+
plus a central element `K` satisfying `TK = 0`. The non-vanishing
|
|
10
|
+
`\lambda`-brackets are given by
|
|
11
|
+
|
|
12
|
+
.. MATH::
|
|
13
|
+
|
|
14
|
+
[a_\lambda b] = [a,b] + \lambda (a,b)K,
|
|
15
|
+
|
|
16
|
+
where `a,b \in \mathfrak{g}` and `(a,b)` is the normalized
|
|
17
|
+
form of `\mathfrak{g}` so that its longest root has square-norm
|
|
18
|
+
`2`.
|
|
19
|
+
|
|
20
|
+
AUTHORS:
|
|
21
|
+
|
|
22
|
+
- Reimundo Heluani (2019-08-09): Initial implementation.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
#******************************************************************************
|
|
26
|
+
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
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
|
+
from sage.rings.integer import Integer
|
|
36
|
+
from sage.algebras.lie_algebras.lie_algebra import LieAlgebra
|
|
37
|
+
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class AffineLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
41
|
+
r"""
|
|
42
|
+
The current or affine Kac-Moody Lie conformal algebra.
|
|
43
|
+
|
|
44
|
+
INPUT:
|
|
45
|
+
|
|
46
|
+
- ``R`` -- a commutative Ring; the base ring for this Lie
|
|
47
|
+
conformal algebra
|
|
48
|
+
- ``ct`` -- a ``str`` or a :mod:`CartanType<sage.combinat.\
|
|
49
|
+
root_system.cartan_type>`; the Cartan Type for
|
|
50
|
+
the corresponding finite dimensional Lie algebra. It must
|
|
51
|
+
correspond to a simple finite dimensional Lie algebra.
|
|
52
|
+
- ``names`` -- list of ``str`` or ``None`` (default: ``None``);
|
|
53
|
+
alternative names for the generators. If ``None`` the
|
|
54
|
+
generators are labeled by the corresponding root and coroot
|
|
55
|
+
vectors.
|
|
56
|
+
- ``prefix`` -- a ``str``; parameter passed to
|
|
57
|
+
:class:`IndexedGenerators<sage.structure.indexed_generators.IndexedGenerators>`
|
|
58
|
+
- ``bracket`` -- a ``str``; parameter passed to
|
|
59
|
+
:class:`IndexedGenerators<sage.structure.indexed_generators.IndexedGenerators>`
|
|
60
|
+
|
|
61
|
+
EXAMPLES::
|
|
62
|
+
|
|
63
|
+
sage: R = lie_conformal_algebras.Affine(QQ, 'A1')
|
|
64
|
+
sage: R
|
|
65
|
+
The affine Lie conformal algebra of type ['A', 1] over Rational Field
|
|
66
|
+
sage: R.an_element()
|
|
67
|
+
B[alpha[1]] + B[alphacheck[1]] + B[-alpha[1]] + B['K']
|
|
68
|
+
|
|
69
|
+
sage: R = lie_conformal_algebras.Affine(QQ, 'A1', names = ('e', 'h','f'))
|
|
70
|
+
sage: R.inject_variables()
|
|
71
|
+
Defining e, h, f, K
|
|
72
|
+
sage: Family(e.bracket(f.T(3)))
|
|
73
|
+
Finite family {0: 6*T^(3)h, 1: 6*T^(2)h, 2: 6*Th, 3: 6*h, 4: 24*K}
|
|
74
|
+
|
|
75
|
+
sage: V = lie_conformal_algebras.Affine(QQ, CartanType(["A",2,1]))
|
|
76
|
+
Traceback (most recent call last):
|
|
77
|
+
...
|
|
78
|
+
ValueError: only affine algebras of simple finite dimensionalLie algebras are implemented
|
|
79
|
+
|
|
80
|
+
OUTPUT:
|
|
81
|
+
|
|
82
|
+
The Affine Lie conformal algebra associated with the finite
|
|
83
|
+
dimensional simple Lie algebra of Cartan type ``ct``.
|
|
84
|
+
"""
|
|
85
|
+
def __init__(self, R, ct, names=None, prefix=None, bracket=None):
|
|
86
|
+
"""
|
|
87
|
+
Initialize ``self``.
|
|
88
|
+
|
|
89
|
+
TESTS::
|
|
90
|
+
|
|
91
|
+
sage: V = lie_conformal_algebras.Affine(QQ,'A1')
|
|
92
|
+
sage: TestSuite(V).run()
|
|
93
|
+
"""
|
|
94
|
+
if type(ct) is str:
|
|
95
|
+
from sage.combinat.root_system.cartan_type import CartanType
|
|
96
|
+
try:
|
|
97
|
+
ct = CartanType(ct)
|
|
98
|
+
except IndexError:
|
|
99
|
+
raise ValueError("ct must be a valid Cartan Type")
|
|
100
|
+
if not (ct.is_finite() and ct.is_irreducible):
|
|
101
|
+
raise ValueError("only affine algebras of simple finite dimensional"
|
|
102
|
+
"Lie algebras are implemented")
|
|
103
|
+
hv = Integer(ct.dual_coxeter_number())
|
|
104
|
+
g = LieAlgebra(R, cartan_type=ct)
|
|
105
|
+
B = g.basis()
|
|
106
|
+
S = B.keys()
|
|
107
|
+
gdict = {}
|
|
108
|
+
for k1 in S:
|
|
109
|
+
for k2 in S:
|
|
110
|
+
if S.rank(k2) <= S.rank(k1):
|
|
111
|
+
myb = B[k1].bracket(B[k2]).monomial_coefficients()
|
|
112
|
+
myf = R(2).inverse_of_unit()*R(hv).inverse_of_unit()\
|
|
113
|
+
* g.killing_form(B[k1], B[k2])
|
|
114
|
+
if myb or myf:
|
|
115
|
+
gdict[(k1, k2)] = {}
|
|
116
|
+
if myb:
|
|
117
|
+
gdict[(k1, k2)][0] = {(nk, 0): v
|
|
118
|
+
for nk, v in myb.items()}
|
|
119
|
+
if myf:
|
|
120
|
+
gdict[(k1, k2)][1] = {('K', 0): myf}
|
|
121
|
+
|
|
122
|
+
weights = (1,) * B.cardinality()
|
|
123
|
+
self._ct = ct
|
|
124
|
+
if prefix is None and names is None:
|
|
125
|
+
prefix = 'B'
|
|
126
|
+
|
|
127
|
+
GradedLieConformalAlgebra.__init__(self,
|
|
128
|
+
R, gdict, index_set=S,
|
|
129
|
+
central_elements=('K',), weights=weights,
|
|
130
|
+
names=names, prefix=prefix, bracket=bracket)
|
|
131
|
+
|
|
132
|
+
def cartan_type(self):
|
|
133
|
+
"""
|
|
134
|
+
The Cartan type of this Lie conformal algbera.
|
|
135
|
+
|
|
136
|
+
EXAMPLES::
|
|
137
|
+
|
|
138
|
+
sage: R = lie_conformal_algebras.Affine(QQ, 'B3')
|
|
139
|
+
sage: R
|
|
140
|
+
The affine Lie conformal algebra of type ['B', 3] over Rational Field
|
|
141
|
+
sage: R.cartan_type()
|
|
142
|
+
['B', 3]
|
|
143
|
+
"""
|
|
144
|
+
return self._ct
|
|
145
|
+
|
|
146
|
+
def _repr_(self) -> str:
|
|
147
|
+
"""
|
|
148
|
+
The name of this Lie conformal algebra.
|
|
149
|
+
|
|
150
|
+
EXAMPLES::
|
|
151
|
+
|
|
152
|
+
sage: lie_conformal_algebras.Affine(QQ, 'A1')
|
|
153
|
+
The affine Lie conformal algebra of type ['A', 1] over Rational Field
|
|
154
|
+
"""
|
|
155
|
+
return "The affine Lie conformal algebra of type {} over {}".format(
|
|
156
|
+
self._ct, self.base_ring())
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# ******************************************************************************
|
|
3
|
+
# Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
|
|
4
|
+
#
|
|
5
|
+
# This program is free software: you can redistribute it and/or modify
|
|
6
|
+
# it under the terms of the GNU General Public License as published by
|
|
7
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
8
|
+
# (at your option) any later version.
|
|
9
|
+
# https://www.gnu.org/licenses/
|
|
10
|
+
# *****************************************************************************
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
from sage.misc.lazy_import import lazy_import
|
|
14
|
+
lazy_import('sage.algebras.lie_conformal_algebras.lie_conformal_algebra',
|
|
15
|
+
'LieConformalAlgebra')
|
|
16
|
+
lazy_import('sage.algebras.lie_conformal_algebras',
|
|
17
|
+
'examples', 'lie_conformal_algebras')
|
|
18
|
+
del lazy_import
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Bosonic Ghosts Lie Conformal Algebra
|
|
5
|
+
|
|
6
|
+
The *Bosonic-ghosts* or `\beta-\gamma`-system Lie conformal algebra
|
|
7
|
+
with `2n` generators is the H-graded Lie conformal algebra generated
|
|
8
|
+
by `\beta_i, \gamma_i, i = 1,\ldots,n` and a central element `K`, with
|
|
9
|
+
non-vanishing `\lambda`-brackets:
|
|
10
|
+
|
|
11
|
+
.. MATH::
|
|
12
|
+
|
|
13
|
+
[{\beta_i}_\lambda \gamma_j] = \delta_{ij} K.
|
|
14
|
+
|
|
15
|
+
The generators `\beta_i` have degree `1` while the generators `\gamma_i`
|
|
16
|
+
have degree `0`.
|
|
17
|
+
|
|
18
|
+
AUTHORS:
|
|
19
|
+
|
|
20
|
+
- Reimundo Heluani (2020-06-15): Initial implementation.
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
#******************************************************************************
|
|
24
|
+
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
25
|
+
#
|
|
26
|
+
# This program is free software: you can redistribute it and/or modify
|
|
27
|
+
# it under the terms of the GNU General Public License as published by
|
|
28
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
29
|
+
# (at your option) any later version.
|
|
30
|
+
# http://www.gnu.org/licenses/
|
|
31
|
+
#*****************************************************************************
|
|
32
|
+
|
|
33
|
+
from sage.matrix.special import identity_matrix
|
|
34
|
+
from sage.structure.indexed_generators import standardize_names_index_set
|
|
35
|
+
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class BosonicGhostsLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
39
|
+
r"""
|
|
40
|
+
The Bosonic ghosts or `\beta-\gamma`-system Lie conformal
|
|
41
|
+
algebra.
|
|
42
|
+
|
|
43
|
+
INPUT:
|
|
44
|
+
|
|
45
|
+
- ``R`` -- a commutative ring
|
|
46
|
+
- ``ngens`` -- an even positive Integer (default: ``2``); the
|
|
47
|
+
number of non-central generators of this Lie conformal
|
|
48
|
+
algebra.
|
|
49
|
+
- ``names`` -- list of ``str``; alternative names for the
|
|
50
|
+
generators
|
|
51
|
+
- ``index_set`` -- an enumerated set; an indexing set for the
|
|
52
|
+
generators
|
|
53
|
+
|
|
54
|
+
OUTPUT:
|
|
55
|
+
|
|
56
|
+
The Bosonic Ghosts Lie conformal algebra with generators
|
|
57
|
+
`\beta_i,\gamma_i, i=1,\ldots,n` and `K`, where `2n` is
|
|
58
|
+
``ngens``.
|
|
59
|
+
|
|
60
|
+
EXAMPLES::
|
|
61
|
+
|
|
62
|
+
sage: R = lie_conformal_algebras.BosonicGhosts(QQ); R
|
|
63
|
+
The Bosonic ghosts Lie conformal algebra with generators (beta, gamma, K) over Rational Field
|
|
64
|
+
sage: R.inject_variables(); beta.bracket(gamma)
|
|
65
|
+
Defining beta, gamma, K
|
|
66
|
+
{0: K}
|
|
67
|
+
sage: beta.degree()
|
|
68
|
+
1
|
|
69
|
+
sage: gamma.degree()
|
|
70
|
+
0
|
|
71
|
+
|
|
72
|
+
sage: R = lie_conformal_algebras.BosonicGhosts(QQbar, ngens = 4, names = 'abcd'); R
|
|
73
|
+
The Bosonic ghosts Lie conformal algebra with generators (a, b, c, d, K) over Algebraic Field
|
|
74
|
+
sage: R.structure_coefficients()
|
|
75
|
+
Finite family {('a', 'c'): ((0, K),), ('b', 'd'): ((0, K),), ('c', 'a'): ((0, -K),), ('d', 'b'): ((0, -K),)}
|
|
76
|
+
|
|
77
|
+
TESTS::
|
|
78
|
+
|
|
79
|
+
sage: lie_conformal_algebras.BosonicGhosts(AA).category()
|
|
80
|
+
Category of H-graded finitely generated Lie conformal algebras with basis over Algebraic Real Field
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
def __init__(self, R, ngens=2, names=None, index_set=None):
|
|
84
|
+
"""
|
|
85
|
+
Initialize ``self``.
|
|
86
|
+
|
|
87
|
+
TESTS::
|
|
88
|
+
|
|
89
|
+
sage: V = lie_conformal_algebras.BosonicGhosts(QQ)
|
|
90
|
+
sage: TestSuite(V).run()
|
|
91
|
+
"""
|
|
92
|
+
from sage.rings.integer_ring import ZZ
|
|
93
|
+
try:
|
|
94
|
+
assert (ngens in ZZ and ngens > 0 and not ngens % 2)
|
|
95
|
+
except AssertionError:
|
|
96
|
+
raise ValueError("ngens should be an even positive integer, " +
|
|
97
|
+
"got {}".format(ngens))
|
|
98
|
+
latex_names = None
|
|
99
|
+
half = ngens // 2
|
|
100
|
+
if (names is None) and (index_set is None):
|
|
101
|
+
from sage.misc.defaults import variable_names as varnames
|
|
102
|
+
from sage.misc.defaults import latex_variable_names as laxnames
|
|
103
|
+
names = varnames(half, 'beta') + varnames(half, 'gamma')
|
|
104
|
+
latex_names = tuple(laxnames(half, r'\beta') +
|
|
105
|
+
laxnames(half, r'\gamma')) + ('K',)
|
|
106
|
+
|
|
107
|
+
names, index_set = standardize_names_index_set(names=names,
|
|
108
|
+
index_set=index_set,
|
|
109
|
+
ngens=ngens)
|
|
110
|
+
A = identity_matrix(R, half)
|
|
111
|
+
from sage.matrix.special import block_matrix
|
|
112
|
+
gram_matrix = block_matrix([[R.zero(), A], [-A, R.zero()]])
|
|
113
|
+
ghostsdict = {(i, j): {0: {('K', 0): gram_matrix[index_set.rank(i),
|
|
114
|
+
index_set.rank(j)]}}
|
|
115
|
+
for i in index_set for j in index_set}
|
|
116
|
+
weights = (1,) * half + (0,) * half
|
|
117
|
+
super().__init__(R,
|
|
118
|
+
ghostsdict, names=names,
|
|
119
|
+
latex_names=latex_names,
|
|
120
|
+
index_set=index_set,
|
|
121
|
+
weights=weights,
|
|
122
|
+
central_elements=('K',))
|
|
123
|
+
|
|
124
|
+
def _repr_(self) -> str:
|
|
125
|
+
"""
|
|
126
|
+
String representation.
|
|
127
|
+
|
|
128
|
+
EXAMPLES::
|
|
129
|
+
|
|
130
|
+
sage: lie_conformal_algebras.BosonicGhosts(QQbar)
|
|
131
|
+
The Bosonic ghosts Lie conformal algebra with generators (beta, gamma, K) over Algebraic Field
|
|
132
|
+
"""
|
|
133
|
+
return "The Bosonic ghosts Lie conformal algebra with generators {} "\
|
|
134
|
+
"over {}".format(self.gens(), self.base_ring())
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
r"""
|
|
3
|
+
Examples of Lie Conformal Algebras
|
|
4
|
+
|
|
5
|
+
We implement the following examples of Lie conformal algebras:
|
|
6
|
+
|
|
7
|
+
- :mod:`Abelian Lie conformal algebra<.abelian_lie_conformal_algebra>`
|
|
8
|
+
- :mod:`Affine Lie conformal algebra<.affine_lie_conformal_algebra>`
|
|
9
|
+
- :mod:`Bosonic Ghosts<.bosonic_ghosts_lie_conformal_algebra>`
|
|
10
|
+
- :mod:`Fermionic Ghosts<.fermionic_ghosts_lie_conformal_algebra>`
|
|
11
|
+
- :mod:`Free Bosons<.free_bosons_lie_conformal_algebra>`
|
|
12
|
+
- :mod:`Free Fermions<.free_fermions_lie_conformal_algebra>`
|
|
13
|
+
- :mod:`N=2 super Lie Conformal algebra<.n2_lie_conformal_algebra>`
|
|
14
|
+
- :mod:`Neveu-Schwarz super Lie conformal
|
|
15
|
+
algebra<.neveu_schwarz_lie_conformal_algebra>`
|
|
16
|
+
- :mod:`Virasoro Lie conformal algebra<.virasoro_lie_conformal_algebra>`
|
|
17
|
+
- :mod:`Weyl Lie conformal algebra<.weyl_lie_conformal_algebra>`
|
|
18
|
+
|
|
19
|
+
AUTHORS:
|
|
20
|
+
|
|
21
|
+
- Reimundo Heluani (2020-06-15): Initial implementation.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
# *****************************************************************************
|
|
25
|
+
# Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
|
|
26
|
+
#
|
|
27
|
+
# This program is free software: you can redistribute it and/or modify
|
|
28
|
+
# it under the terms of the GNU General Public License as published by
|
|
29
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
30
|
+
# (at your option) any later version.
|
|
31
|
+
# https://www.gnu.org/licenses/
|
|
32
|
+
# ****************************************************************************
|
|
33
|
+
|
|
34
|
+
from .abelian_lie_conformal_algebra import AbelianLieConformalAlgebra as Abelian
|
|
35
|
+
from .affine_lie_conformal_algebra import AffineLieConformalAlgebra as Affine
|
|
36
|
+
from .bosonic_ghosts_lie_conformal_algebra import BosonicGhostsLieConformalAlgebra as BosonicGhosts
|
|
37
|
+
from .fermionic_ghosts_lie_conformal_algebra import FermionicGhostsLieConformalAlgebra as FermionicGhosts
|
|
38
|
+
from .free_bosons_lie_conformal_algebra import FreeBosonsLieConformalAlgebra as FreeBosons
|
|
39
|
+
from .free_fermions_lie_conformal_algebra import FreeFermionsLieConformalAlgebra as FreeFermions
|
|
40
|
+
from .n2_lie_conformal_algebra import N2LieConformalAlgebra as N2
|
|
41
|
+
from .neveu_schwarz_lie_conformal_algebra import NeveuSchwarzLieConformalAlgebra as NeveuSchwarz
|
|
42
|
+
from .virasoro_lie_conformal_algebra import VirasoroLieConformalAlgebra as Virasoro
|
|
43
|
+
from .weyl_lie_conformal_algebra import WeylLieConformalAlgebra as Weyl
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-combinat
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Fermionic Ghosts Super Lie Conformal Algebra
|
|
5
|
+
|
|
6
|
+
The *Fermionic-ghosts* or b--c system super Lie conformal algebra
|
|
7
|
+
with `2n` generators is the H-graded super Lie conformal algebra
|
|
8
|
+
generated by odd vectors `b_i, c_i, i = 1,\ldots,n` and a central
|
|
9
|
+
element `K`, with non-vanishing `\lambda`-brackets:
|
|
10
|
+
|
|
11
|
+
.. MATH::
|
|
12
|
+
|
|
13
|
+
[{b_i}_\lambda c_j] = \delta_{ij} K.
|
|
14
|
+
|
|
15
|
+
The generators `b_i` have degree `1` while the generators `c_i`
|
|
16
|
+
have degree `0`.
|
|
17
|
+
|
|
18
|
+
AUTHORS:
|
|
19
|
+
|
|
20
|
+
- Reimundo Heluani (2020-06-03): Initial implementation.
|
|
21
|
+
"""
|
|
22
|
+
#******************************************************************************
|
|
23
|
+
# Copyright (C) 2020 Reimundo Heluani <heluani@potuz.net>
|
|
24
|
+
#
|
|
25
|
+
# This program is free software: you can redistribute it and/or modify
|
|
26
|
+
# it under the terms of the GNU General Public License as published by
|
|
27
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
28
|
+
# (at your option) any later version.
|
|
29
|
+
# http://www.gnu.org/licenses/
|
|
30
|
+
#*****************************************************************************
|
|
31
|
+
|
|
32
|
+
from .graded_lie_conformal_algebra import GradedLieConformalAlgebra
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class FermionicGhostsLieConformalAlgebra(GradedLieConformalAlgebra):
|
|
36
|
+
r"""
|
|
37
|
+
The Fermionic ghosts or `bc`-system super Lie conformal algebra.
|
|
38
|
+
|
|
39
|
+
INPUT:
|
|
40
|
+
|
|
41
|
+
- ``R`` -- a commutative ring; the base ring of this Lie
|
|
42
|
+
conformal algebra
|
|
43
|
+
- ``ngens`` -- an even positive Integer (default: ``2``); the
|
|
44
|
+
number of non-central generators of this Lie conformal
|
|
45
|
+
algebra
|
|
46
|
+
- ``names`` -- tuple of strings; alternative names for the
|
|
47
|
+
generators
|
|
48
|
+
- ``index_set`` -- an enumerated set; alternative indexing
|
|
49
|
+
set for the generators
|
|
50
|
+
|
|
51
|
+
OUTPUT:
|
|
52
|
+
|
|
53
|
+
The Fermionic Ghosts super Lie conformal algebra with generators
|
|
54
|
+
`b_i,c_i, i=1,\ldots,n` and `K` where `2n` is ``ngens``.
|
|
55
|
+
|
|
56
|
+
EXAMPLES::
|
|
57
|
+
|
|
58
|
+
sage: R = lie_conformal_algebras.FermionicGhosts(QQ); R
|
|
59
|
+
The Fermionic ghosts Lie conformal algebra with generators (b, c, K) over Rational Field
|
|
60
|
+
sage: R.inject_variables()
|
|
61
|
+
Defining b, c, K
|
|
62
|
+
sage: b.bracket(c) == c.bracket(b)
|
|
63
|
+
True
|
|
64
|
+
sage: b.degree()
|
|
65
|
+
1
|
|
66
|
+
sage: c.degree()
|
|
67
|
+
0
|
|
68
|
+
sage: R.category()
|
|
69
|
+
Category of H-graded super finitely generated Lie conformal algebras with basis over Rational Field
|
|
70
|
+
|
|
71
|
+
sage: R = lie_conformal_algebras.FermionicGhosts(QQbar, ngens=4, names = 'abcd');R
|
|
72
|
+
The Fermionic ghosts Lie conformal algebra with generators (a, b, c, d, K) over Algebraic Field
|
|
73
|
+
sage: R.structure_coefficients()
|
|
74
|
+
Finite family {('a', 'c'): ((0, K),), ('b', 'd'): ((0, K),), ('c', 'a'): ((0, K),), ('d', 'b'): ((0, K),)}
|
|
75
|
+
"""
|
|
76
|
+
def __init__(self, R, ngens=2, names=None, index_set=None):
|
|
77
|
+
"""
|
|
78
|
+
Initialize ``self``.
|
|
79
|
+
|
|
80
|
+
TESTS::
|
|
81
|
+
|
|
82
|
+
sage: V = lie_conformal_algebras.BosonicGhosts(QQ)
|
|
83
|
+
sage: TestSuite(V).run()
|
|
84
|
+
"""
|
|
85
|
+
try:
|
|
86
|
+
assert (ngens > 0 and not ngens % 2)
|
|
87
|
+
except AssertionError:
|
|
88
|
+
raise ValueError("ngens should be an even positive integer, " +
|
|
89
|
+
"got {}".format(ngens))
|
|
90
|
+
latex_names = None
|
|
91
|
+
half = ngens // 2
|
|
92
|
+
if (names is None) and (index_set is None):
|
|
93
|
+
from sage.misc.defaults import variable_names as varnames
|
|
94
|
+
from sage.misc.defaults import latex_variable_names as laxnames
|
|
95
|
+
names = varnames(half, 'b') + varnames(half, 'c')
|
|
96
|
+
latex_names = tuple(laxnames(half, 'b') +
|
|
97
|
+
laxnames(half, 'c')) + ('K',)
|
|
98
|
+
|
|
99
|
+
from sage.structure.indexed_generators import \
|
|
100
|
+
standardize_names_index_set
|
|
101
|
+
names, index_set = standardize_names_index_set(names=names,
|
|
102
|
+
index_set=index_set,
|
|
103
|
+
ngens=ngens)
|
|
104
|
+
from sage.matrix.special import identity_matrix
|
|
105
|
+
A = identity_matrix(R, half)
|
|
106
|
+
from sage.matrix.special import block_matrix
|
|
107
|
+
gram_matrix = block_matrix([[R.zero(), A], [A, R.zero()]])
|
|
108
|
+
ghostsdict = {(i, j): {0: {('K', 0): gram_matrix[index_set.rank(i),
|
|
109
|
+
index_set.rank(j)]}}
|
|
110
|
+
for i in index_set for j in index_set}
|
|
111
|
+
weights = (1,) * half + (0,) * half
|
|
112
|
+
parity = (1,) * ngens
|
|
113
|
+
super().__init__(R,
|
|
114
|
+
ghostsdict, names=names,
|
|
115
|
+
latex_names=latex_names,
|
|
116
|
+
index_set=index_set,
|
|
117
|
+
weights=weights,
|
|
118
|
+
parity=parity,
|
|
119
|
+
central_elements=('K',))
|
|
120
|
+
|
|
121
|
+
def _repr_(self) -> str:
|
|
122
|
+
"""
|
|
123
|
+
String representation.
|
|
124
|
+
|
|
125
|
+
EXAMPLES::
|
|
126
|
+
|
|
127
|
+
sage: lie_conformal_algebras.FermionicGhosts(QQ)
|
|
128
|
+
The Fermionic ghosts Lie conformal algebra with generators (b, c, K) over Rational Field
|
|
129
|
+
"""
|
|
130
|
+
return "The Fermionic ghosts Lie conformal algebra with generators {} "\
|
|
131
|
+
"over {}".format(self.gens(), self.base_ring())
|