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)[source]¶
Bases:
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 bymagmatic_algebras.MagmaticAlgebras
for consistency with e.g. Wikipedia article Algebras which assumes neither associativity nor the existence of a unit (see Issue #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]
>>> from sage.all import * >>> Algebras(ZZ) Category of algebras over Integer Ring >>> sorted(Algebras(ZZ).super_categories(), key=str) [Category of associative algebras over Integer Ring, Category of rings, Category of unital algebras over Integer Ring]
- class CartesianProducts(category, *args)[source]¶
Bases:
CartesianProductsCategory
The category of algebras constructed as Cartesian products of algebras.
This construction gives the direct product of algebras. See discussion on:
- extra_super_categories()[source]¶
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 monoids, Category of Cartesian products of unital algebras over Rational Field, Category of algebras over Rational Field]
>>> from sage.all import * >>> C = Algebras(QQ).CartesianProducts() >>> C.extra_super_categories() [Category of algebras over Rational Field] >>> sorted(C.super_categories(), key=str) [Category of Cartesian products of monoids, Category of Cartesian products of unital algebras over Rational Field, Category of algebras over Rational Field]
- Commutative[source]¶
alias of
CommutativeAlgebras
- class DualObjects(category, *args)[source]¶
Bases:
DualObjectsCategory
- extra_super_categories()[source]¶
Return 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]
>>> from sage.all import * >>> C = Algebras(QQ) >>> C.dual() Category of duals of algebras over Rational Field >>> C.dual().extra_super_categories() [Category of coalgebras over Rational Field]
Warning
This is only correct in certain cases (finite dimension, …). See Issue #15647.
- Filtered[source]¶
alias of
FilteredAlgebras
- Graded[source]¶
alias of
GradedAlgebras
- class ParentMethods[source]¶
Bases:
object
- characteristic()[source]¶
Return the characteristic of this algebra, which is the same as the characteristic of its base ring.
EXAMPLES:
sage: # needs sage.modules sage: ZZ.characteristic() 0 sage: A = GF(7^3, 'a') # needs sage.rings.finite_rings sage: A.characteristic() # needs sage.rings.finite_rings 7
>>> from sage.all import * >>> # needs sage.modules >>> ZZ.characteristic() 0 >>> A = GF(Integer(7)**Integer(3), 'a') # needs sage.rings.finite_rings >>> A.characteristic() # needs sage.rings.finite_rings 7
- has_standard_involution()[source]¶
Return
True
if the algebra has a standard involution andFalse
otherwise.This algorithm follows Algorithm 2.10 from John Voight’s Identifying the Matrix Ring. Currently the only type of algebra this will work for is a quaternion algebra. Though this function seems redundant, once algebras have more functionality, in particular have a method to construct a basis, this algorithm will have more general purpose.
EXAMPLES:
sage: # needs sage.combinat sage.modules sage: B = QuaternionAlgebra(2) sage: B.has_standard_involution() True sage: R.<x> = PolynomialRing(QQ) sage: K.<u> = NumberField(x**2 - 2) # needs sage.rings.number_field sage: A = QuaternionAlgebra(K, -2, 5) # needs sage.rings.number_field sage: A.has_standard_involution() # needs sage.rings.number_field True sage: L.<a,b> = FreeAlgebra(QQ, 2) sage: L.has_standard_involution() Traceback (most recent call last): ... NotImplementedError: has_standard_involution is not implemented for this algebra
>>> from sage.all import * >>> # needs sage.combinat sage.modules >>> B = QuaternionAlgebra(Integer(2)) >>> B.has_standard_involution() True >>> R = PolynomialRing(QQ, names=('x',)); (x,) = R._first_ngens(1) >>> K = NumberField(x**Integer(2) - Integer(2), names=('u',)); (u,) = K._first_ngens(1)# needs sage.rings.number_field >>> A = QuaternionAlgebra(K, -Integer(2), Integer(5)) # needs sage.rings.number_field >>> A.has_standard_involution() # needs sage.rings.number_field True >>> L = FreeAlgebra(QQ, Integer(2), names=('a', 'b',)); (a, b,) = L._first_ngens(2) >>> L.has_standard_involution() Traceback (most recent call last): ... NotImplementedError: has_standard_involution is not implemented for this algebra
- class Quotients(category, *args)[source]¶
Bases:
QuotientsCategory
- class ParentMethods[source]¶
Bases:
object
- algebra_generators()[source]¶
Return algebra generators for
self
.This implementation retracts the algebra generators from the ambient algebra.
EXAMPLES:
sage: # needs sage.graphs sage.modules sage: A = FiniteDimensionalAlgebrasWithBasis(QQ).example(); A An example of a finite dimensional algebra with basis: the path algebra of the Kronecker quiver (containing the arrows a:x->y and b:x->y) over Rational Field sage: S = A.semisimple_quotient() sage: S.algebra_generators() Finite family {'x': B['x'], 'y': B['y'], 'a': 0, 'b': 0}
>>> from sage.all import * >>> # needs sage.graphs sage.modules >>> A = FiniteDimensionalAlgebrasWithBasis(QQ).example(); A An example of a finite dimensional algebra with basis: the path algebra of the Kronecker quiver (containing the arrows a:x->y and b:x->y) over Rational Field >>> S = A.semisimple_quotient() >>> S.algebra_generators() Finite family {'x': B['x'], 'y': B['y'], 'a': 0, 'b': 0}
Todo
this could possibly remove the elements that retract to zero.
- Semisimple[source]¶
alias of
SemisimpleAlgebras
- class SubcategoryMethods[source]¶
Bases:
object
- Semisimple()[source]¶
Return the subcategory of semisimple objects of
self
.Note
This mimics the syntax of axioms for a smooth transition if
Semisimple
becomes one.EXAMPLES:
sage: Algebras(QQ).Semisimple() Category of semisimple algebras over Rational Field sage: Algebras(QQ).WithBasis().FiniteDimensional().Semisimple() Category of finite dimensional semisimple algebras with basis over Rational Field
>>> from sage.all import * >>> Algebras(QQ).Semisimple() Category of semisimple algebras over Rational Field >>> Algebras(QQ).WithBasis().FiniteDimensional().Semisimple() Category of finite dimensional semisimple algebras with basis over Rational Field
- Supercommutative()[source]¶
Return the full subcategory of the supercommutative objects of
self
.This is shorthand for creating the corresponding super category.
EXAMPLES:
sage: Algebras(ZZ).Supercommutative() Category of supercommutative algebras over Integer Ring sage: Algebras(ZZ).WithBasis().Supercommutative() Category of supercommutative super algebras with basis over Integer Ring sage: Cat = Algebras(ZZ).Supercommutative() sage: Cat is Algebras(ZZ).Super().Supercommutative() True
>>> from sage.all import * >>> Algebras(ZZ).Supercommutative() Category of supercommutative algebras over Integer Ring >>> Algebras(ZZ).WithBasis().Supercommutative() Category of supercommutative super algebras with basis over Integer Ring >>> Cat = Algebras(ZZ).Supercommutative() >>> Cat is Algebras(ZZ).Super().Supercommutative() True
- Super[source]¶
alias of
SuperAlgebras
- class TensorProducts(category, *args)[source]¶
Bases:
TensorProductsCategory
- extra_super_categories()[source]¶
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]
>>> from sage.all import * >>> Algebras(QQ).TensorProducts().extra_super_categories() [Category of algebras over Rational Field] >>> 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
- WithBasis[source]¶
alias of
AlgebrasWithBasis