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,377 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Algebras With Basis
|
|
4
|
+
"""
|
|
5
|
+
# ****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 2008-2013 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
8
|
+
#
|
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
10
|
+
# https://www.gnu.org/licenses/
|
|
11
|
+
# *****************************************************************************
|
|
12
|
+
|
|
13
|
+
from sage.categories.cartesian_product import CartesianProductsCategory
|
|
14
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
15
|
+
from sage.categories.tensor import TensorProductsCategory, tensor
|
|
16
|
+
from sage.categories.unital_algebras import UnitalAlgebras
|
|
17
|
+
from sage.misc.cachefunc import cached_method
|
|
18
|
+
from sage.misc.lazy_attribute import lazy_attribute
|
|
19
|
+
from sage.misc.lazy_import import LazyImport
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class AlgebrasWithBasis(CategoryWithAxiom_over_base_ring):
|
|
23
|
+
"""
|
|
24
|
+
The category of algebras with a distinguished basis.
|
|
25
|
+
|
|
26
|
+
EXAMPLES::
|
|
27
|
+
|
|
28
|
+
sage: C = AlgebrasWithBasis(QQ); C
|
|
29
|
+
Category of algebras with basis over Rational Field
|
|
30
|
+
sage: sorted(C.super_categories(), key=str)
|
|
31
|
+
[Category of algebras over Rational Field,
|
|
32
|
+
Category of unital algebras with basis over Rational Field]
|
|
33
|
+
|
|
34
|
+
We construct a typical parent in this category, and do some
|
|
35
|
+
computations with it::
|
|
36
|
+
|
|
37
|
+
sage: # needs sage.combinat sage.modules
|
|
38
|
+
sage: A = C.example(); A
|
|
39
|
+
An example of an algebra with basis:
|
|
40
|
+
the free algebra on the generators ('a', 'b', 'c') over Rational Field
|
|
41
|
+
sage: A.category()
|
|
42
|
+
Category of algebras with basis over Rational Field
|
|
43
|
+
sage: A.one_basis()
|
|
44
|
+
word:
|
|
45
|
+
sage: A.one()
|
|
46
|
+
B[word: ]
|
|
47
|
+
sage: A.base_ring()
|
|
48
|
+
Rational Field
|
|
49
|
+
sage: A.basis().keys()
|
|
50
|
+
Finite words over {'a', 'b', 'c'}
|
|
51
|
+
sage: (a,b,c) = A.algebra_generators()
|
|
52
|
+
sage: a^3, b^2
|
|
53
|
+
(B[word: aaa], B[word: bb])
|
|
54
|
+
sage: a * c * b
|
|
55
|
+
B[word: acb]
|
|
56
|
+
sage: A.product
|
|
57
|
+
<bound method MagmaticAlgebras.WithBasis.ParentMethods._product_from_product_on_basis_multiply of
|
|
58
|
+
An example of an algebra with basis:
|
|
59
|
+
the free algebra on the generators ('a', 'b', 'c') over Rational Field>
|
|
60
|
+
sage: A.product(a * b, b)
|
|
61
|
+
B[word: abb]
|
|
62
|
+
sage: TestSuite(A).run(verbose=True)
|
|
63
|
+
running ._test_additive_associativity() . . . pass
|
|
64
|
+
running ._test_an_element() . . . pass
|
|
65
|
+
running ._test_associativity() . . . pass
|
|
66
|
+
running ._test_cardinality() . . . pass
|
|
67
|
+
running ._test_category() . . . pass
|
|
68
|
+
running ._test_characteristic() . . . pass
|
|
69
|
+
running ._test_construction() . . . pass
|
|
70
|
+
running ._test_distributivity() . . . pass
|
|
71
|
+
running ._test_elements() . . .
|
|
72
|
+
Running the test suite of self.an_element()
|
|
73
|
+
running ._test_category() . . . pass
|
|
74
|
+
running ._test_eq() . . . pass
|
|
75
|
+
running ._test_monomial_coefficients() . . . pass
|
|
76
|
+
running ._test_new() . . . pass
|
|
77
|
+
running ._test_nonzero_equal() . . . pass
|
|
78
|
+
running ._test_not_implemented_methods() . . . pass
|
|
79
|
+
running ._test_pickling() . . . pass
|
|
80
|
+
pass
|
|
81
|
+
running ._test_elements_eq_reflexive() . . . pass
|
|
82
|
+
running ._test_elements_eq_symmetric() . . . pass
|
|
83
|
+
running ._test_elements_eq_transitive() . . . pass
|
|
84
|
+
running ._test_elements_neq() . . . pass
|
|
85
|
+
running ._test_eq() . . . pass
|
|
86
|
+
running ._test_new() . . . pass
|
|
87
|
+
running ._test_not_implemented_methods() . . . pass
|
|
88
|
+
running ._test_one() . . . pass
|
|
89
|
+
running ._test_pickling() . . . pass
|
|
90
|
+
running ._test_prod() . . . pass
|
|
91
|
+
running ._test_some_elements() . . . pass
|
|
92
|
+
running ._test_zero() . . . pass
|
|
93
|
+
sage: A.__class__
|
|
94
|
+
<class 'sage.categories.examples.algebras_with_basis.FreeAlgebra_with_category'>
|
|
95
|
+
sage: A.element_class
|
|
96
|
+
<class 'sage.categories.examples.algebras_with_basis.FreeAlgebra_with_category.element_class'>
|
|
97
|
+
|
|
98
|
+
Please see the source code of `A` (with ``A??``) for how to
|
|
99
|
+
implement other algebras with basis.
|
|
100
|
+
|
|
101
|
+
TESTS::
|
|
102
|
+
|
|
103
|
+
sage: TestSuite(AlgebrasWithBasis(QQ)).run()
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
def example(self, alphabet=('a', 'b', 'c')):
|
|
107
|
+
"""
|
|
108
|
+
Return an example of algebra with basis.
|
|
109
|
+
|
|
110
|
+
EXAMPLES::
|
|
111
|
+
|
|
112
|
+
sage: AlgebrasWithBasis(QQ).example() # needs sage.combinat sage.modules
|
|
113
|
+
An example of an algebra with basis:
|
|
114
|
+
the free algebra on the generators ('a', 'b', 'c') over Rational Field
|
|
115
|
+
|
|
116
|
+
An other set of generators can be specified as optional argument::
|
|
117
|
+
|
|
118
|
+
sage: AlgebrasWithBasis(QQ).example((1,2,3)) # needs sage.combinat sage.modules
|
|
119
|
+
An example of an algebra with basis:
|
|
120
|
+
the free algebra on the generators (1, 2, 3) over Rational Field
|
|
121
|
+
"""
|
|
122
|
+
from sage.categories.examples.algebras_with_basis import Example
|
|
123
|
+
return Example(self.base_ring(), alphabet)
|
|
124
|
+
|
|
125
|
+
Filtered = LazyImport('sage.categories.filtered_algebras_with_basis', 'FilteredAlgebrasWithBasis')
|
|
126
|
+
FiniteDimensional = LazyImport('sage.categories.finite_dimensional_algebras_with_basis', 'FiniteDimensionalAlgebrasWithBasis', at_startup=True)
|
|
127
|
+
Graded = LazyImport('sage.categories.graded_algebras_with_basis', 'GradedAlgebrasWithBasis')
|
|
128
|
+
Super = LazyImport('sage.categories.super_algebras_with_basis', 'SuperAlgebrasWithBasis')
|
|
129
|
+
|
|
130
|
+
class ParentMethods:
|
|
131
|
+
|
|
132
|
+
# For backward compatibility
|
|
133
|
+
one = UnitalAlgebras.WithBasis.ParentMethods.one
|
|
134
|
+
|
|
135
|
+
def hochschild_complex(self, M):
|
|
136
|
+
"""
|
|
137
|
+
Return the Hochschild complex of ``self`` with coefficients
|
|
138
|
+
in ``M``.
|
|
139
|
+
|
|
140
|
+
.. SEEALSO::
|
|
141
|
+
|
|
142
|
+
:class:`~sage.homology.hochschild_complex.HochschildComplex`
|
|
143
|
+
|
|
144
|
+
EXAMPLES::
|
|
145
|
+
|
|
146
|
+
sage: R.<x> = QQ[]
|
|
147
|
+
sage: A = algebras.DifferentialWeyl(R) # needs sage.modules
|
|
148
|
+
sage: H = A.hochschild_complex(A) # needs sage.modules
|
|
149
|
+
|
|
150
|
+
sage: # needs sage.combinat sage.groups sage.modules
|
|
151
|
+
sage: SGA = SymmetricGroupAlgebra(QQ, 3)
|
|
152
|
+
sage: T = SGA.trivial_representation()
|
|
153
|
+
sage: H = SGA.hochschild_complex(T)
|
|
154
|
+
"""
|
|
155
|
+
from sage.homology.hochschild_complex import HochschildComplex
|
|
156
|
+
return HochschildComplex(self, M)
|
|
157
|
+
|
|
158
|
+
class ElementMethods:
|
|
159
|
+
|
|
160
|
+
def __invert__(self):
|
|
161
|
+
"""
|
|
162
|
+
Return the inverse of ``self`` if ``self`` is a multiple of one,
|
|
163
|
+
and one is in the basis of this algebra. Otherwise throws
|
|
164
|
+
an error.
|
|
165
|
+
|
|
166
|
+
Caveat: this generic implementation is not complete; there
|
|
167
|
+
may be invertible elements in the algebra that can't be
|
|
168
|
+
inversed this way. It is correct though for graded
|
|
169
|
+
connected algebras with basis.
|
|
170
|
+
|
|
171
|
+
.. WARNING::
|
|
172
|
+
|
|
173
|
+
This might produce a result which does not belong to
|
|
174
|
+
the parent of ``self``, yet believes to do so. For
|
|
175
|
+
instance, inverting 2 times the unity will produce 1/2
|
|
176
|
+
times the unity, even if 1/2 is not in the base ring.
|
|
177
|
+
Handle with care.
|
|
178
|
+
|
|
179
|
+
EXAMPLES::
|
|
180
|
+
|
|
181
|
+
sage: # needs sage.combinat sage.modules
|
|
182
|
+
sage: C = AlgebrasWithBasis(QQ).example()
|
|
183
|
+
sage: x = C(2); x
|
|
184
|
+
2*B[word: ]
|
|
185
|
+
sage: ~x
|
|
186
|
+
1/2*B[word: ]
|
|
187
|
+
sage: a = C.algebra_generators().first(); a
|
|
188
|
+
B[word: a]
|
|
189
|
+
sage: ~a
|
|
190
|
+
Traceback (most recent call last):
|
|
191
|
+
...
|
|
192
|
+
ValueError: cannot invert self (= B[word: a])
|
|
193
|
+
"""
|
|
194
|
+
# FIXME: make this generic
|
|
195
|
+
mcs = self.monomial_coefficients(copy=False)
|
|
196
|
+
one = self.parent().one_basis()
|
|
197
|
+
if len(mcs) == 1 and one in mcs:
|
|
198
|
+
return self.parent().term(one, ~mcs[one])
|
|
199
|
+
else:
|
|
200
|
+
raise ValueError("cannot invert self (= %s)" % self)
|
|
201
|
+
|
|
202
|
+
class CartesianProducts(CartesianProductsCategory):
|
|
203
|
+
"""
|
|
204
|
+
The category of algebras with basis, constructed as Cartesian
|
|
205
|
+
products of algebras with basis.
|
|
206
|
+
|
|
207
|
+
Note: this construction give the direct products of algebras with basis.
|
|
208
|
+
See comment in :class:`Algebras.CartesianProducts
|
|
209
|
+
<sage.categories.algebras.Algebras.CartesianProducts>`
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
def extra_super_categories(self):
|
|
213
|
+
"""
|
|
214
|
+
A Cartesian product of algebras with basis is endowed with
|
|
215
|
+
a natural algebra with basis structure.
|
|
216
|
+
|
|
217
|
+
EXAMPLES::
|
|
218
|
+
|
|
219
|
+
sage: AlgebrasWithBasis(QQ).CartesianProducts().extra_super_categories()
|
|
220
|
+
[Category of algebras with basis over Rational Field]
|
|
221
|
+
sage: AlgebrasWithBasis(QQ).CartesianProducts().super_categories()
|
|
222
|
+
[Category of algebras with basis over Rational Field,
|
|
223
|
+
Category of Cartesian products of algebras over Rational Field,
|
|
224
|
+
Category of Cartesian products of vector spaces with basis over Rational Field]
|
|
225
|
+
"""
|
|
226
|
+
return [self.base_category()]
|
|
227
|
+
|
|
228
|
+
class ParentMethods:
|
|
229
|
+
@cached_method
|
|
230
|
+
def one_from_cartesian_product_of_one_basis(self):
|
|
231
|
+
"""
|
|
232
|
+
Return the one of this Cartesian product of algebras, as per
|
|
233
|
+
``Monoids.ParentMethods.one``
|
|
234
|
+
|
|
235
|
+
It is constructed as the Cartesian product of the ones of the
|
|
236
|
+
summands, using their :meth:`~AlgebrasWithBasis.ParentMethods.one_basis` methods.
|
|
237
|
+
|
|
238
|
+
This implementation does not require multiplication by
|
|
239
|
+
scalars nor calling cartesian_product. This might help keeping
|
|
240
|
+
things as lazy as possible upon initialization.
|
|
241
|
+
|
|
242
|
+
EXAMPLES::
|
|
243
|
+
|
|
244
|
+
sage: # needs sage.combinat sage.modules
|
|
245
|
+
sage: A = AlgebrasWithBasis(QQ).example(); A
|
|
246
|
+
An example of an algebra with basis: the free algebra
|
|
247
|
+
on the generators ('a', 'b', 'c') over Rational Field
|
|
248
|
+
sage: A.one_basis()
|
|
249
|
+
word:
|
|
250
|
+
sage: B = cartesian_product((A, A, A))
|
|
251
|
+
sage: B.one_from_cartesian_product_of_one_basis()
|
|
252
|
+
B[(0, word: )] + B[(1, word: )] + B[(2, word: )]
|
|
253
|
+
sage: B.one()
|
|
254
|
+
B[(0, word: )] + B[(1, word: )] + B[(2, word: )]
|
|
255
|
+
|
|
256
|
+
sage: cartesian_product([SymmetricGroupAlgebra(QQ, 3), # needs sage.combinat sage.groups sage.modules
|
|
257
|
+
....: SymmetricGroupAlgebra(QQ, 4)]).one()
|
|
258
|
+
B[(0, [1, 2, 3])] + B[(1, [1, 2, 3, 4])]
|
|
259
|
+
"""
|
|
260
|
+
return self.sum_of_monomials(zip(self._sets_keys(), (set.one_basis() for set in self._sets)))
|
|
261
|
+
|
|
262
|
+
@lazy_attribute
|
|
263
|
+
def one(self):
|
|
264
|
+
"""
|
|
265
|
+
TESTS::
|
|
266
|
+
|
|
267
|
+
sage: A = AlgebrasWithBasis(QQ).example(); A # needs sage.combinat sage.modules
|
|
268
|
+
An example of an algebra with basis: the free algebra
|
|
269
|
+
on the generators ('a', 'b', 'c') over Rational Field
|
|
270
|
+
sage: B = cartesian_product((A, A, A)) # needs sage.combinat sage.modules
|
|
271
|
+
sage: B.one() # needs sage.combinat sage.modules
|
|
272
|
+
B[(0, word: )] + B[(1, word: )] + B[(2, word: )]
|
|
273
|
+
"""
|
|
274
|
+
if all(hasattr(module, "one_basis") and module.one_basis is not NotImplemented for module in self._sets):
|
|
275
|
+
return self.one_from_cartesian_product_of_one_basis
|
|
276
|
+
return self._one_generic
|
|
277
|
+
|
|
278
|
+
_one_generic = UnitalAlgebras.CartesianProducts.ParentMethods.one
|
|
279
|
+
|
|
280
|
+
# def product_on_basis(self, t1, t2):
|
|
281
|
+
# would be easy to implement, but without a special
|
|
282
|
+
# version of module morphism, this would not take
|
|
283
|
+
# advantage of the block structure
|
|
284
|
+
|
|
285
|
+
class TensorProducts(TensorProductsCategory):
|
|
286
|
+
"""
|
|
287
|
+
The category of algebras with basis constructed by tensor product of algebras with basis
|
|
288
|
+
"""
|
|
289
|
+
|
|
290
|
+
@cached_method
|
|
291
|
+
def extra_super_categories(self):
|
|
292
|
+
"""
|
|
293
|
+
EXAMPLES::
|
|
294
|
+
|
|
295
|
+
sage: AlgebrasWithBasis(QQ).TensorProducts().extra_super_categories()
|
|
296
|
+
[Category of algebras with basis over Rational Field]
|
|
297
|
+
sage: AlgebrasWithBasis(QQ).TensorProducts().super_categories()
|
|
298
|
+
[Category of algebras with basis over Rational Field,
|
|
299
|
+
Category of tensor products of algebras over Rational Field,
|
|
300
|
+
Category of tensor products of vector spaces with basis over Rational Field]
|
|
301
|
+
"""
|
|
302
|
+
return [self.base_category()]
|
|
303
|
+
|
|
304
|
+
class ParentMethods:
|
|
305
|
+
"""
|
|
306
|
+
implements operations on tensor products of algebras with basis
|
|
307
|
+
"""
|
|
308
|
+
|
|
309
|
+
@cached_method
|
|
310
|
+
def one_basis(self):
|
|
311
|
+
"""
|
|
312
|
+
Return the index of the one of this tensor product of
|
|
313
|
+
algebras, as per ``AlgebrasWithBasis.ParentMethods.one_basis``
|
|
314
|
+
|
|
315
|
+
It is the tuple whose operands are the indices of the
|
|
316
|
+
ones of the operands, as returned by their
|
|
317
|
+
:meth:`.one_basis` methods.
|
|
318
|
+
|
|
319
|
+
EXAMPLES::
|
|
320
|
+
|
|
321
|
+
sage: # needs sage.combinat sage.modules
|
|
322
|
+
sage: A = AlgebrasWithBasis(QQ).example(); A
|
|
323
|
+
An example of an algebra with basis: the free algebra
|
|
324
|
+
on the generators ('a', 'b', 'c') over Rational Field
|
|
325
|
+
sage: A.one_basis()
|
|
326
|
+
word:
|
|
327
|
+
sage: B = tensor((A, A, A))
|
|
328
|
+
sage: B.one_basis()
|
|
329
|
+
(word: , word: , word: )
|
|
330
|
+
sage: B.one()
|
|
331
|
+
B[word: ] # B[word: ] # B[word: ]
|
|
332
|
+
"""
|
|
333
|
+
# FIXME: this method should be conditionally defined,
|
|
334
|
+
# so that B.one_basis returns NotImplemented if not
|
|
335
|
+
# all modules provide one_basis
|
|
336
|
+
if all(hasattr(module, "one_basis") for module in self._sets):
|
|
337
|
+
return tuple(module.one_basis() for module in self._sets)
|
|
338
|
+
else:
|
|
339
|
+
raise NotImplementedError
|
|
340
|
+
|
|
341
|
+
def product_on_basis(self, t1, t2):
|
|
342
|
+
"""
|
|
343
|
+
The product of the algebra on the basis, as per
|
|
344
|
+
``AlgebrasWithBasis.ParentMethods.product_on_basis``.
|
|
345
|
+
|
|
346
|
+
EXAMPLES::
|
|
347
|
+
|
|
348
|
+
sage: # needs sage.combinat sage.modules
|
|
349
|
+
sage: A = AlgebrasWithBasis(QQ).example(); A
|
|
350
|
+
An example of an algebra with basis: the free algebra
|
|
351
|
+
on the generators ('a', 'b', 'c') over Rational Field
|
|
352
|
+
sage: (a,b,c) = A.algebra_generators()
|
|
353
|
+
sage: x = tensor((a, b, c)); x
|
|
354
|
+
B[word: a] # B[word: b] # B[word: c]
|
|
355
|
+
sage: y = tensor((c, b, a)); y
|
|
356
|
+
B[word: c] # B[word: b] # B[word: a]
|
|
357
|
+
sage: x * y
|
|
358
|
+
B[word: ac] # B[word: bb] # B[word: ca]
|
|
359
|
+
sage: x = tensor(((a + 2*b), c)); x
|
|
360
|
+
B[word: a] # B[word: c] + 2*B[word: b] # B[word: c]
|
|
361
|
+
sage: y = tensor((c, a)) + 1; y
|
|
362
|
+
B[word: ] # B[word: ] + B[word: c] # B[word: a]
|
|
363
|
+
sage: x * y
|
|
364
|
+
B[word: a] # B[word: c] + B[word: ac] # B[word: ca]
|
|
365
|
+
+ 2*B[word: b] # B[word: c] + 2*B[word: bc] # B[word: ca]
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
TODO: optimize this implementation!
|
|
369
|
+
"""
|
|
370
|
+
return tensor(module.monomial(x1) * module.monomial(x2)
|
|
371
|
+
for module, x1, x2 in zip(self._sets, t1, t2))
|
|
372
|
+
|
|
373
|
+
class ElementMethods:
|
|
374
|
+
"""
|
|
375
|
+
Implement operations on elements of tensor products of algebras with basis
|
|
376
|
+
"""
|
|
377
|
+
pass
|
sage/categories/all.py
ADDED
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Sage categories quickref
|
|
4
|
+
|
|
5
|
+
- ``sage.categories.primer?`` a primer on Elements, Parents, and Categories
|
|
6
|
+
- ``sage.categories.tutorial?`` a tutorial on Elements, Parents, and Categories
|
|
7
|
+
- ``Category?`` technical background on categories
|
|
8
|
+
- ``Sets()``, ``Semigroups()``, ``Algebras(QQ)`` some categories
|
|
9
|
+
- ``SemiGroups().example()??`` sample implementation of a semigroup
|
|
10
|
+
- ``Hom(A, B)``, ``End(A, Algebras())`` homomorphisms sets
|
|
11
|
+
- ``tensor``, ``cartesian_product`` functorial constructions
|
|
12
|
+
|
|
13
|
+
Module layout:
|
|
14
|
+
|
|
15
|
+
- :mod:`sage.categories.basic` the basic categories
|
|
16
|
+
- :mod:`sage.categories.all` all categories
|
|
17
|
+
- :mod:`sage.categories.semigroups` the ``Semigroups()`` category
|
|
18
|
+
- :mod:`sage.categories.examples.semigroups` the example of ``Semigroups()``
|
|
19
|
+
- :mod:`sage.categories.homset` morphisms, ...
|
|
20
|
+
- :mod:`sage.categories.map`
|
|
21
|
+
- :mod:`sage.categories.morphism`
|
|
22
|
+
- :mod:`sage.categories.functors`
|
|
23
|
+
- :mod:`sage.categories.cartesian_product` functorial constructions
|
|
24
|
+
- :mod:`sage.categories.tensor`
|
|
25
|
+
- :mod:`sage.categories.dual`
|
|
26
|
+
"""
|
|
27
|
+
# install the docstring of this module to the containing package
|
|
28
|
+
from sage.misc.namespace_package import install_doc
|
|
29
|
+
install_doc(__package__, __doc__)
|
|
30
|
+
|
|
31
|
+
from sage.categories import primer
|
|
32
|
+
|
|
33
|
+
from sage.misc.lazy_import import lazy_import
|
|
34
|
+
|
|
35
|
+
from sage.categories.all__sagemath_objects import *
|
|
36
|
+
|
|
37
|
+
from sage.categories.basic import *
|
|
38
|
+
|
|
39
|
+
from sage.categories.chain_complexes import ChainComplexes, HomologyFunctor
|
|
40
|
+
|
|
41
|
+
from sage.categories.simplicial_complexes import SimplicialComplexes
|
|
42
|
+
|
|
43
|
+
from sage.categories.tensor import tensor
|
|
44
|
+
from sage.categories.signed_tensor import tensor_signed
|
|
45
|
+
|
|
46
|
+
from sage.categories.g_sets import GSets
|
|
47
|
+
from sage.categories.pointed_sets import PointedSets
|
|
48
|
+
|
|
49
|
+
from sage.categories.sets_with_grading import SetsWithGrading
|
|
50
|
+
|
|
51
|
+
from sage.categories.groupoid import Groupoid
|
|
52
|
+
from sage.categories.permutation_groups import PermutationGroups
|
|
53
|
+
|
|
54
|
+
# enumerated sets
|
|
55
|
+
from sage.categories.finite_sets import FiniteSets
|
|
56
|
+
from sage.categories.enumerated_sets import EnumeratedSets
|
|
57
|
+
from sage.categories.finite_enumerated_sets import FiniteEnumeratedSets
|
|
58
|
+
from sage.categories.infinite_enumerated_sets import InfiniteEnumeratedSets
|
|
59
|
+
|
|
60
|
+
# posets
|
|
61
|
+
from sage.categories.posets import Posets
|
|
62
|
+
from sage.categories.finite_posets import FinitePosets
|
|
63
|
+
from sage.categories.lattice_posets import LatticePosets
|
|
64
|
+
from sage.categories.finite_lattice_posets import FiniteLatticePosets
|
|
65
|
+
|
|
66
|
+
# finite groups/...
|
|
67
|
+
from sage.categories.finite_semigroups import FiniteSemigroups
|
|
68
|
+
from sage.categories.finite_monoids import FiniteMonoids
|
|
69
|
+
from sage.categories.finite_groups import FiniteGroups
|
|
70
|
+
from sage.categories.finite_permutation_groups import FinitePermutationGroups
|
|
71
|
+
|
|
72
|
+
# fields
|
|
73
|
+
from sage.categories.number_fields import NumberFields
|
|
74
|
+
from sage.categories.function_fields import FunctionFields
|
|
75
|
+
|
|
76
|
+
# modules
|
|
77
|
+
from sage.categories.left_modules import LeftModules
|
|
78
|
+
from sage.categories.right_modules import RightModules
|
|
79
|
+
from sage.categories.bimodules import Bimodules
|
|
80
|
+
|
|
81
|
+
from sage.categories.modules import Modules
|
|
82
|
+
RingModules = Modules
|
|
83
|
+
from sage.categories.vector_spaces import VectorSpaces
|
|
84
|
+
|
|
85
|
+
# (Hopf) algebra structures
|
|
86
|
+
from sage.categories.algebras import Algebras
|
|
87
|
+
from sage.categories.commutative_algebras import CommutativeAlgebras
|
|
88
|
+
from sage.categories.coalgebras import Coalgebras
|
|
89
|
+
from sage.categories.bialgebras import Bialgebras
|
|
90
|
+
from sage.categories.hopf_algebras import HopfAlgebras
|
|
91
|
+
from sage.categories.lie_algebras import LieAlgebras
|
|
92
|
+
|
|
93
|
+
# specific algebras
|
|
94
|
+
from sage.categories.monoid_algebras import MonoidAlgebras
|
|
95
|
+
from sage.categories.group_algebras import GroupAlgebras
|
|
96
|
+
from sage.categories.matrix_algebras import MatrixAlgebras
|
|
97
|
+
|
|
98
|
+
# ideals
|
|
99
|
+
from sage.categories.ring_ideals import RingIdeals
|
|
100
|
+
Ideals = RingIdeals
|
|
101
|
+
from sage.categories.commutative_ring_ideals import CommutativeRingIdeals
|
|
102
|
+
from sage.categories.algebra_modules import AlgebraModules
|
|
103
|
+
from sage.categories.algebra_ideals import AlgebraIdeals
|
|
104
|
+
from sage.categories.commutative_algebra_ideals import CommutativeAlgebraIdeals
|
|
105
|
+
|
|
106
|
+
# schemes and varieties
|
|
107
|
+
from sage.categories.modular_abelian_varieties import ModularAbelianVarieties
|
|
108
|
+
from sage.categories.schemes import Schemes, AbelianVarieties, Jacobians
|
|
109
|
+
|
|
110
|
+
# * with basis
|
|
111
|
+
from sage.categories.modules_with_basis import ModulesWithBasis
|
|
112
|
+
FreeModules = ModulesWithBasis
|
|
113
|
+
from sage.categories.hecke_modules import HeckeModules
|
|
114
|
+
from sage.categories.algebras_with_basis import AlgebrasWithBasis
|
|
115
|
+
from sage.categories.coalgebras_with_basis import CoalgebrasWithBasis
|
|
116
|
+
from sage.categories.bialgebras_with_basis import BialgebrasWithBasis
|
|
117
|
+
from sage.categories.hopf_algebras_with_basis import HopfAlgebrasWithBasis
|
|
118
|
+
|
|
119
|
+
# finite dimensional * with basis
|
|
120
|
+
from sage.categories.finite_dimensional_modules_with_basis import FiniteDimensionalModulesWithBasis
|
|
121
|
+
from sage.categories.finite_dimensional_algebras_with_basis import FiniteDimensionalAlgebrasWithBasis
|
|
122
|
+
from sage.categories.finite_dimensional_coalgebras_with_basis import FiniteDimensionalCoalgebrasWithBasis
|
|
123
|
+
from sage.categories.finite_dimensional_bialgebras_with_basis import FiniteDimensionalBialgebrasWithBasis
|
|
124
|
+
from sage.categories.finite_dimensional_hopf_algebras_with_basis import FiniteDimensionalHopfAlgebrasWithBasis
|
|
125
|
+
|
|
126
|
+
# graded *
|
|
127
|
+
from sage.categories.graded_modules import GradedModules
|
|
128
|
+
from sage.categories.graded_algebras import GradedAlgebras
|
|
129
|
+
from sage.categories.graded_coalgebras import GradedCoalgebras
|
|
130
|
+
from sage.categories.graded_bialgebras import GradedBialgebras
|
|
131
|
+
from sage.categories.graded_hopf_algebras import GradedHopfAlgebras
|
|
132
|
+
|
|
133
|
+
# graded * with basis
|
|
134
|
+
from sage.categories.graded_modules_with_basis import GradedModulesWithBasis
|
|
135
|
+
from sage.categories.graded_algebras_with_basis import GradedAlgebrasWithBasis
|
|
136
|
+
from sage.categories.graded_coalgebras_with_basis import GradedCoalgebrasWithBasis
|
|
137
|
+
from sage.categories.graded_bialgebras_with_basis import GradedBialgebrasWithBasis
|
|
138
|
+
from sage.categories.graded_hopf_algebras_with_basis import GradedHopfAlgebrasWithBasis
|
|
139
|
+
|
|
140
|
+
# Coxeter groups
|
|
141
|
+
from sage.categories.coxeter_groups import CoxeterGroups
|
|
142
|
+
lazy_import('sage.categories.finite_coxeter_groups', 'FiniteCoxeterGroups')
|
|
143
|
+
from sage.categories.weyl_groups import WeylGroups
|
|
144
|
+
from sage.categories.finite_weyl_groups import FiniteWeylGroups
|
|
145
|
+
from sage.categories.affine_weyl_groups import AffineWeylGroups
|
|
146
|
+
|
|
147
|
+
# crystal bases
|
|
148
|
+
from sage.categories.crystals import Crystals
|
|
149
|
+
from sage.categories.highest_weight_crystals import HighestWeightCrystals
|
|
150
|
+
from sage.categories.regular_crystals import RegularCrystals
|
|
151
|
+
from sage.categories.finite_crystals import FiniteCrystals
|
|
152
|
+
from sage.categories.classical_crystals import ClassicalCrystals
|
|
153
|
+
|
|
154
|
+
# polyhedra
|
|
155
|
+
lazy_import('sage.categories.polyhedra', 'PolyhedralSets')
|
|
156
|
+
|
|
157
|
+
# lie conformal algebras
|
|
158
|
+
lazy_import('sage.categories.lie_conformal_algebras', 'LieConformalAlgebras')
|
|
159
|
+
del lazy_import
|
|
160
|
+
del install_doc
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Aperiodic semigroups
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2016 Nicolas M. Thiéry <nthiery at users.sf.net>
|
|
7
|
+
#
|
|
8
|
+
# This program is free software: you can redistribute it and/or modify
|
|
9
|
+
# it under the terms of the GNU General Public License as published by
|
|
10
|
+
# the Free Software Foundation, either version 2 of the License, or
|
|
11
|
+
# (at your option) any later version.
|
|
12
|
+
# http://www.gnu.org/licenses/
|
|
13
|
+
#*****************************************************************************
|
|
14
|
+
|
|
15
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom
|
|
16
|
+
from sage.categories.semigroups import Semigroups
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class AperiodicSemigroups(CategoryWithAxiom):
|
|
20
|
+
def extra_super_categories(self):
|
|
21
|
+
r"""
|
|
22
|
+
Implement the fact that an aperiodic semigroup is `H`-trivial.
|
|
23
|
+
|
|
24
|
+
EXAMPLES::
|
|
25
|
+
|
|
26
|
+
sage: Semigroups().Aperiodic().extra_super_categories()
|
|
27
|
+
[Category of h trivial semigroups]
|
|
28
|
+
"""
|
|
29
|
+
return [Semigroups().HTrivial()]
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Associative algebras
|
|
4
|
+
"""
|
|
5
|
+
# ****************************************************************************
|
|
6
|
+
# Copyright (C) 2011 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# https://www.gnu.org/licenses/
|
|
10
|
+
# *****************************************************************************
|
|
11
|
+
|
|
12
|
+
from sage.misc.lazy_import import LazyImport
|
|
13
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
14
|
+
from sage.categories.magmatic_algebras import MagmaticAlgebras
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class AssociativeAlgebras(CategoryWithAxiom_over_base_ring):
|
|
18
|
+
r"""
|
|
19
|
+
The category of associative algebras over a given base ring.
|
|
20
|
+
|
|
21
|
+
An associative algebra over a ring `R` is a module over `R` which
|
|
22
|
+
is also a not necessarily unital ring.
|
|
23
|
+
|
|
24
|
+
.. WARNING::
|
|
25
|
+
|
|
26
|
+
Until :issue:`15043` is implemented, :class:`Algebras` is the
|
|
27
|
+
category of associative unital algebras; thus, unlike the name
|
|
28
|
+
suggests, :class:`AssociativeAlgebras` is not a subcategory of
|
|
29
|
+
:class:`Algebras` but of
|
|
30
|
+
:class:`~.magmatic_algebras.MagmaticAlgebras`.
|
|
31
|
+
|
|
32
|
+
EXAMPLES::
|
|
33
|
+
|
|
34
|
+
sage: from sage.categories.associative_algebras import AssociativeAlgebras
|
|
35
|
+
sage: C = AssociativeAlgebras(ZZ); C
|
|
36
|
+
Category of associative algebras over Integer Ring
|
|
37
|
+
|
|
38
|
+
TESTS::
|
|
39
|
+
|
|
40
|
+
sage: from sage.categories.magmatic_algebras import MagmaticAlgebras
|
|
41
|
+
sage: C is MagmaticAlgebras(ZZ).Associative()
|
|
42
|
+
True
|
|
43
|
+
sage: TestSuite(C).run()
|
|
44
|
+
"""
|
|
45
|
+
_base_category_class_and_axiom = (MagmaticAlgebras, "Associative")
|
|
46
|
+
|
|
47
|
+
Unital = LazyImport('sage.categories.algebras', 'Algebras', at_startup=True)
|