### Navigation

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

# Algebras

AUTHORS:

- David Kohel & William Stein (2005): initial revision
- Nicolas M. Thiery (2008-2011): rewrote for the category framework

class `sage.categories.algebras.``Algebras`(base_category)

  Bases: `sage.categories.category_with_axiom.CategoryWithAxiom_over_base_ring`

  The category of associative and unital algebras over a given base ring.

  An associative and unital algebra over a ring \(R\) is a module over \(R\) which is itself a ring.

  Warning

  `Algebras` will be eventually be replaced by `magmatic_algebras.MagmaticAlgebras` for consistency with e.g. Wikipedia article Algebras which assumes neither associativity nor the existence of a unit (see trac ticket #15043).

  Todo

  Should \(R\) be a commutative ring?

  EXAMPLES:

      sage: Algebras(ZZ)
      Category of algebras over Integer Ring
      sage: sorted(Algebras(ZZ).super_categories(), key=str)
      [Category of associative algebras over Integer Ring,
       Category of rings,
       Category of unital algebras over Integer Ring]

  TESTS:

      sage: TestSuite(Algebras(ZZ)).run()

  class `CartesianProducts`(category, *args)

    Bases: `sage.categories.cartesian_product.CartesianProductsCategory`

    The category of algebras constructed as cartesian products of algebras

    This construction gives the direct product of algebras. See discussion on:

    > - http://groups.google.fr/group/sage-devel/browse_thread/thread/35a72b1d0a2fc77a/348f42ae77a66d16#348f42ae77a66d16
    > - http://en.wikipedia.org/wiki/Direct_product

    `extra_super_categories`()

      A cartesian product of algebras is endowed with a natural algebra structure.

      EXAMPLES:

          sage: C = Algebras(QQ).CartesianProducts()
          sage: C.extra_super_categories()
          [Category of algebras over Rational Field]
          sage: sorted(C.super_categories(), key=str)
          [Category of Cartesian products of distributive magmas and additive magmas,
           Category of Cartesian products of monoids,
           Category of Cartesian products of vector spaces over Rational Field,
           Category of algebras over Rational Field]

  `Algebras.``Commutative`

    alias of `CommutativeAlgebras`

  class `Algebras.``DualObjects`(category, *args)

    Bases: `sage.categories.dual.DualObjectsCategory`

    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`()

      Returns the dual category

      EXAMPLES:

      The category of algebras over the Rational Field is dual to the category of coalgebras over the same field:

          sage: C = Algebras(QQ)
          sage: C.dual()
          Category of duals of algebras over Rational Field
          sage: C.dual().extra_super_categories()
          [Category of coalgebras over Rational Field]

      Warning

      This is only correct in certain cases (finite dimension, ...). See trac ticket #15647.

  class `Algebras.``ElementMethods`
  `Algebras.``Graded`

    alias of `GradedAlgebras`

  class `Algebras.``TensorProducts`(category, *args)

    Bases: `sage.categories.tensor.TensorProductsCategory`

    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 `ElementMethods`
    class `Algebras.TensorProducts.``ParentMethods`
    `Algebras.TensorProducts.``extra_super_categories`()

      EXAMPLES:

          sage: Algebras(QQ).TensorProducts().extra_super_categories()
          [Category of algebras over Rational Field]
          sage: Algebras(QQ).TensorProducts().super_categories()
          [Category of algebras over Rational Field,
           Category of tensor products of vector spaces over Rational Field]

      Meaning: a tensor product of algebras is an algebra

  `Algebras.``WithBasis`

    alias of `AlgebrasWithBasis`

### Navigation

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