### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »

# Additive semigroups

class `sage.categories.additive_semigroups.``AdditiveSemigroups`(base_category)

  Bases: `sage.categories.category_with_axiom.CategoryWithAxiom_singleton`

  The category of additive semigroups.

  An additive semigroup is an associative `additive magma`, that is a set endowed with an operation \(+\) which is associative.

  EXAMPLES:

      sage: from sage.categories.additive_semigroups import AdditiveSemigroups
      sage: C = AdditiveSemigroups(); C
      Category of additive semigroups
      sage: C.super_categories()
      [Category of additive magmas]
      sage: C.all_super_categories()
      [Category of additive semigroups,
       Category of additive magmas,
       Category of sets,
       Category of sets with partial maps,
       Category of objects]

      sage: C.axioms()
      frozenset({'AdditiveAssociative'})
      sage: C is AdditiveMagmas().AdditiveAssociative()
      True

  TESTS:

      sage: TestSuite(C).run()

  `AdditiveCommutative`

    alias of `CommutativeAdditiveSemigroups`

  `AdditiveUnital`

    alias of `AdditiveMonoids`

  class `Algebras`(category, *args)

    Bases: `sage.categories.algebra_functor.AlgebrasCategory`

    TESTS:

        sage: from sage.categories.covariant_functorial_construction import CovariantConstructionCategory
        sage: class FooBars(CovariantConstructionCategory):
        ...       _functor_category = "FooBars"
        sage: Category.FooBars = lambda self: FooBars.category_of(self)
        sage: C = FooBars(ModulesWithBasis(ZZ))
        sage: C
        Category of foo bars of modules with basis over Integer Ring
        sage: C.base_category()
        Category of modules with basis over Integer Ring
        sage: latex(C)
        \mathbf{FooBars}(\mathbf{ModulesWithBasis}_{\Bold{Z}})
        sage: import __main__; __main__.FooBars = FooBars # Fake FooBars being defined in a python module
        sage: TestSuite(C).run()

    class `ParentMethods`
      `algebra_generators`()

        Return the generators of this algebra, as per `MagmaticAlgebras.ParentMethods.algebra_generators()`.

        They correspond to the generators of the additive semigroup.

        EXAMPLES:

            sage: S = CommutativeAdditiveSemigroups().example(); S
            An example of a commutative monoid: the free commutative monoid generated by ('a', 'b', 'c', 'd')
            sage: A = S.algebra(QQ)
            sage: A.algebra_generators()
            Finite family {0: B[a], 1: B[b], 2: B[c], 3: B[d]}

      `product_on_basis`(g1, g2)

        Product, on basis elements, as per `MagmaticAlgebras.WithBasis.ParentMethods.product_on_basis()`.

        The product of two basis elements is induced by the addition of the corresponding elements of the group.

        EXAMPLES:

            sage: S = CommutativeAdditiveSemigroups().example(); S
            An example of a commutative monoid: the free commutative monoid generated by ('a', 'b', 'c', 'd')
            sage: A = S.algebra(QQ)
            sage: a,b,c,d = A.algebra_generators()
            sage: a * b + b * d * c
            B[c + b + d] + B[a + b]

    `AdditiveSemigroups.Algebras.``extra_super_categories`()

      EXAMPLES:

          sage: from sage.categories.additive_semigroups import AdditiveSemigroups
          sage: AdditiveSemigroups().Algebras(QQ).extra_super_categories()
          [Category of semigroups]
          sage: CommutativeAdditiveSemigroups().Algebras(QQ).super_categories()
          [Category of additive semigroup algebras over Rational Field,
           Category of additive commutative additive magma algebras over Rational Field]

  class `AdditiveSemigroups.``CartesianProducts`(category, *args)

    Bases: `sage.categories.cartesian_product.CartesianProductsCategory`

    TESTS:

        sage: from sage.categories.covariant_functorial_construction import CovariantConstructionCategory
        sage: class FooBars(CovariantConstructionCategory):
        ...       _functor_category = "FooBars"
        sage: Category.FooBars = lambda self: FooBars.category_of(self)
        sage: C = FooBars(ModulesWithBasis(ZZ))
        sage: C
        Category of foo bars of modules with basis over Integer Ring
        sage: C.base_category()
        Category of modules with basis over Integer Ring
        sage: latex(C)
        \mathbf{FooBars}(\mathbf{ModulesWithBasis}_{\Bold{Z}})
        sage: import __main__; __main__.FooBars = FooBars # Fake FooBars being defined in a python module
        sage: TestSuite(C).run()

    `extra_super_categories`()

      Implement the fact that a cartesian product of additive semigroups is an additive semigroup.

      EXAMPLES:

          sage: from sage.categories.additive_semigroups import AdditiveSemigroups
          sage: C = AdditiveSemigroups().CartesianProducts()
          sage: C.extra_super_categories()
          [Category of additive semigroups]
          sage: C.axioms()
          frozenset({'AdditiveAssociative'})

  class `AdditiveSemigroups.``Homsets`(category, *args)

    Bases: `sage.categories.homsets.HomsetsCategory`

    TESTS:

        sage: from sage.categories.covariant_functorial_construction import CovariantConstructionCategory
        sage: class FooBars(CovariantConstructionCategory):
        ...       _functor_category = "FooBars"
        sage: Category.FooBars = lambda self: FooBars.category_of(self)
        sage: C = FooBars(ModulesWithBasis(ZZ))
        sage: C
        Category of foo bars of modules with basis over Integer Ring
        sage: C.base_category()
        Category of modules with basis over Integer Ring
        sage: latex(C)
        \mathbf{FooBars}(\mathbf{ModulesWithBasis}_{\Bold{Z}})
        sage: import __main__; __main__.FooBars = FooBars # Fake FooBars being defined in a python module
        sage: TestSuite(C).run()

    `extra_super_categories`()

      Implement the fact that a homset between two semigroups is a semigroup.

      EXAMPLES:

          sage: from sage.categories.additive_semigroups import AdditiveSemigroups
          sage: AdditiveSemigroups().Homsets().extra_super_categories()
          [Category of additive semigroups]
          sage: AdditiveSemigroups().Homsets().super_categories()
          [Category of homsets of additive magmas, Category of additive semigroups]

  class `AdditiveSemigroups.``ParentMethods`

### Navigation

- index
- modules |
- next |
- previous |
- Category Theory »