# Distributive Magmas and Additive Magmas¶

class sage.categories.distributive_magmas_and_additive_magmas.DistributiveMagmasAndAdditiveMagmas(base_category)

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]

class AdditiveAssociative(base_category)
class AdditiveCommutative(base_category)
class AdditiveUnital(base_category)
class Associative(base_category)
AdditiveInverse
Unital
class CartesianProducts(category, *args)
extra_super_categories()

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'})

class ParentMethods