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,187 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Example of facade set
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2010 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# http://www.gnu.org/licenses/
|
|
10
|
+
#*****************************************************************************
|
|
11
|
+
|
|
12
|
+
from sage.categories.sets_cat import Sets
|
|
13
|
+
from sage.categories.monoids import Monoids
|
|
14
|
+
from sage.structure.parent import Parent
|
|
15
|
+
from sage.structure.unique_representation import UniqueRepresentation
|
|
16
|
+
from sage.rings.integer_ring import ZZ
|
|
17
|
+
from sage.rings.infinity import infinity
|
|
18
|
+
from sage.sets.finite_enumerated_set import FiniteEnumeratedSet
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class PositiveIntegerMonoid(UniqueRepresentation, Parent):
|
|
22
|
+
r"""
|
|
23
|
+
|
|
24
|
+
An example of a facade parent: the positive integers viewed as a
|
|
25
|
+
multiplicative monoid
|
|
26
|
+
|
|
27
|
+
This class illustrates a minimal implementation of a facade parent
|
|
28
|
+
which models a subset of a set.
|
|
29
|
+
|
|
30
|
+
EXAMPLES::
|
|
31
|
+
|
|
32
|
+
sage: S = Sets().Facade().example(); S
|
|
33
|
+
An example of facade set: the monoid of positive integers
|
|
34
|
+
|
|
35
|
+
TESTS::
|
|
36
|
+
|
|
37
|
+
sage: TestSuite(S).run(verbose = True)
|
|
38
|
+
running ._test_an_element() . . . pass
|
|
39
|
+
running ._test_associativity() . . . pass
|
|
40
|
+
running ._test_cardinality() . . . pass
|
|
41
|
+
running ._test_category() . . . pass
|
|
42
|
+
running ._test_construction() . . . pass
|
|
43
|
+
running ._test_elements() . . .
|
|
44
|
+
Running the test suite of self.an_element()
|
|
45
|
+
running ._test_category() . . . pass
|
|
46
|
+
running ._test_eq() . . . pass
|
|
47
|
+
running ._test_new() . . . pass
|
|
48
|
+
running ._test_nonzero_equal() . . . pass
|
|
49
|
+
running ._test_not_implemented_methods() . . . pass
|
|
50
|
+
running ._test_pickling() . . . pass
|
|
51
|
+
pass
|
|
52
|
+
running ._test_elements_eq_reflexive() . . . pass
|
|
53
|
+
running ._test_elements_eq_symmetric() . . . pass
|
|
54
|
+
running ._test_elements_eq_transitive() . . . pass
|
|
55
|
+
running ._test_elements_neq() . . . pass
|
|
56
|
+
running ._test_eq() . . . pass
|
|
57
|
+
running ._test_new() . . . pass
|
|
58
|
+
running ._test_not_implemented_methods() . . . pass
|
|
59
|
+
running ._test_one() . . . pass
|
|
60
|
+
running ._test_pickling() . . . pass
|
|
61
|
+
running ._test_prod() . . . pass
|
|
62
|
+
running ._test_some_elements() . . . pass
|
|
63
|
+
"""
|
|
64
|
+
def __init__(self):
|
|
65
|
+
r"""
|
|
66
|
+
EXAMPLES::
|
|
67
|
+
|
|
68
|
+
sage: from sage.categories.examples.facade_sets import PositiveIntegerMonoid
|
|
69
|
+
sage: S = PositiveIntegerMonoid(); S
|
|
70
|
+
An example of facade set: the monoid of positive integers
|
|
71
|
+
|
|
72
|
+
TESTS::
|
|
73
|
+
|
|
74
|
+
sage: TestSuite(S).run()
|
|
75
|
+
"""
|
|
76
|
+
Parent.__init__(self, facade=ZZ, category=Monoids())
|
|
77
|
+
|
|
78
|
+
def _repr_(self):
|
|
79
|
+
r"""
|
|
80
|
+
|
|
81
|
+
EXAMPLES::
|
|
82
|
+
|
|
83
|
+
sage: S = Sets().Facade().example() # indirect doctest
|
|
84
|
+
"""
|
|
85
|
+
return "An example of facade set: the monoid of positive integers"
|
|
86
|
+
|
|
87
|
+
def _element_constructor_(self, object):
|
|
88
|
+
r"""
|
|
89
|
+
Construction of elements.
|
|
90
|
+
|
|
91
|
+
Since ``self`` is a strict subset of the parent it is a facade
|
|
92
|
+
for, it is mandatory to override this method. This method
|
|
93
|
+
indirectly influences membership testing (see
|
|
94
|
+
:meth:`Parent.__contains__`).
|
|
95
|
+
|
|
96
|
+
EXAMPLES::
|
|
97
|
+
|
|
98
|
+
sage: S = Sets().Facade().example(); S
|
|
99
|
+
An example of facade set: the monoid of positive integers
|
|
100
|
+
sage: S(1)
|
|
101
|
+
1
|
|
102
|
+
sage: S(int(1))
|
|
103
|
+
1
|
|
104
|
+
sage: S(2/1)
|
|
105
|
+
2
|
|
106
|
+
sage: (parent(S(1)) == ZZ, parent(S(int(1))) == ZZ, parent(S(2/1)))
|
|
107
|
+
(True, True, Integer Ring)
|
|
108
|
+
sage: S(1), S(int(1)), S(2/1)
|
|
109
|
+
(1, 1, 2)
|
|
110
|
+
sage: 1 in S
|
|
111
|
+
True
|
|
112
|
+
sage: 2/1 in S, int(1) in S
|
|
113
|
+
(True, True)
|
|
114
|
+
sage: -1 in S, 1/2 in S
|
|
115
|
+
(False, False)
|
|
116
|
+
"""
|
|
117
|
+
object = ZZ(object)
|
|
118
|
+
if object > ZZ(0):
|
|
119
|
+
return object
|
|
120
|
+
else:
|
|
121
|
+
raise ValueError("%s should be positive")
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
class IntegersCompletion(UniqueRepresentation, Parent):
|
|
125
|
+
r"""
|
|
126
|
+
An example of a facade parent: the set of integers completed with
|
|
127
|
+
`+-\infty`
|
|
128
|
+
|
|
129
|
+
This class illustrates a minimal implementation of a facade parent
|
|
130
|
+
that models the union of several other parents.
|
|
131
|
+
|
|
132
|
+
EXAMPLES::
|
|
133
|
+
|
|
134
|
+
sage: S = Sets().Facade().example("union"); S
|
|
135
|
+
An example of a facade set: the integers completed by +-infinity
|
|
136
|
+
|
|
137
|
+
TESTS::
|
|
138
|
+
|
|
139
|
+
sage: TestSuite(S).run(verbose = True)
|
|
140
|
+
running ._test_an_element() . . . pass
|
|
141
|
+
running ._test_cardinality() . . . pass
|
|
142
|
+
running ._test_category() . . . pass
|
|
143
|
+
running ._test_construction() . . . pass
|
|
144
|
+
running ._test_elements() . . .
|
|
145
|
+
Running the test suite of self.an_element()
|
|
146
|
+
running ._test_category() . . . pass
|
|
147
|
+
running ._test_eq() . . . pass
|
|
148
|
+
running ._test_new() . . . pass
|
|
149
|
+
running ._test_nonzero_equal() . . . pass
|
|
150
|
+
running ._test_not_implemented_methods() . . . pass
|
|
151
|
+
running ._test_pickling() . . . pass
|
|
152
|
+
pass
|
|
153
|
+
running ._test_elements_eq_reflexive() . . . pass
|
|
154
|
+
running ._test_elements_eq_symmetric() . . . pass
|
|
155
|
+
running ._test_elements_eq_transitive() . . . pass
|
|
156
|
+
running ._test_elements_neq() . . . pass
|
|
157
|
+
running ._test_eq() . . . pass
|
|
158
|
+
running ._test_new() . . . pass
|
|
159
|
+
running ._test_not_implemented_methods() . . . pass
|
|
160
|
+
running ._test_pickling() . . . pass
|
|
161
|
+
running ._test_some_elements() . . . pass
|
|
162
|
+
"""
|
|
163
|
+
def __init__(self):
|
|
164
|
+
r"""
|
|
165
|
+
EXAMPLES::
|
|
166
|
+
|
|
167
|
+
sage: from sage.categories.examples.facade_sets import IntegersCompletion
|
|
168
|
+
sage: S = IntegersCompletion(); S
|
|
169
|
+
An example of a facade set: the integers completed by +-infinity
|
|
170
|
+
|
|
171
|
+
TESTS::
|
|
172
|
+
|
|
173
|
+
sage: TestSuite(S).run()
|
|
174
|
+
"""
|
|
175
|
+
# We can't use InfinityRing, because this ring contains 3
|
|
176
|
+
# elements besides +-infinity. We can not use Set either for the
|
|
177
|
+
# moment, because Set([1,2])(1) raises an error
|
|
178
|
+
Parent.__init__(self, facade=(ZZ, FiniteEnumeratedSet([-infinity, +infinity])), category=Sets())
|
|
179
|
+
|
|
180
|
+
def _repr_(self):
|
|
181
|
+
r"""
|
|
182
|
+
|
|
183
|
+
EXAMPLES::
|
|
184
|
+
|
|
185
|
+
sage: S = Sets().Facade().example() # indirect doctest
|
|
186
|
+
"""
|
|
187
|
+
return "An example of a facade set: the integers completed by +-infinity"
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Examples of filtered algebra with basis
|
|
4
|
+
"""
|
|
5
|
+
#*****************************************************************************
|
|
6
|
+
# Copyright (C) 2014 Travis Scrimshaw <tscrim at ucdavis.edu>
|
|
7
|
+
#
|
|
8
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
9
|
+
# http://www.gnu.org/licenses/
|
|
10
|
+
#*****************************************************************************
|
|
11
|
+
|
|
12
|
+
from sage.categories.filtered_algebras_with_basis import FilteredAlgebrasWithBasis
|
|
13
|
+
from sage.combinat.free_module import CombinatorialFreeModule
|
|
14
|
+
from sage.monoids.indexed_free_monoid import IndexedFreeAbelianMonoid
|
|
15
|
+
from sage.sets.family import Family
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class PBWBasisCrossProduct(CombinatorialFreeModule):
|
|
19
|
+
r"""
|
|
20
|
+
This class illustrates an implementation of a filtered algebra
|
|
21
|
+
with basis: the universal enveloping algebra of the Lie algebra
|
|
22
|
+
of `\RR^3` under the cross product.
|
|
23
|
+
|
|
24
|
+
The Lie algebra is generated by `x,y,z` with brackets defined by
|
|
25
|
+
`[x, y] = z`, `[y, z] = x`, and `[x, z] = -y`. The universal enveloping
|
|
26
|
+
algebra has a (PBW) basis consisting of monomials `x^i y^j z^k`.
|
|
27
|
+
Despite these monomials not commuting with each other, we
|
|
28
|
+
nevertheless label them by the elements of the free abelian monoid
|
|
29
|
+
on three generators.
|
|
30
|
+
|
|
31
|
+
INPUT:
|
|
32
|
+
|
|
33
|
+
- ``R`` -- base ring
|
|
34
|
+
|
|
35
|
+
The implementation involves the following:
|
|
36
|
+
|
|
37
|
+
- A set of algebra generators -- the set of generators `x,y,z`
|
|
38
|
+
|
|
39
|
+
- The index of the unit element -- the unit element in the monoid
|
|
40
|
+
of monomials
|
|
41
|
+
|
|
42
|
+
- A product -- this is given on basis elements by using
|
|
43
|
+
:meth:`product_on_basis`
|
|
44
|
+
|
|
45
|
+
- A degree function -- this is determined on the basis elements
|
|
46
|
+
by using :meth:`degree_on_basis` which returns the sum of exponents
|
|
47
|
+
of the monomial
|
|
48
|
+
"""
|
|
49
|
+
def __init__(self, base_ring):
|
|
50
|
+
"""
|
|
51
|
+
EXAMPLES::
|
|
52
|
+
|
|
53
|
+
sage: A = AlgebrasWithBasis(QQ).Filtered().example()
|
|
54
|
+
sage: x,y,z = A.algebra_generators()
|
|
55
|
+
sage: TestSuite(A).run(elements=[x*y+z])
|
|
56
|
+
"""
|
|
57
|
+
I = IndexedFreeAbelianMonoid(['x', 'y', 'z'], prefix='U')
|
|
58
|
+
|
|
59
|
+
CombinatorialFreeModule.__init__(self, base_ring, I, bracket=False,
|
|
60
|
+
prefix='',
|
|
61
|
+
sorting_key=self._sort_key,
|
|
62
|
+
category=FilteredAlgebrasWithBasis(base_ring))
|
|
63
|
+
|
|
64
|
+
def _sort_key(self, x):
|
|
65
|
+
"""
|
|
66
|
+
Return the key used to sort the terms.
|
|
67
|
+
|
|
68
|
+
INPUT:
|
|
69
|
+
|
|
70
|
+
- ``x`` -- a basis index (here an element in a free Abelian monoid)
|
|
71
|
+
|
|
72
|
+
EXAMPLES::
|
|
73
|
+
|
|
74
|
+
sage: A = AlgebrasWithBasis(QQ).Filtered().example()
|
|
75
|
+
sage: S = sorted(A.an_element().support()); S
|
|
76
|
+
[1, U['x'], U['x']^2*U['y']^2*U['z']^3, U['y']]
|
|
77
|
+
sage: [A._sort_key(m) for m in S]
|
|
78
|
+
[(0, []), (-1, ['x']), (-7, ['x', 'x', 'y', 'y', 'z', 'z', 'z']),
|
|
79
|
+
(-1, ['y'])]
|
|
80
|
+
"""
|
|
81
|
+
return (-len(x), x.to_word_list())
|
|
82
|
+
|
|
83
|
+
def _repr_(self):
|
|
84
|
+
"""
|
|
85
|
+
Return a string representation of ``self``.
|
|
86
|
+
|
|
87
|
+
EXAMPLES::
|
|
88
|
+
|
|
89
|
+
sage: AlgebrasWithBasis(QQ).Filtered().example()
|
|
90
|
+
An example of a filtered algebra with basis:
|
|
91
|
+
the universal enveloping algebra of
|
|
92
|
+
Lie algebra of RR^3 with cross product over Rational Field
|
|
93
|
+
"""
|
|
94
|
+
return "An example of a filtered algebra with basis: the universal enveloping algebra of Lie algebra of RR^3 with cross product over {}".format(self.base_ring())
|
|
95
|
+
|
|
96
|
+
def algebra_generators(self):
|
|
97
|
+
"""
|
|
98
|
+
Return the algebra generators of ``self``.
|
|
99
|
+
|
|
100
|
+
EXAMPLES::
|
|
101
|
+
|
|
102
|
+
sage: A = AlgebrasWithBasis(QQ).Filtered().example()
|
|
103
|
+
sage: list(A.algebra_generators())
|
|
104
|
+
[U['x'], U['y'], U['z']]
|
|
105
|
+
"""
|
|
106
|
+
G = self._indices.monoid_generators()
|
|
107
|
+
I = sorted(G.keys())
|
|
108
|
+
return Family(I, lambda x: self.monomial(G[x]))
|
|
109
|
+
|
|
110
|
+
def one_basis(self):
|
|
111
|
+
"""
|
|
112
|
+
Return the index of the unit of ``self``.
|
|
113
|
+
|
|
114
|
+
EXAMPLES::
|
|
115
|
+
|
|
116
|
+
sage: A = AlgebrasWithBasis(QQ).Filtered().example()
|
|
117
|
+
sage: A.one_basis()
|
|
118
|
+
1
|
|
119
|
+
"""
|
|
120
|
+
return self._indices.one()
|
|
121
|
+
|
|
122
|
+
def degree_on_basis(self, m):
|
|
123
|
+
"""
|
|
124
|
+
The degree of the basis element of ``self`` labelled by ``m``.
|
|
125
|
+
|
|
126
|
+
INPUT:
|
|
127
|
+
|
|
128
|
+
- ``m`` -- an element of the free abelian monoid
|
|
129
|
+
|
|
130
|
+
OUTPUT: integer; the degree of the corresponding basis element
|
|
131
|
+
|
|
132
|
+
EXAMPLES::
|
|
133
|
+
|
|
134
|
+
sage: A = AlgebrasWithBasis(QQ).Filtered().example()
|
|
135
|
+
sage: x = A.algebra_generators()['x']
|
|
136
|
+
sage: A.degree_on_basis((x^4).leading_support())
|
|
137
|
+
4
|
|
138
|
+
sage: a = A.an_element(); a
|
|
139
|
+
U['x']^2*U['y']^2*U['z']^3 + 2*U['x'] + 3*U['y'] + 1
|
|
140
|
+
sage: A.degree_on_basis(a.leading_support())
|
|
141
|
+
1
|
|
142
|
+
sage: s = sorted(a.support(), key=str)[2]; s
|
|
143
|
+
U['x']^2*U['y']^2*U['z']^3
|
|
144
|
+
sage: A.degree_on_basis(s)
|
|
145
|
+
7
|
|
146
|
+
"""
|
|
147
|
+
return len(m)
|
|
148
|
+
|
|
149
|
+
# TODO: This is a general procedure of expanding multiplication defined
|
|
150
|
+
# on generators to arbitrary monomials and could likely be factored out
|
|
151
|
+
# and be useful elsewhere.
|
|
152
|
+
def product_on_basis(self, s, t):
|
|
153
|
+
"""
|
|
154
|
+
Return the product of two basis elements indexed by ``s`` and ``t``.
|
|
155
|
+
|
|
156
|
+
EXAMPLES::
|
|
157
|
+
|
|
158
|
+
sage: A = AlgebrasWithBasis(QQ).Filtered().example()
|
|
159
|
+
sage: G = A.algebra_generators()
|
|
160
|
+
sage: x,y,z = G['x'], G['y'], G['z']
|
|
161
|
+
sage: A.product_on_basis(x.leading_support(), y.leading_support())
|
|
162
|
+
U['x']*U['y']
|
|
163
|
+
sage: y*x
|
|
164
|
+
U['x']*U['y'] - U['z']
|
|
165
|
+
sage: x*y*x
|
|
166
|
+
U['x']^2*U['y'] - U['x']*U['z']
|
|
167
|
+
sage: z*y*x
|
|
168
|
+
U['x']*U['y']*U['z'] - U['x']^2 + U['y']^2 - U['z']^2
|
|
169
|
+
"""
|
|
170
|
+
if len(s) == 0:
|
|
171
|
+
return self.monomial(t)
|
|
172
|
+
if len(t) == 0:
|
|
173
|
+
return self.monomial(s)
|
|
174
|
+
if s.trailing_support() <= t.leading_support():
|
|
175
|
+
return self.monomial(s*t)
|
|
176
|
+
|
|
177
|
+
if len(t) == 1:
|
|
178
|
+
if len(s) == 1:
|
|
179
|
+
# Do the product of the generators
|
|
180
|
+
a = s.leading_support()
|
|
181
|
+
b = t.leading_support()
|
|
182
|
+
cur = self.monomial(s*t)
|
|
183
|
+
if a <= b:
|
|
184
|
+
return cur
|
|
185
|
+
if a == 'z':
|
|
186
|
+
if b == 'y':
|
|
187
|
+
return cur - self.monomial(self._indices.gen('x'))
|
|
188
|
+
# b == 'x'
|
|
189
|
+
return cur + self.monomial(self._indices.gen('y'))
|
|
190
|
+
# a == 'y' and b == 'x'
|
|
191
|
+
return cur - self.monomial(self._indices.gen('z'))
|
|
192
|
+
|
|
193
|
+
cur = self.monomial(t)
|
|
194
|
+
for a in reversed(s.to_word_list()):
|
|
195
|
+
cur = self.monomial(self._indices.gen(a)) * cur
|
|
196
|
+
return cur
|
|
197
|
+
|
|
198
|
+
cur = self.monomial(s)
|
|
199
|
+
for a in t.to_word_list():
|
|
200
|
+
cur = cur * self.monomial(self._indices.gen(a))
|
|
201
|
+
return cur
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
Example = PBWBasisCrossProduct
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
# sage.doctest: needs sage.combinat
|
|
3
|
+
r"""
|
|
4
|
+
Examples of filtered modules with basis
|
|
5
|
+
"""
|
|
6
|
+
# ****************************************************************************
|
|
7
|
+
# Copyright (C) 2013 Frédéric Chapoton <fchapoton2@gmail.com>
|
|
8
|
+
#
|
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
10
|
+
# https://www.gnu.org/licenses/
|
|
11
|
+
# ****************************************************************************
|
|
12
|
+
|
|
13
|
+
from sage.categories.filtered_modules_with_basis import FilteredModulesWithBasis
|
|
14
|
+
from sage.combinat.free_module import CombinatorialFreeModule
|
|
15
|
+
from sage.combinat.partition import Partitions
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class FilteredPartitionModule(CombinatorialFreeModule):
|
|
19
|
+
r"""
|
|
20
|
+
This class illustrates an implementation of a filtered module
|
|
21
|
+
with basis: the free module on the set of all partitions.
|
|
22
|
+
|
|
23
|
+
INPUT:
|
|
24
|
+
|
|
25
|
+
- ``R`` -- base ring
|
|
26
|
+
|
|
27
|
+
The implementation involves the following:
|
|
28
|
+
|
|
29
|
+
- A choice of how to represent elements. In this case, the basis
|
|
30
|
+
elements are partitions. The algebra is constructed as a
|
|
31
|
+
:class:`CombinatorialFreeModule
|
|
32
|
+
<sage.combinat.free_module.CombinatorialFreeModule>` on the
|
|
33
|
+
set of partitions, so it inherits all of the methods for such
|
|
34
|
+
objects, and has operations like addition already defined.
|
|
35
|
+
|
|
36
|
+
::
|
|
37
|
+
|
|
38
|
+
sage: A = ModulesWithBasis(QQ).Filtered().example() # needs sage.modules
|
|
39
|
+
|
|
40
|
+
- If the algebra is called ``A``, then its basis function is
|
|
41
|
+
stored as ``A.basis``. Thus the function can be used to
|
|
42
|
+
find a basis for the degree `d` piece: essentially, just call
|
|
43
|
+
``A.basis(d)``. More precisely, call ``x`` for
|
|
44
|
+
each ``x`` in ``A.basis(d)``.
|
|
45
|
+
|
|
46
|
+
::
|
|
47
|
+
|
|
48
|
+
sage: [m for m in A.basis(4)] # needs sage.modules
|
|
49
|
+
[P[4], P[3, 1], P[2, 2], P[2, 1, 1], P[1, 1, 1, 1]]
|
|
50
|
+
|
|
51
|
+
- For dealing with basis elements: :meth:`degree_on_basis`, and
|
|
52
|
+
:meth:`_repr_term`. The first of these defines the degree of any
|
|
53
|
+
monomial, and then the :meth:`degree
|
|
54
|
+
<FilteredModules.Element.degree>` method for elements --
|
|
55
|
+
see the next item -- uses it to compute the degree for a linear
|
|
56
|
+
combination of monomials. The last of these determines the
|
|
57
|
+
print representation for monomials, which automatically produces
|
|
58
|
+
the print representation for general elements.
|
|
59
|
+
|
|
60
|
+
::
|
|
61
|
+
|
|
62
|
+
sage: A.degree_on_basis(Partition([4,3])) # needs sage.modules
|
|
63
|
+
7
|
|
64
|
+
sage: A._repr_term(Partition([4,3])) # needs sage.modules
|
|
65
|
+
'P[4, 3]'
|
|
66
|
+
|
|
67
|
+
- There is a class for elements, which inherits from
|
|
68
|
+
:class:`IndexedFreeModuleElement
|
|
69
|
+
<sage.modules.with_basis.indexed_element.IndexedFreeModuleElement>`.
|
|
70
|
+
An element is determined by a dictionary whose keys are partitions and
|
|
71
|
+
whose corresponding values are the coefficients. The class implements
|
|
72
|
+
two things: an :meth:`is_homogeneous
|
|
73
|
+
<FilteredModules.Element.is_homogeneous>` method and a
|
|
74
|
+
:meth:`degree <FilteredModules.Element.degree>` method.
|
|
75
|
+
|
|
76
|
+
::
|
|
77
|
+
|
|
78
|
+
sage: p = A.monomial(Partition([3,2,1])); p # needs sage.modules
|
|
79
|
+
P[3, 2, 1]
|
|
80
|
+
sage: p.is_homogeneous() # needs sage.modules
|
|
81
|
+
True
|
|
82
|
+
sage: p.degree() # needs sage.modules
|
|
83
|
+
6
|
|
84
|
+
"""
|
|
85
|
+
def __init__(self, base_ring):
|
|
86
|
+
"""
|
|
87
|
+
EXAMPLES::
|
|
88
|
+
|
|
89
|
+
sage: A = ModulesWithBasis(QQ).Filtered().example(); A # needs sage.modules
|
|
90
|
+
An example of a filtered module with basis: the free module on partitions over Rational Field
|
|
91
|
+
sage: TestSuite(A).run() # needs sage.modules
|
|
92
|
+
"""
|
|
93
|
+
CombinatorialFreeModule.__init__(self, base_ring, Partitions(),
|
|
94
|
+
category=FilteredModulesWithBasis(base_ring))
|
|
95
|
+
|
|
96
|
+
# FIXME: this is currently required, because the implementation of ``basis``
|
|
97
|
+
# in CombinatorialFreeModule overrides that of GradedModulesWithBasis
|
|
98
|
+
basis = FilteredModulesWithBasis.ParentMethods.__dict__['basis']
|
|
99
|
+
|
|
100
|
+
# This could be a default implementation
|
|
101
|
+
def degree_on_basis(self, t):
|
|
102
|
+
"""
|
|
103
|
+
The degree of the basis element indexed by the partition ``t``
|
|
104
|
+
in this filtered module.
|
|
105
|
+
|
|
106
|
+
INPUT:
|
|
107
|
+
|
|
108
|
+
- ``t`` -- the index of an element of the basis of this module,
|
|
109
|
+
i.e. a partition
|
|
110
|
+
|
|
111
|
+
OUTPUT: integer; the degree of the corresponding basis element
|
|
112
|
+
|
|
113
|
+
EXAMPLES::
|
|
114
|
+
|
|
115
|
+
sage: # needs sage.modules
|
|
116
|
+
sage: A = ModulesWithBasis(QQ).Filtered().example()
|
|
117
|
+
sage: A.degree_on_basis(Partition((2,1)))
|
|
118
|
+
3
|
|
119
|
+
sage: A.degree_on_basis(Partition((4,2,1,1,1,1)))
|
|
120
|
+
10
|
|
121
|
+
sage: type(A.degree_on_basis(Partition((1,1))))
|
|
122
|
+
<class 'sage.rings.integer.Integer'>
|
|
123
|
+
"""
|
|
124
|
+
return t.size()
|
|
125
|
+
|
|
126
|
+
def _repr_(self):
|
|
127
|
+
"""
|
|
128
|
+
Print representation of ``self``.
|
|
129
|
+
|
|
130
|
+
EXAMPLES::
|
|
131
|
+
|
|
132
|
+
sage: ModulesWithBasis(QQ).Filtered().example() # indirect doctest # needs sage.modules
|
|
133
|
+
An example of a filtered module with basis: the free module on partitions over Rational Field
|
|
134
|
+
"""
|
|
135
|
+
return "An example of a filtered module with basis: the free module on partitions over %s" % self.base_ring()
|
|
136
|
+
|
|
137
|
+
def _repr_term(self, t):
|
|
138
|
+
"""
|
|
139
|
+
Print representation for the basis element represented by the
|
|
140
|
+
partition ``t``.
|
|
141
|
+
|
|
142
|
+
This governs the behavior of the print representation of all elements
|
|
143
|
+
of the algebra.
|
|
144
|
+
|
|
145
|
+
EXAMPLES::
|
|
146
|
+
|
|
147
|
+
sage: A = ModulesWithBasis(QQ).Filtered().example() # needs sage.modules
|
|
148
|
+
sage: A._repr_term(Partition((4,2,1))) # needs sage.modules
|
|
149
|
+
'P[4, 2, 1]'
|
|
150
|
+
"""
|
|
151
|
+
return 'P' + t._repr_()
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
Example = FilteredPartitionModule
|