Distributive Magmas and Additive Magmas#

class sage.categories.distributive_magmas_and_additive_magmas.DistributiveMagmasAndAdditiveMagmas(base_category)[source]#

Bases: CategoryWithAxiom_singleton

The category of sets \((S,+,*)\) with \(*\) distributing on \(+\).

This is similar to a ring, but \(+\) and \(*\) are only required to be (additive) magmas.

EXAMPLES:

sage: from sage.categories.distributive_magmas_and_additive_magmas import DistributiveMagmasAndAdditiveMagmas
sage: C = DistributiveMagmasAndAdditiveMagmas(); C
Category of distributive magmas and additive magmas
sage: C.super_categories()
[Category of magmas and additive magmas]
>>> from sage.all import *
>>> from sage.categories.distributive_magmas_and_additive_magmas import DistributiveMagmasAndAdditiveMagmas
>>> C = DistributiveMagmasAndAdditiveMagmas(); C
Category of distributive magmas and additive magmas
>>> C.super_categories()
[Category of magmas and additive magmas]
class AdditiveAssociative(base_category)[source]#

Bases: CategoryWithAxiom_singleton

class AdditiveCommutative(base_category)[source]#

Bases: CategoryWithAxiom_singleton

class AdditiveUnital(base_category)[source]#

Bases: CategoryWithAxiom_singleton

class Associative(base_category)[source]#

Bases: CategoryWithAxiom_singleton

AdditiveInverse[source]#

alias of Rngs

Unital[source]#

alias of Semirings

class CartesianProducts(category, *args)[source]#

Bases: CartesianProductsCategory

extra_super_categories()[source]#

Implement the fact that a Cartesian product of magmas distributing over additive magmas is a magma distributing over an additive magma.

EXAMPLES:

sage: C = (Magmas() & AdditiveMagmas()).Distributive().CartesianProducts()
sage: C.extra_super_categories()
[Category of distributive magmas and additive magmas]
sage: C.axioms()
frozenset({'Distributive'})
>>> from sage.all import *
>>> C = (Magmas() & AdditiveMagmas()).Distributive().CartesianProducts()
>>> C.extra_super_categories()
[Category of distributive magmas and additive magmas]
>>> C.axioms()
frozenset({'Distributive'})
class ParentMethods[source]#

Bases: object