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,258 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Graded algebras with basis
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 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.categories.graded_modules import GradedModulesCategory
|
|
14
|
+
from sage.categories.signed_tensor import SignedTensorProductsCategory, tensor_signed
|
|
15
|
+
from sage.misc.cachefunc import cached_method
|
|
16
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GradedAlgebrasWithBasis(GradedModulesCategory):
|
|
20
|
+
"""
|
|
21
|
+
The category of graded algebras with a distinguished basis.
|
|
22
|
+
|
|
23
|
+
EXAMPLES::
|
|
24
|
+
|
|
25
|
+
sage: C = GradedAlgebrasWithBasis(ZZ); C
|
|
26
|
+
Category of graded algebras with basis over Integer Ring
|
|
27
|
+
sage: sorted(C.super_categories(), key=str)
|
|
28
|
+
[Category of filtered algebras with basis over Integer Ring,
|
|
29
|
+
Category of graded algebras over Integer Ring,
|
|
30
|
+
Category of graded modules with basis over Integer Ring]
|
|
31
|
+
|
|
32
|
+
TESTS::
|
|
33
|
+
|
|
34
|
+
sage: TestSuite(C).run()
|
|
35
|
+
"""
|
|
36
|
+
class ParentMethods:
|
|
37
|
+
# This needs to be copied in GradedAlgebras because we need to have
|
|
38
|
+
# FilteredAlgebrasWithBasis as an extra super category
|
|
39
|
+
def graded_algebra(self):
|
|
40
|
+
"""
|
|
41
|
+
Return the associated graded algebra to ``self``.
|
|
42
|
+
|
|
43
|
+
This is ``self``, because ``self`` is already graded.
|
|
44
|
+
See :meth:`~sage.categories.filtered_algebras_with_basis.FilteredAlgebrasWithBasis.graded_algebra`
|
|
45
|
+
for the general behavior of this method, and see
|
|
46
|
+
:class:`~sage.algebras.associated_graded.AssociatedGradedAlgebra`
|
|
47
|
+
for the definition and properties of associated graded
|
|
48
|
+
algebras.
|
|
49
|
+
|
|
50
|
+
EXAMPLES::
|
|
51
|
+
|
|
52
|
+
sage: m = SymmetricFunctions(QQ).m() # needs sage.combinat sage.modules
|
|
53
|
+
sage: m.graded_algebra() is m # needs sage.combinat sage.modules
|
|
54
|
+
True
|
|
55
|
+
|
|
56
|
+
TESTS:
|
|
57
|
+
|
|
58
|
+
Let us check that the three methods
|
|
59
|
+
:meth:`to_graded_conversion`, :meth:`from_graded_conversion`
|
|
60
|
+
and :meth:`projection` (which form the interface of the
|
|
61
|
+
associated graded algebra) work correctly here::
|
|
62
|
+
|
|
63
|
+
sage: # needs sage.combinat sage.modules
|
|
64
|
+
sage: to_gr = m.to_graded_conversion()
|
|
65
|
+
sage: from_gr = m.from_graded_conversion()
|
|
66
|
+
sage: m[2] == to_gr(m[2]) == from_gr(m[2])
|
|
67
|
+
True
|
|
68
|
+
sage: u = 3*m[1] - (1/2)*m[3]
|
|
69
|
+
sage: u == to_gr(u) == from_gr(u)
|
|
70
|
+
True
|
|
71
|
+
sage: m.zero() == to_gr(m.zero()) == from_gr(m.zero())
|
|
72
|
+
True
|
|
73
|
+
sage: p2 = m.projection(2)
|
|
74
|
+
sage: p2(m[2] - 4*m[1,1] + 3*m[1] - 2*m[[]])
|
|
75
|
+
-4*m[1, 1] + m[2]
|
|
76
|
+
sage: p2(4*m[1])
|
|
77
|
+
0
|
|
78
|
+
sage: p2(m.zero()) == m.zero()
|
|
79
|
+
True
|
|
80
|
+
"""
|
|
81
|
+
return self
|
|
82
|
+
|
|
83
|
+
# .. TODO::
|
|
84
|
+
# Possibly override ``to_graded_conversion`` and
|
|
85
|
+
# ``from_graded_conversion`` with identity morphisms?
|
|
86
|
+
# I have to admit I don't know the right way to construct
|
|
87
|
+
# identity morphisms other than using the identity matrix.
|
|
88
|
+
# Also, ``projection`` could be overridden by, well, a
|
|
89
|
+
# projection.
|
|
90
|
+
|
|
91
|
+
def free_graded_module(self, generator_degrees, names=None):
|
|
92
|
+
"""
|
|
93
|
+
Create a finitely generated free graded module over ``self``.
|
|
94
|
+
|
|
95
|
+
INPUT:
|
|
96
|
+
|
|
97
|
+
- ``generator_degrees`` -- tuple of integers defining the
|
|
98
|
+
number of generators of the module and their degrees
|
|
99
|
+
|
|
100
|
+
- ``names`` -- (optional) the names of the generators. If
|
|
101
|
+
``names`` is a comma-separated string like ``'a, b,
|
|
102
|
+
c'``, then those will be the names. Otherwise, for
|
|
103
|
+
example if ``names`` is ``abc``, then the names will be
|
|
104
|
+
``abc[d,i]``.
|
|
105
|
+
|
|
106
|
+
By default, if all generators are in distinct degrees,
|
|
107
|
+
then the ``names`` of the generators will have the form
|
|
108
|
+
``g[d]`` where ``d`` is the degree of the generator. If
|
|
109
|
+
the degrees are not distinct, then the generators will be
|
|
110
|
+
called ``g[d,i]`` where ``d`` is the degree and ``i`` is
|
|
111
|
+
its index in the list of generators in that degree.
|
|
112
|
+
|
|
113
|
+
See :mod:`sage.modules.fp_graded.free_module` for more
|
|
114
|
+
examples and details.
|
|
115
|
+
|
|
116
|
+
EXAMPLES::
|
|
117
|
+
|
|
118
|
+
sage: # needs sage.combinat sage.modules
|
|
119
|
+
sage: Q = QuadraticForm(QQ, 3, [1,2,3,4,5,6])
|
|
120
|
+
sage: Cl = CliffordAlgebra(Q)
|
|
121
|
+
sage: M = Cl.free_graded_module((0, 2, 3))
|
|
122
|
+
sage: M.gens()
|
|
123
|
+
(g[0], g[2], g[3])
|
|
124
|
+
sage: N.<xy, z> = Cl.free_graded_module((1, 2))
|
|
125
|
+
sage: N.generators()
|
|
126
|
+
(xy, z)
|
|
127
|
+
"""
|
|
128
|
+
try:
|
|
129
|
+
return self._free_graded_module_class(self, generator_degrees, names=names)
|
|
130
|
+
except AttributeError:
|
|
131
|
+
from sage.modules.fp_graded.free_module import FreeGradedModule
|
|
132
|
+
return FreeGradedModule(self, generator_degrees, names=names)
|
|
133
|
+
|
|
134
|
+
def formal_series_ring(self):
|
|
135
|
+
r"""
|
|
136
|
+
Return the completion of all formal linear combinations of
|
|
137
|
+
``self`` with finite linear combinations in each homogeneous
|
|
138
|
+
degree (computed lazily).
|
|
139
|
+
|
|
140
|
+
EXAMPLES::
|
|
141
|
+
|
|
142
|
+
sage: # needs sage.combinat sage.modules
|
|
143
|
+
sage: NCSF = NonCommutativeSymmetricFunctions(QQ)
|
|
144
|
+
sage: S = NCSF.Complete()
|
|
145
|
+
sage: L = S.formal_series_ring()
|
|
146
|
+
sage: L
|
|
147
|
+
Lazy completion of Non-Commutative Symmetric Functions over
|
|
148
|
+
the Rational Field in the Complete basis
|
|
149
|
+
"""
|
|
150
|
+
from sage.rings.lazy_series_ring import LazyCompletionGradedAlgebra
|
|
151
|
+
return LazyCompletionGradedAlgebra(self)
|
|
152
|
+
|
|
153
|
+
completion = formal_series_ring
|
|
154
|
+
|
|
155
|
+
class ElementMethods:
|
|
156
|
+
pass
|
|
157
|
+
|
|
158
|
+
class FiniteDimensional(CategoryWithAxiom_over_base_ring):
|
|
159
|
+
class ParentMethods:
|
|
160
|
+
@cached_method
|
|
161
|
+
def top_degree(self):
|
|
162
|
+
r"""
|
|
163
|
+
Return the top degree of the finite dimensional graded algebra.
|
|
164
|
+
|
|
165
|
+
EXAMPLES::
|
|
166
|
+
|
|
167
|
+
sage: # needs sage.graphs sage.modules
|
|
168
|
+
sage: ch = matroids.Uniform(4,6).chow_ring(QQ, False)
|
|
169
|
+
sage: ch.top_degree()
|
|
170
|
+
3
|
|
171
|
+
sage: ch = matroids.Wheel(3).chow_ring(QQ, True, 'atom-free')
|
|
172
|
+
sage: ch.top_degree()
|
|
173
|
+
3
|
|
174
|
+
"""
|
|
175
|
+
return max(b.degree() for b in self.basis())
|
|
176
|
+
|
|
177
|
+
class SignedTensorProducts(SignedTensorProductsCategory):
|
|
178
|
+
"""
|
|
179
|
+
The category of algebras with basis constructed by signed tensor
|
|
180
|
+
product of algebras with basis.
|
|
181
|
+
"""
|
|
182
|
+
@cached_method
|
|
183
|
+
def extra_super_categories(self):
|
|
184
|
+
"""
|
|
185
|
+
EXAMPLES::
|
|
186
|
+
|
|
187
|
+
sage: Cat = AlgebrasWithBasis(QQ).Graded()
|
|
188
|
+
sage: Cat.SignedTensorProducts().extra_super_categories()
|
|
189
|
+
[Category of graded algebras with basis over Rational Field]
|
|
190
|
+
sage: Cat.SignedTensorProducts().super_categories()
|
|
191
|
+
[Category of graded algebras with basis over Rational Field,
|
|
192
|
+
Category of signed tensor products of graded algebras over Rational Field]
|
|
193
|
+
"""
|
|
194
|
+
return [self.base_category()]
|
|
195
|
+
|
|
196
|
+
class ParentMethods:
|
|
197
|
+
"""
|
|
198
|
+
Implement operations on tensor products of super algebras
|
|
199
|
+
with basis.
|
|
200
|
+
"""
|
|
201
|
+
@cached_method
|
|
202
|
+
def one_basis(self):
|
|
203
|
+
"""
|
|
204
|
+
Return the index of the one of this signed tensor product of
|
|
205
|
+
algebras, as per ``AlgebrasWithBasis.ParentMethods.one_basis``.
|
|
206
|
+
|
|
207
|
+
It is the tuple whose operands are the indices of the
|
|
208
|
+
ones of the operands, as returned by their
|
|
209
|
+
:meth:`.one_basis` methods.
|
|
210
|
+
|
|
211
|
+
EXAMPLES::
|
|
212
|
+
|
|
213
|
+
sage: # needs sage.combinat sage.modules
|
|
214
|
+
sage: A.<x,y> = ExteriorAlgebra(QQ)
|
|
215
|
+
sage: A.one_basis()
|
|
216
|
+
0
|
|
217
|
+
sage: B = tensor((A, A, A))
|
|
218
|
+
sage: B.one_basis()
|
|
219
|
+
(0, 0, 0)
|
|
220
|
+
sage: B.one()
|
|
221
|
+
1 # 1 # 1
|
|
222
|
+
"""
|
|
223
|
+
# FIXME: this method should be conditionally defined,
|
|
224
|
+
# so that B.one_basis returns NotImplemented if not
|
|
225
|
+
# all modules provide one_basis
|
|
226
|
+
if all(hasattr(module, "one_basis") for module in self._sets):
|
|
227
|
+
return tuple(module.one_basis() for module in self._sets)
|
|
228
|
+
else:
|
|
229
|
+
raise NotImplementedError
|
|
230
|
+
|
|
231
|
+
def product_on_basis(self, t0, t1):
|
|
232
|
+
"""
|
|
233
|
+
The product of the algebra on the basis, as per
|
|
234
|
+
``AlgebrasWithBasis.ParentMethods.product_on_basis``.
|
|
235
|
+
|
|
236
|
+
EXAMPLES:
|
|
237
|
+
|
|
238
|
+
Test the sign in the super tensor product::
|
|
239
|
+
|
|
240
|
+
sage: # needs sage.combinat sage.modules
|
|
241
|
+
sage: A = SteenrodAlgebra(3)
|
|
242
|
+
sage: x = A.Q(0)
|
|
243
|
+
sage: y = x.coproduct()
|
|
244
|
+
sage: y^2
|
|
245
|
+
0
|
|
246
|
+
|
|
247
|
+
TODO: optimize this implementation!
|
|
248
|
+
"""
|
|
249
|
+
basic = tensor_signed(module.monomial(x0) * module.monomial(x1)
|
|
250
|
+
for (module, x0, x1) in zip(self._sets, t0, t1))
|
|
251
|
+
n = len(self._sets)
|
|
252
|
+
parity0 = [self._sets[idx].degree_on_basis(x0)
|
|
253
|
+
for (idx, x0) in enumerate(t0)]
|
|
254
|
+
parity1 = [self._sets[idx].degree_on_basis(x1)
|
|
255
|
+
for (idx, x1) in enumerate(t1)]
|
|
256
|
+
parity = sum(parity0[i] * parity1[j]
|
|
257
|
+
for j in range(n) for i in range(j+1,n))
|
|
258
|
+
return (-1)**parity * basic
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Graded bialgebras
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 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
|
+
|
|
14
|
+
def GradedBialgebras(base_ring):
|
|
15
|
+
"""
|
|
16
|
+
The category of graded bialgebras.
|
|
17
|
+
|
|
18
|
+
EXAMPLES::
|
|
19
|
+
|
|
20
|
+
sage: C = GradedBialgebras(QQ); C
|
|
21
|
+
Join of Category of graded algebras over Rational Field
|
|
22
|
+
and Category of bialgebras over Rational Field
|
|
23
|
+
and Category of graded coalgebras over Rational Field
|
|
24
|
+
sage: C is Bialgebras(QQ).Graded()
|
|
25
|
+
True
|
|
26
|
+
|
|
27
|
+
TESTS::
|
|
28
|
+
|
|
29
|
+
sage: TestSuite(C).run()
|
|
30
|
+
"""
|
|
31
|
+
from sage.categories.bialgebras import Bialgebras
|
|
32
|
+
return Bialgebras(base_ring).Graded()
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Graded bialgebras with basis
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 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
|
+
|
|
14
|
+
def GradedBialgebrasWithBasis(base_ring):
|
|
15
|
+
"""
|
|
16
|
+
The category of graded bialgebras with a distinguished basis.
|
|
17
|
+
|
|
18
|
+
EXAMPLES::
|
|
19
|
+
|
|
20
|
+
sage: C = GradedBialgebrasWithBasis(QQ); C
|
|
21
|
+
Join of Category of ...
|
|
22
|
+
sage: sorted(C.super_categories(), key=str)
|
|
23
|
+
[Category of bialgebras with basis over Rational Field,
|
|
24
|
+
Category of graded algebras with basis over Rational Field,
|
|
25
|
+
Category of graded coalgebras with basis over Rational Field]
|
|
26
|
+
|
|
27
|
+
TESTS::
|
|
28
|
+
|
|
29
|
+
sage: TestSuite(C).run()
|
|
30
|
+
"""
|
|
31
|
+
from sage.categories.bialgebras_with_basis import BialgebrasWithBasis
|
|
32
|
+
return BialgebrasWithBasis(base_ring).Graded()
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Graded Coalgebras
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 2011-2013 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.categories.graded_modules import GradedModulesCategory
|
|
14
|
+
from sage.categories.signed_tensor import SignedTensorProductsCategory
|
|
15
|
+
from sage.misc.cachefunc import cached_method
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class GradedCoalgebras(GradedModulesCategory):
|
|
19
|
+
"""
|
|
20
|
+
The category of graded coalgebras.
|
|
21
|
+
|
|
22
|
+
EXAMPLES::
|
|
23
|
+
|
|
24
|
+
sage: C = GradedCoalgebras(QQ); C
|
|
25
|
+
Category of graded coalgebras over Rational Field
|
|
26
|
+
sage: C is Coalgebras(QQ).Graded()
|
|
27
|
+
True
|
|
28
|
+
|
|
29
|
+
TESTS::
|
|
30
|
+
|
|
31
|
+
sage: TestSuite(C).run()
|
|
32
|
+
"""
|
|
33
|
+
class SubcategoryMethods:
|
|
34
|
+
def SignedTensorProducts(self):
|
|
35
|
+
r"""
|
|
36
|
+
Return the full subcategory of objects of ``self`` constructed
|
|
37
|
+
as signed tensor products.
|
|
38
|
+
|
|
39
|
+
.. SEEALSO::
|
|
40
|
+
|
|
41
|
+
- :class:`~sage.categories.signed_tensor.SignedTensorProductsCategory`
|
|
42
|
+
- :class:`~.covariant_functorial_construction.CovariantFunctorialConstruction`
|
|
43
|
+
|
|
44
|
+
EXAMPLES::
|
|
45
|
+
|
|
46
|
+
sage: CoalgebrasWithBasis(QQ).Graded().SignedTensorProducts()
|
|
47
|
+
Category of signed tensor products of graded coalgebras with basis
|
|
48
|
+
over Rational Field
|
|
49
|
+
"""
|
|
50
|
+
return SignedTensorProductsCategory.category_of(self)
|
|
51
|
+
|
|
52
|
+
class SignedTensorProducts(SignedTensorProductsCategory):
|
|
53
|
+
@cached_method
|
|
54
|
+
def extra_super_categories(self):
|
|
55
|
+
"""
|
|
56
|
+
EXAMPLES::
|
|
57
|
+
|
|
58
|
+
sage: Coalgebras(QQ).Graded().SignedTensorProducts().extra_super_categories()
|
|
59
|
+
[Category of graded coalgebras over Rational Field]
|
|
60
|
+
sage: Coalgebras(QQ).Graded().SignedTensorProducts().super_categories()
|
|
61
|
+
[Category of graded coalgebras over Rational Field]
|
|
62
|
+
|
|
63
|
+
Meaning: a signed tensor product of coalgebras is a coalgebra
|
|
64
|
+
"""
|
|
65
|
+
return [self.base_category()]
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Graded coalgebras with basis
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 2011 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
8
|
+
# 2019 Travis Scrimshaw <tcscrims at gmail.com>
|
|
9
|
+
#
|
|
10
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
11
|
+
# http://www.gnu.org/licenses/
|
|
12
|
+
#******************************************************************************
|
|
13
|
+
|
|
14
|
+
from sage.misc.cachefunc import cached_method
|
|
15
|
+
from sage.categories.graded_modules import GradedModulesCategory
|
|
16
|
+
from sage.categories.signed_tensor import SignedTensorProductsCategory
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GradedCoalgebrasWithBasis(GradedModulesCategory):
|
|
20
|
+
"""
|
|
21
|
+
The category of graded coalgebras with a distinguished basis.
|
|
22
|
+
|
|
23
|
+
EXAMPLES::
|
|
24
|
+
|
|
25
|
+
sage: C = GradedCoalgebrasWithBasis(QQ); C
|
|
26
|
+
Category of graded coalgebras with basis over Rational Field
|
|
27
|
+
sage: C is Coalgebras(QQ).WithBasis().Graded()
|
|
28
|
+
True
|
|
29
|
+
|
|
30
|
+
TESTS::
|
|
31
|
+
|
|
32
|
+
sage: TestSuite(C).run()
|
|
33
|
+
"""
|
|
34
|
+
class SignedTensorProducts(SignedTensorProductsCategory):
|
|
35
|
+
"""
|
|
36
|
+
The category of coalgebras with basis constructed by signed tensor
|
|
37
|
+
product of coalgebras with basis.
|
|
38
|
+
"""
|
|
39
|
+
@cached_method
|
|
40
|
+
def extra_super_categories(self):
|
|
41
|
+
"""
|
|
42
|
+
EXAMPLES::
|
|
43
|
+
|
|
44
|
+
sage: Cat = CoalgebrasWithBasis(QQ).Graded()
|
|
45
|
+
sage: Cat.SignedTensorProducts().extra_super_categories()
|
|
46
|
+
[Category of graded coalgebras with basis over Rational Field]
|
|
47
|
+
sage: Cat.SignedTensorProducts().super_categories()
|
|
48
|
+
[Category of graded coalgebras with basis over Rational Field,
|
|
49
|
+
Category of signed tensor products of graded coalgebras over Rational Field]
|
|
50
|
+
"""
|
|
51
|
+
return [self.base_category()]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Graded Hopf algebras
|
|
4
|
+
"""
|
|
5
|
+
# ****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 2008-2011 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
8
|
+
#
|
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
10
|
+
# https://www.gnu.org/licenses/
|
|
11
|
+
# *****************************************************************************
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def GradedHopfAlgebras(base_ring):
|
|
15
|
+
r"""
|
|
16
|
+
The category of graded Hopf algebras.
|
|
17
|
+
|
|
18
|
+
EXAMPLES::
|
|
19
|
+
|
|
20
|
+
sage: C = GradedHopfAlgebras(QQ); C
|
|
21
|
+
Join of Category of Hopf algebras over Rational Field
|
|
22
|
+
and Category of graded algebras over Rational Field
|
|
23
|
+
and Category of graded coalgebras over Rational Field
|
|
24
|
+
sage: C is HopfAlgebras(QQ).Graded()
|
|
25
|
+
True
|
|
26
|
+
|
|
27
|
+
TESTS::
|
|
28
|
+
|
|
29
|
+
sage: TestSuite(C).run()
|
|
30
|
+
|
|
31
|
+
.. NOTE::
|
|
32
|
+
|
|
33
|
+
This is not a graded Hopf algebra as is typically defined
|
|
34
|
+
in algebraic topology as the product in the tensor square
|
|
35
|
+
`(x \otimes y) (a \otimes b) = (xa) \otimes (yb)` does
|
|
36
|
+
not carry an additional sign. For this, instead use
|
|
37
|
+
:class:`super Hopf algebras
|
|
38
|
+
<sage.categories.hopf_algebras.HopfAlgebras.Super>`.
|
|
39
|
+
"""
|
|
40
|
+
from sage.categories.hopf_algebras import HopfAlgebras
|
|
41
|
+
return HopfAlgebras(base_ring).Graded()
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Graded Hopf algebras with basis
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2008 Teresa Gomez-Diaz (CNRS) <Teresa.Gomez-Diaz@univ-mlv.fr>
|
|
7
|
+
# 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
|
+
from sage.categories.category_with_axiom import CategoryWithAxiom_over_base_ring
|
|
13
|
+
from sage.categories.tensor import tensor
|
|
14
|
+
from sage.categories.graded_modules import GradedModulesCategory
|
|
15
|
+
from sage.categories.with_realizations import WithRealizationsCategory
|
|
16
|
+
from sage.misc.cachefunc import cached_method
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class GradedHopfAlgebrasWithBasis(GradedModulesCategory):
|
|
20
|
+
"""
|
|
21
|
+
The category of graded Hopf algebras with a distinguished basis.
|
|
22
|
+
|
|
23
|
+
EXAMPLES::
|
|
24
|
+
|
|
25
|
+
sage: C = GradedHopfAlgebrasWithBasis(ZZ); C
|
|
26
|
+
Category of graded Hopf algebras with basis over Integer Ring
|
|
27
|
+
sage: C.super_categories()
|
|
28
|
+
[Category of filtered Hopf algebras with basis over Integer Ring,
|
|
29
|
+
Category of graded algebras with basis over Integer Ring,
|
|
30
|
+
Category of graded coalgebras with basis over Integer Ring]
|
|
31
|
+
|
|
32
|
+
sage: C is HopfAlgebras(ZZ).WithBasis().Graded()
|
|
33
|
+
True
|
|
34
|
+
sage: C is HopfAlgebras(ZZ).Graded().WithBasis()
|
|
35
|
+
False
|
|
36
|
+
|
|
37
|
+
TESTS::
|
|
38
|
+
|
|
39
|
+
sage: TestSuite(C).run()
|
|
40
|
+
"""
|
|
41
|
+
def example(self):
|
|
42
|
+
"""
|
|
43
|
+
Return an example of a graded Hopf algebra with
|
|
44
|
+
a distinguished basis.
|
|
45
|
+
|
|
46
|
+
TESTS::
|
|
47
|
+
|
|
48
|
+
sage: GradedHopfAlgebrasWithBasis(QQ).example() # needs sage.modules
|
|
49
|
+
An example of a graded connected Hopf algebra with basis over Rational Field
|
|
50
|
+
"""
|
|
51
|
+
from sage.categories.examples.graded_connected_hopf_algebras_with_basis import \
|
|
52
|
+
GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator
|
|
53
|
+
return GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator(self.base())
|
|
54
|
+
|
|
55
|
+
class ParentMethods:
|
|
56
|
+
pass
|
|
57
|
+
|
|
58
|
+
class ElementMethods:
|
|
59
|
+
pass
|
|
60
|
+
|
|
61
|
+
class WithRealizations(WithRealizationsCategory):
|
|
62
|
+
@cached_method
|
|
63
|
+
def super_categories(self):
|
|
64
|
+
"""
|
|
65
|
+
EXAMPLES::
|
|
66
|
+
|
|
67
|
+
sage: GradedHopfAlgebrasWithBasis(QQ).WithRealizations().super_categories()
|
|
68
|
+
[Join of Category of Hopf algebras over Rational Field
|
|
69
|
+
and Category of graded algebras over Rational Field
|
|
70
|
+
and Category of graded coalgebras over Rational Field]
|
|
71
|
+
|
|
72
|
+
TESTS::
|
|
73
|
+
|
|
74
|
+
sage: TestSuite(GradedHopfAlgebrasWithBasis(QQ).WithRealizations()).run()
|
|
75
|
+
"""
|
|
76
|
+
from sage.categories.graded_hopf_algebras import GradedHopfAlgebras
|
|
77
|
+
R = self.base_category().base_ring()
|
|
78
|
+
return [GradedHopfAlgebras(R)]
|
|
79
|
+
|
|
80
|
+
class Connected(CategoryWithAxiom_over_base_ring):
|
|
81
|
+
def example(self):
|
|
82
|
+
"""
|
|
83
|
+
Return an example of a graded connected Hopf algebra with
|
|
84
|
+
a distinguished basis.
|
|
85
|
+
|
|
86
|
+
TESTS::
|
|
87
|
+
|
|
88
|
+
sage: GradedHopfAlgebrasWithBasis(QQ).Connected().example() # needs sage.modules
|
|
89
|
+
An example of a graded connected Hopf algebra with basis over Rational Field
|
|
90
|
+
"""
|
|
91
|
+
from sage.categories.examples.graded_connected_hopf_algebras_with_basis import \
|
|
92
|
+
GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator
|
|
93
|
+
return GradedConnectedCombinatorialHopfAlgebraWithPrimitiveGenerator(self.base())
|
|
94
|
+
|
|
95
|
+
class ParentMethods:
|
|
96
|
+
def counit_on_basis(self, i):
|
|
97
|
+
r"""
|
|
98
|
+
The default counit of a graded connected Hopf algebra.
|
|
99
|
+
|
|
100
|
+
INPUT:
|
|
101
|
+
|
|
102
|
+
- ``i`` -- an element of the index set
|
|
103
|
+
|
|
104
|
+
OUTPUT: an element of the base ring
|
|
105
|
+
|
|
106
|
+
.. MATH::
|
|
107
|
+
|
|
108
|
+
c(i) := \begin{cases}
|
|
109
|
+
1 & \hbox{if $i$ indexes the $1$ of the algebra}\\
|
|
110
|
+
0 & \hbox{otherwise}.
|
|
111
|
+
\end{cases}
|
|
112
|
+
|
|
113
|
+
EXAMPLES::
|
|
114
|
+
|
|
115
|
+
sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example() # needs sage.modules
|
|
116
|
+
sage: H.monomial(4).counit() # indirect doctest # needs sage.modules
|
|
117
|
+
0
|
|
118
|
+
sage: H.monomial(0).counit() # indirect doctest # needs sage.modules
|
|
119
|
+
1
|
|
120
|
+
"""
|
|
121
|
+
if i == self.one_basis():
|
|
122
|
+
return self.base_ring().one()
|
|
123
|
+
return self.base_ring().zero()
|
|
124
|
+
|
|
125
|
+
@cached_method
|
|
126
|
+
def antipode_on_basis(self, index):
|
|
127
|
+
r"""
|
|
128
|
+
The antipode on the basis element indexed by ``index``.
|
|
129
|
+
|
|
130
|
+
INPUT:
|
|
131
|
+
|
|
132
|
+
- ``index`` -- an element of the index set
|
|
133
|
+
|
|
134
|
+
For a graded connected Hopf algebra, we can define
|
|
135
|
+
an antipode recursively by
|
|
136
|
+
|
|
137
|
+
.. MATH::
|
|
138
|
+
|
|
139
|
+
S(x) := -\sum_{x^L \neq x} S(x^L) \times x^R
|
|
140
|
+
|
|
141
|
+
when `|x| > 0`, and by `S(x) = x` when `|x| = 0`.
|
|
142
|
+
|
|
143
|
+
TESTS::
|
|
144
|
+
|
|
145
|
+
sage: # needs sage.modules
|
|
146
|
+
sage: H = GradedHopfAlgebrasWithBasis(QQ).Connected().example()
|
|
147
|
+
sage: H.monomial(0).antipode() # indirect doctest
|
|
148
|
+
P0
|
|
149
|
+
sage: H.monomial(1).antipode() # indirect doctest
|
|
150
|
+
-P1
|
|
151
|
+
sage: H.monomial(2).antipode() # indirect doctest
|
|
152
|
+
P2
|
|
153
|
+
sage: H.monomial(3).antipode() # indirect doctest
|
|
154
|
+
-P3
|
|
155
|
+
"""
|
|
156
|
+
if self.monomial(index) == self.one():
|
|
157
|
+
return self.one()
|
|
158
|
+
|
|
159
|
+
S = self.antipode_on_basis
|
|
160
|
+
x__S_Id = tensor([self, self]).module_morphism(
|
|
161
|
+
lambda ab: S(ab[0]) * self.monomial(ab[1]),
|
|
162
|
+
codomain=self)
|
|
163
|
+
return -x__S_Id(
|
|
164
|
+
self.monomial(index).coproduct()
|
|
165
|
+
- tensor([self.monomial(index), self.one()])
|
|
166
|
+
)
|
|
167
|
+
|
|
168
|
+
class ElementMethods:
|
|
169
|
+
pass
|