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,101 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
r"""
|
|
3
|
+
Example of a set with grading
|
|
4
|
+
"""
|
|
5
|
+
from sage.structure.parent import Parent
|
|
6
|
+
from sage.structure.unique_representation import UniqueRepresentation
|
|
7
|
+
from sage.categories.sets_with_grading import SetsWithGrading
|
|
8
|
+
|
|
9
|
+
from sage.rings.integer_ring import IntegerRing
|
|
10
|
+
from sage.sets.finite_enumerated_set import FiniteEnumeratedSet
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class NonNegativeIntegers(UniqueRepresentation, Parent):
|
|
14
|
+
r"""
|
|
15
|
+
Non negative integers graded by themselves.
|
|
16
|
+
|
|
17
|
+
EXAMPLES::
|
|
18
|
+
|
|
19
|
+
sage: E = SetsWithGrading().example(); E
|
|
20
|
+
Non negative integers
|
|
21
|
+
sage: E in Sets().Infinite()
|
|
22
|
+
True
|
|
23
|
+
sage: E.graded_component(0)
|
|
24
|
+
{0}
|
|
25
|
+
sage: E.graded_component(100)
|
|
26
|
+
{100}
|
|
27
|
+
"""
|
|
28
|
+
def __init__(self):
|
|
29
|
+
r"""
|
|
30
|
+
TESTS::
|
|
31
|
+
|
|
32
|
+
sage: TestSuite(SetsWithGrading().example()).run()
|
|
33
|
+
"""
|
|
34
|
+
Parent.__init__(self, category=SetsWithGrading().Infinite(),
|
|
35
|
+
facade=IntegerRing())
|
|
36
|
+
|
|
37
|
+
def an_element(self):
|
|
38
|
+
r"""
|
|
39
|
+
Return 0.
|
|
40
|
+
|
|
41
|
+
EXAMPLES::
|
|
42
|
+
|
|
43
|
+
sage: SetsWithGrading().example().an_element()
|
|
44
|
+
0
|
|
45
|
+
"""
|
|
46
|
+
return 0
|
|
47
|
+
|
|
48
|
+
def _repr_(self):
|
|
49
|
+
r"""
|
|
50
|
+
TESTS::
|
|
51
|
+
|
|
52
|
+
sage: SetsWithGrading().example() # indirect example
|
|
53
|
+
Non negative integers
|
|
54
|
+
"""
|
|
55
|
+
return "Non negative integers"
|
|
56
|
+
|
|
57
|
+
def graded_component(self, grade):
|
|
58
|
+
r"""
|
|
59
|
+
Return the component with grade ``grade``.
|
|
60
|
+
|
|
61
|
+
EXAMPLES::
|
|
62
|
+
|
|
63
|
+
sage: N = SetsWithGrading().example()
|
|
64
|
+
sage: N.graded_component(65)
|
|
65
|
+
{65}
|
|
66
|
+
"""
|
|
67
|
+
return FiniteEnumeratedSet([grade])
|
|
68
|
+
|
|
69
|
+
def grading(self, elt):
|
|
70
|
+
r"""
|
|
71
|
+
Return the grade of ``elt``.
|
|
72
|
+
|
|
73
|
+
EXAMPLES::
|
|
74
|
+
|
|
75
|
+
sage: N = SetsWithGrading().example()
|
|
76
|
+
sage: N.grading(10)
|
|
77
|
+
10
|
|
78
|
+
"""
|
|
79
|
+
return elt
|
|
80
|
+
|
|
81
|
+
def generating_series(self, var='z'):
|
|
82
|
+
r"""
|
|
83
|
+
Return `1 / (1-z)`.
|
|
84
|
+
|
|
85
|
+
EXAMPLES::
|
|
86
|
+
|
|
87
|
+
sage: N = SetsWithGrading().example(); N
|
|
88
|
+
Non negative integers
|
|
89
|
+
sage: f = N.generating_series(); f
|
|
90
|
+
1/(-z + 1)
|
|
91
|
+
sage: LaurentSeriesRing(ZZ,'z')(f)
|
|
92
|
+
1 + z + z^2 + z^3 + z^4 + z^5 + z^6 + z^7 + z^8 + z^9 + z^10 + z^11 + z^12 + z^13 + z^14 + z^15 + z^16 + z^17 + z^18 + z^19 + O(z^20)
|
|
93
|
+
"""
|
|
94
|
+
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
|
|
95
|
+
from sage.rings.integer import Integer
|
|
96
|
+
R = PolynomialRing(IntegerRing(), var)
|
|
97
|
+
z = R.gen()
|
|
98
|
+
return Integer(1) / (Integer(1) - z)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
Example = NonNegativeIntegers
|
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
# sage_setup: distribution = sagemath-categories
|
|
2
|
+
# sage.doctest: needs sage.combinat sage.modules
|
|
3
|
+
r"""
|
|
4
|
+
Examples of parents endowed with multiple realizations
|
|
5
|
+
"""
|
|
6
|
+
#*****************************************************************************
|
|
7
|
+
# Copyright (C) 2008-2009 Nicolas M. Thiery <nthiery at users.sf.net>
|
|
8
|
+
#
|
|
9
|
+
# Distributed under the terms of the GNU General Public License (GPL)
|
|
10
|
+
# http://www.gnu.org/licenses/
|
|
11
|
+
#*****************************************************************************
|
|
12
|
+
|
|
13
|
+
from sage.misc.cachefunc import cached_method
|
|
14
|
+
from sage.misc.bindable_class import BindableClass
|
|
15
|
+
from sage.categories.rings import Rings
|
|
16
|
+
from sage.categories.algebras import Algebras
|
|
17
|
+
from sage.categories.algebras_with_basis import AlgebrasWithBasis
|
|
18
|
+
from sage.categories.realizations import Category_realization_of_parent
|
|
19
|
+
from sage.structure.unique_representation import UniqueRepresentation
|
|
20
|
+
from sage.structure.parent import Parent
|
|
21
|
+
from sage.sets.set import Set
|
|
22
|
+
from sage.combinat.free_module import CombinatorialFreeModule
|
|
23
|
+
from sage.combinat.subset import Subsets
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class SubsetAlgebra(UniqueRepresentation, Parent):
|
|
27
|
+
r"""
|
|
28
|
+
An example of parent endowed with several realizations.
|
|
29
|
+
|
|
30
|
+
We consider an algebra `A(S)` whose bases are indexed by the
|
|
31
|
+
subsets `s` of a given set `S`. We consider three natural basis of
|
|
32
|
+
this algebra: ``F``, ``In``, and ``Out``. In the first basis, the
|
|
33
|
+
product is given by the union of the indexing sets. That is, for any
|
|
34
|
+
`s, t\subset S`
|
|
35
|
+
|
|
36
|
+
.. MATH::
|
|
37
|
+
|
|
38
|
+
F_s F_t = F_{s\cup t}
|
|
39
|
+
|
|
40
|
+
The ``In`` basis and ``Out`` basis are defined respectively by:
|
|
41
|
+
|
|
42
|
+
.. MATH::
|
|
43
|
+
|
|
44
|
+
In_s = \sum_{t\subset s} F_t
|
|
45
|
+
\qquad\text{and}\qquad
|
|
46
|
+
F_s = \sum_{t\supset s} Out_t
|
|
47
|
+
|
|
48
|
+
Each such basis gives a realization of `A`, where the elements are
|
|
49
|
+
represented by their expansion in this basis.
|
|
50
|
+
|
|
51
|
+
This parent, and its code, demonstrate how to implement this
|
|
52
|
+
algebra and its three realizations, with coercions and mixed
|
|
53
|
+
arithmetic between them.
|
|
54
|
+
|
|
55
|
+
.. SEEALSO::
|
|
56
|
+
|
|
57
|
+
- :func:`Sets().WithRealizations <sage.categories.with_realizations.WithRealizations>`
|
|
58
|
+
- the `Implementing Algebraic Structures
|
|
59
|
+
<../../../../../thematic_tutorials/tutorial-implementing-algebraic-structures>`_
|
|
60
|
+
thematic tutorial.
|
|
61
|
+
|
|
62
|
+
EXAMPLES::
|
|
63
|
+
|
|
64
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
65
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
66
|
+
sage: A.base_ring()
|
|
67
|
+
Rational Field
|
|
68
|
+
|
|
69
|
+
The three bases of ``A``::
|
|
70
|
+
|
|
71
|
+
sage: F = A.F() ; F
|
|
72
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
73
|
+
sage: In = A.In() ; In
|
|
74
|
+
The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
75
|
+
sage: Out = A.Out(); Out
|
|
76
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
77
|
+
|
|
78
|
+
One can quickly define all the bases using the following shortcut::
|
|
79
|
+
|
|
80
|
+
sage: A.inject_shorthands()
|
|
81
|
+
Defining F as shorthand for The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
82
|
+
Defining In as shorthand for The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
83
|
+
Defining Out as shorthand for The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
84
|
+
|
|
85
|
+
Accessing the basis elements is done with :meth:`basis()` method::
|
|
86
|
+
|
|
87
|
+
sage: F.basis().list()
|
|
88
|
+
[F[{}], F[{1}], F[{2}], F[{3}], F[{1, 2}], F[{1, 3}], F[{2, 3}], F[{1, 2, 3}]]
|
|
89
|
+
|
|
90
|
+
To access a particular basis element, you can use the :meth:`from_set`
|
|
91
|
+
method::
|
|
92
|
+
|
|
93
|
+
sage: F.from_set(2,3)
|
|
94
|
+
F[{2, 3}]
|
|
95
|
+
sage: In.from_set(1,3)
|
|
96
|
+
In[{1, 3}]
|
|
97
|
+
|
|
98
|
+
or as a convenient shorthand, one can use the following notation::
|
|
99
|
+
|
|
100
|
+
sage: F[2,3]
|
|
101
|
+
F[{2, 3}]
|
|
102
|
+
sage: In[1,3]
|
|
103
|
+
In[{1, 3}]
|
|
104
|
+
|
|
105
|
+
Some conversions::
|
|
106
|
+
|
|
107
|
+
sage: F(In[2,3])
|
|
108
|
+
F[{}] + F[{2}] + F[{3}] + F[{2, 3}]
|
|
109
|
+
sage: In(F[2,3])
|
|
110
|
+
In[{}] - In[{2}] - In[{3}] + In[{2, 3}]
|
|
111
|
+
|
|
112
|
+
sage: Out(F[3])
|
|
113
|
+
Out[{3}] + Out[{1, 3}] + Out[{2, 3}] + Out[{1, 2, 3}]
|
|
114
|
+
sage: F(Out[3])
|
|
115
|
+
F[{3}] - F[{1, 3}] - F[{2, 3}] + F[{1, 2, 3}]
|
|
116
|
+
|
|
117
|
+
sage: Out(In[2,3])
|
|
118
|
+
Out[{}] + Out[{1}] + 2*Out[{2}] + 2*Out[{3}] + 2*Out[{1, 2}] + 2*Out[{1, 3}] + 4*Out[{2, 3}] + 4*Out[{1, 2, 3}]
|
|
119
|
+
|
|
120
|
+
We can now mix expressions::
|
|
121
|
+
|
|
122
|
+
sage: (1 + Out[1]) * In[2,3]
|
|
123
|
+
Out[{}] + 2*Out[{1}] + 2*Out[{2}] + 2*Out[{3}] + 2*Out[{1, 2}] + 2*Out[{1, 3}] + 4*Out[{2, 3}] + 4*Out[{1, 2, 3}]
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
def __init__(self, R, S):
|
|
127
|
+
r"""
|
|
128
|
+
EXAMPLES::
|
|
129
|
+
|
|
130
|
+
sage: from sage.categories.examples.with_realizations import SubsetAlgebra
|
|
131
|
+
sage: A = SubsetAlgebra(QQ, Set((1,2,3))); A
|
|
132
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
133
|
+
sage: Sets().WithRealizations().example() is A
|
|
134
|
+
True
|
|
135
|
+
sage: TestSuite(A).run()
|
|
136
|
+
|
|
137
|
+
TESTS::
|
|
138
|
+
|
|
139
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
140
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
141
|
+
sage: F, In, Out = A.realizations()
|
|
142
|
+
sage: type(F.coerce_map_from(In))
|
|
143
|
+
<class 'sage.modules.with_basis.morphism.TriangularModuleMorphismByLinearity_with_category'>
|
|
144
|
+
sage: type(In.coerce_map_from(F))
|
|
145
|
+
<class 'sage.modules.with_basis.morphism.TriangularModuleMorphismByLinearity_with_category'>
|
|
146
|
+
sage: type(F.coerce_map_from(Out))
|
|
147
|
+
<class 'sage.modules.with_basis.morphism.TriangularModuleMorphismByLinearity_with_category'>
|
|
148
|
+
sage: type(Out.coerce_map_from(F))
|
|
149
|
+
<class 'sage.modules.with_basis.morphism.TriangularModuleMorphismByLinearity_with_category'>
|
|
150
|
+
sage: In.coerce_map_from(Out)
|
|
151
|
+
Composite map:
|
|
152
|
+
From: The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
153
|
+
To: The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
154
|
+
Defn: Generic morphism:
|
|
155
|
+
From: The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
156
|
+
To: The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
157
|
+
then
|
|
158
|
+
Generic morphism:
|
|
159
|
+
From: The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
160
|
+
To: The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
161
|
+
sage: Out.coerce_map_from(In)
|
|
162
|
+
Composite map:
|
|
163
|
+
From: The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
164
|
+
To: The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
165
|
+
Defn: Generic morphism:
|
|
166
|
+
From: The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
167
|
+
To: The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
168
|
+
then
|
|
169
|
+
Generic morphism:
|
|
170
|
+
From: The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
171
|
+
To: The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
172
|
+
"""
|
|
173
|
+
assert R in Rings()
|
|
174
|
+
self._base = R # Won't be needed when CategoryObject won't override anymore base_ring
|
|
175
|
+
self._S = S
|
|
176
|
+
Parent.__init__(self, category=Algebras(R).Commutative().WithRealizations())
|
|
177
|
+
|
|
178
|
+
# Initializes the bases and change of bases of ``self``
|
|
179
|
+
|
|
180
|
+
F = self.F()
|
|
181
|
+
In = self.In()
|
|
182
|
+
Out = self.Out()
|
|
183
|
+
|
|
184
|
+
category = self.Bases()
|
|
185
|
+
key = self.indices_key
|
|
186
|
+
In_to_F = In.module_morphism(F.sum_of_monomials * Subsets,
|
|
187
|
+
codomain=F, category=category,
|
|
188
|
+
triangular='upper', unitriangular=True,
|
|
189
|
+
key=key)
|
|
190
|
+
In_to_F .register_as_coercion()
|
|
191
|
+
(~In_to_F).register_as_coercion()
|
|
192
|
+
|
|
193
|
+
F_to_Out = F.module_morphism(Out.sum_of_monomials * self.supsets,
|
|
194
|
+
codomain=Out, category=category,
|
|
195
|
+
triangular='lower', unitriangular=True,
|
|
196
|
+
key=key)
|
|
197
|
+
F_to_Out .register_as_coercion()
|
|
198
|
+
(~F_to_Out).register_as_coercion()
|
|
199
|
+
|
|
200
|
+
_shorthands = ["F", "In", "Out"]
|
|
201
|
+
|
|
202
|
+
def a_realization(self):
|
|
203
|
+
r"""
|
|
204
|
+
Return the default realization of ``self``.
|
|
205
|
+
|
|
206
|
+
EXAMPLES::
|
|
207
|
+
|
|
208
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
209
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
210
|
+
sage: A.a_realization()
|
|
211
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
212
|
+
"""
|
|
213
|
+
return self.F()
|
|
214
|
+
|
|
215
|
+
def base_set(self):
|
|
216
|
+
r"""
|
|
217
|
+
EXAMPLES::
|
|
218
|
+
|
|
219
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
220
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
221
|
+
sage: A.base_set()
|
|
222
|
+
{1, 2, 3}
|
|
223
|
+
"""
|
|
224
|
+
return self._S
|
|
225
|
+
|
|
226
|
+
def indices(self):
|
|
227
|
+
r"""
|
|
228
|
+
The objects that index the basis elements of this algebra.
|
|
229
|
+
|
|
230
|
+
EXAMPLES::
|
|
231
|
+
|
|
232
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
233
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
234
|
+
sage: A.indices()
|
|
235
|
+
Subsets of {1, 2, 3}
|
|
236
|
+
"""
|
|
237
|
+
return Subsets(self._S)
|
|
238
|
+
|
|
239
|
+
def indices_key(self, x):
|
|
240
|
+
r"""
|
|
241
|
+
A key function on a set which gives a linear extension
|
|
242
|
+
of the inclusion order.
|
|
243
|
+
|
|
244
|
+
INPUT:
|
|
245
|
+
|
|
246
|
+
- ``x`` -- set
|
|
247
|
+
|
|
248
|
+
EXAMPLES::
|
|
249
|
+
|
|
250
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
251
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
252
|
+
sage: sorted(A.indices(), key=A.indices_key)
|
|
253
|
+
[{}, {1}, {2}, {3}, {1, 2}, {1, 3}, {2, 3}, {1, 2, 3}]
|
|
254
|
+
"""
|
|
255
|
+
return (len(x), list(x))
|
|
256
|
+
|
|
257
|
+
def supsets(self, set):
|
|
258
|
+
r"""
|
|
259
|
+
Return all the subsets of `S` containing ``set``.
|
|
260
|
+
|
|
261
|
+
INPUT:
|
|
262
|
+
|
|
263
|
+
- ``set`` -- a subset of the base set `S` of ``self``
|
|
264
|
+
|
|
265
|
+
EXAMPLES::
|
|
266
|
+
|
|
267
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
268
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
269
|
+
sage: A.supsets(Set((2,)))
|
|
270
|
+
[{1, 2, 3}, {2, 3}, {1, 2}, {2}]
|
|
271
|
+
"""
|
|
272
|
+
S = self.base_set()
|
|
273
|
+
return [S.difference(s) for s in Subsets(S.difference(set))]
|
|
274
|
+
|
|
275
|
+
def _repr_(self):
|
|
276
|
+
r"""
|
|
277
|
+
EXAMPLES::
|
|
278
|
+
|
|
279
|
+
sage: Sets().WithRealizations().example() # indirect doctest
|
|
280
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
281
|
+
"""
|
|
282
|
+
return "The subset algebra of %s over %s" % (self.base_set(), self.base_ring())
|
|
283
|
+
|
|
284
|
+
class Bases(Category_realization_of_parent):
|
|
285
|
+
r"""
|
|
286
|
+
The category of the realizations of the subset algebra
|
|
287
|
+
"""
|
|
288
|
+
|
|
289
|
+
def super_categories(self):
|
|
290
|
+
r"""
|
|
291
|
+
EXAMPLES::
|
|
292
|
+
|
|
293
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
294
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
295
|
+
sage: C = A.Bases(); C
|
|
296
|
+
Category of bases of The subset algebra of {1, 2, 3} over Rational Field
|
|
297
|
+
sage: C.super_categories()
|
|
298
|
+
[Category of realizations of The subset algebra of {1, 2, 3} over Rational Field,
|
|
299
|
+
Join of Category of algebras with basis over Rational Field and
|
|
300
|
+
Category of commutative algebras over Rational Field and
|
|
301
|
+
Category of realizations of unital magmas]
|
|
302
|
+
"""
|
|
303
|
+
A = self.base()
|
|
304
|
+
category = Algebras(A.base_ring()).Commutative()
|
|
305
|
+
return [A.Realizations(),
|
|
306
|
+
category.Realizations().WithBasis()]
|
|
307
|
+
|
|
308
|
+
class ParentMethods:
|
|
309
|
+
|
|
310
|
+
def from_set(self, *args):
|
|
311
|
+
r"""
|
|
312
|
+
Construct the monomial indexed by the set containing the
|
|
313
|
+
elements passed as arguments.
|
|
314
|
+
|
|
315
|
+
EXAMPLES::
|
|
316
|
+
|
|
317
|
+
sage: In = Sets().WithRealizations().example().In(); In
|
|
318
|
+
The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
319
|
+
sage: In.from_set(2,3)
|
|
320
|
+
In[{2, 3}]
|
|
321
|
+
|
|
322
|
+
As a shorthand, one can construct elements using the following
|
|
323
|
+
notation::
|
|
324
|
+
|
|
325
|
+
sage: In[2,3]
|
|
326
|
+
In[{2, 3}]
|
|
327
|
+
"""
|
|
328
|
+
return self.monomial(Set(args))
|
|
329
|
+
|
|
330
|
+
def __getitem__(self, s):
|
|
331
|
+
r"""
|
|
332
|
+
This method implements a convenient shorthand for constructing
|
|
333
|
+
basis elements of this algebra.
|
|
334
|
+
|
|
335
|
+
EXAMPLES::
|
|
336
|
+
|
|
337
|
+
sage: A = Sets().WithRealizations().example()
|
|
338
|
+
sage: In = A.In()
|
|
339
|
+
sage: In[2,3]
|
|
340
|
+
In[{2, 3}]
|
|
341
|
+
sage: F = A.F()
|
|
342
|
+
sage: F[1,3]
|
|
343
|
+
F[{1, 3}]
|
|
344
|
+
"""
|
|
345
|
+
from sage.rings.integer import Integer
|
|
346
|
+
if isinstance(s, Integer):
|
|
347
|
+
return self.from_set(*(s,))
|
|
348
|
+
else:
|
|
349
|
+
return self.from_set(*s)
|
|
350
|
+
|
|
351
|
+
# This could go in the super category VectorSpaces().Realizations()
|
|
352
|
+
def _repr_(self):
|
|
353
|
+
r"""
|
|
354
|
+
EXAMPLES::
|
|
355
|
+
|
|
356
|
+
sage: Sets().WithRealizations().example().In() # indirect doctest
|
|
357
|
+
The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
358
|
+
"""
|
|
359
|
+
return "%s in the %s basis" % (self.realization_of(), self._realization_name())
|
|
360
|
+
|
|
361
|
+
# Could this go in the super category Monoids().Realizations() ?
|
|
362
|
+
@cached_method
|
|
363
|
+
def one(self):
|
|
364
|
+
r"""
|
|
365
|
+
Return the unit of this algebra.
|
|
366
|
+
|
|
367
|
+
This default implementation takes the unit in the
|
|
368
|
+
fundamental basis, and coerces it in ``self``.
|
|
369
|
+
|
|
370
|
+
EXAMPLES::
|
|
371
|
+
|
|
372
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
373
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
374
|
+
sage: In = A.In(); Out = A.Out()
|
|
375
|
+
sage: In.one()
|
|
376
|
+
In[{}]
|
|
377
|
+
sage: Out.one()
|
|
378
|
+
Out[{}] + Out[{1}] + Out[{2}] + Out[{3}] + Out[{1, 2}] + Out[{1, 3}] + Out[{2, 3}] + Out[{1, 2, 3}]
|
|
379
|
+
"""
|
|
380
|
+
return self(self.realization_of().F().one())
|
|
381
|
+
|
|
382
|
+
class Fundamental(CombinatorialFreeModule, BindableClass):
|
|
383
|
+
r"""
|
|
384
|
+
The Subset algebra, in the fundamental basis.
|
|
385
|
+
|
|
386
|
+
INPUT:
|
|
387
|
+
|
|
388
|
+
- ``A`` -- a parent with realization in :class:`SubsetAlgebra`
|
|
389
|
+
|
|
390
|
+
EXAMPLES::
|
|
391
|
+
|
|
392
|
+
sage: A = Sets().WithRealizations().example()
|
|
393
|
+
sage: A.F()
|
|
394
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
395
|
+
sage: A.Fundamental()
|
|
396
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
397
|
+
"""
|
|
398
|
+
|
|
399
|
+
def __init__(self, A):
|
|
400
|
+
r"""
|
|
401
|
+
EXAMPLES::
|
|
402
|
+
|
|
403
|
+
sage: A = Sets().WithRealizations().example(); A
|
|
404
|
+
The subset algebra of {1, 2, 3} over Rational Field
|
|
405
|
+
sage: F = A.F(); F
|
|
406
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
407
|
+
sage: TestSuite(F).run()
|
|
408
|
+
"""
|
|
409
|
+
CombinatorialFreeModule.__init__(self,
|
|
410
|
+
A.base_ring(), A.indices(),
|
|
411
|
+
category=A.Bases(), prefix='F', sorting_key=A.indices_key)
|
|
412
|
+
|
|
413
|
+
def product_on_basis(self, left, right):
|
|
414
|
+
r"""
|
|
415
|
+
Product of basis elements, as per :meth:`AlgebrasWithBasis.ParentMethods.product_on_basis`.
|
|
416
|
+
|
|
417
|
+
INPUT:
|
|
418
|
+
|
|
419
|
+
- ``left``, ``right`` -- sets indexing basis elements
|
|
420
|
+
|
|
421
|
+
EXAMPLES::
|
|
422
|
+
|
|
423
|
+
sage: F = Sets().WithRealizations().example().F(); F
|
|
424
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
425
|
+
sage: S = F.basis().keys(); S
|
|
426
|
+
Subsets of {1, 2, 3}
|
|
427
|
+
sage: F.product_on_basis(S([]), S([]))
|
|
428
|
+
F[{}]
|
|
429
|
+
sage: F.product_on_basis(S({1}), S({3}))
|
|
430
|
+
F[{1, 3}]
|
|
431
|
+
sage: F.product_on_basis(S({1,2}), S({2,3}))
|
|
432
|
+
F[{1, 2, 3}]
|
|
433
|
+
"""
|
|
434
|
+
return self.monomial(left.union(right))
|
|
435
|
+
|
|
436
|
+
def one_basis(self):
|
|
437
|
+
r"""
|
|
438
|
+
Return the index of the basis element which is equal to '1'.
|
|
439
|
+
|
|
440
|
+
EXAMPLES::
|
|
441
|
+
|
|
442
|
+
sage: F = Sets().WithRealizations().example().F(); F
|
|
443
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Fundamental basis
|
|
444
|
+
sage: F.one_basis()
|
|
445
|
+
{}
|
|
446
|
+
sage: F.one()
|
|
447
|
+
F[{}]
|
|
448
|
+
"""
|
|
449
|
+
return Set([])
|
|
450
|
+
|
|
451
|
+
# Bypass the definition in SubsetAlgebra.Bases.ParentMethods
|
|
452
|
+
# by the usual one from basis; alternatively one could just
|
|
453
|
+
# define one instead of one_basis.
|
|
454
|
+
one = AlgebrasWithBasis.ParentMethods.one
|
|
455
|
+
|
|
456
|
+
F = Fundamental
|
|
457
|
+
|
|
458
|
+
class In(CombinatorialFreeModule, BindableClass):
|
|
459
|
+
r"""
|
|
460
|
+
The Subset Algebra, in the ``In`` basis.
|
|
461
|
+
|
|
462
|
+
INPUT:
|
|
463
|
+
|
|
464
|
+
- ``A`` -- a parent with realization in :class:`SubsetAlgebra`
|
|
465
|
+
|
|
466
|
+
EXAMPLES::
|
|
467
|
+
|
|
468
|
+
sage: A = Sets().WithRealizations().example()
|
|
469
|
+
sage: A.In()
|
|
470
|
+
The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
471
|
+
|
|
472
|
+
TESTS:
|
|
473
|
+
|
|
474
|
+
The product in this basis is computed by converting to the fundamental
|
|
475
|
+
basis, computing the product there, and then converting back::
|
|
476
|
+
|
|
477
|
+
sage: In = Sets().WithRealizations().example().In(); In
|
|
478
|
+
The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
479
|
+
sage: x = In.an_element()
|
|
480
|
+
sage: y = In.an_element()
|
|
481
|
+
sage: In.product
|
|
482
|
+
<bound method ....product_by_coercion ...>
|
|
483
|
+
sage: In.product.__module__
|
|
484
|
+
'sage.categories.magmas'
|
|
485
|
+
sage: In.product(x, y)
|
|
486
|
+
-21*In[{}] - 2*In[{1}] + 19*In[{2}] + 53*In[{1, 2}]
|
|
487
|
+
"""
|
|
488
|
+
|
|
489
|
+
def __init__(self, A):
|
|
490
|
+
r"""
|
|
491
|
+
EXAMPLES::
|
|
492
|
+
|
|
493
|
+
sage: In = Sets().WithRealizations().example().In(); In
|
|
494
|
+
The subset algebra of {1, 2, 3} over Rational Field in the In basis
|
|
495
|
+
sage: TestSuite(In).run()
|
|
496
|
+
"""
|
|
497
|
+
CombinatorialFreeModule.__init__(self,
|
|
498
|
+
A.base_ring(), A.indices(),
|
|
499
|
+
category=A.Bases(), prefix='In', sorting_key=A.indices_key)
|
|
500
|
+
|
|
501
|
+
class Out(CombinatorialFreeModule, BindableClass):
|
|
502
|
+
r"""
|
|
503
|
+
The Subset Algebra, in the `Out` basis.
|
|
504
|
+
|
|
505
|
+
INPUT:
|
|
506
|
+
|
|
507
|
+
- ``A`` -- a parent with realization in :class:`SubsetAlgebra`
|
|
508
|
+
|
|
509
|
+
EXAMPLES::
|
|
510
|
+
|
|
511
|
+
sage: A = Sets().WithRealizations().example()
|
|
512
|
+
sage: A.Out()
|
|
513
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
514
|
+
|
|
515
|
+
TESTS:
|
|
516
|
+
|
|
517
|
+
The product in this basis is computed by converting to the fundamental
|
|
518
|
+
basis, computing the product there, and then converting back::
|
|
519
|
+
|
|
520
|
+
sage: Out = Sets().WithRealizations().example().Out(); Out
|
|
521
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
522
|
+
sage: x = Out.an_element()
|
|
523
|
+
sage: y = Out.an_element()
|
|
524
|
+
sage: Out.product
|
|
525
|
+
<bound method ....product_by_coercion ...>
|
|
526
|
+
sage: Out.product.__module__
|
|
527
|
+
'sage.categories.magmas'
|
|
528
|
+
sage: Out.product(x, y)
|
|
529
|
+
Out[{}] + 4*Out[{1}] + 9*Out[{2}] + Out[{1, 2}]
|
|
530
|
+
"""
|
|
531
|
+
|
|
532
|
+
def __init__(self, A):
|
|
533
|
+
r"""
|
|
534
|
+
EXAMPLES::
|
|
535
|
+
|
|
536
|
+
sage: Out = Sets().WithRealizations().example().Out(); Out
|
|
537
|
+
The subset algebra of {1, 2, 3} over Rational Field in the Out basis
|
|
538
|
+
sage: TestSuite(Out).run()
|
|
539
|
+
"""
|
|
540
|
+
CombinatorialFreeModule.__init__(self,
|
|
541
|
+
A.base_ring(), A.indices(),
|
|
542
|
+
category=A.Bases(), prefix='Out', sorting_key=A.indices_key)
|