Magmas and Additive Magmas¶
- class sage.categories.magmas_and_additive_magmas.MagmasAndAdditiveMagmas[source]¶
- Bases: - Category_singleton- The category of sets \((S, +, *)\) with an additive operation ‘+’ and a multiplicative operation \(*\) - EXAMPLES: - sage: from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas sage: C = MagmasAndAdditiveMagmas(); C Category of magmas and additive magmas - >>> from sage.all import * >>> from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas >>> C = MagmasAndAdditiveMagmas(); C Category of magmas and additive magmas - This is the base category for the categories of rings and their variants: - sage: C.Distributive() Category of distributive magmas and additive magmas sage: C.Distributive().Associative().AdditiveAssociative().AdditiveCommutative().AdditiveUnital().AdditiveInverse() Category of rngs sage: C.Distributive().Associative().AdditiveAssociative().AdditiveCommutative().AdditiveUnital().Unital() Category of semirings sage: C.Distributive().Associative().AdditiveAssociative().AdditiveCommutative().AdditiveUnital().AdditiveInverse().Unital() Category of rings - >>> from sage.all import * >>> C.Distributive() Category of distributive magmas and additive magmas >>> C.Distributive().Associative().AdditiveAssociative().AdditiveCommutative().AdditiveUnital().AdditiveInverse() Category of rngs >>> C.Distributive().Associative().AdditiveAssociative().AdditiveCommutative().AdditiveUnital().Unital() Category of semirings >>> C.Distributive().Associative().AdditiveAssociative().AdditiveCommutative().AdditiveUnital().AdditiveInverse().Unital() Category of rings - This category is really meant to represent the intersection of the categories of - Magmasand- AdditiveMagmas; however Sage’s infrastructure does not allow yet to model this:- sage: Magmas() & AdditiveMagmas() Join of Category of magmas and Category of additive magmas sage: Magmas() & AdditiveMagmas() # todo: not implemented Category of magmas and additive magmas - >>> from sage.all import * >>> Magmas() & AdditiveMagmas() Join of Category of magmas and Category of additive magmas >>> Magmas() & AdditiveMagmas() # todo: not implemented Category of magmas and additive magmas - class CartesianProducts(category, *args)[source]¶
- Bases: - CartesianProductsCategory
 - Distributive[source]¶
- alias of - DistributiveMagmasAndAdditiveMagmas
 - class SubcategoryMethods[source]¶
- Bases: - object- Distributive()[source]¶
- Return the full subcategory of the objects of - selfwhere \(*\) is distributive on \(+\).- A - magmaand- additive magma\(M\) is distributive if, for all \(x,y,z \in M\),\[x * (y+z) = x*y + x*z \text{ and } (x+y) * z = x*z + y*z\]- EXAMPLES: - sage: from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas sage: C = MagmasAndAdditiveMagmas().Distributive(); C Category of distributive magmas and additive magmas - >>> from sage.all import * >>> from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas >>> C = MagmasAndAdditiveMagmas().Distributive(); C Category of distributive magmas and additive magmas - Note - Given that Sage does not know that - MagmasAndAdditiveMagmasis the intersection of- Magmasand- AdditiveMagmas, this method is not available for:- sage: Magmas() & AdditiveMagmas() Join of Category of magmas and Category of additive magmas - >>> from sage.all import * >>> Magmas() & AdditiveMagmas() Join of Category of magmas and Category of additive magmas - Still, the natural syntax works: - sage: (Magmas() & AdditiveMagmas()).Distributive() Category of distributive magmas and additive magmas - >>> from sage.all import * >>> (Magmas() & AdditiveMagmas()).Distributive() Category of distributive magmas and additive magmas - thanks to a workaround implemented in - Magmas.SubcategoryMethods.Distributive():- sage: (Magmas() & AdditiveMagmas()).Distributive.__module__ 'sage.categories.magmas' - >>> from sage.all import * >>> (Magmas() & AdditiveMagmas()).Distributive.__module__ 'sage.categories.magmas' 
 
 - additional_structure()[source]¶
- Return - None.- Indeed, this category is meant to represent the join of - AdditiveMagmasand- Magmas. As such, it defines no additional structure.- See also - EXAMPLES: - sage: from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas sage: MagmasAndAdditiveMagmas().additional_structure() - >>> from sage.all import * >>> from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas >>> MagmasAndAdditiveMagmas().additional_structure() 
 - super_categories()[source]¶
- EXAMPLES: - sage: from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas sage: MagmasAndAdditiveMagmas().super_categories() [Category of magmas, Category of additive magmas] - >>> from sage.all import * >>> from sage.categories.magmas_and_additive_magmas import MagmasAndAdditiveMagmas >>> MagmasAndAdditiveMagmas().super_categories() [Category of magmas, Category of additive magmas]