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,352 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
# sage.doctest: needs sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Examples of a Lie algebra
|
|
5
|
+
"""
|
|
6
|
+
#*****************************************************************************
|
|
7
|
+
# Copyright (C) 2014 Travis Scrimshaw <tscrim at ucdavis.edu>
|
|
8
|
+
#
|
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
10
|
+
# http://www.gnu.org/licenses/
|
|
11
|
+
#*****************************************************************************
|
|
12
|
+
|
|
13
|
+
#from sage.misc.cachefunc import cached_method
|
|
14
|
+
from sage.sets.family import Family
|
|
15
|
+
from sage.categories.lie_algebras import LieAlgebras
|
|
16
|
+
from sage.structure.parent import Parent
|
|
17
|
+
from sage.structure.unique_representation import UniqueRepresentation
|
|
18
|
+
from sage.structure.element_wrapper import ElementWrapper
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class LieAlgebraFromAssociative(Parent, UniqueRepresentation):
|
|
22
|
+
r"""
|
|
23
|
+
An example of a Lie algebra: a Lie algebra generated by
|
|
24
|
+
a set of elements of an associative algebra.
|
|
25
|
+
|
|
26
|
+
This class illustrates a minimal implementation of a Lie algebra.
|
|
27
|
+
|
|
28
|
+
Let `R` be a commutative ring, and `A` an associative
|
|
29
|
+
`R`-algebra. The Lie algebra `A` (sometimes denoted `A^-`)
|
|
30
|
+
is defined to be the `R`-module `A` with Lie bracket given by
|
|
31
|
+
the commutator in `A`: that is, `[a, b] := ab - ba` for all
|
|
32
|
+
`a, b \in A`.
|
|
33
|
+
|
|
34
|
+
What this class implements is not precisely `A^-`, however;
|
|
35
|
+
it is the Lie subalgebra of `A^-` generated by the elements
|
|
36
|
+
of the iterable ``gens``. This specific implementation does not
|
|
37
|
+
provide a reasonable containment test (i.e., it does not allow
|
|
38
|
+
you to check if a given element `a` of `A^-` belongs to this
|
|
39
|
+
Lie subalgebra); it, however, allows computing inside it.
|
|
40
|
+
|
|
41
|
+
INPUT:
|
|
42
|
+
|
|
43
|
+
- ``gens`` -- a nonempty iterable consisting of elements of an
|
|
44
|
+
associative algebra `A`
|
|
45
|
+
|
|
46
|
+
OUTPUT:
|
|
47
|
+
|
|
48
|
+
The Lie subalgebra of `A^-` generated by the elements of
|
|
49
|
+
``gens``
|
|
50
|
+
|
|
51
|
+
EXAMPLES:
|
|
52
|
+
|
|
53
|
+
We create a model of `\mathfrak{sl}_2` using matrices::
|
|
54
|
+
|
|
55
|
+
sage: gens = [matrix([[0,1],[0,0]]), matrix([[0,0],[1,0]]), matrix([[1,0],[0,-1]])]
|
|
56
|
+
sage: for g in gens:
|
|
57
|
+
....: g.set_immutable()
|
|
58
|
+
sage: L = LieAlgebras(QQ).example(gens)
|
|
59
|
+
sage: e,f,h = L.lie_algebra_generators()
|
|
60
|
+
sage: e.bracket(f) == h
|
|
61
|
+
True
|
|
62
|
+
sage: h.bracket(e) == 2*e
|
|
63
|
+
True
|
|
64
|
+
sage: h.bracket(f) == -2*f
|
|
65
|
+
True
|
|
66
|
+
"""
|
|
67
|
+
@staticmethod
|
|
68
|
+
def __classcall_private__(cls, gens):
|
|
69
|
+
"""
|
|
70
|
+
Normalize input to ensure a unique representation.
|
|
71
|
+
|
|
72
|
+
EXAMPLES::
|
|
73
|
+
|
|
74
|
+
sage: # needs sage.combinat sage.groups
|
|
75
|
+
sage: S3 = SymmetricGroupAlgebra(QQ, 3)
|
|
76
|
+
sage: L1 = LieAlgebras(QQ).example()
|
|
77
|
+
sage: gens = list(S3.algebra_generators())
|
|
78
|
+
sage: L2 = LieAlgebras(QQ).example(gens)
|
|
79
|
+
sage: L1 is L2
|
|
80
|
+
True
|
|
81
|
+
"""
|
|
82
|
+
return super().__classcall__(cls, tuple(gens))
|
|
83
|
+
|
|
84
|
+
def __init__(self, gens):
|
|
85
|
+
"""
|
|
86
|
+
EXAMPLES::
|
|
87
|
+
|
|
88
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
89
|
+
sage: TestSuite(L).run() # needs sage.combinat sage.groups
|
|
90
|
+
"""
|
|
91
|
+
if not gens:
|
|
92
|
+
raise ValueError("need at least one generator")
|
|
93
|
+
self._gens = gens
|
|
94
|
+
self._A = gens[0].parent()
|
|
95
|
+
R = self._A.base_ring()
|
|
96
|
+
Parent.__init__(self, base=R, category=LieAlgebras(R))
|
|
97
|
+
|
|
98
|
+
def _repr_(self):
|
|
99
|
+
"""
|
|
100
|
+
EXAMPLES::
|
|
101
|
+
|
|
102
|
+
sage: LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
103
|
+
An example of a Lie algebra: the Lie algebra from the associative algebra
|
|
104
|
+
Symmetric group algebra of order 3 over Rational Field
|
|
105
|
+
generated by ([2, 1, 3], [2, 3, 1])
|
|
106
|
+
"""
|
|
107
|
+
return "An example of a Lie algebra: the Lie algebra from the" \
|
|
108
|
+
" associative algebra {} generated by {}".format(
|
|
109
|
+
self._A, self._gens)
|
|
110
|
+
|
|
111
|
+
def _element_constructor_(self, value):
|
|
112
|
+
"""
|
|
113
|
+
Return an element of ``self``.
|
|
114
|
+
|
|
115
|
+
EXAMPLES::
|
|
116
|
+
|
|
117
|
+
sage: # needs sage.combinat sage.groups
|
|
118
|
+
sage: S3 = SymmetricGroupAlgebra(ZZ, 3)
|
|
119
|
+
sage: gens = S3.algebra_generators()
|
|
120
|
+
sage: L = LieAlgebras(QQ).example()
|
|
121
|
+
sage: L(3*gens[0] + gens[1])
|
|
122
|
+
3*[2, 1, 3] + [2, 3, 1]
|
|
123
|
+
"""
|
|
124
|
+
return self.element_class(self, self._A(value))
|
|
125
|
+
|
|
126
|
+
def zero(self):
|
|
127
|
+
"""
|
|
128
|
+
Return the element 0.
|
|
129
|
+
|
|
130
|
+
EXAMPLES::
|
|
131
|
+
|
|
132
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
133
|
+
sage: L.zero() # needs sage.combinat sage.groups
|
|
134
|
+
0
|
|
135
|
+
"""
|
|
136
|
+
return self.element_class(self, self._A.zero())
|
|
137
|
+
|
|
138
|
+
def lie_algebra_generators(self):
|
|
139
|
+
"""
|
|
140
|
+
Return the generators of ``self`` as a Lie algebra.
|
|
141
|
+
|
|
142
|
+
EXAMPLES::
|
|
143
|
+
|
|
144
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
145
|
+
sage: L.lie_algebra_generators() # needs sage.combinat sage.groups
|
|
146
|
+
Family ([2, 1, 3], [2, 3, 1])
|
|
147
|
+
"""
|
|
148
|
+
return Family([self.element_class(self, g) for g in self._gens])
|
|
149
|
+
|
|
150
|
+
# TODO: refactor to use LieAlgebraElementWrapper once more of #14901 is added in
|
|
151
|
+
class Element(ElementWrapper):
|
|
152
|
+
"""
|
|
153
|
+
Wrap an element as a Lie algebra element.
|
|
154
|
+
"""
|
|
155
|
+
def __eq__(self, rhs):
|
|
156
|
+
"""
|
|
157
|
+
Check equality.
|
|
158
|
+
|
|
159
|
+
This check is rather restrictive: ``self`` and ``rhs`` are only
|
|
160
|
+
revealed as equal if they are equal *and* have the same parent
|
|
161
|
+
(or both are zero).
|
|
162
|
+
|
|
163
|
+
EXAMPLES::
|
|
164
|
+
|
|
165
|
+
sage: # needs sage.combinat sage.groups
|
|
166
|
+
sage: L = LieAlgebras(QQ).example()
|
|
167
|
+
sage: x, y = L.lie_algebra_generators()
|
|
168
|
+
sage: x == x
|
|
169
|
+
True
|
|
170
|
+
sage: x.bracket(y) == -y.bracket(x)
|
|
171
|
+
True
|
|
172
|
+
sage: x == y
|
|
173
|
+
False
|
|
174
|
+
sage: x.bracket(x) == L.zero()
|
|
175
|
+
True
|
|
176
|
+
sage: x.bracket(x) == 0
|
|
177
|
+
True
|
|
178
|
+
"""
|
|
179
|
+
if not isinstance(rhs, LieAlgebraFromAssociative.Element):
|
|
180
|
+
return self.value == 0 and rhs == 0
|
|
181
|
+
return self.parent() == rhs.parent() and self.value == rhs.value
|
|
182
|
+
|
|
183
|
+
def __ne__(self, rhs):
|
|
184
|
+
"""
|
|
185
|
+
Check not-equals.
|
|
186
|
+
|
|
187
|
+
EXAMPLES::
|
|
188
|
+
|
|
189
|
+
sage: # needs sage.combinat sage.groups
|
|
190
|
+
sage: L = LieAlgebras(QQ).example()
|
|
191
|
+
sage: x, y = L.lie_algebra_generators()
|
|
192
|
+
sage: x != y
|
|
193
|
+
True
|
|
194
|
+
sage: x != 0
|
|
195
|
+
True
|
|
196
|
+
sage: x != x
|
|
197
|
+
False
|
|
198
|
+
sage: x.bracket(y) != -y.bracket(x)
|
|
199
|
+
False
|
|
200
|
+
"""
|
|
201
|
+
return not self.__eq__(rhs)
|
|
202
|
+
|
|
203
|
+
def __hash__(self):
|
|
204
|
+
r"""
|
|
205
|
+
Return the hash of ``self``.
|
|
206
|
+
|
|
207
|
+
EXAMPLES::
|
|
208
|
+
|
|
209
|
+
sage: # needs sage.combinat sage.groups
|
|
210
|
+
sage: L = LieAlgebras(QQ).example()
|
|
211
|
+
sage: x, y = L.lie_algebra_generators()
|
|
212
|
+
sage: hash(x) == hash(x.value)
|
|
213
|
+
True
|
|
214
|
+
"""
|
|
215
|
+
return hash(self.value)
|
|
216
|
+
|
|
217
|
+
def __bool__(self) -> bool:
|
|
218
|
+
"""
|
|
219
|
+
Check nonzero.
|
|
220
|
+
|
|
221
|
+
EXAMPLES::
|
|
222
|
+
|
|
223
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
224
|
+
sage: bool(sum(L.lie_algebra_generators())) # needs sage.combinat sage.groups
|
|
225
|
+
True
|
|
226
|
+
sage: bool(L.zero()) # needs sage.combinat sage.groups
|
|
227
|
+
False
|
|
228
|
+
"""
|
|
229
|
+
return bool(self.value)
|
|
230
|
+
|
|
231
|
+
def _add_(self, rhs):
|
|
232
|
+
"""
|
|
233
|
+
Add ``self`` and ``rhs``.
|
|
234
|
+
|
|
235
|
+
EXAMPLES::
|
|
236
|
+
|
|
237
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
238
|
+
sage: x, y = L.lie_algebra_generators() # needs sage.combinat sage.groups
|
|
239
|
+
sage: x + y # needs sage.combinat sage.groups
|
|
240
|
+
[2, 1, 3] + [2, 3, 1]
|
|
241
|
+
"""
|
|
242
|
+
return self.__class__(self.parent(), self.value + rhs.value)
|
|
243
|
+
|
|
244
|
+
def _sub_(self, rhs):
|
|
245
|
+
"""
|
|
246
|
+
Subtract ``self`` and ``rhs``.
|
|
247
|
+
|
|
248
|
+
EXAMPLES::
|
|
249
|
+
|
|
250
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
251
|
+
sage: x, y = L.lie_algebra_generators() # needs sage.combinat sage.groups
|
|
252
|
+
sage: x - y # needs sage.combinat sage.groups
|
|
253
|
+
[2, 1, 3] - [2, 3, 1]
|
|
254
|
+
"""
|
|
255
|
+
return self.__class__(self.parent(), self.value - rhs.value)
|
|
256
|
+
|
|
257
|
+
def _acted_upon_(self, scalar, self_on_left=False):
|
|
258
|
+
"""
|
|
259
|
+
Return the action of a scalar on ``self``.
|
|
260
|
+
|
|
261
|
+
EXAMPLES::
|
|
262
|
+
|
|
263
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
264
|
+
sage: x, y = L.lie_algebra_generators() # needs sage.combinat sage.groups
|
|
265
|
+
sage: 3 * x # needs sage.combinat sage.groups
|
|
266
|
+
3*[2, 1, 3]
|
|
267
|
+
"""
|
|
268
|
+
# This was copied, but IDK if it still applies:
|
|
269
|
+
# With the current design, the coercion model does not have
|
|
270
|
+
# enough information to detect apriori that this method only
|
|
271
|
+
# accepts scalars; so it tries on some elements(), and we need
|
|
272
|
+
# to make sure to report an error.
|
|
273
|
+
if hasattr( scalar, 'parent' ) and scalar.parent() != self.base_ring():
|
|
274
|
+
# Temporary needed by coercion (see Polynomial/FractionField tests).
|
|
275
|
+
if self.base_ring().has_coerce_map_from(scalar.parent()):
|
|
276
|
+
scalar = self.base_ring()( scalar )
|
|
277
|
+
else:
|
|
278
|
+
return None
|
|
279
|
+
if self_on_left:
|
|
280
|
+
return self.__class__(self.parent(), self.value * scalar)
|
|
281
|
+
return self.__class__(self.parent(), scalar * self.value)
|
|
282
|
+
|
|
283
|
+
def __truediv__(self, x, self_on_left=False):
|
|
284
|
+
"""
|
|
285
|
+
Division by coefficients.
|
|
286
|
+
|
|
287
|
+
EXAMPLES::
|
|
288
|
+
|
|
289
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
290
|
+
sage: x, y = L.lie_algebra_generators() # needs sage.combinat sage.groups
|
|
291
|
+
sage: y / 4 # needs sage.combinat sage.groups
|
|
292
|
+
1/4*[2, 3, 1]
|
|
293
|
+
"""
|
|
294
|
+
if self_on_left:
|
|
295
|
+
return self * (~x)
|
|
296
|
+
return (~x) * self
|
|
297
|
+
|
|
298
|
+
def __neg__(self):
|
|
299
|
+
"""
|
|
300
|
+
Return the negation of ``self``.
|
|
301
|
+
|
|
302
|
+
EXAMPLES::
|
|
303
|
+
|
|
304
|
+
sage: L = LieAlgebras(QQ).example() # needs sage.combinat sage.groups
|
|
305
|
+
sage: x, y = L.lie_algebra_generators() # needs sage.combinat sage.groups
|
|
306
|
+
sage: -x # needs sage.combinat sage.groups
|
|
307
|
+
-[2, 1, 3]
|
|
308
|
+
"""
|
|
309
|
+
return self.__class__(self.parent(), -self.value)
|
|
310
|
+
|
|
311
|
+
def __getitem__(self, i):
|
|
312
|
+
"""
|
|
313
|
+
Redirect the ``__getitem__()`` to the wrapped element.
|
|
314
|
+
|
|
315
|
+
EXAMPLES::
|
|
316
|
+
|
|
317
|
+
sage: gens = [matrix([[0,1],[0,0]]), matrix([[0,0],[1,0]]), matrix([[1,0],[0,-1]])]
|
|
318
|
+
sage: for g in gens:
|
|
319
|
+
....: g.set_immutable()
|
|
320
|
+
sage: L = LieAlgebras(QQ).example(gens)
|
|
321
|
+
sage: e,f,h = L.lie_algebra_generators()
|
|
322
|
+
sage: h[0,0]
|
|
323
|
+
1
|
|
324
|
+
sage: h[1,1]
|
|
325
|
+
-1
|
|
326
|
+
sage: h[0,1]
|
|
327
|
+
0
|
|
328
|
+
"""
|
|
329
|
+
return self.value.__getitem__(i)
|
|
330
|
+
|
|
331
|
+
def _bracket_(self, rhs):
|
|
332
|
+
"""
|
|
333
|
+
Return the Lie bracket ``[self, rhs]``.
|
|
334
|
+
|
|
335
|
+
EXAMPLES::
|
|
336
|
+
|
|
337
|
+
sage: # needs sage.combinat sage.groups
|
|
338
|
+
sage: L = LieAlgebras(QQ).example()
|
|
339
|
+
sage: x,y = L.lie_algebra_generators()
|
|
340
|
+
sage: elt = 2*x - y
|
|
341
|
+
sage: elt.bracket(elt)
|
|
342
|
+
0
|
|
343
|
+
sage: elt.bracket(x)
|
|
344
|
+
-[1, 3, 2] + [3, 2, 1]
|
|
345
|
+
sage: elt2 = x.bracket(y) + x
|
|
346
|
+
sage: elt.bracket(elt2)
|
|
347
|
+
-2*[2, 1, 3] + 4*[2, 3, 1] - 4*[3, 1, 2] + 2*[3, 2, 1]
|
|
348
|
+
"""
|
|
349
|
+
return self.__class__(self.parent(), self.value * rhs.value - rhs.value * self.value)
|
|
350
|
+
|
|
351
|
+
|
|
352
|
+
Example = LieAlgebraFromAssociative
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Examples of a Lie algebra with basis
|
|
5
|
+
"""
|
|
6
|
+
#*****************************************************************************
|
|
7
|
+
# Copyright (C) 2014 Travis Scrimshaw <tscrim at ucdavis.edu>
|
|
8
|
+
#
|
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
10
|
+
# http://www.gnu.org/licenses/
|
|
11
|
+
#*****************************************************************************
|
|
12
|
+
|
|
13
|
+
#from sage.misc.cachefunc import cached_method
|
|
14
|
+
from sage.sets.family import Family
|
|
15
|
+
from sage.categories.lie_algebras import LieAlgebras
|
|
16
|
+
from sage.categories.algebras import Algebras
|
|
17
|
+
from sage.monoids.indexed_free_monoid import IndexedFreeAbelianMonoid
|
|
18
|
+
from sage.combinat.free_module import CombinatorialFreeModule
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class AbelianLieAlgebra(CombinatorialFreeModule):
|
|
22
|
+
r"""
|
|
23
|
+
An example of a Lie algebra: the abelian Lie algebra.
|
|
24
|
+
|
|
25
|
+
This class illustrates a minimal implementation of a Lie algebra with
|
|
26
|
+
a distinguished basis.
|
|
27
|
+
"""
|
|
28
|
+
def __init__(self, R, gens):
|
|
29
|
+
"""
|
|
30
|
+
EXAMPLES::
|
|
31
|
+
|
|
32
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
33
|
+
sage: TestSuite(L).run()
|
|
34
|
+
"""
|
|
35
|
+
cat = LieAlgebras(R).WithBasis()
|
|
36
|
+
CombinatorialFreeModule.__init__(self, R, gens, category=cat)
|
|
37
|
+
|
|
38
|
+
def _construct_UEA(self):
|
|
39
|
+
"""
|
|
40
|
+
Construct the universal enveloping algebra of ``self``.
|
|
41
|
+
|
|
42
|
+
EXAMPLES::
|
|
43
|
+
|
|
44
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
45
|
+
sage: L._construct_UEA()
|
|
46
|
+
Polynomial algebra with generators indexed by Partitions over Rational Field
|
|
47
|
+
"""
|
|
48
|
+
return IndexedPolynomialRing(self.base_ring(), self._indices)
|
|
49
|
+
|
|
50
|
+
def _repr_(self):
|
|
51
|
+
"""
|
|
52
|
+
EXAMPLES::
|
|
53
|
+
|
|
54
|
+
sage: LieAlgebras(QQ).WithBasis().example()
|
|
55
|
+
An example of a Lie algebra: the abelian Lie algebra on the
|
|
56
|
+
generators indexed by Partitions over Rational Field
|
|
57
|
+
"""
|
|
58
|
+
return "An example of a Lie algebra: the abelian Lie algebra on the" \
|
|
59
|
+
" generators indexed by {} over {}".format(
|
|
60
|
+
self.basis().keys(), self.base_ring())
|
|
61
|
+
|
|
62
|
+
def lie_algebra_generators(self):
|
|
63
|
+
"""
|
|
64
|
+
Return the generators of ``self`` as a Lie algebra.
|
|
65
|
+
|
|
66
|
+
EXAMPLES::
|
|
67
|
+
|
|
68
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
69
|
+
sage: L.lie_algebra_generators()
|
|
70
|
+
Lazy family (Term map from Partitions to
|
|
71
|
+
An example of a Lie algebra: the abelian Lie algebra on the
|
|
72
|
+
generators indexed by Partitions over Rational
|
|
73
|
+
Field(i))_{i in Partitions}
|
|
74
|
+
"""
|
|
75
|
+
return self.basis()
|
|
76
|
+
|
|
77
|
+
def bracket_on_basis(self, x, y):
|
|
78
|
+
"""
|
|
79
|
+
Return the Lie bracket on basis elements indexed by ``x`` and ``y``.
|
|
80
|
+
|
|
81
|
+
EXAMPLES::
|
|
82
|
+
|
|
83
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
84
|
+
sage: L.bracket_on_basis(Partition([4,1]), Partition([2,2,1]))
|
|
85
|
+
0
|
|
86
|
+
"""
|
|
87
|
+
return self.zero()
|
|
88
|
+
|
|
89
|
+
class Element(CombinatorialFreeModule.Element):
|
|
90
|
+
def lift(self):
|
|
91
|
+
"""
|
|
92
|
+
Return the lift of ``self`` to the universal enveloping algebra.
|
|
93
|
+
|
|
94
|
+
EXAMPLES::
|
|
95
|
+
|
|
96
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
97
|
+
sage: elt = L.an_element()
|
|
98
|
+
sage: elt.lift()
|
|
99
|
+
3*P[F[2]] + 2*P[F[1]] + 2*P[F[]]
|
|
100
|
+
"""
|
|
101
|
+
UEA = self.parent().universal_enveloping_algebra()
|
|
102
|
+
I = UEA._indices
|
|
103
|
+
return UEA.sum_of_terms((I.gen(t), c) for t, c in self)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
Example = AbelianLieAlgebra
|
|
107
|
+
|
|
108
|
+
##############
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
class IndexedPolynomialRing(CombinatorialFreeModule):
|
|
112
|
+
"""
|
|
113
|
+
Polynomial ring whose generators are indexed by an arbitrary set.
|
|
114
|
+
|
|
115
|
+
.. TODO::
|
|
116
|
+
|
|
117
|
+
Currently this is just used as the universal enveloping algebra
|
|
118
|
+
for the example of the abelian Lie algebra. This should be
|
|
119
|
+
factored out into a more complete class.
|
|
120
|
+
"""
|
|
121
|
+
def __init__(self, R, indices, **kwds):
|
|
122
|
+
"""
|
|
123
|
+
Initialize ``self``.
|
|
124
|
+
|
|
125
|
+
EXAMPLES::
|
|
126
|
+
|
|
127
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
128
|
+
sage: UEA = L.universal_enveloping_algebra()
|
|
129
|
+
sage: TestSuite(UEA).run()
|
|
130
|
+
"""
|
|
131
|
+
if 'category' not in kwds:
|
|
132
|
+
kwds['category'] = Algebras(R).WithBasis()
|
|
133
|
+
if 'prefix' not in kwds:
|
|
134
|
+
kwds['prefix'] = 'P'
|
|
135
|
+
# This is a workaround until IndexedFree(Abelian)Monoid elements compare properly
|
|
136
|
+
kwds['sorting_key'] = lambda x: x.to_word_list()
|
|
137
|
+
kwds['sorting_reverse'] = True
|
|
138
|
+
M = IndexedFreeAbelianMonoid(indices, bracket='')
|
|
139
|
+
CombinatorialFreeModule.__init__(self, R, M, **kwds)
|
|
140
|
+
|
|
141
|
+
def _repr_(self):
|
|
142
|
+
"""
|
|
143
|
+
Return a string representation of ``self``.
|
|
144
|
+
|
|
145
|
+
EXAMPLES::
|
|
146
|
+
|
|
147
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
148
|
+
sage: L.universal_enveloping_algebra()
|
|
149
|
+
Polynomial algebra with generators indexed by Partitions over Rational Field
|
|
150
|
+
"""
|
|
151
|
+
return "Polynomial algebra with generators indexed by {} over {}".format(
|
|
152
|
+
self._indices._indices, self.base_ring())
|
|
153
|
+
|
|
154
|
+
def one_basis(self):
|
|
155
|
+
"""
|
|
156
|
+
Return the index of element `1`.
|
|
157
|
+
|
|
158
|
+
EXAMPLES::
|
|
159
|
+
|
|
160
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
161
|
+
sage: UEA = L.universal_enveloping_algebra()
|
|
162
|
+
sage: UEA.one_basis()
|
|
163
|
+
1
|
|
164
|
+
sage: UEA.one_basis().parent()
|
|
165
|
+
Free abelian monoid indexed by Partitions
|
|
166
|
+
"""
|
|
167
|
+
return self._indices.one()
|
|
168
|
+
|
|
169
|
+
def product_on_basis(self, x, y):
|
|
170
|
+
"""
|
|
171
|
+
Return the product of the monomials indexed by ``x`` and ``y``.
|
|
172
|
+
|
|
173
|
+
EXAMPLES::
|
|
174
|
+
|
|
175
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
176
|
+
sage: UEA = L.universal_enveloping_algebra()
|
|
177
|
+
sage: I = UEA._indices
|
|
178
|
+
sage: UEA.product_on_basis(I.an_element(), I.an_element())
|
|
179
|
+
P[F[]^4*F[1]^4*F[2]^6]
|
|
180
|
+
"""
|
|
181
|
+
return self.monomial(x*y)
|
|
182
|
+
|
|
183
|
+
def algebra_generators(self):
|
|
184
|
+
"""
|
|
185
|
+
Return the algebra generators of ``self``.
|
|
186
|
+
|
|
187
|
+
EXAMPLES::
|
|
188
|
+
|
|
189
|
+
sage: L = LieAlgebras(QQ).WithBasis().example()
|
|
190
|
+
sage: UEA = L.universal_enveloping_algebra()
|
|
191
|
+
sage: UEA.algebra_generators()
|
|
192
|
+
Lazy family (algebra generator map(i))_{i in Partitions}
|
|
193
|
+
"""
|
|
194
|
+
I = self._indices
|
|
195
|
+
return Family(I._indices, lambda x: self.monomial(I.gen(x)),
|
|
196
|
+
name="algebra generator map")
|