passagemath-categories 10.6.32__cp314-cp314t-musllinux_1_2_aarch64.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_categories-10.6.32.dist-info/METADATA +156 -0
- passagemath_categories-10.6.32.dist-info/RECORD +719 -0
- passagemath_categories-10.6.32.dist-info/WHEEL +5 -0
- passagemath_categories-10.6.32.dist-info/top_level.txt +2 -0
- passagemath_categories.libs/libgcc_s-2d945d6c.so.1 +0 -0
- passagemath_categories.libs/libgmp-28992bcb.so.10.5.0 +0 -0
- passagemath_categories.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
- sage/all__sagemath_categories.py +28 -0
- sage/arith/all.py +38 -0
- sage/arith/constants.pxd +27 -0
- sage/arith/functions.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/functions.pxd +4 -0
- sage/arith/functions.pyx +221 -0
- sage/arith/misc.py +6552 -0
- sage/arith/multi_modular.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/multi_modular.pxd +39 -0
- sage/arith/multi_modular.pyx +994 -0
- sage/arith/rational_reconstruction.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/rational_reconstruction.pxd +4 -0
- sage/arith/rational_reconstruction.pyx +115 -0
- sage/arith/srange.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/arith/srange.pyx +571 -0
- sage/calculus/all__sagemath_categories.py +2 -0
- sage/calculus/functional.py +481 -0
- sage/calculus/functions.py +151 -0
- sage/categories/additive_groups.py +73 -0
- sage/categories/additive_magmas.py +1044 -0
- sage/categories/additive_monoids.py +114 -0
- sage/categories/additive_semigroups.py +184 -0
- sage/categories/affine_weyl_groups.py +238 -0
- sage/categories/algebra_ideals.py +95 -0
- sage/categories/algebra_modules.py +96 -0
- sage/categories/algebras.py +349 -0
- sage/categories/algebras_with_basis.py +377 -0
- sage/categories/all.py +160 -0
- sage/categories/aperiodic_semigroups.py +29 -0
- sage/categories/associative_algebras.py +47 -0
- sage/categories/bialgebras.py +101 -0
- sage/categories/bialgebras_with_basis.py +414 -0
- sage/categories/bimodules.py +206 -0
- sage/categories/chain_complexes.py +268 -0
- sage/categories/classical_crystals.py +480 -0
- sage/categories/coalgebras.py +405 -0
- sage/categories/coalgebras_with_basis.py +232 -0
- sage/categories/coercion_methods.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/categories/coercion_methods.pyx +52 -0
- sage/categories/commutative_additive_groups.py +104 -0
- sage/categories/commutative_additive_monoids.py +45 -0
- sage/categories/commutative_additive_semigroups.py +48 -0
- sage/categories/commutative_algebra_ideals.py +87 -0
- sage/categories/commutative_algebras.py +94 -0
- sage/categories/commutative_ring_ideals.py +58 -0
- sage/categories/commutative_rings.py +736 -0
- sage/categories/complete_discrete_valuation.py +293 -0
- sage/categories/complex_reflection_groups.py +145 -0
- sage/categories/complex_reflection_or_generalized_coxeter_groups.py +1249 -0
- sage/categories/coxeter_group_algebras.py +186 -0
- sage/categories/coxeter_groups.py +3402 -0
- sage/categories/crystals.py +2628 -0
- sage/categories/cw_complexes.py +216 -0
- sage/categories/dedekind_domains.py +137 -0
- sage/categories/discrete_valuation.py +325 -0
- sage/categories/distributive_magmas_and_additive_magmas.py +100 -0
- sage/categories/division_rings.py +114 -0
- sage/categories/domains.py +95 -0
- sage/categories/drinfeld_modules.py +789 -0
- sage/categories/dual.py +42 -0
- sage/categories/enumerated_sets.py +1146 -0
- sage/categories/euclidean_domains.py +271 -0
- sage/categories/examples/algebras_with_basis.py +102 -0
- sage/categories/examples/all.py +1 -0
- sage/categories/examples/commutative_additive_monoids.py +130 -0
- sage/categories/examples/commutative_additive_semigroups.py +199 -0
- sage/categories/examples/coxeter_groups.py +8 -0
- sage/categories/examples/crystals.py +236 -0
- sage/categories/examples/cw_complexes.py +163 -0
- sage/categories/examples/facade_sets.py +187 -0
- sage/categories/examples/filtered_algebras_with_basis.py +204 -0
- sage/categories/examples/filtered_modules_with_basis.py +154 -0
- sage/categories/examples/finite_coxeter_groups.py +252 -0
- sage/categories/examples/finite_dimensional_algebras_with_basis.py +148 -0
- sage/categories/examples/finite_dimensional_lie_algebras_with_basis.py +495 -0
- sage/categories/examples/finite_enumerated_sets.py +208 -0
- sage/categories/examples/finite_monoids.py +150 -0
- sage/categories/examples/finite_semigroups.py +190 -0
- sage/categories/examples/finite_weyl_groups.py +191 -0
- sage/categories/examples/graded_connected_hopf_algebras_with_basis.py +152 -0
- sage/categories/examples/graded_modules_with_basis.py +168 -0
- sage/categories/examples/graphs.py +122 -0
- sage/categories/examples/hopf_algebras_with_basis.py +145 -0
- sage/categories/examples/infinite_enumerated_sets.py +190 -0
- sage/categories/examples/lie_algebras.py +352 -0
- sage/categories/examples/lie_algebras_with_basis.py +196 -0
- sage/categories/examples/magmas.py +162 -0
- sage/categories/examples/manifolds.py +94 -0
- sage/categories/examples/monoids.py +144 -0
- sage/categories/examples/posets.py +178 -0
- sage/categories/examples/semigroups.py +580 -0
- sage/categories/examples/semigroups_cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/categories/examples/semigroups_cython.pyx +221 -0
- sage/categories/examples/semirings.py +249 -0
- sage/categories/examples/sets_cat.py +706 -0
- sage/categories/examples/sets_with_grading.py +101 -0
- sage/categories/examples/with_realizations.py +542 -0
- sage/categories/fields.py +991 -0
- sage/categories/filtered_algebras.py +63 -0
- sage/categories/filtered_algebras_with_basis.py +548 -0
- sage/categories/filtered_hopf_algebras_with_basis.py +138 -0
- sage/categories/filtered_modules.py +210 -0
- sage/categories/filtered_modules_with_basis.py +1209 -0
- sage/categories/finite_complex_reflection_groups.py +1506 -0
- sage/categories/finite_coxeter_groups.py +1138 -0
- sage/categories/finite_crystals.py +103 -0
- sage/categories/finite_dimensional_algebras_with_basis.py +1860 -0
- sage/categories/finite_dimensional_bialgebras_with_basis.py +33 -0
- sage/categories/finite_dimensional_coalgebras_with_basis.py +33 -0
- sage/categories/finite_dimensional_graded_lie_algebras_with_basis.py +231 -0
- sage/categories/finite_dimensional_hopf_algebras_with_basis.py +38 -0
- sage/categories/finite_dimensional_lie_algebras_with_basis.py +2774 -0
- sage/categories/finite_dimensional_modules_with_basis.py +1407 -0
- sage/categories/finite_dimensional_nilpotent_lie_algebras_with_basis.py +167 -0
- sage/categories/finite_dimensional_semisimple_algebras_with_basis.py +270 -0
- sage/categories/finite_enumerated_sets.py +769 -0
- sage/categories/finite_fields.py +252 -0
- sage/categories/finite_groups.py +256 -0
- sage/categories/finite_lattice_posets.py +242 -0
- sage/categories/finite_monoids.py +316 -0
- sage/categories/finite_permutation_groups.py +339 -0
- sage/categories/finite_posets.py +1994 -0
- sage/categories/finite_semigroups.py +136 -0
- sage/categories/finite_sets.py +93 -0
- sage/categories/finite_weyl_groups.py +39 -0
- sage/categories/finitely_generated_lambda_bracket_algebras.py +112 -0
- sage/categories/finitely_generated_lie_conformal_algebras.py +114 -0
- sage/categories/finitely_generated_magmas.py +57 -0
- sage/categories/finitely_generated_semigroups.py +214 -0
- sage/categories/function_fields.py +76 -0
- sage/categories/g_sets.py +77 -0
- sage/categories/gcd_domains.py +65 -0
- sage/categories/generalized_coxeter_groups.py +94 -0
- sage/categories/graded_algebras.py +85 -0
- sage/categories/graded_algebras_with_basis.py +258 -0
- sage/categories/graded_bialgebras.py +32 -0
- sage/categories/graded_bialgebras_with_basis.py +32 -0
- sage/categories/graded_coalgebras.py +65 -0
- sage/categories/graded_coalgebras_with_basis.py +51 -0
- sage/categories/graded_hopf_algebras.py +41 -0
- sage/categories/graded_hopf_algebras_with_basis.py +169 -0
- sage/categories/graded_lie_algebras.py +91 -0
- sage/categories/graded_lie_algebras_with_basis.py +44 -0
- sage/categories/graded_lie_conformal_algebras.py +74 -0
- sage/categories/graded_modules.py +133 -0
- sage/categories/graded_modules_with_basis.py +329 -0
- sage/categories/graphs.py +138 -0
- sage/categories/group_algebras.py +430 -0
- sage/categories/groupoid.py +94 -0
- sage/categories/groups.py +667 -0
- sage/categories/h_trivial_semigroups.py +64 -0
- sage/categories/hecke_modules.py +185 -0
- sage/categories/highest_weight_crystals.py +980 -0
- sage/categories/hopf_algebras.py +219 -0
- sage/categories/hopf_algebras_with_basis.py +309 -0
- sage/categories/infinite_enumerated_sets.py +115 -0
- sage/categories/integral_domains.py +203 -0
- sage/categories/j_trivial_semigroups.py +29 -0
- sage/categories/kac_moody_algebras.py +82 -0
- sage/categories/kahler_algebras.py +203 -0
- sage/categories/l_trivial_semigroups.py +63 -0
- sage/categories/lambda_bracket_algebras.py +280 -0
- sage/categories/lambda_bracket_algebras_with_basis.py +107 -0
- sage/categories/lattice_posets.py +89 -0
- sage/categories/left_modules.py +49 -0
- sage/categories/lie_algebras.py +1070 -0
- sage/categories/lie_algebras_with_basis.py +261 -0
- sage/categories/lie_conformal_algebras.py +350 -0
- sage/categories/lie_conformal_algebras_with_basis.py +147 -0
- sage/categories/lie_groups.py +73 -0
- sage/categories/loop_crystals.py +1290 -0
- sage/categories/magmas.py +1189 -0
- sage/categories/magmas_and_additive_magmas.py +149 -0
- sage/categories/magmatic_algebras.py +365 -0
- sage/categories/manifolds.py +352 -0
- sage/categories/matrix_algebras.py +40 -0
- sage/categories/metric_spaces.py +387 -0
- sage/categories/modular_abelian_varieties.py +78 -0
- sage/categories/modules.py +989 -0
- sage/categories/modules_with_basis.py +2794 -0
- sage/categories/monoid_algebras.py +38 -0
- sage/categories/monoids.py +739 -0
- sage/categories/noetherian_rings.py +87 -0
- sage/categories/number_fields.py +242 -0
- sage/categories/ore_modules.py +189 -0
- sage/categories/partially_ordered_monoids.py +49 -0
- sage/categories/permutation_groups.py +63 -0
- sage/categories/pointed_sets.py +42 -0
- sage/categories/polyhedra.py +74 -0
- sage/categories/poor_man_map.py +270 -0
- sage/categories/posets.py +722 -0
- sage/categories/principal_ideal_domains.py +270 -0
- sage/categories/quantum_group_representations.py +543 -0
- sage/categories/quotient_fields.py +728 -0
- sage/categories/r_trivial_semigroups.py +45 -0
- sage/categories/regular_crystals.py +898 -0
- sage/categories/regular_supercrystals.py +170 -0
- sage/categories/right_modules.py +49 -0
- sage/categories/ring_ideals.py +74 -0
- sage/categories/rings.py +1904 -0
- sage/categories/rngs.py +175 -0
- sage/categories/schemes.py +393 -0
- sage/categories/semigroups.py +1060 -0
- sage/categories/semirings.py +71 -0
- sage/categories/semisimple_algebras.py +114 -0
- sage/categories/sets_with_grading.py +235 -0
- sage/categories/shephard_groups.py +43 -0
- sage/categories/signed_tensor.py +120 -0
- sage/categories/simplicial_complexes.py +134 -0
- sage/categories/simplicial_sets.py +1206 -0
- sage/categories/super_algebras.py +149 -0
- sage/categories/super_algebras_with_basis.py +144 -0
- sage/categories/super_hopf_algebras_with_basis.py +126 -0
- sage/categories/super_lie_conformal_algebras.py +193 -0
- sage/categories/super_modules.py +229 -0
- sage/categories/super_modules_with_basis.py +193 -0
- sage/categories/supercommutative_algebras.py +99 -0
- sage/categories/supercrystals.py +406 -0
- sage/categories/tensor.py +110 -0
- sage/categories/topological_spaces.py +170 -0
- sage/categories/triangular_kac_moody_algebras.py +439 -0
- sage/categories/tutorial.py +58 -0
- sage/categories/unique_factorization_domains.py +318 -0
- sage/categories/unital_algebras.py +426 -0
- sage/categories/vector_bundles.py +159 -0
- sage/categories/vector_spaces.py +357 -0
- sage/categories/weyl_groups.py +853 -0
- sage/combinat/all__sagemath_categories.py +34 -0
- sage/combinat/backtrack.py +180 -0
- sage/combinat/combinat.py +2269 -0
- sage/combinat/combinat_cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/combinat_cython.pxd +6 -0
- sage/combinat/combinat_cython.pyx +390 -0
- sage/combinat/combination.py +796 -0
- sage/combinat/combinatorial_map.py +416 -0
- sage/combinat/composition.py +2192 -0
- sage/combinat/dlx.py +510 -0
- sage/combinat/integer_lists/__init__.py +7 -0
- sage/combinat/integer_lists/base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/integer_lists/base.pxd +16 -0
- sage/combinat/integer_lists/base.pyx +713 -0
- sage/combinat/integer_lists/invlex.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/integer_lists/invlex.pxd +4 -0
- sage/combinat/integer_lists/invlex.pyx +1650 -0
- sage/combinat/integer_lists/lists.py +328 -0
- sage/combinat/integer_lists/nn.py +48 -0
- sage/combinat/integer_vector.py +1818 -0
- sage/combinat/integer_vector_weighted.py +413 -0
- sage/combinat/matrices/all__sagemath_categories.py +5 -0
- sage/combinat/matrices/dancing_links.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/matrices/dancing_links.pyx +1159 -0
- sage/combinat/matrices/dancing_links_c.h +380 -0
- sage/combinat/matrices/dlxcpp.py +136 -0
- sage/combinat/partition.py +10070 -0
- sage/combinat/partitions.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/partitions.pyx +743 -0
- sage/combinat/permutation.py +10168 -0
- sage/combinat/permutation_cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/combinat/permutation_cython.pxd +11 -0
- sage/combinat/permutation_cython.pyx +407 -0
- sage/combinat/q_analogues.py +1090 -0
- sage/combinat/ranker.py +268 -0
- sage/combinat/subset.py +1561 -0
- sage/combinat/subsets_hereditary.py +202 -0
- sage/combinat/subsets_pairwise.py +184 -0
- sage/combinat/tools.py +63 -0
- sage/combinat/tuple.py +348 -0
- sage/data_structures/all.py +2 -0
- sage/data_structures/all__sagemath_categories.py +2 -0
- sage/data_structures/binary_matrix.pxd +138 -0
- sage/data_structures/binary_search.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/binary_search.pxd +3 -0
- sage/data_structures/binary_search.pyx +66 -0
- sage/data_structures/bitset.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/bitset.pxd +40 -0
- sage/data_structures/bitset.pyx +2385 -0
- sage/data_structures/bitset_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/bitset_base.pxd +926 -0
- sage/data_structures/bitset_base.pyx +117 -0
- sage/data_structures/bitset_intrinsics.h +487 -0
- sage/data_structures/blas_dict.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/blas_dict.pxd +12 -0
- sage/data_structures/blas_dict.pyx +469 -0
- sage/data_structures/list_of_pairs.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/list_of_pairs.pxd +16 -0
- sage/data_structures/list_of_pairs.pyx +122 -0
- sage/data_structures/mutable_poset.py +3312 -0
- sage/data_structures/pairing_heap.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/data_structures/pairing_heap.h +346 -0
- sage/data_structures/pairing_heap.pxd +88 -0
- sage/data_structures/pairing_heap.pyx +1464 -0
- sage/data_structures/sparse_bitset.pxd +62 -0
- sage/data_structures/stream.py +5070 -0
- sage/databases/all__sagemath_categories.py +7 -0
- sage/databases/sql_db.py +2236 -0
- sage/ext/all__sagemath_categories.py +3 -0
- sage/ext/fast_callable.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/fast_callable.pxd +4 -0
- sage/ext/fast_callable.pyx +2746 -0
- sage/ext/fast_eval.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/fast_eval.pxd +1 -0
- sage/ext/fast_eval.pyx +102 -0
- sage/ext/interpreters/__init__.py +1 -0
- sage/ext/interpreters/all__sagemath_categories.py +2 -0
- sage/ext/interpreters/wrapper_el.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_el.pxd +18 -0
- sage/ext/interpreters/wrapper_el.pyx +148 -0
- sage/ext/interpreters/wrapper_py.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/ext/interpreters/wrapper_py.pxd +17 -0
- sage/ext/interpreters/wrapper_py.pyx +133 -0
- sage/functions/airy.py +937 -0
- sage/functions/all.py +97 -0
- sage/functions/bessel.py +2102 -0
- sage/functions/error.py +784 -0
- sage/functions/exp_integral.py +1529 -0
- sage/functions/gamma.py +1087 -0
- sage/functions/generalized.py +672 -0
- sage/functions/hyperbolic.py +747 -0
- sage/functions/hypergeometric.py +1156 -0
- sage/functions/jacobi.py +1705 -0
- sage/functions/log.py +1402 -0
- sage/functions/min_max.py +338 -0
- sage/functions/orthogonal_polys.py +3106 -0
- sage/functions/other.py +2303 -0
- sage/functions/piecewise.py +1505 -0
- sage/functions/prime_pi.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/functions/prime_pi.pyx +262 -0
- sage/functions/special.py +1212 -0
- sage/functions/spike_function.py +278 -0
- sage/functions/transcendental.py +690 -0
- sage/functions/trig.py +1062 -0
- sage/functions/wigner.py +726 -0
- sage/geometry/abc.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/geometry/abc.pyx +82 -0
- sage/geometry/all__sagemath_categories.py +1 -0
- sage/groups/all__sagemath_categories.py +11 -0
- sage/groups/generic.py +1733 -0
- sage/groups/groups_catalog.py +113 -0
- sage/groups/perm_gps/all__sagemath_categories.py +1 -0
- sage/groups/perm_gps/partn_ref/all.py +1 -0
- sage/groups/perm_gps/partn_ref/all__sagemath_categories.py +1 -0
- sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pxd +52 -0
- sage/groups/perm_gps/partn_ref/automorphism_group_canonical_label.pyx +906 -0
- sage/groups/perm_gps/partn_ref/canonical_augmentation.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/canonical_augmentation.pxd +85 -0
- sage/groups/perm_gps/partn_ref/canonical_augmentation.pyx +534 -0
- sage/groups/perm_gps/partn_ref/data_structures.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/data_structures.pxd +576 -0
- sage/groups/perm_gps/partn_ref/data_structures.pyx +1792 -0
- sage/groups/perm_gps/partn_ref/double_coset.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/double_coset.pxd +45 -0
- sage/groups/perm_gps/partn_ref/double_coset.pyx +739 -0
- sage/groups/perm_gps/partn_ref/refinement_lists.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_lists.pxd +18 -0
- sage/groups/perm_gps/partn_ref/refinement_lists.pyx +82 -0
- sage/groups/perm_gps/partn_ref/refinement_python.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_python.pxd +16 -0
- sage/groups/perm_gps/partn_ref/refinement_python.pyx +564 -0
- sage/groups/perm_gps/partn_ref/refinement_sets.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/groups/perm_gps/partn_ref/refinement_sets.pxd +60 -0
- sage/groups/perm_gps/partn_ref/refinement_sets.pyx +858 -0
- sage/interfaces/abc.py +140 -0
- sage/interfaces/all.py +58 -0
- sage/interfaces/all__sagemath_categories.py +1 -0
- sage/interfaces/expect.py +1643 -0
- sage/interfaces/interface.py +1682 -0
- sage/interfaces/process.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/interfaces/process.pxd +5 -0
- sage/interfaces/process.pyx +288 -0
- sage/interfaces/quit.py +167 -0
- sage/interfaces/sage0.py +604 -0
- sage/interfaces/sagespawn.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/interfaces/sagespawn.pyx +308 -0
- sage/interfaces/tab_completion.py +101 -0
- sage/misc/all__sagemath_categories.py +78 -0
- sage/misc/allocator.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/allocator.pxd +6 -0
- sage/misc/allocator.pyx +47 -0
- sage/misc/binary_tree.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/binary_tree.pxd +29 -0
- sage/misc/binary_tree.pyx +537 -0
- sage/misc/callable_dict.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/callable_dict.pyx +89 -0
- sage/misc/citation.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/citation.pyx +159 -0
- sage/misc/converting_dict.py +293 -0
- sage/misc/defaults.py +129 -0
- sage/misc/derivative.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/derivative.pyx +223 -0
- sage/misc/functional.py +2005 -0
- sage/misc/html.py +589 -0
- sage/misc/latex.py +2673 -0
- sage/misc/latex_macros.py +236 -0
- sage/misc/latex_standalone.py +1833 -0
- sage/misc/map_threaded.py +38 -0
- sage/misc/mathml.py +76 -0
- sage/misc/method_decorator.py +88 -0
- sage/misc/mrange.py +755 -0
- sage/misc/multireplace.py +41 -0
- sage/misc/object_multiplexer.py +92 -0
- sage/misc/parser.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/parser.pyx +1107 -0
- sage/misc/random_testing.py +264 -0
- sage/misc/rest_index_of_methods.py +377 -0
- sage/misc/search.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/search.pxd +2 -0
- sage/misc/search.pyx +68 -0
- sage/misc/stopgap.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/misc/stopgap.pyx +95 -0
- sage/misc/table.py +853 -0
- sage/monoids/all__sagemath_categories.py +1 -0
- sage/monoids/indexed_free_monoid.py +1071 -0
- sage/monoids/monoid.py +82 -0
- sage/numerical/all__sagemath_categories.py +1 -0
- sage/numerical/backends/all__sagemath_categories.py +1 -0
- sage/numerical/backends/generic_backend.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/numerical/backends/generic_backend.pxd +61 -0
- sage/numerical/backends/generic_backend.pyx +1893 -0
- sage/numerical/backends/generic_sdp_backend.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/numerical/backends/generic_sdp_backend.pxd +38 -0
- sage/numerical/backends/generic_sdp_backend.pyx +755 -0
- sage/parallel/all.py +6 -0
- sage/parallel/decorate.py +575 -0
- sage/parallel/map_reduce.py +1997 -0
- sage/parallel/multiprocessing_sage.py +76 -0
- sage/parallel/ncpus.py +35 -0
- sage/parallel/parallelism.py +364 -0
- sage/parallel/reference.py +47 -0
- sage/parallel/use_fork.py +333 -0
- sage/rings/abc.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/abc.pxd +31 -0
- sage/rings/abc.pyx +526 -0
- sage/rings/algebraic_closure_finite_field.py +1154 -0
- sage/rings/all__sagemath_categories.py +91 -0
- sage/rings/big_oh.py +227 -0
- sage/rings/continued_fraction.py +2754 -0
- sage/rings/continued_fraction_gosper.py +220 -0
- sage/rings/factorint.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/factorint.pyx +295 -0
- sage/rings/fast_arith.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/fast_arith.pxd +21 -0
- sage/rings/fast_arith.pyx +535 -0
- sage/rings/finite_rings/all__sagemath_categories.py +9 -0
- sage/rings/finite_rings/conway_polynomials.py +542 -0
- sage/rings/finite_rings/element_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/element_base.pxd +12 -0
- sage/rings/finite_rings/element_base.pyx +1176 -0
- sage/rings/finite_rings/finite_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/finite_field_base.pxd +7 -0
- sage/rings/finite_rings/finite_field_base.pyx +2171 -0
- sage/rings/finite_rings/finite_field_constructor.py +827 -0
- sage/rings/finite_rings/finite_field_prime_modn.py +372 -0
- sage/rings/finite_rings/galois_group.py +154 -0
- sage/rings/finite_rings/hom_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/hom_finite_field.pxd +23 -0
- sage/rings/finite_rings/hom_finite_field.pyx +856 -0
- sage/rings/finite_rings/hom_prime_finite_field.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/hom_prime_finite_field.pxd +15 -0
- sage/rings/finite_rings/hom_prime_finite_field.pyx +164 -0
- sage/rings/finite_rings/homset.py +357 -0
- sage/rings/finite_rings/integer_mod.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/integer_mod.pxd +56 -0
- sage/rings/finite_rings/integer_mod.pyx +4586 -0
- sage/rings/finite_rings/integer_mod_limits.h +11 -0
- sage/rings/finite_rings/integer_mod_ring.py +2044 -0
- sage/rings/finite_rings/residue_field.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/finite_rings/residue_field.pxd +30 -0
- sage/rings/finite_rings/residue_field.pyx +1811 -0
- sage/rings/finite_rings/stdint.pxd +19 -0
- sage/rings/fraction_field.py +1452 -0
- sage/rings/fraction_field_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/fraction_field_element.pyx +1357 -0
- sage/rings/function_field/all.py +7 -0
- sage/rings/function_field/all__sagemath_categories.py +2 -0
- sage/rings/function_field/constructor.py +218 -0
- sage/rings/function_field/element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/function_field/element.pxd +11 -0
- sage/rings/function_field/element.pyx +1008 -0
- sage/rings/function_field/element_rational.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/function_field/element_rational.pyx +513 -0
- sage/rings/function_field/extensions.py +230 -0
- sage/rings/function_field/function_field.py +1468 -0
- sage/rings/function_field/function_field_rational.py +1005 -0
- sage/rings/function_field/ideal.py +1155 -0
- sage/rings/function_field/ideal_rational.py +629 -0
- sage/rings/function_field/jacobian_base.py +826 -0
- sage/rings/function_field/jacobian_hess.py +1053 -0
- sage/rings/function_field/jacobian_khuri_makdisi.py +1027 -0
- sage/rings/function_field/maps.py +1039 -0
- sage/rings/function_field/order.py +281 -0
- sage/rings/function_field/order_basis.py +586 -0
- sage/rings/function_field/order_rational.py +576 -0
- sage/rings/function_field/place.py +426 -0
- sage/rings/function_field/place_rational.py +181 -0
- sage/rings/generic.py +320 -0
- sage/rings/homset.py +332 -0
- sage/rings/ideal.py +1885 -0
- sage/rings/ideal_monoid.py +215 -0
- sage/rings/infinity.py +1890 -0
- sage/rings/integer.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/integer.pxd +45 -0
- sage/rings/integer.pyx +7874 -0
- sage/rings/integer_ring.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/integer_ring.pxd +8 -0
- sage/rings/integer_ring.pyx +1693 -0
- sage/rings/laurent_series_ring.py +931 -0
- sage/rings/laurent_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/laurent_series_ring_element.pxd +11 -0
- sage/rings/laurent_series_ring_element.pyx +1927 -0
- sage/rings/lazy_series.py +7815 -0
- sage/rings/lazy_series_ring.py +4356 -0
- sage/rings/localization.py +1043 -0
- sage/rings/morphism.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/morphism.pxd +39 -0
- sage/rings/morphism.pyx +3299 -0
- sage/rings/multi_power_series_ring.py +1145 -0
- sage/rings/multi_power_series_ring_element.py +2184 -0
- sage/rings/noncommutative_ideals.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/noncommutative_ideals.pyx +423 -0
- sage/rings/number_field/all__sagemath_categories.py +1 -0
- sage/rings/number_field/number_field_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/number_field/number_field_base.pxd +8 -0
- sage/rings/number_field/number_field_base.pyx +507 -0
- sage/rings/number_field/number_field_element_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/number_field/number_field_element_base.pxd +6 -0
- sage/rings/number_field/number_field_element_base.pyx +36 -0
- sage/rings/number_field/number_field_ideal.py +3550 -0
- sage/rings/padics/all__sagemath_categories.py +4 -0
- sage/rings/padics/local_generic.py +1670 -0
- sage/rings/padics/local_generic_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/padics/local_generic_element.pxd +5 -0
- sage/rings/padics/local_generic_element.pyx +1017 -0
- sage/rings/padics/misc.py +256 -0
- sage/rings/padics/padic_generic.py +1911 -0
- sage/rings/padics/pow_computer.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/padics/pow_computer.pxd +38 -0
- sage/rings/padics/pow_computer.pyx +671 -0
- sage/rings/padics/precision_error.py +24 -0
- sage/rings/polynomial/all__sagemath_categories.py +25 -0
- sage/rings/polynomial/commutative_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/commutative_polynomial.pxd +6 -0
- sage/rings/polynomial/commutative_polynomial.pyx +24 -0
- sage/rings/polynomial/cyclotomic.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/cyclotomic.pyx +404 -0
- sage/rings/polynomial/flatten.py +711 -0
- sage/rings/polynomial/ideal.py +102 -0
- sage/rings/polynomial/infinite_polynomial_element.py +1768 -0
- sage/rings/polynomial/infinite_polynomial_ring.py +1653 -0
- sage/rings/polynomial/laurent_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/laurent_polynomial.pxd +18 -0
- sage/rings/polynomial/laurent_polynomial.pyx +2190 -0
- sage/rings/polynomial/laurent_polynomial_ideal.py +590 -0
- sage/rings/polynomial/laurent_polynomial_ring.py +832 -0
- sage/rings/polynomial/laurent_polynomial_ring_base.py +708 -0
- sage/rings/polynomial/multi_polynomial.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/multi_polynomial.pxd +12 -0
- sage/rings/polynomial/multi_polynomial.pyx +3082 -0
- sage/rings/polynomial/multi_polynomial_element.py +2570 -0
- sage/rings/polynomial/multi_polynomial_ideal.py +5771 -0
- sage/rings/polynomial/multi_polynomial_ring.py +947 -0
- sage/rings/polynomial/multi_polynomial_ring_base.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/multi_polynomial_ring_base.pxd +15 -0
- sage/rings/polynomial/multi_polynomial_ring_base.pyx +1855 -0
- sage/rings/polynomial/multi_polynomial_sequence.py +2204 -0
- sage/rings/polynomial/polydict.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polydict.pxd +45 -0
- sage/rings/polynomial/polydict.pyx +2701 -0
- sage/rings/polynomial/polynomial_compiled.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polynomial_compiled.pxd +59 -0
- sage/rings/polynomial/polynomial_compiled.pyx +509 -0
- sage/rings/polynomial/polynomial_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polynomial_element.pxd +64 -0
- sage/rings/polynomial/polynomial_element.pyx +13255 -0
- sage/rings/polynomial/polynomial_element_generic.py +1637 -0
- sage/rings/polynomial/polynomial_fateman.py +97 -0
- sage/rings/polynomial/polynomial_quotient_ring.py +2465 -0
- sage/rings/polynomial/polynomial_quotient_ring_element.py +779 -0
- sage/rings/polynomial/polynomial_ring.py +3784 -0
- sage/rings/polynomial/polynomial_ring_constructor.py +1051 -0
- sage/rings/polynomial/polynomial_ring_homomorphism.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/polynomial_ring_homomorphism.pxd +5 -0
- sage/rings/polynomial/polynomial_ring_homomorphism.pyx +121 -0
- sage/rings/polynomial/polynomial_singular_interface.py +549 -0
- sage/rings/polynomial/symmetric_ideal.py +989 -0
- sage/rings/polynomial/symmetric_reduction.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/polynomial/symmetric_reduction.pxd +8 -0
- sage/rings/polynomial/symmetric_reduction.pyx +669 -0
- sage/rings/polynomial/term_order.py +2279 -0
- sage/rings/polynomial/toy_buchberger.py +449 -0
- sage/rings/polynomial/toy_d_basis.py +387 -0
- sage/rings/polynomial/toy_variety.py +362 -0
- sage/rings/power_series_mpoly.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/power_series_mpoly.pxd +9 -0
- sage/rings/power_series_mpoly.pyx +161 -0
- sage/rings/power_series_poly.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/power_series_poly.pxd +10 -0
- sage/rings/power_series_poly.pyx +1317 -0
- sage/rings/power_series_ring.py +1441 -0
- sage/rings/power_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/power_series_ring_element.pxd +12 -0
- sage/rings/power_series_ring_element.pyx +3028 -0
- sage/rings/puiseux_series_ring.py +487 -0
- sage/rings/puiseux_series_ring_element.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/puiseux_series_ring_element.pxd +7 -0
- sage/rings/puiseux_series_ring_element.pyx +1055 -0
- sage/rings/qqbar_decorators.py +167 -0
- sage/rings/quotient_ring.py +1598 -0
- sage/rings/quotient_ring_element.py +979 -0
- sage/rings/rational.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/rational.pxd +20 -0
- sage/rings/rational.pyx +4284 -0
- sage/rings/rational_field.py +1730 -0
- sage/rings/real_double.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/real_double.pxd +16 -0
- sage/rings/real_double.pyx +2218 -0
- sage/rings/real_lazy.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/real_lazy.pxd +30 -0
- sage/rings/real_lazy.pyx +1773 -0
- sage/rings/ring.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/ring.pxd +30 -0
- sage/rings/ring.pyx +850 -0
- sage/rings/semirings/all.py +3 -0
- sage/rings/semirings/non_negative_integer_semiring.py +107 -0
- sage/rings/semirings/tropical_mpolynomial.py +972 -0
- sage/rings/semirings/tropical_polynomial.py +997 -0
- sage/rings/semirings/tropical_semiring.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/semirings/tropical_semiring.pyx +676 -0
- sage/rings/semirings/tropical_variety.py +1701 -0
- sage/rings/sum_of_squares.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/rings/sum_of_squares.pxd +3 -0
- sage/rings/sum_of_squares.pyx +336 -0
- sage/rings/tests.py +504 -0
- sage/schemes/affine/affine_homset.py +508 -0
- sage/schemes/affine/affine_morphism.py +1574 -0
- sage/schemes/affine/affine_point.py +460 -0
- sage/schemes/affine/affine_rational_point.py +308 -0
- sage/schemes/affine/affine_space.py +1264 -0
- sage/schemes/affine/affine_subscheme.py +592 -0
- sage/schemes/affine/all.py +25 -0
- sage/schemes/all__sagemath_categories.py +5 -0
- sage/schemes/generic/algebraic_scheme.py +2092 -0
- sage/schemes/generic/all.py +5 -0
- sage/schemes/generic/ambient_space.py +400 -0
- sage/schemes/generic/divisor.py +465 -0
- sage/schemes/generic/divisor_group.py +313 -0
- sage/schemes/generic/glue.py +84 -0
- sage/schemes/generic/homset.py +820 -0
- sage/schemes/generic/hypersurface.py +234 -0
- sage/schemes/generic/morphism.py +2107 -0
- sage/schemes/generic/point.py +237 -0
- sage/schemes/generic/scheme.py +1190 -0
- sage/schemes/generic/spec.py +199 -0
- sage/schemes/product_projective/all.py +6 -0
- sage/schemes/product_projective/homset.py +236 -0
- sage/schemes/product_projective/morphism.py +517 -0
- sage/schemes/product_projective/point.py +568 -0
- sage/schemes/product_projective/rational_point.py +550 -0
- sage/schemes/product_projective/space.py +1301 -0
- sage/schemes/product_projective/subscheme.py +466 -0
- sage/schemes/projective/all.py +24 -0
- sage/schemes/projective/proj_bdd_height.py +453 -0
- sage/schemes/projective/projective_homset.py +718 -0
- sage/schemes/projective/projective_morphism.py +2792 -0
- sage/schemes/projective/projective_point.py +1484 -0
- sage/schemes/projective/projective_rational_point.py +569 -0
- sage/schemes/projective/projective_space.py +2571 -0
- sage/schemes/projective/projective_subscheme.py +1574 -0
- sage/sets/all.py +17 -0
- sage/sets/cartesian_product.py +376 -0
- sage/sets/condition_set.py +525 -0
- sage/sets/disjoint_set.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/disjoint_set.pxd +36 -0
- sage/sets/disjoint_set.pyx +998 -0
- sage/sets/disjoint_union_enumerated_sets.py +625 -0
- sage/sets/family.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/family.pxd +12 -0
- sage/sets/family.pyx +1556 -0
- sage/sets/finite_enumerated_set.py +406 -0
- sage/sets/finite_set_map_cy.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/finite_set_map_cy.pxd +34 -0
- sage/sets/finite_set_map_cy.pyx +708 -0
- sage/sets/finite_set_maps.py +591 -0
- sage/sets/image_set.py +448 -0
- sage/sets/integer_range.py +829 -0
- sage/sets/non_negative_integers.py +241 -0
- sage/sets/positive_integers.py +93 -0
- sage/sets/primes.py +188 -0
- sage/sets/real_set.py +2760 -0
- sage/sets/recursively_enumerated_set.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/sets/recursively_enumerated_set.pxd +31 -0
- sage/sets/recursively_enumerated_set.pyx +2082 -0
- sage/sets/set.py +2083 -0
- sage/sets/set_from_iterator.py +1021 -0
- sage/sets/totally_ordered_finite_set.py +329 -0
- sage/symbolic/all__sagemath_categories.py +1 -0
- sage/symbolic/function.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/symbolic/function.pxd +29 -0
- sage/symbolic/function.pyx +1488 -0
- sage/symbolic/symbols.py +56 -0
- sage/tests/all__sagemath_categories.py +1 -0
- sage/tests/cython.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/tests/cython.pyx +37 -0
- sage/tests/stl_vector.cpython-314t-aarch64-linux-musl.so +0 -0
- sage/tests/stl_vector.pyx +171 -0
- sage/typeset/all.py +6 -0
- sage/typeset/ascii_art.py +295 -0
- sage/typeset/character_art.py +789 -0
- sage/typeset/character_art_factory.py +572 -0
- sage/typeset/symbols.py +334 -0
- sage/typeset/unicode_art.py +183 -0
- sage/typeset/unicode_characters.py +101 -0
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Lie Algebras With Basis
|
|
4
|
+
|
|
5
|
+
AUTHORS:
|
|
6
|
+
|
|
7
|
+
- Travis Scrimshaw (07-15-2013): Initial implementation
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
#*****************************************************************************
|
|
11
|
+
# Copyright (C) 2013-2024 Travis Scrimshaw <tcscrims at gmail.com>
|
|
12
|
+
#
|
|
13
|
+
# This program is free software: you can redistribute it and/or modify
|
|
14
|
+
# it under the terms of the GNU General Public License as published by
|
|
15
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
16
|
+
# (at your option) any later version.
|
|
17
|
+
# https://www.gnu.org/licenses/
|
|
18
|
+
#*****************************************************************************
|
|
19
|
+
|
|
20
|
+
from sage.misc.abstract_method import abstract_method
|
|
21
|
+
from sage.misc.lazy_import import LazyImport
|
|
22
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
23
|
+
from sage.categories.lie_algebras import LieAlgebras
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class LieAlgebrasWithBasis(CategoryWithAxiom_over_base_ring):
|
|
27
|
+
"""
|
|
28
|
+
Category of Lie algebras with a basis.
|
|
29
|
+
"""
|
|
30
|
+
_base_category_class_and_axiom = (LieAlgebras, "WithBasis")
|
|
31
|
+
|
|
32
|
+
def example(self, gens=None):
|
|
33
|
+
"""
|
|
34
|
+
Return an example of a Lie algebra as per
|
|
35
|
+
:meth:`Category.example <sage.categories.category.Category.example>`.
|
|
36
|
+
|
|
37
|
+
EXAMPLES::
|
|
38
|
+
|
|
39
|
+
sage: LieAlgebras(QQ).WithBasis().example() # needs sage.modules
|
|
40
|
+
An example of a Lie algebra: the abelian Lie algebra on the
|
|
41
|
+
generators indexed by Partitions over Rational Field
|
|
42
|
+
|
|
43
|
+
Another set of generators can be specified as an optional argument::
|
|
44
|
+
|
|
45
|
+
sage: LieAlgebras(QQ).WithBasis().example(Compositions()) # needs sage.modules
|
|
46
|
+
An example of a Lie algebra: the abelian Lie algebra on the
|
|
47
|
+
generators indexed by Compositions of nonnegative integers
|
|
48
|
+
over Rational Field
|
|
49
|
+
"""
|
|
50
|
+
if gens is None:
|
|
51
|
+
from sage.combinat.partition import Partitions
|
|
52
|
+
gens = Partitions()
|
|
53
|
+
from sage.categories.examples.lie_algebras_with_basis import Example
|
|
54
|
+
return Example(self.base_ring(), gens)
|
|
55
|
+
|
|
56
|
+
Graded = LazyImport('sage.categories.graded_lie_algebras_with_basis',
|
|
57
|
+
'GradedLieAlgebrasWithBasis',
|
|
58
|
+
as_name='Graded')
|
|
59
|
+
|
|
60
|
+
class ParentMethods:
|
|
61
|
+
def _basis_key(self, x):
|
|
62
|
+
"""
|
|
63
|
+
Return the key used to compare two basis element indices.
|
|
64
|
+
|
|
65
|
+
The default is to call the element itself.
|
|
66
|
+
|
|
67
|
+
TESTS::
|
|
68
|
+
|
|
69
|
+
sage: L = LieAlgebras(QQ).WithBasis().example() # needs sage.modules
|
|
70
|
+
sage: L._basis_key(Partition([3,1])) # needs sage.modules
|
|
71
|
+
[3, 1]
|
|
72
|
+
"""
|
|
73
|
+
return x
|
|
74
|
+
|
|
75
|
+
@abstract_method(optional=True)
|
|
76
|
+
def bracket_on_basis(self, x, y):
|
|
77
|
+
"""
|
|
78
|
+
Return the bracket of basis elements indexed by ``x`` and ``y``
|
|
79
|
+
where ``x < y``. If this is not implemented, then the method
|
|
80
|
+
``_bracket_()`` for the elements must be overwritten.
|
|
81
|
+
|
|
82
|
+
EXAMPLES::
|
|
83
|
+
|
|
84
|
+
sage: L = LieAlgebras(QQ).WithBasis().example() # needs sage.modules
|
|
85
|
+
sage: L.bracket_on_basis(Partition([3,1]), Partition([2,2,1,1])) # needs sage.modules
|
|
86
|
+
0
|
|
87
|
+
"""
|
|
88
|
+
|
|
89
|
+
def module(self):
|
|
90
|
+
"""
|
|
91
|
+
Return an `R`-module which is isomorphic to the
|
|
92
|
+
underlying `R`-module of ``self``.
|
|
93
|
+
|
|
94
|
+
See
|
|
95
|
+
:meth:`sage.categories.lie_algebras.LieAlgebras.module` for
|
|
96
|
+
an explanation.
|
|
97
|
+
|
|
98
|
+
EXAMPLES::
|
|
99
|
+
|
|
100
|
+
sage: L = LieAlgebras(QQ).WithBasis().example() # needs sage.modules
|
|
101
|
+
sage: L.module() # needs sage.modules
|
|
102
|
+
Free module generated by Partitions over Rational Field
|
|
103
|
+
"""
|
|
104
|
+
from sage.combinat.free_module import CombinatorialFreeModule
|
|
105
|
+
try:
|
|
106
|
+
# Try to see if it has an indexing set
|
|
107
|
+
return CombinatorialFreeModule(self.base_ring(), self.basis().keys())
|
|
108
|
+
except AttributeError:
|
|
109
|
+
# Otherwise just index by the basis of ``self`` as a fallback
|
|
110
|
+
return CombinatorialFreeModule(self.base_ring(), self.basis())
|
|
111
|
+
|
|
112
|
+
def from_vector(self, v, order=None, coerce=False):
|
|
113
|
+
"""
|
|
114
|
+
Return the element of ``self`` corresponding to the
|
|
115
|
+
vector ``v`` in ``self.module()``.
|
|
116
|
+
|
|
117
|
+
Implement this if you implement :meth:`module`; see the
|
|
118
|
+
documentation of
|
|
119
|
+
:meth:`sage.categories.lie_algebras.LieAlgebras.module`
|
|
120
|
+
for how this is to be done.
|
|
121
|
+
|
|
122
|
+
EXAMPLES::
|
|
123
|
+
|
|
124
|
+
sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example() # needs sage.combinat sage.libs.singular sage.modules
|
|
125
|
+
sage: u = L.from_vector(vector(QQ, (1, 0, 0))); u # needs sage.combinat sage.libs.singular sage.modules
|
|
126
|
+
(1, 0, 0)
|
|
127
|
+
sage: parent(u) is L # needs sage.combinat sage.libs.singular sage.modules
|
|
128
|
+
True
|
|
129
|
+
"""
|
|
130
|
+
B = self.basis()
|
|
131
|
+
return self.sum(v[i] * B[i] for i in v.support())
|
|
132
|
+
|
|
133
|
+
# Remove once #22629 is merged
|
|
134
|
+
def dimension(self):
|
|
135
|
+
"""
|
|
136
|
+
Return the dimension of ``self``.
|
|
137
|
+
|
|
138
|
+
EXAMPLES::
|
|
139
|
+
|
|
140
|
+
sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example() # needs sage.combinat sage.libs.singular sage.modules
|
|
141
|
+
sage: L.dimension() # needs sage.combinat sage.libs.singular sage.modules
|
|
142
|
+
3
|
|
143
|
+
|
|
144
|
+
::
|
|
145
|
+
|
|
146
|
+
sage: L = LieAlgebra(QQ, 'x,y', {('x','y'): {'x':1}}) # needs sage.combinat sage.modules
|
|
147
|
+
sage: L.dimension() # needs sage.combinat sage.modules
|
|
148
|
+
2
|
|
149
|
+
"""
|
|
150
|
+
return self.basis().cardinality()
|
|
151
|
+
|
|
152
|
+
def pbw_basis(self, basis_key=None, **kwds):
|
|
153
|
+
"""
|
|
154
|
+
Return the Poincare-Birkhoff-Witt basis of the universal
|
|
155
|
+
enveloping algebra corresponding to ``self``.
|
|
156
|
+
|
|
157
|
+
EXAMPLES::
|
|
158
|
+
|
|
159
|
+
sage: L = lie_algebras.sl(QQ, 2) # needs sage.combinat sage.graphs sage.modules
|
|
160
|
+
sage: PBW = L.pbw_basis() # needs sage.combinat sage.graphs sage.modules
|
|
161
|
+
"""
|
|
162
|
+
from sage.algebras.lie_algebras.poincare_birkhoff_witt \
|
|
163
|
+
import PoincareBirkhoffWittBasis
|
|
164
|
+
return PoincareBirkhoffWittBasis(self, basis_key, **kwds)
|
|
165
|
+
|
|
166
|
+
poincare_birkhoff_witt_basis = pbw_basis
|
|
167
|
+
|
|
168
|
+
_construct_UEA = pbw_basis
|
|
169
|
+
|
|
170
|
+
class ElementMethods:
|
|
171
|
+
def _bracket_(self, y):
|
|
172
|
+
"""
|
|
173
|
+
Return the Lie bracket ``[self, y]``, where ``y`` is an
|
|
174
|
+
element of the same Lie algebra as ``self``.
|
|
175
|
+
|
|
176
|
+
EXAMPLES::
|
|
177
|
+
|
|
178
|
+
sage: # needs sage.combinat sage.modules
|
|
179
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
180
|
+
sage: G = L.lie_algebra_generators()
|
|
181
|
+
sage: x = G[Partition([4,3,3,1])]
|
|
182
|
+
sage: y = G[Partition([6,1])]
|
|
183
|
+
sage: x.bracket(y)
|
|
184
|
+
0
|
|
185
|
+
"""
|
|
186
|
+
P = self.parent()
|
|
187
|
+
|
|
188
|
+
def term(ml, mr):
|
|
189
|
+
key_ml = P._basis_key(ml)
|
|
190
|
+
key_mr = P._basis_key(mr)
|
|
191
|
+
if key_ml == key_mr:
|
|
192
|
+
return P.zero()
|
|
193
|
+
if key_ml < key_mr:
|
|
194
|
+
return P.bracket_on_basis(ml, mr)
|
|
195
|
+
return -P.bracket_on_basis(mr, ml)
|
|
196
|
+
|
|
197
|
+
return P.sum(cl * cr * term(ml, mr)
|
|
198
|
+
for ml, cl in self for mr, cr in y)
|
|
199
|
+
|
|
200
|
+
def to_vector(self, order=None):
|
|
201
|
+
"""
|
|
202
|
+
Return the vector in ``g.module()`` corresponding to the
|
|
203
|
+
element ``self`` of ``g`` (where ``g`` is the parent of
|
|
204
|
+
``self``).
|
|
205
|
+
|
|
206
|
+
Implement this if you implement ``g.module()``.
|
|
207
|
+
See :meth:`sage.categories.lie_algebras.LieAlgebras.module`
|
|
208
|
+
for how this is to be done.
|
|
209
|
+
|
|
210
|
+
EXAMPLES::
|
|
211
|
+
|
|
212
|
+
sage: L = LieAlgebras(QQ).FiniteDimensional().WithBasis().example() # needs sage.combinat sage.libs.singular sage.modules
|
|
213
|
+
sage: L.an_element().to_vector() # needs sage.combinat sage.libs.singular sage.modules
|
|
214
|
+
(0, 0, 0)
|
|
215
|
+
|
|
216
|
+
.. TODO::
|
|
217
|
+
|
|
218
|
+
Doctest this implementation on an example not overshadowed.
|
|
219
|
+
"""
|
|
220
|
+
M = self.parent().module()
|
|
221
|
+
B = M.basis()
|
|
222
|
+
return M.sum(self[i] * B[i] for i in self.support())
|
|
223
|
+
|
|
224
|
+
def lift(self):
|
|
225
|
+
"""
|
|
226
|
+
Lift ``self`` to the universal enveloping algebra.
|
|
227
|
+
|
|
228
|
+
EXAMPLES::
|
|
229
|
+
|
|
230
|
+
sage: # needs sage.combinat sage.groups
|
|
231
|
+
sage: S = SymmetricGroup(3).algebra(QQ)
|
|
232
|
+
sage: L = LieAlgebra(associative=S)
|
|
233
|
+
sage: x = L.gen(3)
|
|
234
|
+
sage: y = L.gen(1)
|
|
235
|
+
sage: x.lift()
|
|
236
|
+
b3
|
|
237
|
+
sage: y.lift()
|
|
238
|
+
b1
|
|
239
|
+
sage: x * y
|
|
240
|
+
b1*b3 + b4 - b5
|
|
241
|
+
"""
|
|
242
|
+
P = self.parent()
|
|
243
|
+
UEA = P.universal_enveloping_algebra()
|
|
244
|
+
s = UEA.zero()
|
|
245
|
+
if not self:
|
|
246
|
+
return s
|
|
247
|
+
# Special hook for when the index set of the parent of ``self``
|
|
248
|
+
# does not match the generators index set of the UEA.
|
|
249
|
+
if hasattr(P, '_UEA_names_map'):
|
|
250
|
+
names_map = P._UEA_names_map
|
|
251
|
+
gen_dict = UEA.gens_dict()
|
|
252
|
+
for t, c in self.monomial_coefficients(copy=False).items():
|
|
253
|
+
s += c * gen_dict[names_map[t]]
|
|
254
|
+
else:
|
|
255
|
+
try:
|
|
256
|
+
gen_dict = UEA.algebra_generators()
|
|
257
|
+
except (TypeError, AttributeError):
|
|
258
|
+
gen_dict = UEA.gens_dict()
|
|
259
|
+
for t, c in self.monomial_coefficients(copy=False).items():
|
|
260
|
+
s += c * gen_dict[t]
|
|
261
|
+
return s
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Lie Conformal Algebras
|
|
4
|
+
|
|
5
|
+
Let `R` be a commutative ring, a *super Lie conformal algebra*
|
|
6
|
+
[Kac1997]_ over `R` (also known as a *vertex Lie algebra*) is an `R[T]`
|
|
7
|
+
super module `L` together with a `\mathbb{Z}/2\mathbb{Z}`-graded `R`-bilinear
|
|
8
|
+
operation (called the `\lambda`-bracket) `L\otimes L \rightarrow L[\lambda]`
|
|
9
|
+
(polynomials in `\lambda` with coefficients in `L`),
|
|
10
|
+
`a \otimes b \mapsto [a_\lambda b]` satisfying
|
|
11
|
+
|
|
12
|
+
1. Sesquilinearity:
|
|
13
|
+
|
|
14
|
+
.. MATH::
|
|
15
|
+
|
|
16
|
+
[Ta_\lambda b] = - \lambda [a_\lambda b], \qquad [a_\lambda Tb] =
|
|
17
|
+
(\lambda+ T) [a_\lambda b].
|
|
18
|
+
|
|
19
|
+
2. Skew-Symmetry:
|
|
20
|
+
|
|
21
|
+
.. MATH::
|
|
22
|
+
|
|
23
|
+
[a_\lambda b] = - (-1)^{p(a)p(b)} [b_{-\lambda - T} a],
|
|
24
|
+
|
|
25
|
+
where `p(a)` is `0` if `a` is *even* and `1` if `a` is *odd*. The
|
|
26
|
+
bracket in the RHS is computed as follows. First we evaluate
|
|
27
|
+
`[b_\mu a]` with the formal parameter `\mu` to the *left*, then
|
|
28
|
+
replace each appearance of the formal variable `\mu` by `-\lambda - T`.
|
|
29
|
+
Finally apply `T` to the coefficients in `L`.
|
|
30
|
+
|
|
31
|
+
3. Jacobi identity:
|
|
32
|
+
|
|
33
|
+
.. MATH::
|
|
34
|
+
|
|
35
|
+
[a_\lambda [b_\mu c]] = [ [a_{\lambda + \mu} b]_\mu c] +
|
|
36
|
+
(-1)^{p(a)p(b)} [b_\mu [a_\lambda c]],
|
|
37
|
+
|
|
38
|
+
which is understood as an equality in `L[\lambda, \mu]`.
|
|
39
|
+
|
|
40
|
+
`T` is usually called the *translation operation* or the *derivative*.
|
|
41
|
+
For an element `a \in L` we will say that `Ta` is the *derivative of*
|
|
42
|
+
`a`. We define the `n`-*th products* `a_{(n)} b` for `a,b \in L` by
|
|
43
|
+
|
|
44
|
+
.. MATH::
|
|
45
|
+
|
|
46
|
+
[a_\lambda b] = \sum_{n \geq 0} \frac{\lambda^n}{n!} a_{(n)} b.
|
|
47
|
+
|
|
48
|
+
A Lie conformal algebra is called *H-Graded* [DSK2006]_ if there exists
|
|
49
|
+
a decomposition `L = \oplus L_n` such that the
|
|
50
|
+
`\lambda`-bracket becomes graded of degree `-1`, that is:
|
|
51
|
+
|
|
52
|
+
.. MATH::
|
|
53
|
+
|
|
54
|
+
a_{(n)} b \in L_{p + q -n -1} \qquad
|
|
55
|
+
a \in L_p, \: b \in L_q, \: n \geq 0.
|
|
56
|
+
|
|
57
|
+
In particular this implies that the action of `T` increases
|
|
58
|
+
degree by `1`.
|
|
59
|
+
|
|
60
|
+
.. NOTE::
|
|
61
|
+
|
|
62
|
+
In the literature arbitrary gradings are allowed. In this
|
|
63
|
+
implementation we only support nonnegative rational gradings.
|
|
64
|
+
|
|
65
|
+
EXAMPLES:
|
|
66
|
+
|
|
67
|
+
1. The **Virasoro** Lie conformal algebra `Vir` over a ring `R`
|
|
68
|
+
where `12` is invertible has two generators `L, C` as an `R[T]`-module.
|
|
69
|
+
It is the direct sum of a free module of rank `1` generated by `L`, and
|
|
70
|
+
a free rank one `R` module generated by `C` satisfying `TC = 0`. `C`
|
|
71
|
+
is central (the `\lambda`-bracket of `C` with any other vector
|
|
72
|
+
vanishes). The remaining `\lambda`-bracket is given by
|
|
73
|
+
|
|
74
|
+
.. MATH::
|
|
75
|
+
|
|
76
|
+
[L_\lambda L] = T L + 2 \lambda L + \frac{\lambda^3}{12} C.
|
|
77
|
+
|
|
78
|
+
2. The **affine** or current Lie conformal algebra `L(\mathfrak{g})`
|
|
79
|
+
associated to a finite dimensional Lie algebra `\mathfrak{g}` with
|
|
80
|
+
non-degenerate, invariant `R`-bilinear form `(,)` is given as a central
|
|
81
|
+
extension of the free
|
|
82
|
+
`R[T]` module generated by `\mathfrak{g}` by a central element `K`. The
|
|
83
|
+
`\lambda`-bracket of generators is given by
|
|
84
|
+
|
|
85
|
+
.. MATH::
|
|
86
|
+
|
|
87
|
+
[a_\lambda b] = [a,b] + \lambda (a,b) K, \qquad a,b \in \mathfrak{g}
|
|
88
|
+
|
|
89
|
+
3. The **Weyl** Lie conformal algebra, or `\beta-\gamma` system is
|
|
90
|
+
given as the central extension of a free `R[T]` module with two
|
|
91
|
+
generators `\beta` and `\gamma`, by a central element `K`.
|
|
92
|
+
The only non-trivial brackets among generators are
|
|
93
|
+
|
|
94
|
+
.. MATH::
|
|
95
|
+
|
|
96
|
+
[\beta_\lambda \gamma] = - [\gamma_\lambda \beta] = K
|
|
97
|
+
|
|
98
|
+
4. The **Neveu-Schwarz** super Lie conformal algebra is a super Lie
|
|
99
|
+
conformal algebra which is an extension of the Virasoro Lie conformal
|
|
100
|
+
algebra. It consists of a Virasoro generator `L` as in example 1 above
|
|
101
|
+
and an *odd* generator `G`. The remaining brackets are given by:
|
|
102
|
+
|
|
103
|
+
.. MATH::
|
|
104
|
+
|
|
105
|
+
[L_\lambda G] = \left( T + \frac{3}{2} \lambda \right) G \qquad
|
|
106
|
+
[G_\lambda G] = 2 L + \frac{\lambda^2}{3} C
|
|
107
|
+
|
|
108
|
+
.. SEEALSO::
|
|
109
|
+
|
|
110
|
+
- :mod:`sage.algebras.lie_conformal_algebras.lie_conformal_algebra`
|
|
111
|
+
- :mod:`sage.algebras.lie_conformal_algebras.examples`
|
|
112
|
+
|
|
113
|
+
AUTHORS:
|
|
114
|
+
|
|
115
|
+
- Reimundo Heluani (2019-10-05): Initial implementation.
|
|
116
|
+
"""
|
|
117
|
+
|
|
118
|
+
#******************************************************************************
|
|
119
|
+
# Copyright (C) 2019 Reimundo Heluani <heluani@potuz.net>
|
|
120
|
+
#
|
|
121
|
+
# This program is free software: you can redistribute it and/or modify
|
|
122
|
+
# it under the terms of the GNU General Public License as published by
|
|
123
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
124
|
+
# (at your option) any later version.
|
|
125
|
+
# http://www.gnu.org/licenses/
|
|
126
|
+
#*****************************************************************************
|
|
127
|
+
|
|
128
|
+
from sage.categories.category_types import Category_over_base_ring
|
|
129
|
+
from sage.categories.lambda_bracket_algebras import LambdaBracketAlgebras
|
|
130
|
+
from sage.misc.cachefunc import cached_method
|
|
131
|
+
from sage.misc.lazy_import import LazyImport
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
class LieConformalAlgebras(Category_over_base_ring):
|
|
135
|
+
r"""
|
|
136
|
+
The category of Lie conformal algebras.
|
|
137
|
+
|
|
138
|
+
This is the base category for all Lie conformal algebras.
|
|
139
|
+
Subcategories with axioms are ``FinitelyGenerated`` and
|
|
140
|
+
``WithBasis``. A *finitely generated* Lie conformal algebra is a
|
|
141
|
+
Lie conformal algebra over `R` which is finitely generated as an
|
|
142
|
+
`R[T]`-module. A Lie conformal algebra *with basis* is one with a
|
|
143
|
+
preferred basis as an `R`-module.
|
|
144
|
+
|
|
145
|
+
EXAMPLES:
|
|
146
|
+
|
|
147
|
+
The base category::
|
|
148
|
+
|
|
149
|
+
sage: C = LieConformalAlgebras(QQ); C
|
|
150
|
+
Category of Lie conformal algebras over Rational Field
|
|
151
|
+
sage: C.is_subcategory(VectorSpaces(QQ))
|
|
152
|
+
True
|
|
153
|
+
|
|
154
|
+
Some subcategories::
|
|
155
|
+
|
|
156
|
+
sage: LieConformalAlgebras(QQbar).FinitelyGenerated().WithBasis() # needs sage.rings.number_field
|
|
157
|
+
Category of finitely generated Lie conformal algebras with basis
|
|
158
|
+
over Algebraic Field
|
|
159
|
+
|
|
160
|
+
In addition we support functorial constructions ``Graded`` and
|
|
161
|
+
``Super``. These functors commute::
|
|
162
|
+
|
|
163
|
+
sage: CGS = LieConformalAlgebras(AA).Graded().Super(); CGS # needs sage.rings.number_field
|
|
164
|
+
Category of H-graded super Lie conformal algebras over Algebraic Real Field
|
|
165
|
+
sage: CGS is LieConformalAlgebras(AA).Super().Graded() # needs sage.rings.number_field
|
|
166
|
+
True
|
|
167
|
+
|
|
168
|
+
That is, we only consider gradings on super Lie conformal algebras
|
|
169
|
+
that are compatible with the `\ZZ/2\ZZ` grading.
|
|
170
|
+
|
|
171
|
+
The base ring needs to be a commutative ring::
|
|
172
|
+
|
|
173
|
+
sage: LieConformalAlgebras(QuaternionAlgebra(2)) # needs sage.combinat sage.libs.singular sage.modules
|
|
174
|
+
Traceback (most recent call last):
|
|
175
|
+
ValueError: base must be a commutative ring
|
|
176
|
+
got Quaternion Algebra (-1, -1) with base ring Rational Field
|
|
177
|
+
"""
|
|
178
|
+
@cached_method
|
|
179
|
+
def super_categories(self):
|
|
180
|
+
"""
|
|
181
|
+
The list of super categories of this category.
|
|
182
|
+
|
|
183
|
+
EXAMPLES::
|
|
184
|
+
|
|
185
|
+
sage: C = LieConformalAlgebras(QQ)
|
|
186
|
+
sage: C.super_categories()
|
|
187
|
+
[Category of Lambda bracket algebras over Rational Field]
|
|
188
|
+
sage: C = LieConformalAlgebras(QQ).FinitelyGenerated(); C
|
|
189
|
+
Category of finitely generated Lie conformal algebras over Rational Field
|
|
190
|
+
sage: C.super_categories()
|
|
191
|
+
[Category of finitely generated lambda bracket algebras over Rational Field,
|
|
192
|
+
Category of Lie conformal algebras over Rational Field]
|
|
193
|
+
sage: C.all_super_categories()
|
|
194
|
+
[Category of finitely generated Lie conformal algebras over Rational Field,
|
|
195
|
+
Category of finitely generated lambda bracket algebras over Rational Field,
|
|
196
|
+
Category of Lie conformal algebras over Rational Field,
|
|
197
|
+
Category of Lambda bracket algebras over Rational Field,
|
|
198
|
+
Category of vector spaces over Rational Field,
|
|
199
|
+
Category of modules over Rational Field,
|
|
200
|
+
Category of bimodules over Rational Field on the left and Rational Field on the right,
|
|
201
|
+
Category of right modules over Rational Field,
|
|
202
|
+
Category of left modules over Rational Field,
|
|
203
|
+
Category of commutative additive groups,
|
|
204
|
+
Category of additive groups,
|
|
205
|
+
Category of additive inverse additive unital additive magmas,
|
|
206
|
+
Category of commutative additive monoids,
|
|
207
|
+
Category of additive monoids,
|
|
208
|
+
Category of additive unital additive magmas,
|
|
209
|
+
Category of commutative additive semigroups,
|
|
210
|
+
Category of additive commutative additive magmas,
|
|
211
|
+
Category of additive semigroups,
|
|
212
|
+
Category of additive magmas,
|
|
213
|
+
Category of sets,
|
|
214
|
+
Category of sets with partial maps,
|
|
215
|
+
Category of objects]
|
|
216
|
+
"""
|
|
217
|
+
return [LambdaBracketAlgebras(self.base_ring())]
|
|
218
|
+
|
|
219
|
+
def example(self):
|
|
220
|
+
"""
|
|
221
|
+
An example of parent in this category.
|
|
222
|
+
|
|
223
|
+
EXAMPLES::
|
|
224
|
+
|
|
225
|
+
sage: LieConformalAlgebras(QQ).example() # needs sage.combinat sage.modules
|
|
226
|
+
The Virasoro Lie conformal algebra over Rational Field
|
|
227
|
+
"""
|
|
228
|
+
from sage.algebras.lie_conformal_algebras.virasoro_lie_conformal_algebra import (
|
|
229
|
+
VirasoroLieConformalAlgebra,
|
|
230
|
+
)
|
|
231
|
+
return VirasoroLieConformalAlgebra(self.base_ring())
|
|
232
|
+
|
|
233
|
+
def _repr_object_names(self):
|
|
234
|
+
"""
|
|
235
|
+
The name of the objects of this category.
|
|
236
|
+
|
|
237
|
+
EXAMPLES::
|
|
238
|
+
|
|
239
|
+
sage: LieConformalAlgebras(QQ)
|
|
240
|
+
Category of Lie conformal algebras over Rational Field
|
|
241
|
+
"""
|
|
242
|
+
return "Lie conformal algebras over {}".format(self.base_ring())
|
|
243
|
+
|
|
244
|
+
class ParentMethods:
|
|
245
|
+
|
|
246
|
+
def _test_jacobi(self, **options):
|
|
247
|
+
"""
|
|
248
|
+
Test the Jacobi axiom of this Lie conformal algebra.
|
|
249
|
+
|
|
250
|
+
INPUT:
|
|
251
|
+
|
|
252
|
+
- ``options`` -- any keyword arguments acceptde by :meth:`_tester`
|
|
253
|
+
|
|
254
|
+
EXAMPLES:
|
|
255
|
+
|
|
256
|
+
By default, this method tests only the elements returned by
|
|
257
|
+
``self.some_elements()``::
|
|
258
|
+
|
|
259
|
+
sage: V = lie_conformal_algebras.Affine(QQ, 'B2') # needs sage.combinat sage.modules
|
|
260
|
+
sage: V._test_jacobi() # long time (6 seconds) # needs sage.combinat sage.modules
|
|
261
|
+
|
|
262
|
+
It works for super Lie conformal algebras too::
|
|
263
|
+
|
|
264
|
+
sage: V = lie_conformal_algebras.NeveuSchwarz(QQ) # needs sage.combinat sage.modules
|
|
265
|
+
sage: V._test_jacobi() # needs sage.combinat sage.modules
|
|
266
|
+
|
|
267
|
+
We can use specific elements by passing the ``elements``
|
|
268
|
+
keyword argument::
|
|
269
|
+
|
|
270
|
+
sage: V = lie_conformal_algebras.Affine(QQ, 'A1', # needs sage.combinat sage.modules
|
|
271
|
+
....: names=('e', 'h', 'f'))
|
|
272
|
+
sage: V.inject_variables() # needs sage.combinat sage.modules
|
|
273
|
+
Defining e, h, f, K
|
|
274
|
+
sage: V._test_jacobi(elements=(e, 2*f+h, 3*h)) # needs sage.combinat sage.modules
|
|
275
|
+
|
|
276
|
+
TESTS::
|
|
277
|
+
|
|
278
|
+
sage: wrongdict = {('a', 'a'): {0: {('b', 0): 1}}, ('b', 'a'): {0: {('a', 0): 1}}}
|
|
279
|
+
sage: V = LieConformalAlgebra(QQ, wrongdict, names=('a', 'b'), parity=(1, 0)) # needs sage.combinat sage.modules
|
|
280
|
+
sage: V._test_jacobi() # needs sage.combinat sage.modules
|
|
281
|
+
Traceback (most recent call last):
|
|
282
|
+
...
|
|
283
|
+
AssertionError: {(0, 0): -3*a} != {}
|
|
284
|
+
- {(0, 0): -3*a}
|
|
285
|
+
+ {}
|
|
286
|
+
"""
|
|
287
|
+
tester = self._tester(**options)
|
|
288
|
+
S = tester.some_elements()
|
|
289
|
+
from sage.arith.misc import binomial
|
|
290
|
+
from sage.misc.misc import some_tuples
|
|
291
|
+
pz = tester._instance.zero()
|
|
292
|
+
for x,y,z in some_tuples(S, 3, tester._max_runs):
|
|
293
|
+
brxy = x.bracket(y)
|
|
294
|
+
brxz = x.bracket(z)
|
|
295
|
+
bryz = y.bracket(z)
|
|
296
|
+
br1 = {k: x.bracket(v) for k,v in bryz.items()}
|
|
297
|
+
br2 = {k: v.bracket(z) for k,v in brxy.items()}
|
|
298
|
+
br3 = {k: y.bracket(v) for k,v in brxz.items()}
|
|
299
|
+
jac1 = {(j,k): v for k in br1 for j,v in br1[k].items()}
|
|
300
|
+
jac3 = {(k,j): v for k in br3 for j,v in br3[k].items()}
|
|
301
|
+
jac2 = {}
|
|
302
|
+
for k,br in br2.items():
|
|
303
|
+
for j,v in br.items():
|
|
304
|
+
for r in range(j+1):
|
|
305
|
+
jac2[(k+r, j-r)] = (jac2.get((k+r, j-r), pz)
|
|
306
|
+
+ binomial(k+r, r)*v)
|
|
307
|
+
for k,v in jac2.items():
|
|
308
|
+
jac1[k] = jac1.get(k, pz) - v
|
|
309
|
+
for k,v in jac3.items():
|
|
310
|
+
jac1[k] = jac1.get(k, pz) - v
|
|
311
|
+
jacobiator = {k: v for k,v in jac1.items() if v}
|
|
312
|
+
tester.assertDictEqual(jacobiator, {})
|
|
313
|
+
|
|
314
|
+
class ElementMethods:
|
|
315
|
+
|
|
316
|
+
def is_even_odd(self):
|
|
317
|
+
"""
|
|
318
|
+
Return ``0`` if this element is *even* and ``1`` if it is
|
|
319
|
+
*odd*.
|
|
320
|
+
|
|
321
|
+
.. NOTE::
|
|
322
|
+
|
|
323
|
+
This method returns ``0`` by default since every Lie
|
|
324
|
+
conformal algebra can be thought as a purely even Lie
|
|
325
|
+
conformal algebra. In order to
|
|
326
|
+
implement a super Lie conformal algebra, the user
|
|
327
|
+
needs to implement this method.
|
|
328
|
+
|
|
329
|
+
EXAMPLES::
|
|
330
|
+
|
|
331
|
+
sage: R = lie_conformal_algebras.NeveuSchwarz(QQ) # needs sage.combinat sage.modules
|
|
332
|
+
sage: R.inject_variables() # needs sage.combinat sage.modules
|
|
333
|
+
Defining L, G, C
|
|
334
|
+
sage: G.is_even_odd() # needs sage.combinat sage.modules
|
|
335
|
+
1
|
|
336
|
+
"""
|
|
337
|
+
return 0
|
|
338
|
+
|
|
339
|
+
Graded = LazyImport("sage.categories.graded_lie_conformal_algebras",
|
|
340
|
+
"GradedLieConformalAlgebras", "Graded")
|
|
341
|
+
|
|
342
|
+
Super = LazyImport("sage.categories.super_lie_conformal_algebras",
|
|
343
|
+
"SuperLieConformalAlgebras", "Super")
|
|
344
|
+
|
|
345
|
+
WithBasis = LazyImport("sage.categories.lie_conformal_algebras_with_basis",
|
|
346
|
+
"LieConformalAlgebrasWithBasis", "WithBasis")
|
|
347
|
+
|
|
348
|
+
FinitelyGeneratedAsLambdaBracketAlgebra = LazyImport(
|
|
349
|
+
'sage.categories.finitely_generated_lie_conformal_algebras',
|
|
350
|
+
'FinitelyGeneratedLieConformalAlgebras')
|