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,229 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Super modules
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2015 Travis Scrimshaw <tscrim at ucdavis.edu>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# http://www.gnu.org/licenses/
|
|
10
|
+
#******************************************************************************
|
|
11
|
+
|
|
12
|
+
from sage.categories.category_types import Category_over_base_ring
|
|
13
|
+
from sage.categories.covariant_functorial_construction import CovariantConstructionCategory
|
|
14
|
+
|
|
15
|
+
# Note, a commutative algebra is not a commutative super algebra,
|
|
16
|
+
# therefore the following whitelist.
|
|
17
|
+
axiom_whitelist = frozenset(["Facade", "Finite", "Infinite",
|
|
18
|
+
"FiniteDimensional", "Connected", "WithBasis",
|
|
19
|
+
"FinitelyGeneratedAsLambdaBracketAlgebra",
|
|
20
|
+
# "Commutative", "Cocommutative",
|
|
21
|
+
"Supercommutative", "Supercocommutative",
|
|
22
|
+
"Associative", "Inverse", "Unital", "Division",
|
|
23
|
+
"AdditiveCommutative", "AdditiveAssociative",
|
|
24
|
+
"AdditiveInverse", "AdditiveUnital",
|
|
25
|
+
"NoZeroDivisors", "Distributive"])
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class SuperModulesCategory(CovariantConstructionCategory, Category_over_base_ring):
|
|
29
|
+
@classmethod
|
|
30
|
+
def default_super_categories(cls, category, *args):
|
|
31
|
+
"""
|
|
32
|
+
Return the default super categories of `F_{Cat}(A,B,...)` for
|
|
33
|
+
`A,B,...` parents in `Cat`.
|
|
34
|
+
|
|
35
|
+
INPUT:
|
|
36
|
+
|
|
37
|
+
- ``cls`` -- the category class for the functor `F`
|
|
38
|
+
- ``category`` -- a category `Cat`
|
|
39
|
+
- ``*args`` -- further arguments for the functor
|
|
40
|
+
|
|
41
|
+
OUTPUT: a join category
|
|
42
|
+
|
|
43
|
+
This implements the property that subcategories constructed by
|
|
44
|
+
the set of whitelisted axioms is a subcategory.
|
|
45
|
+
|
|
46
|
+
EXAMPLES::
|
|
47
|
+
|
|
48
|
+
sage: HopfAlgebras(ZZ).WithBasis().FiniteDimensional().Super() # indirect doctest
|
|
49
|
+
Category of finite dimensional super Hopf algebras with basis over Integer Ring
|
|
50
|
+
"""
|
|
51
|
+
axioms = axiom_whitelist.intersection(category.axioms())
|
|
52
|
+
C = super().default_super_categories(category, *args)
|
|
53
|
+
return C._with_axioms(axioms)
|
|
54
|
+
|
|
55
|
+
def __init__(self, base_category):
|
|
56
|
+
"""
|
|
57
|
+
EXAMPLES::
|
|
58
|
+
|
|
59
|
+
sage: C = Algebras(QQ).Super()
|
|
60
|
+
sage: C
|
|
61
|
+
Category of super algebras over Rational Field
|
|
62
|
+
sage: C.base_category()
|
|
63
|
+
Category of algebras over Rational Field
|
|
64
|
+
sage: sorted(C.super_categories(), key=str)
|
|
65
|
+
[Category of graded algebras over Rational Field,
|
|
66
|
+
Category of super modules over Rational Field]
|
|
67
|
+
|
|
68
|
+
sage: AlgebrasWithBasis(QQ).Super().base_ring()
|
|
69
|
+
Rational Field
|
|
70
|
+
sage: HopfAlgebrasWithBasis(QQ).Super().base_ring()
|
|
71
|
+
Rational Field
|
|
72
|
+
"""
|
|
73
|
+
super().__init__(base_category, base_category.base_ring())
|
|
74
|
+
|
|
75
|
+
_functor_category = "Super"
|
|
76
|
+
|
|
77
|
+
def _repr_object_names(self):
|
|
78
|
+
"""
|
|
79
|
+
EXAMPLES::
|
|
80
|
+
|
|
81
|
+
sage: AlgebrasWithBasis(QQ).Super() # indirect doctest
|
|
82
|
+
Category of super algebras with basis over Rational Field
|
|
83
|
+
"""
|
|
84
|
+
return "super {}".format(self.base_category()._repr_object_names())
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
class SuperModules(SuperModulesCategory):
|
|
88
|
+
r"""
|
|
89
|
+
The category of super modules.
|
|
90
|
+
|
|
91
|
+
An `R`-*super module* (where `R` is a ring) is an `R`-module `M` equipped
|
|
92
|
+
with a decomposition `M = M_0 \oplus M_1` into two `R`-submodules
|
|
93
|
+
`M_0` and `M_1` (called the *even part* and the *odd part* of `M`,
|
|
94
|
+
respectively).
|
|
95
|
+
|
|
96
|
+
Thus, an `R`-super module automatically becomes a `\ZZ / 2 \ZZ`-graded
|
|
97
|
+
`R`-module, with `M_0` being the degree-`0` component and `M_1` being the
|
|
98
|
+
degree-`1` component.
|
|
99
|
+
|
|
100
|
+
EXAMPLES::
|
|
101
|
+
|
|
102
|
+
sage: Modules(ZZ).Super()
|
|
103
|
+
Category of super modules over Integer Ring
|
|
104
|
+
sage: Modules(ZZ).Super().super_categories()
|
|
105
|
+
[Category of graded modules over Integer Ring]
|
|
106
|
+
|
|
107
|
+
The category of super modules defines the super structure which
|
|
108
|
+
shall be preserved by morphisms::
|
|
109
|
+
|
|
110
|
+
sage: Modules(ZZ).Super().additional_structure()
|
|
111
|
+
Category of super modules over Integer Ring
|
|
112
|
+
|
|
113
|
+
TESTS::
|
|
114
|
+
|
|
115
|
+
sage: TestSuite(Modules(ZZ).Super()).run()
|
|
116
|
+
"""
|
|
117
|
+
def super_categories(self):
|
|
118
|
+
"""
|
|
119
|
+
EXAMPLES::
|
|
120
|
+
|
|
121
|
+
sage: Modules(ZZ).Super().super_categories()
|
|
122
|
+
[Category of graded modules over Integer Ring]
|
|
123
|
+
|
|
124
|
+
Nota bene::
|
|
125
|
+
|
|
126
|
+
sage: Modules(QQ).Super()
|
|
127
|
+
Category of super modules over Rational Field
|
|
128
|
+
sage: Modules(QQ).Super().super_categories()
|
|
129
|
+
[Category of graded modules over Rational Field]
|
|
130
|
+
"""
|
|
131
|
+
return [self.base_category().Graded()]
|
|
132
|
+
|
|
133
|
+
def extra_super_categories(self):
|
|
134
|
+
r"""
|
|
135
|
+
Add :class:`VectorSpaces` to the super categories of ``self`` if
|
|
136
|
+
the base ring is a field.
|
|
137
|
+
|
|
138
|
+
EXAMPLES::
|
|
139
|
+
|
|
140
|
+
sage: Modules(QQ).Super().extra_super_categories()
|
|
141
|
+
[Category of vector spaces over Rational Field]
|
|
142
|
+
sage: Modules(ZZ).Super().extra_super_categories()
|
|
143
|
+
[]
|
|
144
|
+
|
|
145
|
+
This makes sure that ``Modules(QQ).Super()`` returns an
|
|
146
|
+
instance of :class:`SuperModules` and not a join category of
|
|
147
|
+
an instance of this class and of ``VectorSpaces(QQ)``::
|
|
148
|
+
|
|
149
|
+
sage: type(Modules(QQ).Super())
|
|
150
|
+
<class 'sage.categories.super_modules.SuperModules_with_category'>
|
|
151
|
+
|
|
152
|
+
.. TODO::
|
|
153
|
+
|
|
154
|
+
Get rid of this workaround once there is a more systematic
|
|
155
|
+
approach for the alias ``Modules(QQ)`` -> ``VectorSpaces(QQ)``.
|
|
156
|
+
Probably the latter should be a category with axiom, and
|
|
157
|
+
covariant constructions should play well with axioms.
|
|
158
|
+
"""
|
|
159
|
+
from sage.categories.modules import Modules
|
|
160
|
+
from sage.categories.fields import Fields
|
|
161
|
+
base_ring = self.base_ring()
|
|
162
|
+
if base_ring in Fields():
|
|
163
|
+
return [Modules(base_ring)]
|
|
164
|
+
else:
|
|
165
|
+
return []
|
|
166
|
+
|
|
167
|
+
class ParentMethods:
|
|
168
|
+
pass
|
|
169
|
+
|
|
170
|
+
class ElementMethods:
|
|
171
|
+
def is_even_odd(self):
|
|
172
|
+
"""
|
|
173
|
+
Return ``0`` if ``self`` is an even element or ``1``
|
|
174
|
+
if an odd element.
|
|
175
|
+
|
|
176
|
+
.. NOTE::
|
|
177
|
+
|
|
178
|
+
The default implementation assumes that the even/odd is
|
|
179
|
+
determined by the parity of :meth:`degree`.
|
|
180
|
+
|
|
181
|
+
Overwrite this method if the even/odd behavior is desired
|
|
182
|
+
to be independent.
|
|
183
|
+
|
|
184
|
+
EXAMPLES::
|
|
185
|
+
|
|
186
|
+
sage: # needs sage.combinat sage.modules
|
|
187
|
+
sage: cat = Algebras(QQ).WithBasis().Super()
|
|
188
|
+
sage: C = CombinatorialFreeModule(QQ, Partitions(), category=cat)
|
|
189
|
+
sage: C.degree_on_basis = sum
|
|
190
|
+
sage: C.basis()[2,2,1].is_even_odd()
|
|
191
|
+
1
|
|
192
|
+
sage: C.basis()[2,2].is_even_odd()
|
|
193
|
+
0
|
|
194
|
+
"""
|
|
195
|
+
return self.degree() % 2
|
|
196
|
+
|
|
197
|
+
def is_even(self):
|
|
198
|
+
"""
|
|
199
|
+
Return if ``self`` is an even element.
|
|
200
|
+
|
|
201
|
+
EXAMPLES::
|
|
202
|
+
|
|
203
|
+
sage: # needs sage.combinat sage.modules
|
|
204
|
+
sage: cat = Algebras(QQ).WithBasis().Super()
|
|
205
|
+
sage: C = CombinatorialFreeModule(QQ, Partitions(), category=cat)
|
|
206
|
+
sage: C.degree_on_basis = sum
|
|
207
|
+
sage: C.basis()[2,2,1].is_even()
|
|
208
|
+
False
|
|
209
|
+
sage: C.basis()[2,2].is_even()
|
|
210
|
+
True
|
|
211
|
+
"""
|
|
212
|
+
return self.is_even_odd() == 0
|
|
213
|
+
|
|
214
|
+
def is_odd(self):
|
|
215
|
+
"""
|
|
216
|
+
Return if ``self`` is an odd element.
|
|
217
|
+
|
|
218
|
+
EXAMPLES::
|
|
219
|
+
|
|
220
|
+
sage: # needs sage.combinat sage.modules
|
|
221
|
+
sage: cat = Algebras(QQ).WithBasis().Super()
|
|
222
|
+
sage: C = CombinatorialFreeModule(QQ, Partitions(), category=cat)
|
|
223
|
+
sage: C.degree_on_basis = sum
|
|
224
|
+
sage: C.basis()[2,2,1].is_odd()
|
|
225
|
+
True
|
|
226
|
+
sage: C.basis()[2,2].is_odd()
|
|
227
|
+
False
|
|
228
|
+
"""
|
|
229
|
+
return self.is_even_odd() == 1
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Super modules with basis
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2015 Travis Scrimshaw <tscrim at ucdavis.edu>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# http://www.gnu.org/licenses/
|
|
10
|
+
#******************************************************************************
|
|
11
|
+
|
|
12
|
+
from sage.categories.super_modules import SuperModulesCategory
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class SuperModulesWithBasis(SuperModulesCategory):
|
|
16
|
+
"""
|
|
17
|
+
The category of super modules with a distinguished basis.
|
|
18
|
+
|
|
19
|
+
An `R`-*super module with a distinguished basis* is an
|
|
20
|
+
`R`-super module equipped with an `R`-module basis whose elements are
|
|
21
|
+
homogeneous.
|
|
22
|
+
|
|
23
|
+
EXAMPLES::
|
|
24
|
+
|
|
25
|
+
sage: C = GradedModulesWithBasis(QQ); C
|
|
26
|
+
Category of graded vector spaces with basis over Rational Field
|
|
27
|
+
sage: sorted(C.super_categories(), key=str)
|
|
28
|
+
[Category of filtered vector spaces with basis over Rational Field,
|
|
29
|
+
Category of graded modules with basis over Rational Field,
|
|
30
|
+
Category of graded vector spaces over Rational Field]
|
|
31
|
+
sage: C is ModulesWithBasis(QQ).Graded()
|
|
32
|
+
True
|
|
33
|
+
|
|
34
|
+
TESTS::
|
|
35
|
+
|
|
36
|
+
sage: TestSuite(C).run()
|
|
37
|
+
"""
|
|
38
|
+
class ParentMethods:
|
|
39
|
+
def _even_odd_on_basis(self, m):
|
|
40
|
+
"""
|
|
41
|
+
Return the parity of the basis element indexed by ``m``.
|
|
42
|
+
|
|
43
|
+
OUTPUT:
|
|
44
|
+
|
|
45
|
+
``0`` if ``m`` is for an even element or ``1`` if ``m``
|
|
46
|
+
is for an odd element.
|
|
47
|
+
|
|
48
|
+
.. NOTE::
|
|
49
|
+
|
|
50
|
+
The default implementation assumes that the even/odd is
|
|
51
|
+
determined by the parity of :meth:`degree`.
|
|
52
|
+
|
|
53
|
+
Overwrite this method if the even/odd behavior is desired
|
|
54
|
+
to be independent.
|
|
55
|
+
|
|
56
|
+
EXAMPLES::
|
|
57
|
+
|
|
58
|
+
sage: # needs sage.modules
|
|
59
|
+
sage: Q = QuadraticForm(QQ, 2, [1,2,3])
|
|
60
|
+
sage: C.<x,y> = CliffordAlgebra(Q)
|
|
61
|
+
sage: C._even_odd_on_basis((0,))
|
|
62
|
+
1
|
|
63
|
+
sage: C._even_odd_on_basis((0,1))
|
|
64
|
+
0
|
|
65
|
+
"""
|
|
66
|
+
return self.degree_on_basis(m) % 2
|
|
67
|
+
|
|
68
|
+
class ElementMethods:
|
|
69
|
+
def is_super_homogeneous(self):
|
|
70
|
+
r"""
|
|
71
|
+
Return whether this element is homogeneous, in the sense
|
|
72
|
+
of a super module (i.e., is even or odd).
|
|
73
|
+
|
|
74
|
+
EXAMPLES::
|
|
75
|
+
|
|
76
|
+
sage: # needs sage.modules
|
|
77
|
+
sage: Q = QuadraticForm(QQ, 2, [1,2,3])
|
|
78
|
+
sage: C.<x,y> = CliffordAlgebra(Q)
|
|
79
|
+
sage: a = x + y
|
|
80
|
+
sage: a.is_super_homogeneous()
|
|
81
|
+
True
|
|
82
|
+
sage: a = x*y + 4
|
|
83
|
+
sage: a.is_super_homogeneous()
|
|
84
|
+
True
|
|
85
|
+
sage: a = x*y + x - 3*y + 4
|
|
86
|
+
sage: a.is_super_homogeneous()
|
|
87
|
+
False
|
|
88
|
+
|
|
89
|
+
The exterior algebra has a `\ZZ` grading, which induces the
|
|
90
|
+
`\ZZ / 2\ZZ` grading. However the definition of homogeneous
|
|
91
|
+
elements differs because of the different gradings::
|
|
92
|
+
|
|
93
|
+
sage: # needs sage.combinat sage.modules
|
|
94
|
+
sage: E.<x,y> = ExteriorAlgebra(QQ)
|
|
95
|
+
sage: a = x*y + 4
|
|
96
|
+
sage: a.is_super_homogeneous()
|
|
97
|
+
True
|
|
98
|
+
sage: a.is_homogeneous()
|
|
99
|
+
False
|
|
100
|
+
"""
|
|
101
|
+
even_odd = self.parent()._even_odd_on_basis
|
|
102
|
+
degree = None
|
|
103
|
+
for m in self.support():
|
|
104
|
+
if degree is None:
|
|
105
|
+
degree = even_odd(m)
|
|
106
|
+
else:
|
|
107
|
+
if degree != even_odd(m):
|
|
108
|
+
return False
|
|
109
|
+
return True
|
|
110
|
+
|
|
111
|
+
def is_even_odd(self):
|
|
112
|
+
"""
|
|
113
|
+
Return ``0`` if ``self`` is an even element and ``1`` if
|
|
114
|
+
``self`` is an odd element.
|
|
115
|
+
|
|
116
|
+
EXAMPLES::
|
|
117
|
+
|
|
118
|
+
sage: # needs sage.modules
|
|
119
|
+
sage: Q = QuadraticForm(QQ, 2, [1,2,3])
|
|
120
|
+
sage: C.<x,y> = CliffordAlgebra(Q)
|
|
121
|
+
sage: a = x + y
|
|
122
|
+
sage: a.is_even_odd()
|
|
123
|
+
1
|
|
124
|
+
sage: a = x*y + 4
|
|
125
|
+
sage: a.is_even_odd()
|
|
126
|
+
0
|
|
127
|
+
sage: a = x + 4
|
|
128
|
+
sage: a.is_even_odd()
|
|
129
|
+
Traceback (most recent call last):
|
|
130
|
+
...
|
|
131
|
+
ValueError: element is not homogeneous
|
|
132
|
+
|
|
133
|
+
sage: E.<x,y> = ExteriorAlgebra(QQ) # needs sage.modules
|
|
134
|
+
sage: (x*y).is_even_odd() # needs sage.modules
|
|
135
|
+
0
|
|
136
|
+
"""
|
|
137
|
+
if not self.support():
|
|
138
|
+
raise ValueError("the zero element does not have a well-defined degree")
|
|
139
|
+
if not self.is_super_homogeneous():
|
|
140
|
+
raise ValueError("element is not homogeneous")
|
|
141
|
+
return self.parent()._even_odd_on_basis(self.leading_support())
|
|
142
|
+
|
|
143
|
+
def even_component(self):
|
|
144
|
+
"""
|
|
145
|
+
Return the even component of ``self``.
|
|
146
|
+
|
|
147
|
+
EXAMPLES::
|
|
148
|
+
|
|
149
|
+
sage: # needs sage.modules
|
|
150
|
+
sage: Q = QuadraticForm(QQ, 2, [1,2,3])
|
|
151
|
+
sage: C.<x,y> = CliffordAlgebra(Q)
|
|
152
|
+
sage: a = x*y + x - 3*y + 4
|
|
153
|
+
sage: a.even_component()
|
|
154
|
+
x*y + 4
|
|
155
|
+
|
|
156
|
+
TESTS:
|
|
157
|
+
|
|
158
|
+
Check that this really return ``A.zero()`` and not a plain ``0``::
|
|
159
|
+
|
|
160
|
+
sage: a = x + y # needs sage.modules
|
|
161
|
+
sage: a.even_component().parent() is C # needs sage.modules
|
|
162
|
+
True
|
|
163
|
+
"""
|
|
164
|
+
even_odd = self.parent()._even_odd_on_basis
|
|
165
|
+
return self.parent().sum_of_terms((i, c)
|
|
166
|
+
for (i, c) in self
|
|
167
|
+
if even_odd(i) == 0)
|
|
168
|
+
|
|
169
|
+
def odd_component(self):
|
|
170
|
+
"""
|
|
171
|
+
Return the odd component of ``self``.
|
|
172
|
+
|
|
173
|
+
EXAMPLES::
|
|
174
|
+
|
|
175
|
+
sage: # needs sage.modules
|
|
176
|
+
sage: Q = QuadraticForm(QQ, 2, [1,2,3])
|
|
177
|
+
sage: C.<x,y> = CliffordAlgebra(Q)
|
|
178
|
+
sage: a = x*y + x - 3*y + 4
|
|
179
|
+
sage: a.odd_component()
|
|
180
|
+
x - 3*y
|
|
181
|
+
|
|
182
|
+
TESTS:
|
|
183
|
+
|
|
184
|
+
Check that this really return ``A.zero()`` and not a plain ``0``::
|
|
185
|
+
|
|
186
|
+
sage: a = x*y # needs sage.modules
|
|
187
|
+
sage: a.odd_component().parent() is C # needs sage.modules
|
|
188
|
+
True
|
|
189
|
+
"""
|
|
190
|
+
even_odd = self.parent()._even_odd_on_basis
|
|
191
|
+
return self.parent().sum_of_terms((i, c)
|
|
192
|
+
for (i, c) in self
|
|
193
|
+
if even_odd(i) == 1)
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Supercommutative Algebras
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2019 Travis Scrimshaw <tcscrims at gmail.com>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# http://www.gnu.org/licenses/
|
|
10
|
+
#*****************************************************************************
|
|
11
|
+
|
|
12
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
13
|
+
from sage.categories.super_algebras import SuperAlgebras
|
|
14
|
+
from sage.categories.signed_tensor import SignedTensorProductsCategory
|
|
15
|
+
from sage.misc.cachefunc import cached_method
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class SupercommutativeAlgebras(CategoryWithAxiom_over_base_ring):
|
|
19
|
+
r"""
|
|
20
|
+
The category of supercommutative algebras.
|
|
21
|
+
|
|
22
|
+
An `R`-*supercommutative algebra* is an `R`-super algebra
|
|
23
|
+
`A = A_0 \oplus A_1` endowed with an `R`-super algebra structure
|
|
24
|
+
satisfying:
|
|
25
|
+
|
|
26
|
+
.. MATH::
|
|
27
|
+
|
|
28
|
+
x_0 x'_0 = x'_0 x_0, \qquad
|
|
29
|
+
x_1 x'_1 = -x'_1 x_1, \qquad
|
|
30
|
+
x_0 x_1 = x_1 x_0,
|
|
31
|
+
|
|
32
|
+
for all `x_0, x'_0 \in A_0` and `x_1, x'_1 \in A_1`.
|
|
33
|
+
|
|
34
|
+
EXAMPLES::
|
|
35
|
+
|
|
36
|
+
sage: Algebras(ZZ).Supercommutative()
|
|
37
|
+
Category of supercommutative algebras over Integer Ring
|
|
38
|
+
|
|
39
|
+
TESTS::
|
|
40
|
+
|
|
41
|
+
sage: TestSuite(Algebras(ZZ).Supercommutative()).run()
|
|
42
|
+
"""
|
|
43
|
+
_base_category_class_and_axiom = (SuperAlgebras, "Supercommutative")
|
|
44
|
+
|
|
45
|
+
class SignedTensorProducts(SignedTensorProductsCategory):
|
|
46
|
+
@cached_method
|
|
47
|
+
def extra_super_categories(self):
|
|
48
|
+
"""
|
|
49
|
+
Return the extra super categories of ``self``.
|
|
50
|
+
|
|
51
|
+
A signed tensor product of supercommutative algebras is a
|
|
52
|
+
supercommutative algebra.
|
|
53
|
+
|
|
54
|
+
EXAMPLES::
|
|
55
|
+
|
|
56
|
+
sage: C = Algebras(ZZ).Supercommutative().SignedTensorProducts()
|
|
57
|
+
sage: C.extra_super_categories()
|
|
58
|
+
[Category of supercommutative algebras over Integer Ring]
|
|
59
|
+
"""
|
|
60
|
+
return [self.base_category()]
|
|
61
|
+
|
|
62
|
+
class WithBasis(CategoryWithAxiom_over_base_ring):
|
|
63
|
+
class ParentMethods:
|
|
64
|
+
def _test_supercommutativity(self, **options):
|
|
65
|
+
r"""
|
|
66
|
+
Test supercommutativity for (not necessarily all) elements
|
|
67
|
+
of this supercommutative algebra.
|
|
68
|
+
|
|
69
|
+
INPUT:
|
|
70
|
+
|
|
71
|
+
- ``options`` -- any keyword arguments accepted by :meth:`_tester`
|
|
72
|
+
|
|
73
|
+
EXAMPLES:
|
|
74
|
+
|
|
75
|
+
By default, this method tests only the elements returned by
|
|
76
|
+
``self.some_elements()``::
|
|
77
|
+
|
|
78
|
+
sage: E.<x,y,z> = ExteriorAlgebra(QQ) # needs sage.modules
|
|
79
|
+
sage: E._test_supercommutativity() # needs sage.modules
|
|
80
|
+
|
|
81
|
+
However, the elements tested can be customized with the
|
|
82
|
+
``elements`` keyword argument, but the elements must be
|
|
83
|
+
homogeneous::
|
|
84
|
+
|
|
85
|
+
sage: E._test_supercommutativity(elements=[x+y, x*y-3*y*z, x*y*z]) # needs sage.modules
|
|
86
|
+
sage: E._test_supercommutativity(elements=[x+x*y]) # needs sage.modules
|
|
87
|
+
Traceback (most recent call last):
|
|
88
|
+
...
|
|
89
|
+
ValueError: element is not homogeneous
|
|
90
|
+
|
|
91
|
+
See the documentation for :class:`TestSuite` for more information.
|
|
92
|
+
"""
|
|
93
|
+
elements = options.pop("elements", self.basis())
|
|
94
|
+
tester = self._tester(**options)
|
|
95
|
+
from sage.misc.misc import some_tuples
|
|
96
|
+
for x,y in some_tuples(elements, 2, tester._max_runs):
|
|
97
|
+
tester.assertEqual((x * y),
|
|
98
|
+
(-1)**(x.is_even_odd() * y.is_even_odd())
|
|
99
|
+
* (y * x))
|