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,405 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
# sage.doctest: needs sage.combinat
|
|
3
|
+
r"""
|
|
4
|
+
Coalgebras
|
|
5
|
+
"""
|
|
6
|
+
# ****************************************************************************
|
|
7
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
8
|
+
# Copyright (C) 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
9
|
+
#
|
|
10
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
11
|
+
# https://www.gnu.org/licenses/
|
|
12
|
+
# *****************************************************************************
|
|
13
|
+
|
|
14
|
+
from sage.categories.category_types import Category_over_base_ring
|
|
15
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
16
|
+
from sage.categories.dual import DualObjectsCategory
|
|
17
|
+
from sage.categories.filtered_modules import FilteredModulesCategory
|
|
18
|
+
from sage.categories.modules import Modules
|
|
19
|
+
from sage.categories.realizations import RealizationsCategory
|
|
20
|
+
from sage.categories.super_modules import SuperModulesCategory
|
|
21
|
+
from sage.categories.tensor import TensorProductsCategory
|
|
22
|
+
from sage.categories.with_realizations import WithRealizationsCategory
|
|
23
|
+
from sage.misc.abstract_method import abstract_method
|
|
24
|
+
from sage.misc.cachefunc import cached_method
|
|
25
|
+
from sage.misc.lazy_import import LazyImport
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class Coalgebras(Category_over_base_ring):
|
|
29
|
+
"""
|
|
30
|
+
The category of coalgebras.
|
|
31
|
+
|
|
32
|
+
EXAMPLES::
|
|
33
|
+
|
|
34
|
+
sage: Coalgebras(QQ)
|
|
35
|
+
Category of coalgebras over Rational Field
|
|
36
|
+
sage: Coalgebras(QQ).super_categories()
|
|
37
|
+
[Category of vector spaces over Rational Field]
|
|
38
|
+
|
|
39
|
+
TESTS::
|
|
40
|
+
|
|
41
|
+
sage: TestSuite(Coalgebras(ZZ)).run()
|
|
42
|
+
"""
|
|
43
|
+
def super_categories(self):
|
|
44
|
+
"""
|
|
45
|
+
EXAMPLES::
|
|
46
|
+
|
|
47
|
+
sage: Coalgebras(QQ).super_categories()
|
|
48
|
+
[Category of vector spaces over Rational Field]
|
|
49
|
+
"""
|
|
50
|
+
return [Modules(self.base_ring())]
|
|
51
|
+
|
|
52
|
+
WithBasis = LazyImport('sage.categories.coalgebras_with_basis', 'CoalgebrasWithBasis')
|
|
53
|
+
Graded = LazyImport('sage.categories.graded_coalgebras', 'GradedCoalgebras')
|
|
54
|
+
|
|
55
|
+
class ParentMethods:
|
|
56
|
+
#def __init_add__(self): # The analogue of initDomainAdd
|
|
57
|
+
# # Will declare the coproduct of self to the coercion mechanism when it exists
|
|
58
|
+
# pass
|
|
59
|
+
|
|
60
|
+
@abstract_method
|
|
61
|
+
def counit(self, x):
|
|
62
|
+
"""
|
|
63
|
+
Return the counit of ``x``.
|
|
64
|
+
|
|
65
|
+
Eventually, there will be a default implementation,
|
|
66
|
+
delegating to the overloading mechanism and forcing the
|
|
67
|
+
conversion back
|
|
68
|
+
|
|
69
|
+
EXAMPLES::
|
|
70
|
+
|
|
71
|
+
sage: # needs sage.groups sage.modules
|
|
72
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A
|
|
73
|
+
An example of Hopf algebra with basis:
|
|
74
|
+
the group algebra of the Dihedral group of order 6 as a permutation group
|
|
75
|
+
over Rational Field
|
|
76
|
+
sage: [a,b] = A.algebra_generators()
|
|
77
|
+
sage: a, A.counit(a)
|
|
78
|
+
(B[(1,2,3)], 1)
|
|
79
|
+
sage: b, A.counit(b)
|
|
80
|
+
(B[(1,3)], 1)
|
|
81
|
+
|
|
82
|
+
TODO: implement some tests of the axioms of coalgebras, bialgebras
|
|
83
|
+
and Hopf algebras using the counit.
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
@abstract_method
|
|
87
|
+
def coproduct(self, x):
|
|
88
|
+
"""
|
|
89
|
+
Return the coproduct of ``x``.
|
|
90
|
+
|
|
91
|
+
Eventually, there will be a default implementation,
|
|
92
|
+
delegating to the overloading mechanism and forcing the
|
|
93
|
+
conversion back
|
|
94
|
+
|
|
95
|
+
EXAMPLES::
|
|
96
|
+
|
|
97
|
+
sage: # needs sage.groups sage.modules
|
|
98
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A
|
|
99
|
+
An example of Hopf algebra with basis:
|
|
100
|
+
the group algebra of the Dihedral group of order 6 as a permutation group
|
|
101
|
+
over Rational Field
|
|
102
|
+
sage: [a,b] = A.algebra_generators()
|
|
103
|
+
sage: a, A.coproduct(a)
|
|
104
|
+
(B[(1,2,3)], B[(1,2,3)] # B[(1,2,3)])
|
|
105
|
+
sage: b, A.coproduct(b)
|
|
106
|
+
(B[(1,3)], B[(1,3)] # B[(1,3)])
|
|
107
|
+
"""
|
|
108
|
+
#return self.tensor_square()(overloaded_coproduct(x))
|
|
109
|
+
|
|
110
|
+
class ElementMethods:
|
|
111
|
+
def coproduct(self):
|
|
112
|
+
"""
|
|
113
|
+
Return the coproduct of ``self``.
|
|
114
|
+
|
|
115
|
+
EXAMPLES::
|
|
116
|
+
|
|
117
|
+
sage: # needs sage.groups sage.modules
|
|
118
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A
|
|
119
|
+
An example of Hopf algebra with basis:
|
|
120
|
+
the group algebra of the Dihedral group of order 6 as a permutation group
|
|
121
|
+
over Rational Field
|
|
122
|
+
sage: [a,b] = A.algebra_generators()
|
|
123
|
+
sage: a, a.coproduct()
|
|
124
|
+
(B[(1,2,3)], B[(1,2,3)] # B[(1,2,3)])
|
|
125
|
+
sage: b, b.coproduct()
|
|
126
|
+
(B[(1,3)], B[(1,3)] # B[(1,3)])
|
|
127
|
+
"""
|
|
128
|
+
return self.parent().coproduct(self)
|
|
129
|
+
|
|
130
|
+
def counit(self):
|
|
131
|
+
"""
|
|
132
|
+
Return the counit of ``self``.
|
|
133
|
+
|
|
134
|
+
EXAMPLES::
|
|
135
|
+
|
|
136
|
+
sage: # needs sage.groups sage.modules
|
|
137
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A
|
|
138
|
+
An example of Hopf algebra with basis:
|
|
139
|
+
the group algebra of the Dihedral group of order 6 as a permutation group
|
|
140
|
+
over Rational Field
|
|
141
|
+
sage: [a,b] = A.algebra_generators()
|
|
142
|
+
sage: a, a.counit()
|
|
143
|
+
(B[(1,2,3)], 1)
|
|
144
|
+
sage: b, b.counit()
|
|
145
|
+
(B[(1,3)], 1)
|
|
146
|
+
"""
|
|
147
|
+
return self.parent().counit(self)
|
|
148
|
+
|
|
149
|
+
class SubcategoryMethods:
|
|
150
|
+
@cached_method
|
|
151
|
+
def Cocommutative(self):
|
|
152
|
+
r"""
|
|
153
|
+
Return the full subcategory of the cocommutative objects
|
|
154
|
+
of ``self``.
|
|
155
|
+
|
|
156
|
+
A coalgebra `C` is said to be *cocommutative* if
|
|
157
|
+
|
|
158
|
+
.. MATH::
|
|
159
|
+
|
|
160
|
+
\Delta(c) = \sum_{(c)} c_{(1)} \otimes c_{(2)}
|
|
161
|
+
= \sum_{(c)} c_{(2)} \otimes c_{(1)}
|
|
162
|
+
|
|
163
|
+
in Sweedler's notation for all `c \in C`.
|
|
164
|
+
|
|
165
|
+
EXAMPLES::
|
|
166
|
+
|
|
167
|
+
sage: C1 = Coalgebras(ZZ).Cocommutative().WithBasis(); C1
|
|
168
|
+
Category of cocommutative coalgebras with basis over Integer Ring
|
|
169
|
+
sage: C2 = Coalgebras(ZZ).WithBasis().Cocommutative()
|
|
170
|
+
sage: C1 is C2
|
|
171
|
+
True
|
|
172
|
+
sage: BialgebrasWithBasis(QQ).Cocommutative()
|
|
173
|
+
Category of cocommutative bialgebras with basis over Rational Field
|
|
174
|
+
|
|
175
|
+
TESTS::
|
|
176
|
+
|
|
177
|
+
sage: TestSuite(Coalgebras(ZZ).Cocommutative()).run()
|
|
178
|
+
"""
|
|
179
|
+
return self._with_axiom("Cocommutative")
|
|
180
|
+
|
|
181
|
+
class Cocommutative(CategoryWithAxiom_over_base_ring):
|
|
182
|
+
"""
|
|
183
|
+
Category of cocommutative coalgebras.
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
class TensorProducts(TensorProductsCategory):
|
|
187
|
+
@cached_method
|
|
188
|
+
def extra_super_categories(self):
|
|
189
|
+
"""
|
|
190
|
+
EXAMPLES::
|
|
191
|
+
|
|
192
|
+
sage: Coalgebras(QQ).TensorProducts().extra_super_categories()
|
|
193
|
+
[Category of coalgebras over Rational Field]
|
|
194
|
+
sage: Coalgebras(QQ).TensorProducts().super_categories()
|
|
195
|
+
[Category of tensor products of vector spaces over Rational Field,
|
|
196
|
+
Category of coalgebras over Rational Field]
|
|
197
|
+
|
|
198
|
+
Meaning: a tensor product of coalgebras is a coalgebra
|
|
199
|
+
"""
|
|
200
|
+
return [self.base_category()]
|
|
201
|
+
|
|
202
|
+
class ParentMethods:
|
|
203
|
+
# TODO: provide this default implementation of one if one_basis is not implemented
|
|
204
|
+
#def one(self):
|
|
205
|
+
# return tensor(module.one() for module in self.modules)
|
|
206
|
+
pass
|
|
207
|
+
|
|
208
|
+
class ElementMethods:
|
|
209
|
+
pass
|
|
210
|
+
|
|
211
|
+
class DualObjects(DualObjectsCategory):
|
|
212
|
+
|
|
213
|
+
def extra_super_categories(self):
|
|
214
|
+
r"""
|
|
215
|
+
Return the dual category.
|
|
216
|
+
|
|
217
|
+
EXAMPLES:
|
|
218
|
+
|
|
219
|
+
The category of coalgebras over the Rational Field is dual
|
|
220
|
+
to the category of algebras over the same field::
|
|
221
|
+
|
|
222
|
+
sage: C = Coalgebras(QQ)
|
|
223
|
+
sage: C.dual()
|
|
224
|
+
Category of duals of coalgebras over Rational Field
|
|
225
|
+
sage: C.dual().super_categories() # indirect doctest
|
|
226
|
+
[Category of algebras over Rational Field,
|
|
227
|
+
Category of duals of vector spaces over Rational Field]
|
|
228
|
+
|
|
229
|
+
.. WARNING::
|
|
230
|
+
|
|
231
|
+
This is only correct in certain cases (finite dimension, ...).
|
|
232
|
+
See :issue:`15647`.
|
|
233
|
+
"""
|
|
234
|
+
from sage.categories.algebras import Algebras
|
|
235
|
+
return [Algebras(self.base_category().base_ring())]
|
|
236
|
+
|
|
237
|
+
class Super(SuperModulesCategory):
|
|
238
|
+
def extra_super_categories(self):
|
|
239
|
+
"""
|
|
240
|
+
EXAMPLES::
|
|
241
|
+
|
|
242
|
+
sage: Coalgebras(ZZ).Super().extra_super_categories()
|
|
243
|
+
[Category of graded coalgebras over Integer Ring]
|
|
244
|
+
sage: Coalgebras(ZZ).Super().super_categories()
|
|
245
|
+
[Category of graded coalgebras over Integer Ring,
|
|
246
|
+
Category of super modules over Integer Ring]
|
|
247
|
+
|
|
248
|
+
Compare this with the situation for bialgebras::
|
|
249
|
+
|
|
250
|
+
sage: Bialgebras(ZZ).Super().extra_super_categories()
|
|
251
|
+
[]
|
|
252
|
+
sage: Bialgebras(ZZ).Super().super_categories()
|
|
253
|
+
[Category of super algebras over Integer Ring,
|
|
254
|
+
Category of super coalgebras over Integer Ring]
|
|
255
|
+
|
|
256
|
+
The category of bialgebras does not occur in these results,
|
|
257
|
+
since super bialgebras are not bialgebras.
|
|
258
|
+
"""
|
|
259
|
+
return [self.base_category().Graded()]
|
|
260
|
+
|
|
261
|
+
class SubcategoryMethods:
|
|
262
|
+
@cached_method
|
|
263
|
+
def Supercocommutative(self):
|
|
264
|
+
r"""
|
|
265
|
+
Return the full subcategory of the supercocommutative
|
|
266
|
+
objects of ``self``.
|
|
267
|
+
|
|
268
|
+
EXAMPLES::
|
|
269
|
+
|
|
270
|
+
sage: Coalgebras(ZZ).WithBasis().Super().Supercocommutative()
|
|
271
|
+
Category of supercocommutative super coalgebras with basis over Integer Ring
|
|
272
|
+
sage: BialgebrasWithBasis(QQ).Super().Supercocommutative()
|
|
273
|
+
Join of Category of super algebras with basis over Rational Field
|
|
274
|
+
and Category of super bialgebras over Rational Field
|
|
275
|
+
and Category of super coalgebras with basis over Rational Field
|
|
276
|
+
and Category of supercocommutative super coalgebras over Rational Field
|
|
277
|
+
|
|
278
|
+
TESTS::
|
|
279
|
+
|
|
280
|
+
sage: TestSuite(HopfAlgebras(ZZ).Super().Supercocommutative()).run()
|
|
281
|
+
"""
|
|
282
|
+
return self._with_axiom("Supercocommutative")
|
|
283
|
+
|
|
284
|
+
class Supercocommutative(CategoryWithAxiom_over_base_ring):
|
|
285
|
+
"""
|
|
286
|
+
Category of supercocommutative coalgebras.
|
|
287
|
+
"""
|
|
288
|
+
|
|
289
|
+
class Filtered(FilteredModulesCategory):
|
|
290
|
+
"""
|
|
291
|
+
Category of filtered coalgebras.
|
|
292
|
+
"""
|
|
293
|
+
|
|
294
|
+
class WithRealizations(WithRealizationsCategory):
|
|
295
|
+
|
|
296
|
+
class ParentMethods:
|
|
297
|
+
|
|
298
|
+
def coproduct(self, x):
|
|
299
|
+
r"""
|
|
300
|
+
Return the coproduct of ``x``.
|
|
301
|
+
|
|
302
|
+
EXAMPLES::
|
|
303
|
+
|
|
304
|
+
sage: # needs sage.modules
|
|
305
|
+
sage: N = NonCommutativeSymmetricFunctions(QQ)
|
|
306
|
+
sage: S = N.complete()
|
|
307
|
+
sage: N.coproduct.__module__
|
|
308
|
+
'sage.categories.coalgebras'
|
|
309
|
+
sage: N.coproduct(S[2])
|
|
310
|
+
S[] # S[2] + S[1] # S[1] + S[2] # S[]
|
|
311
|
+
"""
|
|
312
|
+
return self.a_realization()(x).coproduct()
|
|
313
|
+
|
|
314
|
+
def counit(self, x):
|
|
315
|
+
r"""
|
|
316
|
+
Return the counit of ``x``.
|
|
317
|
+
|
|
318
|
+
EXAMPLES::
|
|
319
|
+
|
|
320
|
+
sage: # needs sage.modules
|
|
321
|
+
sage: Sym = SymmetricFunctions(QQ)
|
|
322
|
+
sage: s = Sym.schur()
|
|
323
|
+
sage: f = s[2,1]
|
|
324
|
+
sage: f.counit.__module__
|
|
325
|
+
'sage.categories.coalgebras'
|
|
326
|
+
sage: f.counit()
|
|
327
|
+
0
|
|
328
|
+
|
|
329
|
+
::
|
|
330
|
+
|
|
331
|
+
sage: # needs sage.modules
|
|
332
|
+
sage: N = NonCommutativeSymmetricFunctions(QQ)
|
|
333
|
+
sage: N.counit.__module__
|
|
334
|
+
'sage.categories.coalgebras'
|
|
335
|
+
sage: N.counit(N.one())
|
|
336
|
+
1
|
|
337
|
+
sage: x = N.an_element(); x
|
|
338
|
+
2*S[] + 2*S[1] + 3*S[1, 1]
|
|
339
|
+
sage: N.counit(x)
|
|
340
|
+
2
|
|
341
|
+
"""
|
|
342
|
+
return self.a_realization()(x).counit()
|
|
343
|
+
|
|
344
|
+
class Realizations(RealizationsCategory):
|
|
345
|
+
|
|
346
|
+
class ParentMethods:
|
|
347
|
+
|
|
348
|
+
def coproduct_by_coercion(self, x):
|
|
349
|
+
r"""
|
|
350
|
+
Return the coproduct by coercion if ``coproduct_by_basis``
|
|
351
|
+
is not implemented.
|
|
352
|
+
|
|
353
|
+
EXAMPLES::
|
|
354
|
+
|
|
355
|
+
sage: # needs sage.modules
|
|
356
|
+
sage: Sym = SymmetricFunctions(QQ)
|
|
357
|
+
sage: m = Sym.monomial()
|
|
358
|
+
sage: f = m[2,1]
|
|
359
|
+
sage: f.coproduct.__module__
|
|
360
|
+
'sage.categories.coalgebras'
|
|
361
|
+
sage: m.coproduct_on_basis
|
|
362
|
+
NotImplemented
|
|
363
|
+
sage: m.coproduct == m.coproduct_by_coercion
|
|
364
|
+
True
|
|
365
|
+
sage: f.coproduct() # needs lrcalc_python
|
|
366
|
+
m[] # m[2, 1] + m[1] # m[2] + m[2] # m[1] + m[2, 1] # m[]
|
|
367
|
+
|
|
368
|
+
::
|
|
369
|
+
|
|
370
|
+
sage: # needs sage.modules
|
|
371
|
+
sage: N = NonCommutativeSymmetricFunctions(QQ)
|
|
372
|
+
sage: R = N.ribbon()
|
|
373
|
+
sage: R.coproduct_by_coercion.__module__
|
|
374
|
+
'sage.categories.coalgebras'
|
|
375
|
+
sage: R.coproduct_on_basis
|
|
376
|
+
NotImplemented
|
|
377
|
+
sage: R.coproduct == R.coproduct_by_coercion
|
|
378
|
+
True
|
|
379
|
+
sage: R[1].coproduct()
|
|
380
|
+
R[] # R[1] + R[1] # R[]
|
|
381
|
+
"""
|
|
382
|
+
R = self.realization_of().a_realization()
|
|
383
|
+
return self.tensor_square()(R(x).coproduct())
|
|
384
|
+
|
|
385
|
+
def counit_by_coercion(self, x):
|
|
386
|
+
r"""
|
|
387
|
+
Return the counit of ``x`` if ``counit_by_basis`` is
|
|
388
|
+
not implemented.
|
|
389
|
+
|
|
390
|
+
EXAMPLES::
|
|
391
|
+
|
|
392
|
+
sage: # needs lrcalc_python sage.modules
|
|
393
|
+
sage: sp = SymmetricFunctions(QQ).sp()
|
|
394
|
+
sage: sp.an_element()
|
|
395
|
+
2*sp[] + 2*sp[1] + 3*sp[2]
|
|
396
|
+
sage: sp.counit(sp.an_element())
|
|
397
|
+
2
|
|
398
|
+
sage: o = SymmetricFunctions(QQ).o()
|
|
399
|
+
sage: o.an_element()
|
|
400
|
+
2*o[] + 2*o[1] + 3*o[2]
|
|
401
|
+
sage: o.counit(o.an_element())
|
|
402
|
+
-1
|
|
403
|
+
"""
|
|
404
|
+
R = self.realization_of().a_realization()
|
|
405
|
+
return R(x).counit()
|
|
@@ -0,0 +1,232 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Coalgebras with basis
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# Copyright (C) 2008-2011 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
8
|
+
#
|
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
10
|
+
# http://www.gnu.org/licenses/
|
|
11
|
+
#******************************************************************************
|
|
12
|
+
|
|
13
|
+
from sage.misc.abstract_method import abstract_method
|
|
14
|
+
from sage.misc.lazy_attribute import lazy_attribute
|
|
15
|
+
from sage.misc.lazy_import import LazyImport
|
|
16
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
17
|
+
from sage.categories.modules_with_basis import ModulesWithBasis
|
|
18
|
+
from sage.categories.tensor import tensor
|
|
19
|
+
from sage.categories.homset import Hom
|
|
20
|
+
from sage.categories.super_modules import SuperModulesCategory
|
|
21
|
+
from sage.categories.filtered_modules import FilteredModulesCategory
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class CoalgebrasWithBasis(CategoryWithAxiom_over_base_ring):
|
|
25
|
+
"""
|
|
26
|
+
The category of coalgebras with a distinguished basis.
|
|
27
|
+
|
|
28
|
+
EXAMPLES::
|
|
29
|
+
|
|
30
|
+
sage: CoalgebrasWithBasis(ZZ)
|
|
31
|
+
Category of coalgebras with basis over Integer Ring
|
|
32
|
+
sage: sorted(CoalgebrasWithBasis(ZZ).super_categories(), key=str)
|
|
33
|
+
[Category of coalgebras over Integer Ring,
|
|
34
|
+
Category of modules with basis over Integer Ring]
|
|
35
|
+
|
|
36
|
+
TESTS::
|
|
37
|
+
|
|
38
|
+
sage: TestSuite(CoalgebrasWithBasis(ZZ)).run()
|
|
39
|
+
"""
|
|
40
|
+
Graded = LazyImport('sage.categories.graded_coalgebras_with_basis',
|
|
41
|
+
'GradedCoalgebrasWithBasis')
|
|
42
|
+
|
|
43
|
+
class Filtered(FilteredModulesCategory):
|
|
44
|
+
"""
|
|
45
|
+
Category of filtered coalgebras.
|
|
46
|
+
"""
|
|
47
|
+
|
|
48
|
+
class ParentMethods:
|
|
49
|
+
|
|
50
|
+
@abstract_method(optional=True)
|
|
51
|
+
def coproduct_on_basis(self, i):
|
|
52
|
+
"""
|
|
53
|
+
The coproduct of the algebra on the basis (optional).
|
|
54
|
+
|
|
55
|
+
INPUT:
|
|
56
|
+
|
|
57
|
+
- ``i`` -- the indices of an element of the basis of ``self``
|
|
58
|
+
|
|
59
|
+
Returns the coproduct of the corresponding basis elements
|
|
60
|
+
If implemented, the coproduct of the algebra is defined
|
|
61
|
+
from it by linearity.
|
|
62
|
+
|
|
63
|
+
EXAMPLES::
|
|
64
|
+
|
|
65
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A # needs sage.groups sage.modules
|
|
66
|
+
An example of Hopf algebra with basis:
|
|
67
|
+
the group algebra of the Dihedral group of order 6
|
|
68
|
+
as a permutation group over Rational Field
|
|
69
|
+
sage: (a, b) = A._group.gens() # needs sage.groups sage.modules
|
|
70
|
+
sage: A.coproduct_on_basis(a) # needs sage.groups sage.modules
|
|
71
|
+
B[(1,2,3)] # B[(1,2,3)]
|
|
72
|
+
"""
|
|
73
|
+
|
|
74
|
+
@lazy_attribute
|
|
75
|
+
def coproduct(self):
|
|
76
|
+
r"""
|
|
77
|
+
If :meth:`coproduct_on_basis` is available, construct the
|
|
78
|
+
coproduct morphism from ``self`` to ``self`` `\otimes`
|
|
79
|
+
``self`` by extending it by linearity. Otherwise, use
|
|
80
|
+
:meth:`~Coalgebras.Realizations.ParentMethods.coproduct_by_coercion`,
|
|
81
|
+
if available.
|
|
82
|
+
|
|
83
|
+
EXAMPLES::
|
|
84
|
+
|
|
85
|
+
sage: # needs sage.groups sage.modules
|
|
86
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A
|
|
87
|
+
An example of Hopf algebra with basis:
|
|
88
|
+
the group algebra of the Dihedral group of order 6
|
|
89
|
+
as a permutation group over Rational Field
|
|
90
|
+
sage: a, b = A.algebra_generators()
|
|
91
|
+
sage: a, A.coproduct(a)
|
|
92
|
+
(B[(1,2,3)], B[(1,2,3)] # B[(1,2,3)])
|
|
93
|
+
sage: b, A.coproduct(b)
|
|
94
|
+
(B[(1,3)], B[(1,3)] # B[(1,3)])
|
|
95
|
+
"""
|
|
96
|
+
if self.coproduct_on_basis is not NotImplemented:
|
|
97
|
+
# TODO: if self is a Hopf algebra, then one would want
|
|
98
|
+
# to create a morphism of algebras with basis instead
|
|
99
|
+
# should there be a method self.coproduct_homset_category?
|
|
100
|
+
return Hom(self, tensor([self, self]), ModulesWithBasis(self.base_ring()))(on_basis=self.coproduct_on_basis)
|
|
101
|
+
elif hasattr(self, "coproduct_by_coercion"):
|
|
102
|
+
return self.coproduct_by_coercion
|
|
103
|
+
|
|
104
|
+
@abstract_method(optional=True)
|
|
105
|
+
def counit_on_basis(self, i):
|
|
106
|
+
"""
|
|
107
|
+
The counit of the algebra on the basis (optional).
|
|
108
|
+
|
|
109
|
+
INPUT:
|
|
110
|
+
|
|
111
|
+
- ``i`` -- the indices of an element of the basis of ``self``
|
|
112
|
+
|
|
113
|
+
Returns the counit of the corresponding basis elements
|
|
114
|
+
If implemented, the counit of the algebra is defined
|
|
115
|
+
from it by linearity.
|
|
116
|
+
|
|
117
|
+
EXAMPLES::
|
|
118
|
+
|
|
119
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A # needs sage.groups sage.modules
|
|
120
|
+
An example of Hopf algebra with basis:
|
|
121
|
+
the group algebra of the Dihedral group of order 6
|
|
122
|
+
as a permutation group over Rational Field
|
|
123
|
+
sage: (a, b) = A._group.gens() # needs sage.groups sage.modules
|
|
124
|
+
sage: A.counit_on_basis(a) # needs sage.groups sage.modules
|
|
125
|
+
1
|
|
126
|
+
"""
|
|
127
|
+
|
|
128
|
+
@lazy_attribute
|
|
129
|
+
def counit(self):
|
|
130
|
+
r"""
|
|
131
|
+
If :meth:`counit_on_basis` is available, construct the
|
|
132
|
+
counit morphism from ``self`` to ``self`` `\otimes`
|
|
133
|
+
``self`` by extending it by linearity
|
|
134
|
+
|
|
135
|
+
EXAMPLES::
|
|
136
|
+
|
|
137
|
+
sage: # needs sage.groups sage.modules
|
|
138
|
+
sage: A = HopfAlgebrasWithBasis(QQ).example(); A
|
|
139
|
+
An example of Hopf algebra with basis:
|
|
140
|
+
the group algebra of the Dihedral group of order 6
|
|
141
|
+
as a permutation group over Rational Field
|
|
142
|
+
sage: a, b = A.algebra_generators()
|
|
143
|
+
sage: a, A.counit(a)
|
|
144
|
+
(B[(1,2,3)], 1)
|
|
145
|
+
sage: b, A.counit(b)
|
|
146
|
+
(B[(1,3)], 1)
|
|
147
|
+
"""
|
|
148
|
+
if self.counit_on_basis is not NotImplemented:
|
|
149
|
+
return self.module_morphism(self.counit_on_basis,codomain=self.base_ring())
|
|
150
|
+
elif hasattr(self, "counit_by_coercion"):
|
|
151
|
+
return self.counit_by_coercion
|
|
152
|
+
|
|
153
|
+
class ElementMethods:
|
|
154
|
+
def coproduct_iterated(self, n=1):
|
|
155
|
+
r"""
|
|
156
|
+
Apply ``n`` coproducts to ``self``.
|
|
157
|
+
|
|
158
|
+
.. TODO::
|
|
159
|
+
|
|
160
|
+
Remove dependency on ``modules_with_basis`` methods.
|
|
161
|
+
|
|
162
|
+
EXAMPLES::
|
|
163
|
+
|
|
164
|
+
sage: Psi = NonCommutativeSymmetricFunctions(QQ).Psi() # needs sage.combinat sage.modules
|
|
165
|
+
sage: Psi[2,2].coproduct_iterated(0) # needs sage.combinat sage.modules
|
|
166
|
+
Psi[2, 2]
|
|
167
|
+
sage: Psi[2,2].coproduct_iterated(2) # needs sage.combinat sage.modules
|
|
168
|
+
Psi[] # Psi[] # Psi[2, 2] + 2*Psi[] # Psi[2] # Psi[2]
|
|
169
|
+
+ Psi[] # Psi[2, 2] # Psi[] + 2*Psi[2] # Psi[] # Psi[2]
|
|
170
|
+
+ 2*Psi[2] # Psi[2] # Psi[] + Psi[2, 2] # Psi[] # Psi[]
|
|
171
|
+
|
|
172
|
+
TESTS::
|
|
173
|
+
|
|
174
|
+
sage: p = SymmetricFunctions(QQ).p() # needs sage.combinat sage.modules
|
|
175
|
+
sage: p[5,2,2].coproduct_iterated() # needs sage.combinat sage.modules
|
|
176
|
+
p[] # p[5, 2, 2] + 2*p[2] # p[5, 2] + p[2, 2] # p[5]
|
|
177
|
+
+ p[5] # p[2, 2] + 2*p[5, 2] # p[2] + p[5, 2, 2] # p[]
|
|
178
|
+
sage: p([]).coproduct_iterated(3) # needs sage.combinat sage.modules
|
|
179
|
+
p[] # p[] # p[] # p[]
|
|
180
|
+
|
|
181
|
+
::
|
|
182
|
+
|
|
183
|
+
sage: Psi = NonCommutativeSymmetricFunctions(QQ).Psi() # needs sage.combinat sage.modules
|
|
184
|
+
sage: Psi[2,2].coproduct_iterated(0) # needs sage.combinat sage.modules
|
|
185
|
+
Psi[2, 2]
|
|
186
|
+
sage: Psi[2,2].coproduct_iterated(3) # needs sage.combinat sage.modules
|
|
187
|
+
Psi[] # Psi[] # Psi[] # Psi[2, 2] + 2*Psi[] # Psi[] # Psi[2] # Psi[2]
|
|
188
|
+
+ Psi[] # Psi[] # Psi[2, 2] # Psi[] + 2*Psi[] # Psi[2] # Psi[] # Psi[2]
|
|
189
|
+
+ 2*Psi[] # Psi[2] # Psi[2] # Psi[] + Psi[] # Psi[2, 2] # Psi[] # Psi[]
|
|
190
|
+
+ 2*Psi[2] # Psi[] # Psi[] # Psi[2] + 2*Psi[2] # Psi[] # Psi[2] # Psi[]
|
|
191
|
+
+ 2*Psi[2] # Psi[2] # Psi[] # Psi[] + Psi[2, 2] # Psi[] # Psi[] # Psi[]
|
|
192
|
+
|
|
193
|
+
::
|
|
194
|
+
|
|
195
|
+
sage: # needs sage.combinat sage.graphs sage.modules
|
|
196
|
+
sage: m = SymmetricFunctionsNonCommutingVariables(QQ).m()
|
|
197
|
+
sage: m[[1,3],[2]].coproduct_iterated(2)
|
|
198
|
+
m{} # m{} # m{{1, 3}, {2}} + m{} # m{{1}} # m{{1, 2}}
|
|
199
|
+
+ m{} # m{{1, 2}} # m{{1}} + m{} # m{{1, 3}, {2}} # m{}
|
|
200
|
+
+ m{{1}} # m{} # m{{1, 2}} + m{{1}} # m{{1, 2}} # m{}
|
|
201
|
+
+ m{{1, 2}} # m{} # m{{1}} + m{{1, 2}} # m{{1}} # m{}
|
|
202
|
+
+ m{{1, 3}, {2}} # m{} # m{}
|
|
203
|
+
sage: m[[]].coproduct_iterated(3), m[[1,3],[2]].coproduct_iterated(0)
|
|
204
|
+
(m{} # m{} # m{} # m{}, m{{1, 3}, {2}})
|
|
205
|
+
"""
|
|
206
|
+
if n < 0:
|
|
207
|
+
raise ValueError("cannot take fewer than 0 coproduct iterations: %s < 0" % str(n))
|
|
208
|
+
if n == 0:
|
|
209
|
+
return self
|
|
210
|
+
if n == 1:
|
|
211
|
+
return self.coproduct()
|
|
212
|
+
from sage.rings.integer import Integer
|
|
213
|
+
|
|
214
|
+
# Use coassociativity of `\Delta` to perform many coproducts simultaneously.
|
|
215
|
+
fn = Integer(n - 1) // 2
|
|
216
|
+
cn = Integer(n - 1) // 2 if n % 2 else Integer(n) // 2
|
|
217
|
+
split = lambda a, b: tensor([a.coproduct_iterated(fn),
|
|
218
|
+
b.coproduct_iterated(cn)])
|
|
219
|
+
return self.coproduct().apply_multilinear_morphism(split)
|
|
220
|
+
|
|
221
|
+
class Super(SuperModulesCategory):
|
|
222
|
+
def extra_super_categories(self):
|
|
223
|
+
"""
|
|
224
|
+
EXAMPLES::
|
|
225
|
+
|
|
226
|
+
sage: C = Coalgebras(ZZ).WithBasis().Super()
|
|
227
|
+
sage: sorted(C.super_categories(), key=str) # indirect doctest
|
|
228
|
+
[Category of graded coalgebras with basis over Integer Ring,
|
|
229
|
+
Category of super coalgebras over Integer Ring,
|
|
230
|
+
Category of super modules with basis over Integer Ring]
|
|
231
|
+
"""
|
|
232
|
+
return [self.base_category().Graded()]
|
|
Binary file
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
"""
|
|
3
|
+
Coercion methods for categories
|
|
4
|
+
|
|
5
|
+
The purpose of this Cython module is to hold special coercion methods,
|
|
6
|
+
which are inserted by their respective categories.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from sage.structure.element cimport Element
|
|
10
|
+
cimport cython
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
@cython.binding
|
|
14
|
+
def _mul_parent(self, other):
|
|
15
|
+
r"""
|
|
16
|
+
Return the product of the two elements, calculated using
|
|
17
|
+
the ``product`` method of the parent.
|
|
18
|
+
|
|
19
|
+
This is inserted by :meth:`Magmas.ParentMethods.__init_extra__` as
|
|
20
|
+
default implementation of ``Magmas.ElementMethods._mul_`` if
|
|
21
|
+
``product`` is implemented in the parent.
|
|
22
|
+
|
|
23
|
+
INPUT:
|
|
24
|
+
|
|
25
|
+
- ``other`` -- an element of the parent of ``self``
|
|
26
|
+
|
|
27
|
+
OUTPUT: an element of the parent of ``self``
|
|
28
|
+
|
|
29
|
+
EXAMPLES::
|
|
30
|
+
|
|
31
|
+
sage: S = Semigroups().example("free")
|
|
32
|
+
sage: x = S('a'); y = S('b')
|
|
33
|
+
sage: x._mul_parent(y)
|
|
34
|
+
'ab'
|
|
35
|
+
|
|
36
|
+
.. SEEALSO::
|
|
37
|
+
|
|
38
|
+
- :meth:`Magmas.ElementMethods._mul_parent`
|
|
39
|
+
- :meth:`Magmas.ElementMethods.__init_extra__`
|
|
40
|
+
- :meth:`Magmas.ParentMethods.product`
|
|
41
|
+
|
|
42
|
+
This is :meth:`Magmas.ElementMethods._mul_parent`, implemented as
|
|
43
|
+
a Cython method in :mod:`sage.categories.coercion_methods`::
|
|
44
|
+
|
|
45
|
+
sage: from sage.cpython.getattr import raw_getattr
|
|
46
|
+
sage: x._mul_parent.__func__ is raw_getattr(Magmas.ElementMethods,
|
|
47
|
+
....: '_mul_parent')
|
|
48
|
+
True
|
|
49
|
+
sage: x._mul_parent.__func__ is sage.categories.coercion_methods._mul_parent
|
|
50
|
+
True
|
|
51
|
+
"""
|
|
52
|
+
return (<Element>self)._parent.product(self, other)
|