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,439 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Kac-Moody Algebras With Triangular Decomposition Basis
|
|
4
|
+
|
|
5
|
+
AUTHORS:
|
|
6
|
+
|
|
7
|
+
- Travis Scrimshaw (07-15-2017): Initial implementation
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
# ****************************************************************************
|
|
11
|
+
# Copyright (C) 2017 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.cachefunc import cached_method
|
|
22
|
+
from sage.misc.lazy_attribute import lazy_attribute
|
|
23
|
+
from sage.categories.category_types import Category_over_base_ring
|
|
24
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
25
|
+
from sage.categories.kac_moody_algebras import KacMoodyAlgebras
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class TriangularKacMoodyAlgebras(Category_over_base_ring):
|
|
29
|
+
r"""
|
|
30
|
+
Category of Kac-Moody algebras with a distinguished basis that
|
|
31
|
+
respects the triangular decomposition.
|
|
32
|
+
|
|
33
|
+
We require that the grading group is the root lattice of the
|
|
34
|
+
appropriate Cartan type.
|
|
35
|
+
"""
|
|
36
|
+
@cached_method
|
|
37
|
+
def super_categories(self):
|
|
38
|
+
"""
|
|
39
|
+
EXAMPLES::
|
|
40
|
+
|
|
41
|
+
sage: from sage.categories.triangular_kac_moody_algebras import TriangularKacMoodyAlgebras
|
|
42
|
+
sage: TriangularKacMoodyAlgebras(QQ).super_categories()
|
|
43
|
+
[Join of Category of graded Lie algebras with basis over Rational Field
|
|
44
|
+
and Category of kac moody algebras over Rational Field]
|
|
45
|
+
"""
|
|
46
|
+
# We do not also derive from (Magmatic) algebras since we don't want *
|
|
47
|
+
# to be our Lie bracket
|
|
48
|
+
# Also this doesn't inherit the ability to add axioms like Associative
|
|
49
|
+
# and Unital, both of which do not make sense for Lie algebras
|
|
50
|
+
return [KacMoodyAlgebras(self.base_ring()).WithBasis().Graded()]
|
|
51
|
+
|
|
52
|
+
class ParentMethods:
|
|
53
|
+
def _part_on_basis(self, m):
|
|
54
|
+
"""
|
|
55
|
+
Return whether the basis element indexed by ``m`` is
|
|
56
|
+
in the lower, zero, or upper part of ``self``.
|
|
57
|
+
|
|
58
|
+
OUTPUT:
|
|
59
|
+
|
|
60
|
+
`-1` if ``m`` is a negative root, `0` if zero, or `1`
|
|
61
|
+
if ``m`` is a positive root
|
|
62
|
+
|
|
63
|
+
EXAMPLES::
|
|
64
|
+
|
|
65
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
66
|
+
sage: L = lie_algebras.so(QQ, 5)
|
|
67
|
+
sage: L.f() # indirect doctest
|
|
68
|
+
Finite family {1: E[-alpha[1]], 2: E[-alpha[2]]}
|
|
69
|
+
sage: f1 = L.f(1); f1 # indirect doctest
|
|
70
|
+
E[-alpha[1]]
|
|
71
|
+
sage: L._part_on_basis(f1.leading_support())
|
|
72
|
+
-1
|
|
73
|
+
sage: L._part_on_basis(L.e(1).leading_support())
|
|
74
|
+
1
|
|
75
|
+
sage: all(L._part_on_basis(b) == 0 for b in L.basis() if b.degree() == 0)
|
|
76
|
+
True
|
|
77
|
+
"""
|
|
78
|
+
deg = self.degree_on_basis(m)
|
|
79
|
+
if not deg:
|
|
80
|
+
return 0
|
|
81
|
+
return 1 if deg.is_positive_root() else -1
|
|
82
|
+
|
|
83
|
+
@cached_method
|
|
84
|
+
def _part_generators(self, positive=False):
|
|
85
|
+
r"""
|
|
86
|
+
Return the Lie algebra generators for the positive or
|
|
87
|
+
negative half of ``self``.
|
|
88
|
+
|
|
89
|
+
.. NOTE::
|
|
90
|
+
|
|
91
|
+
If the positive/negative generators correspond to the
|
|
92
|
+
generators with (negative) simple roots, then this method
|
|
93
|
+
will find them. If they do not, then this method *must*
|
|
94
|
+
be overwritten. One should also overwrite this method in
|
|
95
|
+
object classes when there is a better method to obtain them.
|
|
96
|
+
Furthermore, this assumes that :meth:`lie_algebra_generators`
|
|
97
|
+
is a finite set.
|
|
98
|
+
|
|
99
|
+
INPUT:
|
|
100
|
+
|
|
101
|
+
- ``positive`` -- boolean (default: ``False``); if ``True``
|
|
102
|
+
then return positive part generators, otherwise the return
|
|
103
|
+
the negative part generators
|
|
104
|
+
|
|
105
|
+
OUTPUT:
|
|
106
|
+
|
|
107
|
+
A :func:`~sage.sets.family.Family` whose keys are the
|
|
108
|
+
index set of ``self``.
|
|
109
|
+
|
|
110
|
+
EXAMPLES::
|
|
111
|
+
|
|
112
|
+
sage: L = LieAlgebra(QQ, cartan_type=['E', 6]) # needs sage.combinat sage.graphs sage.modules
|
|
113
|
+
sage: list(L._part_generators(False)) # needs sage.combinat sage.graphs sage.modules
|
|
114
|
+
[E[-alpha[1]], E[-alpha[2]], E[-alpha[3]],
|
|
115
|
+
E[-alpha[4]], E[-alpha[5]], E[-alpha[6]]]
|
|
116
|
+
"""
|
|
117
|
+
I = self._cartan_type.index_set()
|
|
118
|
+
P = self._cartan_type.root_system().root_lattice()
|
|
119
|
+
ali = P.simple_roots().inverse_family()
|
|
120
|
+
if positive:
|
|
121
|
+
d = {ali[g.degree()]: g for g in self.lie_algebra_generators()
|
|
122
|
+
if self._part(g) > 0}
|
|
123
|
+
if not positive:
|
|
124
|
+
d = {ali[-g.degree()]: g for g in self.lie_algebra_generators()
|
|
125
|
+
if self._part(g) < 0}
|
|
126
|
+
from sage.sets.family import Family
|
|
127
|
+
return Family(I, d.__getitem__)
|
|
128
|
+
|
|
129
|
+
def e(self, i=None):
|
|
130
|
+
"""
|
|
131
|
+
Return the generators `e` of ``self``.
|
|
132
|
+
|
|
133
|
+
INPUT:
|
|
134
|
+
|
|
135
|
+
- ``i`` -- (optional) if specified, return just the
|
|
136
|
+
generator `e_i`
|
|
137
|
+
|
|
138
|
+
EXAMPLES::
|
|
139
|
+
|
|
140
|
+
sage: L = lie_algebras.so(QQ, 5) # needs sage.combinat sage.graphs sage.modules
|
|
141
|
+
sage: L.e() # needs sage.combinat sage.graphs sage.modules
|
|
142
|
+
Finite family {1: E[alpha[1]], 2: E[alpha[2]]}
|
|
143
|
+
sage: L.e(1) # needs sage.combinat sage.graphs sage.modules
|
|
144
|
+
E[alpha[1]]
|
|
145
|
+
"""
|
|
146
|
+
E = self._part_generators(True)
|
|
147
|
+
if i is None:
|
|
148
|
+
return E
|
|
149
|
+
return E[i]
|
|
150
|
+
|
|
151
|
+
def f(self, i=None):
|
|
152
|
+
"""
|
|
153
|
+
Return the generators `f` of ``self``.
|
|
154
|
+
|
|
155
|
+
INPUT:
|
|
156
|
+
|
|
157
|
+
- ``i`` -- (optional) if specified, return just the
|
|
158
|
+
generator `f_i`
|
|
159
|
+
|
|
160
|
+
EXAMPLES::
|
|
161
|
+
|
|
162
|
+
sage: L = lie_algebras.so(QQ, 5) # needs sage.combinat sage.graphs sage.modules
|
|
163
|
+
sage: L.f() # needs sage.combinat sage.graphs sage.modules
|
|
164
|
+
Finite family {1: E[-alpha[1]], 2: E[-alpha[2]]}
|
|
165
|
+
sage: L.f(1) # needs sage.combinat sage.graphs sage.modules
|
|
166
|
+
E[-alpha[1]]
|
|
167
|
+
"""
|
|
168
|
+
F = self._part_generators(False)
|
|
169
|
+
if i is None:
|
|
170
|
+
return F
|
|
171
|
+
return F[i]
|
|
172
|
+
|
|
173
|
+
@abstract_method
|
|
174
|
+
def _negative_half_index_set(self):
|
|
175
|
+
"""
|
|
176
|
+
Return an indexing set for the negative half of ``self``.
|
|
177
|
+
|
|
178
|
+
EXAMPLES::
|
|
179
|
+
|
|
180
|
+
sage: L = lie_algebras.so(QQ, 5) # needs sage.combinat sage.graphs sage.modules
|
|
181
|
+
sage: L._negative_half_index_set() # needs sage.combinat sage.graphs sage.modules
|
|
182
|
+
[-alpha[2], -alpha[1], -alpha[1] - alpha[2],
|
|
183
|
+
-alpha[1] - 2*alpha[2]]
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
@abstract_method
|
|
187
|
+
def _weight_action(self, m, wt):
|
|
188
|
+
"""
|
|
189
|
+
Return the action of the basis element indexed by ``m`` on ``wt``.
|
|
190
|
+
|
|
191
|
+
INPUT:
|
|
192
|
+
|
|
193
|
+
- ``m`` -- an index of a basis element of the Cartan subalgebra
|
|
194
|
+
- ``wt`` -- a weight
|
|
195
|
+
|
|
196
|
+
EXAMPLES::
|
|
197
|
+
|
|
198
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
199
|
+
sage: L = lie_algebras.sp(QQ, 6)
|
|
200
|
+
sage: La = L.cartan_type().root_system().weight_space().fundamental_weights()
|
|
201
|
+
sage: mu = La[1] - 3/5*La[2]
|
|
202
|
+
sage: ac = L.cartan_type().root_system().coroot_lattice().simple_roots()
|
|
203
|
+
sage: L._weight_action(ac[1], mu)
|
|
204
|
+
1
|
|
205
|
+
sage: L._weight_action(ac[2], mu)
|
|
206
|
+
-3/5
|
|
207
|
+
sage: L._weight_action(ac[3], mu)
|
|
208
|
+
0
|
|
209
|
+
"""
|
|
210
|
+
|
|
211
|
+
def _triangular_key(self, x):
|
|
212
|
+
r"""
|
|
213
|
+
Return a key for sorting for the index ``x`` that respects
|
|
214
|
+
the triangular decomposition by `U^-, U^0, U^+`.
|
|
215
|
+
|
|
216
|
+
EXAMPLES::
|
|
217
|
+
|
|
218
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
219
|
+
sage: L = lie_algebras.sl(QQ, 3)
|
|
220
|
+
sage: La = L.cartan_type().root_system().weight_lattice().fundamental_weights()
|
|
221
|
+
sage: sorted(L.basis().keys(), key=L._basis_key)
|
|
222
|
+
[alpha[2], alpha[1], alpha[1] + alpha[2],
|
|
223
|
+
alphacheck[1], alphacheck[2],
|
|
224
|
+
-alpha[2], -alpha[1], -alpha[1] - alpha[2]]
|
|
225
|
+
sage: sorted(L.basis().keys(), key=L._triangular_key)
|
|
226
|
+
[-alpha[2], -alpha[1], -alpha[1] - alpha[2],
|
|
227
|
+
alphacheck[1], alphacheck[2],
|
|
228
|
+
alpha[2], alpha[1], alpha[1] + alpha[2]]
|
|
229
|
+
"""
|
|
230
|
+
try:
|
|
231
|
+
return (self._part_on_basis(x), self._basis_key(x))
|
|
232
|
+
except AttributeError:
|
|
233
|
+
return (self._part_on_basis(x), x)
|
|
234
|
+
|
|
235
|
+
def verma_module(self, la, basis_key=None, **kwds):
|
|
236
|
+
"""
|
|
237
|
+
Return the Verma module with highest weight ``la``
|
|
238
|
+
over ``self``.
|
|
239
|
+
|
|
240
|
+
INPUT:
|
|
241
|
+
|
|
242
|
+
- ``basis_key`` -- (optional) a key function for the indexing
|
|
243
|
+
set of the basis elements of ``self``
|
|
244
|
+
|
|
245
|
+
EXAMPLES::
|
|
246
|
+
|
|
247
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
248
|
+
sage: L = lie_algebras.sl(QQ, 3)
|
|
249
|
+
sage: P = L.cartan_type().root_system().weight_lattice()
|
|
250
|
+
sage: La = P.fundamental_weights()
|
|
251
|
+
sage: M = L.verma_module(La[1] + La[2])
|
|
252
|
+
sage: M
|
|
253
|
+
Verma module with highest weight Lambda[1] + Lambda[2]
|
|
254
|
+
of Lie algebra of ['A', 2] in the Chevalley basis
|
|
255
|
+
"""
|
|
256
|
+
from sage.algebras.lie_algebras.verma_module import VermaModule
|
|
257
|
+
return VermaModule(self, la, basis_key=basis_key, **kwds)
|
|
258
|
+
|
|
259
|
+
def simple_module(self, la, basis_key=None, **kwds):
|
|
260
|
+
r"""
|
|
261
|
+
Return the simple module with highest weight ``la``
|
|
262
|
+
over ``self``.
|
|
263
|
+
|
|
264
|
+
INPUT:
|
|
265
|
+
|
|
266
|
+
- ``la`` -- the weight
|
|
267
|
+
- ``basis_key`` -- (optional) a key function for the indexing
|
|
268
|
+
set of the basis elements of ``self``
|
|
269
|
+
|
|
270
|
+
OUTPUT:
|
|
271
|
+
|
|
272
|
+
If ``la`` is :meth:`Verma antidominant
|
|
273
|
+
<sage.combinat.root_system.root_lattice_realizations.RootLatticeRealizations.ElementMethods.is_verma_dominant>`,
|
|
274
|
+
then this returns the
|
|
275
|
+
:class:`~sage.algebras.lie_algebras.verma_module.VermaModule`
|
|
276
|
+
of highest weight ``la`` (which is simple and more efficient).
|
|
277
|
+
Otherwise this returns a
|
|
278
|
+
:class:`~sage.algebras.lie_algebras.bgg_dual_module.SimpleModule`.
|
|
279
|
+
|
|
280
|
+
EXAMPLES::
|
|
281
|
+
|
|
282
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
283
|
+
sage: g = lie_algebras.sl(QQ, 3)
|
|
284
|
+
sage: P = g.cartan_type().root_system().weight_lattice()
|
|
285
|
+
sage: La = P.fundamental_weights()
|
|
286
|
+
sage: L = g.simple_module(La[1] + La[2])
|
|
287
|
+
sage: L
|
|
288
|
+
Simple module with highest weight Lambda[1] + Lambda[2]
|
|
289
|
+
of Lie algebra of ['A', 2] in the Chevalley basis
|
|
290
|
+
sage: L = g.simple_module(-La[1] - La[2])
|
|
291
|
+
sage: L
|
|
292
|
+
Verma module with highest weight -Lambda[1] - Lambda[2]
|
|
293
|
+
of Lie algebra of ['A', 2] in the Chevalley basis
|
|
294
|
+
"""
|
|
295
|
+
if la.is_verma_dominant(positive=False):
|
|
296
|
+
from sage.algebras.lie_algebras.verma_module import VermaModule
|
|
297
|
+
return VermaModule(self, la, basis_key=basis_key, **kwds)
|
|
298
|
+
|
|
299
|
+
from sage.algebras.lie_algebras.bgg_dual_module import SimpleModule
|
|
300
|
+
return SimpleModule(self, la, basis_key=basis_key, **kwds)
|
|
301
|
+
|
|
302
|
+
class ElementMethods:
|
|
303
|
+
def part(self):
|
|
304
|
+
"""
|
|
305
|
+
Return whether the element ``v`` is in the lower,
|
|
306
|
+
zero, or upper part of ``self``.
|
|
307
|
+
|
|
308
|
+
OUTPUT:
|
|
309
|
+
|
|
310
|
+
`-1` if ``v`` is in the lower part, `0` if in the
|
|
311
|
+
zero part, or `1` if in the upper part
|
|
312
|
+
|
|
313
|
+
EXAMPLES::
|
|
314
|
+
|
|
315
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
316
|
+
sage: L = LieAlgebra(QQ, cartan_type='F4')
|
|
317
|
+
sage: L.inject_variables()
|
|
318
|
+
Defining e1, e2, e3, e4, f1, f2, f3, f4, h1, h2, h3, h4
|
|
319
|
+
sage: e1.part()
|
|
320
|
+
1
|
|
321
|
+
sage: f4.part()
|
|
322
|
+
-1
|
|
323
|
+
sage: (h2 + h3).part()
|
|
324
|
+
0
|
|
325
|
+
sage: (f1.bracket(f2) + 4*f4).part()
|
|
326
|
+
-1
|
|
327
|
+
sage: (e1 + f1).part()
|
|
328
|
+
Traceback (most recent call last):
|
|
329
|
+
...
|
|
330
|
+
ValueError: element is not in one part
|
|
331
|
+
"""
|
|
332
|
+
P = self.parent()
|
|
333
|
+
S = [P._part_on_basis(m) for m in self.support()]
|
|
334
|
+
if all(k < 0 for k in S):
|
|
335
|
+
return -1
|
|
336
|
+
if all(k > 0 for k in S):
|
|
337
|
+
return 1
|
|
338
|
+
if all(k == 0 for k in S):
|
|
339
|
+
return 0
|
|
340
|
+
raise ValueError("element is not in one part")
|
|
341
|
+
|
|
342
|
+
class FiniteDimensional(CategoryWithAxiom_over_base_ring):
|
|
343
|
+
r"""
|
|
344
|
+
Category of finite dimensional Kac-Moody algebras (which correspond
|
|
345
|
+
to semisimple Lie algebras) with a distinguished basis that
|
|
346
|
+
respects the triangular decomposition.
|
|
347
|
+
"""
|
|
348
|
+
class ParentMethods:
|
|
349
|
+
@lazy_attribute
|
|
350
|
+
def _transpose_basis_mapping(self):
|
|
351
|
+
"""
|
|
352
|
+
The mapping on basis elements for the transpose map.
|
|
353
|
+
|
|
354
|
+
EXAMPLES::
|
|
355
|
+
|
|
356
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
357
|
+
sage: g = LieAlgebra(QQ, cartan_type=['A', 2])
|
|
358
|
+
sage: g._transpose_basis_mapping
|
|
359
|
+
{-alpha[1]: alpha[1],
|
|
360
|
+
-alpha[1] - alpha[2]: alpha[1] + alpha[2],
|
|
361
|
+
-alpha[2]: alpha[2],
|
|
362
|
+
alpha[1]: -alpha[1],
|
|
363
|
+
alpha[1] + alpha[2]: -alpha[1] - alpha[2],
|
|
364
|
+
alpha[2]: -alpha[2],
|
|
365
|
+
alphacheck[1]: alphacheck[1],
|
|
366
|
+
alphacheck[2]: alphacheck[2]}
|
|
367
|
+
"""
|
|
368
|
+
K = self.basis().keys()
|
|
369
|
+
deg_map = {}
|
|
370
|
+
ret = {}
|
|
371
|
+
for k in K:
|
|
372
|
+
deg = self.degree_on_basis(k)
|
|
373
|
+
if deg:
|
|
374
|
+
deg_map[deg] = k
|
|
375
|
+
else:
|
|
376
|
+
ret[k] = k
|
|
377
|
+
for al, k in deg_map.items():
|
|
378
|
+
ret[k] = deg_map[-al]
|
|
379
|
+
return ret
|
|
380
|
+
|
|
381
|
+
@cached_method
|
|
382
|
+
def _transpose_on_basis(self, m):
|
|
383
|
+
r"""
|
|
384
|
+
Return the transpose map on the basis element indexed by ``m``.
|
|
385
|
+
|
|
386
|
+
EXAMPLES::
|
|
387
|
+
|
|
388
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
389
|
+
sage: g = LieAlgebra(QQ, cartan_type=['B', 2])
|
|
390
|
+
sage: B = g.basis()
|
|
391
|
+
sage: [(B[k], g._transpose_on_basis(k)) for k in B.keys()]
|
|
392
|
+
[(E[alpha[2]], E[-alpha[2]]),
|
|
393
|
+
(E[alpha[1]], E[-alpha[1]]),
|
|
394
|
+
(E[alpha[1] + alpha[2]], E[-alpha[1] - alpha[2]]),
|
|
395
|
+
(E[alpha[1] + 2*alpha[2]], E[-alpha[1] - 2*alpha[2]]),
|
|
396
|
+
(h1, h1),
|
|
397
|
+
(h2, h2),
|
|
398
|
+
(E[-alpha[2]], E[alpha[2]]),
|
|
399
|
+
(E[-alpha[1]], E[alpha[1]]),
|
|
400
|
+
(E[-alpha[1] - alpha[2]], E[alpha[1] + alpha[2]]),
|
|
401
|
+
(E[-alpha[1] - 2*alpha[2]], E[alpha[1] + 2*alpha[2]])]
|
|
402
|
+
"""
|
|
403
|
+
return self.monomial(self._transpose_basis_mapping[m])
|
|
404
|
+
|
|
405
|
+
@lazy_attribute
|
|
406
|
+
def transpose(self):
|
|
407
|
+
r"""
|
|
408
|
+
The transpose map of ``self``.
|
|
409
|
+
|
|
410
|
+
EXAMPLES::
|
|
411
|
+
|
|
412
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
413
|
+
sage: g = LieAlgebra(QQ, cartan_type=['B', 2])
|
|
414
|
+
sage: g.transpose
|
|
415
|
+
Generic endomorphism of Lie algebra of ['B', 2] in the Chevalley basis
|
|
416
|
+
"""
|
|
417
|
+
return self.module_morphism(self._transpose_on_basis, codomain=self)
|
|
418
|
+
|
|
419
|
+
class ElementMethods:
|
|
420
|
+
def transpose(self):
|
|
421
|
+
r"""
|
|
422
|
+
Return the transpose of ``self``.
|
|
423
|
+
|
|
424
|
+
The transpose `\tau` is the map that sends the root basis
|
|
425
|
+
elements `e_{\alpha} \leftrightarrow e_{-\alpha}` and fixes
|
|
426
|
+
the Cartan subalgebra `h_{\alpha}`. It is an anti-involution
|
|
427
|
+
in the sense `[\tau(a), \tau(b)] = \tau([b, a])`.
|
|
428
|
+
|
|
429
|
+
EXAMPLES::
|
|
430
|
+
|
|
431
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
432
|
+
sage: g = LieAlgebra(QQ, cartan_type=['G', 2])
|
|
433
|
+
sage: for b in g.basis():
|
|
434
|
+
....: for bp in g.basis():
|
|
435
|
+
....: a = g[b.transpose(), bp.transpose()]
|
|
436
|
+
....: ap = g[bp, b].transpose()
|
|
437
|
+
....: assert a == ap
|
|
438
|
+
"""
|
|
439
|
+
return self.parent().transpose(self)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Implementing a new parent: a tutorial
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
The easiest approach for implementing a new parent is to start from a
|
|
7
|
+
close example in sage.categories.examples. Here, we will get through
|
|
8
|
+
the process of implementing a new finite semigroup, taking as starting
|
|
9
|
+
point the provided example::
|
|
10
|
+
|
|
11
|
+
sage: S = FiniteSemigroups().example()
|
|
12
|
+
sage: S
|
|
13
|
+
An example of a finite semigroup: the left regular band generated by ('a', 'b', 'c', 'd')
|
|
14
|
+
|
|
15
|
+
You may lookup the implementation of this example with::
|
|
16
|
+
|
|
17
|
+
sage: S?? # not tested
|
|
18
|
+
|
|
19
|
+
Or by browsing the source code of
|
|
20
|
+
:class:`sage.categories.examples.finite_semigroups.LeftRegularBand`.
|
|
21
|
+
|
|
22
|
+
Copy-paste this code into, say, a cell of the notebook, and replace
|
|
23
|
+
every occurrence of ``FiniteSemigroups().example(...)`` in the
|
|
24
|
+
documentation by ``LeftRegularBand``. This will be equivalent to::
|
|
25
|
+
|
|
26
|
+
sage: from sage.categories.examples.finite_semigroups import LeftRegularBand
|
|
27
|
+
|
|
28
|
+
Now, try::
|
|
29
|
+
|
|
30
|
+
sage: S = LeftRegularBand(); S
|
|
31
|
+
An example of a finite semigroup: the left regular band generated by ('a', 'b', 'c', 'd')
|
|
32
|
+
|
|
33
|
+
and play around with the examples in the documentation of ``S`` and of
|
|
34
|
+
:class:`FiniteSemigroups`.
|
|
35
|
+
|
|
36
|
+
Rename the class to ``ShiftSemigroup``, and modify the product to
|
|
37
|
+
implement the semigroup generated by the given alphabet such that `au
|
|
38
|
+
= u` for any `u` of length `3`.
|
|
39
|
+
|
|
40
|
+
Use ``TestSuite`` to test the newly implemented semigroup; draw its
|
|
41
|
+
Cayley graph.
|
|
42
|
+
|
|
43
|
+
Add another option to the constructor to generalize the construction
|
|
44
|
+
to any u of length `k`.
|
|
45
|
+
|
|
46
|
+
Lookup the Sloane for the sequence of the sizes of those semigroups.
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
Now implement the commutative monoid of subsets of `\{1,\dots,n\}`
|
|
50
|
+
endowed with union as product. What is its category? What are the
|
|
51
|
+
extra functionalities available there? Implement iteration and
|
|
52
|
+
cardinality.
|
|
53
|
+
|
|
54
|
+
.. TODO::
|
|
55
|
+
|
|
56
|
+
The tutorial should explain there how to reuse the enumerated
|
|
57
|
+
set of subsets, and endow it with more structure.
|
|
58
|
+
"""
|